คุณรัน 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 เท่านั้นไม่สามารถเข้าถึงได้โดยตรงจากโฮสต์อื่น แม้การเปลี่ยนเส้นทางในเครื่องยังอาจเผยแพร่มันได้

ตัวฟังที่คุณควรรู้จัก

ค่าเริ่มต้นเหล่านี้ครอบคลุมการติดตั้งส่วนใหญ่และให้พื้นฐานในการเปรียบเทียบ มันเป็นค่าเริ่มต้น ไม่ใช่รายการอนุญาตที่สมบูรณ์

SocketRole to confirm
UDP 1194OpenVPN UDP tunnel listener
TCP 443OpenVPN TCP listener, optionally forwarded to the web service
TCP 943Admin and client web interfaces, and cluster control in Access Server 3.0 and later
TCP 945Cluster control in older configurations that predate the move to 943

ทุกอย่างที่เกินกว่านั้นต้องมีคำอธิบาย ไม่ใช่การสันนิษฐาน คุณมักจะเห็นตัวฟังเฉพาะท้องถิ่นที่เป็นของส่วนประกอบที่ผลิตภัณฑ์ติดตั้งให้ตัวเอง ยืนยันด้วย PID และการกำหนดค่าบริการ ไม่ใช่หมายเลขพอร์ตที่จำมา และอย่าถือว่าพอร์ตที่ไม่รู้จักเป็นศัตรูเพียงเพราะไม่รู้จัก

ซ็อกเก็ตนอกคู่ที่รู้จักก็ไม่ใช่เศษที่เหลือโดยอัตโนมัติ เมื่อกำหนดค่าดีมอน TCP หลายตัว Access Server จะสร้างตัวฟังต่อดีมอนและเปลี่ยนเส้นทางทราฟฟิกไปยังมัน ดังนั้นจำนวนและค่าพอร์ตจึงตามการกำหนดค่านั้น

จำแนกก่อนจะปิดอะไร

สำหรับแต่ละแถวที่ไม่แน่ใจ ให้ตอบสามคำถามตามลำดับนี้

  1. เจ้าของและวัตถุประสงค์ จับคู่ PID กับยูนิตหรือโปรเซส แล้วอ่านการกำหนดค่าของบริการนั้น หากคุณระบุเจ้าของไม่ได้ คุณยังไม่พร้อมจะตัดสินใจอะไรเกี่ยวกับซ็อกเก็ต
  2. ขอบเขตการผูก Loopback เป็นเรื่องท้องถิ่นของเนมสเปซ การผูกแบบไวลด์การ์ดเข้าถึงได้เฉพาะเมื่อการกำหนดเส้นทาง การกรองโฮสต์ และกฎระดับคลาวด์ใด ๆ อนุญาต ดังนั้นที่อยู่ผูกจึงจำเป็นแต่ไม่เพียงพอ ตรวจสอบ IPv4 และ IPv6 เป็นการตัดสินใจแยกกัน
  3. เส้นทางที่เผยแพร่ มองหาการส่งต่อบริการ การเปลี่ยนเส้นทางเฉพาะดีมอน พร็อกซีภายนอก และนโยบายไฟร์วอลล์ที่ใช้จริง นี่คือขั้นที่ผู้คนข้ามไป และเป็นขั้นที่เปลี่ยนพอร์ตแบ็กเอนด์ที่ดูไม่เป็นอันตรายให้เป็นเส้นทางบริหารที่เข้าถึงได้

คำถามเดียวกันอ่านต่างออกไปเมื่อมองจากนอกโฮสต์ พอร์ตที่ไม่มีกฎไฟร์วอลล์ของโฮสต์ยังอาจถูกปิดโดยกลุ่มความปลอดภัยของคลาวด์ และพอร์ตที่มีกฎโฮสต์แบบผ่อนปรนอาจเข้าถึงไม่ได้เพราะไม่มีอะไรกำหนดเส้นทางไปถึง มองทั้งสองปลายก่อนเขียนข้อสรุปของรายการ

จุดที่เส้นทางที่เผยแพร่ต่างจากรายการซ็อกเก็ต

เอกสารของ Access Server เองครอบคลุมกรณีที่สร้างความสับสนมากที่สุด: เมื่อดีมอน TCP หลายตัวทำงาน พอร์ตด้านหน้าจะส่งต่อไปยังพอร์ตเฉพาะดีมอน และเลย์เอาต์ที่มองเห็นก็ไม่ตรงกับรายการซ็อกเก็ตอีกต่อไป บทเรียนการกรองอินเทอร์เฟซเว็บ อธิบายกฎเหล่านั้นและเหตุใดตัวกรองที่เขียนเฉพาะพอร์ตที่ชัดเจนจึงอาจพลาดเส้นทางที่เปลี่ยนเส้นทางไปทั้งหมด

การควบคุมคลัสเตอร์เป็นจุดที่สองที่เวอร์ชันสำคัญ ตั้งแต่ 3.0 เป็นต้นมามันใช้ 943 ร่วมกัน การกำหนดค่าคลัสเตอร์เก่าใช้ 945 การเปิดหรือบล็อกหนึ่งในนั้นโดยไม่ตรวจสอบเวอร์ชันจะให้รายการที่ดูเรียบร้อยแต่ผิด

ดังนั้นพื้นผิวที่มองเห็นจากภายนอกคือการรวมกันของสามสิ่ง: ซ็อกเก็ตที่ฟังอยู่ กฎการส่งต่อที่เผยแพร่มันอีกครั้ง และการควบคุมเครือข่ายที่อยู่หน้าโฮสต์ รายการใดที่บันทึกเพียงอย่างแรกนั้นไม่สมบูรณ์ และการเปลี่ยนแปลงใดที่พิจารณาเพียงอย่างแรกจะทิ้งเส้นทางไว้เปิดหรือตัดบริการออก

ตรวจสอบหลังการเปลี่ยนแปลงใด ๆ

เปลี่ยนการตั้งค่าตัวฟังผ่านเจ้าของการกำหนดค่าที่รองรับ และเปิดคอนโซลกู้คืนไว้ขณะทำ การสูญเสียการเข้าถึงของผู้ดูแลระบบไปยังอินเทอร์เฟซเว็บบนโฮสต์ระยะไกลไม่สามารถกู้คืนได้ผ่าน VPN ที่คุณเพิ่งปิดใช้งาน

จากนั้นตรวจสอบสี่สิ่งที่การติดตั้งมักต้องการ: ไคลเอนต์ VPN เชื่อมต่อ พอร์ทัลไคลเอนต์โหลด การเข้าถึงของผู้ดูแลระบบทำงาน และการสื่อสารคลัสเตอร์ยังทำงานหากคุณรันมากกว่าหนึ่งโหนด การทดสอบเฉพาะ VPN ผ่านได้อย่างสบายในขณะที่พอร์ทัลพัง

ปิดท้ายด้วยการจดเส้นทางที่อนุญาตสำหรับแต่ละบริการ: ซ็อกเก็ตใด การผูกใด กฎการส่งต่อใด การควบคุมเครือข่ายใด เอกสารนั้นคือผลลัพธ์ด้านความปลอดภัยที่มีประโยชน์ จำนวนซ็อกเก็ตขั้นต่ำไม่ใช่ และการรีเซ็ตครั้งใหญ่ที่ปิดตัวฟังซึ่งไม่มีใครระบุเสร็จก็ไม่ใช่

บทความที่เกี่ยวข้อง