十分鐘配置Openswan
Openswan是什麼,做什麼用,我這裡不想再說,實在不知道的,就google一下了。理論的上知識也請google,這裡呢只想按照1、2、4、 5、6、7這種死步驟配置,保證能配通就OK了。因為網上的這類資料也多也全,只不過呢新手看上去有點困難,也不容易配置成功吧。
一、 系統安裝。
1、 下載軟件
cd /usr/local/src
我喜歡把程序下載到這個目錄。
wget http://www.openswan.org/download/openswan-2.4.7.tar.gz
不過建議在windows下載,再拷貝到linunx系統下去,這樣比較快。
2、 tar zxvf openswan-2.4.7.tar.gz
3、 cd /usr/local/src/openswan-2.4.7
4、 make programs
5、 make install
6、 export KERNELSRC=/usr/src/kernels/2.6.9-11.EL-i686
我的核心文件是放在這裡,你的放在什麼位置要自己先確定好,這條不要硬搬。
7、 make module
8、 make minstall
9、 depmod -a
10、 modprobe ipsec
11、 echo “1” > /proc/sys/net/ipv4/ip_forward
12、 echo “0” > /selinux/enforce
好了,安裝完畢。
檢查安裝情況
# ipsec --version
Linux Openswan 2.4.7 (klips)
See `ipsec --copyright' for copyright information.
出現以上提示,安裝成功。
二、 配置
主要配置文件有兩個,ipsec.conf、ipsec.secrets。
在這裡我們看看網絡拓樸圖,網絡一服務器的內網接eth0接口,地址是172.21.1.1,外網接eth1接口,地址是203.86.61.172,主機是left,下連172.21.1.0/24這個局域網。網絡二服務器的內網接eth0接口,地址是176.20.1.1,外網接eth1接口,地址是 203.86.61.173,主機是right,下連176.20.1.0/24這個局域網。
1、 ipsec newhostkey –output /etc/ipsec.secrets
在左、右服務器裡,分別執行以上命令。
2、 vi /etc/ipsec.conf,內容如下,比照下面文件,修改和增加,其實要改和增加的地方並不多,有“#”的都是注釋,不用管。
# /etc/ipsec.conf - Openswan IPsec configuration file
# RCSID $Id: ipsec.conf.in,v 1.15.2.6 2006/10/19 03:49:46 paul Exp $
# This file: /usr/local/share/doc/openswan/ipsec.conf-sample
#
# Manual: ipsec.conf.5
version 2.0 # conforms to second version of ipsec.conf specification
# basic configuration
config setup
# plutodebug / klipsdebug = "all", "none" or a combation from below:
# "raw crypt parsing emitting control klips pfkey natt x509 private"
# eg: plutodebug="control parsing"
#
# ONLY enable plutodebug=all or klipsdebug=all if you are a developer !!
#
# NAT-TRAVERSAL support, see README.NAT-Traversal
interfaces=%defaultroute
nat_traversal=yes
# virtual_private=%v4:10.0.0.0/8,%v4:192.168.0.0/16,%v4:172.16.0.0/12
#
# enable this if you see "failed to find any available worker"
nhelpers=0
# Add connections here
conn %default
authby=rsasig
compress=yes
# sample VPN connections, see /etc/ipsec.d/examples/
#Disable Opportunistic Encryption
include /etc/ipsec.d/examples/no_oe.conf
conn network-to-network
left=203.86.61.173
leftsubnet=176.20.1.0/24
leftid=@left
# RSA 2192 bits left Tue Mar 13 14:55:48 2007
leftrsasigkey=0sAQPW/s8yMYIAPS97rK2JESc0ZOMrcuE2sFSdsfh++JGe97t7m1As+QPiVyLP6KuWlLBjIJzwvpUbipiCmKjmNKXZ+eS0dtAw1faVpVxa+7DJLgAnHjyafYW3SxXRF/xEp0HBckJNeGtjJheqtmWggUa6WejjhPNosmA7Zyj07ikW05JZYvUNf2uFBBupRMC0kwmFRpdah2IiDSecOy57LkACS6AFhX60PTh0Eip1N0cJUXjbrS95KudcPYsXpw6bKQbHl/Vku+0RfqIfZ2tXXcqj5OKJSeMp1fh6Bt+zh8T5qPZJNvU19xJufdSDQmaxI4XaGHwKmA1KIBotVS4F+0DVn0mvDIf1HfF/YNsKPiI9diJn
leftnexthop=%defaultroute
right=203.86.61.172
rightsubnet=172.21.1.0/24
rightid=@right
# RSA 2192 bits right Sun Mar 11 02:17:24 2007
rightrsasigkey=0sAQO/ygUllGNfYd/3athFYSqb6GUdp18oMZ2LdOa3ToJCGATpJp6/C/0BpShGybNtb95kyKI63mVnWkYmN6NUW5qZJpMSnR5nWAVyHaNF1KbQ9j6ZhGLX0kRb80NNXPRCEpOCKDfqKtF0CbqghbqCtv2wV+gjt3MSO3d9WXWOT5xXJIwLohV+hA/rGrAMAz4Axcl9RudFnkKr3g0KYp86YktAPYJt8xBtqBFWdIO0WncWB3F/XpZKZdUMJ78M50yOHlBqOOnemkAnVfFFGCBJj27aheDFpp1QPhRdqjExsHK5mT3uKxJPehOqoJaIqcHMHJlBUxXNhGz5+T/AiaLkiwtbtHQjIWAtyUklbGUAql8EG1o9
rightnexthop=%defaultroute
auto=add
leftrsasigkey和rightrsasigkey這行,不要硬搬,因為這兩行是我的機器上的,你的數值和我的不一樣,可用下面方法輸入。
在left服務器裡。
3、 ipsec showhostkey --left >> /etc/ipsec.conf,注意一定要是 “>>”,不要輸入成“>”。
4、 再到right服務器裡,
ipsec showhostkey --right > rightrsasigkey.tmp
5、 scp ./rightrsasigkey.tmp root@left:/etc/rightrsasigkey.tmp
將在right服務器產生的rightrsasigkey.tmp文件,拷貝到left服務器的/etc/目錄下
6、 在left服務裡,
cd /etc/
cat rightrsasigkey.tmp >> /etc/ipsec.conf,注意一定要是 “>>”,不要輸入成“>”。
7、 scp /etc/ipsec.conf root@right:/etc/ipsec.conf
在left服務器,將配置好的ipsec.conf拷貝到right服務器,這裡做了這麼多,其實就要要達到left和right兩個服務器上的 ipsec.conf文件配置相同,而兩台服務器產生rsasigkey值又不一樣,當然你也可用復制、粘貼的方法輸入rsasigkey的值,或許你有更好的辦法,目的就是在left服務器的ipsec.conf文件上要有right服務器的rsasigkey值,反之亦然。
8、 校驗ipsec
[root@right ~]# ipsec verify
Checking your system to see if IPsec got installed and started correctly:
Version check and ipsec on-path [OK]
Linux Openswan 2.4.7 (klips)
Checking for IPsec support in kernel [OK]
Testing against enforced SElinux mode [OK]
Checking for RSA private key (/etc/ipsec.secrets) [OK]
Checking that pluto is running [OK]
Two or more interfaces found, checking IP forwarding [OK]
Checking NAT and MASQUERADEing [OK]
Checking for 'ip' command [OK]
Checking for 'iptables' command [OK]
Opportunistic Encryption Support [DISABLED]
出現以上提示,你的VPN已經OK了,
9、 ipsec auto --up network-to-network
在兩個服務器上運行以上命令,啟動VPN。
10、檢查隧道建立情況,在right服務器上,
[root@right ~]# ipsec eroute
922 172.21.1.0/24 -> 176.20.1.0/24 =>
[email protected]
[root@right ~]#
在left服務器上,
[root@left ~]# ipsec eroute
915 176.20.1.0/24 -> 172.21.1.0/24 =>
[email protected]
[root@left ~]#
出現這兩行,說明隧道已經建立了, 也可以用下面這個命令檢查隧道,信息更豐富。
[root@right ~]# ipsec look
在172.21.1.0/24和176.20.1.0/24這兩個局域網內,互相對ping,應該能ping通了。現在我們就能互相訪問這兩個局域網內的服務了。這可是真實環境配置哦。