关于冰盾 | 使用条款 | 网站地图
 
IPSec打造FreeBSD下信息安全传输
IPSec打造FreeBSD下信息安全传输
作者:冰盾防火墙 网站:www.bingdun.com 日期:2015-01-06
 
IPSec打造FreeBSD下信息安全传输 
作者:dahubaobao
主页:http://www.ringz.org 
邮件:[email protected] 
QQ:382690
工具及图片都在压缩包中,解压密码:www.ringz.org 
http://dahubaobao.go.nease.net/IPSec.rar 
欢迎进入环形区,一群技术狂热者的社区,www.ringz.org欢迎你的加入!
注:转载请著名出处(包括这里的声明),谢谢!
=====================================================================
IPSec在FreeBSD下应用实例
概述
在当今的网络安全中,由于很多服务都是明文通讯,安全性非常底,所以,采用通讯加密是非常有必要的,否则很可能会被嗅探工具简听。IPSec作为加密通讯中的佼佼者,我们没理由不利用。关于IPSec,我想大家或多或少的都有一些了解,黑客防线也刊登过多篇IPSec的相关文章。不过,这些文章都是基于Windows下的,并且都是在讲如何过滤数据包,其实,过滤数据包的任务完全可以交给防火墙来处理,而IPSec真正的强大地方是它的通讯加密。鉴于此,我觉得有必要说说如果使用IPSec进行通讯加密。所以,我通过一段时间的学习,写下了此文,并且以FreeBSD为例,讲解如何使用IPSec与Windows/Unix进行加密通讯,希望能对安全爱好者以及BSD爱好者一些帮助。

先介绍一下我测试的环境:
本地:FreeBSD 4.9 STABLE IP:192.168.0.20
目标:Wdinwos 2000 Advanced Server IP:192.168.0.1
目的:使用IPSec加密所有IP报文,除广播、多播协议外。
注意:这里不介绍如何使用IPSec过滤数据包,因为这些足可以交给IPFW来完成。

一,什么是IPSec
IPSec,即网际安全协议,它通过对IP报文进行加密,并将其封装在IP头中通过企业专用网或者公共网络发送。IPSec在网络层上保护TCP/IP 协议栈中所有 IP 和更高层的协议(例如 TCP、UDP、ICMP),应用程序可以享用经过IPSec处理的网络层的安全服务,而不必关心自身的安全机制。IPSec可在路由器、防火墙、主机上配置,实现端到端的安全通讯。IPSec工作在网络层,它可以使用隧道模式封装数据包或是直接加密整个数据包。之后就可以将加密后的数据包封装在新的IP包头中,最后传输到目的地。在目标收到数据包后,去除IP头部分,然后对其进行解密(这时已经完成了客户端到服务器密钥交换、认证工作),最后得到原始数据包。如图1就是IPSec的工作流程图。关于IPSec就简单说到这里,如果想深入了解,Windows系统上的IPSec帮助就是很好的资料。

二,更新FreeBSD
FreeBSD默认并不支持IPSec,这是因为默认内核GENERIC中并没有相关选项,所以需要自己添加,并重新编译内核。
#cd /usr/src/sys/i386/conf
#cp GENERIC DAHUKERNEL
#vi DAHUKERNEL
//添加IPSec相关选项,可参见图2
options IPSEC 
options IPSEC_ESP 
options IPSEC_DEBUG
//保存退出,下面更新系统源代码以及Ports
#mkdir /root/ports_src_update
#cd /usr/share/examples/cvsup
#cp ports-supfile stable-supfile /root/ports_src_update/
#cd /;cd /root/ports_src_update
#vi ports-supfile
//修改“default host=”为你想使用的服务器,比如我是:cvsup.freebsdchina.org
#vi stable-supfile
//同样是修改“default host=” 为你想使用的服务器
#cvsup –g –L 2 ports-supfile
//更新Ports,大概10-20分钟之间,视网络速度而定
#cvsup –g –L 2 stable-supfile
//更新系统源代码,同步到Stable。大概10-20分钟之间,视网络速度而定。在源代码更新完毕之后,就需要用新代码替换系统原有代码以及合并/etc下的配置文件,并且用新内核替换掉旧内核。当然,这步不是必须的,如果你不久之前更新过源代码(或者已经同步到Stable),就可以略过。但,你还是必须更新Ports和重新编译内核。
#cd /;cd /usr/src
#make buildworld //同步系统,这需要很长的时间,最少也要1个小时,也可以运行多
个进程加快该过程:make –j4 buildworld
#make buildkernel GENERIC=DAHUKERNEL
#make installkernel GENERIC=DAHUKERNEL
//编译内核,并用新内核(DAHUKERNEL)替换掉旧内核(GENERIC)。编译完成之后重新启动即可。提示:如果你以前编译过内核,应该先删除/usr/obj下的内核组件文件,这样即可以加快make的速度,又可以避免系统在遇到不能覆盖的文件时发生冲突。/usr/obj目录下的文件比较特殊,它使用了schg(system immutable)标志,这是一个安全措施,为防止意外操作提供的一个保护方法,即使是root用户,也不能删除该文件。如果需要绕过这个限制,可以使用如下方法:
#cd /usr/obj
#chflags –R noschg * 
#rm –rf *
如果这个时候系统的安全级别为1或者更高(根据rc.conf文件中的定义),那么将无法使用上边的命令删除schg标志。需要重新启动系统到单用户模式下方能完成该操作。

