1.服務器安裝軟件node
yum install openswan xl2tpd ppp
2.服務器配置文件/etc/ipsec.conf
修改內容以下,***客戶端內網地址網段自定義,公網地址爲服務器公網地址服務器
config setup protostack=netkey dumpdir=/var/run/pluto/ nat_traversal=yes virtual_private=%v4:***客戶端內網地址網段/24 conn L2TP-PSK-NAT rightsubnet=vhost:%priv also=L2TP-PSK-noNAT conn L2TP-PSK-noNAT authby=secret pfs=no auto=add keyingtries=3 dpddelay=30 dpdtimeout=120 dpdaction=clear rekey=no ikelifetime=8h keylife=1h type=transport left=公網地址 leftprotoport=17/1701 right=%any rightprotoport=17/%any
3.設置***共享密鑰,服務器配置文件/etc/ipsec.secrets
修改內容以下,密鑰自定義app
%any: PSK "密鑰"
4.修改服務器內核參數,服務器配置文件/etc/sysctl.conf
修改或者添加內容以下dom
net.ipv4.ip_forward = 1 net.ipv4.conf.default.rp_filter = 0 net.ipv4.conf.all.rp_filter = 0 net.ipv4.conf.all.send_redirects = 0 net.ipv4.conf.default.send_redirects = 0 net.ipv4.conf.all.accept_redirects = 0 net.ipv4.conf.default.accept_redirects = 0 net.core.xfrm_larval_drop = 1
5.服務器執行命令,修改內核參數當即生效tcp
sysctl -p
6.執行腳本ide
for each in /proc/sys/net/ipv4/conf/* do echo 0 > $each/accept_redirects echo 0 > $each/send_redirects done
7.防火牆添加規則ui
iptables -t nat -A POSTROUTING ! -s 127.0.0.1/8 -j MASQUERADE iptables -I FORWARD -p tcp -m tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
8.服務器啓動ipsec服務spa
RHEL/CentOS 6系列debug
service ipsec start
RHEL/CentOS 7系列code
systemctl start ipsec
9.服務器檢查ipsec服務
ipsec verify
運行結果顯示相似以下,除兩行不是[OK]
代表正常:
Verifying installed system and configuration files Version check and ipsec on-path [OK] Libreswan 3.15 (netkey) on 3.10.0-123.9.3.el7.x86_64 Checking for IPsec support in kernel [OK] NETKEY: Testing XFRM related proc values ICMP default/send_redirects [OK] ICMP default/accept_redirects [OK] XFRM larval drop [OK] Pluto ipsec.conf syntax [OK] Hardware random device [N/A] Two or more interfaces found, checking IP forwarding [OK] Checking rp_filter [OK] Checking that pluto is running [OK] Pluto listening for IKE on udp 500 [OK] Pluto listening for IKE/NAT-T on udp 4500 [OK] Pluto ipsec.secret syntax [OK] Checking 'ip' command [OK] Checking 'iptables' command [OK] Checking 'prelink' command does not interfere with FIPSChecking for obsolete ipsec.conf options [OK] Opportunistic Encryption [DISABLED]
10.服務器配置文件/etc/xl2tpd/xl2tpd.conf
修改內容以下
[global] ipsec saref = yes [lns default] ip range = ***客戶端內網起始IP地址-***客戶端內網結束IP地址 local ip = ***服務器內網IP地址 require chap = yes refuse pap = yes require authentication = yes name = *** Server ppp debug = yes pppoptfile = /etc/ppp/options.xl2tpd length bit = yes
11.服務器配置文件/etc/ppp/options.xl2tpd
修改內容以下
ipcp-accept-local ipcp-accept-remote require-mschap-v2 ms-dns DNS服務器地址1 ms-dns DNS服務器地址2 noccp noipv6 auth crtscts idle 1800 mtu 1400 mru 1400 nodefaultroute debug lock noproxyarp connect-delay 5000 lcp-echo-interval 30 lcp-echo-failure 3 logfile /var/log/xl2tpd.log
12.服務器啓動xl2tpd服務
RHEL/CentOS 6系列
service xl2tpd start
RHEL/CentOS 7系列
systemctl start xl2tpd
13.服務器配置文件/etc/ppp/chap-secrets
添加帳號,格式以下
帳號 * 密碼 *
新建.reg
後綴名的文件,將下列內容添加至該文件並雙擊運行,以後重啓電腦:*
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\PolicyAgent] "AssumeUDPEncapsulationContextOnSendRule"=dword:00000002