阿里雲ECS部署L2TP/IPSEC,訪問服務器內網

準備工作

三臺阿里雲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,依次執行以下命令

  1. 阿里雲ECS的防火牆默認沒有開啓,先開啓防火牆
    1. systemctl enable firewalld
    2. systemctl start firewalld
  2. 地址轉換
    1. firewall-cmd --add-masquerade --permanent
    2. firewall-cmd --reload
  3. ip轉發
    1. cat "net.ipv4.ip_forward=1" >> /etc/sysctl.conf
    2. sysctl -p
  4. 內網添加白名單(三臺服務器都需要添加)
    1. firewall-cmd --permanent --add-rich-rule="rule family='ipv4' source address='172.26.245.1/24' port protocol='tcp' port='0-65535' accept"
    2. firewall-cmd --reload

部署xl2tpd

以下在服務器A操作

安裝服務

  1. 安裝EPEL源(CentOS7官方源中已經去掉了xl2tpd):yum install -y epel-release
  2. 安裝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連接
按上圖添加v和p諧n連接

  • 適配器設置

適配器設置(安全)
適配器設置(網絡)

  • 開啓服務

IPsec Policy AgentRouting and Remote AccessRemote 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網關

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章