iptables tips
iptables 下载(版本列表/历史版本):iptables Release of the netfilter/iptables project
iptables 表、链、规则图(默认filter表)
-
4 张表的分工:
filter 用于过滤,
nat 用于网络地址转换,
mangle 用于给数据包做标记以修改分组数据的特定规则,
raw 表则独立于Netfilter连接跟踪子系统。
3 种数据包经过的链(chain)
iptables 配置端口转发:端口转发(Linux/Windows)
清空所有规则
sudo iptables -F sudo iptables -X sudo iptables -t nat -F sudo iptables -t nat -X sudo iptables -t mangle -F sudo iptables -t mangle -X sudo iptables -P INPUT ACCEPT sudo iptables -P FORWARD ACCEPT sudo iptables -P OUTPUT ACCEPT
iptables 常见 target
ACCEPT # 允许数据包通过 DROP # 丢弃数据包 REJECT # 拒绝数据包通过 SNAT # 源地址转换 MASQUERADE # 地址欺骗,自动化的snat DNAT # 目标地址转换 REDIRECT # 重定向 LOG # 将数据包信息记录到 syslog 日志 QUEUE # 排队 RETURN # 返回
iptables 进行 url 过滤
# iptables 其实不是真正对 url 进行过滤,只是对传送的数据包内容进行过滤 # 而 http 头中含有目标 url # 关于 -m 参数,man iptables 只有几句简介, # 详细信息需要在 man iptables-extensions 里面进一步查询 # 开启 # 过滤掉含有 qq.com 的 url sudo iptables -A OUTPUT -m string --string "qq.com" --algo bm -j DROP # 如果本机是 squid 服务器,可以通过 INPUT 链过滤 sudo iptables -A INPUT -m string --string "qq.com" --algo bm -j DROP # 对于 nat 转发的内容过滤 sudo iptables -A FORWARD -m string --string "qq.com" --algo bm -j DROP # 查看 sudo iptables -nL --line-numbers # 移除(最后的数字为加 --line-numbers 参数后 num 显示的序号) sudo iptables -D OUTPUT 2
移除过滤规则示例
#查看 sudo iptables -t filter -nL --line-numbers #移除。最后的数字为加 --line-numbers 参数后 num 显示的序号 sudo iptables -t filter -D FORWARD 1
保存规则以便重启生效(Ubuntu 16.04)
sudo su iptables-save > /etc/iptables.rules cd /etc/network/if-pre-up.d/ vim iptables #>>> #! /bin/bash #>>> iptables-restore < /etc/iptables.rules chmod +x iptables
sudo iptables -I INPUT -p tcp -j REJECT --reject-with tcp-reset -m connlimit --connlimit-above 20 sudo iptables -I FORWARD -p tcp -j REJECT --reject-with tcp-reset -m connlimit --connlimit-above 10
下一代 Linux 防火墙 nftables
*** walker ***
转载于:https://blog.51cto.com/walkerqt/2068947