Categorized | 网络技术

Tags | , ,

Centos安装L2TP+IPSec完整教程

发布于 2015年02月07日

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模块

执行命令:

cat /dev/net/tun

如果返回信息为:cat: /dev/net/tun: File descriptor in bad state 说明正常

检测是否支持ppp模块

执行命令:

cat /dev/ppp

如果返回信息为:cat: /dev/ppp: No such device or address 说明正常

开始安装:终端里运行以下命令(以root用户运行):

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:」设置你预共享密钥。

执行后,一直等待成功,会显示相关配置信息。

生成的密码是随机的,需要修改的话,执行

vi /etc/ppp/chap-secrets

注意:xp用户使用L2TP方法登陆的话,可能需要查看电脑的IPSec服务是否正常开启,如果关闭请去“控制面板->管理工具->服务”开启一下。

二、完整diy脚本(高级用户推荐)

①部署IPSec

1、首先安装必备依赖包

yum install make gcc gmp-devel bison flex lsof

2、安装Openswan

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

vim /etc/ipsec.conf

将protostack=auto,修改为:protostack=netkey

4、在最后加上:

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:

vim /etc/ipsec.secrets

输入:
YOUR.SERVER.IP.ADDRESS %any: PSK “YourSharedSecret”

修改包转发设置

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文件:

vim /etc/sysctl.conf

将“net.ipv4.ip_forward”的值改为1。
使修改生效:

sysctl -p

重启IPSec:

service ipsec restart

查看系统IPSec安装和启动的正确性:

ipsec verify

一般情况下没有报[FAILED]就可以了。但是如果转发已经确认配置了,但仍检测checking IP Forwarding 失败,可以先忽略此项错误.

②部署L2TP(使用xl2tpd和rp-l2tp)

xl2tpd最新版已经包含了l2tp-control,rp-l2tp可不需要安装。

首先安装依赖软件:

yum install libpcap-devel ppp policycoreutils

安装xl2tpd和rp-l2tp:

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:

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配置文件:

mkdir /etc/xl2tpd
vim /etc/xl2tpd/xl2tpd.conf

加入:

[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文件:

vim /etc/ppp/options.xl2tpd

加入:

#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

设置拨号用户名和密码:

vim /etc/ppp/chap-secrets

此处注意的是第二列的 l2tpd 为上面配置的name,如果有改动也要修改此处。

# Secrets for authentication using CHAP
# client server secret IP addresses
myusername l2tpd mypassword *

最后添加iptables转发规则并保存重启

iptables --table nat --append POSTROUTING --jump MASQUERADE
/etc/init.d/iptables save
/etc/init.d/iptables restart

以debug方式启动l2tp,查看有无错误:

xl2tpd -D

至此,已完成全部安装工作。

另外建议在/etc/ipsec.conf中的 conn L2TP-PSK-noNAT节,加入如下内容以解决少部分情况连接该服务不稳定的情况:

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/

看了此文的人貌似还看了这些:

  • Amazon EC2的V-P-N-PPTP搭建教程(on aws redhat6.5 X64) 2014-10-20
  • Centos安装Cisco IPSec V-P-N方式 2015-02-25
  • 自动检测memcached进程,不存在则自动重启(脚本) 2014-11-09
  • excel中批量添加带图片批注的vba宏命令 2015-06-04
  • 360极速浏览器在chrome商店无法安装插件提示不支持版本的解决方法 2014-07-11
  • VBA宏命令:批量检索替换/修改word中指定多个关键词的格式内容等 2015-04-11
  • 2013年flash倒计时及win7侧边栏小工具制作-by simon 2013-06-12
  • wordpress换空间实录,让windows的iis也支持去固定链接index.php化! 2011-02-21
  • LNMP及LANMP环境一键搭建教程 2013-08-25
  • 天天爱消除刷满分(250万分)攻略 2013-08-20
  • 9 Comments For This Post

    1. 肖振杰博客 Says:

      太齐全了,不得不收藏起来

    2. Mask Says:

      请问如何将数据加密选项调低?

    3. Mask Says:

      我这边按照第一个方法配置好了,但连接的时候出现错误:”错误789:L2TP 连接尝试失败,因为安全层在初始化与远程计算机的协商时遇到一个处理错误”

    4. simon Says:

      看一下系统的错误日志

    5. Mask Says:

      惭愧,看不懂。不过,如果手机也连不上,应该是服务器端出的问题吧

    6. Mask Says:

      大神,请问如果出现以下几个问题该怎么解决?谢谢了
      Version check and ipsec on-path [OK]
      Linux Openswan U2.6.32/K(no kernel code presently loaded)
      Checking for IPsec support in kernel [FAILED]
      SAref kernel support [N/A]
      Checking that pluto is running [FAILED]
      whack: Pluto is not running (no “/var/run/pluto/pluto.ctl”)
      Checking for ‘ip’ command [OK]
      Checking /bin/sh is not /bin/dash [OK]
      Checking for ‘iptables’ command [OK]
      Opportunistic Encryption Support [DISABLED]

    7. last Says:

      Openswan下載失效

    8. Teddysun Says:

      您好,我是 teddysun.com 的站长。
      基于 IPSec 搭建的 L2TP 一键安装脚本,我已经更新到了 2016 最新版。
      网址为:
      https://teddysun.com/448.html
      请您更新一下该文章,这样也能方便到有需求的朋友。

      另:如果出现以下信息:Checking for IPsec support in kernel [FAILED]
      说明该 OpenVZ 虚拟的 VPS 母服务器内核是不支持 IPSec 的,这个无解。

    9. tumars Says:

      你好,我使用这个方法全程无问题,但是 l2tp 链接上后无网络。
      我的服务器是 openvz 的 centos5.9 ,支持 ipsec .客户端用 win10 能链接上 l2tp 但无网络,使用 ios10 无法链接。

      这个可能是什么情况?

    发表评论

    Time limit is exhausted. Please reload CAPTCHA.

       我相信你,不会发广告!

    斗牛SEO工具