วันอังคารที่ 26 พฤษภาคม พ.ศ. 2552

ความหมายของ iptable

-t = ทำงานกับ table ไหน
-t nat คือ ทำงานกับ table NAT
-t mangle คือทำงานกับ table MANGLE
ถ้าไม่ระบุ หมายถึง table FILTERมีอยู่ 3 table เนี่ยแหละ

-D = delete rule ลบกฏ
-A = append rule เพิ่มกฏต่อท้าย chain

(chain คืออะไร chain ก็คือลำดับกฏ)

-j = jump to ง่ายๆ ก็คือ สั่งให้ทำงานอะไร

ความหมายของ คำสั่ง iptables 1 คำสั่ง
ก็คือการเพิ่ม/ลบ กฏจาก chain ใน table
โดยมีการ ระบุเงื่อนไข และคำสั่งให้ทำ
ดังนั้นใน 1 คำสั่ง จะต้องระบุ table ระบุ chain
ระบุเงื่อนไข และระบุคำสั่ง ที่จะทำงานเมื่อเจอ packet ที่ตรงตามเงื่อนไข

แยกย่อยให้ดู

iptables -t nat -D PREROUTING -i $LANIF -d 202.43.33.0/24 -p tcp --dport 80 -j REDIRECT --to-port 3128

iptables -t nat -D PREROUTING = ให้ลบ กฏ
ออกจาก chain ที่ชื่อว่า PREROUTING ที่อยู่ใน table NAT
คำถามคือ กฏ ไหนละ? ใน chain มีกฏอยู่มากมาย

ก็กฏที่ตรงกับเงื่อนไขและคำสั่งแบบนี้ไง
"-i $LANIF -d 202.43.33.0/24 -p tcp --dport 80 -j REDIRECT --to-port 3128"

iptables -t nat -I PREROUTING -i $LANIF -d 202.43.33.0/24 -p tcp --dport 80 -j REDIRECT --to-port 3128

iptables -t nat -I PREROUTING = ให้เพิ่มกฏ
(-I = insert เพิ่มกฏเข้าไปด้านบนของ chain)
ให้ chain ที่ชื่อว่า PREROUTING ทีอยู่ใน table NAT
รายละเอียดของกฏ ก็คือ

"-i $LANIF -d 202.43.33.0/24 -p tcp --dport 80"

-i = Interface ขาเข้า คำว่า $LANIF เป็นตัวแปร ที่เก็บค่าชื่อ interface ขา LAN
หมายความว่า Packet ที่เข้ามาทาง interface ที่ระบุตาม -i $LANIF

-d 202.43.33.0/24 = destination ip คือ Packet ที่มีเป้าหมายไปยัง IP ดังกล่าว

-p tcp = protocol เงื่อนไขระบุโปรโตคอลที่ใช้ ว่าเป็น tcp หรือ udp

--dport 80 = destination port คือ Packet ที่มีหมายเลข port เป้าหมาย 80

iptables -t mangle -A MULTIWAN_MARK -d 0.0.0.0/0 -p tcp -m multiport --dport 16567,16568,19567,39900 -j GAMES_1
iptables -t mangle -A MULTIWAN_MARK -d 0.0.0.0/0 -p udp -m multiport --dport 16567,16568,19567,39900 -j GAMES_1

คำสั่งทั้งสองเหมือนกันตรงที่ เพิ่มกฏต่อท้ายลงไปใน
chain ที่ชื่อว่า MULTIWAN_MARK ที่อยู่ใน table MANGLE
โดยที่มี ip เป้าหมายว่า 0.0.0.0/0 คือ ip อะไรก็ได้ (งั้นจะระบุไปทำไมหว่า)
คำสั่งแรก -p tcp คำสั่งที่สอง udp คือ packet ที่ใช้ protocol ทั้งสอง (ระบุไปทำไมเนี่ย)
-m multiport เป็นการระบุหมายเลข port
ที่ใช้แบบหลาย portต่อมาด้วย --dport คือรายการหมายเลข port ที่เป็นเป้าหมายทั้งหมด

-j GAMES_1 ให้กระโดดไปยัง chain ที่ชื่อ GAMES_1

เครดิต : คุณ SuperMENG แห่ง http://www.linuxthai.org/

-----------------------------------------------------------------------------------------
หมายเหตุ : คนที่ไม่คิดว่าจะสามารถทำเองได้ พูดง่ายๆๆคือจ้างเขาทำและไม่คิดจะศึกษาหาความรู้เพิ่มเติม หรือลองผิดลองถูกไม่ควรนำไปใช้งานครับ (ควรจ้างเขามาทำต่อไป)

2 ความคิดเห็น:

  1. ขอบคุณมากๆเลยครับ หามาหลายวันแล้ว ไม่รู้ทำยังไงจริงๆ ขอบคุณจริงๆครับ

    ตอบลบ
  2. หากต้องการศึกษาเพิ่มเติมก็เข้าไปค้นหาได้ที่เวบ http://www.linuxthai.org/ ได้เลยนะครับ

    ตอบลบ