歡迎您光臨本站 註冊首頁

基於freebsd,openbsd,linux的ipsec-vpn和pptpd三個實例

←手機掃碼閱讀     火星人 @ 2014-03-04 , reply:0

基於freebsd,openbsd,linux的ipsec-vpn和pptpd三個實例

基於freebsd,openbsd,linux的ipsec-vpn和pptpd三個實例
經常有人問來問去的,煩的很,本人沒多少時間去一一解答
現在全部貼出來,實在想不明白的再來問我或留言,有點tcp/ip知識的做個vpn是
很簡單的事情

有些是摘抄的
Freebsd下基於ipsec的vpn和撥號伺服器mpd的實現
一  net----net的vpn
192.168.1.0/24—office網關機-------------------home網關機---10.5.21.0/24
office的內ip :     192.168.1.1
office的外ip:      131.107.3.1
home的內ip:      131.107.3.2
home的外ip:      10.5.21.3  
1.        編譯內核mykernel
    options        IPSEC
options        IPSEC_ESP
options        IPSEC_DEBUG
#/usr/sbin/config  mykernel
#cd ../compile/mykernel
#make depend all install

2修改rc.conf
  對office機如下
   
gif_interfaces="gif0"
gifconfig_gif0="131.107.3.1 131.107.3.2"
ifconfig_gif0="gif0 192.168.1.1 10.5.21.3 netmask 255.255.255.0"
gateway_enable="YES"
ipsec_enable="YES"
defaultrouter="131.107.3.9" #為電信網關
   對home主機如下
    gif_interfaces="gif0"      
gifconfig_gif0="131.107.3.2 131.107.3.1"
ifconfig_gif0="gif0 10.5.21.3 192.168.1.1 netmask 255.255.255.0"
defaultrouter="131.107.3.9" #為電信網關
gateway_enable="YES"

2 安裝racoon
#cd /usr/ports/security/raccoon
#make install clean
#cd /usr/local/etc/raccoon
我們採用IKE預共享模式
編輯psk.txt
對office機如下
131.107.3.2  my_shared_secret
對home機如下
131.107.3.1  my_shared_secret

  編輯racoon.conf
cp   raccoon.conf.dist  racoon.conf
對office機做如下修改
將此三行註釋
#path certificate "/usr/local/etc/cert"
        #my_identifier user_fqdn "sakane@kame.net";
        #peers_identifier
打開此行的註釋
          my_identifier address;
將listen {}中的isakmp這行修改為
isakmp 131.107.3.1 ;

對home機如下
    將此三行註釋
#path certificate "/usr/local/etc/cert"
        #my_identifier user_fqdn "sakane@kame.net";
        #peers_identifier
打開此行的註釋
          my_identifier address;
將listen {}中的isakmp這行修改為
isakmp 131.107.3.2 ;


2 編輯/etc/ipsec.conf
flush;
spdflush;
spdadd  192.168.1.0/24 10.5.21.0/24 any -P out ipsec esp/tunnel/131.107.3.1-131.107.3.2/require;
spdadd  10.5.21.0/24 192.168.1.0/24 any -P in  ipsec esp/tunnel/131.107.3.2-131.107.3.1/require;

編寫啟動腳本
home機:
/usr/local/etc/rc.d/ipsec.sh如下
#!/bin/sh
setkey -F -FP
setkey -f /etc/ipsec.conf

/usr/local/etc/rc.d/raccoon.sh
raccoon.sh為racoon自動生成
office機與此相同

添加vpn的路由
對home機
rc.local   加入
route add -net 192.168.1.0/24 192.168.1.1
對office機
rc.local   加入
route add -net 10.5.21.0/24 10.5.21.3


