Showing posts with label security. Show all posts
Showing posts with label security. Show all posts

Dec 13, 2010

Ubuntu下ssh服务的安全增强

原文地址:http://www.td2.us/blog/2010-11/103.html 

虽然ssh将联机的封包通过加密的技术来进行资料的传递,能够有效地抵御黑客使用网络侦听来获取口令和秘密信息,但是仍然不乏大量入侵者进行密码尝试或其他手段来攻击ssh服务器以图获得服务器控制权。Ubuntu下面一些配置将进一步加强其安全性:
    1.修改sshd服务器的配置文件/etc/ssh/sshd_config,将部分参数参照如下修改,增强安全性。
Port 4321
系统缺省使用22号端口,将监听端口更改为其他数值(最好是1024以上的高端口,以免和其他常规服务端口冲突),这样可以增加入侵者探测系统是否运行了sshd守护进程的难度。
ListenAddress 192.168.0.1
对于在服务器上安装了多个网卡或配置多个IP地址的情况,设定sshd只在其中一个指定的接口地址监听,这样可以减少sshd的入口,降低入侵的可能性。
PermitRootLogin no
如果允许用户使用root用户登录,那么黑客们可以针对root用户尝试暴力破解密码,给系统安全带来风险。
PermitEmptyPasswords no
允许使用空密码系统就像不设防的堡垒,任何安全措施都是一句空话。
AllowUsers sshuser1 sshuser2
只允许指定的某些用户通过ssh访问服务器,将ssh使用权限限定在最小的范围内。
AllowGroups sshgroup
同上面的AllowUsers类似,限定指定的用户组通过ssh访问服务器,二者对于限定访问服务器有相同的效果。
Protocol 2
禁止使用版本1协议,因为其存在设计缺陷,很容易使密码被黑掉。
禁止所有不需要的(或不安全的)授权认证方式。
X11Forwarding no
关闭X11Forwarding,防止会话被劫持。
MaxStartups 5
sshd服务运行时每一个连接都要使用一大块可观的内存,这也是ssh存在拒绝服务攻击的原因。一台服务器除非存在许多管理员同时管理服务器,否则上面这个连接数设置是够用了。
注意:以上参数设置仅仅是一个示例,用户具体使用时应根据各自的环境做相应的更改。
    2.修改sshd服务器的配置文件/etc/ssh/sshd_config的读写权限,对所有非root用户设置只读权限,防止非授权用户修改sshd服务的安全设置。
chmod 644 /etc/ssh/sshd_config
    3.设置TCP Wrappers。服务器默认接受所有的请求连接,这是非常危险的。使用TCP Wrappers可以阻止或允许应用服务仅对某些主机开放,给系统在增加一道安全屏障。这部分设置共涉计到两个文件:hosts.allow和hosts.deny。
将那些明确允许的请求添加到/etc/hosts.allow中。如系统仅允许IP地址为192.168.0.15和10.0.0.11的主机使用sshd服务,则添加如下内容:
sshd:192.168.0.15 10.0.0.11
将需要禁止使用的信息添加到/etc/hosts.deny中。如对除了在hosts.allow列表中明确允许使用sshd的用户外,所有其他用户都禁止使用sshd服务,则添加如下内容到hosts.deny文件中:
sshd:All
注意:系统对上述两个文件的判断顺序是先检查hosts.allow文件再查看hosts.deny文件,因此一个用户在hosts.allow允 许使用网络资源,而同时在hosts.deny中禁止使用该网络资源,在这种情况下系统优先选择使用hosts.allow配置,允许用户使用该网络资 源。
    4.尽量关闭一些系统不需要的启动服务。系统默认情况下启动了许多与网络相关的服务,因此相对应的开放了许多端口进行LISTENING(监听)。我们知 道,开放的端口越多,系统从外部被入侵的可能也就越大,所以我们要尽量关闭一些不需要的启动服务,从而尽可能的关闭端口,提供系统的安全性。

Dec 10, 2010

凯撒的加密术

原文地址: http://songshuhui.net/archives/46557

送上开场诗一首:我用相思作玉杯,真情当酒意相随,爱心已醉何时醒,你似蝴蝶梦里飞。

你可以把这首诗发给你女友,聪明的她一定能看出这是首藏头诗,从而明白你的心意。其实,藏头诗就是一种加密术,它通过坐标变换的方式隐藏了秘密,这个例子虽然很简单,但它反映出了加密术的本质–变换坐标系。

加密术最早应用于古代战争,当时是靠士兵随身携带的信件来传递情报,但总是免不了被敌方俘虏,从而使情报落入敌手,这对作战部队而言可是生死悠关的 大事。传说当时的凯撒大帝有一个能加密的办法,就在写命令前做一个对应表,明码:A B C D E F….W X Y Z,密码:D E F G H I….Z A B C,如果他想写BABY,就用EDEB来表示。

当大将收到了EDEB这个密码后,向前推3个字母,就得到了明文。这个对应表的移位数是3,当然别的数也可以,作战前由凯撒定好移位数后通知大将 们,战时就可以进行保密通信了。这种加密方式其实就是把坐标系横移了3格。但是,这种简单的加密方法也很容易被敌方猜到,敌人从1到25推25次,得到 25组新编码,必有一种编码是真实的情报内容,把这组编码区别出来非常容易,因为其它24组都是毫无意义的字母组合,只有这一组是有意义的句子,找个识字 的人就可以看得出来。
既然这种加密手段并不安全,那凯撒该怎么办呢?有个聪明人给他出了个主意,对应表不按字母顺序写,搞个乱序的。例如A对Q,B对F,随意配对,只要 保证26个明密码一一对应没有重复就行了。每次出征前,凯撒就会搞个非常杂乱的明密码对应表,然后发给大将。这招很不错,敌人即使截获了密文,由于不知道 明密码对应表,也很难搞明白,这其实也是坐标系统的一种变换,这种方法被后人称为“单表系统”。

