iptables 下载(版本列表/历史版本):iptables Release of the netfilter/iptables project
iptables 表、链、规则图(默认filter表)
4 张表的分工:
filter 用于过滤,
nat 用于网络地址转换,
mangle 用于给数据包做标记以修改分组数据的特定规则,
raw 表则独立于Netfilter连接跟踪子系统。
3 种数据包经过的链(chain)
iptables 配置端口转发:端口转发(Linux/Windows)
iptables 常见 target
1
2
3
4
5
6
7
8
9
10
|
ACCEPT
# 允许数据包通过
DROP
# 丢弃数据包
REJECT
# 拒绝数据包通过
SNAT
# 源地址转换
MASQUERADE
# 地址欺骗,自动化的snat
DNAT
# 目标地址转换
REDIRECT
# 重定向
LOG
# 将数据包信息记录到 syslog 日志
QUEUE
# 排队
RETURN
# 返回
|
iptables 进行 url 过滤
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
# 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
|
保存规则以便重启生效(Ubuntu 16.04)
1
2
3
4
5
6
7
|
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
|
1
2
|
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
|
*** walker ***
本文转自walker snapshot博客51CTO博客,原文链接http://blog.51cto.com/walkerqt/2068947如需转载请自行联系原作者
RQSLT