วันเสาร์ที่ 19 มิถุนายน พ.ศ. 2553

ระบบแยกเน็ต+เกม เด็ดขาด 100% (แจกBasicCode)

ระบบแยกเน็ต+เกม เด็ดขาด 100% (แจกBasicCode)


- เพื่อแบ่งปันโค๊ดดีๆ สร้างเสริมนิสัยการ Open Source ให้กับประชาชนคนไทย มิใช่หวังเอาแต่ได้ เอาผลกำไรอย่างเดียว

- เพื่อให้ร้านเน็ตที่มีทุนน้อย สามารถทำระบบเน็ตสองสายแบบประหยัดได้ด้วยตัวเอง (เบื้องต้น)



หมายเหตุ

========

- Basic Code ชุดนี้ จำเป็นต้องติดตั้ง Squid ด้วยนะคับ เพื่อการแยกเน็ตและเกมที่ถูกต้อง (เวอร์ชั่นใดก็ได้)

- ถ้ามีเกมใหม่ๆ หรือเกมที่ใช้ port แปลกๆ เข้ามา ท่านก็ต้องเขียน code เพิ่มเติมเองนะครับผม

(เดี๋ยวจะมาหาว่า code ของผมแยกไม่ขาดอีก )



2+1 WANs

=========

[ Net ]-----------------

|-------------[linux Server]---------. . .

[Games]----------------

- แบบนี้แยกเน็ต แยกเกมส์ อยู่คนละเส้น









โค๊ดอยู่ตรงนี้นะครับ




# ----- 2 WANs

# ----- change to you local IP

My_Local_Net="192.168.0.0/16"



# ----- Flush

iptables -t mangle -F



modprobe ip_nat_ftp

modprobe ip_tables

modprobe iptable_nat

modprobe ipt_conntrack

modprobe ip_conntrack

modprobe ip_conntrack_ftp

modprobe ip_conntrack_irc

modprobe ip_nat_irc

modprobe ip_nat_snmp_basic



# ----- set default policies

iptables -P INPUT ACCEPT

iptables -P FORWARD ACCEPT

iptables -P OUTPUT ACCEPT



# ----- set default policies

iptables -t nat -P PREROUTING ACCEPT

iptables -t nat -P POSTROUTING ACCEPT

iptables -t nat -P OUTPUT ACCEPT



# ----- set default policies

iptables -t mangle -P PREROUTING ACCEPT

iptables -t mangle -P POSTROUTING ACCEPT

iptables -t mangle -P INPUT ACCEPT

iptables -t mangle -P OUTPUT ACCEPT

iptables -t mangle -P FORWARD ACCEPT



# ----- IP sharing

# iptables -t nat -D POSTROUTING -o eth+ -j MASQUERADE > /dev/null

iptables -t nat -D POSTROUTING -s $My_Local_Net -o ppp+ -j MASQUERADE > /dev/null



# iptables -t nat -A POSTROUTING -o eth+ -j MASQUERADE

iptables -t nat -A POSTROUTING -s $My_Local_Net -o ppp+ -j MASQUERADE



# ----- Squid

if [ -f /var/run/squid.pid ]; then

iptables -t nat -D PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 3128 > /dev/null

iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 3128

fi



# ----- Frox

if [ -f /var/run/frox.pid ]; then

iptables -t nat -D PREROUTING -p tcp -m multiport --dport 21,5977,10100 -j REDIRECT --to-port 2121 > /dev/null

iptables -t nat -A PREROUTING -p tcp -m multiport --dport 21,5977,10100 -j REDIRECT --to-port 2121

fi



# ----- Msn Yahoo Icq Irc

if [ -f /var/run/imspector.pid ]; then

iptables -t nat -D PREROUTING -p tcp -m multiport --dports 1863,6667,5050,5190 -j REDIRECT --to-port 16667 > /dev/null

iptables -t nat -A PREROUTING -p tcp -m multiport --dports 1863,6667,5050,5190 -j REDIRECT --to-port 16667

fi



# ----- ----- ----- ----- ----- ----- ----- ----- #

# - START - multi wan 2 Line

# ----- ----- ----- ----- ----- ----- ----- ----- #



# ----- Note

# ppp0 = 0x8000 / ppp1 = 0x8001



# ----- Create our own CHAINS

# ----- Create CHECK_SERVICE_PORTS

iptables -t mangle -F CHECK_SERVICE_PORTS

iptables -t mangle -N CHECK_SERVICE_PORTS

iptables -t mangle -A CHECK_SERVICE_PORTS -p tcp -m multiport --dports 20:25,80,443,554,1863,2121,5050,5190,3128,3130,8080,16667 -j ACCEPT

# ----- Create CHECK_GAMES

iptables -t mangle -F CHECK_GAMES

iptables -t mangle -N CHECK_GAMES

# Asiasoft

iptables -t mangle -A CHECK_GAMES -d 203.144.0.0/16 -j MARK --set-mark 0x8000

#

iptables -t mangle -A CHECK_GAMES -d 203.146.0.0/16 -j MARK --set-mark 0x8000

# SF,LN2, Asiasoft International

iptables -t mangle -A CHECK_GAMES -d 61.90.0.0/16 -j MARK --set-mark 0x8000

# ProjectOne, DOMO

