เรามีเซิร์ฟเวอร์ OpenVPN พร้อม server.conf ต่อไปนี้:
ท้องถิ่น x.x.x.x
พอร์ต 1194
โปรโตคอล tcp
แตะ dev
แคลิฟอร์เนีย ca.crt
ใบรับรอง server.crt
คีย์เซิร์ฟเวอร์.คีย์
dh dh.pem
รับรองความถูกต้อง SHA512
tls-crypt tc.key
ซับเน็ตโทโพโลยี
เซิร์ฟเวอร์ 10.8.0.0 255.255.0.0
ifconfig-pool-persist ipp.txt
client-config-dir /etc/openvpn/ccd
ลูกค้าต่อลูกค้า
รักษาชีวิต 10 120
รหัส AES-256-CBC
ผู้ใช้ไม่มีใคร
กลุ่มโนกรุ๊ป
คีย์คงอยู่
คงอยู่-tun
สถานะ openvpn-status.log
กริยา 3
crl-ตรวจสอบ crl.pem
เรายังมีอินสแตนซ์ Linux ใน AWS ที่ใช้งานไคลเอ็นต์ OpenVPN และเรากำหนดที่อยู่ IP แบบคงที่เป็น 10.8.0.2 ให้กับอินสแตนซ์ได้สำเร็จโดยการเพิ่มไฟล์ที่มีชื่อสามัญของไคลเอ็นต์ไปยังเซิร์ฟเวอร์ OpenVPN /etc/openvpn/ccd
ไดเรกทอรีที่มีเนื้อหาดังต่อไปนี้:
ifconfig-push 10.8.0.2 255.255.0.0
ตอนนี้เราต้องการแทนที่อินสแตนซ์ Linux นั้นด้วยอินสแตนซ์ Windows Server 2019 และให้ที่อยู่ IP แบบคงที่ 10.8.0.2 เดียวกัน ดังนั้นเราจึงทำสิ่งต่อไปนี้:
- ลบอินสแตนซ์ Linux ใน AWS
- ใช้ Nyr OpenVPN สคริปต์ openvpn-install.sh บนเซิร์ฟเวอร์ OpenVPN เพื่อเพิกถอนไคลเอนต์ Linux
- ลบไคลเอนต์ Linux ออกจากเซิร์ฟเวอร์ OpenVPN
/etc/openvpn/server/easy-rsa/pki/index.txt
ไฟล์
- ลบใบรับรองของไคลเอนต์ Linux ออกจากเซิร์ฟเวอร์ OpenVPN
/etc/openvpn/server/easy-rsa/pki/revoked/certs_by_serial
ไดเรกทอรี
- ลบไฟล์ไคลเอนต์ Linux ในเซิร์ฟเวอร์ OpenVPN
/etc/openvpn/ccd
ไดเรกทอรี
- ลบเซิร์ฟเวอร์ OpenVPN แล้ว
/etc/openvpn/server/ipp.txt
ไฟล์ (เนื่องจากมีการเชื่อมโยง 10.8.0.2 กับไคลเอนต์ Linux)
- เพิ่มไฟล์ใหม่ในเซิร์ฟเวอร์ OpenVPN
/etc/openvpn/ccd
ไดเรกทอรีสำหรับอินสแตนซ์ Windows Server 2019 ด้วย ifconfig-push 10.8.0.2 255.255.0.0
- สร้างอินสแตนซ์ Windows Server 2019 ใน AWS
- ติดตั้งแล้ว OpenVPN 2.4.9 บนอินสแตนซ์ Windows Server 2019
อินสแตนซ์ Windows Server 2019 มีไฟล์กำหนดค่าไคลเอนต์ OpenVPN ต่อไปนี้:
ลูกค้า
แตะ dev
โปรโตคอล tcp
รีโมท x.x.x.x 1194
resolv-retry ไม่มีที่สิ้นสุด
ไม่ผูกมัด
คีย์คงอยู่
คงอยู่-tun
เซิร์ฟเวอร์ระยะไกล cert-tls
รับรองความถูกต้อง SHA512
รหัส AES-256-CBC
เพิกเฉยไม่รู้จักตัวเลือกบล็อกภายนอก DNS
บล็อกภายนอก DNS
กริยา 3
เมื่อเราเริ่มไคลเอ็นต์ OpenVPN บนอินสแตนซ์ Windows Server 2019 สิ่งต่อไปนี้จะแสดงในไฟล์บันทึกของไคลเอ็นต์ OpenVPN:
วันพุธที่ 14 กรกฎาคม 01:15:02 น. 2021 [เซิร์ฟเวอร์] การเชื่อมต่อเพียร์เริ่มต้นด้วย [AF_INET]x.x.x.x:1194
วันพุธที่ 14 กรกฎาคม 01:15:03 น. 2021 SENT CONTROL [เซิร์ฟเวอร์]: 'PUSH_REQUEST' (สถานะ = 1)
วันพุธที่ 14 กรกฎาคม 01:15:03 น. PUSH: ได้รับข้อความควบคุม: 'PUSH_REPLY,route-gateway 10.8.0.1,ping 10,ping-restart 120,ifconfig 10.8.0.2 255.255.0.0,peer-id 0,cipher AES-256 -GCM'
วันพุธที่ 14 กรกฎาคม 01:15:03 น. 2021 นำเข้าตัวเลือก: แก้ไขตัวจับเวลาและ/หรือหมดเวลา
วันพุธที่ 14 กรกฎาคม 01:15:03 น. 2021 นำเข้าตัวเลือก: --ifconfig/up ตัวเลือกที่แก้ไข
วันพุธที่ 14 กรกฎาคม 01:15:03 น. 2021 นำเข้าตัวเลือก: แก้ไขตัวเลือกที่เกี่ยวข้องกับเส้นทาง
วันพุธที่ 14 กรกฎาคม 01:15:03 น. 2021 นำเข้าตัวเลือก: ชุด peer-id
วันพุธที่ 14 กรกฎาคม 01:15:03 น. 2021 นำเข้าตัวเลือก: ปรับ link_mtu เป็น 1658
วันพุธที่ 14 กรกฎาคม 01:15:03 น. 2021 นำเข้าตัวเลือก: ตัวเลือกการเข้ารหัสลับช่องข้อมูลถูกแก้ไข
พุธ 14 ก.ค. 01:15:03 น. ช่องข้อมูล 2021: ใช้รหัสลับ 'AES-256-GCM'
วันพุธที่ 14 กรกฎาคม 01:15:03 น. 2021 ช่องข้อมูลขาออก: Cipher 'AES-256-GCM' เริ่มต้นด้วยคีย์ 256 บิต
วันพุธที่ 14 กรกฎาคม 01:15:03 น. ช่องข้อมูลขาเข้าปี 2021: Cipher 'AES-256-GCM' เริ่มต้นด้วยคีย์ 256 บิต
วันพุธที่ 14 กรกฎาคม 01:15:03 น. บริการแบบโต้ตอบ 2021 msg_channel=0
วันพุธที่ 14 กรกฎาคม 01:15:03 น. 2021 open_tun
วันพุธที่ 14 กรกฎาคม 01:15:03 น. 2021 อุปกรณ์ TAP-WIN32 [การเชื่อมต่อท้องถิ่น] เปิด: \.\Global\{526EF9D3-DC84-41B0-B139-F1D4BAEFBF4F}.tap
วันพุธที่ 14 กรกฎาคม 01:15:03 น. 2021 TAP-Windows Driver เวอร์ชัน 9.24
วันพุธที่ 14 กรกฎาคม 01:15:03 น. 2021 แจ้งไดรเวอร์ TAP-Windows ให้ตั้งค่า DHCP IP/netmask เป็น 10.8.0.2/255.255.0.0 บนอินเทอร์เฟซ {526EF9D3-DC84-41B0-B139-F1D4BAEFBF4F} [DHCP-serv: 10.8.0.0 , เวลาเช่า: 31536000]
วันพุธที่ 14 กรกฎาคม 01:15:03 น. 2021 ARP Flush บนอินเทอร์เฟซสำเร็จ [11] {526EF9D3-DC84-41B0-B139-F1D4BAEFBF4F}
วันพุธที่ 14 กรกฎาคม 01:15:03 น. 2021 Block_DNS: เปิดเครื่องยนต์ WFP
วันพุธที่ 14 กรกฎาคม 01:15:03 น. 2021 Block_DNS: การใช้เลเยอร์ย่อยที่มีอยู่
วันพุธที่ 14 กรกฎาคม 01:15:03 น. 2021 Block_DNS: เพิ่มตัวกรองใบอนุญาตสำหรับ exe_path
วันพุธที่ 14 กรกฎาคม 01:15:03 น. 2021 Block_DNS: เพิ่มตัวกรองบล็อกสำหรับอินเทอร์เฟซทั้งหมด
วันพุธที่ 14 กรกฎาคม 01:15:03 น. 2021 Block_DNS: เพิ่มตัวกรองใบอนุญาตสำหรับอินเทอร์เฟซ TAP
พุธ 14 ก.ค. 01:15:08 2021 TEST ROUTES: 0/0 สำเร็จ len=-1 ret=0 a=0 u/d=down
Wed Jul 14 01:15:08 2021 Route: กำลังรออินเทอร์เฟซ TUN/TAP ขึ้นมา...
พุธ 14 ก.ค. 01:15:13 2021 TEST ROUTES: 0/0 สำเร็จ len=-1 ret=0 a=0 u/d=down
พุธ 14 ก.ค. 01:15:13 น. เส้นทาง: กำลังรออินเตอร์เฟส TUN/TAP ขึ้นมา...
พุธ 14 ก.ค. 01:15:14 2021 TEST ROUTES: 0/0 สำเร็จ len=-1 ret=0 a=0 u/d=down
พุธ 14 ก.ค. 01:15:14 2021 เส้นทาง: กำลังรออินเตอร์เฟส TUN/TAP ขึ้นมา...
พุธ 14 ก.ค. 01:15:15 2021 TEST ROUTES: 0/0 สำเร็จ len=-1 ret=0 a=0 u/d=down
พุธ 14 ก.ค. 01:15:15 น. เส้นทาง: กำลังรออินเตอร์เฟส TUN/TAP ขึ้นมา...
พุธ 14 ก.ค. 01:15:16 2021 TEST ROUTES: 0/0 สำเร็จ len=-1 ret=0 a=0 u/d=down
พุธ 14 ก.ค. 01:15:16 2021 เส้นทาง: กำลังรออินเตอร์เฟส TUN/TAP ขึ้นมา...
พุธ 14 ก.ค. 01:15:17 2021 TEST ROUTES: 0/0 สำเร็จ len=-1 ret=0 a=0 u/d=down
พุธ 14 ก.ค. 01:15:17 น. เส้นทาง: กำลังรออินเตอร์เฟส TUN/TAP ขึ้นมา...
พุธ 14 ก.ค. 01:15:18 2021 TEST ROUTES: 0/0 สำเร็จ len=0 ret=1 a=0 u/d=up
วันพุธที่ 14 กรกฎาคม 01:15:18 น. 2021 คำเตือน: การกำหนดค่านี้อาจแคชรหัสผ่านในหน่วยความจำ - ใช้ตัวเลือก auth-nocache เพื่อป้องกันสิ่งนี้
พุธ 14 ก.ค. 01:15:18 2021 ลำดับการเริ่มต้นเสร็จสมบูรณ์
อย่างที่คุณเห็น ไคลเอนต์ OpenVPN บนอินสแตนซ์ Windows Server 2019 ได้รับที่อยู่ IP 10.8.0.2 จากเซิร์ฟเวอร์ OpenVPN อย่างไรก็ตาม ฉันกำลังวิ่งซ้ำๆ ไอพีคอนฟิก
ในหน้าต่างบรรทัดคำสั่ง และฉันเห็นสิ่งต่อไปนี้เกิดขึ้นทุกๆ 15 วินาที:
- อะแดปเตอร์เครือข่าย OpenVPN (เรียกว่า "TAP-Windows Adapter V9") ได้รับที่อยู่ IP 169.254.211.103 เป็นเวลาสองสามวินาที
- จากนั้นอะแดปเตอร์เครือข่าย OpenVPN จะได้รับที่อยู่ IP 10.8.0.2 ประมาณหนึ่งวินาที ในช่วงหนึ่งวินาทีนี้ การ ping ของ 10.8.0.1 (เซิร์ฟเวอร์ OpenVPN) จะสำเร็จ นอกนั้นหนึ่งวินาที ping 10.8.0.1 จะล้มเหลว
- จากนั้นอะแดปเตอร์เครือข่าย OpenVPN จะสูญเสียที่อยู่ IP 10.8.0.2 และไม่มีที่อยู่ IP ใดๆ ใน ~12 วินาทีถัดไป
- ขั้นตอนการรับที่อยู่ 169.254.x.x จากนั้นการรับและการสูญเสียที่อยู่ 10.8.0.2 จะทำซ้ำทุกๆ 15 วินาที
จากนั้นฉันตัดสินใจว่าจะเกิดอะไรขึ้นถ้าฉันพยายามให้ Windows Server 2019 เป็นที่อยู่ IP แบบคงที่อื่นที่ไม่เคยใช้มาก่อน ฉันแก้ไขไฟล์สำหรับ Windows Server 2019 ในเซิร์ฟเวอร์ OpenVPN /etc/openvpn/ccd
ไดเร็กทอรีเพื่อให้ที่อยู่ IP แบบคงที่เป็น 10.8.0.11:
ifconfig-push 10.8.0.11 255.255.0.0
จากนั้นฉันรีสตาร์ทไคลเอนต์ OpenVPN บนอินสแตนซ์ Windows Server 2019 และใช้งานได้! ไคลเอนต์ใช้ที่อยู่ IP 10.8.0.11 ได้สำเร็จและไม่สูญเสียที่อยู่นี้เลย
เหตุใดอินสแตนซ์ Windows Server 2019 จึงสูญเสียที่อยู่ 10.8.0.2 ซึ่งไคลเอนต์ Linux เคยใช้ก่อนหน้านี้ ดังที่คุณเห็นจากขั้นตอนที่ฉันระบุไว้ข้างต้น ฉันได้เพิกถอนไคลเอ็นต์ Linux จากเซิร์ฟเวอร์ OpenVPN และฉันได้ลบร่องรอยของชื่อสามัญของไคลเอ็นต์ Linux ทั้งหมดที่ฉันพบบนเซิร์ฟเวอร์ OpenVPN
เราต้องการให้อินสแตนซ์ Windows Server 2019 ใช้ที่อยู่ 10.8.0.2 เนื่องจากเราได้เขียนสคริปต์โดยสมมติว่า 10.8.0.2 จะเป็น IP แบบคงที่ และส่งสคริปต์เหล่านั้นไปยังบุคคลที่สาม ถ้าเป็นไปได้ให้ใช้ 10.8.0.2 ได้ง่ายขึ้น
อัปเดต:
ฉันไม่ได้ดูอินสแตนซ์ Windows Server 2019 มาสองสามวันแล้ว และตอนนี้ฉันเพิ่งดูอีกครั้ง น่าแปลกที่มันมีที่อยู่ IP 10.8.0.2 และไม่เคยหายไปเลย ทุกอย่างทำงานได้ตามที่คาดไว้ ฉันไม่แน่ใจว่าทำไม เพราะฉันไม่ได้เปลี่ยนอะไรเลย
ดังนั้นฉันจึงรีสตาร์ทไคลเอนต์ OpenVPN บนอินสแตนซ์ Windows Server 2019 เพื่อดูว่าจะเกิดอะไรขึ้น และตอนนี้มันกลับไปสู่พฤติกรรมการรับที่อยู่ 169.254.x.x จากนั้นจะได้รับและสูญเสียที่อยู่ 10.8.0.2 ทุกๆ 15 วินาที