172.16.10.16 10.86.10.17 10.86.10.18 192.168.10.16
首先要保證:
<code>lclient </code><code>ping</code><code>通lserver和rserver</code>
<code>rclient </code><code>ping</code><code>通rserver和lserver</code>
<code>rpm -Uvh http:</code><code>//mirrors</code><code>.ustc.edu.cn</code><code>/fedora/epel/6/x86_64/epel-release-6-8</code><code>.noarch.rpm</code>
<code>yum clean all</code>
<code>yum makecache</code>
<code>yum -y </code><code>install</code> <code>ipsec-tools </code>
<code>yum -yinstall gmp gmp-devel </code><code>gawk</code> <code>flex bison</code>
<code>cp</code> <code>/etc/sysctl</code><code>.conf</code><code>/etc/sysctl</code><code>.conf.bak-$(</code><code>date</code> <code>+%F)</code>
<code>cat</code><code>>></code><code>/etc/sysctl</code><code>.conf<<EOF</code>
<code>#create for darren</code>
<code>net.ipv4.ip_forward = 1</code>
<code>net.ipv4.conf.default.rp_filter= 0</code>
<code>net.ipv4.conf.default.accept_source_route= 0</code>
<code>kernel.sysrq = 0</code>
<code>kernel.core_uses_pid = 1</code>
<code>net.ipv4.tcp_syncookies = 1</code>
<code>kernel.msgmnb = 65536</code>
<code>kernel.msgmax = 65536</code>
<code>kernel.shmmax = 68719476736</code>
<code>kernel.shmall = 4294967296</code>
<code>net.ipv4.conf.eth1.send_redirects= 0</code>
<code>net.ipv4.conf.eth1.accept_redirects= 0</code>
<code>net.ipv4.conf.eth0.send_redirects= 0</code>
<code>net.ipv4.conf.eth0.accept_redirects= 0</code>
<code>net.ipv4.conf.lo.send_redirects= 0</code>
<code>net.ipv4.conf.lo.accept_redirects= 0</code>
<code>net.ipv4.conf.default.send_redirects= 0</code>
<code>net.ipv4.conf.default.accept_redirects= 0</code>
<code>net.ipv4.conf.all.send_redirects= 0</code>
<code>net.ipv4.conf.all.accept_redirects= 0</code>
<code>#create for Darren 2016/9/4</code>
<code>EOF</code>
<code>ntpdate pool.ntp.org</code>
<code>echo</code> <code>'*/5 * * * * /usr/sbin/ntpdate pool.ntp.org'</code> <code>>></code><code>/var/spool/cron/root</code>
<code>mkdir</code> <code>-p </code><code>/home/darren/tools</code>
<code>cd</code> <code>/home/darren/tools</code>
<code>wget https:</code><code>//download</code><code>.openswan.org</code><code>/openswan/openswan-2</code><code>.6.42.</code><code>tar</code><code>.gz</code>
<code>cd</code> <code>openswan-2.6.42</code>
<code>make</code> <code>programs</code>
<code>make</code> <code>install</code>
<code>ipsec --version </code><code>#檢視版本</code>
<code>ipsec verify </code><code>#驗證</code>
<code>echo</code> <code>'1'</code><code>></code><code>/proc/sys/net/core/xfrm_larval_drop</code> <code>#錯誤解決</code>
<code>/etc/init</code><code>.d</code><code>/ipsec</code> <code>start </code><code>#啟動ipsec</code>
<code>echo</code> <code>'export LC_ALL=C'</code> <code>>></code><code>/etc/profile</code>
<code>tail</code> <code>-1 </code><code>/etc/profile</code>
<code>source</code> <code>/etc/profile</code>
<code>openswan的主要配置檔案</code>
<code>/etc/ipsec</code><code>.secrets </code><code>#用來儲存private RSA keys和preshared secrets </code>
<code>/etc/ipsec</code><code>.conf </code><code>#主要配置檔案(settings、options、defaults、connections)</code>
1.在Lserver、Rserver上分别生成新的hostkey:
<code>cp</code> <code>/etc/ipsec</code><code>.secrets </code><code>/etc/ipsec</code><code>.secrets.$(</code><code>date</code> <code>+%F)</code>
<code>ipsec newhostkey --output</code><code>/etc/ipsec</code><code>.secrets</code>
此處有坑:生成很長時間沒有成功。
<code>第一,檢視是否啟動ipsec:</code><code>/etc/init</code><code>.d</code><code>/ipsec</code> <code>start</code>
<code>第二,實在不行就需要換版本。</code>
2.在Lserver上執行下面的指令獲得leftrsasigkey(即Lserver的公鑰public key)
<code>ipsec showhostkey --left ></code><code>/tmp/key</code><code>.log</code>
3.在Rserver上執行下面的指令獲得Reftrsasigkey(即Lserver的公鑰public key)
<code>ipsec showhostkey --right ></code><code>/tmp/key</code><code>.log</code>
4.在Lserver及Rserver上編輯/etc/ipsec.conf
<code>左邊:</code>
<code>cp</code> <code>/etc/ipsec</code><code>.conf </code><code>/etc/ipsec</code><code>.conf.$(</code><code>date</code> <code>+%F)</code>
<code>vi</code> <code>/etc/ipsec</code><code>.conf</code>
<code>#create by darren.</code>
<code>#http://www.w501.pw</code>
<code>version 2.0</code>
<code>config setup</code>
<code> </code><code>nat_traversal=</code><code>yes</code>
<code> </code><code>virtual_private=%v4:192.1.1.0</code><code>/16</code><code>,%v4:172.1.1.0</code><code>/12</code>
<code> </code><code>oe=off</code>
<code> </code><code>protostack=netkey</code>
<code> </code>
<code>conn left_lan</code>
<code> </code><code>leftsubnet=172.1.1.0</code><code>/24</code>
<code> </code><code>also=A-B </code>
<code>conn right_lan</code>
<code> </code><code>rightsubnet=192.1.1.0</code><code>/24</code>
<code> </code><code>also=A-B</code>
<code>###############################################</code>
<code>conn A-B</code>
<code>left=10.86.10.17 </code>
<code>leftid=@left</code>
<code>#leftsubnet=172.1.1.0/24 #如果上面的不要這裡可以取消注釋。</code>
<code># rsakey AQOgG5Gq4</code>
<code># leftrsasigkey=這裡的key需要複制/tmp/key.log的内容。</code>
<code>leftnexthop=%defaultroute</code>
<code>right=10.86.10.18 </code>
<code>rightid=@right</code>
<code>#rightsubnet=192.168.1.0/24</code>
<code># rsakey AQNDxTfqK</code>
<code>#rightrsasigkey=這裡的key需要複制/tmp/key.log的内容 </code>
<code>rightnexthop=%defaultroute</code>
<code>auto=start</code>
<code>右邊:</code>
<code>cp</code> <code>/etc/ipsec</code><code>.conf</code><code>/etc/ipsec</code><code>.conf.$(</code><code>date</code> <code>+%F)</code>
<code>和左邊一樣,直接拷貝過去。</code>
此時A和B用戶端是不能上網的,需要在L和R伺服器上設定iptables。
A:
<code>iptables-t nat -A POSTROUTING -s 172.1.1.0</code><code>/24</code> <code>-jSNAT --to-</code><code>source</code> <code>10.86.10.17</code>
<code>echo</code><code>'iptables -t nat -A POSTROUTING -s 172.1.1.0/24 -j MASQUERADE'</code> <code>>></code><code>/etc/rc</code><code>.</code><code>local</code>
B:
<code>iptables-t nat -A POSTROUTING -s 192.1.1.0</code><code>/24</code> <code>–o eth0 -j MASQUERADE</code>
<code>echo</code><code>'iptables -t nat -A POSTROUTING -s 192.1.1.0/24 -j MASQUERADE'</code> <code>>></code><code>/etc/rc</code><code>.</code><code>local</code>
分别重新啟動ipsec:
A:
<code>/etc/init</code><code>.d</code><code>/ipsecrestart</code>
<code>chkconfigipsec on</code>
B:
http://blog.51cto.com/xiaodongge/1919502
本文轉自 王家東哥 51CTO部落格,原文連結:http://blog.51cto.com/xiaodongge/1919502