二 做撥號伺服器
重編內核mpd作pptp server 配置第一步
測試 實驗的第一步就是看這個 mpd 究竟能發揮多大的做用  
上一次 在 freebsd 5.1 上 裝vpn 遇到很多哭笑不得的問題  花了 四五天的時間也搞成
這次 剛安裝好 freebsd 4.10 後 就安裝mpd  隻花幾個步揍就完成了 初步的目標
首先在內配置文件中加入
# for mpd pptp server
options         NETGRAPH                #netgraph(4) system
options         NETGRAPH_ASYNC
options         NETGRAPH_BPF
options         NETGRAPH_ECHO
options         NETGRAPH_ETHER
options         NETGRAPH_HOLE
options         NETGRAPH_IFACE
options         NETGRAPH_KSOCKET
options         NETGRAPH_LMI
# MPPC compression requires proprietary files (not included)      
#options        NETGRAPH_MPPC_COMPRESSION
options         NETGRAPH_MPPC_ENCRYPTION
options         NETGRAPH_PPP
options         NETGRAPH_PPTPGRE
options         NETGRAPH_RFC1490
options         NETGRAPH_SOCKET
options         NETGRAPH_UI
#end
這幾句  完整復制過去 保存
然後
cd /usr/etc
make kernel KERNCONF=內核名稱
編譯內核

第二步要ports 安裝mpd
ports/net/mpd
下面
make install
到 /usr/local/etc/mpd下面
裡面的配置文件不要管它

vi mpd.conf

把下面的話復制在裡面
default:
       load client1
       load client2
       load client3
       load client4
       load client5
        
client1:
       new -i ng0 pptp1 pptp1
       set ipcp ranges 192.168.1.20/32 192.168.1.100/32
       load client_standard
#
client2:
       new -i ng1 pptp2 pptp2
       set ipcp ranges 192.168.1.20/32 192.168.1.100/32
       load client_standard
#
client3:
       new -i ng2 pptp3 pptp3
       set ipcp ranges 192.168.1.20/32 192.168.1.100/32
       load client_standard
#
client4:
       new -i ng3 pptp4 pptp4
       set ipcp ranges 192.168.1.20/32 192.168.1.100/32
       load client_standard
#
client5:
       new -i ng4 pptp5 pptp5
       set ipcp ranges 192.168.1.20/32 192.168.1.100/32
       load client_standard
#
client_standard:
       set iface disable on-demand
       #set iface enable proxy-arp
       #set iface idle 1800
       set bundle enable multilink
       set link yes acfcomp protocomp
       set link no pap chap
       set link enable chap
       #set link mtu 1460
       set link mtu 1260
       set link keep-alive 10 60
       set ipcp yes vjcomp
       set ipcp dns 61.145.117.164
#       set ipcp nbns 172.16.120.4
       set bundle enable compression
       set ccp yes mppc
       set ccp yes mpp-e40
       set ccp yes mpp-e128
       set ccp yes mpp-stateless
#end of mpd.conf
保存
vi mpd.links
把下面一段復制在裡面
#bengin of mpd.links
pptp1:
       set link type pptp
       set pptp self 0.0.0.0
       set pptp enable incoming
       set pptp disable originate
#
pptp2:
       set link type pptp
       set pptp self 192.168.0.20
       set pptp enable incoming
       set pptp disable originate
#
pptp3:
       set link type pptp
       set pptp self 192.168.0.20
       set pptp enable incoming
       set pptp disable originate
#
pptp4:
       set link type pptp
       set pptp self 192.168.0.20
       set pptp enable incoming
       set pptp disable originate
#
pptp5:
       set link type pptp
       set pptp self 192.168.0.20
       set pptp enable incoming
       set pptp disable originate
#
#end of mpd.links
保存
vi mpd.secret
在裡面添加幾個五個用戶
當然我們還要修改一下mpd.secret文件
這個文件定義了撥入用戶的用戶名和密碼
用戶名寫在前面,密碼寫在後面用引號引起來,就像下面這樣
fred "fred-pw"
當然還可以指定這個用戶必須從那個地址或者網段來撥入,就像下面的例子:
joe "foobar" 192.168.1.1
bob "\x34\"foo\n" 192.168.1.10/24


重新啟動系統

後 mpd -b
一共可以接受五個並發連接的 vpn server 就建成

看一下結果
lp0: flags=8810<POINTOPOINT,SIMPLEX,MULTICAST>; mtu 1500
ppp0: flags=8010<POINTOPOINT,MULTICAST>; mtu 1500
sl0: flags=c010<POINTOPOINT,LINK2,MULTICAST>; mtu 552
faith0: flags=8002<BROADCAST,MULTICAST>; mtu 1500
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST>; mtu 16384
        inet6 ::1 prefixlen 128
        inet6 fe80::1%lo0 prefixlen 64 scopeid 0x8
        inet 127.0.0.1 netmask 0xff000000