这种乱序的加密术比顺序的安全多了,但它还是有一个明显的漏洞。以英文为例,一篇文档里每个字母的出现次数是不同的,例如E出现的次数最多,甚至可 以搞出个频次表来,如果一份密文中R出现的次数最多,那这个R会不会就是E呢?这个猜想很合理,即使代表的不是E,那它代表的也应是明文中出现次数较多的 字母。按照这种思路试试吧,卖糕的,密码解开了。

现在又轮到加密方纠结了,他们想,破解方是在拿明密文中字母出现的频次做文章,如果我们能把频次的区别消除掉,他们不就没办法了吗?道理虽然很好,但怎样才能消除这种频次的差别呢,毕竟明文中字母的频次就是不一样,这本身没法改变啊。

功夫不负有心人,有一天加密方终于找到了解决问题的关键,这个关键就是“多表”,每个明文都对应多个密文,例如图上的A分别对应着XGV,这三个密 文的选择取决于明文的位置,A在第一位时选X,第二位时选G,第三位时选V。将整个一段明话按三位一段进行分组后就可以加密了。这个例子是三维的,维数还 可以更多,那就更难破译了。这种多表系统非常有效,但其实还是有统计规律可循的,只是短短一段密文是不足以找到规律的。

这种对应规律相对固定的多表系统,还是给破解带来了突破口。随着技术的发展,人们开始尝试用机械改良这种多表系统,通过引入更多的变化来增大破解的难度。二战期间德军有一种 加密转轮机,四个轮子负责把输入的明码置乱成密码,其对应规律是动态变化的,使破译难度大大增加。有一个负责管理加密转轮机的德军军官汉斯.施密特,为了 钱与盟军情报人员勾搭上了,他提供了该机的技术资料,得到了相当于现在1千万法郎的报酬,后来他害怕了想退出,但已经由不得他了,他先后与盟军情报人员接 头34次,波兰顶级数学家里杰斯基等人在这些绝密情报的帮助下终于将该转轮机完全破解。

还是回到凯撒吧,他当然知道自己的加密术并不很安全,送情报的士兵被抓后受刑不过就会把密信交出来,如果防止传令兵被俘后泄露情报呢?有人又给他出 了一招:把一批士兵的头发剃光,并用火烙铁在脑顶上烙上不同的印迹,并对哪个兵烙上什么样的疤做好记录,被烙的士兵一头雾水,不明白这是为什么。大战之 前,凯撒召集大将,并要求他们牢记一组对应关系,梅花疤代表“马上率部向我驰援”,三角疤代表“固守阵地”等等。

战斗中凯撒被围困了,情况很危机,他拿来了记录本,把烙梅花疤的几个人都点了出来,命令他们沿不同的路线到大将处报到,“不用我们传个口信或带个情 报吗?”这些人很不解,“不用,你们到大将处报个到就算完成了任务”凯撒说到。这些人出发了,有的人成功地找到了大将报到,大将二话不说,立即给他剃头查 疤。也有的人被俘,严刑拷打也问不出情报,因为他的确不知道情报。距离剃头烙疤的时间已经很久了,士兵新长出的头发已经遮盖了烙疤,敌人也轻易察觉不到这 个蹊跷。
加密后的密文即使摆在敌人面前,他们也搞不清楚其真实内容,但让他们知道了这是件隐藏着重要情报的密文,就会拼命破解,这总归不是好事。如果密文摆 在他们面前,他们竟然毫无察觉,那当然更好了,这就是隐写术。凯撒给传令兵头上烙疤就是隐写术的鼻祖。谍报小说里经常会介绍到这样的场景,潜伏者用淀粉水 写情报,晾干后再在上面写一封信作为掩护,收信者并不关注信的内容,而是在信纸上涂上一层碘,淀粉水情报就会变成蓝色显示出来了。这样的一封信,即使让特 务机关拆开审查,只要不知道这个门道,那什么也查不出来。

很多加密术看起来非常巧妙,但随着计算机的诞生,这些被称为古典密码术的方法全部失效,因为它们根本抵挡不住计算机的穷举分析。现代密码学的思路跟 古典密码术非常不同,它是先找出一个数学难题,然后把加密方法归结到这个难题,若解不出这个数学难题就破解不了他的密码。隐写术也逐渐脱离了物理和化学反 应,而是与加密术结合了起来,把秘密隐藏在数据中,现代密码学更加引人入胜,且等以后慢慢道来。

Dec 8, 2010

使用网页代理翻墙的优点和风险

网页代理简 单易用,你无需安装任何软件,如果 在未过滤地区没有可靠的联系人,你甚至 可以使用公开的网页代理。私人网页代理可以定制,从而满足使用者的不同需要,并且更不易被审查机构发现和屏蔽。但是网页代理也有潜在的风险 。它们一般只允许网页浏览(HTTP),所以无法用于电子邮件和即时通讯服务。很多网页代理都不支持多媒体(如YouTube),或者无法加密(SSL, 安全套接协议层)。有些需要认证 的网络服务(如网络电子邮件)通过网页代理无法使用全部功能,你的密码和其它信息可能被监视或被盗。

