FortiGate Next-Generation Firewall: แนวคิดการตั้งค่าตั้งแต่อินเทอร์เฟซจนถึงการแก้ปัญหา

FortiGate Next-Generation Firewall: แนวคิดการตั้งค่า ตั้งแต่อินเทอร์เฟซจนถึงการแก้ปัญหา

FortiGate คือ next-generation firewall ของ Fortinet มันตรวจทราฟฟิกตามนโยบาย ใช้โปรไฟล์ความปลอดภัย เช่น antivirus การกรองเว็บ และการป้องกันการบุกรุก และสิ้นสุดอุโมงค์ VPN บทความนี้พาคุณตั้งค่าตามลำดับที่จะเจอ ได้แก่ หน้าที่ของอุปกรณ์ การวางแผนเครือข่าย การเข้าถึงครั้งแรก อินเทอร์เฟซและการกำหนดเส้นทาง นโยบายไฟร์วอลล์ การเผยแพร่เซิร์ฟเวอร์ด้วย virtual IP โปรไฟล์ความปลอดภัย VPN แบบ site-to-site และ High Availability พร้อมการแก้ปัญหา แต่ละส่วนมีแผนภาพหรือเช็กลิสต์ และตัวอย่างการตั้งค่าอุปกรณ์แสดงคำสั่ง FortiOS ของแต่ละขั้น

สิ่งที่ต้องเตรียม

ควรรู้ IP แอดเดรสและซับเน็ต และรู้ว่าเราเตอร์กับสวิตช์ทำอะไร ควรอ่านบทความ CCNA และ Palo Alto NGFW บนเว็บนี้ก่อน เพราะแนวคิดโซน นโยบาย และ NAT ใช้เหมือนกัน การฝึกควรใช้เครื่องทดสอบ FortiGate VM ในแล็บ หรืออิมเมจประเมินของผู้ผลิต ทำกับอุปกรณ์ที่คุณเป็นเจ้าของหรือได้รับอนุญาต และอย่าเปลี่ยนค่า firewall ในระบบใช้งานจริงโดยไม่มีแผนที่เขียนไว้และแผนย้อนกลับ

ภาพประกอบ

การตั้งค่า FortiGate ทั่วไป: อินเทอร์เน็ตเชื่อมเข้าพอร์ต port1 (WAN) FortiGate อยู่ตรงกลาง port2 เชื่อม LAN ของสำนักงาน และ port3 เชื่อม DMZ ที่มีเซิร์ฟเวอร์สาธารณะ
การตั้งค่า FortiGate ทั่วไป: อินเทอร์เน็ตเชื่อมเข้าพอร์ต port1 (WAN) FortiGate อยู่ตรงกลาง port2 เชื่อม LAN ของสำนักงาน และ port3 เชื่อม DMZ ที่มีเซิร์ฟเวอร์สาธารณะ

หัวข้อที่ 1: FortiGate ทำอะไรได้บ้าง

FortiGate รวมไฟร์วอลล์แบบ stateful เข้ากับการตรวจสอบความปลอดภัย VPN และการกำหนดเส้นทางไว้ในอุปกรณ์เดียว Fortinet เรียกแนวทางนี้ว่า unified threat management (UTM) เมื่อมีเอนจินตรวจสอบหลายตัวทำงานบนทราฟฟิกเดียวกัน อินเทอร์เฟซ โซน และนโยบายตัดสินว่าอะไรผ่านได้ และโปรไฟล์ตัดสินว่าจะตรวจอะไร

ไฟร์วอลล์ UTM และ Security Fabric

ไฟร์วอลล์ stateful ติดตามการเชื่อมต่อแต่ละครั้งและอนุญาตทราฟฟิกขากลับโดยอัตโนมัติ นอกจากนั้น ฟีเจอร์ UTM ตรวจเนื้อหา: antivirus สแกนไฟล์ การกรองเว็บจัดกลุ่มเว็บไซต์เป็นหมวด และ IPS ตรวจจับการโจมตี อุปกรณ์ FortiGate หลายตัวยังเข้าร่วม Security Fabric ซึ่งแชร์ข้อมูลภัยคุกคามกับอุปกรณ์ Fortinet ตัวอื่น

นโยบายตัดสิน โปรไฟล์ตรวจ

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

อยู่ตรงไหนและเห็นอะไร

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

หัวข้อที่ 2: วางแผนก่อนตั้งค่า

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