#cp –Rp /etc /etc.old
#cd /etc
#mergemaster –cv
//同步配置文件,-v表示限制详细过程,-c表示将配置文件进行比较(diff)而不是合并,如果打算合并配置文件,可以使用-i参数。最后使用uname –a查看结果。

现在,你的系统已经是最新的了,如果你是新安装的系统,请务必按照上边的方法更新系统,这样即可以补上一些安全漏洞,又可以为系统带来更好的性能,和乐而不为呢?!

三,应用IPSec
1,FreeBSD
经过上边的设置,系统已经是最新的,但现在还不能使用IPSec,还需要安装一个为IKE (ISAKMP/Oakley) Key Management Daemon的软件,好在FreeBSD已经将其收录在Ports中,这样就不用在下载了。
#cd /usr/ports/security/racoon
#make install clean
完成之后,我们需要对其进行相应的配置。它被安装到了/usr/local/etc/racoon/目录中,我们需要对psk.txt和racoon.conf进行编辑,以符合我们的需要。提示:在FreeBSD的世界里,凡是安装的软件(不管是通过Package还是Ports),都将安装到/usr/local目录下,配置文件放到/usr/local/etc下,库文件放到/usr/local/lib、/usr/local/libexec、/usr/local/libdata目录中,二进制文件放到/usr/local/bin、/usr/local/sbin目录中。这样做的好处是显而易见的,因为可以在不修改系统的情况下,将/usr/local目录下的子目录和所有文件直接复制到另一个新系统,而安装过的软件大部分都可以运行。
#cd ../../../local/etc/racoon
#cp psk.txt.dist psk.txt
#chmod 0600 psk.txt
//psk.txt权限必须修改为0600,并且为root所有,否则racoon无法运行
#vi psk.txt
//见图3,删除所有内容,只添加:
目标IP 预共享密钥
192.168.0.1 dahubaobao
#cp racoon.conf.dist racoon.conf
#chmod 0600 racoon.conf
//两次chmod后,权限和文件所属应如图4所示。
#vi racoon..conf
//编辑配置文件,注释掉一些不需要的内容。这里需要分开来说,一个是使用CA认证,一个是不使用。如果不使用CA认证,我们就需要把关于CA认证的部分注释掉;如果需要使用,就使用OpenSSL创建CA证书,并在配置文件中填写相关信息(后面会说到)。具体如下。
path certificate "/usr/local/etc/cert" ;
//如果需要CA认证,这里不做任何改动;如果不需要,注释掉就可以了。这里就是放CA证书的目录。默认没有注释。

log debug; //去掉注释,如果你需要日志的话。

isakmp 192.168.0.20 [500];
//去掉注释,添加本地IP。

#my_identifier address;
#my_identifier user_fqdn "[email protected]";
#peers_identifier user_fqdn "[email protected]";
#certificate_type x509 "mycert" "mypriv";
//这里是关于CA认证的地方,如果使用了CA认证,就需要根据使用OpenSSL创建CA证书时所填写的信息来修改这里;如果不使用,注释掉即可。

#my_identifier user_fqdn "[email protected]";
#peers_identifier user_fqdn "[email protected]";
#certificate_type x509 "mycert" "mypriv";
//同上

下面来看看如何使用OpenSSL来创建证书。
#openssl genrsa -des3 -out ca.key 1024
#openssl req -new -x509 -days 365 -key ca.key -out ca.crt

#openssl genrsa -out win2000.key 1024
#openssl req -new -key win2000.key -out win2000.csr
#openssl x509 -req -days 166 -in win2000.csr -CA ca.crt -CAkey ca.key -CAcreateserial –out
win2000.crt
#openssl pkcs12 -export -inkey win2000.key -certfile ca.crt -in win2000.crt -out win2000.p12
//以上是为Windows 2000(目标)创建的证书,由于Windows 2000证书需要Pkcs12格式,所以使用上边这条命令进行转换。下面来创建FreeBSD(本地)系统上的证书。
#openssl genrsa -out freebsd.key 1024
#openssl req -new -key freebsd.key -out freebsd.csr
#openssl x509 -req -days 166 -in freebsd.csr -CA ca.crt -CAkey ca.key -CAcreateserial –out
freebsd.crt
//这样就创建了需要的证书文件,所有的相关文件都会在当前目录下。创建证书的过程可以参见图5、6、7。

现在把win2000.p12复制到Windows 2000,然后运行mmc,“控制台---添加删除管理单元---添加---证书---添加---服务账户---下一步---本地计算机---下一步---IPSEC Policy Agent---完成”。最后如图8将证书导入即可。
#mkdir /usr/local/etc/racoon/cert
#cp * /usr/local/etc/racoon/cert/
#chmod 0600 /usr/local/etc/racoon/cert/*
//把证书文件复制到/usr/local/etc/r
 

 
最新内容:
拒绝服务攻击原理及解决方法[2015-01-06]
如何防范DDoS攻击[2015-01-06]
Cisco路由器上如何防止DDoS[2015-01-06]
修改注册表提高Win2000抗拒绝服务攻击能力[2015-01-06]
从程序详解拒绝服务攻击[2015-01-06]
如何确定网站是否遭到了DDOS攻击[2015-01-06]
相关内容:

合作伙伴: 黑基网 补天科技 威盾科技 站长下载 新飞金信 北京电信 ZOL应用下载
中华人民共和国增值电信业务经营许可证京ICP备14024464 公安备案号 京1081234 
版权所有©2003-2016 冰盾防火墙  www.BingDun.com 法律声明
服务热线:(010)51661195