ฉันพยายามทำให้มันใช้งานได้มาระยะหนึ่งแล้ว ฉันมีเซิร์ฟเวอร์ openvpn (ติดตั้งโดยใช้ Angristan https://github.com/angristan/openvpn-install ) บน Openvz 7 vps ที่รันเดเบียน 10 ดังนั้นการกำหนดค่าส่วนใหญ่จึงถูกจัดการโดยมันมันสร้างไฟล์กำหนดค่าไคลเอนต์ (myClient.ovpn) ซึ่งฉันดาวน์โหลดบนไคลเอนต์
บนไคลเอนต์ (ซึ่งเป็น linux mint 20.3) ฉันกำลังทดสอบการเชื่อมต่อโดยใช้:
openvpn --client --config myClient.ovpn
มันเชื่อมต่อได้ดี ตอนนี้ฉันสามารถ ping เกตเวย์ VPN เช่น (จากลูกค้า):
PING 10.8.0.1 (10.8.0.1) 56(84) ไบต์ของข้อมูล
64 ไบต์จาก 10.8.0.1: icmp_seq=1 ttl=64 เวลา=87.9 ms
64 ไบต์จาก 10.8.0.1: icmp_seq=2 ttl=64 เวลา=86.6 ms
64 ไบต์จาก 10.8.0.1: icmp_seq=3 ttl=64 เวลา=86.6 ms
^ซี
--- สถิติ ping 10.8.0.1 ---
ส่ง 3 แพ็กเก็ต, 3 แพ็กเก็ตที่ได้รับ, การสูญเสียแพ็กเก็ต 0%, เวลา 2003ms
rtt นาที/เฉลี่ย/สูงสุด/mdev = 86.551/87.041/87.946/0.640 มิลลิวินาที
แต่ฉันไม่สามารถ ping google หรืออย่างอื่นได้ เห็นได้ชัดว่าปัญหาการกำหนดเส้นทาง/ NAT ฉันไม่พบข้อผิดพลาดด้วยความรู้ที่จำกัดของฉัน :
ปิง 8.8.8.8
กำลังล้มเหลว
Dns ทำงานอย่างถูกต้องราวกับว่าฉันใช้ ping yahoo.com จากนั้นจะแก้ไขเป็น yahoo IP แต่ไม่สามารถ ping ได้อีกครั้ง
$ ปิง yahoo.com
PING yahoo.com (74.6.143.25) ข้อมูล 56(84) ไบต์
--- สถิติ ping ของ yahoo.com ---
ส่งแพ็กเก็ต 4 แพ็กเก็ต ได้รับ 0 แพ็กเก็ต สูญเสียแพ็กเก็ต 100% เวลา 3154ms```
รายละเอียดเซิร์ฟเวอร์ :
รุ่น openvpn:
~ # openvpn --version
OpenVPN 2.4.7 x86_64-pc-linux-gnu [SSL (OpenSSL)] [LZO] [LZ4] [EPOLL] [PKCS11] [MH/PKTINFO] [AEAD] สร้างขึ้นเมื่อวันที่ 28 เมษายน 2021
รุ่นไลบรารี: OpenSSL 1.1.1d 10 ก.ย. 2019, LZO 2.10
สร้างสรรค์โดย James Yonan
ชื่อ -a
~#uname -a
Linux mySerer.domainHost.com 4.19.0 #1 SMP อ. 25 ส.ค. 11:59:26 MSK 2020 x86_64 GNU/Linux
หมายเหตุ: เป็น vps ที่ใช้ openvz 7
การกำหนดค่าเซิร์ฟเวอร์:
เซิร์ฟเวอร์
แมว /etc/openvpn/server.conf
พอร์ต 2220
โปรโตคอล udp
ทุนพัฒนา
ผู้ใช้ไม่มีใคร
กลุ่มโนกรุ๊ป
คีย์คงอยู่
คงอยู่-tun
รักษาชีวิต 10 120
ซับเน็ตโทโพโลยี
เซิร์ฟเวอร์ 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
กด "dhcp-option DNS 208.67.222.222"
กด "dhcp-option DNS 208.67.220.220"
กด "เปลี่ยนเส้นทางเกตเวย์ def1 บายพาส-dhcp"
ไม่มีเลย
ecdh-curve prime256v1
tls-crypt tls-crypt.key
crl-ตรวจสอบ crl.pem
แคลิฟอร์เนีย ca.crt
ใบรับรอง server_JCJHDggypybdTuKJ.crt
คีย์ server_JCJHDggypybdTuKJ.key
รับรองความถูกต้อง SHA256
รหัส AES-128-GCM
ncp-ciphers AES-128-GCM
เซิร์ฟเวอร์ tls
tls-เวอร์ชั่น-นาที 1.2
tls-cipher TLS-ECDHE-ECDSA-WITH-AES-128-GCM-SHA256
ลูกค้า config-dir /etc/openvpn/ccd
สถานะ /var/log/openvpn/status.log
กริยา 4
รายละเอียดเครือข่ายหลังจากเริ่มเซิร์ฟเวอร์ openvpn:
~# ไอพีเอ
1: จริง: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN กลุ่มเริ่มต้น qlen 1,000
ลิงค์ / ย้อนกลับ 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 ขอบเขตโฮสต์เลย
valid_lft ตลอดไป reserved_lft ตลอดไป
inet6 ::1/128 ขอบเขตโฮสต์
valid_lft ตลอดไป reserved_lft ตลอดไป
2: venet0: <BROADCAST,POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN กลุ่มเริ่มต้น
ลิงค์/โมฆะ
inet 127.0.0.1/32 ขอบเขตโฮสต์ venet0
valid_lft ตลอดไป reserved_lft ตลอดไป
inet Y.Y.Y.Y/32 brd Y.Y.Y.Y ขอบเขต global venet0:0
valid_lft ตลอดไป reserved_lft ตลอดไป
inet6 2402:x:x:x:x::dc37/80 ขอบเขตทั่วโลก
valid_lft ตลอดไป reserved_lft ตลอดไป
inet6 ::2/128 ขอบเขตทั่วโลก
valid_lft ตลอดไป reserved_lft ตลอดไป
7: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN กลุ่มเริ่มต้น qlen 500
ลิงค์/ไม่มี
inet 10.8.0.1/24 brd 10.8.0.255 ขอบเขต global tun0
valid_lft ตลอดไป reserved_lft ตลอดไป
inet6 fe80::505f:b97:1101:5f33/64 ลิงค์ขอบเขตความเสถียร - ความเป็นส่วนตัว
valid_lft ตลอดไป reserved_lft ตลอดไป
บนเซิร์ฟเวอร์ (กฎ iptables)
iptables -t แนท -L -n -v
CHAIN PREROUTING (นโยบายยอมรับ 0 แพ็คเก็ต, 0 ไบต์)
pkts bytes target prot เลือกใช้ปลายทางต้นทาง
Chain INPUT (นโยบายยอมรับ 0 แพ็กเก็ต, 0 ไบต์)
pkts bytes target prot เลือกใช้ปลายทางต้นทาง
Chain POSTROUTING (นโยบายยอมรับ 0 แพ็คเก็ต, 0 ไบต์)
pkts bytes target prot เลือกใช้ปลายทางต้นทาง
0 0 สวมหน้ากากทั้งหมด -- * venet0 10.8.0.0/24 0.0.0.0/0
Chain OUTPUT (นโยบายยอมรับ 0 แพ็คเก็ต, 0 ไบต์)
pkts bytes target prot เลือกใช้ปลายทางต้นทาง
# คำเตือน: มีตาราง iptables-legacy ให้ใช้ iptables-legacy เพื่อดู
บนเซิร์ฟเวอร์ เส้นทาง ip:
เส้นทาง $ ip
ลิงก์ขอบเขต dev venet0 เริ่มต้น
10.8.0.0/24 dev tun0 ลิงก์ขอบเขตเคอร์เนลโปรโต src 10.8.0.1
สถานะการส่งต่อ (บนเซิร์ฟเวอร์)
sysctl -a | เกรปส่งต่อ
net.ipv4.conf.all.forwarding = 1
net.ipv4.conf.all.mc_forwarding = 0
net.ipv4.conf.default.forwarding = 1
net.ipv4.conf.default.mc_forwarding = 0
net.ipv4.conf.lo.forwarding = 1
net.ipv4.conf.lo.mc_forwarding = 0
net.ipv4.conf.tun0.forwarding = 1
net.ipv4.conf.tun0.mc_forwarding = 0
net.ipv4.conf.venet0.forwarding = 1
net.ipv4.conf.venet0.mc_forwarding = 0
net.ipv6.conf.all.forwarding = 0
net.ipv6.conf.all.mc_forwarding = 0
net.ipv6.conf.default.forwarding = 0
net.ipv6.conf.default.mc_forwarding = 0
net.ipv6.conf.lo.forwarding = 0
net.ipv6.conf.lo.mc_forwarding = 0
net.ipv6.conf.tun0.forwarding = 0
net.ipv6.conf.tun0.mc_forwarding = 0
net.ipv6.conf.venet0.forwarding = 0
net.ipv6.conf.venet0.mc_forwarding = 0
ลูกค้าสามารถเชื่อมต่อกับ VPN ได้ ฉันสามารถ ping เกตเวย์ VPN (10.8.0.1) ตามที่กล่าวไว้ด้านบนแล้ว
เส้นทางบนไคลเอนต์หลังจากเชื่อมต่อกับ VPN:
เส้นทางหลังจากเชื่อมต่อกับ VPN:
$เส้นทาง
ตารางเส้นทางเคอร์เนล IP
เกตเวย์ปลายทาง Genmask ตั้งค่าสถานะการอ้างอิงเมตริก ใช้ Iface
0.0.0.0 10.8.0.1 128.0.0.0 ยูจี 0 0 0 ตัน 0
CLIENT-HOSTNAME เริ่มต้น 0.0.0.0 UG 0 0 0 eth0
10.8.0.0 0.0.0.0 255.255.255.0 U 0 0 0 tun0
128.0.0.0 10.8.0.1 128.0.0.0 UG 0 0 0 ตัน0
ชื่อเซิร์ฟเวอร์โฮสต์ ชื่อลูกค้าโฮสต์ 255.255.255.255 UGH 0 0 0 eth0
192.168.224.0 0.0.0.0 255.255.240.0 คุณ 0 0 0 eth0
ขณะนี้ฉันไม่มีความคิด แม้ว่ากฎ NAT จะดูเหมือนไม่เป็นไรบนเซิร์ฟเวอร์ แต่เส้นทางไคลเอนต์ยังแสดงการกำหนดค่าที่ถูกต้อง เนื่องจากฉันไม่ได้เข้าสู่เครือข่ายจึงไม่สามารถเข้าใจสิ่งนี้ได้ การตั้งค่า VPN อย่างง่ายกลายเป็นเรื่องเสียเวลา มันเกี่ยวข้องกับเซิร์ฟเวอร์ที่ใช้ openVZ 7 หรือไม่
CSF ทำงานอย่างถูกต้อง ดังนั้นฉันคิดว่าโมดูลที่จำเป็นสำหรับ iptabless มีอยู่บนเซิร์ฟเวอร์
perl csftest.pl
กำลังทดสอบ ip_tables/iptable_filter...ตกลง
กำลังทดสอบ ipt_LOG...ตกลง
กำลังทดสอบ ipt_multiport/xt_multiport...ตกลง
กำลังทดสอบ ipt_REJECT...ตกลง
กำลังทดสอบ ipt_state/xt_state...ตกลง
กำลังทดสอบ ipt_limit/xt_limit...ตกลง
กำลังทดสอบ ipt_recent...ตกลง
กำลังทดสอบ xt_connlimit...ตกลง
กำลังทดสอบ ipt_owner/xt_owner...ตกลง
กำลังทดสอบ iptable_nat/ipt_REDIRECT...ตกลง
กำลังทดสอบ iptable_nat/ipt_DNAT...ตกลง
ฉันได้ลองใช้กับไคลเอนต์ Debian 10 และ linuxmin 20.x พฤติกรรมเดียวกัน ไคลเอนต์สามารถเชื่อมต่อ สามารถใช้ VPN lan แต่ไม่สามารถท่องอินเทอร์เน็ตได้
หากต้องการอะไรอีก โปรดแจ้งให้เราทราบ