Debian/Ubuntu搭建Cisco IPSec VPN

看来这篇文章是搜索量最高的了,水果党真是伤不起啊。其实如果没什么特殊用途的话一些国内的VPN也是可以用的,比如说mxvpn等等。国外的基本上被封的可以,原因我说过了,协议封锁。如果mxvpn够良心的话(什么意思?某些国内VPN也会封网站,比如Tor),可以挂着它去下一个tunnelbear,安装完配置文件以后就可以弃用了。这么做主要是tunnelbear更划算一些。

最近IPSec有点坑,不怕麻烦的诸位可以转向新·黑科技AnyConnect,嘛,大公司的GDP是我们最好的伙伴。

评论区那位兄台说的挺有道理,我完全无话可说。我推荐上面的VPN主要是大家还没有使用付费服务的习惯(看了看腾讯),然而免费的话…谁知道你的服务有没有保证呢。所以还是出门右转付费比较稳妥。至于选哪个嘛…大家可以参考评论。不过Astrill的价格一般人应该难以接受?(看了一眼ExpressVPN

虽然Cisco IPSec VPN被从协议层封锁了(至少Astrill和tunnelbear在iOS上都连不上了) { [UPDATE]:Astrill据说可以用了 } 但是经我测试,不公开的私人服务器还是可以正常连接的。又三棒由于不知名原因挂着3G网络ss就废了所以还是要留个VPN备用的。

但是为什么要选IPSec而不是PPTP,L2TP,L2TP/IPSec(L2TP over IPSec)呢?很简单:安全啊。PPTP的MPPE加密面对现在的算法和CPU已经是窗户纸一样薄了,L2TP与L2TP/IPSec相比也没有加密,L2TP/IPSec还可以通过IKE干扰降成L2TP,想想还是Cisco IPSec靠谱(虽然也有消息称思科有后门),就这样愉快的决定了。反正几个配置难度都差不多不是吗

下面要开始见证奇迹啦。

1.安装racoon

或许有其他的IKE守护程序,但是racoon是被最广泛使用的,所以用racoon出了问题也方便troubleshoot。

apt-get update
apt-get install racoon

安装过程好像要询问什么,我也忘掉了…总之它要什么给什么咯…配置记得调成手动的就行。

2.修改配置

其实也不能算修改…应该叫添加。

打开配置文件:

nano /etc/racoon/racoon.conf

把原来的东西(其实全部被注释掉了)改成下面这个(注意三处加粗部分要改成自己服务器的

log info;

path include “etc/racoon”;

path pre_shared_key “/etc/racoon/psk.txt”;

listen

{

isakmp x.x.x.x [500]; #x.x.x.x替换为服务器的公网IP

isakmp_natt x.x.x.x [4500]; #x.x.x.x替换为服务器的公网IP

}

remote anonymous

{

exchange_mode main,aggressive;

doi ipsec_doi;

nat_traversal on;

proposal_check obey;

generate_policy unique;

ike_frag on;

passive on;

dpd_delay = 30;

dpd_retry = 30;

dpd_maxfail = 800;

mode_cfg = on;

proposal

{

encryption_algorithm aes;

hash_algorithm sha1;

authentication_method xauth_psk_server;

dh_group 2;

lifetime time 12 hour;

}

}

timer

{

natt_keepalive 20 sec;

}

sainfo anonymous

{

lifetime time 12 hour;

encryption_algorithm aes,3des,des;

authentication_algorithm hmac_sha1,hmac_md5;

compression_algorithm deflate;

}

mode_cfg

{

dns4 8.8.8.8,8.8.4.4;

 

network4 x.x.x.x; #客户端IP

netmask4 255.255.255.0;

pool_size 4; #允许的客户端数量

banner “/etc/racoon/motd”;

auth_source pam;

conf_source local;

pfs_group 2;

default_domain “local”;

}

关于network4那里或许会纠结一阵,那里填的是VPS的IP地址池位置(需要NAT),没有的话可以用除了VPS IP和127.0.0.1等特殊IP以外的IP来替代,比如10.0.0.0。如果地址填了VPS的IP的话会出现routing loop,填127.0.0.1则无法建立连接

3.添加连接信息

上面只是racoon的连接配置,用户信息还没有填入。(卧槽我码完的文章给吞了)

添加组名称和组密钥:

nano /etc/racoon/psk.txt

新增一行组名称和组密钥,中间用空格隔开。如:

ThisIsGroupName ThisIsGroupPassword

新建一个叫做motd的文件(可有可无,显示连接上VPN后的欢迎信息(Android上以Toast Notification显示,至少我用的VpnCilla是这样的)

cd /etc/racoon
touch motd

racoon使用的用户名和密码是VPS的账户名/密码。为了保险起见可以新增一个(或多个)专用账号,然后取消它(们)的登录权限。以vpn做用户名为例:

useradd vpn
passwd vpn
(输入新密码)
(再次确认新密码)

取消用户登录权限:

nano /etc/passwd

然后修改下面这一行(开头可能略有不同)

vpn:x:1000:100::/tmp/vpn:/sbin/nologin

保存,重启ssh。

service ssh restart

4.修改系统转发配置

以上设置弄好以后就可以连接了。然而你可能会注意到上传/下载流量为0k/s。这就是我们接下来要做的修改转发配置。

首先允许IPv4转发:

sed -i 's/#net.ipv4.ip_forward=1/net.ipv4.ip_forward=1/g' /etc/sysctl.conf

紧接着执行

sysctl -p

使改动生效。

然后还需要添加防火墙规则:

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

这里需要注意一点:你的服务器网卡名称可能不是eth0,也可能是eth1或者其他名字。为了确认,可以执行一下ifconfig。

现在我们要保存iptables规则:

apt-get install iptables-persistent

会提示是否保存当前规则,选“是”。接下来

iptables-save

至此,Cisco IPSec VPN设置完毕。

5.使用

Android和iOS设备都可以直接连接上(Android连接方式选择IPSec xauth psk)然而Windows Phone又成了不认识的孩子(WP只支持L2TP over IPSec和IKEV2)。

PC对于Cisco IPSec的支持十分糟糕,因此建议出门右拐Shadowsocks。

还有一点:服务器不要给大范围的人使用。原因嘛,大家都懂得。

8 条评论

有什么想法说出来听听?

  • 问下,cisco vpn 的win客服端有么?最好能像SS的客户端那样方便

    • Cisco有Windows客户端,但是个人感觉非常不方便…

  • VPN服務商的好壞(國際標準):
    1.物理地址是否在美國、英國等國家之外,最好沒有電信法規定運營商要log的(哦,日本也不行)
    實際物理地址位於美國德州奧斯定的Golden Frog同學不幸中彈,你丫的不能把全部工作崗位都搬到瑞士嗎?Express也陣亡
    目前看來比較靠譜的有
    Astrill(塞舌爾,真是做絕了,佩服他們)
    TunnelBear(加拿大)
    PureVPN(香港,目前沒有log要求!)
    TigerVPN(即傳說中的“老虎翻牆大師”,位於羅馬尼亞)
    AirVPN(義大利,而且登錄先通過SSH干擾元數據)
    CyberGhost(同上是義大利)
    Buffered(荷蘭)
    NordVPN(同Astrill一樣值得尊敬,位於巴拿馬!)
    ……

    2.是否是zero log
    注意zero log有兩層面,一個是上網(一切上網活動)的log,一個只是ip登錄時間的log
    大名鼎鼎的HideMyAss被淘汰

    Tunnelbear
    Astrill
    PureVPN
    NordVPN
    Express
    TorGuard
    Disconnect
    ……

    3.是否擁有自己的DNS?
    如果使用OpenDNS,GoogleDNS等第三方公用DNS,也會有隱私暴露的風險
    Astrill
    Vypr(也就是GoldenFrog)
    ……

    4.是否能完全控制IP地址?
    這點目前看來只有GoldenFrog勉強做到了,絕大多數的VPN服務商是租用的VPS或者服務器,IPlookup查到的ISP各種Linode,Digitalocean等。。。另外要注意Linode東京機房的原ISP還是KDDI公司的,你看二房東,三房東……

    5.是否提供Dedicated IP?
    已知PureVPN和Astrill目前提供,某種程度可以避免被維基百科等網站識別為公共代理IP從而拒絕編輯的問題。

    6.是否能夠屏蔽IPV6?
    目前IPV6還不成熟,隱私不如IPV4(我相信未來運營商肯定懶得花錢去一人一個固定IP的,但現階段水錶的確不像IPV4是共享的)
    基本都可以

    7.是否抗WebRTC Leak 和 DNS Leak?
    不說了 直接看這個http://www.eecs.qmul.ac.uk/~hamed/papers/PETS2015VPN.pdf

    8.是否支持多種協議,並且有自家的非傳統VPN協定?
    至少要有SSTP或者IKEV2兩個中的一個。
    Vypr(變色龍VPN,運用類似混淆協議SSH的混淆元數據)
    Astrill(StealthVPN,在OpenVPN報頭再次加密)

    9.是否支持高度匿名付款?
    比特幣
    很多了就不說了

      • 過獎過獎了

        我看了下AirVPN也是佼佼者,獨家提供在SSH或SSL轉入OpenVPN,政府再無賴也不敢封殺SSL,因為大陸很多企業還要依靠Verisign發SSL證呢哈哈

  • Astrill自從1月26日後就一直正常,我到大陸來之後一直用著Astrill,等我回台北了還要把它介紹給朋友~太好用了!還是那句話,不是你們大陸才需要網路隱私,全世界都需要 尤其是美國 我是EFF等組織的老粉絲了呢~

  • tunnelbear是我見過最難用的VPN,除了名字好聽之外,沒有抗封鎖能力,沒有高速度,也沒有好的服務~