โดยโจทย์ในวันนี้จะเป็นการนำซอฟต์แวร์ไฟร์วอล(shorewall)และการเปิดปิดเซอร์วิส libvirt-bin ของเครื่องเกสต์(guest) เข้ามารวมกันก่อนอื่นต้องท้าวความกันสักหน่อย
shorewall เป็นซอฟต์แวร์ไฟร์วอลแบบสเตจฟลู(statefull) จะใช้วิธีการกำหนดค่าผ่านเทอร์มินอล จากนั้นจะแปลงค่าคอนฟิกต่าง ๆ ไปเป็น iptables ที่มีประสิทธิภาพและมีความยืดหยุ่นสูง ง่ายและสะดวกต่อการใข้งาน
libvirt-bin เป็นโปรแกรมที่ระบบเวอร์ชวลแมชชีน(kvm) ใช้ในการกำหนดค่า iptables ต่าง ๆ ของเครื่องโฮสต์(host) เพื่อให้มีการติดต่อกันระหว่าง host กับ guest เป็นไปได้อย่างมีประสิทธิภาพ ปัญหาของการที่ไม่มีการเปิด iptables เพื่อเชื่อมต่อกันก็คือ เครื่องเกสต์ไม่สามารถออกอินเทอร์เน็ตได้ เป็นต้น
ในเครื่องโฮสต์ควรจะมีไฟร์วอลเพียงระบบเดียว แต่การรัน shorewall เพียงอย่างเดียวเพื่อคอนฟิคค่าให้รองรับการใช้งานเวอร์ชวลแมชชีนสำหรับผู้เขียนอาจจะต้องใช้เวลาค่อนข้างมาก อีกทั้งเครื่องทดสอบก็เป็นอุปกรณ์โปรดักชั่น จึงไม่มีเวลาลองผิดลองถูกได้มากนัก เงื่อนไขของเราต้องแข่งกับเวลา ดังนั้นการนำไฟร์วอลทั้งสองแบบมารวมกัน(integrated) ย่อมทำได้ง่ายและรวดเร็วกว่า
สำหรับ การกำหนดค่าของ shorewall สามารถดูได้จากเนื่้อหา http://www.s-techthai.com/2016/09/shorewall-ubuntu-server.html
ส่วนที่เหลือเป็นกฎเกณฑ์ของ libvirt-bin ที่สร้างเป็นสคริปไฟล์ใช้สำหรับรันเพิ่มหลังจากที่ได้ทำการสตาร์ทshorewall ไปเรียบร้อยแล้ว
#!/bin/bash iptables -t nat -I PREROUTING -p tcp -d 1.2.3.4 --dport 80 -j DNAT --to-destination 192.168.122.2:80 iptables -t nat -I PREROUTING -p tcp -d 1.2.3.4 --dport 222 -j DNAT --to-destination 192.168.122.2:22 iptables -t nat -I POSTROUTING -s 192.168.122.0/24 ! -d 192.168.122.0/24 -j MASQUERADE iptables -t nat -I POSTROUTING -s 192.168.122.0/24 ! -d 192.168.122.0/24 -p udp -j MASQUERADE --to-ports 1024-65535 iptables -t nat -I POSTROUTING -s 192.168.122.0/24 ! -d 192.168.122.0/24 -p tcp -j MASQUERADE --to-ports 1024-65535 iptables -t nat -I POSTROUTING -s 192.168.122.0/24 -d 255.255.255.255/32 -j RETURN iptables -t nat -I POSTROUTING -s 192.168.122.0/24 -d 224.0.0.0/24 -j RETURN iptables -I FORWARD -i virbr0 -j REJECT --reject-with icmp-port-unreachable iptables -I FORWARD -o virbr0 -j REJECT --reject-with icmp-port-unreachable iptables -I FORWARD -i virbr0 -o virbr0 -j ACCEPT iptables -I FORWARD -s 192.168.122.0/24 -i virbr0 -j ACCEPT iptables -I FORWARD -d 192.168.122.0/24 -o virbr0 -m conntrack --ctstate NEW,RELATED,ESTABLISHED -j ACCEPT iptables -I INPUT -i virbr0 -p tcp -m tcp --dport 53 -j ACCEPT iptables -I INPUT -i virbr0 -p udp -m udp --dport 67 -j ACCEPT iptables -I INPUT -i virbr0 -p tcp -m tcp --dport 67 -j ACCEPT iptables -I OUTPUT -o virbr0 -p udp -m udp --dport 68 -j ACCEPT
ส่วนขั้นตอนการสตาร์ทสคริปก็ใช้เทคนิคตามแต่ที่ถนัดกันละครับ ที่สำคัญต้องสตาร์ทเซอร์วิสนี้หลังจากที่สตาร์ทshorewall ไปแล้วเท่านั้น สำหรับผู้เขียนเองสตาร์ทแมนนวลไปก่อน เพราะปกติเครื่องโฮสต์ที่บริษัทออนไลน์มามากกว่า 180 วันก็ยังไม่มีปัญหาใด ๆ
เนื้อหาดี ๆ ทั้งหมดนี้ได้รับการสนับสนุนจากเวบไซต์ thailandgpstracker.com ของบริษัท ไทยพรอสเพอรัส ไอที จำกัด ผู้นำด้านการให้บริการระบบจีพีเอสติดตามรถยนต์ สมบูรณ์แบบ ที่สำคัญระบบของเราไม่ได้ถูกจำหน่ายและให้บริการเฉพาะเจ้าของ(proprietary)หรือแย่กว่านั้นก็คือรีแบรนด์(reband)กลบเกลื่อนร่องรอยที่แท้จริงของอุปกรณ์ มีทำกันมากทีเดียวในบ้านเรา
ไม่มีความคิดเห็น:
แสดงความคิดเห็น