10 ก.พ. 2553

CoovaChilli and Squid Transparent Proxy

Requiement:
Ubuntu 9.0.4 + LAMP server
Coova-Chilli 1.0.13
Freeradius 2.0

Step 1. ติดตั้ง Squid
apt-get install squid ติดตั้ง Squid ก่อนเลย
nano /etc/squid/squid.conf

# http_port 3128 comment

acl chillispot src 192.168.0.0/255.255.255.0
http_port 192.168.0.1:3128 transparent
http_access allow chillispot
บรรทัดล่างสุดเพิ่มข้อความ
visible_hostname administrator-desktop

คำอธิบาย
# http_port 3128 เป็นการยกเลิกการทำงานของโปรแกรมแบบไม่ทำ transparent
visible_hostname ต้องกำหนดชื่อเครื่องให้กับระบบหากไม่ใส่จะทำให้ไมสามารถสตาร์ตเซอร์วิสได้
acl chillispot src เป็นการกำหนดค่าเน็ตเวร์คของเครื่องขายคอมพิวเตอร์ที่จะอนุญาตให้ใช้งานผ่านโปรแกรม squid
http_port x.x.x.x.3128 transparent เป็นการกำหนดให้พอร์ต 3128 เป็น transparent proxy
http_access allow กำหนดค่า access control ให้เน็ตเวร์ควง chillispot สามารถใชงานผ่าน transparent proxy squid ได้

/etc/init.d/squid start สั่งให้โปรแกรม squid ทำงาน
netstat -lnt ตรวจสอบเซอร์วิสของ squid ว่าทำงานหรือไม่

Step 2. แก้ไข Firewall ชอง Coova เพื่อให้สามารถทำ Transparent proxy ได้
nano /etc/chilli/up.sh เรียกไพล์มาเพิ่มเติมกฎ ตามข้างล่างนี้
------------------------------------------

# may not have been populated the first time; run again

[ -e "/var/run/chilli.iptables" ] && sh /var/run/chilli.iptables 2>/dev/null

# force-add the final rule necessary to fix routing tables

iptables -A POSTROUTING -t nat -o $HS_WANIF -j MASQUERADE



iptables -P INPUT DROP
iptables -I INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT



iptables -I INPUT -p icmp --icmp-type 8 -s 0/0 -d 192.168.0.1 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -I OUTPUT -p icmp --icmp-type 0 -s 192.168.0.1 -d 0/0 -m state --state ESTABLISHED,RELATED -j ACCEPT

#SSH Accept from tun0
iptables -I INPUT -i tun0 -p tcp -m tcp --dport 22 --dst 192.168.0.1 -j ACCEPT

iptables -I INPUT -i eth0 -s 10.10.10.3 -p tcp -m tcp --dport 22 --dst 10.10.10.4 -j ACCEPT


iptables -I INPUT -p udp -s 0/0 --sport 1024:65535 -d 192.168.0.1 --dport 53 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -I INPUT -p udp -i tun0 -d 192.168.0.1 --dport 161 -j ACCEPT


iptables -t nat -I PREROUTING -i tun0 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128
iptables -I INPUT -i tun0 -p tcp -m tcp --dport 3128 --syn -j ACCEPT
iptables -t nat -I PREROUTING -p tcp -m tcp --dport 3128 -j DROP
iptables -t nat -I PREROUTING -p tcp -m tcp --dport 8080 -j DROP
iptables -t nat -I PREROUTING -p tcp -m tcp --dport 2121 -j DROP


iptables -t nat -I POSROUTING -o eth0 -j LOG

iptables -I INPUT -i lo -j ACCEPT
iptables -I INPUT -p tcp -m tcp --dport 443 --syn -j ACCEPT
iptables -I INPUT -p tcp -m tcp --dport 3990 --syn -j ACCEPT
iptables -I INPUT -p tcp -m tcp --dport 4990 --syn -j ACCEPT

iptables -I INPUT -p tcp -m tcp --dport 80 --syn -j ACCEPT
iptables -I INPUT -p tcp -m tcp --dport 53 --syn -j ACCEPT
iptables -I INPUT -p tcp -m tcp --dport 67:68 --syn -j ACCEPT
iptables -I INPUT -p tcp -m tcp --dport 3306 --syn -j ACCEPT

iptables -A INPUT -i tun0 -j DROP
----------------------------------------------------------------
reboot 1 ครั้ง

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

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