OpenVPN Access Server ฟังบนพอร์ตใดจริง ๆ?
ไล่ดูรายการซ็อกเก็ตบนโฮสต์ Access Server: รู้จักตัวฟังเริ่มต้น แยก loopback ออกจากพอร์ตที่เผยแพร่ และตรวจสอบการส่งต่อก่อนปิดพอร์ต
คุณรัน ss -lntup บนโฮสต์ Access Server แล้วได้รายการยาวเป็นสองเท่าของที่คาดไว้ ครึ่งหนึ่งของรายการเป็นพอร์ตที่มีรูปร่างเป็นดีมอนซึ่งไม่มีใครกล่าวถึงตอนติดตั้ง ปฏิกิริยาคือปิดทุกอย่างที่ไม่ใช่ 443 หรือ 1194 และนั่นคือวิธีที่ผู้คนทำพอร์ทัลไคลเอนต์ของตัวเองพัง
Access Server ไม่ใช่ตัวฟังเพียงตัวเดียว มันเป็นบริการ VPN บริการเว็บ และผู้ร่วมคลัสเตอร์ และสามารถสร้างพอร์ตเฉพาะดีมอนเพิ่มเติมกับการเปลี่ยนเส้นทางไฟร์วอลล์ได้ ขึ้นอยู่กับจำนวนดีมอน TCP ที่คุณกำหนดค่าไว้
ไล่ดูรายการตามลำดับ: อ่านซ็อกเก็ต จับคู่ตัวที่คุ้นเคย จำแนกส่วนที่เหลือตามเจ้าของและการผูก และจากนั้นตรวจสอบว่าอะไรเป็นตัวเผยแพร่จริง ๆ
เริ่มด้วยคำสั่งอ่านอย่างเดียวหนึ่งคำสั่ง
sudo ss -lntup ให้ข้อมูลการขนส่ง ที่อยู่ท้องถิ่น พอร์ต และโปรเซสเจ้าของสำหรับทุกซ็อกเก็ตที่ฟังอยู่ แฟล็กสำคัญ: -l คือฟัง, -n คือตัวเลข, -t คือ TCP, -u คือ UDP, -p คือโปรเซส หากไม่มี root คุณจะได้ซ็อกเก็ตแต่ไม่ได้ชื่อโปรเซส และนั่นคือคอลัมน์ที่คุณต้องใช้ในการจำแนก
จดสี่ฟิลด์ต่อแถวก่อนจะสรุปความเห็นใด ๆ: โปรโตคอล ที่อยู่ผูก พอร์ต และคำสั่ง เก็บเวอร์ชัน Access Server และจำนวนดีมอนที่กำหนดค่าไว้ข้างรายการนั้น เพราะทั้งสองอย่างเปลี่ยนสิ่งที่คาดไว้
สองแถวที่ดูเหมือนกันไม่เหมือนกัน TCP และ UDP บนหมายเลขเดียวกันเป็นซ็อกเก็ตแยกกันที่มีการเปิดเผยแยกกัน และ 0.0.0.0 กับ :: เป็นการผูกแยกกันสำหรับตระกูลที่อยู่แยกกัน บริการที่ผูกกับ 127.0.0.1 เท่านั้นไม่สามารถเข้าถึงได้โดยตรงจากโฮสต์อื่น แม้การเปลี่ยนเส้นทางในเครื่องยังอาจเผยแพร่มันได้
ตัวฟังที่คุณควรรู้จัก
ค่าเริ่มต้นเหล่านี้ครอบคลุมการติดตั้งส่วนใหญ่และให้พื้นฐานในการเปรียบเทียบ มันเป็นค่าเริ่มต้น ไม่ใช่รายการอนุญาตที่สมบูรณ์
| Socket | Role to confirm |
|---|---|
| UDP 1194 | OpenVPN UDP tunnel listener |
| TCP 443 | OpenVPN TCP listener, optionally forwarded to the web service |
| TCP 943 | Admin and client web interfaces, and cluster control in Access Server 3.0 and later |
| TCP 945 | Cluster control in older configurations that predate the move to 943 |
ทุกอย่างที่เกินกว่านั้นต้องมีคำอธิบาย ไม่ใช่การสันนิษฐาน คุณมักจะเห็นตัวฟังเฉพาะท้องถิ่นที่เป็นของส่วนประกอบที่ผลิตภัณฑ์ติดตั้งให้ตัวเอง ยืนยันด้วย PID และการกำหนดค่าบริการ ไม่ใช่หมายเลขพอร์ตที่จำมา และอย่าถือว่าพอร์ตที่ไม่รู้จักเป็นศัตรูเพียงเพราะไม่รู้จัก
ซ็อกเก็ตนอกคู่ที่รู้จักก็ไม่ใช่เศษที่เหลือโดยอัตโนมัติ เมื่อกำหนดค่าดีมอน TCP หลายตัว Access Server จะสร้างตัวฟังต่อดีมอนและเปลี่ยนเส้นทางทราฟฟิกไปยังมัน ดังนั้นจำนวนและค่าพอร์ตจึงตามการกำหนดค่านั้น
จำแนกก่อนจะปิดอะไร
สำหรับแต่ละแถวที่ไม่แน่ใจ ให้ตอบสามคำถามตามลำดับนี้
- เจ้าของและวัตถุประสงค์ จับคู่ PID กับยูนิตหรือโปรเซส แล้วอ่านการกำหนดค่าของบริการนั้น หากคุณระบุเจ้าของไม่ได้ คุณยังไม่พร้อมจะตัดสินใจอะไรเกี่ยวกับซ็อกเก็ต
- ขอบเขตการผูก Loopback เป็นเรื่องท้องถิ่นของเนมสเปซ การผูกแบบไวลด์การ์ดเข้าถึงได้เฉพาะเมื่อการกำหนดเส้นทาง การกรองโฮสต์ และกฎระดับคลาวด์ใด ๆ อนุญาต ดังนั้นที่อยู่ผูกจึงจำเป็นแต่ไม่เพียงพอ ตรวจสอบ IPv4 และ IPv6 เป็นการตัดสินใจแยกกัน
- เส้นทางที่เผยแพร่ มองหาการส่งต่อบริการ การเปลี่ยนเส้นทางเฉพาะดีมอน พร็อกซีภายนอก และนโยบายไฟร์วอลล์ที่ใช้จริง นี่คือขั้นที่ผู้คนข้ามไป และเป็นขั้นที่เปลี่ยนพอร์ตแบ็กเอนด์ที่ดูไม่เป็นอันตรายให้เป็นเส้นทางบริหารที่เข้าถึงได้
คำถามเดียวกันอ่านต่างออกไปเมื่อมองจากนอกโฮสต์ พอร์ตที่ไม่มีกฎไฟร์วอลล์ของโฮสต์ยังอาจถูกปิดโดยกลุ่มความปลอดภัยของคลาวด์ และพอร์ตที่มีกฎโฮสต์แบบผ่อนปรนอาจเข้าถึงไม่ได้เพราะไม่มีอะไรกำหนดเส้นทางไปถึง มองทั้งสองปลายก่อนเขียนข้อสรุปของรายการ
จุดที่เส้นทางที่เผยแพร่ต่างจากรายการซ็อกเก็ต
เอกสารของ Access Server เองครอบคลุมกรณีที่สร้างความสับสนมากที่สุด: เมื่อดีมอน TCP หลายตัวทำงาน พอร์ตด้านหน้าจะส่งต่อไปยังพอร์ตเฉพาะดีมอน และเลย์เอาต์ที่มองเห็นก็ไม่ตรงกับรายการซ็อกเก็ตอีกต่อไป บทเรียนการกรองอินเทอร์เฟซเว็บ อธิบายกฎเหล่านั้นและเหตุใดตัวกรองที่เขียนเฉพาะพอร์ตที่ชัดเจนจึงอาจพลาดเส้นทางที่เปลี่ยนเส้นทางไปทั้งหมด
การควบคุมคลัสเตอร์เป็นจุดที่สองที่เวอร์ชันสำคัญ ตั้งแต่ 3.0 เป็นต้นมามันใช้ 943 ร่วมกัน การกำหนดค่าคลัสเตอร์เก่าใช้ 945 การเปิดหรือบล็อกหนึ่งในนั้นโดยไม่ตรวจสอบเวอร์ชันจะให้รายการที่ดูเรียบร้อยแต่ผิด
ดังนั้นพื้นผิวที่มองเห็นจากภายนอกคือการรวมกันของสามสิ่ง: ซ็อกเก็ตที่ฟังอยู่ กฎการส่งต่อที่เผยแพร่มันอีกครั้ง และการควบคุมเครือข่ายที่อยู่หน้าโฮสต์ รายการใดที่บันทึกเพียงอย่างแรกนั้นไม่สมบูรณ์ และการเปลี่ยนแปลงใดที่พิจารณาเพียงอย่างแรกจะทิ้งเส้นทางไว้เปิดหรือตัดบริการออก
ตรวจสอบหลังการเปลี่ยนแปลงใด ๆ
เปลี่ยนการตั้งค่าตัวฟังผ่านเจ้าของการกำหนดค่าที่รองรับ และเปิดคอนโซลกู้คืนไว้ขณะทำ การสูญเสียการเข้าถึงของผู้ดูแลระบบไปยังอินเทอร์เฟซเว็บบนโฮสต์ระยะไกลไม่สามารถกู้คืนได้ผ่าน VPN ที่คุณเพิ่งปิดใช้งาน
จากนั้นตรวจสอบสี่สิ่งที่การติดตั้งมักต้องการ: ไคลเอนต์ VPN เชื่อมต่อ พอร์ทัลไคลเอนต์โหลด การเข้าถึงของผู้ดูแลระบบทำงาน และการสื่อสารคลัสเตอร์ยังทำงานหากคุณรันมากกว่าหนึ่งโหนด การทดสอบเฉพาะ VPN ผ่านได้อย่างสบายในขณะที่พอร์ทัลพัง
ปิดท้ายด้วยการจดเส้นทางที่อนุญาตสำหรับแต่ละบริการ: ซ็อกเก็ตใด การผูกใด กฎการส่งต่อใด การควบคุมเครือข่ายใด เอกสารนั้นคือผลลัพธ์ด้านความปลอดภัยที่มีประโยชน์ จำนวนซ็อกเก็ตขั้นต่ำไม่ใช่ และการรีเซ็ตครั้งใหญ่ที่ปิดตัวฟังซึ่งไม่มีใครระบุเสร็จก็ไม่ใช่