วาดแนวคิดการเชื่อมต่อ

วาดลิงก์อินเทอร์เน็ต FortiGate LAN ของสำนักงาน และ DMZ ที่มีเซิร์ฟเวอร์สาธารณะ ติดป้ายแต่ละพอร์ตด้วยชื่อ (port1, port2, port3) บทบาท (WAN, LAN, DMZ) และ IP แอดเดรส แผนภาพนี้บอกว่านโยบายแต่ละข้อควรอยู่ตรงไหน จึงควรเก็บไว้คู่กับการตั้งค่า

เขียนแผนอินเทอร์เฟซและแอดเดรส

สำหรับแต่ละพอร์ต บันทึกบทบาท IP แอดเดรสและมาสก์ วัตถุประสงค์ และซับเน็ตที่อยู่หลังพอร์ต เพิ่ม address object ที่ต้องใช้ เช่น ซับเน็ตฝ่ายขายและเว็บเซิร์ฟเวอร์ แผนที่เขียนไว้ทำให้เปลี่ยนแอดเดรสภายหลังได้ง่าย เพราะเห็นว่านโยบายใดต้องพึ่งพามัน

ลิสต์ทราฟฟิกที่ต้องใช้

เขียนแต่ละการไหลเป็นภาษาธรรมดา เช่น ซับเน็ตฝ่ายขายท่องเว็บผ่าน HTTP และ HTTPS ได้ อินเทอร์เน็ตเข้าเว็บเซิร์ฟเวอร์ใน DMZ ได้เฉพาะ HTTPS สาขาเชื่อมสำนักงานใหญ่ผ่าน IPsec แต่ละประโยคจะเป็นหนึ่งนโยบาย และทราฟฟิกที่ไม่อยู่ในลิสต์จะถูกปฏิเสธโดย implicit deny ที่ท้ายสุด

วางแผนการย้อนกลับ

ก่อนการเปลี่ยนแปลงครั้งแรก สำรองการตั้งค่าและจดวิธีกู้คืน วางแผนช่วงบำรุงรักษาสำหรับการเปลี่ยนที่กระทบทราฟฟิกที่ใช้งานอยู่ และแจ้งผู้ใช้ที่จะได้รับผลกระทบ

หัวข้อที่ 3: การเข้าถึงครั้งแรกและการตั้งค่าเริ่มต้น

FortiGate ใหม่ต้องมีชื่อเครื่อง บัญชีแอดมินที่ปลอดภัย DNS IP แอดเดรสของอินเทอร์เฟซ และไลเซนส์กับการอัปเดต ก่อนจะป้องกันอะไรได้ เมนู GUI ต่างกันในแต่ละเวอร์ชันของ FortiOS คำสั่งในบทความนี้เป็นแนวทาง ให้ตรวจกับเอกสารของเวอร์ชันที่คุณใช้

เชื่อมต่อและเปลี่ยนรหัสผ่านเริ่มต้น

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

จำกัดคนที่จัดการอุปกรณ์ได้

ตั้ง trusted host ให้บัญชีแอดมิน เพื่อให้ล็อกอินได้เฉพาะจากซับเน็ตแอดมิน เอาการเข้าถึงการจัดการ (ping, HTTPS, SSH) ออกจากพอร์ต WAN และอนุญาตเฉพาะที่ LAN หรืออินเทอร์เฟซจัดการเฉพาะ เปิดการยืนยันสองขั้นตอนสำหรับล็อกอินแอดมินถ้าอุปกรณ์รองรับ

ตั้ง DNS เวลา และชื่อเครื่อง

ตั้งชื่ออุปกรณ์ที่ชัดเจน เช่น FGT-HQ-01 ตั้ง DNS server เพื่อให้ตรวจไลเซนส์ การอัปเดต และชื่อได้ เวลาที่แม่นยำสำคัญต่อล็อก ใบรับรอง และ VPN จึงตั้งเวลาจาก NTP ที่เชื่อถือได้

ไลเซนส์ การอัปเดต FortiGuard และเฟิร์มแวร์

เปิดใช้ไลเซนส์ที่ซื้อไว้ซึ่งเปิดบริการ FortiGuard ได้แก่ antivirus, IPS, การกรองเว็บ และ application control ตรวจว่าฐานข้อมูลลายเซ็นเป็นปัจจุบัน และติดตั้งเฟิร์มแวร์ที่ Fortinet แนะนำสำหรับรุ่นของคุณ อ่านหมายเหตุของรุ่นก่อน และเก็บอิมเมจเก่าไว้เพื่อย้อนกลับได้

