提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
介绍
iptables:是Linux防火墙在用户空间的管理工具
iptables是由表(“三表五链”)组成(在编写iptables规则时,要先指定表,再指定链)
组成
(三表)
filter表:负责过滤数据包。(规则链:input , outpt , forward)
nat表:用于网络地址转换(ip , 端口)。(规则链:prerouting , postrouting , output)
mangle表:用于修改数据包,流量整形,给数据包打标识。(规则链:INPUT , OUTPUT , forward , POSTROUTING , PREROUTING)
(五链)
input:匹配目标IP是本机的数据包。(注:进来的流量)
output: 出口数据包。
forward: 匹配流经本机的数据包。(注:转发的流量)
prerouting: 修改目的地址,用于做DNAT。(注:路由前的流量)
postrouting: 修改源地址,用于做SNAT。(注:路由后的流量)
常见命令
查看规则:ipatbles -L
查看已添加的iptables规则:iptables -L -n -v
将所有iptables以序号标记显示:iptables -L -n --line-numbers
删除规则:iptables -D 规则链 序号
语法格式
[root@sdf /]#ipatbles [选择规则链] [选择防火墙规则][选择匹配服务] -j [选择触发条件]
常见的选项与各自功能
选项 功能
-A 添加防火墙规则
-D 删除防火墙规则
-I 插入防火墙规则
-F 清除防火墙规则
-R 列出添加防火墙规则
-Z 替换防火墙规则
-P 清空防火墙数据表统计信息
-L 设置链默认规则
常见的匹配参数与各自规则
参数 功能
-p 匹配规则
-s 匹配源地址
-d 匹配目标地址
-i 匹配入站网卡接口
-o 匹配出站网卡接口
-m 使用扩展模块进行数据包匹配
--sport 匹配源端口
--dport 匹配目标端口
--src-range 匹配源地址范围
--dst-range 匹配目标地址范围
--limit 匹配数据表数率
--mac-source 匹配源MAC地址
--sports 匹配源端口
--dports 匹配目标端口
--stste 匹配状态(INBALID.ESTABLISHED.NEW.RELATED)
--string 匹配应用层字串
-m mac --mac-source 匹配的网络接口的硬件地址
触发动作与各种功能
触发动作 功能
ACCEPT 允许数据包通过
DROP 丢弃数据包
REJECT 拒绝数据包通过
LOG 将数据包信息记录syslog日志
DNAT 目标地址转换
SNAT 源地址转换
MASQUERADE 地址欺骗
REDIRCT 重定向
匹配规则分类
(1)源地址匹配
a.ip地址匹配
b.网段匹配
c.反向匹配
(2)目的地址匹配
(3)协议匹配
(4)网卡匹配
(5)扩展匹配
a.反向匹配
(!–dport 2 目的端口不等于2)
b.区间匹配
(–dport 2:4 目的端口在[2,4]之间)
c.连续ip匹配
b.报文内容侵权
(–aigo 指定匹配算法。[算法:bm kmp])
(–string 需要匹配的字符串)
e.时间段匹配
time 模块参数
--timestart 起始时间
--timestop 结束时间
--weekdays 星期几
--monthdays 一个月的第几天 (可以使用取反)
--datestart 一个月的起始天数
--dateend 一个月的结束天数
f.连接数匹配
connlimit模块参数
--connlimit-above 连接数超过X时
--connlimit-upto 等于X
g.报文速率限制
limit模块参数
--limit-burst 数量为X
--limit 数率为X(/secnd,/minute,/hour,/day)表示:秒/分/时/天
l.icmp协议限制
j.请求state限制