|
RHEL 5 中建立VPN
-syd168
在多个区域都有办公室的机构通常会使用专用的线路来连接各个办公室,这样可以更高效,在网络间传输的数据也可以受到保护。例如,一些商业机构使用帧中继或ATM网络来连接各个办公室。这种机构可能会非常昂贵,特别是对于中小型企业来说。这种中小型企业既想要扩大规模又不想投入与企业规模相当的高成本,因此都致力于使用数字电路。
为了满足这种需要,虚拟专用网(VPNs)得到开发。和专用网络线路的原则相同,VPN允许在网络间进行安全的数字化传输并通过现存的局域网(LANs)创建一个广域网(WAN)。它与帧中继或ATM的不同之处在于其传输媒介。VPN使用数据报作为传输层在网上进行IP传输,从而通过网络安全地传输到目的地。多数自由软件VPN的实现都使用了开放标准的加密方法来加密传输中的数据。
一些机构使用硬件VPN的解决方案来增强数据的安全性,而其他用户选择使用软件或基于协议的解决方案。有多个厂商可以提供硬件VPN解决方案,如Cisco、Nortel、IBM和Checkpoint。另外,Linux有一个基于软件的免费的VPN解决方案叫作FreeS/Wan,它使用一个标准化的因特网协议安全IPsec来实现。无论是硬件解决方案还是软件解决方案,这些VPN都会象一个特殊的路由器一样存在于各个使用IP连接的办公室之间。
一、VPN是如何工作的呢?
当一个数据包从一个客户端传送时,会通过一个VPN路由器或网关传送,该路由器或网关会为数据包添加一个认证头(AH)来进行引路和认证。然后这些数据会被加密,最后被加上一个包安全载 (ESP)。后者包括用来进行解密和处理的一些指令。
接收的VPN路由器会剥去主题信息,解密数据并把它发送到目的地(即一个工作站或网络上的另一个节点)。通过使用一个网络到网络的连接,本地网络上的接收节点所收到的数据包已经被解密并且处于待处理状态。从网络到网络VPN连接的加密/解密过程对本地节点来说是透明的。
有了如此高水平的安全性,一个网络袭击者如果要劫获这个数据包,他同时还要能够对该数据包进行解密。而在服务器和客户之间使用中间人袭击方法的外侵者至少必须需要一方的私用密钥才能通过验证步骤。因为系统使用多层次的验证和加密,VPN是一种安全有效的连接多个远程节点的方式,运行起来像一个统一的内联网一样。
二、VPNs和RHEL 5 Linux
就实施基于软件解决方案安全地连接到一个WAN方面,RHEL 5 Linux提供多种不同的方式。网络协议安全IPsec即为支持VPN的RHEL 5 Linux的实现方式,同时也有效地满足了有网络办公室的机构及远程用户的使用需求。
三、IPsec
RHEL 5 Linux通过像因特网一样的常用网络载体使用一个安全隧道支持IPsec对远程主机和各网络之间的互相连接。IPsec可以通过应用主机到主机(即一个到另一个电脑工作站)或网络到网络(一个到另一个LAN/WAN)的配置来实现。
在RHEL 5 Linux中IPsec的实现使用Internet Key Exchange(IKE),即一个由网络工程任务强势(Internet Engineering Task Force,IETF)而实现的协议,用来实现相连接系统之间的相互验证和安全关联。
四、创建一个IPsec连接
一个IPsec连接分成两个逻辑阶段。在第一阶段,一个IPsec节点发起与远程节点或网络的连接。该远程节点或网络检查请求连接的节点的资格,预连接的双方协商连接的验证方法。
在RHEL 5 Linux系统上,一种IPsec连接使用pre-sharedkey(事先选好的共享密码)方法进行IPsec节点验证。在pre-sharedkeyIPsec连接中,两个主机双方必须使用同一个密码才能过渡到IPsec连接的第二阶段。
IPsec连接的第二阶段也就是Security Association(安全关联)(SA)在IPsec节点之间被建立的阶段。这个阶段建立一个含有像加密方法、密钥交换参数等更多配置信息的SA数据库。同时这个阶段也在各远程节点和网络间建立起实际的IPsec连接。
RHEL 5 Linux在网络上的主机之间就共享密钥而言使用IKE来实现IPsec。设定密钥守护进程racoon用来处理IKE密钥分配和交换。如需要该守护进程的更多信息,请参考manpage的racoon部分。
五、IPsec的安装
使用IPsec需要在所有IPsec主机上(如果使用主机到主机配置)或路由器上(如果使用网络到网络配置)安装ipsec-toolsRPM软件包。该RPM软件包含有主要程序库、守护进程和建立IPsec连接的各种配置文件,包括:
- /sbin/setkey:操纵内核中IPsec的密钥管理和安全属性。这项可执行程序由racoon密钥管理守护进程控制。如需要更多信息,请参阅manpage的setkey(8)部分。
- /sbin/racoon:IKE密钥管理守护进程,用来管理和控制由IPsec相连系统间的安全关联和密钥共享。
- /etc/racoon/racoon.conf:即racoon守护进程配置文件,用来配置IPsec连接的各个方面,包括连接时使用的验证方法和加密算法。如要了解现有命令的全部列表,请参阅manpage的racoon.conf(5)部分。
要在RHEL 5 Linux中配置IPsec,您可以使用Network Administration Tool或手工编辑网络和IPsec配置文件。要连接通过IPsec连接的两个主机,请参阅第3.3.6节“IPsec主机到主机连接配置”。要通过IPsec把一个LAN/WAN和另一个进行连接,请参阅第3.3.7节“IPsec Network-to-Network Configuration(IPsec网络到网络配置)”。
六、IPsec主机到主机连接配置
IPsec通过配置可以使用主机到主机方式将一个台式机或工作站(主机)连接到另一个。这种类型的连接利用连接至每一台主机的网络在主机之间建立一个安全隧道。建立主机到主机连接的要求也就是每台主机上IPsec的配置是极少的。主机双方只需要连接到一个可靠的连接载体(比如因特网)和RHEL 5 Linux上,从而建立IPsec连接。
1.主机到主机的连接
主机到主机的IPsec连接是一种两个系统之间的加密连接,双方都运行带有同样验证密码的IPsec。IPsec连接激活后,两个主机之间的任何网络业务都以加密形式进行。
要配置一个主机到主机的IPsec连接,在每个主机上都进行以下步骤:
备注:应该在您配置的实际机器上进行下面的步骤,不要尝试通过远程方式配置和建立IPsec连接。
(1)在命令shell中输入system-config-network来启动Network Administration Tool。
(2)在「IPsec」标签页中点击新建来启动IPsec配置向导。
(3)点击Forward来启动配置主机到主机的IPsec连接。
(4)为这一连接键入一个独一无二的名称,比如叫ipsec0。如需要的话,选择机器启动时便自动激活该连接的会话框。请点击Forward继续。
(5)连接类型选择Host to Host encryption,然后点击Forward。
(6)选择要使用的加密类型:手动加密或自动加密。如果你选择手动加密,这一进程的后期要提供一个密钥。如果你选择自动加密,racoon守护进程则会生成密钥。而且如果你要使用自动加密的话,必须安装ipsec-tools软件包。点击Forward继续。
(7)键入远程主机的IP地址。要测定远程主机的IP地址,请在远程主机上使用下面的命令:
#/sbin/ifconfig <device>
其中<device>是你要用来建立VPN连接的以太网(Ethernet)设备。如果系统上只有一个Ethernet卡,那它的名称就是典型的eth0。下面的例子显示这个命令调出的相关信息(注意这只是输出信息的一个例子而已):
eth0 Link encap:Ethernet HWaddr 00:0C:6E:E8:98:1D
inetaddr: 172.16.44.192 Bcast:172.16.45.255 Mask:255.255.254.0
其IP地址为inetaddr:标签后面的数字。点击Forward继续。
(8)如果在6步骤中选择了手动加密,请指定要使用的密钥,或点击Generate生成一个密钥。指定验证密码,或点击Generate生成一个验证密码,可以是数字和字母的任意组合。点击Forward继续。
(9)验证IPsec—含总结信息的页面,然后点击Apply。
(10)点击File=>Save以保存配置。
要使作出的修改生效,你也许需要重新启动网络。重新启动的话,使用下面的命令:
#service network restart
(11)从列表中选择IPsec连接,然后点击Activate按钮。
(12)另一方的主机也要重复整个过程,并且在步骤8中一定要使用同样的密钥。否则,IPsec不会运行。
配置好IPsec连接之后,就会在IPsec列表中显示出来,跟图1中显示的一样。当IPsec连接配置好后,就创建了下面的文件:
/etc/sysconfig/network-scripts/ifcfg-<nickname>
/etc/sysconfig/network-scripts/keys-<nickname>
/etc/racoon/<remote-ip>.conf
/etc/racoon/psk.txt
如果选择了自动加密的话,/etc/racoon/racoon.conf文件也同时被创建。界面呈现出来时,/etc/racoon/racoon.conf被修改,增加了<remote-ip>.conf。
图1 IPsec连接
2.手动IPsec主机到主机配置
建立连接的第一步是从各工作站收集系统和网络的信息。要建立主机到主机连接,你需要下列信息:
- 每个主机的IP地址
- 一个独一无二的名称,例如,ipsec1。在进行IPsec连接时这个名称用来进行身份验证并与其它服务和连接区别开来。
- 一个事先选好的密钥或由racoon自动生成的密钥。
- 一个事先选好的共享验证密码,该密码在连接建立的最初阶段会用到,用来进行密钥交换。
例如,假设工作站A和工作站B想通过IPsec隧道建立相互的连接。这两个工作站要用一个事先选好的共享密码即Key_Value01进行连接,而且用户们同意让racoon自 动生成一个主机之间共享的验证密码。连接双方决定以ipsec1来命名这一连接。
备注:你选择的PSK应是大写字母、小写字母、数字和标点符号的组合,因为容易猜出的PSK不安全。对每个主机来说选择相同的连接名称倒不是必须的。你应该选择一个对你的安装来说既方便又有意义的名称。
下面是IPsec为工作站A与工作站B进行主机到主机IPsec连接的配置文件。这个例子中识别该连接的独一无二的名称是ipsec1,因此该连接合成的文件名是/etc/sysconfig/network-scripts/ifcfg-ipsec1。
DST=X.X.X.X
TYPE=IPSEC
ONBOOT=no
IKE_METHOD=PSK
对工作站A来说,X.X.X.X是工作站B的IP地址。对工作站B来说,X.X.X.X是工作站A的IP地址。这一连接的设定不是在启动(ONBOOT=no)时就启动该连接,而是要使用事先选好的共享验证密码方式(IKE_METHOD=PSK)进行连接。
下面是关于事先选好的共享验证密码的文件内容(叫/etc/sysconfig/network-scripts/keys-ipsec1),两个工作站都需要验证相互的身份。这个文件的内容在两个工作站处应该是完全一致的,而且应该只有根用户才有读取和写入该文件的权限。
IKE_PSK=Key_Value01
很重要:要在keys-ipsec1文件创建后修改此文件以保证只有根用户能够读取和编辑该文件,请使用下面的命令:
#chmod 600 /etc/sysconfig/network-scripts/keys-ipsec1
任何时候如果需要修改验证密码,两个工作站都应通过编辑keys-ipsec1文件来实现。要使连接正常运行,双方的验证密码必须完全一样。
接下来的例子显示连接到远程主机时第一阶段的具体配置。该文件叫X.X.X.X.conf,其中X.X.X.X是IPsec连接中远程主机的IP地址。注意这个文件是在IPsec隧道被激活时自动生成的,而且应该无法直接对它进行编辑。
remote X.X.X.X
{
exchange_mod eaggressive, main;
my_identifier address;
proposal {
encryption_algorithm 3des;
hash_algorithm sha1;
authentication_method pre_shared_key;
dh_group 2;
}
}
默认情况下,当IPsec连接启动时第一阶段配置文件含有RHEL 5 Linux使用的和由IPsec实现的下列声明:
- remote X.X.X.X:指定该配置文件随后的文件段只适用于由X.X.X.XIP地址识别的远程节点。
- exchange_mode aggressive:在RHEL 5 Linux上IPsec默认的配置是使用挑衅性的验证方式(aggressive authentication mode),这样可以使该连接在空中降低位置,从而允许与多个主机进行多项连接的IPsec配置。
- my_identifier address:验证节点时指定要使用的验证身份的方式,RHEL 5 Linux使用IP地址来识别节点。
- encryption_algorithm 3des:指定验证身份时使用的密码暗号。默认情况下,规定使用Triple Data Encryption Standard(3DES)。
- hash_algorithm sha1:指定节点之间在第一阶段的协商中所使用的散列算法。默认情况下,给定使用Secure Hash Algorithm version1(安全散列算法第一版)。
- authentication_method pre_shared_key:指定节点之间协商中所使用的验证方法。默认情况下,RHEL 5 Linux使用事先选好的共享密码验证方法。
- dh_group 2:指定Diffie-Hellman的组号码以便建立动态生成的会话密钥。其默认号码是modp1024(group2)。
a)Racoon配置文件
/etc/racoon/racoon.conf文件在所有IPsec节点上应该是完全一样的,只有一个例外,那就是include"/etc/racoon/X.X.X.X.conf"声明。这个声明(以及它相关的文件)是在IPsec隧道被激活时生成的。对工作站A来说,include声明中的X.X.X.X是工作站B的IP地址。反过来则是工作站B的IP地址。下面显示的是当IPsec连接被激活时生成的racoon.conf的典型文件。
#Racoon IKE daemon configuration file.
#See' man racoon.conf' for a description of the format and entries.
path include "/etc/racoon";
path pre_shared_key "/etc/racoon/psk.txt";
path certificate "/etc/racoon/certs";
sainfo anonymous
{
pfs_group 2;
lifetime time 1hour;
encryption_algorithm 3des, blowfish 448, rijndae l;
authentication_algorithm hmac_sha1, hmac_md5;
compression_algorithm deflate;
}
Include "/etc/racoon/X.X.X.X.conf";
这个默认的racoon.conf文件包括IPsec配置定义好的路径、事先选好的共享密钥文件和证书。sainfo anonymous中的字段描述IPsec节点之间的第二阶段SA—、IPsec连接的性质(包括所用的加密算法)和交换密钥的方法。下面的列表定义第二阶段的各项字段:
- *sainfo anonymous:表明SA可以在匿名状态下启动任何同级设备,只要其IPsec资格相匹配。
- *pfs_group 2:定义Diffie-Hellman密钥交换协议,该协议决定使用什么方法使IPsec节点之间建立相互的临时会话密码,以便进行IPsec第二阶段的连接。默认情况下,RHEL 5 Linux实施IPsec使用Diffie-Hellman密码密钥交换组中的组2(group2)(或modp1024)。组2使用1024比特模运算方式,这种方式可以防止袭击者们试图破解在此之前传输的IPsec信息,即使他们找到一个有效密码而进入也无济于事。
- *Lifetime time 1hour:这个参数指定一个以时间或以字节数来量化的SA寿命。默认RHEL 5 Linux时IPsec规定其寿命是一个小时。
- *encryption_algorithm 3des, blowfish 448, rijndael:指定所支持的进行第二阶段的加密暗号RHEL 5 Linux支持3DES,448-bitBlowfish,和Rijndael(在Advanced Encryption Standard或AES中使用的密码)。
- *authentication_algorithm hmac_sha1, hmac_md5:列出所支持的为身份验证而进行的散列算法。所支持的方式是sha1和md5散列讯息验证码(HMAC)。
- *compression_algorithm deflate:为IP Payload Compression(IPCOMP)支持设备定义Deflate压缩算法,这样能在传输比较慢的连接上潜在地加速IP数据报的传输。
要开始连接,在各个主机上运行下面的命令:
#/sbin/ifup <nickname>
其中<nickname>即是你为这个IPsec连接指定的名称。
要测试IPsec连接,执行tcpdump命令来查看传输在主机之间的网络数据包,并验证该连接是通过IPsec进行加密的。这个数据包应该包括一个AH标题,并且显示是ESP数据包,ESP意味着是加密的。例如:
#tcpdump -n -i eth0 host <targetSystem>
IP 172.16.45.107 > 172.16.44.192 : AH (spi =0x0954ccb6,seq=0xbb): ESP (spi = 0x0c9f2164, seq = 0xbb)
七、IPsec网络到网络配置
IPsec也可以用来配置整个一个网络(像LAN或WAN)通过网络到网络连接方式连接到另一个远程网络上。网络到网络连接要求在连接的两端设定IPsec路由器来用透明的方式处理路径信息,其路径从LAN上的一个节点到远程LAN上的另一个节点。图2显示一个网络到网络的IPsec隧道连接。
图2 A network-to-network IPSec tunneled connection
这个图示显示两个由Internet(因特网)隔开的LAN。这两个LAN用IPsec路由器来验证和启动一个通过因特网的安全隧道连接起来的连接。在传输中截获数据包会需要强力破解密码才能获得,这样就保护了数据包在两个LAN之间的传输。从192.168.1.0/24IP区间的一个节点到192.168.2.0/24IP区间的另一个节点的信息交流对这两个节点来说是完全透明的,因为信息的处理、加密/解密以及传输IPsec数据包完全都是由IPsec路由器进行的。建立网络到网络连接所需信息包括:
- 专用IPsec路由器上可以公开访问的IP地址
- 由IPsec路由器服务的LAN/WAN的网络地址区间(比如192.168.1.0/24或10.0.1.0/24)。
- 将数据由网络传输到因特网的网关设备IP地址
- 一个独一无二的名称,例如,ipsec1。在进行IPsec连接时这个名称用来进行身份验证并与其它服务和连接区别开来。
- 一个选定的密钥或由racoon自动生成的密钥
- 一个事先选好的共享验证密码,该密码在连接建立的最初阶段会用到,用来进行密钥交换。
1.VPN网络到网络连接
一个网络到网络IPsec连接要用两个IPsec路由器,一个网络一个,专用分支网络之间的传输就通过这两个路由器建立。
例如,正像图3显示的一样,如果192.168.1.0/24专用网向192.168.2.0/24专用网传输网络业务,数据包会经网关0(gateway0)到ipsec0,再经因特网到ipsec1,然后到网关1(gateway1),最后到达192.168.2.0/24分支网络。
IPsec路由器要求有可以公开访问的IP地址和第二个以太网(Ethernet)设备连接到相应的专用网上。网络业务只能通过一个IPsec路由器到另一个IPsec路由器,而且两个路由器之间的传输连接是加密的
图3 网络到网络IPsec
其它网络配置选项包括在各个IP路由器和因特网之间设立防火墙,也在每个IPsec路由器和分支网络网关之间设立内联网防火墙。IPsec路由器和分支网络网关可以是同一个系统下的两个以太网(Ethernet)设备:一个有可以公开访问的IP地址,用作IPsec路由器;而另一个有专用IP地址,用作专用分支网络的网关。每个IPsec路由器可以在其专用分支网内使用网关,也可以通过公用网关将数据包传送到另一个IPsec路由器。用下列步骤来配置网络到网络IPsec连接(如图4所示):
图4 本地网络信息
(1) 在命令shell中输入system-config-network来启动Network Administration Tool。
(2) 在「IPsec」标签页中点击新建来启动IPsec配置向导。
(3) 点击Forward启动网络到网络IPsec连接的配置。
(4) 为这个连接键入一个独特的名称,比如叫ipsec0。如需要的话,选择电脑启动时就激活该连接。点击Forward继续。
(5) 连接类型选择Network to Network encryption(VPN),然后点击Forward继续。
(6) 选择要使用的加密类型:手动加密或自动加密。如果你选择手动加密,这一进程的后期要提供一个密钥。如果你选择自动加密,racoon守护进程则会生成密钥。而且如果你要使用自动加密的话,必须安装ipsec-tools软件包。点击Forward继续。
(7) 在Local Network页面上键入下面的信息:
*Local Network Address:由IPsec路由器连接到该专用网上设备的IP。
*Local Subnet Mask:本地网络IP地址的分支网络掩码。
*Local Network Gateway:专用分支网络的网关。
点击Forward继续。
(8) 在Remote Network页面上键入下面的信息:
*Remote IP Address—连接到其它专用网的IPsec路由器的可以公开访问的IP地址。我们的例子中要为ipsec0键入可以公开访问的IP地址ipsec1,反之亦然。
*Remote Network Address—其它IPsec路由器背后的专用分支网的网络地址。我们的例子中,配置ipsec1时要键入192.168.1.0,配置ipsec0时要键入192.168.2.0。
*Remote Subnet Mask—远程IP地址的子网掩码。
*Remote Network Gateway—该远程网络地址的网关IP地址。
*如果在6步骤中选择手动加密,要指定所使用的密钥,或者点击Generate生成一个密钥。
*指定一个验证密码或点击Generate生成一个验证密码。该密码可以是数字和字母的任意组合。
(9)点击Forward继续。
(10)验证IPsec—含总结信息的页面,然后点击Apply。
(11)选择File=>Save保存配置。
(12)从列表中选择IPsec连接,然后点击Activate来激活该连接。
(13)启动IP转发:
1)编辑/etc/sysctl.conf并设定net.ipv4.ip_forward为1。
2)用下面的命令使这一改变生效:
#/sbin/sysctl -p /etc/sysctl.conf
如果必要的话,激活IPsec连接的网络脚本会自动生成通过IPsec路由器传输数据包的网络路径。
2.手动IPsec网络到网络配置
假设LAN A(lana.example.com)和LAN B(lanb.example.com)要通过IPsec隧道进行相互的连接。LAN A的网络地址是192.168.1.0/24区间,而LAN B使用192.168.2.0/24区间。LAN A的网关IP地址为192.168.1.254,LAN B的网关IP地址为192.168.2.254。IPsec各个路由器由LAN网关使用两个网络设备(eth0和eth1)隔开:eth0被指派给一个可以公开访问的静态IP地址,可以连接因特网;而eth1则被用作一个选路点(routing point)来处理和传输从一个网络节点到各远程网络节点的LAN数据包。
各网络之间的IPsec连接使用事先选好的共享密钥r3dh4tl1nux,而且系统管理员A和B同意让racoon自动生成并共享每个IPsec路由器之间的验证密码。LANA管理员决定命名该IPsec连接为ipsec0,而LANB管理员命名该IPsec连接为ipsec1。
下面的例子显示LANA的网络到网络IPsec连接的ifcfg文件的内容。本例中识别该连接的独特名称为ipsec0,所以合成的文件叫作:
/etc/sysconfig/network-scripts/ifcfg-ipsec0。
TYPE=IPSEC
ONBOOT=yes
IKE_METHOD=PSK
SRCGW=192.168.1.254
DSTGW=192.168.2.254
SRCNET=192.168.1.0/24
DSTNET=192.168.2.0/24
DST=X.X.X.X
下面的列表描述该文件的内容:
*TYPE=IPSEC:指定连接类型。
*ONBOOT=yes:指定电脑启动时便激活这个连接。
*IKE_METHOD=PSK:指定该连接使用事先选好的共享密钥来进行身份验证。
*SRCGW=192.168.1.254:源网关的IP地址。对LANA来说是LANA网关,对LANB来说是LANB网关。
*DSTGW=192.168.2.254:目的地网关的IP地址。对LANA来说是LANB网关,对LANB来说是LANA网关。
*SRCNET=192.168.1.0/24:为IPsec连接指定源网络,在这个例子中则是LANA的网络区间。
*DSTNET=192.168.2.0/24:为IPsec连接指定目的地网络,在这个例子中则是LANB的网络区间。
*DST=X.X.X.X:LANB的可以公开访问的IP地址。
下面的例子是事先选好的共享密钥文件的内容,该文件叫/etc/sysconfig/network-scripts/keys-ipsecX(其中X对LANA来说是0,对LANB来说是1)。A和B两个网络都用这个密钥来相互验证,而且这个文件的内容在A和B处应该完全一致,只有根用户才有读取和写入的权限。
IKE_PSK=r3dh4tl1nux
很重要:文件keys-ipsecX创建之后,要修改该文件以保证只有根用户才能读取或编辑这个文件,那么请运行下面的命令:
#chmod 600 /etc/sysconfig/network-scripts/keys-ipsec1
任何时候需要修改验证密码,请在IPsec的两个路由器上编辑keys-ipsecX文件,要使连接正常运转,两个密钥必须完全一致。
下面的例子显示IPsec连接的/etc/racoon/racoon.conf配置文件内容。注意该文件的最下面一行即include是自动生成的,而且只有在IPsec隧道运行时才显示。
#Racoon IKE daemon configuration file.
#See' man racoon.conf 'for a description of the format and entries.
path include "/etc/racoon";
path pre_shared_key "/etc/racoon/psk.txt";
path certificate "/etc/racoon/certs";
sainfo anonymous
{
pfs_group 2;
lifetimetime 1hour;
encryption_algorithm 3des, blowfish 448, rijndael;
authentication_algorithm hmac_sha1, hmac_md5;
compression_algorithm deflate;
}
Include "/etc/racoon/X.X.X.X.conf"
下面是连接到远程网络的具体配置,该文件叫作X.X.X.X.conf(其中X.X.X.X是远程IPsec路由器的IP地址)。注意该文件是IPsec隧道被激活时自动生成的,而且无法直接对其进行编辑。
remote X.X.X.X
{
exchange_mod eaggressive, main;
my_identifier address;
proposal {
encryption_algorithm 3des;
hash_algorithm sha1;
authentication_method pre_shared_key;
dh_group2;
}
}
在启动IPsec连接之前,内核中IP转发功能应该被启动。要启动IP转发功能,请:
1) 编辑/etc/sysctl.conf并设定net.ipv4.ip_forward为1。
2) 用下面的命令使这一改变生效:
#sysctl -p /etc/sysctl.conf
要启动IPsec连接,请在各个路由器上使用下面的命令:
#/sbin/ifup ipsec0
连接被激活,LANA和LANB便可以相互交流了,因为在IPsec连接上运行ifup时路径就通过初始化脚本被自动生成。要想显示该网络的路径列表,请用下面的命令:
#/sbin/ip route list
要测试IPsec连接,在外选路(externally-routable)设备(这个例子里即eth0)上运行tcpdump程序来查看网络数据包在主机(网络)之间的传输,以及验证其传输是通过IPsec加密的。例如,要检查LANA的IPsec连通性,使用下面的命令:
#tcpdump -n -i eth0 host lana.example.com
这个数据包应该包括一个AH主题,并显示为ESP数据包,其中,ESP意味着是加密的。例如,(/表示一行的继续):
12:24:26.155529lanb.example.com>lana.example.com:AH(spi=0x021c9834,seq=0x358):lanb.example.com>lana.example.com:ESP(spi=0x00c887ad,seq=0x358)(DF)\
八、启动和中止IPsec连接
如果IPsec连接的配置不是在电脑启动就激活,你可以从命令行中启动。
要启动连接,如果是主机到主机IPsec连接就在各个主机上运行下面的命令,如果是网络到网络IPsec连接,就在各个IPsec路由器上运行下面的命令:
#/sbin/ifup <nickname>
其中,<nickname>是先前配置的名称,比如像ipsec0。要中止连接,运行下面的命令:
#/sbin/ifdown <nickname> |
|