1. 程式人生 > >網路之 Iptables總結

網路之 Iptables總結

 

查詢
iptables -L 預設 filter表
iptables -L -t filter
iptables -L -t nat
iptables -L -t mangle

Filter表
service iptables start
service iptables stop
iptables -t filter -A INPUT -j DROP

Centos6
service iptables save 儲存規則
儲存規則的路徑:/etc/sysconfig/iptables
Centos7
iptables-save > /tmp/iptables.rules 儲存
iptables-restore /tmp/iptables.rules 恢復
iptables -t filter -F 清除filter表所有規則
iptables -t filter -F INPUT 清除filter表INPUT鏈所有規則
iptables -t filter -A INPUT -j DROP 新增規則
iptables -t filter -A INPUT -j ACCEPT
iptables -t filter -I INPUT 1 -j ACCEPT 指定位置插入規則
iptables -t filter -I INPUT 2 -j ACCEPT
iptables -t filter -R INPUT 3 -j ACCEPT 修改規則
iptables -t filter -D INPUT -j ACCEPT 刪除規則
iptables -t filter -D INPUT 3 指定刪除規則的行號
iptables -L --line-numbers 查詢規則行號
iptables -t filter -P INPUT DROP 修改預設值

根據IP地址
270/557
iptables -t filter -A INPUT -s 172.16.110.92 -j DROP
iptables -t filter -A INPUT -d 172.16.110.1 -j DROP
iptables -t filter -A INPUT ! -s 172.16.110.92 -j DROP
iptables -t filter -A INPUT -s 172.16.110.0/24 -j DROP
eg:
禁止你的同桌對你的訪問(在INPUT和OUTPUT各寫出規則) 幾條?
iptables -A INPUT -s 172.16.110.92 -j DROP
iptables -A OUTPUT -d 172.16.110.92 -j DROP
根據協議
iptables -A INPUT -s 172.16.110.92 -p icmp -j DROP
iptables -A INPUT -s 172.16.110.92 -p tcp -j DROP
iptables -A INPUT -s 172.16.110.92 ! -p tcp -j DROP
根據埠
iptables -A INPUT -s 172.16.110.92 -p tcp --dport 22 -j DROP
iptables -A INPUT -s 172.16.110.92 -p tcp ! --dport 22 -j DROP
iptables -A INPUT -s 172.16.110.92 -p tcp --dport 22:80 -j DROP
iptables -A INPUT -s 172.16.110.92 -p tcp --dport 22: -j DROP 22號埠到最後埠
iptables -A INPUT -s 172.16.110.92 -p tcp --dport :80 -j DROP 0到80埠
eg:
禁止同桌訪問你的80埠在(INPUT 和 OUTPUT)
iptables -A INPUT -s 172.16.110.92 -p tcp --dport 80 -j DROP
iptables -A OUTPUT -d 172.16.110.92 -p tcp --sport 80 -j DROP
eg
1.只允許別人訪問你的80埠
iptables -A INPUT -p tcp ! --dport 80 -j DROP
2.拒絕所有人登入你的sshd服務
iptables -A INPUT -p tcp --dport 22 -j DROP
3.只允許別人訪問的ftp服務
埠模式(主動)
iptables -A INPUT -p tcp --dport 20:21 -j ACCEPT
iptables -A INPUT -j DROP
被動
vim /etc/vsftpd/vsftpd.conf
pasv_min_port=10000
pasv_max_port=11000
service vsftpd restart
iptables -A INPUT -p tcp --dport 21 -j ACCEPT
iptables -A INPUT -p tcp --dport 10000:11000 -j ACCEPT
iptables -A INPUT -j DROP

根據網絡卡
iptables -A INPUT -i eth0 -j DROP
iptables -A OUTPUT -o eth0 -j DROP

自定義鏈
iptables -N lian1 建立
iptables -A INPUT -j lian1 新增連結
iptables -A lian1 -j DROP 自定義鏈動作
iptables -E lian1 newlian 修改鏈名
刪除自已定義鏈
iptables -D INPUT 1 清除連結
iptables -F newlian 刪除自定義鏈內規則
iptables -X newlian 刪除自定義鏈
動作 -j
DROP
ACCEPT
自定以鏈
REJECT
271/557
LOG
iptables -A INPUT -j LOG
埠模組multiport(最多匹配15個埠)
目標埠匹配
iptables -A INPUT -p tcp -m multiport --dport 20,21,23,25,80 -j DROP
源埠匹配
iptables -A OUTPUT -p tcp -m multiport --sport 20,21,23,25,80 -j DROP
埠匹配
iptables -A OUTPUT -p tcp -m multiport --port 20,21,23,25,80 -j DROP
iptables模組 狀態防火牆

SNAT表(地址裝換表)

172.16.110.2----------->172.16.110.1
10.10.10.1---------------------------10.10.10.200
1.客戶端:閘道器
route add default gw 172.16.110.1
2.SNAT開轉發
echo 1 > /proc/sys/net/ipv4/ip_forward
寫防火牆規則
iptables -t nat -A POSTROUTING -s 172.16.110.0/24 -j SNAT --to 10.10.10.1
iptables -t nat -A POSTROUTING -s 172.16.110.0/24 -j MASQUERADE
172.16.110.2-----------------172.16.110.1
客戶端 10.10.10.1<----------------10.10.10.200
測試:
elinks --dump 10.10.10.200

DNAT
1.伺服器:閘道器
route add default gw 10.10.10.1
2.DNAT開轉發
echo 1 > /proc/sys/net/ipv4/ip_forward
防火牆規則
iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to 10.10.10.200
測試
elinsk --dump 172.16.110.1