การตั้งค่าอุปกรณ์: ตั้งชื่อเครื่อง การเข้าถึงแอดมิน DNS และอินเทอร์เฟซ

ตั้งชื่อ FortiGate ตั้ง DNS server และจำกัดบัญชีแอดมินให้อยู่ในซับเน็ตที่เชื่อถือได้ ให้พอร์ต WAN มีแอดเดรสสาธารณะและกำหนดบทบาท ให้พอร์ต LAN มีแอดเดรส gateway ส่วนตัว ตรวจว่าแต่ละพอร์ตขึ้นด้วย get system interface physical

# FortiOS CLI: hostname, admin access, DNS and interfaces
config system global
    set hostname FGT-HQ-01
end
config system dns
    set primary 8.8.8.8
end
config system admin
    edit "netadmin"
        set accprofile "super_admin"
        set password <strong-password>
        set trusthost1 192.168.1.0 255.255.255.0
    next
end
config system interface
    edit "port1"
        set alias WAN
        set mode static
        set ip 203.0.113.2 255.255.255.252
        set role wan
        set allowaccess ping https ssh
    next
    edit "port2"
        set alias LAN
        set mode static
        set ip 10.10.10.1 255.255.255.0
        set role lan
        set allowaccess ping https ssh
    next
end
# Check
get system status
get system interface physical

หัวข้อที่ 4: อินเทอร์เฟซ โซน แอดเดรส และการกำหนดเส้นทาง

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

พอร์ตจริงและบทบาท

ตั้งแต่ละพอร์ตเป็นโหมด static พร้อม IP แอดเดรสและมาสก์ และกำหนดบทบาท (WAN, LAN หรือ DMZ) บทบาทช่วยให้ GUI และค่าเริ่มต้นสมเหตุสมผล ส่วนนโยบายยังเป็นตัวตัดสินว่าอะไรผ่านได้ ใช้ alias เพื่อแสดงชื่อที่อ่านง่ายในรายการอินเทอร์เฟซ

โซนจัดกลุ่มพอร์ต

โซนที่มี port2 และ port4 ทำให้นโยบายเดียวครอบคลุมทั้งสองพอร์ตของ LAN สำนักงานได้ นโยบายจึงอ้างชื่อโซน ซึ่งอ่านและเปลี่ยนแปลงได้ง่ายกว่า ให้โซนสอดคล้องกับแผนภาพการออกแบบ

static route และ default route

default route ส่งทราฟฟิกปลายทางที่ไม่รู้จักไปยัง gateway ของ ISP ผ่านพอร์ต WAN static route เพิ่มเครือข่ายที่อยู่หลังเราเตอร์อื่น ตรวจตารางเส้นทางด้วย get router info routing-table all และยืนยันว่ามีเส้นทางขากลับ เพราะอุปกรณ์ไม่สามารถส่งทราฟฟิกที่ไม่มีเส้นทางได้

Address object

สร้าง address object สำหรับแต่ละซับเน็ตและเซิร์ฟเวอร์ เช่น SALES-NET หรือ WEB-SERVER แล้วใช้ชื่อเหล่านั้นในนโยบาย address object ทำให้นโยบายอ่านง่าย และการแก้ไขหนึ่งครั้งจะอัปเดตทุกนโยบายที่ใช้มัน

การตั้งค่าอุปกรณ์: สร้างโซน default route และ address object

โซนจัดกลุ่มพอร์ต LAN ให้นโยบายอ้างถึงด้วยชื่อเดียว static route ส่งทราฟฟิกอินเทอร์เน็ตออกทาง port1 ไปยัง gateway ของ ISP address object ตั้งชื่อให้ซับเน็ต ทำให้นโยบายอ่านง่าย ตรวจเส้นทางด้วย get router info routing-table all

# FortiOS CLI: zones, a default route and an address object
config system zone
    edit "LAN"
        set interface "port2"
    next
end
config router static
    edit 1
        set device "port1"
        set gateway 203.0.113.1
    next
end
config firewall address
    edit "SALES-NET"
        set subnet 10.10.10.0 255.255.255.0
    next
end
# Check
get router info routing-table all
diagnose ip address list

หัวข้อที่ 5: นโยบายไฟร์วอลล์: ลำดับ implicit deny และการบันทึกล็อก

