1. 程式人生 > 實用技巧 >iptables+squid實驗應用層過濾

iptables+squid實驗應用層過濾

案例:

公司有三個部門

工程部門 2.10--2.20

軟體部門 2.21-2.30

經理辦 2.31-2.40

上班時間 (週一---週五 082000

工程部門 ftp 下班後無限制

軟體部門 http 不允許非法站點sina ,不允許使用迅雷 ,連線數 最多3個不允許聊天 不允許下載電影,不允許瀏覽圖片 下班後無限制

經理辦公室 http qq 都可以,下班後無限制

dmz區域www伺服器進行釋出

iptable+l7 +squid +透明代理

分析:

1:把規則設定成全部禁止之前要讓你這臺機器可以ssh上不然自己會掉,還要讓你機器的內部可以通訊
Iptables –t filter –A INPUT –s 192.168.101.80 –p tcp –-dport 22 –m state –-state NEW,ESTABLISHED –j ACCEPT

Iptables –t filter –A OUTPUT –d192.168.101.80 –p tcp –-sport 22 –m state –-state ESTABLISHED –j ACCEPT
Iptables –t filter -A INPUT –i lo –j ACCEPT
Iptables –t filter -A OUTPUT –o lo –j ACCEPT

2:把所有規則設定成全部禁止的
Iptables –P INPUT DROP
Iptables –P OUTPUT DROP
Iptables –P FORWARD DROP
3:先寫軟體部門的
首先讓軟體部門可以上網(通過透明代理伺服器),然後再進行限制

Iptables –t nat –A PREROUTING –m iprange –-src-range 192.168.2.21-192.168.2.30 –m time –-timestart 08:00 –timestop 20:00 –p tcp --dport 80 –j REDIRECT –-to-ports 3128
Iptables –t filter –A INPUT –p tcp --dport 3128 –j ACCEPT
Iptables –t filter –A OUTPUT –m state –-state ESTABLISHED,RELATED –j ACCEPT
Iptables –t filter –A OUTPUT –p tcp –-dport 80 –j ACCEPT
Iptables –t filter –A OUTPUT –p udp –-dport 53 –j ACCEPT
Iptables –t filter –A INPUT –m state –-state ESTABLISHED,RELATED –j ACCEPT
Iptables –t filter –A FORWARD –m iprange –src-range 192.168.2.21-192.168.2.30 –p udp –-dport 53 –m time –-timestart 08:00 –-timestop
20:00 –o eth0 –j ACCEPT
Iptables –t filter –A FORWARD –m state –-state ESTABLISHED,RELATED –j ACCEPT
Iptables –t nat –A POSTROUTING –s 192.168.2.0/24 –o eth0 –j MASQUERADE
4:下面對軟體部進行訪問控制,首先用squid進行控制
Vim /etc/squid/squid.conf
首先做透明代理
900行左右的http_port 3128後面加上transparent
裡面插入
acl ruanjianbu src 192.168.2.21-192.168.2.30/255.255.255.255
411 acl worktime time M T W H F 08:00-20:00
412 acl badsite url_regex -i sina
413 acl badcont urlpath_regex -i \.jpg$
414 acl maxconn maxconn 200
415 http_access deny ruanjianbu worktime badsite
接著用iptables對qq和xunlei控制
iptables -t filter -A FORWARD -m iprange --src-range 192.168.2.21-192.168.2.30 -m time --timestart 08:00 --timestop 20:00 -m layer7 --l7proto qq -j DROP
iptables -t filter -A FORWARD -m iprange --src-range 192.168.2.21-192.168.2.30 -m time --timestart 08:00 --timestop 20:00 -m layer7 --l7proto xunlei -j DROP
5:下面開始寫經理辦的
iptables -t nat -A PREROUTING -m iprange --src-range 192.168.2.31-192.168.2.40 -p tcp --dport 80 -j REDIRECT --to-ports 3128
iptables -t filter -A FORWARD -m iprange --src-range 192.168.2.31-192.168.2.40 -p udp --dport 53 -o eth0 -j ACCEPT
iptables -t filter -A FORWARD -m iprange --src-range 192.168.2.31-192.168.2.40 -m time --timestart 08:00 --timestop 20:00 -m layer7 --l7proto qq -j ACCEPT
6:最後寫工程部的
iptables -t nat -A POSTROUTING -m iprange --src-range 192.168.2.10-192.168.2.20 -m time --timestart 08:00 --timestop 20:00 -p tcp --dport 21 -j MASQUERADE
iptables -t filter -A FORWARD -m iprange --src-range 192.168.2.10-192.168.2.20 -m time --timestart 08:00 --timestop 20:00 -p tcp --dport 21 -j ACCEPT
modprobe ip_nat_ftp載入ftp模組
7:對下班時候做控制
iptables -t filter -A FORWARD -s 192.168.2.0/24 -m time --timestart 20:01 --timestop 23:59 -j ACCEPT
iptables -t filter -A FORWARD -s 192.168.2.0/24 -m time --timestart 00:00 --timestop 07:59 -j ACCEPT
iptables -t nat -A PREROUTING -m time --timestart 20:01 --timestop 23:59 -p tcp --dport 80 -j REDIRECT --to-ports 3128
iptables -t nat -A PREROUTING -m time --timestart 00:00 --timestop 07:59 -p tcp --dport 80 -j REDIRECT --to-ports 3128
iptables -t nat -A POSTROUTING -m time --timestart 20:01 --timestop 23:59 -o eth0 -j MASQUERADE
iptables -t nat -A POSTROUTING -m time --timestart 00:00 --timestop 07:59 -o eth0 -j MASQUERADE
8:寫DMZ區域的(用遠端登陸模擬)
iptables -t nat -A PREROUTING -d 192.168.101.40 -p tcp --dport 3389 -j DNAT --to 192.168.3.100
iptables -t filter -A FORWARD -d 192.168.3.100 -p tcp --dport 3389 -j ACCEPT

1:把規則

1:把規則設定成

轉載於:https://blog.51cto.com/yujinbang/738702