L2TP VPN在CentOS7系统下的搭建

目录

这是个很奇怪的事情,应聘了一家搞 CDN 的公司,结果上去看了一下根本不对路。就立刻辞了,但是发现它给员工开的 L2TP VPN 很好用。

于是就自己也搭一个,方便自用。下面记录一下安装过程,环境是CentOS 7

一、装L2TP

1# yum install epel-release
2# yum install xl2tpd libreswan

二、修改核心参数

 1# vi /etc/sysctl.conf
 2
 3vm.swappiness = 0
 4net.ipv4.neigh.default.gc_stale_time=120
 5net.ipv4.conf.all.rp_filter=0
 6net.ipv4.conf.default.rp_filter=0
 7net.ipv4.conf.default.arp_announce = 2
 8net.ipv4.conf.all.arp_announce=2
 9net.ipv4.tcp_max_tw_buckets = 5000
10net.ipv4.tcp_syncookies = 1
11net.ipv4.tcp_max_syn_backlog = 1024
12net.ipv4.tcp_synack_retries = 2
13net.ipv4.conf.lo.arp_announce=2
14net.ipv4.ip_forward = 1
15net.ipv4.conf.default.accept_redirects = 0
16net.ipv4.conf.default.send_redirects = 0
17net.ipv4.conf.default.accept_source_route = 0
18
19# sysctl -p

三、配置 IPSEC

 1# vi /etc/ipsec.d/l2tp_psk.conf
 2
 3conn L2TP-PSK-NAT
 4     rightsubnet=vhost:%priv
 5     also=L2TP-PSK-noNAT
 6conn L2TP-PSK-noNAT
 7     authby=secret
 8     pfs=no
 9     auto=add
10     keyingtries=3
11     dpddelay=30
12     dpdtimeout=120
13     dpdaction=clear
14     rekey=no
15     ikelifetime=8h
16     keylife=1h
17     type=transport
18     left=192.168.10.232
19     leftprotoport=17/1701
20     right=%any
21     rightprotoport=17/%any
22

注意上面的 left=192.168.10.232,这是服务器的ip地址,要更换为自己服务器的地址(如果在防火墙后,写内网地址,非映射后的公网IP)

然后修改密钥,之后建立L2TP的 iphone 连接时会用到:

1# vim /etc/ipsec.secrets
2
3192.168.10.232 %any: PSK "123456789"
4

验证一下:

1# ipsec setup start
2
3# ipsec verify
4

image-20220810094316262

看到上面两行红字不要慌张,Ignore,忽略掉即可。是内核特性中的reverse path filter特性,没关系。

然后让 ipsec 自启动

1# systemctl enable ipsec

四、配置xl2tpd

 1# 先备份
 2# mv /etc/xl2tpd/xl2tpd.conf /etc/xl2tpd/xl2tpd.conf.old
 3
 4# vim /etc/xl2tpd/xl2tpd.conf
 5[global]
 6listen-addr = 192.168.10.232
 7ipsec saref = yes
 8[lns default]
 9ip range = 192.168.100.128-192.168.100.254
10local ip = 192.168.100.99
11require chap = yes
12refuse pap = yes
13require authentication = yes
14name = LinuxVPNserver
15ppp debug = yes
16pppoptfile = /etc/ppp/options.xl2tpd
17length bit = yes
18

注意更换上面 192.168.10.232 的服务器ip地址,同时记住name=LinuxVPNserver

 1# 先备份
 2# mv /etc/ppp/options.xl2tpd /etc/ppp/options.xl2tpd.old
 3
 4# vim /etc/ppp/options.xl2tpd
 5ipcp-accept-local
 6ipcp-accept-remote
 7ms-dns  8.8.8.8
 8ms-dns  4.2.2.4
 9noccp
10#noauth
11crtscts
12idle 1800
13mtu 1410
14mru 1410
15nodefaultroute
16debug
17lock
18proxyarp
19connect-delay 5000
20

最后编辑用户名和密码

1vim /etc/ppp/chap-secrets
2
3# Secrets for authentication using CHAP
4# client        server  secret                  IP addresses
5test     LinuxVPNserver test *

注意格式,第一列是用户名,第二列是上面xl2tpd.conf中记住的name名,第三列是密码,第四列是获取到的ip地址

然后启动

1# systemctl start xl2tpd
2# systemctl enable xl2tpd
3# systemctl status xl2tpd

五、配置防火墙

1iptables -A INPUT -p gre -j ACCEPT
2iptables -A OUTPUT -p gre -j ACCEPT
3iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
4iptables -A FORWARD -s 192.168.100.0/24 -j ACCEPT
5iptables -t nat -A POSTROUTING -s 192.168.100.0/24 -o eth0 -j MASQUERADE

注意上面的eth0,根据服务器的具体情况进行修改

然后这样就完成了。

六、配置iphone手机

image-20220810095400410

配置好服务器ip,账户,密码以及密钥就可以了。


Kafka的安装和验证
comments powered by Disqus