You are here: Home > 技術…… > CentOS6.X Openswan 和 Juniper 防火墻的VPN隧道模式的連接

CentOS6.X Openswan 和 Juniper 防火墻的VPN隧道模式的連接

最近BOSS給了我一個已經停產了的Juniper防火墻給我玩,讓我試試用它連VPN,加上路由表就可以自動翻墻了……

主要參考這篇文章……

家裏面的網絡,是192.168.A.0/24,VPS那邊,給它分配了一個網絡,是192.168.B.0/24。

VPS那邊,/etc/ipsec.conf加一個conn

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
conn Juniper-VPN
ike=3des-md5
esp=3des-md5
authby=secret
left=VPS公網IP
leftsubnet=0.0.0.0/0
leftnexthop=%defaultroute
right=%any
rightsubnet=192.168.A.0/24
rightid=隨便來個email
rightnexthop=%defaultroute
compress=no
forceencaps=yes
auto=start
aggrmode=yes
dpddelay=40
dpdtimeout=130
dpdaction=clear

要注意的是,剛才提到的那篇參考文章有一些錯誤,left和right好像不太一致。還有就是,因爲要翻墻路由出去,所以leftsubnet要0.0.0.0/0,之前填192.168.B.0/24,無論如何出不去,和BOSS一起查了半天,在iptables裏面設置各種條件看計數,BOSS還去翻iptables的源碼來看……

還有就是要設上ip轉發:

1
iptables -t nat -A POSTROUTING -s 192.168.A.0/24 -j MASQUERADE

最後,給VPS加上一個192.168.B.1的地址:
vim /etc/sysconfig/network-scripts/ifcfg-eth0:0

1
2
3
4
5
DEVICE=eth0:0
ONBOOT=yes
NETWORK=192.168.B.0
NETMASK=255.255.255.0
IPADDR=192.168.B.1

VPS那邊設上這些就可以了。

Juniper那邊,按照之前提到的參考文章設置就可以,主要就是VPNs->AutoKey Advanced->Gateway裏面,Local ID要填上VPS那邊/etc/ipsec.conf文件裏面,rightid那裏的email。

不過我的做法和那篇文章有點區別:
1 Network > Routing > Virtual Routers ,新建一個新的虛擬路由表,我起名叫vpn-vr
2 Network > Zones,新建一個區段,叫VPN,虛擬路由就選vpn-vr
3 Network > Interfaces,新建一個Loopback IF,就叫1oopback.1好了,隨便填一個内網IP,掩碼是32,建好后,編輯,Interface Mode選Route
4 etwork > Interfaces,新建一個Tunnel IF,叫tunnel.1,區段選VPN,下面選Unnumbered,interface選1oopback.1
5 VPNs > AutoKey Advanced > Gateway,New,Name隨便填,選Static IP Address,後面填VPS公網IP(可以填域名),然後點Advanced,Preshared Key填架VPN的時候留的PSK,Local ID填VPN的rightid那裏的email,Mode (Initiator)選Aggressive,把Enable NAT-Traversal、UDP Checksum都勾上,然後Return,OK
6 VPNs > AutoKey IKE,New,名字隨便填,選Remote Gateway和Predefined,然後選第五步新建的Gateway的名字,點Advanced,Bind to裏面選Tunnel Interface,右邊選tunnel.1,鈎上Proxy-ID, Local IP / Netmask填192.168.A.0/24,Remote IP / Netmask填0.0.0.0/0。鈎上VPN Monitor、Optimized和Rekey,Source Interface選Trust,Destination IP填192.168.B.1
7 Policy > Policies ,把Trust到VPN,VPN到Trust都設置為允許
8 Network > Routing > Routing Entries,把需要走VPN的子網在trust-vr表裏面指向vpn-vr,再在vpn-vr裏面把子網們指向tunnel.1

需要説明的是,因爲我的ISP過濾了ESP包,所以需要打開NAT-Traversal,把ESP包封到UDP裏面,可以先試試第5步Mode (Initiator)選Main,不勾Enable NAT-Traversal和UDP Checksum。目前Cent-OS 6自帶的openswan有bug,用Aggressive模式,開NAT-T的話,連接的時候,openswan的日誌會報這麽一種錯:
next payload type of ISAKMP Nonce Payload has an unknown value: 130。我找來找去,各種試,最後實在沒有辦法,去openswan的官方網站,找到這麽一個連接:https://download.openswan.org/openswan/binaries/rhel/6/。從https://download.openswan.org/openswan/binaries/rhel/6/openswan-2.6.38dr2-9.el6.x86_64.rpm安裝,結果就好了……

Tags: ,

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注