iptables 是一个基于内核空间 netfilter 的用户空间工具,用于配置 Linux 内核的防火墙规则。
钩子函数
PREROUTING: 在进入 IP 路由之前触发,就意味着只要接收到的数据包,无论是否真的发往本机,也都会触发这个钩子。它一般是用于目标网络地址转换(Destination NAT,DNAT)。
INPUT: 报文经过 IP 路由后,如果确定是发往本机的,将会触发这个钩子,它一般用于加工发往本地进程的数据包。
FORWARD: 报文经过 IP 路由后,如果确定不是发往本机的,将会触发这个钩子,它一般用于处理转发到其他机器的数据包。
OUTPUT: 从本机程序发出的数据包,在经过 IP 路由前,将会触发这个钩子,它一般用于加工本地进程的输出数据包。
POSTROUTIN: 从本机网卡出去的数据包,无论是本机的程序所发出的,还是由本机转发给其他机器的,都会触发这个钩子,它一般是用于源网络地址转换(Source NAT,SNAT)
规则表
raw 表: 用于去除数据包上的连接追踪机制(Connection Tracking)。
mangle 表: 用于修改数据包的报文头信息,比如服务类型(Type Of Service,ToS)、生存周期(Time to Live,TTL)。
nat 表: 用于修改数据包的源或者目的地址等信息,典型的应用是网络地址转换(Network Address Translation)。
filter 表: 用于对数据包进行过滤,控制到达某条链上的数据包是继续放行、直接丢弃或拒绝(ACCEPT、DROP、REJECT),典型的应用是防火墙。
security 表: 用于在数据包上应用SELinux,这张表并不常用。
命令格式
iptables -t 表 命令 规则链 规则
iptables命令 -L 代表查看 -A 代表插入到尾部, -D 删除规则 -F 清空规则
- DROP:直接将数据包丢弃。
- REJECT:给客户端返回 Connection Refused 或 Destination Unreachable 报文。
- RETURN:跳出当前链,该链里后续的规则不再执行。
- ACCEPT:同意数据包通过,继续执行后续的规则。
- JUMP:跳转到其他用户自定义的链继续执行。
- REDIRECT:在本机做端口映射。
- MASQUERADE:地址伪装,自动用修改源或目标的 IP 地址来做 NAT。
# snat
iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -j MASQUERADE
# dnat
iptables -t nat -A PREROUTING -p tcp -d 80 -j DNAT --to-destination 容器ip:port
# 过滤
iptables -t filter -A INPUT -p tcp -s 192.168.10.0/24 -j DROP
# 查表
iptables --table filter --list --line-numbers
# 删除规则
iptables -t filter -D INPUT 1
ipset
ipset 把众多ip地址段单独汇集为一个集合,生成唯一的hash值
#!/bin/bash
ipset create asan hash:net -exist
# ipset list asan
ipset flush asan
[-f "in-aggregated.zone"] && rm in-aggregated.zone
wget https://www.ipdeny.com/ipblocks/data/aggregated/in-aggregated.zone
if [ $? -eq 0 ]
then
echo "************download*****************"
for address in `cat in-aggregated.zone`
do
ipset add asan $address
done
else
echo "*******Failed to download************"
fi
iptables --table filter --append INPUT --match set --match-set asan src --jump DROP
ipset save > /etc/rules.ipset
iptables-save > /etc/rules.iptables
ipset restore < /etc/rules.ipset -exist
iptables-restore < /etc/rules.iptables -n
标签:iptables,ipset,数据包,--,钩子,本机
From: https://www.cnblogs.com/cheng-sir/p/18014601