解決Mac OSX下Cisco IPSec VPN自動斷線的問題

轉載自:http://imwuyu.me/talk-about/something-about-vpn.html/

“连接 VPN Cisco IPSec (让系统生成配置文件)

拷贝配置文件到/etc/racoon打开终端执行:

sudo cp /var/run/racoon/xxx.xxx.xxx.xxx.conf /etc/racoon

修改 racoon 配置文件:

sudo vim /etc/racoon/racoon.conf

将最后一行注释掉(目的是不使用系统生成配置):

# include "/var/run/racoon/*.conf" ;

将下面一行添加到文件末尾,**包含分号**(使用定制的配置文件):

include "/etc/racoon/xxx.xxx.xxx.xxx.conf" ;

修改 IPSec 配置文件:

sudo vim /etc/racoon/xxx.xxx.xxx.xxx.conf

取消 dead peer 检测:

dpd_delay 0;

修改请求方式为 claim(**重要**,原来为 obey):

proposal_check claim;

修改请求周期 (所有 proposal 中的值原来是3600 sec):

lifetime time 24 hours;

重新链接 Cisco IPSec (让系统使用修改后的配置文件)

经测试连接5小时以上未断线”

按這個修改後,一開始45分鐘左右還是會提示輸入密碼,後來重啓一下就OK了。

安裝Racoon實現Pure IPsec VPN

前段時間參考“VPS上基于Debian搭建和配置Pure IPsec支持iOS/Win7/Android等多平台VPN客户端”一文編譯安裝了Strongswan作pure ipsec vpn供ios使用,但是,一來strongswan穩定性一般,二則不能通過vpnc連接,因此考慮利用racoon來實現pure ipsec vpn。

服務器環境是debian 6.0,ramhost kvm LA機房。

首先安裝rancoon:

sudo aptitude install racoon

安裝完成後配置文件在/etc/racoon目錄,首先編輯racoon的配置文件:

cd /etc/racoon
sudo vim racoon.conf

插入以下代碼:

path pre_shared_key "/etc/racoon/psk.txt";

listen {
}

remote anonymous { 
exchange_mode aggressive, main, base;
mode_cfg on;
proposal_check obey;
nat_traversal on;
generate_policy unique;
ike_frag on; 
passive on;
dpd_delay 30;

proposal {
lifetime time 28800 sec;
encryption_algorithm aes;
hash_algorithm sha1;
authentication_method xauth_psk_server;
dh_group 2;
          }
} 

sainfo anonymous {
encryption_algorithm aes, 3des, blowfish;
authentication_algorithm hmac_sha1, hmac_md5;
compression_algorithm deflate;
} 

mode_cfg {
auth_source system; #使用系統的用戶名和密碼認證
dns4 8.8.8.8;
banner "/etc/racoon/motd"; #banner,登錄成功後的歡迎信息
save_passwd on;
network4 10.12.0.100;
netmask4 255.255.255.0;
pool_size 100;
pfs_group 2;
}

然後編輯群組名稱和密鑰:

sudo vim psk.txt

设置好psk.txt文件的权限:

chmod 600 /etc/init.d/psk.txt

群組名稱和密鑰既vpnc的IPsec ID和IPsec secret,用下面的形式:

NAME SECRET

中間用空格或tab隔開。

然後編輯banner:

sudo vim motd

內容隨便寫。

最後添加iptables轉發信息:

iptables -A INPUT -p udp -m udp --dport 500 -j ACCEPT
iptables -A INPUT -p udp -m udp --dport 4500 -j ACCEPT
iptables -A INPUT -p esp -j ACCEPT
iptables -A FORWARD -s 10.12.0.0/255.255.255.0 -j ACCEPT
iptables -t nat -A POSTROUTING -s 10.12.0.0/255.255.255.0 -o eth0 -j MASQUERADE

並修改net.ipv4.ip_forward為1允許轉發:

sudo vim /etc/sysctl.conf
net.ipv4.ip_forward = 1

使修改立即生效:

sudo sysctl -p

可以添加一些不允許登錄的用戶來登錄vpn:

sudo useradd -s /bin/false username
sudo passwd username

如果有问题,或者连接不上可以用打开log查错:

racoon -F

本文主要參考了以下網頁:

[1] Wellsgz. Pure IPsec VPN with IPsec-Tools/Racoon on CentOS. http://blog.wellsgz.info/?p=1964
[2] Lordong. Centos VPS+黑莓VPN教程. http://lordong.me/wp/post/1420.html