วันนี้ทีมงานบีเน็ตมาเล่าและแบ่งปันความรู้ใหม่ๆ กันนะครับ เป็น solution ระบบ authentication อาศัยการทำงานร่วมกัน ระหว่างอุปกรณ์ firewall 2 ยี่ห้อชื่อดังคือ paloalto และ Mikrotik
พระเอกของงานนี้คืออุปกรณ์ PaloAlto ที่มีฟังก์ชันพิเศษ แบบว่าทึ่งในความสามารถเลยทีเดียว ส่วนตัว mikrotik ก็เป็นพระรอง ที่มาช่วยเสริมกัน ฟีเจอริ่ง กันได้แบบไม่น่าเชื่อครับ ลองมาดูกันนะครับ ปล. อาจจะยาวหน่อย และ เป็นเชิงเทคนิคเยอะหน่อยนะครับ
เกริ่นกันก่อนนะครับ PaloAlto เป็นไฟร์วอลล์แบบ Next-Generation ซึ่งมีความสามารถที่หลากหลาย ซึ่งสามารถควบคุมการใช้งานของ user ภายในองค์กร และป้องกันการโจมตีในรูปแบบต่างๆจากผู้ไม่ประสงค์ดีจากภายนอกเครือข่าย นอกจากนี้ ในองค์กรที่ต้องการมีระบบ authentication ซึ่งผู้ใช้งานเองจะต้องมีการระบุตัวตนก่อนเข้าใช้งานอินเตอรเน็ตนั้น (Captive Portal) ตัวอุปกรณ์เองก็รองรับการทำงานในลักษณะนี้
แต่ปัญหาหนึ่งที่ทางทีม paloalto เจอคือ เวลามี session การ authen เข้ามาพร้อมๆกันจำนวนมาก ในช่วงเวลาหนึ่ง เช่นตอนเช้าที่ทุกคนมาทำงาน และ ต้องการจะใช้งานอินเตอร์เน็ต เมื่อมีการเปิด website พร้อมๆกัน ปกติแล้วจะต้องเจอหน้า login page เพื่อให้ทุกคนกรอก user/password ลงไป แต่ว่าในบางครั้งพบว่าหน้า login ไม่ขึ้นโชว์ขึ้นมา ทำให้เกิดปัญหาขึ้นมา จึงต้องหาวิธีแก้ไขกัน โดยมองหาอุปกรณ์ที่เก่งเรื่องการทำ authentication ซึ่งก็คือ mikrotik ครับ
โดยกระบวนการทำงานจะเป็นดังนี้ครับ
1. client ที่จะออกไปใช้งาน internet เมื่อวิ่งมาถึง palo ตัว palo จะมองว่า client นั้นเป็น “unknown user authen” (packet ที่ไม่มี user แปะมาด้วย) palo มันจะทำการโยน session นี้ไปหา mikrotik (เข้าใจว่า โดยการเขียน firewall ขึ้นมาที่ palo เพื่อให้มันโยนไป)
2. เมื่อ packet วิ่งมาถึง ตัว mikrotik จะเด้งหน้า login ขึ้นมา เพื่อให้ user เจอหน้า login กรอก user/pass โดยฟังก์ชัน hotspot authen
ซึ่งก่อนหน้านี้ฝั่งตัว mikrotik เองจะต้อง config เบื้องต้นทำให้สามารถออกเนตได้ และ enable hotspot ไว้เหมือนปกติที่ทำกันทั่วไป
3.เมื่อ user ทำการกรอก user/pass ถูกต้อง ตัว mikrotik จะส่ง syslog ที่ประกอบไปด้วย 2 ส่วนหลักคือ username และ ip address กลับไปที่ palo
4.เมื่อ palo ได้รับ session log ที่ส่งมาจาก mikrotik ตัวมันจะใช้ฟังก์ชันทีชื่อ Syslog Filters มาทำงานต่อซึ่งจะทำการตัดคำจาก session ที่รับให้ออกมาเป็นส่วนๆ เป็นชิ้นๆ หนึ่งส่วนสำคัญในนั้นคือ username ที่ user ทำการ login ที่ mikrotik ดังนั้น packet ที่เมื่อมาถึงขึ้นตอนนี้แล้วจะถูกมองเป็น “known user authen” ซึงหลังจากกระบวนการนี้เองที่ palo จะมี firewall rule ที่ระบุว่า session ที่จะออกเน็ต ได้จะต้องเป็น known user เท่านั้น จึงจะออกเน็ตได้
ดังนั้น client ก็จะวิ่งออกเน็ต ได้โดย palo จะเก็บข้อมูลทั้งส่วนของ username และ ip address เข้า syslog ต่อไปเพื่อครบถ้วนตามพรบ.คอมพิวเตอร์
หมายเหตุ
-การทำ solution นี้จะช่วยผลักภาระหน้าที่การทำระบบ authentication ที่ palo ไปทำงานที่ mikrotik แทน ซึ่ง mikrotik ไม่จำเป็นต้องใช้รุ่นใหญ่มากก็ได้ครับ เพราะ traffic การใช้งานจะไมไดวิ่งผ่านมัน ตัวมันเองจะแค่ทำเรื่อง authentication และ ส่ง syslog กลับไปหา palo เท่านั้น
-ในที่นี้ดึง account มาจาก active directory และใช้ฟังก์ชัน NPS เป็น radius บน window server โดย mikrotik จะเป็นตัวไปตรวจสอบกับฐานข้อมูลรายชื่อบน active directory
-การ config syslog ที่ mikrotik จะต้องระบุให้ส่ง syslog “hotspot” ไปที่ paloalto ด้วยเสมอๆ
ปล.ทีมงานไม่แน่ใจว่า admin ท่านไหนพอมีประสบการณ์เกียวกับ solution คล้ายๆแบบนี้เป็น product firewall อื่นที่ไม่ใช่ paloalto ไหมครับ ถ้ามีก็สามารถมา share ความรู้กันได้นะครับ เช่น fortigate , sophos หรืออื่นๆ ครับ เพราะว่าถ้าทำได้จะเป็นประโยชน์กับหน่วยงานหลายๆที่ ที่อาจจะกำลังมองหา solution แบบนี้อยุ่ครับ
สุดท้าย งานครั้งนี้จะต้องให้เครดิต ทีมงาน paloalto จากบ. อินแกรม ที่สามารถคิดวิธีแก้ไขปัญหาและ solution ดีๆแบบนี้ได้ครับ