อะไรคือ Bridge อ่านที่นี่พอเป็นแนวทาง http://www.tanti.ac.th/Com-ranning/NetWork/bridge.htm
Bridge การทำงานคือส่งผ่าน packet ethernet แค่นั้นเอง เมื่อ + ipfw เข้าไปสามารถ fillter ได้ถึงชั้น layer ip ก็กลายเป็น smart bridge ถ้าเพิ่มฟังก์ชัน dummynet + ฟังก์ชัน route ติด Nic สิบตัว ก็จะกลายเป็น super ultra bridge ไปเลย 5 5 5 5+ อันนี้พูดเล่นแต่อยากทำ
การทำงานของมันไม่มีอะไรมากคือ เอา Nic มาสองตัว เปิดฟังก์ชัน bridge ให้มันไม่ต้องใส่ ip ก็คือเมื่อมีสัญญาณไฟฟ้าผ่านมาทางสายแลน มันเอาอ่านหมดทุก packet แล้วจะส่งต่อไปยัง kernel เพื่ออ่านกฎคัดแยกเพื่อส่งไปยัง Nic อีกอันหรือจะทิ้ง packet นั้นไป
Setup (ข้อมูล รายละเอียดอ่านเอาจาก http://www.thai-aec.org/misc/secure_bridge.html)
1.Compile kernel
2.แก้ไข /etc/rc.conf
3.แก้ไข /etc/sysctl.conf
4.แก้ไข /etc/syslog.conf
5.แก้ไข /boot/loader.conf
หลังจากทำทุกอย่างเรียบร้อย กฎที่ให้มาตามด้านบนไม่ work เพราะปัญหาอันดับแรกคือเรา Deny all อยู่แล้วเครื่องไม่สามารถติดต่อใครได้เลย ถ้าต้องการดูว่า bridge เราทำงานหรือไม่ก็เอาสาย lan cross มาต่อเข้า NIC ต้องใช้สามเครื่องในการทดลอง หรือเอาสายจาก Hub เข้ามาเส้นนึงเป็นขา out และสาย cross ต่อเข้าเครื่อง client เป็น in เพื่อทำการทดลอง
เพิ่มกฎ
add pass all from any to any
ถ้า client สามารถเล่นเน็ตแสดงว่า bridge เรา work
- ปัญหาแรก ที่เจอคือ arp ไม่สามารถาส่งผ่านไปได้หลังจากใส่กฎด้านบนไปหมดแล้วเราต้องเพิ่ม
add pass all from any to any mac-type arp
- ปัญหาที่สอง คือ DHCP เพราะว่ากฎด้านบนบล๊อค 0.0.0.0 และ multicast class4 ไว้ด้านบนเลยทำให้ dhcp โดนทิ้งหมดให้เอากฎพวกนี้ทิ้งให้หมด แล้วค่อย copy ไปไว้ deny ตอนท้ายๆของกฎ
${fwcmd} add deny all from any to 0.0.0.0/8
${fwcmd} add deny all from any to 169.254.0.0/16
${fwcmd} add deny all from any to 192.0.2.0/24
${fwcmd} add deny all from any to 224.0.0.0/4
${fwcmd} add deny all from any to 240.0.0.0/4
${fwcmd} add deny all from 10.0.0.0/8 to any
${fwcmd} add deny all from 172.16.0.0/12 to any
${fwcmd} add deny all from 0.0.0.0/8 to any
${fwcmd} add deny all from 169.254.0.0/16 to any
${fwcmd} add deny all from 192.0.2.0/24 to any
${fwcmd} add deny all from 224.0.0.0/4 to any
${fwcmd} add deny all from 240.0.0.0/4 to any
การแก้ปัญหา DHCP เพิ่มกฎ
add pass udp from any to any 67 keep-state #client
add pass udp from any to any 68 keep-state #server
- ปัญหาที่สาม คือ FTP แบบ passive อันนี้แก้ไม่ตกจะให้เราเปิดหมดตั้งแต่ 1025-65xxx ก็ไม่ไหวเพราะจุดประสงค์ของผมคือ block torrent
การแก้ปัญหาคือถ้าจะใช้ server ไหนให้บอกผมมาแล้ว add ให้ชั่วคราว :)... to be continue ง่วง
ไอ้แพท..