iptables -t mangle -A CHECK_GAMES -d 61.19.0.0/16 -j MARK --set-mark 0x8000

# Seal, HY, 3Kingdoms, 16

iptables -t mangle -A CHECK_GAMES -d 61.47.0.0/16 -j MARK --set-mark 0x8000

# PFW, Eco

iptables -t mangle -A CHECK_GAMES -d 61.91.0.0/16 -j MARK --set-mark 0x8000

# HipStreet

iptables -t mangle -A CHECK_GAMES -d 58.97.0.0/16 -j MARK --set-mark 0x8000

# Pangya, Rebirth, Pucca, Flyff

iptables -t mangle -A CHECK_GAMES -d 58.64.0.0/16 -j MARK --set-mark 0x8000

# DotA, Getamped

iptables -t mangle -A CHECK_GAMES -d 210.86.0.0/16 -j MARK --set-mark 0x8000

# LunaOnline, pko, water, SDO, Secret, RYL, cso

iptables -t mangle -A CHECK_GAMES -d 202.43.0.0/16 -j MARK --set-mark 0x8000

# RAN

iptables -t mangle -A CHECK_GAMES -d 203.142.0.0/16 -j MARK --set-mark 0x8000

# TalesRunner

iptables -t mangle -A CHECK_GAMES -d 203.113.0.0/16 -j MARK --set-mark 0x8000



# ----- START rule adding

# Firstly, set mark for packet to go to NET

iptables -t mangle -A PREROUTING -d ! $My_Local_Net -j MARK --set-mark 0x8001



# Service Ports

iptables -t mangle -A PREROUTING -s $My_Local_Net -d ! $My_Local_Net -j CHECK_SERVICE_PORTS

iptables -t mangle -A OUTPUT -s $My_Local_Net -d ! $My_Local_Net -j CHECK_SERVICE_PORTS

iptables -t mangle -A FORWARD -s $My_Local_Net -d ! $My_Local_Net -j CHECK_SERVICE_PORTS



# Games

# PREROUTING

iptables -t mangle -A PREROUTING -s $My_Local_Net -j CHECK_GAMES

# FORWARD

iptables -t mangle -A FORWARD -s $My_Local_Net -j CHECK_GAMES



# DotA (no need cache)

# Create DotA

iptables -t mangle -A PREROUTING -s $My_Local_Net -d ! $My_Local_Net -p tcp -m multiport --sports 7001:7200 -j MARK --set-mark 0x8000

iptables -t mangle -A OUTPUT -s $My_Local_Net -d ! $My_Local_Net -p tcp -m multiport --sports 7001:7200 -j MARK --set-mark 0x8000

iptables -t mangle -A FORWARD -s $My_Local_Net -d ! $My_Local_Net -p tcp -m multiport --sports 7001:7200 -j MARK --set-mark 0x8000

# Join DotA

iptables -t mangle -A PREROUTING -s $My_Local_Net -d ! $My_Local_Net -p tcp -m multiport --dports 6000:7500 -j MARK --set-mark 0x8000

iptables -t mangle -A OUTPUT -s $My_Local_Net -d ! $My_Local_Net -p tcp -m multiport --dports 6000:7500 -j MARK --set-mark 0x8000

iptables -t mangle -A FORWARD -s $My_Local_Net -d ! $My_Local_Net -p tcp -m multiport --dports 6000:7500 -j MARK --set-mark 0x8000



# No match, use Load Balance

iptables -t mangle -A PREROUTING -d ! $My_Local_Net -j ACCEPT



# ----- END rule adding



# ----- ----- ----- ----- ----- ----- ----- ----- #

# - END - multi wan 2 Line

# ----- ----- ----- ----- ----- ----- ----- ----- #



# ----- Load Balance

ppp1_addr=`ip route | grep ppp1 | head -1 | cut -f 1 -d " "`



ip route change default table 250 proto static nexthop via $ppp1_addr dev ppp1 weight 200




หากมีผลบุญกุศลใดๆ อันเกิดจากการแบ่งปันโค๊ดและให้ความรู้ของข้าพตั้งแต ่ในอดีตจนถึงปัจจุบัน

ขอให้ผลบุญนั้นจงตกอยู่แก่ตัวข้าพเจ้าทั้งหมด เพื่อความสุข ความเจริญ ไร้โรคาพยาธิ หมดทุกข์ หมดโศก

หมดโรค หมดภัย ของตัวข้าพเจ้า, ของบิดามารดาของข้าพเจ้า, ของคนรักของข้าพเจ้า, ของครอบครัวของข้าพเจ้า,

ของญาติสนิทมิตรสหายของข้าพเจ้า ตลอดจนเจ้ากรรมนายเวรทั้งหลายของข้าพเจ้าด้วย ขอให้ท่านทั้งหลายที่ข้าพเจ้าได้เอ่ยถึงมาทั้งหมดนี้

จงได้รับส่วนบุญส่วนกุศลที่ข้าพเจ้าได้อุทิศให้นี้ด้ วยเทอญ สาธุ

ไม่มีความคิดเห็น:

แสดงความคิดเห็น

หมายเหตุ: มีเพียงสมาชิกของบล็อกนี้เท่านั้นที่สามารถแสดงความคิดเห็น