Centos安装L2TP+IPSec完整教程

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Centos安装L2TP+IPSec完整教程相关的知识,希望对你有一定的参考价值。

Centos安装L2TP+IPSec完整教程

L2TP相比PPTP是另外一种隧道协议方式,部分网络下PPTP无法连接,可以尝试L2TP,一般而言在PC上,两者使用体验没什么不同,技术原理上的不同请参照这里.
建议PC电脑上优先使用PPTP,无法使用可以尝试L2TP,移动端推荐使用L2TP;
安装方式:
一、一键脚本安装(推荐,安装简单)
安装的软件包版本分别是openswan-2.6.38、xl2tpd-1.2.4
VPS是需要基于Xen或KVM的。
注意:基于 OpenVZ 虚拟化技术的 VPS 需要开启TUN/TAP才能正常使用,购买 VPS 时请先咨询服务商是否支持开启 TUN/TAP。
检测是否支持TUN模块
执行命令:
1
cat /dev/net/tun
如果返回信息为:cat: /dev/net/tun: File descriptor in bad state 说明正常
检测是否支持ppp模块
执行命令:
1
cat /dev/ppp
如果返回信息为:cat: /dev/ppp: No such device or address 说明正常
开始安装:终端里运行以下命令(以root用户运行):
1
2
3
4
5
6
cd /root
wget http://lamp.teddysun.com/files/l2tp.sh #CentOS、Fedora或Redhat系统时执行
wget http://lamp.teddysun.com/files/l2tp_ubuntu.sh #Ubuntu系统时执行此命令
chmod +x *.sh
./l2tp.sh #CentOS、Fedora或Redhat系统时执行
./l2tp_ubuntu.sh #Ubuntu系统时执行此命令</p>
等待出现
「Please input IP-Range:」设置网段,一般回车即可
「Please input PSK:」设置你预共享密钥。
执行后,一直等待成功,会显示相关配置信息。
生成的密码是随机的,需要修改的话,执行
1
vi /etc/ppp/chap-secrets
注意:xp用户使用L2TP方法登陆的话,可能需要查看电脑的IPSec服务是否正常开启,如果关闭请去“控制面板->管理工具->服务”开启一下。
二、完整diy脚本(高级用户推荐)
①部署IPSec
1、首先安装必备依赖包
1
yum install make gcc gmp-devel bison flex lsof
2、安装Openswan
1
2
3
4
wget http://www.openswan.org/download/openswan-2.6.38.tar.gz
tar -zxvf openswan-2.6.38.tar.gz
cd openswan-2.6.38
make programs install
3、编辑配置文件/etc/ipsec.conf
1
vim /etc/ipsec.conf
将protostack=auto,修改为:protostack=netkey
4、在最后加上:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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
其中“YOUR.SERVER.IP.ADDRESS”为外网IP,下同。
5、设置共享密钥PSK 编辑配置文件/etc/ipsec.secrets:
1
vim /etc/ipsec.secrets
输入:
YOUR.SERVER.IP.ADDRESS %any: PSK “YourSharedSecret”
修改包转发设置
1
2
3
4
5
6
for each in /proc/sys/net/ipv4/conf/* do
 echo 0 > $each/accept_redirects
 echo 0 > $each/send_redirects
done
 
echo 1 >/proc/sys/net/core/xfrm_larval_drop
修改内核设置,使其支持转发,编辑/etc/sysctl.conf文件:
1
vim /etc/sysctl.conf
将“net.ipv4.ip_forward”的值改为1。
使修改生效:
1
sysctl -p
重启IPSec:
1
service ipsec restart
查看系统IPSec安装和启动的正确性:
1
ipsec verify
一般情况下没有报[FAILED]就可以了。但是如果转发已经确认配置了,但仍检测checking IP Forwarding 失败,可以先忽略此项错误.
②部署L2TP(使用xl2tpd和rp-l2tp)
xl2tpd最新版已经包含了l2tp-control,rp-l2tp可不需要安装。
首先安装依赖软件:
1
yum install libpcap-devel ppp policycoreutils
安装xl2tpd和rp-l2tp:
1
2
3
4
5
6
7
8
wget http://sourceforge.net/projects/rp-l2tp/files/rp-l2tp/0.4/rp-l2tp-0.4.tar.gz
tar -zxvf rp-l2tp-0.4.tar.gz
cd rp-l2tp-0.4
./configure
make
cp handlers/l2tp-control /usr/local/sbin/
mkdir /var/run/xl2tpd/
ln -s /usr/local/sbin/l2tp-control /var/run/xl2tpd/l2tp-control
安装xl2tpd:
1
2
3
4
5
wget http://www.xelerance.com/wp-content/uploads/software/xl2tpd/xl2tpd-1.3.0.tar.gz
tar -zxvf xl2tpd-1.3.0.tar.gz
cd xl2tpd-1.3.0
make
make install
建立xl2tpd配置文件:
1
2
mkdir /etc/xl2tpd
vim /etc/xl2tpd/xl2tpd.conf
加入:
1
2
3
4
5
6
7
8
9
10
11
12
[global]
ipsec saref = yes
 
[lns default]
ip range = 10.82.88.2-10.82.88.254
local ip = 10.82.88.1
refuse chap = yes
refuse pap = yes
require authentication = yes
ppp debug = yes
pppoptfile = /etc/ppp/options.xl2tpd
length bit = yes
配置ppp 建立options.xl2tpd文件:
1
vim /etc/ppp/options.xl2tpd
加入:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#require-mschap-v2 #此处不是必须,在非MS环境下
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
设置拨号用户名和密码:
1
vim /etc/ppp/chap-secrets
此处注意的是第二列的 l2tpd 为上面配置的name,如果有改动也要修改此处。
1
2
3
# Secrets for authentication using CHAP
# client server secret IP addresses
myusername l2tpd mypassword *
最后添加iptables转发规则并保存重启
1
2
3
iptables --table nat --append POSTROUTING --jump MASQUERADE
/etc/init.d/iptables save
/etc/init.d/iptables restart
以debug方式启动l2tp,查看有无错误:
1
xl2tpd -D
至此,已完成全部安装工作。
另外建议在/etc/ipsec.conf中的 conn L2TP-PSK-noNAT节,加入如下内容以解决少部分情况连接该服务不稳定的情况:
1
2
3
4
5
dpddelay=40
dpdtimeout=130
dpdaction=clear
leftnexthop=%defaultroute
rightnexthop=%defaultroute
备注:如果局域网内有第二台电脑无法连接的情况,请重启IPsec服务,2台都连上后,再连接就正常了。
相关文章:
1、L2TP+IPSec一键安装脚本:http://teddysun.com/135.html
2、CENTOS LINUX 安装配置L2TP+IPSEC http://www.fendou.info/centos-linux-install-l2tp-ipsec-vpn/

  

以上是关于Centos安装L2TP+IPSec完整教程的主要内容,如果未能解决你的问题,请参考以下文章

搭建L2tp/ipsec

l2tp ipsec centos7

如何在CentOS创建L2TP/ipsec VPN服务

Centos6.5 搭建L2TP+IPsec服务 及问题

CentOS8服务器搭建L2TP服务器(over IPsec)操作指南

L2TP/IPSec一键安装脚本