這篇文章將為大家詳細(xì)講解有關(guān)如何進(jìn)行iptables的實戰(zhàn)分析,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關(guān)知識有一定的了解。
創(chuàng)新互聯(lián)成都網(wǎng)站建設(shè)按需定制設(shè)計,是成都網(wǎng)站營銷推廣公司,為成都報廢汽車回收提供網(wǎng)站建設(shè)服務(wù),有成熟的網(wǎng)站定制合作流程,提供網(wǎng)站定制設(shè)計服務(wù):原型圖制作、網(wǎng)站創(chuàng)意設(shè)計、前端HTML5制作、后臺程序開發(fā)等。成都網(wǎng)站建設(shè)熱線:13518219792
案例
公司有三個部門
工程部 2.10-2.20
軟件部 2.21-2.30
經(jīng)理辦 2.31-2.40
上班時間 (周一___周五 08:20:00)
工程部 ftp 下班后無限制
軟件部 http 不允許非法站點sina ,不允許使用迅雷,連接數(shù)最多3個,不允許qq,不允許下載電影,不允許瀏覽圖片,下班后無限制
經(jīng)理辦公室 http qq 都可以,下班后無限制
dmz區(qū)域www服務(wù)器進(jìn)行發(fā)布
使用iptable+l7 +squid+透明代理實現(xiàn)
分析:
對于本實驗可在上班時使用squid透明代理以方便設(shè)置用戶上網(wǎng)行為控制,同時使用iptables輔助限制用戶上網(wǎng)行為. 下班時候采用NAT轉(zhuǎn)換實現(xiàn)無限制. Squid使用透明代理并設(shè)置監(jiān)聽地址和端口,各種上網(wǎng)規(guī)則. Iptables 使用較為嚴(yán)格的控制默認(rèn)設(shè)置為DROP
實驗拓補圖如下:
基本設(shè)置
設(shè)置 SSHD 和 loopback 接口的通過
[root@localhost ~]# iptables -t filter -A INPUT -s 192.168.101.130 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
[root@localhost ~]# iptables -t filter -A OUTPUT -d 192.168.101.130 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT
[root@localhost ~]# iptables -t filter -A INPUT -i lo -j ACCEPT
[root@localhost ~]# iptables -t filter -A OUTPUT -o lo -j ACCEPT
[root@localhost ~]# iptables -P INPUT DROP
[root@localhost ~]# iptables -P OUTPUT DROP
[root@localhost ~]# iptables -P FORWARD DROP
[root@localhost ~]# ping 127.0.0.1
測試 ping 127.0.0.1
PING 127.0.0.1 (127.0.0.1) 56(84) bytes of data.
64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.436 ms
64 bytes from 127.0.0.1: icmp_seq=2 ttl=64 time=0.045 ms
工程部配置如下 :
配置NAT eth0 出口的NAT 轉(zhuǎn)換
[root@localhost ~]# iptables –t nat –A POSTROUTING -m iprange --src-range 192.168.2.10-192.168.2.20 -m time --weekdays Mon,Tue,Wed,Thu,Fri --timestart 08:00 --timestop 20:00 -p tcp --dport 21 -o eth0 -j MASQUERADE
設(shè)置FORWARD 為ACCEPT
[root@localhost ~]# iptables -t filter -A FORWARD -m iprange --src-range 192.168.2.10-192.168.2.20 -m time --weekdays Mon,Tue,Wed,Thu,Fri --timestart 08:00 --timestop 20:00 -p tcp --dport 21 -j ACCEPT
[root@localhost ~]# iptables -t filter -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
載入模塊
[root@localhost ~]# modprobe ip_nat_ftp
軟件部配置如下 :
配置80 端口的重定向為3128
[root@localhost ~]# iptables -t nat -A PREROUTING -m iprange --src-range 192.168.2.21-192.168.2.40 -m time --weekdays Mon,Tue,Wed,Thu,Fri --timestart 08:00 --timestop 20:00 -p tcp --dport 80 -j REDIRECT --to-ports 3128
設(shè)置3128 INPUT 為ACCEPT
[root@localhost ~]# iptables -t filter -A INPUT -p tcp --dport 3128 -j ACCEPT
[root@localhost ~]# iptables -t filter -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
允許HTTP 和DNS 出去
[root@localhost ~]# iptables -t filter -I OUTPUT 3 -p tcp --dport 80 -j ACCEPT
[root@localhost ~]# iptables -t filter -I OUTPUT 3 -p udp --dport 53 -j ACCEPT
[root@localhost ~]# iptables -t filter -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
設(shè)置客戶機DNS 的NAT 轉(zhuǎn)換
[root@localhost ~]# iptables -t nat -A POSTROUTING -m iprange --src-range 192.168.2.21-192.168.2.40 -m time --weekdays Mon,Tue,Wed,Thu,Fri --timestart 08:00 --timestop 20:00 -p udp --dport 53 -o eth0 -j MASQUERADE
設(shè)置客戶機的DNS 查詢可通過
[root@localhost ~]# iptables -t filter -I FORWARD 2 -m iprange --src-range 192.168.2.21-192.168.2.40 -p udp --dport 53 -j ACCEPT
限制迅雷和QQ 聊天
[root@localhost ~]# iptables -t filter -I FORWARD 3 -m iprange --src-range 192.168.2.21-192.168.2.30 -m time --weekdays Mon,Tue,Wed,Thu,Fri --timestart 08:00 --timestop 20:00 -m layer7 --l7proto xunlei -j DROP
[root@localhost ~]# iptables -t filter -I FORWARD 3 -m iprange --src-range 192.168.2.21-192.168.2.30 -m time --weekdays Mon,Tue,Wed,Thu,Fri --timestart 08:00 --timestop 20:00 -m layer7 --l7proto qq -j DROP
設(shè)置 squid 代理
修改 squid 的配置文檔 設(shè)置監(jiān)聽地址和端口并添加如下規(guī)則
927 http_port 192.168.2.1:3128 transparent
591 acl badip src 192.168.2.21-192.168.2.30/255.255.255.255
592 acl worktime time 08:00-20:00
593 acl badsite url_regex -i sina
594 acl badcont urlpath_regex -i \.jpg$
595 acl conn3 maxconn 3
596 http_access deny badip worktime badsite
597 http_access deny badip worktime badcont
598 http_access deny badip conn3
設(shè)置下班無限制 使用NAT 并允許iptables 規(guī)則為通過
[root@localhost ~]# iptables -t nat -A POSTROUTING -s 192.168.2.0/24 -m time --weekdays Mon,Tue,Wek,Thu,Fri --timestart 20:01 --timestop 23:59 -o eth0 -j MASQUERADE
[root@localhost ~]# iptables -t nat -A POSTROUTING -s 192.168.2.0/24 -m time --weekdays Mon,Tue,Wek,Thu,Fri --timestart 00:00 --timestop 07:59 -o eth0 -j MASQUERADE
[root@localhost ~]# iptables -t filter -I FORWARD 5 -s 192.168.2.0/24 -m time --weekdays Mon,Tue,Wek,Thu,Fri --timestart 00:00 --timestop 07:59 -j ACCEPT
[root@localhost ~]# iptables -t filter -I FORWARD 5 -s 192.168.2.0/24 -m time --weekdays Mon,Tue,Wek,Thu,Fri --timestart 20:01 --timestop 23:59 -j ACCEPT
服務(wù)器設(shè)置
使用DNAT 并設(shè)置iptables 規(guī)則為通過防火墻
[root@localhost ~]# iptables -t nat –A PREROUTING -d 192.168.101.25 -p tcp --dport 80 -j DNAT --to 192.168.3.100
[root@localhost ~]# iptables -t filter -I FORWARD 8 -d 192.168.3.100 -p tcp --dport 80 -j ACCEPT
配置 192.68.3.100 的客戶機的Apache
[root@localhost ~]# yum -y install httpd
[root@localhost ~]# vim /var/www/html/index.html
Hi ~~ This is my web!
[root@localhost ~]# service httpd start
配置截圖 :
關(guān)于如何進(jìn)行iptables的實戰(zhàn)分析就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。