iptables實例
iptables實例
單個規則實例
- iptables -F?
# -F 是清除的意思,作用就是把 FILTRE TABLE 的所有鏈的規則都清空
iptables -A INPUT -s 172.20.20.1/32 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
#在 FILTER 表的 INPUT 鏈匹配源地址是172.20.20.1的主機,狀態分別是NEW,ESTABLISHED,RELATED 的都放行。
iptables -A INPUT -s 172.20.20.1/32 -m state --state NEW,ESTABLISHED -p tcp -m multiport --dport 123,110 -j ACCEPT
# -p 指定協議,-m 指定模塊,multiport模塊的作用就是可以連續匹配多各不相鄰的端口號。完整的意思就是源地址是172.20.20.1的主機,狀態分別是NEW, ESTABLISHED,RELATED的,TCP協議,目的端口分別為123 和 110 的數據包都可以通過。
iptables -A INPUT -s 172.20.22.0/24 -m state --state NEW,ESTABLISHED -p tcp -m multiport --dport 123,110 -j ACCEPT
iptables -A INPUT -s 0/0 -m state --state NEW -p tcp -m multiport --dport 123,110 -j DROP
#這句意思為源地址是0/0的 NEW狀態的的TCP數據包都禁止訪問我的123和110端口。
iptables -A INPUT -s ! 172.20.89.0/24 -m state --state NEW -p tcp -m multiport --dport 1230,110 -j DROP
# "!"號的意思 取反。就是除了172.20.89.0這個IP段的地址都DROP。
iptables -R INPUT 1 -s 192.168.6.99 -p tcp --dport 22 -j ACCEPT
替換INPUT鏈中的第一條規則
- iptables -t filter -L INPUT -vn
以數字形式詳細顯示filter表INPUT鏈的規則
#-------------------------------NAT IP--------------------------------------
#以下操作是在 NAT TABLE 里面完成的。請大家注意。
- iptables -t nat -F
- iptables -t nat -A PREROUTING -d 192.168.102.55 -p tcp --dport 90 -j DNAT --to 172.20.11.1:800
#-A PREROUTING 指定在路由前做的。完整的意思是在 NAT TABLE 的路由前處理,目的地為192.168.102.55 的 目的端口為90的我們做DNAT處理,給他轉向到172.20.11.1:800那里去。
- iptables -t nat -A POSTROUTING -d 172.20.11.1 -j SNAT --to 192.168.102.55
#-A POSTROUTING 路由后。意思為在 NAT TABLE 的路由后處理,凡是目的地為 172.20.11.1 的,我們都給他做SNAT轉換,把源地址改寫成 192.168.102.55 。
- iptables -A INPUT -d 192.168.20.0/255.255.255.0 -i eth1 -j DROP
- iptables -A INPUT -s 192.168.20.0/255.255.255.0 -i eth1 -j DROP
- iptables -A OUTPUT -d 192.168.20.0/255.255.255.0 -o eth1 -j DROP
- iptables -A OUTPUT -s 192.168.20.0/255.255.255.0 -o eth1 -j DROP
# 上例中,eth1是一個與外部Internet相連,而192.168.20.0則是內部網的網絡號,上述規則用來防止IP欺騙,因為出入eth1的包的ip應該是公共IP
- iptables -A INPUT -s 255.255.255.255 -i eth0 -j DROP
- iptables -A INPUT -s 224.0.0.0/224.0.0.0 -i eth0 -j DROP
- iptables -A INPUT -d 0.0.0.0 -i eth0 -j DROP
# 防止廣播包從IP代理服務器進入局域網:
- iptables -A INPUT -p tcp -m tcp --sport 5000 -j DROP
- iptables -A INPUT -p udp -m udp --sport 5000 -j DROP
- iptables -A OUTPUT -p tcp -m tcp --dport 5000 -j DROP
- iptables -A OUTPUT -p udp -m udp --dport 5000 -j DROP
# 屏蔽端口 5000
- iptables -A INPUT -s 211.148.130.129 -i eth1 -p tcp -m tcp --dport 3306 -j DROP
- iptables -A INPUT -s 192.168.20.0/255.255.255.0 -i eth0 -p tcp -m tcp --dport 3306 -j ACCEPT
- iptables -A INPUT -s 211.148.130.128/255.255.255.240 -i eth1 -p tcp -m tcp --dport 3306 -j ACCEPT
- iptables -A INPUT -p tcp -m tcp --dport 3306 -j DROP
# 防止 Internet 網的用戶訪問 MySQL 服務器(就是 3306 端口)
- iptables -A FORWARD -p TCP --dport 22 -j REJECT --reject-with tcp-reset
#REJECT, 類似于DROP,但向發送該包的主機回復由--reject-with指定的信息,從而可以很好地隱藏防火墻的存在。iptables實例說明介紹。
【編輯推薦】