準備工作
三臺阿里雲ECS服務器,操作系統CentOS7
服務器名稱 | 內網ip | 公網 |
---|---|---|
服務器A | 172.26.245.47 | 有 |
服務器B | 172.26.245.48 | 無 |
服務器C | 172.26.245.49 | 無 |
服務器A有彈性公網ip可以上網,在這個服務器上部署L2TP/IPSEC服務,服務器B和服務器C沒有公網ip,需要通過服務器A上網
自建NAT網關
添加路由
按一下順序打開路由表頁面
阿里雲控制檯 - 專有網絡管理控制檯 - 路由表
點管理,然後點添加路由條目
按上圖填寫表單,然後確定
地址轉換
登錄服務器A,依次執行以下命令
- 阿里雲ECS的防火牆默認沒有開啓,先開啓防火牆
systemctl enable firewalld
systemctl start firewalld
- 地址轉換
firewall-cmd --add-masquerade --permanent
firewall-cmd --reload
- ip轉發
cat "net.ipv4.ip_forward=1" >> /etc/sysctl.conf
sysctl -p
- 內網添加白名單(三臺服務器都需要添加)
firewall-cmd --permanent --add-rich-rule="rule family='ipv4' source address='172.26.245.1/24' port protocol='tcp' port='0-65535' accept"
firewall-cmd --reload
部署xl2tpd
以下在服務器A操作
安裝服務
- 安裝EPEL源(CentOS7官方源中已經去掉了xl2tpd):
yum install -y epel-release
- 安裝xl2tpd和libreswan(openswan已經停止維護):
yum install -y xl2tpd libreswan lsof
修改配置
- xl2tpd配置文件
vim /etc/xl2tpd/xl2tpd.conf
,內容如下
# ip range是分配給v和p諧n客戶端的ip範圍
# local ip是本機內網ip
[lns default]
ip range = 172.26.243.100-172.26.243.110 # 分配給v和p諧n客戶端的ip範圍
local ip = 172.26.245.47 # 本機內網ip
require chap = yes
refuse pap = yes
require authentication = yes
name = LinuxV河P蟹Nserver
ppp debug = yes
pppoptfile = /etc/ppp/options.xl2tpd
length bit = yes
- pppoptfile文件
vim /etc/ppp/options.xl2tpd
,內容如下
ipcp-accept-local
ipcp-accept-remote
ms-dns 8.8.8.8
ms-dns 114.114.114.114
name xl2tpd
auth
idle 1800
mtu 1410
mru 1410
nodefaultroute
debug
proxyarp
connect-delay 5000
refuse-pap
refuse-mschap
require-mschap-v2
persist
logfile /var/log/xl2tpd.log
- ipsec配置文件
vim /etc/ipsec.conf
,內容如下
# config setup下的protostack=netkey和dumpdir=/var/run/pluto/爲新增項
# 其他保持默認即可
# 縮進使用TAB
config setup
plutodebug=none
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
- 新建
/etc/ipsec.d/l2tp-ipsec.conf
內容如下
# left=172.26.245.47是本機內網ip
# 縮進使用TAB
conn L2TP-PSK-NAT
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.26.245.47 # 本機內網ip
leftprotoport=17/1701
right=%any
rightprotoport=17/%any
- 設置用戶名密碼
vim /etc/ppp/chap-secrets
,追加用戶名密碼
# 格式爲:用戶名 類型 密碼 允許訪問的ip
v和p諧nuser * v和p諧npassword *
- 設置預共享密鑰PSK
vim /etc/ipsec.d/default.secrets
,內容如下
# 將MyPSK替換爲自己的祕鑰
: PSK "MyPSK"
- 防火牆配置
firewall-cmd --permanent --add-service=ipsec # 放行ipsec服務,安裝時會自定生成此服務
firewall-cmd --permanent --add-port=1701/udp # xl2tp的端口,默認1701
firewall-cmd --permanent --add-port=4500/udp # ipsec的端口
firewall-cmd --permanent --add-port=500/udp # ipsec的端口
firewall-cmd --permanent --add-masquerade # 啓用NAT轉發功能,自建NAT網關時已經配置過
firewall-cmd --reload # 重載配置
- 修改內核參數
vim /etc/sysctl.conf
,追加以下內容
net.ipv4.ip_forward = 1 # ip轉發,自建NAT網關時已經配置過
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.all.rp_filter = 0
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.accept_redirects = 0
net.ipv4.conf.default.rp_filter = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.eth0.accept_redirects = 0
net.ipv4.conf.eth0.rp_filter = 0
net.ipv4.conf.eth0.send_redirects = 0
net.ipv4.conf.lo.accept_redirects = 0
net.ipv4.conf.lo.rp_filter = 0
net.ipv4.conf.lo.send_redirects = 0
- 啓動ipsec和xl2tpd
systemctl enable ipsec
systemctl start ipsec
systemctl enable xl2tpd
systemctl start xl2tpd
- 安全組規則
按照下圖配置,並將服務器A添加到此安全組
將v和p諧n網段添加到白名單
分別在三臺服務器執行以下命令
firewall-cmd --permanent --add-rich-rule="rule family='ipv4' source address='172.26.243.1/24' port protocol='tcp' port='0-65535' accept
firewall-cmd --reload
win10連接v和p諧n
- 打開網絡和Internet設置,選擇v和p諧n選項卡,點添加v和p諧n連接
按上圖添加v和p諧n連接
- 適配器設置
- 開啓服務
IPsec Policy Agent
、Routing and Remote Access
、Remote Access Connection Manager
啓動以上三個服務,並改爲自動啓動
- 修改註冊表
註冊表路徑:HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Rasman\Parameters
新建ProhibitIpSec
項,DWORD
類型,值設置爲1
新建AllowL2TPWeakCrypto
項,DWORD
類型,值設置爲1
重啓電腦
完成
連接v和p諧n,即可通過內網訪問訪問服務器A、B、C
參考鏈接
centos7 搭建xl2tpd 服務
win10系統 L2TP連接嘗試失敗
centos7 阿里雲專有網絡利用firewalld自建NAT網關