準備環境 環境測試 軟體安裝 xl2tpd.conf options.xl2tpd ipsec.conf l2tp ipsec.conf chap secrets 也就是我們一會在windows上登陸時用到的帳號和密碼 default secrets sysctl.conf 檢查配置 防火牆 開啟服 ...
準備環境
1 主機ip:192.168.0.107
2 VPN伺服器:
ens32:192.168.0.102
ens33:127.16.1.10
環境測試
modprobe ppp-compress-18 && echo yes
cat /dev/net/tun
軟體安裝
[root@localhost ~]# yum install -y xl2tpd libreswan lsof
註意:若無法安裝xl2tp
yum install -y epel-release
xl2tpd.conf
[root@localhost ~]# vim /etc/xl2tpd/xl2tpd.conf
[global]
[lns default]
ip range = 172.16.1.100-172.16.1.199
local ip = 172.16.1.10
require chap = yes
refuse pap = yes
require authentication = yes
name = LinuxVPNserver
ppp debug = yes
pppoptfile = /etc/ppp/options.xl2tpd
length bit = yess
options.xl2tpd
[root@localhost ~]# vim /etc/ppp/options.xl2tpd
# .....
ipcp-accept-local
ipcp-accept-remote
ms-dns 114.114.114.114
ms-dns 223.5.5.5
# ms-wins 192.168.1.2
# ms-wins 192.168.1.4
name xl2tpd
#noccp
auth
#crtscts
idle 1800
mtu 1410
mru 1410
nodefaultroute
debug
#lock
proxyarp
connect-delay 5000
refuse-pap
refuse-mschap
require-mschap-v2
persist
logfile /var/log/xl2tpd.log
ipsec.conf
[root@localhost ~]# vim /etc/ipsec.conf # 只修改以下項,其他預設
config setup
protostack=netkey
dumpdir=/var/run/pluto/
virtual_private=%v4:10.0.0.0/8,%v4:192.168.0.0/16,%v4:172.16.0.0/12,%v4:25.0.0.0/8,%v4:100.64.0.0/10,%v6:fd00::/8,%v6:fe80::/10
include /etc/ipsec.d/*.conf
l2tp-ipsec.conf
[root@localhost ~]# vim /etc/ipsec.d/l2tp-ipsec.conf # 新建如下配置文文件,直接複製的話,前面是很多空格,在啟動的時候會報錯,需要將空格刪除,換成tab的距離,距離相同。不能用空格!
conn L2TP-PSK-NAT
(tab距離)rightsubnet=0.0.0.0/0
dpddelay=10
dpdtimeout=20
dpdaction=clear
forceencaps=yes
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=172.16.1.10 # 這個是網卡的內網IP,後面通過NAT轉發
leftprotoport=17/1701 # 埠,預設1701,不用改
right=%any
rightprotoport=17/%any
chap-secrets
也就是我們一會在windows上登陸時用到的帳號和密碼
[root@localhost ~]# vim /etc/ppp/chap-secrets
# Secrets for authentication using CHAP
# client server secret IP addresses
root * 456 *
用戶名 服務類型(*代表所有) 密碼 連入的ip(*代表任意地址)
default-secrets
[root@localhost ~]# vim /etc/ipsec.d/default.secrets # 新建如下文件
------------------------------------------------------------------------------------
: PSK "MyPSK" # 就一行,填上自定義的PSK,為欲共用密鑰
sysctl.conf
[root@localhost ~]# vim /etc/sysctl.conf # 添加如下配置到文件中,參數後面不能有空格
net.ipv4.ip_forward = 1
net.ipv4.conf.*.accept_redirects = 0
net.ipv4.conf.*.rp_filter = 0
net.ipv4.conf.*.send_redirects = 0
註:
*為/proc/sys/net/ipv4/conf/裡面所有項目
[root@localhost ~]# sysctl -p # 載入內核參數使生效
檢查配置
ipsec verify # 檢查命令
註:
# 可能會出現類似如下情況:
Checking rp_filter [ENABLED]
/proc/sys/net/ipv4/conf/ens160/rp_filter [ENABLED]
/proc/sys/net/ipv4/conf/ens192/rp_filter [ENABLED]
# 這是內核參數沒有生效,直接依次手動打開這些文件,將 1 改為 0
# 然後重新執行檢查,輸出如下內容則OK:
防火牆
firewall-cmd --permanent --add-service=ipsec # 放行ipsec服務,安裝時會自定生成此服務
firewall-cmd --permanent --add-port=1701/udp # xl2tp 的埠,預設1701
firewall-cmd --permanent --add-port=4500/udp
firewall-cmd --permanent --add-masquerade # 啟用NAT轉發功能。必須啟用此功能
firewall-cmd --reload # 重載配置
開啟服務
systemctl enable ipsec # 設為開機啟動
systemctl start ipsec # 啟動服務
主機連接
設置-》網路與Internet-》VPN-》添加VPN連接
VPN提供商為Windows內置-》連接名稱隨意-》伺服器地址為192.168.0.107-》VPN類型選使用欲共用密鑰的L2TP/IPsec-》欲共用密鑰 MyPSK
打開網路適配器-》修改VPN連接的屬性-》安全-》允許使用這些協議-》勾上CHAP
輸入用戶與密碼
註:若無法連接
windows+r 運行
輸入 services.msc-》查找ipsec policy agent-》確保它在運行
輸入 regedit-》 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Rasman\Parameters-》添加ProhibitIpSec,類型為 DWORD(32位), vlan為1,修改AllowL2TPWeakCrypto, vlan為 1
保存退出,重啟電腦