Skip to content

Single Sign On แบบไม่เหนื่อย ปรับ Windows Firewall Rule ด้วย Group Policy

เมื่อ Firebox ได้รับ Packet จาก Trusted Interface ตาม Routing table ใน Firebox ในเวลานั้น กำหนดให้ Packet นั้นจะต้องถูกส่งออกไปทาง External Interface และที่ XTM ก็มี Firebox เปิดทำงานอยู่ คือได้มีการป้อน IP ของ SSO Agent เอาไว้ใน Firebox

SSO Agent เป็นซอฟต์แวร์ตัวเล็กมาก ซึ่งส่วนใหญ่เราจะนำไปติดตั้งกับ AD server

Firebox จะติดต่อกับ SSO Agent นี้เพื่อถามว่า Source IP ของ Packet นี้คือ User อะไร ซึ่ง Agent จะใช้หลาย ๆ วิธีในการค้นหาว่า Username ใดเป็นเจ้าของหมายเลข IP ดังกล่าว วิธีหนึ่งในนั้นก็คือ การติดต่อกับ Event log monitor

Event Log monitor เป็นส่วนหนึ่งของ SSO Agent ที่จะสามารถติดตั้งแยกตัวออกจาก SSO Agent ก็ได้ แต่เรามักจะติดตั้ง SSO Agent และ Event Log monitor ในเครื่องเดียวกัน และติดตั้งลงไปพร้อม ๆ กัน

ขั้นตอนคือ Firebox ถามไปที่ SSO Agent และ SSO Agent ถามไปที่ Event Log monitor จากนั้น Event Log monitor ก็จะติดต่อไปที่ Client ตามหมายเลข Source IP ของ packet นั้นที่พอร์ต 445 เพื่อดูใน Log ของ Client ว่าใช้ Username อะไร Login เข้า มาที่ AD

โดยสรุปคือ เราจะใช้ Event Log monitor อย่างได้ผล SSO สามารถแสดงชื่อของ Logon client ได้อย่างถูกต้องครบทุก User เราจะต้องเปิดพอร์ต TCP-445 ที่ Client เอาไว้นั่นเอง

การเปิดพอร์ต TCP-445 นั้น จะเดินไปทำทีละ Client ก็ได้ ก็คือ Logon เข้าไปที่ Client ด้วย User ที่มี Administrative right (ง่ายสุดก็คือ Logon ด้วย administrator account) จากนั้นก็ไปแก้ Firewall ที่ Client เครื่องนั้นให้เปิด TCP-445 หรือจะเปิด File and Print sharing เลยก็ได้ เท่านี้ก็เรียบร้อย…สำหรับ 1 เครื่อง

แต่ถ้าเรามี Client หลายสิบเครื่องหรือหลายร้อยเครื่อง การมาเปิดพอร์ต TCP-445 ทีละเครื่อง คงจะทำไม่ไหว เราจะต้องใช้ Group policy เข้ามาช่วย

Group Policy Object ที่ใช้สำหรับการเซ็ต Firewall มีเส้นทางตามภาพด้านล่างนี้

และเมื่อเปิดเข้าไปที่ Property ของ “Define port exceptions” ก็จะพบว่า การป้อน Exception TCP-445 นั้น เราจะต้องเขียนข้อความในรูปแบบเฉพาะ คือ “<Port>:<Transport>:<Scope>:<Status>:<Name>”

หากเราต้องการจะเปิด Firewall ที่ Client ให้เปิดพอร์ต 445 เราจะต้องป้อนว่า 445:TCP:*:enabled:WG-SSO”

แต่ เนื่องจากพอร์ต TCP-445 เป็นพอร์ต SMB ของ Windows ซึ่งมักจะตกเป็นเป้าโจมตีของ Malware ทั้งหลาย หากคิดจะเปิด TCP-445 บนเครื่อง Client ก็ควรจะเปิดเป็นช่วงแคบ ๆ อนุญาตให้เฉพาะ AD server เท่านั้นที่เข้าถึง TCP-445 บน Client ได้

สมมติว่า AD server มี IP 192.168.0.10 เราก็จะใส่ใน Group policy แบบนี้
“445:TCP:192.168.0.10:enabled:WG-SSO”

ป้อนเสร็จแล้วก็ Save Group policy ให้เรียบร้อย

ปกติ แล้ว เรามักจะคุ้นเคยกับ Group policy object ที่ link เข้ากับ Organization Unit หรือ OU ที่เป็น User OU ใน AD แต่ถ้าสังเกตให้ดี จะเห็นว่า Group Policy Object หรือ GPO ที่เพิ่งสร้างเสร็จไปนี้ ไม่ได้อยู่ในโครงสร้างของ User Configuration แต่อยู่ในภาคของ Computer Configuration

หมายความว่า เราจะต้อง Link GPO นี้ไปที่ Computer OU ด้วย

ใน Active Directory Users and Computers จะเห็นว่ามี OU สำหรับคอมพิวเตอร์รออยู่แล้ว นั่นคือ “Computers” แต่เมื่อเราพยายามจะ Link OU นี้เข้าไปที่ GPO ที่เราสร้างขึ้นโดยใช้ Group policy manager จะเห็นว่า ไม่มี OU ชื่อ Computers ให้เลือก

ก็เพราะว่า Computers OU นั้นเป็น System object ที่ไม่อนุญาตให้มี GPO ใด ๆ เข้าไปควบคุมได้

หาก เราต้องการจะให้ Group policy เข้าไปควบคุม Firewall policy ที่เครื่อง Client เราจะต้องสร้าง Computer OU ขึ้นมาเอง และย้าย Client Computer จาก Computers OU มาใส่ใน Computer OU ที่เราสร้างขึ้นใหม่ จากนั้นจึงค่อย Apply GPO เข้าไป

เมื่อ Client เปิดเครื่องขึ้นมาใหม่ ก็จะได้รับ Group policy ใหม่ไปใช้ Client จะเริ่มเปิดพอร์ต TCP-445 ให้กับ AD server ซึ่งจะทำให้ Event log monitor สามารถตรวจสอบชื่อของ Logon user ได้อย่างถูกต้อง และทำให้ SSO สามารถทำงานได้อย่างสมบูรณ์ทั้งระบบในคราวเดียว