นโยบายไฟร์วอลล์คือรายการกฎที่เรียงลำดับ อุปกรณ์ตรวจนโยบายจากบนลงล่าง และใช้ข้อแรกที่จับคู่กับอินเทอร์เฟซต้นทาง อินเทอร์เฟซปลายทาง แอดเดรส บริการ และตารางเวลา ถ้าไม่มีนโยบายใดตรง ทราฟฟิกจะถูกทิ้งโดย implicit deny

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

ฟิลด์ของนโยบายที่สำคัญ

นโยบายมีชื่อ อินเทอร์เฟซต้นทางและปลายทาง แอดเดรสต้นทางและปลายทาง บริการ (เช่น HTTP หรือ HTTPS) ตารางเวลา (always หรือช่วงเวลา) การกระทำ (accept หรือ deny) NAT เปิดหรือปิด โปรไฟล์ความปลอดภัย และการบันทึกล็อก ตั้งชื่อนโยบายแต่ละข้อให้ล็อกบอกได้ว่ากฎใดตรง

ลำดับและ implicit deny

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

การบันทึกล็อกและการค้นหานโยบาย

เปิดการบันทึกล็อกสำหรับนโยบายที่สำคัญ และใช้ all หรือ utm logging เพื่อดูผลการตรวจสอบ คำสั่ง diagnose firewall iprope lookup แสดงว่าการไหลใดจะตรงกับนโยบายใด ช่วยประหยัดเวลาเมื่อผู้ใช้บอกว่าเว็บถูกบล็อก

เริ่มเข้มงวด แล้วผ่อนด้วยหลักฐาน

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

การตั้งค่าอุปกรณ์: เขียนนโยบายขาออกพร้อมโปรไฟล์ความปลอดภัย

นโยบายหมายเลข 10 อนุญาตให้ซับเน็ตฝ่ายขายเข้าอินเทอร์เน็ตผ่าน HTTP และ HTTPS ใช้ NAT กับอินเทอร์เฟซขาออก และรันโปรไฟล์ antivirus web filter และ IPS คำสั่ง diagnose firewall iprope lookup แสดงว่าทราฟฟิกที่กำหนดจะตรงกับนโยบายใด มีประโยชน์ก่อนทดสอบจากไคลเอนต์จริง

# FortiOS CLI: outbound policy for the sales network with security profiles
config firewall policy
    edit 10
        set name "allow-sales-web"
        set srcintf "port2"
        set dstintf "port1"
        set srcaddr "SALES-NET"
        set dstaddr "all"
        set action accept
        set schedule "always"
        set service "HTTP" "HTTPS"
        set nat enable
        set utm-status enable
        set av-profile "default"
        set webfilter-profile "default"
        set ips-sensor "default"
        set logtraffic all
    next
end
# Check which policy a flow would match
diagnose firewall iprope lookup 10.10.10.20 0 8.8.8.8 443 port2 6

หัวข้อที่ 6: Virtual IP: เผยแพร่เซิร์ฟเวอร์ภายใน

Virtual IP (VIP) คือ address object ที่แมปแอดเดรสและพอร์ตภายนอกไปยังเซิร์ฟเวอร์ภายใน จากนั้นนโยบายอนุญาตทราฟฟิกไปยัง VIP ไม่ใช่ไปยังแอดเดรสส่วนตัว นี่คือวิธีที่ผู้ใช้อินเทอร์เน็ตเข้าถึงเว็บเซิร์ฟเวอร์ใน DMZ

การแปลทำงานอย่างไร

ผู้ใช้เชื่อมต่อไปยังแอดเดรสสาธารณะ 203.0.113.10 พอร์ต 443 FortiGate แปลปลายทางเป็น 172.16.10.10 พอร์ตเดิม และส่งทราฟฟิกไปยังอินเทอร์เฟซ DMZ การตอบกลับถูกแปลกลับโดยอัตโนมัติ เพราะเซสชันถูกติดตาม

นโยบายใช้ VIP

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

ตรวจเซสชัน

ใช้ diagnose sys session filter และ diagnose sys session list เพื่อดูแอดเดรสเดิมและแอดเดรสที่ถูกแปลของแต่ละเซสชัน ถ้าไคลเอนต์ไม่ได้รับการตอบ ให้ตรวจ VIP นโยบาย และไฟร์วอลล์ของเซิร์ฟเวอร์เองตามลำดับ