网页代理还可能 被屏蔽或拦截。公开网页代理的网址通常广为人知,可能被屏蔽。私人网页代理需要使用者在未屏蔽地区有联系人。网络运行商可以拦截未经加密的网页代理通讯内容,所以关键词过滤对未加密网页代理可能依然有效。

网页代理使用者需要记住,网页代理提供者可以读取自己的通讯内容,记录使用网页代理的IP地址。如果这些信息会给你带来危险,你应该谨慎选择网页代理。

什么是网页代理(WEB PROXY)?

有的被屏蔽网站在本地 无法直接访问,你可以通过网页代理访问。通常,网页代理都有一个表单,你可以在表单里提交想要访问的网址。然后网页代理就会显示你要的页面,但是不会让你和被请求网站之间建立直接联系。

在使用网页代理时,你不需要安全 软件或改变计算机设置。相反,你首先找到网页代理的网址 ,然后输入你想要访问的网址,接着点击"提交"按钮(或类似按钮)。任何计算机都可以使用网页代理,包括网吧里的计算机。

免费网页代理包括 CGIProxy, PHProxy以及Zelune等。所有网页代理都提供相同的基本功能,但有些代理的特定功能(比如访问视频)更强。

你可以从 http://www.peacefire.org/circumventor/ 加入邮件列表 ,或在任何一个搜索引擎里搜索"免费网页代理",然后就可以找到类似 http://www.proxy.org/ 这样的网页代理。 Proxy.org逐一列出了数千个免费的网页代理。

(如果你所在的国家不限制网络访问,并且你愿意帮助其他人绕开审查,你可以在自己的网站或家庭计算机上安装一个网页代理脚本。)

使用网页代理的风险

你应该意识到使用网页代理存在着一些风险,尤其当你使用网页代理是由那些你不甚了解的组织和人员所维护时,这种风险会很大,如果你使用代理来浏览美国国 家公共电台 npr.org这样的公共站点时,你面临的唯一风险只是有人可能会知道你正在使用代理浏览这个站点上的新闻。但是如果你使用代理来进行私人通信或者登录网 页邮箱,网上银行,和网上购物这类应用时,别人可能会盗取并滥用你的个人信息,其中包括个人密码。尤其当你使用的这些服务本身未对信息加密,或者你使用的 代理阻不准你对信息的加密,这种可能性会更大。

缺乏隐私

规避过滤和封锁的系统并不一定具备匿名性(尽管这些系统的名称中可能会包含"匿名"这类的字样!)。如果你与网页代理之间链接并没有加密(很多免费 网页代理就是这样的),代理的运营者或者像互联网服务提供商(ISP)的中间人都可截取并分析通信的内容。在这种情况下,虽然你成功的绕过了封锁,但是网 络运营商还是可以知道你正在使用网页代理,而且还可以知道你所访问的网站以及内容。