ng0: flags=8890<POINTOPOINT,NOARP,SIMPLEX,MULTICAST>; mtu 1500
ng1: flags=8890<POINTOPOINT,NOARP,SIMPLEX,MULTICAST>; mtu 1500
ng2: flags=8890<POINTOPOINT,NOARP,SIMPLEX,MULTICAST>; mtu 1500
ng3: flags=8890<POINTOPOINT,NOARP,SIMPLEX,MULTICAST>; mtu 1500
ng4: flags=8890<POINTOPOINT,NOARP,SIMPLEX,MULTICAST>; mtu 1500
成功了

當然做了 這些並不能在實際中應用 因為本來還可以連上 Internet 的系統 撥上這個vpn server厚反而不能 上網了
還有一個問題就是 控制 遠程撥號用戶 對網路裡面資源共享 的實現和 訪問控制  
還有一個問題 就是要裝一個防火牆 :(
《解決方案》

基於freebsd,openbsd,linux的ipsec-vpn和pptpd三個實例

openbsd的ipsec vpn配置實例及pptpd撥號伺服器(手動密鑰和自動密鑰兩種)
拓撲圖如下
                  
clientA---gate_west--------- ---------internet-------------- gate_east-----clientB

clientA為gate_west內部lan 192.168.1.0/24中的一台機
clientB為gate_east內部lan 10.5.21.0/24中的一台機
gate_west的內ip為192.168.1.1
gate_west的外ip為131.107.3.1
gate_east的內ip為10.5.21.2
gate_east的外ip為131.107.3.2
gate_west的/etc/mygate為131.107.3.9  #即為外部網關
gate_east的/etc/mygate為131.107.3.9  #即為外部網關


假如你要手動密要模式的
一  手動密鑰

1.在gate_west和gate_east做
在/etc/rc.local下加入以下三行
sysctl -w net.inet.esp.enable=1
sysctl -w net.inet.ah.enable=1
sysctl -w net.inet.ip.forwarding=1

2. 生成密鑰
在gate_west上做:
#cd /etc
# openssl rand 24 | hexdump -e '24/1 "%02x"' >; enc_key
# openssl rand 20 | hexdump -e '20/1 "%02x"' >; auth_key
cp到gate_east機上
scp  /etc/enc_key  gate_east:/etc
scp  /etc/auth_key  gate_east:/etc

3.   編寫ipsec.sh腳本
在gate_west上
#cd /etc
#vi /etc/ipsec.sh
我的如下:
#!/bin/sh
/sbin/ipsecadm new esp -src 131.107.3.1 -dst 131.107.3.2 -forcetunnel -spi 1000 -enc 3des -auth sha1 -keyfile enc_key -authkeyfile auth_key
/sbin/ipsecadm new esp -src 131.107.3.2 -dst 131.107.3.1 -forcetunnel -spi 1001 -enc 3des -auth sha1 -keyfile enc_key -authkeyfile auth_key
/sbin/ipsecadm flow -out -require -proto esp -src 131.107.3.1 -dst 131.107.3.2 -addr 192.168.1.0/24 10.5.21.0/24
/sbin/ipsecadm flow -in  -require -proto esp -src 131.107.3.1 -dst 131.107.3.2 -addr 10.5.21.0/24 192.168.1.0/24
chmod 755 /etc/ipsec.sh
在gate_east上
#cd /etc
#vi /etc/ipsec.sh
我的如下:

#!/bin/sh
/sbin/ipsecadm new esp -src 131.107.3.1 -dst 131.107.3.2 -forcetunnel -spi 1000 -enc 3des -auth sha1 -keyfile enc_key -authkeyfile auth_key
/sbin/ipsecadm new esp -src 131.107.3.2 -dst 131.107.3.1 -forcetunnel -spi 1001 -enc 3des -auth sha1 -keyfile enc_key -authkeyfile auth_key
/sbin/ipsecadm flow -out –require -proto esp -src 131.107.3.2 -dst 131.107.3.1 -addr  10.5.21.0/24  192.168.1.0/24
/sbin/ipsecadm flow -in  -require -proto esp -src 131.107.3.2 -dst 131.107.3.1 -addr 192.168.1.0/24  10.5.21.0/24
chmod 755 /etc/ipsec.sh

4. 將ipsec.sh加入到/etc/rc.local中


假如你要自動密鑰模式的
二 自動密鑰(預共享)
1.在gate_west和gate_east做
在/etc/rc.local下加入以下三行
sysctl -w net.inet.esp.enable=1
sysctl -w net.inet.ah.enable=1
sysctl -w net.inet.ip.forwarding=1

2生成/etc/isakmpd/isakmpd.conf和/etc/isakmpd/isakmpd.policy

在gate_west上做:
#cp  /usr/share/ipsec/isakmpd/VPN-west.conf     /etc/isakmpd/isakmpd.conf
#cp  /usr/share/ipsec/isakmpd/policy  /etc/isakmpd/isakmpd.policy
對/etc/isakmpd/isakmpd.conf作修改, 我的如下

131.107.3.2=                ISAKMP-peer-east


Connections=                IPsec-west-east


Phase=                        1
Transport=                udp
Address=                131.107.3.2
Configuration=                Default-main-mode
Authentication=                mekmitasdigoat  # yoursharedsecret


Phase=                        2
ISAKMP-peer=                ISAKMP-peer-east
Configuration=                Default-quick-mode
Local-ID=                Net-west
Remote-ID=                Net-east


ID-type=                IPV4_ADDR_SUBNET
Network=                192.168.1.0
Netmask=                255.255.255.0


ID-type=                IPV4_ADDR_SUBNET
Network=                10.5.21.0
Netmask=                255.255.255.0


DOI=                        IPSEC
EXCHANGE_TYPE=                ID_PROT
Transforms=                3DES-SHA,BLF-SHA


DOI=                        IPSEC
EXCHANGE_TYPE=                QUICK_MODE
Suites=                        QM-ESP-3DES-SHA-SUITE

對/etc/isakmpd/isakmpd.policy作修改, 我的如下
KeyNote-Version: 2
Authorizer: "POLICY"
Conditions: app_domain == "IPsec policy" &&
            esp_present == "yes" &&
esp_enc_alg != "null"  ->; "true";

在gate_east上做:
#cp  /usr/share/ipsec/isakmpd/VPN-west.conf     /etc/isakmpd/isakmpd.conf
#cp  /usr/share/ipsec/isakmpd/policy  /etc/isakmpd/isakmpd.policy
對/etc/isakmpd/isakmpd.conf作修改, 我的如下



131.107.3.1=                ISAKMP-peer-west


Connections=                IPsec-east-west


Phase=                        1
Transport=                udp
Address=                131.107.3.1
Configuration=                Default-main-mode
Authentication=                mekmitasdigoat  # yoursharedsecret


Phase=                        2
ISAKMP-peer=                ISAKMP-peer-west
Configuration=                Default-quick-mode
Local-ID=                Net-east
Remote-ID=                Net-west


ID-type=                IPV4_ADDR_SUBNET
Network=                192.168.1.0
Netmask=                255.255.255.0


ID-type=                IPV4_ADDR_SUBNET
Network=                10.5.21.0
Netmask=                255.255.255.0


DOI=                        IPSEC
EXCHANGE_TYPE=                ID_PROT
Transforms=                3DES-SHA,BLF-SHA


DOI=                        IPSEC
EXCHANGE_TYPE=                QUICK_MODE
Suites=                        QM-ESP-3DES-SHA-SUITE

對/etc/isakmpd/isakmpd.policy作修改, 我的如下
KeyNote-Version: 2
Authorizer: "POLICY"
Conditions: app_domain == "IPsec policy" &&
            esp_present == "yes" &&
esp_enc_alg != "null"  ->; "true";

3 修改isakmpd.conf和isakmpd.policy的屬性
chmod 400 /etc/isakmpd/isakmpd.conf
chmod 400 /etc/isakmpd/isakmpd.policy

4 啟動isakmpd
#/sbin/isakmpd –d
如要顯示出更多的調試信息
#/sbin/isakmpd –d –DA=99



openbsd3.4下的pptpd撥號伺服器的建立

#cd /usr/ports/net/poptop
#make install clean
#cd /usr/ports/distfiles/poptop-1.1.4/samples
#cp pptpd.conf /etc/
#cp options.pptpd /etc/ppp/
#cp options /etc/ppp/
#cp chap-secrets /etc/ppp/
/etc/pptpd.conf文件如下:
option /etc/ppp/options.pptpd
localip 192.168.0.1
remoteip 192.168.0.234-238,192.168.0.245
在/etc/ppp/ppp.conf追加以下幾行:
pptp:
       set escape 0xff
       set timeout 0
        enable proxy
        accept dns
        enable MSChapV2
        enable mppe
        disable pap
        disable chap
        disable mschap
        set mppe * stateless
        set dns 192.168.0.254
        set ifaddr 192.168.0.254 192.168.0.250-192.168.0.253 255.255.255.255
/etc/ppp/options.pptpd文件如下:
lock
name pptpd
proxyarp
bsdcomp 0
refuse-pap
refuse-chap
refuse-mschap
require-mschap-v2
require-mppe-128
auth
在/etc/ppp/ppp.secret文件里添加用戶
test    123456
yyy     qwertyuiop
wwww    67890
在/etc/sysctl.conf里添加以下幾行:
net.inet.gre.allow=1
net.inet.gre.wccp=1
net.inet.mobileip.allow=1
《解決方案》

基於freebsd,openbsd,linux的ipsec-vpn和pptpd三個實例

Fedora3的vpn-ipsec-x509及pptpd撥號伺服器的建立

vpn-ipsec-x509
網路拓撲圖
clientA---gate2------internet------gate1---clientB
clientA:192.168.1.12
gate2內ip:192.168.1.1
gate2外ip:131.107.3.1
gate2網關:131.107.3.9   #為外部網關
clientB:10.5.21.12
gate1內ip:10.5.21.131
gate1外ip:131.107.3.2
gate1網關:131.107.3.9   #為外部網關

一:  申請證書及簽署證書請求
在gate1上申請證書
#openssl  req  -new  -nodes –newkey rsa:1024  –sha1 –keyform  PEM  -keyout gate1.private  -outform PEM –out request.pem
根據自己的情況填寫
我們現在自己簽署這個請求
#openssl  x509 –req –in request.pem –signkey  gate1.private –out  gate1.public
現在request這個文件已經沒有用了,可以刪除
在你需要證書的每台機器上都重複上述過程.你現在就可以放心地發布你的」*.public」文件了,但是一定要保證*.private是保密的
gate1和gate2交換*.public文件
用openssl的digest命令校驗*.public,以保證*.public沒被其他人修改過
#openssl dgst  gate1.public

二 : 配置racoon.con
我的gate1的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";
listen { isakmp 131.107.3.2 ; }
remote 131.107.3.1
     {
             exchange_mode aggressive,main;
             my_identifier asn1dn;
             peers_identifier asn1dn;
             certificate_type x509 "gate1.public" "gate1.private";
             peers_certfile "gate2.public";
             lifetime time 24 hour;
             proposal {
                     encryption_algorithm 3des;
                     hash_algorithm sha1;
                     authentication_method rsasig;
                     dh_group 2;
             }
     }

sainfo anonymous
{
        pfs_group 2;
        lifetime time 1 hour ;
        encryption_algorithm 3des ;
        authentication_algorithm  hmac_md5 ;
        compression_algorithm deflate ;
}
我的gate2的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";
listen { isakmp 131.107.3.1 ; }
remote 131.107.3.2
     {
             exchange_mode aggressive,main;
             my_identifier asn1dn;
             peers_identifier asn1dn;
             certificate_type x509 "gate2.public" "gate2.private";
             peers_certfile "gate1.public";
             lifetime time 24 hour;
             proposal {
                     encryption_algorithm 3des;
                     hash_algorithm sha1;
                     authentication_method rsasig;
                     dh_group 2;
             }
     }

sainfo anonymous
{
        pfs_group 2;
        lifetime time 1 hour ;
        encryption_algorithm 3des ;
        authentication_algorithm  hmac_md5 ;
        compression_algorithm deflate ;
}
三:  編寫SA  policy
   gate1的ipsec.sh如下
   #!/sbin/setkey -f
#
# Flush SAD and SPD
flush;
spdflush;

# Create policies for racoon
spdadd 10.5.21.0/24 192.168.1.0/24 any -P out ipsec
           esp/tunnel/131.107.3.2-131.107.3.1/require;

spdadd 192.168.1.0/24 10.5.21.0/24 any -P in ipsec
           esp/tunnel/131.107.3.1-131.107.3.2/require;
gate2的ipsec.sh如下
#!/sbin/setkey -f
#
# Flush SAD and SPD
flush;
spdflush;

# Create policies for racoon
spdadd 192.168.1.0/24 10.5.21.0/24 any -P out ipsec
           esp/tunnel/131.107.3.1-131.107.3.2/require;

spdadd 10.5.21.0/24 192.168.1.0/24 any -P in ipsec
           esp/tunnel/131.107.3.2-131.107.3.1/require;

四: 開啟轉發和修改racoon屬性
   net.ipv4.ip_forward = 1
在/etc/racoon下
#chmod 0600 certs
#chmod 600 racoon.conf

五  若要打開NAT,參考以下腳本
   
#iptables -t nat -A POSTROUTING -s 10.5.21.0/24 -o eth0 -j MASQUERADE
iptables -I INPUT  -p udp --sport 500 --dport 500 -j ACCEPT
iptables -I OUTPUT -p udp --sport 500 --dport 500 -j ACCEPT
iptables -I INPUT  -p 50 -j ACCEPT
iptables -I OUTPUT -p 50 -j ACCEPT
#iptables -t nat -A POSTROUTING -o eth0 -d \! 10.5.21.0/24 -j MASQUERADE
iptables -t nat -A POSTROUTING -s 10.5.21.0/24 -o eth0 -j MASQUERADE




pptpd撥號伺服器的建立
如果是fedora2則下載:
  dkms-1.12-2.noarch.rpm
kernel_ppp_mppe-0.0.4-2dkms.noarch.rpm
pptpd-1.1.4-b4.i386.rpm

如果是fedora3則下載:
dkms-2.0.2-1.noarch.rpm
kernel_ppp_mppe-0.0.4-3dkms.noarch.rpm
pptpd-1.1.4-b4.i386.rpm
以feora3為例
1 . 先安裝
dkms-2.0.2-1.noarch.rpm
  kernel_ppp_mppe-0.0.4-3dkms.noarch.rpm
pptpd-1.1.4-b4.i386.rpm
2.        pptpd.conf的配置
  option /etc/ppp/options.pptpd
bcrelay eth1
  localip 192.168.0.1
remoteip 192.168.0.234-238,192.168.0.245
3.        /etc/ppp/options.pptpd的配置
lock
name pptpd
proxyarp
bsdcomp 0
refuse-pap
refuse-chap
refuse-mschap
require-mschap-v2
require-mppe-128
4.        添加用戶
/usr/bin/vpnuser add  test  123456
在win2000 cleint上測試
《解決方案》

基於freebsd,openbsd,linux的ipsec-vpn和pptpd三個實例

謝謝分享。。。
《解決方案》

基於freebsd,openbsd,linux的ipsec-vpn和pptpd三個實例

ddddddddddddddddd
《解決方案》

不知IPSec 中是否有 C|A 的後門

http://marc.info/?l=openbsd-tech&m=129236621626462&w=2

IPSec 風險

http://solidot.org/articles/10/12/15/0723228.shtml

FBI被指在OpenBSD的IPSEC協議棧中放置後門

OpenBSD創始人Theo de Raadt公開了Gregory Perry的一封來信。Gregory Perry在10年前參與了OpenBSD加密框架開發。在信函中,他聲稱FBI付費給開發商,以在OpenBSD的IPSEC協議棧中植入後門。現在他將這段機密公諸於眾,是因為他與FBI簽署的保密協議已到期。10年前加入的後門代碼如今已經面目全非,de Raadt表示不清楚代碼造成的真正影響有多大,由於OpenBSD是第一個開發出供免費使用的IPSEC協議棧,因此隨後許多項目和產品都是直接拿現成的代碼。
《解決方案》

FBI好邪惡啊。
《解決方案》

:emn10:   不錯

[火星人 ] 基於freebsd,openbsd,linux的ipsec-vpn和pptpd三個實例已經有1067次圍觀

http://coctec.com/docs/service/show-post-15231.html