การตั้งค่าอุปกรณ์: เผยแพร่เซิร์ฟเวอร์ด้วย virtual IP และนโยบาย

virtual IP แมปแอดเดรสและพอร์ตสาธารณะไปยังเซิร์ฟเวอร์ DMZ ที่มีแอดเดรสส่วนตัว นโยบายต้องอนุญาตทราฟฟิกไปยัง virtual IP และส่งไปยังอินเทอร์เฟซ DMZ ตรวจ session ด้วย diagnose sys session เพื่อยืนยันว่าการแปลทำงาน

# FortiOS CLI: a virtual IP (DNAT) for the DMZ web server and the policy that allows it
config firewall vip
    edit "WEB-SERVER"
        set extintf "port1"
        set extip 203.0.113.10
        set mappedip "172.16.10.10"
        set portforward enable
        set extport 443
        set mappedport 443
    next
end
config firewall policy
    edit 20
        set name "allow-web-to-dmz"
        set srcintf "port1"
        set dstintf "port3"
        set srcaddr "all"
        set dstaddr "WEB-SERVER"
        set action accept
        set schedule "always"
        set service "HTTPS"
        set ips-sensor "default"
        set logtraffic all
    next
end
# Check the sessions for the web server
diagnose sys session filter dst 172.16.10.10
diagnose sys session list

หัวข้อที่ 7: โปรไฟล์ความปลอดภัยและ SSL inspection

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

โปรไฟล์หลัก

โปรไฟล์ antivirus สแกนไฟล์หามัลแวร์ โปรไฟล์การกรองเว็บบล็อกหรือเตือนหมวดเว็บไซต์ IPS sensor ตรวจและบล็อกรูปแบบการโจมตี Application control ระบุแอปพลิเคชัน เช่น แชตหรือแชร์ไฟล์ เริ่มจากโปรไฟล์ค่าเริ่มต้น แล้วปรับตามล็อก

ทราฟฟิกเข้ารหัสและ SSL inspection

เว็บส่วนใหญ่ใช้ TLS โปรไฟล์จึงอ่านไม่ได้ถ้าอุปกรณ์ไม่ถอดรหัส SSL inspection ให้ FortiGate ส่งใบรับรองของตัวเองให้ไคลเอนต์ ซึ่งต้องให้ไคลเอนต์เชื่อถือ certificate authority ของ FortiGate การตรวจใบรับรอง (certificate inspection) ตรวจเพียงใบรับรองโดยไม่ถอดรหัสเนื้อหา จึงเป็นขั้นแรกที่ปลอดภัยกว่า

ยกเว้นธนาคารและบริการสุขภาพ

บางเว็บ เช่น ธนาคารและบริการสุขภาพ จะพังเมื่อใบรับรองถูกแทนที่ และข้อมูลของเว็บเหล่านี้ละเอียดอ่อน จึงควรยกเว้นจากการถอดรหัส และบันทึกการตัดสินใจร่วมกับเจ้าของเครือข่าย

หัวข้อที่ 8: VPN IPsec แบบ site-to-site

อุโมงค์ IPsec เชื่อมสองสำนักงานผ่านอินเทอร์เน็ตด้วยการเข้ารหัส Phase 1 สร้างช่องทางที่ปลอดภัยระหว่างเกตเวย์สองตัว Phase 2 สร้างอุโมงค์ที่ป้องกันทราฟฟิกระหว่างสองซับเน็ต ทั้งสองฝั่งต้องตรงกัน ไม่เช่นนั้นอุโมงค์จะไม่ขึ้น

Phase 1 และ Phase 2

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

การกำหนดเส้นทางและนโยบาย

static route ส่งทราฟฟิกของซับเน็ตปลายทางเข้าอินเทอร์เฟซของอุโมงค์ จากนั้นนโยบายต้องอนุญาตทราฟฟิกระหว่าง LAN ภายในกับอุโมงค์ทั้งสองทิศทาง อุโมงค์ที่ขึ้นแล้วแต่ไม่ส่งทราฟฟิกเกือบทุกครั้งขาดเส้นทางหรือนโยบายฝั่งใดฝั่งหนึ่ง

ตรวจอุโมงค์

ใช้ get vpn ipsec tunnel summary เพื่อดูว่าอุโมงค์ขึ้นหรือไม่ และ diagnose vpn ike gateway list เพื่อดูสถานะ Phase 1 เอาต์พุต IKE debug แสดงทุกขั้นของการเจรจาเมื่อมีปัญหา และต้องปิดหลังทดสอบเสร็จ

