CentOS 搭建L2TPVPN

    选择打赏方式

                                                                                                                   ----本文来自互联网 

1、安装必备软件:

yum install make gcc gmp-devel bison flex lsof

makegcc我们都知道是干什么用的了。 
gmp-devel: Development tools for the GNU MP arbitrary precision library. 
bison: A GNU general-purpose parser generator. 
flex: A tool for creating scanners (text pattern recognizers). 
看上去好像都和编译器有关?

2、安装Openswan 
由于更新源上的版本是2.6.21-5.el5_6.4较老,这里使用源码安装,目前最新版是2.6.35

cd /tmp 
wget http://www.openswan.org/download/openswan-2.6.35.tar.gz 
tar -zxvf openswan-2.6.35.tar.gz 
cd openswan-2.6.35 
make programs install

PS:进openswan-2.6.35目录看到已经有Makefile文件了,阅读目录内的INSTALL写着 
Building userland: 
make programs install

3、配置IPSec 
编辑配置文件/etc/ipsec.conf

cp /etc/ipsec.conf /etc/ipsec.conf.bak 
vim /etc/ipsec.conf

查找protostack=auto,修改为:

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

“YOUR.SERVER.IP.ADDRESS”换成VPS的外网IP。其中一些设置含义可以参考/etc/ipsec.d/examples/l2tp-psk.conf文件的内容。

4、设置共享密钥PSK 
编辑配置文件/etc/ipsec.secrets

vim /etc/ipsec.secrets

输入:

YOUR.SERVER.IP.ADDRESS %any: PSK "YourSharedSecret"

5、修改包转发设置 
复制以下两段代码在终端里运行:

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

6、重启IPSec

/etc/init.d/ipsec restart

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

ipsec verify

没有报[FAILED]就可以了。

我用的这个VPS结果显示如下: 

二、安装L2TP(xl2tpdrp-l2tp) 
xl2tpd
是由Xelerance Corporation维护的l2tpd应用。但是xl2tpd没有l2tp-control,需要从rp-l2tp这个里面提取。所以要装这两个软件包。

1、安装必备软件:

yum install libpcap-devel ppp policycoreutils

2、安装xl2tpdrp-l2tp

cd /tmp 
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用的是目前最新的xl2tpd-1.3.0

cd /tmp 
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

显示安装了如下一些内容: 

3、建立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

4、配置ppp 
建立options.xl2tpd文件:

vim /etc/ppp/options.xl2tpd

加入:

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

5、设置拨号用户名和密码:

vim /etc/ppp/chap-secrets

6、添加iptables转发规则:

iptables --table nat --append POSTROUTING --jump MASQUERADE

保存iptables转发规则:

/etc/init.d/iptables save

重启iptables

/etc/init.d/iptables restart

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

xl2tpd -D

显示如下: 
xl2tpd[9647]: Enabling IPsec SAref processing for L2TP transport mode SAs 
xl2tpd[9647]: IPsec SAref does not work with L2TP kernel mode yet, enabling forceuserspace=yes 
xl2tpd[9647]: setsockopt recvref[22]: Protocol not available 
xl2tpd[9647]: This binary does not support kernel L2TP. 
xl2tpd[9647]: xl2tpd version xl2tpd-1.3.0 started on myserver.localdomain PID:9647 
xl2tpd[9647]: Written by Mark Spencer, Copyright (C) 1998, Adtran, Inc. 
xl2tpd[9647]: Forked by Scott Balmos and David Stipp, (C) 2001 
xl2tpd[9647]: Inherited by Jeff McAdams, (C) 2002 
xl2tpd[9647]: Forked again by Xelerance (www.xelerance.com) (C) 2006 
xl2tpd[9647]: Listening on IP address 0.0.0.0, port 1701 
说明已经在监听端口了。现在可以在windows上建立L2TP拨号连接了。

三、设置开机启动

vim /etc/rc.local

加入:

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/init.d/ipsec restart

/usr/local/sbin/xl2tpd

四、建立连接时遇到的问题 
windows
下新建一个VPN连接,属性-网络-VPN类型选择L2TP IPSec VPN,安全-IPSec设置-输入共享密钥。

提示错误 768:因为加密数据失败连接尝试失败。” 
IPSEC services
被关掉了。开始-运行-输入services.msc,然后在服务中启用“IPSEC services”即可

 

版权声明:若无特殊注明,本文皆为《 CM部落 》原创,转载请保留文章出处。
本文链接:CentOS 搭建L2TPVPN https://itkz.cn/centos/16.html
正文到此结束

热门推荐

发表吐槽

你肿么看?

你还可以输入 250 / 250 个字

嘻嘻 大笑 可怜 吃惊 害羞 调皮 鄙视 示爱 大哭 开心 偷笑 嘘 奸笑 委屈 抱抱 愤怒 思考 日了狗 胜利 不高兴 阴险 乖 酷 滑稽

评论信息框

吃奶的力气提交吐槽中...


既然没有吐槽,那就赶紧抢沙发吧!