最近倒腾了下OpenVPN, 发现虽然用起来比SSH速度快点但拨上去实在是太慢. 看到推上的巨巨们都在上Cisco IPSec, 索性决定也自己上一个. 倒腾了下发现配置也不是很复杂, 网上也有巨巨们十分详细的配置步骤, 只是自己在配的过程中也发现有几个地方需要特别注意下, 在此流水帐下吧.
服务端
racoon
服务端配置主要是racoon, 配置文件参考了这篇文章和这篇文章, 在此非常感谢. 另外这篇关于如何兼容黑莓的文章讲得也非常清楚, 再次一并推荐下.
既然是Debian安装当然是apt-get:
apt-get install racoon
然后是几个配置文件:
# /etc/racoon/racoon.conf path pre_shared_key “/etc/racoon/psk.txt”; path certificate “/etc/racoon/certs”; listen { isakmp SERVER.IP.ADDRESS [500]; isakmp_natt SERVER.IP.ADDRESS [4500]; } 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 3des; hash_algorithm md5; 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”; save_passwd on; network4 10.12.0.100; netmask4 255.255.255.0; pool_size 100; pfs_group 2; }
# /etc/racoon/psk.txt # Group Name Group Secret GROUP.NAME GROUP.SECRET
设置好psk.txt的权限:
chmod 600 /etc/racoon/psk.txt
# /etc/racoon/motd # Banner Welcome to Cisco IPSec!
Account
用户验证用的是系统的用户系统, 简单的新建一个用户即可, 为了安全性shell可设为/bin/false.
useradd -MN -b /tmp -s /bin/false USER passwd USER
iptables
添加以下规则以开放相应端口和NAT转发.
iptables -A INPUT -p udp -–dport 500 -j ACCEPT iptables -A INPUT -p udp –dport 4500 -j ACCEPT iptables -t nat -A POSTROUTING -s 10.12.0.0/24 -o eth0 -j MASQUERADE iptables -A FORWARD -s 10.12.0.0/24 -j ACCEPT
重启服务器后以上规则将失效, 持久化参见这篇文章.
ipv4 forward
# /etc/sysctl.conf net.ipv4.ip_forward=1
修改后使用如下命令使之生效:
sysctl -p /etc/sysctl.conf
客户端
Linux
Linux可以使用vpnc作为客户端, 配置文件如下:
# /etc/vpnc/default.conf IPSec gateway SERVER.DOMAIN/IP IPSec ID GROUP.NAME IPSec secret GROUP.SECRET IKE Authmode psk Xauth username USER.NAME Xauth password USER.PASSWORD NAT Traversal Mode cisco-udp
之后可以使用vpnc-connect/vpnc-disconnect连接和断开VPN.
不知为何,racoon配置总是不成功,完全是按照你的配置文件写的,racoon启动不了,将配置中的每行进行注释后在restart,发现就是remote anonymous这个设置过不去,即使在remote anonymous的{}里什么都不输入,发现只要是有这个配置选项存在,racoon就没法启动,如果将remote anonymous给注释掉,racoon就可以正常启动,不知怎么回事。
LikeLike
启动不了的话用racoon -F打log看看, Linux下的换行符也注意下, 你把remote整个注了IKE phase 1建tunnel啥的直接没了.
LikeLike
but we have no ISAKMP-SA. 出错了。
LikeLike
这条Log之前没有别的信息了么?
LikeLike
依照教程搭建好了也能运行,但iOS上始终连不上
LikeLike
iOS没试过, Android是可以的呢.
LikeLike
iOS可以连上了。 但只能用3G连。 内网在fw后面连不上。 貌似是nat原因导致, 是不是哪个参数要调呢?
LikeLike
看下500/4500端口有没有被封.
LikeLike
服务启动失败,IOS及黑莓 提示网关无响应
racoon -d -F -f /etc/racoon/racoon.conf 运行后,可以连上VPN,难道只能始终在调试模式下连接VPN?
LikeLike
你确定你起服务的时候用对了配置文件?
LikeLike
ubuntu下还需要ppp x2ltp iptool dhcp 4个服务才能正常启动吗?
LikeLike
这个能用win下的cisco vpn client连接吗?
LikeLike
我用Shrew Soft VPN Client是可以的.
LikeLike
我的那个能登上去但是上不了网,觉得是iptables出问题了
LikeLike
按照您的方法配置IPSec VPN,发现安卓可以连上VPN但任何网页都打不开,且VPN没有任何流量。
在电脑端用ShrewSoft VPN Client连不上。
LikeLike