การตั้งค่าอุปกรณ์: สร้างอุโมงค์ IPsec แบบ site-to-site

ทั้งสองฝั่งต้องมีการตั้งค่า Phase 1 และ Phase 2 ที่ตรงกัน มีรหัสลับที่ใช้ร่วมกันเดียวกัน และซับเน็ตที่ครอบคลุมเครือข่ายของอีกฝั่ง static route ส่งทราฟฟิกของซับเน็ตปลายทางเข้าอุโมงค์ และนโยบายต้องอนุญาต ตรวจอุโมงค์ด้วย get vpn ipsec tunnel summary

# FortiOS CLI: site-to-site IPsec tunnel to the branch office
config vpn ipsec phase1-interface
    edit "to-branch"
        set interface "port1"
        set peertype any
        set net-device disable
        set proposal aes256-sha256
        set remote-gw 198.51.100.20
        set psksecret <shared-secret>
    next
end
config vpn ipsec phase2-interface
    edit "to-branch-p2"
        set phase1name "to-branch"
        set proposal aes256-sha256
        set src-subnet 10.10.10.0 255.255.255.0
        set dst-subnet 10.20.0.0 255.255.0.0
    next
end
config router static
    edit 2
        set device "to-branch"
        set dst 10.20.0.0 255.255.0.0
    next
end
# Check the tunnel
get vpn ipsec tunnel summary
diagnose vpn ike gateway list
อุโมงค์ IPsec แบบ site-to-site: Phase 1 สร้างช่องทางที่ปลอดภัยระหว่างเกตเวย์สองตัว Phase 2 ป้องกันทราฟฟิกระหว่างสองซับเน็ต
อุโมงค์ IPsec แบบ site-to-site: Phase 1 สร้างช่องทางที่ปลอดภัยระหว่างเกตเวย์สองตัว Phase 2 ป้องกันทราฟฟิกระหว่างสองซับเน็ต

หัวข้อที่ 9: High Availability และการแก้ปัญหา

FortiGate สองตัวทำงานเป็นคลัสเตอร์ได้ เพื่อให้เครือข่ายทำงานต่อเมื่อตัวหนึ่งเสีย ทักษะเดียวกันยังช่วยหาสาเหตุของปัญหาได้เร็ว ซึ่งประหยัดเวลามากกว่าการเปลี่ยนแปลงแบบสุ่ม

คลัสเตอร์แบบ active-passive

ในโหมด active-passive ยูนิตหลักประมวลผลทราฟฟิก และยูนิตรองรับงานเมื่อหลักล้มเหลว สองยูนิตแชร์การตั้งค่าและสถานะเซสชันผ่านลิงก์ heartbeat เฉพาะ ยูนิตที่มี priority สูงกว่าจะเป็นหลัก และการตั้งค่า override กำหนดว่าจะคืนบทบาทหลังกู้คืนหรือไม่

ทดสอบการสลับ

วางแผนการทดสอบการสลับในช่วงเวลาที่ธุรกิจรู้ ตรวจสถานะคลัสเตอร์ด้วย get system ha status ก่อนและหลังการทดสอบ และยืนยันว่าผู้ใช้ยังคงการเชื่อมต่อไว้ คลัสเตอร์ที่ตั้งค่าผิดอาจทำให้ระบบล่มได้ ซึ่งไฟร์วอลล์ตัวเดียวอาจไม่ทำให้เกิด

ติดตามการไหลด้วย debug

เมื่อการไหลใดล้มเหลว ให้ติดตามทีละขั้น ตั้ง filter ตามแอดเดรสไคลเอนต์ เปิด flow debug เริ่ม trace สำหรับแพ็กเก็ตไม่กี่ตัว แล้วอ่านเอาต์พุต ได้แก่ เส้นทาง ผลการจับคู่นโยบาย และผลของโปรไฟล์ ปิด debug ทันทีที่ได้คำตอบ เพราะเอาต์พุตใช้ CPU มาก

ล็อก การสำรองข้อมูล และการเฝ้าดู

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

การตั้งค่าอุปกรณ์: ตั้ง HA แบบ active-passive และแก้ปัญหาการไหลของทราฟฟิก

