rc.firewall.local ที่ผมใช้เป็นสคริปแยกเน็ตและเกมส์ของ cc โดย คุณวัลลภ เพชร
แต่ผมแก้สคริปให้ Frox_v_5.1 และ squid-2.6-s13 ทำงานร่วมกับสคริปนี้ไม่เป็น จึงมาขอความช่วยเหลือครับ
# Custom firewall rules.
# This file is executed by the firewall on stop/start/restart.
# /etc/rc.d/rc.firewall.local - NANNETZONE2 Lopburi-Special firewall-rules. V1.5 3/3/2551
# naninternet@hotmail.com
# ppp0=NET
# ppp1=GAMEONLINE
# LAN=$LANIP ค้นหา Interface LAN อัตโนมัติ
# -------------------- อยากบอกให้ทราบ --------------------------
# 1.ขอขอบคุณ
www.linuxthai.org และ
www.truefaster.com และสมาชิกทุกท่าน ที่ให้ข้อมูลอ้างอิง
# 2.สคริปค์นี้อาจทำให้สายเน็ตของท่านทำงานหนักจนเกินไป โปรดอ่านและใช้วิจารณญานก่อนนำไปใช้ หากใช้ไม่ได้ผลยินดีแก้ไขใหม่
# 3.สคริปค์นี้อาจมีข้อผิดพลาดซึ่งผู้เขียนจะไม่ขอรับผิดชอบกับผลใด ๆกับเครื่องหรือระบบของท่านอย่างเด็ดขาด
# 4.สคริปค์จะทำงานสมบูรณ์หรือไม่ขึ้นอยู่กับการกำหนดเงื่อนไข ซึ่งผมได้สร้างโครงสร้างพื้นฐานไว้ให้
# และอธิบายค่อนข้างละเอียดทุกขั้นตอน
# 5.ยินดีและหวังเป็นอย่างมาก ต่อความคิดเห็น และคำวิจารณ์ ของทุกท่านที่นำไปใช้ และ ผ่านมาเห็น
# เพื่อพัฒนาต่อยอดให้ได้สุดยอดสคริปค์สำหรับร้านเกมส์
# 6.หากมีบุญกุศลใดที่ผมได้เคยสร้างไว้ จงดลบันดาลให้สคริปค์นี้ใช้ได้ผลดี เพื่อเป็นประโยชน์ต่อผู้อื่นและข้าพเจ้าเอง ด้วยเถิด
# 7.หากสคริปของผมใช้ดี และสร้างความพีงพอใจแก่ท่าน จะช่วยบริจาคเงินช่วยเหลือค่าหนังสือ ค่าเวลาที่ผมทุ่มเทไป
# เป็นกำลังใจเพื่อพัฒนาต่อยอด และ 30% ผมจะบริจาคต่อให้การกุศล เช่น ให้วัดพระบาทน้ำพุ จ.ลพบุรี หรือ ทำบุญตามวัดต่าง ๆ
# จะได้บุญร่วมกันด้วยครับ
# โอนมาที่บัญชี นายวัลลภ เพชรัตน์ ธ.กรุงเทพ สาขาลพบุรี 289-0-902030 โอนแล้วแจ้งให้ผมทราบด้วย
# ด้วยความนับถือ
# naninternet@hotmail.com
#---------รายชื่อร้านที่ลงสคริปค์นี้แล้ว----------------
#ร้าน NANNETZONE2 ลพบุรี
#ร้าน ONO นครสวรรค์
#ร้าน ONEL สุพรรณบุรี
#--------------------สิ่งสำคัญที่ต้องทราบเกี่ยวกับ IPTABLES-----------------------------------------------------
#-package เมื่อวิ่งเข้ามาในserver จะผ่าน mangle-prerouting -> nat-prerouting
# First routing decision ตัดสินว่า Package จะ เข้า Local Process (Squid Frox) หรือ Forward
# กรณีที่ 1 ถูก Redirect port ด้วย nat-prerouting, package จะวิ่งผ่าน mangle-input และ filter-input ตามลำดับ
# เข้าสู่ Local Process(squid frox)ซึ่งเป็นตัว Generate Package (ทำงานแทนClient)ส่งต่อไป
# mangle-output ซึ่งตรงนี้เราจะต้องมาร์ก package อีกครั้งเพื่อให้ไปตามเป้าหมายที่กำหนด package จะส่งผ่านต่อไป
# nat-output และ flter-output ตามลำดับ จนมาถึง Final Routing decision
# กรณีที่ 2 ถูก Forward, Package จะผ่าน mangle-forward และ filter-forward ตามลำดับ จนมาพบกับ Package ที่มาจาก
# กรณีที่ 1 ตรง Final Routing Decision
# Final Rouuting Decision จะตัดสินใจเลือกเส้นทางออกดังนี้
# ppp0 กรณี Package ถูกมาร์กด้วย 8000
# ppp1 กรณี Package ถูกมาร์กด้วย 8001
# pppx กรณีมีมากกว่า 2 สาย 800x
# ถ้าไม่มาร์กมา ให้ใช้ตาราง 250 ในการตัดสินใจโดยพิจารณาจากน้ำหนักที่กำหนดไว้ (Load Balance)
#-การทำ Connection Tracking เพื่อตรวจสอบสถานะของการเชื่อมต่อ (INVALID,NEW,RELATED,ESTABLISHED)ด้วย MARK,CONMARK
# จะกระทำได้เฉพาะใน mangle-prerouting และ magle-output เท่านั้น อ้างอิง
http://security.maruhn.com/iptables-tutorial/c4219.html#-กฎที่อยู่ใน Chain เมื่อ Chain ถูกเรียกใช้ จะตรวจสอบการ Match จากกฎข้อแรกด้านบนลงด้านล่าง เสมอ
#-User Define Chain จะไม่มี Policy ซึ่งเราอาจเขียนกฎสุดท้ายเพื่อเป็น Policy ของ Chain ก็ได้
#-Built-in Chain จึงจะกำหนด Policy ได้
#-เมื่อ กฎใน Chainแม่ เกิดการ Matchที่กฎใดๆ และสั่งให้กระโดดไปที่ Chainลูกและหากกฎใน Chainลูก ไม่ Matchเลย มันจะส่ง Package กลับ
# มาที่ Chainแม่ เพื่อตรวจสอบกฎข้อถัดไป(จากที่Matchเดิม)ของ Chainแม่
#-กฎที่มี Target (-j) ACCEPT,DROP,REJECT จะเป็นกฎที่ทำให้การตรวจสอบกฎหยุดลงได้ มันจะส่งผลกลับไปที่ Built-in Chain
# ถึงจะโดดมากี่ทอด(หมายถึง Chain ย่อย) ก็ตาม
#-กรณี Target (-j) MARK, CONNMARK,LOG จะไม่ทำให้ Chain หยุดการตรวจสอบกฎข้อถัดไป มันคงยังทำงานต่อไป ตรงนี้อันตรายมาก
# นี่คือเหตผลที่ต้อง มี ACCEPT ใน Chain MULTIWAN_ppp0, MULTIWAN_ppp1 เพื่อหยุดการตรวจสอบกฎของ Chain MULTIWAN_MARK
#-ในChain MULTIWAN_MARK และ LOCAL_MARK นั้นจะทำงานกับ Package สถานะ NEW หรือ Package แรกสุดของการขอเชื่อมต่อ
# ออกสู่ภายนอกเพื่อไปถึง Server ต่างๆ เท่านั้น ส่วน Package สถานะ ESTABLISHED,RELATED จะถูก RESTORE MARK ที่บันทึกเก็บไว้
# ด้วย CONNMARK(การมาร์กทั้ง Connection) เพื่อมาร์ก Package ดังกล่าวอัตโนมัติเพื่อ Routing ไปตาม Packageสถานะ NEW นั้น
# -NEW สถานะPackage เริ่มการสถาปนาการเชื่อมต่อครั้งแรก
# -ESTABLISH สถานะ Package ที่ได้สถาปนาการเชื่อมต่อไว้แล้ว
# -RELATED สถานะ Package ที่สถาปนาการเชื่อมต่อใหม่ คล้าย NEW แต่เป็น Connection ใหม่ ที่เกี่ยวข้องกับ Connection เดิมใด ๆ
# ที่มีอยู่แล้ว เช่น FTP จะสถาปนาการเชื่อมต่อด้วย Port 21 แล้วจะสถานปนาการเชื่อมต่อไปที่ Server ด้วย portปลายทาง >1024
# สำหรับการส่งถ่ายข้อมูล (data port กรณี Passive)
#-สคริปค์ ต่อไปนี้ ดัดแปลงและปรับปรุงสิ่งที่ Clark ยังด้อย และ เก็บส่วนที่ดีของ Clark ไว้ และจะทำการ มาร์กเฉพาะ Package แรกที่เป็น State NEW
# ส่วน Package ต่อ ๆ มา ESTABLISHED, และ RELATED จะมาร์กโดย Restore จาก connection mark
#-เขียน เพื่อ OPTIMIZE การทำงานของ Server ให้ทำงานน้อยที่สุด
#-สำหรับ Clarkconnect 4.1, 4.2 ระบบ MULTIWAN
#-------------------------------สคริปค์เริ่มทำงานตรงนี้--------------------------------------------------
#---------------ยกเลิกกฎใน Chain mangle-POSTROUTING ------------------------------------------------
$IPTABLES -t mangle -F POSTROUTING
#-------------------------------------------------------------------------------------------------
#-------------------------------สร้าง Chain MY_MARK เพิ่ม ---------------------------------------------
#เก็บกฎที่ใช้ตรวจสอบจากการเรียกจาก 2 แห่ง คือ LOCAL_MARK และ MULTIWAN_MARK
$IPTABLES -t mangle -F MY_MARK
$IPTABLES -t mangle -N MY_MARK
#DOTA
$IPTABLES -t mangle -A MY_MARK -d 210.86.182.243 -p tcp --dport 80 -j MULTIWAN_ppp1
$IPTABLES -t mangle -A MY_MARK -d 210.86.182.244 -p tcp --dport 80 -j MULTIWAN_ppp1
#Cafe
$IPTABLES -t mangle -A MY_MARK -d 203.144.244.0/24 -p tcp --dport 443 -j MULTIWAN_ppp1
# X-Trap
$IPTABLES -t mangle -A MY_MARK -d 203.144.132.11 -p tcp --dport 80 -j MULTIWAN_ppp0
$IPTABLES -t mangle -A MY_MARK -d 203.144.244.59 -p tcp --dport 80 -j MULTIWAN_ppp0
# PlayPlus
$IPTABLES -t mangle -A MY_MARK -d 61.90.252.74 -p tcp --dport 80 -j MULTIWAN_ppp1
$IPTABLES -t mangle -A MY_MARK -d 61.90.252.75 -p tcp --dport 80 -j MULTIWAN_ppp1
#-------------------------------------------------------------------------------------------------
#------------------------------สร้าง Chain LOCAL_MARK เพิ่ม---------------------------------------------------
# สร้าง Chain ใหม่เพื่อเก็บกฎ ให้เป็นระเบียบ ซึ่งเป็นกฎที่ทำงานกับ package ที่ออกมาจาก Local Process (Squid + Frox) ภายใน Clark ของเรา
#Package ที่วิ่งออกมาใน Chain เป็นผลมาจากการทำ Redirect ของ Nat Prerouting คือ 80->3128 , 21->2121
#ลบ Chain และสร้างใหม่
$IPTABLES -t mangle -F LOCAL_MARK
$IPTABLES -t mangle -N LOCAL_MARK
$IPTABLES -t mangle -A LOCAL_MARK -j MY_MARK
#HTTP,FTP กรณีใช้ SQUID,FROX Package ที่ไม่เข้ากับกฎด้านบนใน Chain นี้
$IPTABLES -t mangle -A LOCAL_MARK -d ! 192.168.1.0/24 -j MULTIWAN_ppp0
#-----------------------------------------------------------------------------------------------------
#-----------------------ปรับปรุง chain MULTIWAN_ppp0 และ MULTIWAN_ppp1--------------------------------
#กำหนดว่า เมื่อมาร์ก Package แล้วให้ Mark Connection ด้วย แล้วให้ ACCEPT Package นี้ไปเลย
#เพื่อไม่ให้กฎข้อถัดไปของ MULTIWAN_MARK ทำงาน ซึ่งจะทำให้การทำงานสับสน (หัวใจ)
#***********เคล็ดลับที่ค้นหามานาน*******************ขอบคุณสวรรค์ที่ยังเมตตาชี้ทางสว่างให้
$IPTABLES -t mangle -A MULTIWAN_ppp0 -j CONNMARK --save-mark
$IPTABLES -t mangle -A MULTIWAN_ppp0 -j ACCEPT
$IPTABLES -t mangle -A MULTIWAN_ppp1 -j CONNMARK --save-mark
$IPTABLES -t mangle -A MULTIWAN_ppp1 -j ACCEPT
#-------------------------------------------------------------------------------------------------
#----------------------ปรับปรุง MANGLE PREROUTING + NAT-PREROUTING พื่อให้การทำงานเร็วขึ้น-------------------
#ถ้า Squid หรือ Frox ทำงานอยู่ ให้ผ่าน Package ที่วิ่งไปที่ port 80 ,21 ไม่ต้องตรวจสอบกฎต่อไปใน Chain นี้
#เพราะจะไปตรวจสอบกฎใน Chain mangle-output แทน
$IPTABLES -t nat -D PREROUTING -i $LANIF -p tcp --dport 21 -j REDIRECT --to-port 2121 >/dev/null
if [ -f /var/run/frox.pid ]; then
$IPTABLES -t nat -A PREROUTING -i $LANIF -p tcp --dport 21 -j REDIRECT --to-port 2121
$IPTABLES -t mangle -I PREROUTING -i $LANIF -p tcp --dport 21 -j ACCEPT
fi
$IPTABLES -t nat -D PREROUTING -i $LANIF -p tcp --dport 80 -j REDIRECT --to-port 3128 >/dev/null
$IPTABLES -t nat -D PREROUTING -i $LANIF -p tcp -m multiport --dport 80,5977 -j REDIRECT --to-port 3128 >/dev/null
if [ -f /var/run/squid.pid ]; then
$IPTABLES -t nat -A PREROUTING -i $LANIF -p tcp -m multiport --dport 80,5977 -j REDIRECT --to-port 3128
#Patch เกมส์ Trickter 5977
$IPTABLES -t mangle -I PREROUTING -i $LANIF -p tcp -m multiport --dport 80,5977 -j ACCEPT
fi
#Package ที่วิ่งเข้ามาจาก ppp ทุกช่องให้ ACCEPT และไม่ต้องตรวจสอบกฎข้อถัดไปใน Chain นี้ เพื่อจะได้ไม่ต้องเสียเวลามาร์ก
$IPTABLES -t mangle -I PREROUTING -i ppp+ -j ACCEPT
#ยกเลิกกฎ ที่กำหนดให้ต้อง Restore Package Mark จาก CONNMARK ทุก Package ที่วิ่งผ่าน
$IPTABLES -t mangle -D PREROUTING -p tcp -j CONNMARK --restore-mark
$IPTABLES -t mangle -D PREROUTING -m mark ! --mark 0x0 -p tcp -j ACCEPT
$IPTABLES -t mangle -D PREROUTING -i $LANIF -m state --state RELATED,ESTABLISHED -j MULTIWAN_RESTORE
$IPTABLES -t mangle -A PREROUTING -i $LANIF -m state --state RELATED,ESTABLISHED -j CONNMARK --restore-mark
$IPTABLES -t mangle -F MULTIWAN_RESTORE
#------------------------------------------------------------------------------------------------------
#-------------------------------ปรับปรุง MANGLE OUTPUT---------------------------------------------------
#บรรจุกฎลงใน MANGLE OUTPUT เพื่อมาร์ก Package ที่ออกมาจาก Local Process (Squid + Frox)
#เขียนคำสั่งเลียนแบบใน MANGLE PREROUTING ให้ดูจากผลของคำสั่ง service firewall status
$IPTABLES -t mangle -A OUTPUT -o $LANIF -j ACCEPT
#$IPTABLES -t mangle -A OUTPUT -m mark ! --mark 0x0 -p tcp -j ACCEPT
#$IPTABLES -t mangle -A OUTPUT -p tcp -j CONNMARK --restore-mark
$IPTABLES -t mangle -A OUTPUT -d ! 192.168.1.0/24 -m state --state NEW -j LOCAL_MARK
$IPTABLES -t mangle -A OUTPUT -d ! 192.168.1.0/24 -m state --state RELATED,ESTABLISHED -j CONNMARK --restore-mark
#---------------------------------------------------------------------------------------------------
#-----------------------------ส่วนการบังคับ กรณีพิเศษ--------------------------------
#ตรวจสอบที่ MY_MARK
$IPTABLES -t mangle -A MULTIWAN_MARK -j MY_MARK
#Entserver MSN Only เฉพาะร้านผมเพื่อให้ MSN ที่เครื่องสำหรับดูกล้องวงจรปิดออกสายเกมส์ (จะไม่ใช้ก็ได้)
$IPTABLES -t mangle -A MULTIWAN_MARK -s 192.168.1.100 -p tcp --dport 1863 -j MULTIWAN_ppp1
#--------------------------------------------------------------------------------------------------
#--------------------ส่วนนี้เป็นส่วนแยกโปรแกรมให้ออกสายเน็ต โดยพิจารณาจาก PORT ที่เรียกออกไป-----------------------------
#21,80 เขียนไว้เผื่อกรณียกเลิก SQUID หรือ FROX ซึ่งจะทำให้ package 21,80 ยังจะออกไปที่ ppp0 ผ่านไปทาง mangle FORWARD Chain
#ของ mangle และ Filter ตามลำดับ และเข้าสู่ Final Decision Routingเพื่อเลือกทางออก ppp0,ppp1,pppx ด้วย ตาราง 100,101,...,250
#ถ้าใช้ SQUID หรือ FROX แล้ว Package 21,80 จะถูกแยกเข้า Local Process(Squid+Frox)ผ่าน mangle Output แทน
# ftp,http,https,irc, msn,TV,Camfox To ppp0
$IPTABLES -t mangle -A MULTIWAN_MARK -i $LANIF -p tcp -m multiport --dport 21,80,443,6667,1863,8080,10001,6000,7000 -j MULTIWAN_ppp0
#Camfox
$IPTABLES -t mangle -A MULTIWAN_MARK -i $LANIF -p tcp --dport 2100:2200 -j MULTIWAN_ppp0
$IPTABLES -t mangle -A MULTIWAN_MARK -i $LANIF -p tcp --dport 6005:6008 -j MULTIWAN_ppp0
#MSN
$IPTABLES -t mangle -A MULTIWAN_MARK -i $LANIF -p tcp --dport 9000:9010 -j MULTIWAN_ppp0
#--------------------------------------------------------------------------------------------------------
#--------------------ส่วนการแยกเกมส์ออนไลน์-------------------------------------------------------------------
# ตรงนี้คือจุดที่ต้องพิจารณาทางเลือก ของเกมส์ บางท่านอาจจะกำหนด domain ของเกมส์ หรือ กำหนด port มาใส่ตรงนี้ก็ได้ จะทำให้แยกชัดเจนแน่นอน
#ใส่ไปทุกเงื่อนไขที่จะกรองเอาเฉพาะเกมส์ออนไลน์ออกไป ppp1 หรือ ppp อื่น ๆ
#$IPTABLES -t mangle -A MULTIWAN_MARK -i $LANIF -p tcp --dport 1025:49999 -j MULTIWAN_ppp1
# ---------------ตรวจสอบด้วย port-------------------------
#Audition
$IPTABLES -t mangle -A MULTIWAN_MARK -i $LANIF -p tcp -m multiport --dport 1699,8484 -j MULTIWAN_ppp1
$IPTABLES -t mangle -A MULTIWAN_MARK -i $LANIF -p tcp --dport 18200:18201 -j MULTIWAN_ppp1
#DotA
$IPTABLES -t filter -I FORWARD -i ppp0 -p tcp --dport 6101:6118 -j DROP
$IPTABLES -t mangle -A MULTIWAN_MARK -i $LANIF -p tcp --dport 6000:7500 -j MULTIWAN_ppp1
$IPTABLES -t mangle -A MULTIWAN_MARK -i $LANIF -p udp --dport 6000:7500 -j MULTIWAN_ppp1
#Freestyl
$IPTABLES -t mangle -A MULTIWAN_MARK -i $LANIF -p tcp --dport 10002 -j MULTIWAN_ppp1
#Cabal
$IPTABLES -t mangle -A MULTIWAN_MARK -i $LANIF -p tcp --dport 38101:38122 -j MULTIWAN_ppp1
#Linage2
$IPTABLES -t mangle -A MULTIWAN_MARK -i $LANIF -p tcp -m multiport --dport 2009,7777,16100 -j MULTIWAN_ppp1
#Ragnarok
$IPTABLES -t mangle -A MULTIWAN_MARK -i $LANIF -p tcp -m multiport --dport 5000,5121,6121,6900,7001,8006,9005 -j MULTIWAN_ppp1
#PerfaceWorld
$IPTABLES -t mangle -A MULTIWAN_MARK -i $LANIF -p tcp -m multiport --dport 1899,29000 -j MULTIWAN_ppp1
#Sf
$IPTABLES -t mangle -A MULTIWAN_MARK -i $LANIF -p tcp --dport 27930:27931 -j MULTIWAN_ppp1
$IPTABLES -t mangle -A MULTIWAN_MARK -i $LANIF -p udp --dport 27930:27931 -j MULTIWAN_ppp1
$IPTABLES -t mangle -A MULTIWAN_MARK -i $LANIF -p tcp --dport 20053:20248 -j MULTIWAN_ppp1
$IPTABLES -t mangle -A MULTIWAN_MARK -i $LANIF -p udp --dport 20053:20248 -j MULTIWAN_ppp1
$IPTABLES -t mangle -A MULTIWAN_MARK -i $LANIF -p icmp -j MULTIWAN_ppp1
#Yulgang
$IPTABLES -t mangle -A MULTIWAN_MARK -i $LANIF -p tcp --dport 16000:16101 -j MULTIWAN_ppp1
#GE
$IPTABLES -t mangle -A MULTIWAN_MARK -i $LANIF -p tcp --dport 7001:7003 -j MULTIWAN_ppp1
$IPTABLES -t mangle -A MULTIWAN_MARK -i $LANIF -p tcp --dport 2000 -j MULTIWAN_ppp1
#Pangya
$IPTABLES -t mangle -A MULTIWAN_MARK -i $LANIF -p tcp --dport 10104 -j MULTIWAN_ppp1
#Laschaos
$IPTABLES -t mangle -A MULTIWAN_MARK -i $LANIF -p tcp --dport 4010 -j MULTIWAN_ppp1
#Lan
$IPTABLES -t mangle -A MULTIWAN_MARK -i $LANIF -p tcp --dport 5105 -j MULTIWAN_ppp1
#CSOnline
$IPTABLES -t mangle -A MULTIWAN_MARK -i $LANIF -p tcp -m multiport --dport 1221,7341 -j MULTIWAN_ppp1
$IPTABLES -t mangle -A MULTIWAN_MARK -i $LANIF -p udp -m multiport --dport 1234,7802,7787 -j MULTIWAN_ppp1
#GhostOnline
$IPTABLES -t mangle -A MULTIWAN_MARK -i $LANIF -p tcp --dport 1041:1064 -j MULTIWAN_ppp1
$IPTABLES -t mangle -A MULTIWAN_MARK -i $LANIF -p tcp --dport 13022:13024 -j MULTIWAN_ppp1
$IPTABLES -t mangle -A MULTIWAN_MARK -i $LANIF -p tcp -m multiport --dport 13001,13032,13070 -j MULTIWAN_ppp1
$IPTABLES -t mangle -A MULTIWAN_MARK -i $LANIF -p udp --sport 8000 -j MULTIWAN_ppp1
#Luna Online
$IPTABLES -t mangle -A MULTIWAN_MARK -i $LANIF -p tcp --dport 15001:15002 -j MULTIWAN_ppp1
$IPTABLES -t mangle -A MULTIWAN_MARK -i $LANIF -p tcp --dport 14800 -j MULTIWAN_ppp1
# ----------ตรวจสอบด้วย Domain---------------
# Asiasoft
$IPTABLES -t mangle -A MULTIWAN_MARK -d 203.144.0.0/16 -j MULTIWAN_ppp1
# SF,LN2, Asiasoft International
$IPTABLES -t mangle -A MULTIWAN_MARK -d 61.90.0.0/16 -j MULTIWAN_ppp1
# ProjectOne, DOMO
$IPTABLES -t mangle -A MULTIWAN_MARK -d 61.19.0.0/16 -j MULTIWAN_ppp1
# Seal, HY, 3Kingdoms, 16pounds
$IPTABLES -t mangle -A MULTIWAN_MARK -d 61.47.0.0/16 -j MULTIWAN_ppp1
# PFW, Eco
$IPTABLES -t mangle -A MULTIWAN_MARK -d 61.91.0.0/16 -j MULTIWAN_ppp1
# HipStreet
$IPTABLES -t mangle -A MULTIWAN_MARK -d 58.97.0.0/16 -j MULTIWAN_ppp1
# Pangya, Rebirth, Pucca, Flyff
$IPTABLES -t mangle -A MULTIWAN_MARK -d 58.64.0.0/16 -j MULTIWAN_ppp1
# DotA, Getamped
$IPTABLES -t mangle -A MULTIWAN_MARK -d 210.86.0.0/16 -j MULTIWAN_ppp1
# LunaOnline, pko, water, SDO, Secret, RYL, cso
$IPTABLES -t mangle -A MULTIWAN_MARK -d 202.43.0.0/16 -j MULTIWAN_ppp1
# RAN
$IPTABLES -t mangle -A MULTIWAN_MARK -d 203.142.0.0/16 -j MULTIWAN_ppp1
# TalesRunner
$IPTABLES -t mangle -A MULTIWAN_MARK -d 203.113.0.0/16 -j MULTIWAN_ppp1
#---------------------------------------------------------------------------------------------
#-----------------------ไม่เข้ากับกฎข้อใดเลยตามเงื่อนไขด้านบน------------------------------------------
#ตรงนี้จะทำให้ Package ทุกอย่างที่ไม่เข้ากับกฎด้านบน ออก ppp0 แน่นอน 100% เพราะจะถูกมาร์กอย่างแน่นอน ดิ้นไม่หลุด
$IPTABLES -t mangle -A MULTIWAN_MARK -j MULTIWAN_ppp0
#---------------------------------------- THE END---------------------------------------------
# -------------------------------------------------------------
# Frox
# -------------------------------------------------------------
if [ -f /var/run/frox.pid ]; then
iptables -t nat -D PREROUTING -p tcp --destination-port 21 -j REDIRECT --to-port 2121 > /dev/null
iptables -t nat -I PREROUTING -p tcp --destination-port 21 -j REDIRECT --to-port 2121
# HipStreet for Frox
iptables -t nat -D PREROUTING -p tcp -d 58.97.46.0/24 --destination-port 8021 -j REDIRECT --to-port 2121 > /dev/null
iptables -t nat -I PREROUTING -p tcp -d 58.97.46.0/24 --destination-port 8021 -j REDIRECT --to-port 2121
fi
if [ -f /var/run/frox.pid ]; then
$IPTABLES -t nat -D PREROUTING -i $LANIF -p tcp --dport 21 -j REDIRECT --to-port 2121
$IPTABLES -t nat -A PREROUTING -i $LANIF -p tcp --dport 21 -j REDIRECT --to-port 2121
fi
source /etc/frox/rule
source /etc/frox/rule
# -------------------------------------------------------------
# Squid
# -------------------------------------------------------------
if [ -f /var/run/squid.pid ]; then
iptables -t nat -D PREROUTING -p tcp -m multiport --destination-port 80,5977,9898 -j REDIRECT --to-port 3128
iptables -t nat -I PREROUTING -p tcp -m multiport --destination-port 80,5977,9898 -j REDIRECT --to-port 3128
fi