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