先簡單介紹下iptables
IPTABLES的幾點概念
1、容器:包含或者說屬于的關系
2、Netfilter/iptables是表的容器,iptables包含的各個表
(filter,NAT,MANGLE,RAW)
3、iptables的表tables又是鏈的容器
鏈chains:INPUT,OUTPUT,FORWARD,PREROUTING,POSTROUTING
4、鏈chains是規則容器:
5、規則Policy:一條條過濾的語句。
示例:
(1)禁止掉當前SSH端口,這里是52113。
[root@ipt ~]# iptables -t filter -A INPUT -p tcp –dport 52113 -j DROP
語法:
Usage:
iptables -t [table] -[AD] chain rule-specification [options]
具體命令:
iptables -A INPUT -p tcp –dport 52113 -j DROP
iptables -t filter -A INPUT -p tcp –dport 52113 -j DROP
注:
1.iptables默認用的就是filter表,因此,以上兩條命令等價。
2. 其中的INPUT DROP要大寫。
3. –jump -j target
target for rule (may load target extension)
基本的處理行為:ACCEPT(接受)、DROP(丟棄)、REJECT(拒絕)
比較:DROP好于REJECT
(2)禁ping
iptables -t filter -I INPUT -p icmp –icmp-type 8 -i eth0 -s 10.0.0.0/24 -j DROP
iptables -t filter -I INPUT -p icmp –icmp-type 8 -j DROP
本機地址:172.16.14.1,允許172.16.0.0/16網絡ping本機,但限制每分鐘請求不能超過20,每次并發不能超過6個
iptables -A INPUT -s 172.16.0.0/16 -d 172.16.14.1 -p icmp –icmp-type 8 -m limit –limit 20/min –limit-burst 6 -j ACCEPT
iptables -A OUTPUT -s 172.16.14.1 -d 172.16.0.0/16 -p icmp –icmp-type 0 -j ACCEPT
(3)!使用簡介
封掉3306端口
iptables -A INPUT -p tcp –dport 3306 -j DROP
匹配指定協議外的所有協議
iptables -A INPUT -p ! tcp
匹配主機源IP
iptables -A INPUT -s 10.0.0.14
iptables -A INPUT -s ! 10.0.0.14
匹配網段
iptables -A INPUT -s 10.0.0.0/24
iptables -A INPUT -s ! 10.0.0.0/24
匹配單一端口
iptables -A INPUT -p tcp –sport 53
iptables -A INPUT -p udp –dport 53
匹配指定端口之外的端口
iptables -A INPUT -p tcp –dport ! 22
iptables -I INPUT -p tcp ! –dport 22 -s 10.0.0.123 -j DROP
匹配單一端口
iptables -A INPUT -p tcp –sport 53
iptables -A INPUT -p udp –dport 53
匹配指定端口之外的端口
iptables -A INPUT -p tcp –dport ! 22
iptables -I INPUT -p tcp ! –dport 22 -s 10.0.0.123 -j DROP
iptables -I INPUT -p tcp –dport 52000:53000 -j DROP
匹配端口范圍:
iptables -A INPUT -p tcp –sport 22:80
iptables -I INPUT -p tcp –dport 21,22,23,24 -j ACCEPT===》錯誤語法
iptables -I INPUT -p tcp -m multiport –dport 21,22,23,24 -j ACCEPT
iptables -I INPUT -p tcp –dport 3306:8809 -j ACCEPT
iptables -I INPUT -p tcp –dport 18:80 -j DROP
匹配ICMP類型
iptables -A INPUT -p icmp –icmp-type 8
例:iptables -A INPUT -p icmp –icmp-type 8 -j DROP
iptables -A INPUT -p icmp -m icmp –icmp-type any -j ACCEPT
匹配指定的網絡接口
iptables -A INPUT -i eth0
iptables -A FORWARD -o eth0
匹配網絡狀態
-m state –state
NEW:已經或將啟動新的連接
ESTABLISHED:已建立的連接
RELATED:正在啟動新連接
INVALID:非法或無法識別的
FTP服務是特殊的,需要配狀態連接。
企業iptables面試題:自定義鏈處理syn攻擊
iptables -N syn-flood
iptables -A INPUT -i eth0 -syn -j syn-flood
iptables -A syn-flood -m limit -limit 5000/s -limit-burst 200 -j RETURN
iptables -A syn-flood -j DROP
將設置保存為文件(永久生效)
iptables-save >/etc/sysconfig/iptables
局域網共享的兩條命令方法:
方法1:適合于有固定外網地址的:
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j SNAT –to-source 10.0.0.7
(1)-s 192.168.1.0/24 辦公室或IDC內網網段。
(2)-o eth0 為網關的外網卡接口。
(3)-j SNAT –to-source 10.0.0.19 是網關外網卡IP地址。
方法2:適合變化外網地址(ADSL):
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -j MASQUERADE ?偽裝。
原創文章,作者:cnc,如若轉載,請注明出處:http://www.www58058.com/74595