(转)Debian/Ubuntu下架设L2TP(IPSec)

首先安装openswan:

1
apt-get install openswan

用文字编辑工具(如vim)打开/etc/ipsec.conf,改成如下样式:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
version 2.0
config setup
nat_traversal=yes
virtual_private=%v4:10.0.0.0/8,%v4:192.168.0.0/16,%v4:172.16.0.0/12
oe=off
protostack=netkey

conn L2TP-PSK-NAT
rightsubnet=vhost:%priv
also=L2TP-PSK-noNAT

conn L2TP-PSK-noNAT
authby=secret
pfs=no
auto=add
keyingtries=3
rekey=no
ikelifetime=8h
keylife=1h
type=transport
left=YOUR.SERVER.IP.ADDRESS
leftprotoport=17/1701
right=%any
rightprotoport=17/%any

 

用文字编辑器打开/etc/ipsec.secrets,改成如下格式

1
你的服务器的ip地址 %any: PSK “自定义密钥”

把上面中文部分的东西替换成你自己的,保存。

然后运行以下命令:

1
2
3
4
5
for each in /proc/sys/net/ipv4/conf/*
do
echo 0 > $each/accept_redirects
echo 0 > $each/send_redirects
done

检查一下 IPSec 能否正常工作:

1
ipsec verify

除了最后一行Opportunistic Encryption Support可能显示为[DISABLED]外,其他全应该是OK,如果有遇到问题的请按照错误提示具体分析。

重启openswan

1
service ipsec restart

或者

1
/etc/init.d/ipsec restart

安装xl2tpd:

1
apt-get install xl2tpd

用文字编辑器打开/etc/xl2tpd/xl2tpd.conf,改成这样:

1
2
3
4
5
6
7
8
9
10
11
12
13
[global]
ipsec saref = yes

[lns default]
ip range = 10.0.2.2-10.0.2.255
local ip = 10.0.2.1
;require chap = yes
refuse chap = yes
refuse pap = yes
require authentication = yes
ppp debug = yes
pppoptfile = /etc/ppp/options.xl2tpd
length bit = yes

注意ip range里面出现的IP避免和已使用的IP重复,如果发现有重复就错开一个段即可。

如果你之前没有在服务器上安装过pptpd,那么下面这一步你要进行安装:

1
apt-get install pptpd

然后配置/etc/ppp/options.xl2tpd,如果没有就新建一个,内容如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
require-mschap-v2
ms-dns 8.8.8.8
ms-dns 8.8.4.4
asyncmap 0
auth
crtscts
lock
hide-password
modem
debug
name l2tpd
proxyarp
lcp-echo-interval 30
lcp-echo-failure 4
mtu 1400
connect-delay 5000
noccp

其中dns我设置的是google的公共dns服务器,可以自行修改。

使用文字编辑器编辑/etc/ppp/chap-secrets,添加或修改用户

格式是这样:每一行是一个用户的信息,第一部分是用户名,第二部分是所使用的服务,第三部分是密码,第四部分是允许的IP地址,一般来说第二部分可以设置成l2tpd,这样就完全限制这个账号只能使用l2tp登陆,同时因为pptp和l2tp两种登陆方式是可以共存并且同时使用的,第二部分也就可以设置成pptpd,当然,设置成通配符*也是可以的,意思是所有协议都可以使用这个账号登陆,例子如下:

1
2
3
4
5
yynotespptp pptpd yynotes *

yynotesl2tp l2tpd yynotes *

yynotes * yynotes *

下面重启 xl2tpd:

1
service xl2tpd restart

设置 iptables 的数据包转发:

1
2
iptables –table nat –append POSTROUTING –jump MASQUERADE
echo 1 > /proc/sys/net/ipv4/ip_forward

设置自启动项,编辑/etc/rc.local,加入下面的语句:

1
2
3
4
5
6
7
8
iptables –table nat –append POSTROUTING –jump MASQUERADE
echo 1 > /proc/sys/net/ipv4/ip_forward
for each in /proc/sys/net/ipv4/conf/*
do
echo 0 > $each/accept_redirects
echo 0 > $each/send_redirects
done
/etc/init.d/ipsec restart

配置完成。记得连接的时候要选择l2tp over ipsec,并输入之前在/etc/ipsec.secrets里设置的自定义密钥即可。

(原文地址:http://yynotes.net/debian-setup-l2tp-ipsec/)

暂时木有评论啊,等您坐沙发呢!

打破沉默,我来发表评论鸟~