ยูนิตหลักมี priority สูงกว่า และพอร์ต heartbeat เชื่อมสองเครื่องเข้าด้วยกัน ใช้ diagnose debug flow เพื่อติดตามหนึ่งการเชื่อมต่อทีละขั้น ได้แก่ การค้นหาเส้นทาง การจับคู่นโยบาย และโปรไฟล์ เมื่อได้คำตอบแล้วให้ปิด debug ด้วย diagnose debug disable ทันที เพราะเอาต์พุตของ debug ใช้ CPU มาก

# FortiOS CLI: active-passive HA, then the basic diagnose commands for troubleshooting
config system ha
    set group-name "FGT-HA"
    set mode a-p
    set hbdev "port8" 50
    set priority 200
    set override disable
    set password <ha-password>
end
# Troubleshooting: follow one flow and look at the debug output
diagnose debug reset
diagnose debug flow filter addr 10.10.10.20
diagnose debug flow show console enable
diagnose debug enable
diagnose debug flow trace start 20
diagnose debug disable
get system ha status

ฝึกในแล็บ

ทักษะ FortiGate มาจากการลงมือทำ จึงควรสร้างแล็บเล็ก ๆ ที่มีสามเครือข่าย คือฝั่งอินเทอร์เน็ต LAN ของสำนักงาน และ DMZ ที่มีเว็บเซิร์ฟเวอร์ ใช้ FortiGate VM หรืออิมเมจประเมิน และทำตามขั้นตอนนี้ตามลำดับ

1. วาดแนวคิดและเขียนแผนอินเทอร์เฟซและแอดเดรสสำหรับเครือข่ายทั้งสาม

2. ตั้งชื่อเครื่อง DNS และบัญชีแอดมินที่มีชื่อ จำกัดการเข้าถึงการจัดการให้อยู่ในซับเน็ตแอดมิน

3. ตั้งค่าพอร์ตทั้งสามพร้อมบทบาทและแอดเดรส แล้วเพิ่ม default route

4. ตรวจการเชื่อมต่อจากแต่ละเครือข่ายด้วย ping ก่อนเพิ่มนโยบายใด ๆ

5. เพิ่มนโยบายขาออกสำหรับซับเน็ตฝ่ายขายพร้อม NAT และโปรไฟล์ค่าเริ่มต้น แล้วทดสอบจากไคลเอนต์

6. สร้าง virtual IP สำหรับเว็บเซิร์ฟเวอร์ใน DMZ พร้อมนโยบายที่ตรงกัน แล้วตรวจเซสชัน

7. สร้างอุโมงค์ IPsec แบบ site-to-site ไปยังยูนิตแล็บอีกตัว เพิ่มเส้นทางและนโยบาย แล้วตรวจสถานะอุโมงค์

8. สำรองการตั้งค่า เปลี่ยนหนึ่งจุด ติดตามการไหลด้วย debug แล้วกู้คืนการสำรองเพื่อยืนยันว่าการย้อนกลับทำงาน

ขั้นต่อไป

หลังการตั้งค่า ฝึกหาการไหลที่ถูกบล็อกให้เจอภายในไม่กี่นาทีด้วยการค้นหานโยบายและคำสั่ง debug แล้วศึกษา SSL VPN และ FortiClient สำหรับผู้ใช้ระยะไกล และ Security Fabric สำหรับข้อมูลภัยคุกคามที่แชร์ร่วมกัน บันทึกการเปลี่ยนแปลงทุกครั้ง เพราะการล่มส่วนใหญ่มาจากการเปลี่ยนแปลงที่ไม่มีใครบันทึก ไม่ใช่นโยบายผิดข้อเดียว

สรุป

FortiGate ตรวจทราฟฟิกตามนโยบายและใช้โปรไฟล์ความปลอดภัยกับทราฟฟิกนั้น การตั้งค่าที่ดีเริ่มจากแผนภาพแนวคิด แผนอินเทอร์เฟซและแอดเดรส และรายการทราฟฟิกที่ต้องใช้ จากนั้นคือการเข้าถึงครั้งแรก อินเทอร์เฟซ โซนและเส้นทาง นโยบายที่เรียงลำดับพร้อมการอนุญาตอย่างชัดเจนสำหรับแต่ละการไหล virtual IP สำหรับเซิร์ฟเวอร์ โปรไฟล์และ SSL inspection อุโมงค์ IPsec สำหรับสาขา และ High Availability สำรองก่อนทุกการเปลี่ยนแปลง ติดตามการไหลด้วย debug เมื่อมีปัญหา และปิด debug หลังใช้งาน