- อูบุนตู 20.04LTS
- strongSwan swanctl 5.8.2
- ลินุกซ์ 5.8.0-1035-gcp
ฉันกำลังพยายามตั้งค่า VPN "roadwarrior" ของ IKEv2 ที่เลื่อนการรับรองความถูกต้องของรัศมีไปยังเซิร์ฟเวอร์อัปสตรีมของเรา ข่าวดีก็คือฉัน สามารถ รับลูกค้าเพื่อเชื่อมต่อและผ่าน RADIUS auth แต่ฉันได้พยายามเกี่ยวกับสิ่งที่เป็นล้าน แต่ฉัน ไม่ได้ รับแพ็คเก็ตเพื่อส่งต่อ ฉันเห็นการจราจรที่มาถึงในอุโมงค์ แต่จะไม่ NAT ขาออก สังเกตความพยายามของฉันในสคริปต์ updown เพื่อพยายามรับส่งข้อมูล NAT ไม่มีประโยชน์ (ขณะนี้ถูกแสดงความคิดเห็น)
นี่คือการกำหนดค่า:
sudo tee /etc/strongswan.d/charon-systemd.conf << "EOF"
charon-systemd {
# install_virtual_ip=ไม่
# install_routes = 0
โหลด = สุ่ม nonce aes sha1 sha2 hmac pem pkcs1 x509 revocation curve25519 gmp curl kernel-netlink socket-default updown vici eap-radius eap-identity
วารสาร {
# Loglevel สำหรับระบบย่อยเฉพาะ
# <ระบบย่อย> = <ค่าเริ่มต้น>
# ระดับบันทึกเริ่มต้น
ค่าเริ่มต้น=2
เข้ารหัส=1
asn=1
}
ปลั๊กอิน {
eap-รัศมี {
เซิร์ฟเวอร์ {
หลัก {
ที่อยู่=10.128.0.13
ความลับ = ความลับสุดยอด
auth_port=21812
}
}
}
}
}
อฟ
sudo ที /etc/swanctl/conf.d/vpn.conf << "EOF"
การเชื่อมต่อ {
rw-eap {
รุ่น=2
ข้อเสนอ = aes128gcm16-sha256-modp2048
local_addrs=10.128.0.14
send_cert=เสมอ
พูล=dhcp_ipv4
ท้องถิ่น {
auth=pubkey
certs=vpn.pem
id=vpn.xxx.com
}
ระยะไกล {
auth=eap-รัศมี
รหัส=*
}
เด็ก {
สุทธิ {
local_ts=0.0.0.0/0
remote_ts=172.16.20.64/26
if_id_in=%ไม่ซ้ำกัน
if_id_out=%ไม่ซ้ำกัน
mark_in=% ไม่ซ้ำกัน
mark_out=%ไม่ซ้ำกัน
updown=/usr/local/bin/rw-updown.sh
esp_proposals=aes128gcm16-sha256-modp2048
}
}
}
}
สระว่ายน้ำ {
dhcp_ipv4 {
แอดเดรส=172.16.20.64/26
DNS=10.128.0.9
}
}
อฟ
ที /usr/local/bin/rw-updown.sh << "EOF"
#!/bin/bash
ชุด -o ชุดคำนาม
ตั้งค่า -o errexit
XFRM_IF="xfrm${PLUTO_UNIQUEID}"
กรณี "${PLUTO_VERB}" ใน
up-client)
คนตัดไม้ -t "vpn rw-updown" ${PLUTO_VERB} ${PLUTO_UNIQUEID} ${XFRM_IF} ${PLUTO_ME} ${PLUTO_PEER} ${PLUTO_MARK_OUT%%/*} ${PLUTO_PEER_SOURCEIP}
ip link เพิ่ม ${XFRM_IF} พิมพ์ xfrm dev ens4 if_id ${PLUTO_UNIQUEID}
ลิงก์ ip ตั้งค่า ${XFRM_IF} แล้ว
# iptables -A FORWARD --in-interface ${XFRM_IF} -j ยอมรับ
# iptables --table nat -A POSTROUTING --out-interface ens4 -j MASQUERADE
;;
ลูกค้าดาวน์)
# iptables -D FORWARD --in-interface ${XFRM_IF} -j ยอมรับ
# iptables --table nat -D POSTROUTING --out-interface ens4 -j MASQUERADE
ลิงก์ ip ของ ${XFRM_IF}
;;
เอสแซค
อฟ
chmod +x /usr/local/bin/rw-updown.sh
ดังนั้นหลังจากเชื่อมต่อไคลเอ็นต์แล้ว เราจะเห็นอินเทอร์เฟซที่สร้างขึ้น:
root@vpn-iowa:~# ip นโยบาย xfrm
src 0.0.0.0/0 dst 172.16.20.64/26
กำจัดลำดับความสำคัญ 386687
ทำเครื่องหมาย 0x2/0xffffffff
tmpl src 10.128.0.14 dst 173.197.16.118
proto esp spi 0x08547b23 reqid 2 โหมดอุโมงค์
if_id 0x2
src 172.16.20.64/26 dst 0.0.0.0/0
dir fwd ลำดับความสำคัญ 386687
ทำเครื่องหมาย 0x2/0xffffffff
tmpl src 173.197.16.118 dst 10.128.0.14
อุโมงค์โหมด proto esp reqid 2
if_id 0x2
src 172.16.20.64/26 dst 0.0.0.0/0
ลำดับความสำคัญ 386687
ทำเครื่องหมาย 0x2/0xffffffff
tmpl src 173.197.16.118 dst 10.128.0.14
อุโมงค์โหมด proto esp reqid 2
if_id 0x2
src 0.0.0.0/0 dst 0.0.0.0/0
ซ็อกเก็ตลำดับความสำคัญ 0
src 0.0.0.0/0 dst 0.0.0.0/0
ลำดับความสำคัญเอาท์พุต 0
src 0.0.0.0/0 dst 0.0.0.0/0
ซ็อกเก็ตลำดับความสำคัญ 0
... มากกว่า
และวิ่งอย่างมั่นคง ปิง 1.1.1.1
บนไคลเอนต์ทำให้ทราฟฟิกมาถึง RX แพ็กเก็ต 246
:
root@vpn-iowa:~# ifconfig
ens4: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1460
inet 10.128.0.14 netmask 255.255.255.255 ออกอากาศ 0.0.0.0
inet6 fe80::4001:aff:fe80:e คำนำหน้า 64 scopeid 0x20<link>
อีเธอร์ 42:01:0a:80:00:0e txqueuelen 1000 (อีเธอร์เน็ต)
แพ็คเก็ต RX 2668 ไบต์ 444824 (444.8 KB)
ข้อผิดพลาด RX 0 หลุด 0 โอเวอร์รัน 0 เฟรม 0
แพ็กเก็ต TX 1907 ไบต์ 586712 (586.7 KB)
ข้อผิดพลาด TX 0 หลุด 0 โอเวอร์รัน 0 พาหะ 0 ชนกัน 0
แท้จริง: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 เน็ตมาสก์ 255.0.0.0
inet6 ::1 คำนำหน้าlen 128 scopeid 0x10<host>
วนซ้ำ txqueuelen 1,000 (วนกลับในเครื่อง)
แพ็คเก็ต RX 140 ไบต์ 13208 (13.2 KB)
ข้อผิดพลาด RX 0 หลุด 0 โอเวอร์รัน 0 เฟรม 0
แพ็กเก็ต TX 140 ไบต์ 13208 (13.2 KB)
ข้อผิดพลาด TX 0 หลุด 0 โอเวอร์รัน 0 พาหะ 0 ชนกัน 0
xfrm2: flags=193<UP,RUNNING,NOARP> mtu 1500
inet6 fe80::85d9:2aa5:841:803f คำนำหน้า 64 scopeid 0x20<ลิงค์>
ไม่ระบุ 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 txqueuelen 1000 (UNSPEC)
แพ็คเก็ต RX 246 ไบต์ 18819 (18.8 KB)
ข้อผิดพลาด RX 0 หลุด 0 โอเวอร์รัน 0 เฟรม 0
แพ็กเก็ต TX 0 ไบต์ 0 (0.0 B)
ข้อผิดพลาด TX 0 หลุด 0 โอเวอร์รัน 0 พาหะ 0 ชนกัน 0
ฉันจะเป็นหนี้คุณตลอดไปถ้าคุณสามารถช่วยฉันได้ฉันอ่านแหล่งข้อมูลนับล้านแล้วและยังไม่สามารถเข้าใจสิ่งนี้ได้ ขอขอบคุณ!