filter | 過濾(數據過濾,默認) | INPUT/OUTPUT/FORWARD |
nat | 轉換(地址轉換) | PREROUTING/POSTROUTING/OUTPUT |
mangle | 校正(數據包打標記) | INPUT/OUTPUT/FORWARD/PREROUTING/POSTROUTING |
raw |
INPUT |
接受,發送方不一定是你,但接收方一定是你 |
OUTPUT | 發送,接受方不一定是你,但發送方一定是你 |
FORWARD | 轉發,接受方和發送方都不是你 |
PREROUTING | 路有前,指定在決定去向前處理 |
POSTROUTING | 路由後,指定在決定去向後處理 |
不考慮鏈 | mangle>nat>filter |
不考慮表 | PREROUTING>INPUT>(FORWARD)>OUTPUT>POSTROUTING |
centos7 iptables 替換firewalld
#systemctl stop firewalld
#systemctl disable firewalld
#yum -y install iptables*
#systemctl start iptables
#systemctl enable iptables
iptables | -t filter | -A INPUT | -p tcp --dport 23 | -j REJECT |
命令 | 4表 | 5鏈 | 數據描述 | 處理方式 |
-L |
查看規則(內建鏈,自帶表(原本自帶的)) #iptables -L INPUT 查看鏈 #iptables -L 查看錶 #iptablse -L -v 查看詳細,查看數據流量 #iptables -L -vx 查看精確流量 #iptables -L -n 查看數字 #iptables -L --lin(--line-numbers) 查看規則序號 |
-A |
在所選的鏈末尾添加規則 #iptables -A INPUT -p tcp --dport 22 -j ACCEPT #iptables -A INPUT -p tcp --dport 22:80 -j ACCEPT |
-I |
插入(不指定編號默認第1條) #iptables -I INPUT 1 -p tcp --dport 80 -j ACCEPT |
-R |
替換 #iptables -R INPUT 7 -p tcp --dport 80 -j ACCEPT |
-D |
刪除 #iptables -D INPUT -p tcp --dport 80 -j ACCEPT #iptables -D INPUT 7 |
-N |
新建鏈 #iptables -N pikachu #iptables -N PIKACHU #iptables -A INPUT -p tcp --dport 60000 -j pikachu #iptables -A INPUT -p tcp --dport 60001 -j PIKACHU |
-E |
改鏈的名 #iptables -E pikachu pokemon |
-X |
刪除鏈(0 references才能刪除) #iptables -X pokemon |
-F |
清空 #iptables -F INPUT 清空鏈 #iptables -F 清空表 |
-P |
修改默認規則 #iptables -P INPUT ACCEPT #iptables -P INPUT DROP |
-Z |
清空計數器 #iptables -Z INPUT |
|
-p |
匹配協議 tcp、udp、icmp、all #iptables -A INPUT ! -p tcp |
-s |
匹配來源地址 #iptables -A INPUT -s 192.168.146.201 |
-d | 匹配目的地址 |
-i |
匹配包進入的接口 #iptables -A INPUT -i ens33 |
-o |
匹配包送出的接口 #iptables -A OUTPUT -o ens33 |
端口掃描
#nmap 192.168.146.201
#namp 192.168.146.201 -Pn
sport | 匹配來源端口 |
dport | 匹配目的端口 |
tcp-flags |
匹配tcp的封包標記 SYN/ACK/FIN/RST/URG/PSH #iptables -A INPUT -p tcp --tcp-flags syn,ack,fin syn -j ACCEPT #iptables -A INPUT -p tcp --syn -j ACCEPT |
syn | 第二次不需要認證 |
sport | 匹配來源端口 |
dport |
匹配目的端口 |
multiport | 不連續多端口匹配 |
--source-port --destination-port --port #iptables -A INPUT -p tcp -m multiport --port 22,25 -j ACCEPT |
owner | 匹配所有 |
--uid-owner --gid-owner --pid-owner |
state | 匹配包的狀態 | --state |
ESTABLISHED | 已連接的數據包 |
NEW | 新數據包 |
RELATED |
相關聯數據包 |
INVALID | 錯誤的數據包 |
ACCEPT | 允許 | |
REJECT | 拒絕且返回錯誤信息 | |
DROP | 丟棄不返回錯誤信息 |
|
LOG | 記錄到/var/log/messages | |
DNAT | 目標地質轉換 | --to-destination |
MASQUERADE | 僞裝 | --to-ports |
SNAT | 來源地址轉換 | --to-source |
REDIRECT | 重定向 | --to-ports |
RETURN | 返回 | 返回上級 |
永久保存
#iptables-save > /etc/sysconfig/iptables
常用iptables規則
#iptables -A INPUT -p all -m state --state ESTABLISHED,RELATED -j ACCEPT
#iptables -A INPUT -p tcp --syn -m state --state NEW --dport 80 -j ACCEPT
#iptables -A INPUT -p tcp --syn -m state --state NEW --dport 25 -j ACCEPT
#iptables -A INPUT -p tcp --syn -m state --state NEW --dport 110 -j ACCEPT
#iptables -A INPUT -p tcp --syn -m state --state NEW --dport 22 -j ACCEPT
#iptables -A INPUT -p tcp --syn -m state --state NEW --dport 23 -j ACCEPT