利用 Iptables 和 squid 來達到限制 MSN 存取限制

No Comments »

這個文件是2004寫的,如果 MSN Server IP 有變更的話請自行 netstat 找出來,squid.conf 應用方式應該都是差不多。

方法一:只使用
iptables

echo “1″ >
/proc/sys/net/ipv4/ip_forward

/sbin/iptables -F

/sbin/iptables -X

/sbin/iptables -t nat -F

/sbin/iptables -t nat -X

/sbin/iptables -t nat -A POSTROUTING -s
192.168.100.0/24 -p tcp -d 207.46.104.0/24 -j DROP

/sbin/iptables -t nat -A POSTROUTING -s
192.168.100.0/24 -p tcp -d 207.46.110.0/24 -j DROP

/sbin/iptables -t nat -A POSTROUTING -s
192.168.100.0/24 -p tcp -d 211.72.248.0/24 -j DROP

/sbin/iptables -t nat -A POSTROUTING -s
192.168.100.0/24 -p tcp -d 220.130.117.0/24 -j DROP

/sbin/iptables -t nat -A POSTROUTING -s
192.168.100.0/24 -p tcp –dport 1863 -j DROP

/sbin/iptables -t
nat -A POSTROUTING -s 192.168.100.0/24 -o eth0 -j MASQUERADE

上面的 IP 是台灣 MSN ip 網段,port 1863 msn portiptables rules 是有順序的,先要檔掉之後再去做 IP 偽裝的部分,不然一旦先下了偽裝規則之後再來檔就不會生效了,如果只要用iptables 來檔msn 的話,一樣要將內部允許使用的 ip 先寫在前面

方法二:iptables + squid

一樣,將上面那一串當作預設的 iptables rules,接下來就是 squid 的設定了。

Iptables rules

/sbin/iptables -t nat -A PREROUTING -p
tcp -s 192.168.100.0/24 –dport 80 -j REDIRECT –to-ports 3128

因為要使用 proxy 代理,而且 msn 無法使用 1863 port 出去之後會使用80 port 出去,所以存取控制要寫在 squid.conf 裡面

/etc/squid/squid.conf

acl seednetoffice src 192.168.100.0/255.255.255.0 #定義所有的內部ip

acl SeednetofficeAllowMsnIP src “/etc/squid/SeednetofficeAllowMsnIP” #定義內部可以使用 msn ip

acl MsnIP src “/etc/squid/MsnIP” #MSN Server ip

acl msnmessenger url_regex -i gateway.dll #MSN 連結的網址 http://gateway.messenger.hotmail.com/gateway/gateway.dll?

http_access allow SeednetofficeAllowMsnIP msnmessenger #允許 SeednetofficeAllowMsnIP 存取 msnmessenger

http_access deny seednetoffice MsnIP #seednetoffice 不能存取 MnsIP

http_access deny seednetoffice msnmessenger #seednetoffice 不能存取 msnmessenger

http_access allow localhost

http_access allow seednetoffice #允許 seednetoffice 上網

http_access allow deny all

Squid.conf 的設定也是有順序的,以後只要有人要使用 MSN只要在 /etc/squid/SeednetofficeAllowMsnIP 加入 ip 即可,一行一個 ip

Post a Comment