那些对链接并不加密的网页带有时候也会使用其他的方式来规避网络过滤。比如,它们使用的一个简单技术就是ROT-13,这类代理会把当前网址链接中 的字母用标准字母表中的字母按照一定规则替换掉。(你可以访问 http://www.rot13.com/ 自己尝试一下),当用ROT-13规则转换后, http://ice.citizenlab.org 网址就变成了uggc://vpr.pvgvmrayno.bet,它可以让关键词过滤器无法识别。这可以帮助你访问目标站点,不过它的弱点也很明显:会 话(session)的内容仍然可以起被侦测到,而且使用这种方法加密的网址很容易就会被反向破解出来。


广告,病毒以及恶意软件

一些人架设网页代理是为了赚钱。他们可以网页上出售广告,而然一些不良的代理运营者会使用恶意软件来感染用户的计算机。这类恶意软会劫持你的计算机来发送垃圾邮件和商业广告,甚至用于其他非法目的。

而确保你计算机免受病毒侵害的一个重要方法就是保持软件的更新(其中包括操作系统的更新),以及使用最新的杀毒软件。你也可以使用火狐浏览器的 广告屏蔽插件 AdBlockPlus来屏蔽广告。 ( http://www.adblockplus.org/ ).要想了解更多避免此类风险的信息,用户可以访问StopBadware ( http://www.stopbadware.org/ )网站。ATunnel.com网站的运营者就是通过出售广告来提供免费服务的。它是一个典型的依靠广告支撑的代理服务器。

Cookie和脚本

Cookie和脚本的使用也有风险。用户可以禁止掉许多站点的Cookie和脚本,但是其他许多站点(比如像MySpace这类的社交站点)也需要使用 Cookie和脚本。在开启这些此类选项时要小心,因为即便你重启后,Cookie也会保存在计算机中,所以别人可以通过cookie知道你访问了哪些站 点。应对此问题的一个办法就是有选择的使用Cookie。在火狐3.0版本的浏览器中,你可以告诉浏览器在浏览器关闭之后自动清除Cookie,(同样 的,你也可以告诉浏览器在关闭之后自动清除你的浏览记录)

一些站点和广告商甚至使用这一机制来追踪你使用代理的时段。如果你想保持网络访问的匿名性,这个问题可是一个不小的麻烦,因为这会给你留下一些把柄。比如,别人可以知道公开访问某个站点的人与匿名访问其他站点的人是同一个人。

最后要提醒读者牢记:代理运营者可以看到一切内容

尽管你与这些网页代理之间链接是安全的(加过密的),但是代理的所有者在信息解密之后还是可以看到你的内容的。另一个安全方面的顾虑就越是代理提供者可能会保留的日志文件。当局可能会获得这些日志文件,但是具体如何,这要取决于代理提供者和代理服务器所处的地区。

Nov 24, 2010

PPTP和L2TP的区别

PPTP和L2TP都使用PPP协议对数据进行封装,然后添加附加包头用于数据在互联网络上的传输。尽管两个协议非常相似,但是仍存在以下几方面的不同:

1.PPTP要求互联网络为IP网络。L2TP只要求隧道媒介提供面向数据包的点对点的连接。L2TP可以在IP(使用UDP),桢中继永久虚拟电路(PVCs),X.25虚拟电路(VCs)或ATM VCs网络上使用。

2.PPTP只能在两端点间建立单一隧道。L2TP支持在两端点间使用多隧道。使用L2TP,用户可以针对不同的服务质量创建不同的隧道。

3.L2TP可以提供包头压缩。当压缩包头时,系统开销(overhead)占用4个字节,而PPTP协议下要占用6个字节。

4.L2TP可以提供隧道验证,而PPTP则不支持隧道验证。但是当L2TP或PPTP与IPSEC共同使用时,可以由IPSEC提供隧道验证,不需要在第2层协议上验证隧道。

总之,对于一般的使用者来说,L2TP有更强的穿透率,更好的压缩,更好的加密(双层加密),所以如果你在使用PPTP失败的时候可以尝试L2TP。

Nov 22, 2010

架设PPTP VPN及在Linux上远程连接VPN

本文所涉及的运行环境:远程服务器为 VPSLink 上低配置 Xen VPS ( 注意,OpenVZ VPS 是不能安装 PPTP VPN 的),Linux 系统为 Ubuntu 9.04 ,本地服务器为 Ubuntu Server 9.10 。

1. 如何快速搭建一个VPN(pptp)
# 安装服务器端软件
apt-get install pptpd

# 配置IP地址范围,编辑/etc/pptpd.conf,在最后添加如下地址:
localip 192.168.0.1
remoteip 192.168.0.234-238,192.168.0.245

# 这两句设置了当外部计算机通过pptp联接到vpn后所能拿到的ip地址范围和服务器的ip地址设置。
# 增加一个用户,编辑/etc/ppp/chap-secrets,在下面增加类似的条目:
username pptpd password *

# 重启pptpd服务
/etc/init.d/pptpd restart

# 编辑:/etc/ppp/options,在里面找一下”ms-dns”项目:
ms-dns 8.8.8.8
ms-dns 8.8.4.4

#允许转发,编辑/etc/sysctl.conf,看一下net.ipv4.ip_forward参数是不是1,或直接执行以下命令来查看
sysctl net.ipv4.ip_forward

# 如果输出为 0 的话就要修改 /etc/sysctl.conf 中的 net.ipv4.ip_forward ,把 0 改为1,然后执行以下命令。
sysctl -p

# 最后,运行一下这条命令来打开iptables的转发支持:
/sbin/iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j MASQUERADE
/sbin/iptables -I FORWARD -p tcp –syn -i ppp+ -j TCPMSS –set-mss 1356

# 并把这两条加入到 /etc/rc.local 中的 exit 0 行前面,这样重启后就无需再执行了。

# 好了,PPTP VPN 到此就架设好了,你现在可以用 Windows 自带的 VPN 连接工具来连接了,这个应该非常简单。那么下面我再说说如何在 Ubuntu 上手工配置 PPTP VPN 连接吧。

2 .如何在 Linux 上连接 PPTP VPN
# 安装 Linux 上的 pptp 客户端
apt-get install pptp-linux

# 把下面两行加入 /etc/rc.local , 放在 exit 0 这一行的前面
/usr/sbin/pptpsetup –create lable –server ip –username username –password password –encrypt
/usr/sbin/pppd call lable

# 说明:这两行命令是最简便的建立 PPTP 连接方式。

Label: 用户自定义
IP: 是 VPN 的 IP 地址
Username 及 Password :登录 VPN 的用户名和密码

# 把下面两行加入 /etc/ppp/ip-up 中,删除默认网关及把 VPN 服务器作为默认网关,也就是改变路由策略,把所以传输流量通过 VPN 线路来走。
/sbin/route add default gw 192.168.0.1
/sbin/route del default gw 原来的网关 // 原来的默认网关地址可通过 route 命令来获取

# 另外,如果你想把此服务器作为网关服务器的话,那就按照前面架设 PPTP VPN 一节中的方式,设置 net.ipv4.ip_forward 参数来打开包转发。并把下面两行加入到 /etc/rc.local 中。
/sbin/iptables -t nat -A POSTROUTING -s 内网IP/24 -o ppp0 -j MASQUERADE
/sbin/iptables -I FORWARD -p tcp –syn -i ppp+ -j TCPMSS –set-mss 1356

# 重启服务器,你可以用 ifconfig 看一下,会多出一个 ppp0 的网络接口了。另外,你可以 traceroute twitter.com 看一下,是否通过 ppp0 的网关出去的,如果是的话,就说明工作正常。

# 注意:在作网关服务器的时候,建议使用 Google 的 DNS ,国内很多 DNS 被污染了,无法正常解析 Twitter 等网站。

# 修改 /etc/resolv.conf 中,改为如下两行
nameserver 8.8.8.8
nameserver 8.8.4.4

CentOS 5 VPS配置pptpd为VPN服务器

VPS一般每个月也用不完流量,不用也是浪费,所以我们要榨干VPS,哈哈。(以下命令建立在64位CentOS 5上 ,并且 pptpd VPN需要内核支持mppe)

下面为配置命令:

先安装ppp和iptables.
yum install -y ppp iptables
然后下载pptpd.

64位操作系统.
wget http://acelnmp.googlecode.com/files/pptpd-1.3.4-1.rhel5.1.x86_64.rpm

32位操作系统.
wget http://acelnmp.googlecode.com/files/pptpd-1.3.4-1.rhel5.1.i386.rpm

安装pptpd

64位操作系统
rpm -ivh pptpd-1.3.4-1.rhel5.1.x86_64.rpm

32位操作系统
rpm -ivh pptpd-1.3.4-1.rhel5.1.i386.rpm

接下来编辑/etc/pptpd.conf文件,去掉下面两行的注释或者直接添加这两行
vim /etc/pptpd.conf
localip 192.168.0.1
remoteip 192.168.0.234-238,192.168.0.245

添加VPN用户和密码,按照下面格式.密码后的*号保留.
vim /etc/ppp/chap-secrets
username pptpd password *
设置DNS为Google的DNS.
vim /etc/ppp/options.pptpd
找到ms-dns改成.
ms-dns 8.8.8.8
ms-dns 8.8.4.4
编辑/etc/sysctl.conf文件,找到”net.ipv4.ip_forward=1″这一行,去掉前面的注释。没有就添加上.
net.ipv4.ip_forward=1
运行下面的命令让配置生效。
sysctl -p
重启pptpd服务
/etc/init.d/pptpd restart
最后开启iptables转发
/sbin/iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j MASQUERADE
最后设置iptables和pptpd开机自动启动
chkconfig pptpd on chkconfig iptables on
好了,下面可以用VPN自由呼吸了。

Debian/Ubuntu下搭建OpenVPN与客户端配置教程

下面介绍如何在Debian系统搭建OpenVPN服务器端以及如何配置Windows客户端。

服务器端
1.至少拥有一台VPS或独立服务器
2.基于Openvz的VPS只能安装OpenVPN,XEN可安装PPTP,但不在本文讨论范围不再赘述
3.检验是否支持Tun/Tap和nat,以Root登陆输入
cat /dev/net/tun
若返回cat: /dev/net/tun: File descriptor in bad state 则说明tun可用输入
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o venet0 -j MASQUERADE
若返回iptables: No chain/target/match by that name 则说明nat模块正常可用
若以上返回信息不符请联系客服要求开通Tun/Tap和iptable nat。
4.修改服务器DNS
vi /etc/resolv.conf
修改DNS为:
nameserver 8.8.8.8
nameserver 8.8.4.4
5.本想一步步写,但经友人提醒有个VPSNOC John Malkowski的Debian OpenVPN脚本基本我下面的步骤雷同且我的教程步骤过于复杂,考虑安装方便所以放弃原教程奉上一键安装脚本。
wget http://vpsnoc.com/scripts/debian-openvpn.sh
chmod +x debian-openvpn.sh
./debian-openvpn.sh
稍等片刻,依次出现需要填写内容:
国家(两个英文字母)
省份/州(两个英文字母)
城市(英文字母)
组织名称 (英文字母)
部门名称 (英文字母)
通用名  (英文字母)
姓名  (英文字母)
邮箱密码(英文数字组合)
凭证名  (英文字母)
按两次Y后,安装完成。
安装完成后root目录下会出现一个keys.tgz压缩包,使用Tunnelier或WinSCP将压缩包下载至本地,待用。
6.生产客户端证书
cd /etc/openvpn/easy-rsa/2.0
../vars
./build-key user1

将user1换成期望用户名,按照步骤5中信息填写方式,完成证书生成。至此服务器安装基本完成。

Windows客户端配置
1.下载OpenVPN:http://www.openvpn.net/index.php/open-source/downloads.html 下载最新版本的Windows Installer安装包。
2.运行安装,建议win7/vista 将openvpn安装至非系统分区,如:D:\net\openvpn。按过程中会出现安装网卡驱动(型号为:TAP-WinXX Apapter V9)安全警告,确认继续。
3.修改DNS,注意:是修改新增加的这个虚拟网卡后出现的新连接,如果你不知道是哪个无所谓,把所有连接的DNS都设置成OpenDNS或者GoogleDNS吧,步骤:
Win7 https://store.opendns.com/setup/operatingsystem/windows-7
Vista https://store.opendns.com/setup/operatingsystem/windows-vista
XP https://store.opendns.com/setup/operatingsystem/windows-xp
推荐使用Google DNS :8.8.8.8和 8.8.4.4替换OpenDNS的208.67.222.222 208.67.220.220。
4.解压从服务器上down下来的keys.tgz,解压至openvpn安装目录下的config目录,如:D:\openvpn\config。
5.运行桌面上的OpenVPN GUI图标(如果是win7/vista系统请以管理员身份运行)右击右OpenVPN图标点Connect
6.稍等出现分配完成后说明链接成功。
进入http://www.dnsstuff.com 测试下吧。

配置新用户
OpenVPN一个证书只能对应一个用户,如果你想给朋友开通OpenVPN需要现在服务器上配置一个客户端证书(服务器端配置的 6.生产客户端证书),然后修改*.ovpn文件,将其证书和配置打包发给你的朋友,并教其修改连接DNS,使用OpenVPN。
下面分步骤细说:
1.按照服务器端配置的步骤 6,生成客户端新证书
2.使用Tunnelier或WinSCP前往/etc/openvpn/easy-rsa/2.0/keys并下载刚生成的新证书,如:步骤 6中输入的是
./build-key user1

那么/etc/openvpn/easy-rsa/2.0 /keys文件夹下的应该会新增user1.crt,user1.key,user1.csr三 个文件,将这三个文件连同*.ovpn和ca.crt、ca.key三个文件一起下载到本地,用EditPlus或其他编辑编辑器打开下载下来 的*.ovpn文件将其中的
cert client1.crt
key client1.key
修改为:
cert user1.crt
key user1.key
保存,打包发送给你的朋友。
3.教其安装OpenVPN客户端,并解压*.opvn配置文件和证书至openvpn安装目录下的config目录中
4.教其修改DNS和使用OpenVPN。

OpenVPN 简介

OpenVPN 是一个具备完全特征的SSL VPN解决方案,能够进行大范围的配置操作,包括远程访问、站点-站点间VPN、WiFi安全及企业级远程访问解决方案,支持负载均衡,错误恢复及细粒度的访问控制。

OpenVPN通过使用工业标准SSL/TLS协议 实现了OSI 2层及3层安全网络扩展,支持灵活的基于证书、智能卡的客户端认证方法,允许通过在VPN虚拟接口上应用防火墙规则实现用户及组访问控制策略。 OpenVPN并非一个Web应用代理,也不能通过Web浏览器进行操作。

作为一个不错的关于OpenVPN的概念介绍,可以参考James Ynan在Linux Fest Northwest 上2004年发表的程序注释――理解用户空间VPN:历史、概念基础及实际应用(Understanding the User-Space VPN: History, Conceptual Foundations, and Practical Usage)。也可以参考Charlie Hosner的OpenVPN及SSL VPN革命(OpenVPN and the SSL VPN Revolution)。

OpenVPN 是一个开源项目,遵从GPL许可协议。商业许可对重新发布其基于OpenVPN的应用程序的公司也有效。获得更多信息请联系info@openvpn.net。

OpenVPN 能够运行于Linux、Windows 2000/XP及更高版本、OpenBSD、FreeBSD、NetBSD、Mac OS X及Solaris平台。

通过OpenVPN,你可以:
  1. 在任意IP局部网络或虚拟以太网适配器上通过单个UDP或TCP端口建立隧道;
  2. 使用一或多台机器配置可裁剪的、负载均衡的VPN服务器群以处理成千上万的来自VPN客户端的动态连接;
  3. 能够使用在OpenSSL库中所提供所有的加密、认证及证书特性以保护私有网络在Internet网络上的数据传输;
  4. 使用OpenSSL库所支持的任意加密算法、密钥长度或HMAC数字签名(用于数据报完整性检查);
  5. 先把基于静态密钥传统加密方法或基于证书的公钥加密方法;
  6. 使用静态、预先公有的密钥或基于TLS的动态密钥交换;
  7. 使用实时的自适配压缩及流量整形以管理链路带宽分配;
  8. 为动态公共点(如DHCP或拨号客户端)提供隧道传输;
  9. 无需显示定义防火墙规则为面向连接的防火墙提供网络隧道传输;
  10. 基于NAT的网络隧道;
  11. 通过虚拟的tap设备创建安全的以太网桥;
  12. 在Windows或Mac OS X系统上通过GUI界面控制OpenVPN。

OpenVPN与其它VPN有何区别?

OpenVPN的主要特征包括跨平台的可移植性、优秀的稳定性、成百上千或成千上个客户端支持的可伸展性、相对简单的安装过程、支持动态IP地址及NAT。

OpenVPN 提供一个设计为易于针对站点定制的可扩展的VPN框架,例如提供发布自定义安装包到客户端,或通过OpenVPN插件模块接口支持可选的认证方法(例如 openvpn-auth-pam 模块允许OpenVPN使用任意PAM认证方法认证客户端,这种方法可以单独使用,也可以与基于X509证书结合使用以进行认证)。

OpenVPN 提供一个管理接口,可以用于远端控制或中央控制一个OpenVPN守护进程。管理接口也可以用于开发基于GUI或web的前端应用程序。

在Windows平台上,OpenVPN能够使用Windows Crypto API从智能卡上读取证书或私钥。

OpenVPN 使用设计用于可保护被动攻击和主动攻击的工业强度的安全模型。OpenVPN的安全模型基于SSL/TLS进行会话认证及使用IPSec ESP协议用于基于UDP的安全隧道传输。OpenVPN支持X509 PKI (public key infrastructure)用于会话认证,TLS协议用于密钥交换,OpenSSL的加密算法无关的EVP接口用于加密隧道数据,HMAC-SHA1 算法用于认证隧道数据。

OpenVPN建立为可移植的, OpenVPN可以运行于Linux、Solaris、OpenBSD、FreeBSD、NetBSD、Mac OS X及Windows 2000/XP,因为OpenVPN作为用户空间守护进程编写而非内核模块或对IP层的复杂变更,移植操作的简易性是值得留意的。

OpenVPN易于使用,通常,一个隧道的建立和配置可以通过一个单独的命令完成(无需任何必要的配置文件)。OpenVPN文档包含了的示例进行了详细解释。

OpenVPN 经过严格设计,并在不可靠的网络中进行了强度测试。OpenVPN的一个主要的设计目标就是在正常操作和错误恢复情况下IP层都能够快速响应。这意味着如果IP层断开5分钟,当它再次恢复时,隧道流量能够立即恢复,即使动态密钥交换在这期间已经过期。

OpenVPN 有着健壮的模块设计。所有加密都由OpenSSL库处理,所有IP隧道功能都由TUN/TAP虚拟网络驱动提供。

模块化的好处是显而易见的,例如,OpenVPN可以与新版本的OpenSSL库动态链接并立即能够使用其在新版本中所提供的新功能。例如,当 OpenVPN基于最后版本的OpenSSL(0.9.7)编译时,它能够使用新的加密算法,如AES-256(高级加载标准,256位密钥),以及 OpenSSL特定目的的硬件加速器优化加密、解密及认证性能的加密引擎功能。

同样地,OpenVPN的用户空间设计易于移植到任何包含TUN/TAP虚拟网络驱动的OS中。

OpenVPN 运行速度很快,在Pentium II 266MHz机器上运行Redhat 7.2 ,使用基于TLS的认证方法,Blowfish加密算法,SHA1 用于隧道数据认证,当隧道传输一个巨大的,经过预先压缩文件的FTP会话时,OpenVPN达到了每秒(CPU时间,包括内核及用户态时间)1.455MB的收/发传输速度。

OpenVPN提供了用于控制VPN隧道的安全参数的选项,同时提供了用于保证服务器本身安全的选项,例如—chroot用于限制OpenVPN守护进程能够访问的文件系统部分,–user 及—group选项用于降低守护进程在初始化之后的优先级,–mlock用于确认密钥原始内容及隧道数据从不被分页到磁盘上,从而避免被后期恢复。

为什么先把TLS作为OpenVPN的根本认证及密钥协商协议呢?TLS是SSL协议族的最后成果,最初由Netscape开发用于他们最初的安全 web浏览器。多年来,TLS及其SSL前身已经在web上得到了广泛应用,并得到了深入的弱点分析。这些分析使得它不断被加强,从而形成如今的协议,SSL/TLS被认为是最强壮及最成熟的安全协议之一。因此,我们相信TLS是作为VPN产品认证及密钥交换机制的极好的先把。

OpenVPN 支持IPSec或PPTP吗?

目前被广泛应用的VPN实现中有三个主流:SSL、IPSec及PPTP。OpenVPN是一个SSL VPN,因此并不与IPSec、L2TP或PPTP兼容。

IPSec协议设计为内核空间IP栈的修正,不同的操作系统需要其自身的IPSec实现。

相对而言,OpenVPN的用户空间实现允许跨操作系统及处理器体系、防火墙及NAT友好操作、动态地址支持、多协议支持(包括协议桥接)的移植。

优点与缺点并存,OpenVPN的主要优点在于可移植、易于配置及与NAT和动态地址兼容。OpenVPN的安装和使用与其它安全相关的守护进程软件,例如SSH相似。

由于历史因素,IPSecr的优点在于获得了众多厂商的支持,虽然OpenVPN也逐渐开始致力于硬件设备的支持。

PPTP协议的优点在于其在Windows平台预装了客户端,密码分析专家已经透露了其安全弱点。

OpenVPN符合标准吗?

作为一个用户空间VPN守护进程,OpenVPN与SSL/TLS、RSA证书及X509 PKI、NAT、DHCP及TUN/TAP兼容。

OpenVPN与IPSec、IKE、PPTP或L2TP并不兼容。

Q: OpenVPN 隧道能够基于TCP连接传输吗?
A: 是的,OpenVPN 1.5以上版本均支持基于TCP连接的隧道传输。

Q: 我是否能够使用web浏览器作为OpenVPN客户端?
A: 不可以,虽然OpenVPN使用SSL/TLS协议用于安全传输,OpenVPN并不是一个Web应用代理。它是一个OSI 2层或3层Internet网络隧道解决方案,要求OpenVPN同时安装于客户端和服务器端。

Nov 15, 2010

VPN,可以结合SSH的优势吗?

VPN与SSH是常用的加密数据的方式(不限于凸墙),区别大致如下(原文在这里):

SSH方式:
通过SSH连接,在本地与远程服务器之间建立一个加密的管道(Tunnel),SSH客户端监听本地端口,形成SOCKET5代理。由于IE对 SOCKET5代理不好,大家一般都是用FireFox。直接将FireFox设置Socket5代理就是可以正常使用的。但是这样,上国内网站也会绕道国外,影响速度。好在FireFox有大量优秀的插件,FoxyProxy和AutoProxy是很常用的通过URL筛选决定是否通过代理访问网站的插件,后者用的尤其多。

VPN方式:
VPN其实也是在本地与远程服务器之间建立了一个加密的通道,但是,与SSH不同的是,VPN客户端会虚拟一个网卡出来(这个虚拟的网卡连接的就是刚才说的那个加密通道),然后修改路由,使流量从加密通道走,达到凸墙的目的。当然,VPN也存在跟SSH相同的问题,如果访问国内网站,会绕道国外,速度很慢。聪明的人们又想出了办法:连接了VPN的电脑相当于有两块网卡,只要让国内流量从真实网卡走而国际流量从虚拟网卡走,这个问题就解决了。实际的操作就是手工加入国内IP的路由,让这部分流量直接走本地连接来搞定。

在解决绕道的问题上,大家可以看出SSH方式和VPN方式的不同了,SSH方式可以在URL的级别上筛选网址走加密通道,而VPN方式只能筛选IP。

举个例子,假设xxx是某强屏蔽的关键字,SSH代理+AutoProxy可以做到使http://www.abc.com/xxx走代理,而http://www.abc.com/yyy不走代理,这是VPN方式力所不及的。当然,VPN方式也有它得天独厚的好处,就是不用对应用软件进行任何设置即可使用,这对一些根本没法设置代理的应用软件是莫大的福音,这也是SSH方式力所不及的。

简单的来说,SSH在7层,VPN在3层。至于VPN的好处在上面引用的文字中就说的很明白了——不用对应用软件进行任何的设置。换句话说,只要去往某一目的的路由是指向VPN的,那么所有去往此目的地的路由都将自动生效,而基于7层的SSH没有此能力。

我的考虑是,能不能基于某些现有的SSH代理的处理方式,动态的设置VPN路由,这样不失VPN的特点,又能结合SSH的吸收优势。当然,实际情况肯定还是不能完全像SSH一样灵活。但至少比采用一刀切的方式——国外IP都走VPN——更加灵活。

基本思路如下:利用autoproxy的列表,使用DNS代理收集哪些IP地址需要使用VPN(同时可以防止DNS污染)。对于需要代理的目的地址(匹配autoproxy列表的项),创建路由指向VPN。同时对于DNS污染的地址,直接指向黑洞,以免出现可能的安全问题。

Nov 11, 2010

电子书 The Base Damn Firewall Book Period

The Base Damn Firewall Book Period —— Cherie Amon & Thomas W. Shinder & Anne Carasik-Henmi
This book is essential reading for anyone wanting to protect Internet-connected computers from unauthorized access. Coverage includes TCP/IP, setting up firewalls, testing and maintaining firewalls, and much more. All of the major important firewall products are covered including Microsoft Internet Security and Acceleration Server (ISA), ISS BlackICE, Symantec Firewall, Check Point NG, and PIX Firewall. Firewall configuration strategies and techniques are covered in depth.The book answers questions about firewalls, from How do I make Web/HTTP work through my firewall? To What is a DMZ, and why do I want one? And What are some common attacks, and how can I protect my system against them?The Internet's explosive growth over the last decade has forced IT professionals to work even harder to secure the private networks connected to it-from erecting firewalls that keep out malicious intruders to building virtual private networks (VPNs) that permit protected, fully encrypted communications over the Internet's vulnerable public infrastructure.The Best Damn Firewalls Book Period covers the most popular Firewall products, from Cisco's PIX Firewall to Microsoft's ISA Server to CheckPoint NG, and all the components of an effective firewall set up. Anything needed to protect the perimeter of a network can be found in this book. - This book is all encompassing, covering general Firewall issues and protocols, as well as specific products.- Anyone studying for a security specific certification, such as SANS' GIAC Certified Firewall Analyst (GCFW) will find this book an invaluable resource.- The only book to cover all major firewall products from A to Z: CheckPoint, ISA Server, Symatec, BlackICE, PIX Firewall and Nokia.

PDF格式
点我下载(Click Here)

Nov 10, 2010

电子书 Anti-hacker tool kit

Anti-hacker tool kit —— Mike Shema & Bradley C. Johnson

"Using these tools yourself during an audit will help you find the weaknesses in your systems. This is an excellent reference book--one I plan to keep handy." --Simple Nomad, Noted security expert and author of The Hack FAQ and Pandora Put an End to Hacking. Stop hackers in their tracks using the tools and techniques described in this unique resource. Organized by category, "Anti-Hacker Toolkit" provides complete details on the latest and most critical security tools, explains their function, and demonstrates how to configure them to get the best results. New and updated case studies in each chapter illustrate how to implement each tool in real-world situations. Protect your network and prevent disasters using the cutting-edge security tools and exclusive information in this completely up-to-date volume.Explains how to configure and use these and other key tools: Port scanners: Nmap, SuperScan, IpEye, Scanline Enumeration tools: smbclient, nbtstat, Winfingerprint Web vulnerability scanners: Nikto, WebSleuth, Paros, wget Password crackers: PAM, John the Ripper, L0phtCrack Backdoors: VNC, Sub7, Loki, Knark System auditing tools: Nessus, Retina, STAT, Tripwire Packet filters and firewalls: IPFW, Netfilter/Iptables, Cisco PIX Sniffers: snort, BUTTSniffer, TCPDump/WinDump, Ethereal Wireless tools: NetStumbler, Wellenreiter, kismet War dialers: ToneLoc, THC-Scan Incident response tools: auditpol, Loggedon, NTLast Forensics tools: EnCase, Safeback, Ghost, md5sum, FTK Miscellaneous tools: Netcat, Fpipe, Fport, Cygwin, and many more CD-ROM contains all the security tools discussed in the bookAbout the authors: Mike Shema is the Director of Research for NT Objectives, Inc. He is theauthor of "HackNotes Web Security Pocket Reference" and co-author of "Hacking Exposed Web Applications," both from McGraw-Hill/Osborne. Bradley C. Johnson is a network security specialist with a great deal of experience designing, implementing, and maintaining secure networks. He is the co-author, with Mike Shema, of the first edition of this book.
CHM格式
点我下载(Click Here)

Twitter Delicious Facebook Digg Stumbleupon Favorites More

 
Powered by Blogger