iptables防火墙

iptables防火墙

iptables命令 是Linux上常用的防火墙软件,位置位于/sbin/iptables,用来管理防火墙规则的工具

iptables结构
iptables包含四表五链。
默认包括4个规则表
• raw表:确定是否对该数据包进行状态跟踪
• mangle表:为数据包设置标记
• nat表:修改数据包中的源、目标IP地址或端口
• filter表:确定是否放行该数据包(过滤)

• 规则链
• 规则的作用:对数据包进行过滤或处理
• 链的作用:容纳各种防火墙规则
• 链的分类依据:处理数据包的不同时机
• 默认包括5种规则链
• INPUT:处理入站数据包
• OUTPUT:处理出站数据包
• FORWARD:处理转发数据包
• POSTROUTING链:在进行路由选择后处理数据包
• PREROUTING链:在进行路由选择前处理数据包

iptables工作匹配流程
规则表之间的顺序
• raw mangle nat filter
• 规则链之间的顺序
• 入站:PREROUTING INPUT
• 出站:OUTPUT POSTROUTING
• 转发:PREROUTING FORWARD POSTROUTING
• 规则链内的匹配顺序
• 按顺序依次检查,匹配即停止(LOG策略例外)
• 若找不到相匹配的规则,则按该链的默认策略处理

iptables语法
语法构成
• iptables [‐t 表名] 选项 [链名] [条件] [‐j 控制类型]

[root@localhost ~]# iptables -t filter -I INPUT -p icmp -j REJECT

• 几个注意事项
• 不指定表名时,默认指filter表
• 不指定链名时,默认指表内的所有链
• 除非设置链的默认策略,否则必须指定匹配条件
• 选项、链名、控制类型使用大写字母,其余均为小写

数据包的常见控制类型
• ACCEPT:允许通过
• DROP:直接丢弃,不给出任何回应
• REJECT:拒绝通过,必要时会给出提示
• LOG:记录日志信息,然后传给下一条规则继续匹配

iptables命令
• 添加新的规则
• ‐A:在链的末尾追加一条规则
• ‐I:在链的开头(或指定序号)插入一条规则
[root@localhost ~]# iptables -t filter -A INPUT -p tcp -j ACCEPT
[root@localhost ~]# iptables -I INPUT -p udp -j ACCEPT
[root@localhost ~]# iptables -I INPUT 2 -p icmp -j ACCEPT
-p 用来指定协议

• 查看规则列表
• ‐L:列出所有的规则条目
• ‐n:以数字形式显示地址、端口等信息
• ‐v:以更详细的方式显示规则信息
• ‐‐line‐numbers:查看规则时,显示规则的序号

[root@localhost ~]# iptables -L INPUT --line-numbers
Chain INPUT (policy ACCEPT)
num target prot opt source destination
1 ACCEPT udp -- anywhere anywhere
2 ACCEPT icmp -- anywhere anywhere
3 REJECT icmp -- anywhere anywhere reject-with icmp-port-
unreachable
4 ACCEPT tcp -- anywhere anywhere
[root@localhost ~]# iptables -n -L INPUT
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0
ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0
REJECT icmp -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-port-
unreachable
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0
-n -L 可合写为 -nL

置默认策略
• ‐P:为指定的链设置默认规则
[root@localhost ~]# iptables -t filter -P FORWARD DROP
[root@localhost ~]# iptables -P OUTPUT ACCEPT
默认策略要么是ACCEPT、
要么是DROP

常用管理选项汇总
类别 选项 用途
添加新的规则
‐A 在链的末尾追加一条规则
‐I 在链的开头(或指定序号)插入一条规则
查看规则列表
‐L 列出所有的规则条目
‐n 以数字形式显示地址、端口等信息
‐v 以更详细的方式显示规则信息
‐‐line‐numbers 查看规则时,显示规则的序号
删除、清空规则
‐D 删除链内指定序号(或内容)的一条规则
‐F 清空所有的规则
设置默认策略
‐P 为指定的链设置默认规则

类别 条件类型 用法
通用匹配
协议匹配 ‐p 协议名
地址匹配 ‐s 源地址、‐d 目的地址
接口匹配 ‐i 入站网卡、‐o 出站网卡
隐含匹配
端口匹配 ‐‐sport 源端口、‐‐dport 目的端口
TCP标记匹配 ‐‐tcp‐flags 检查范围 被设置的标记
ICMP类型匹配 ‐‐icmp‐type ICMP类型
显式匹配
多端口匹配 ‐m multiport ‐‐sports | ‐‐dports 端口列表
IP范围匹配 ‐m iprange ‐‐src‐range IP范围
MAC地址匹配 ‐m mac ‐‐mac‐source MAC地址
状态匹配 ‐m state ‐‐state 连接状态

备份以及还原

备份
iptables-save工具进行备份
[root@localhost ~]# iptables-save > /opt/iprules_all.txt

还原
 iptables‐restore工具进行还原
• 可结合重定向输入指定规则来源
[root@localhost ~]# iptables-restore < /opt/iprules_all.txt

常用

允许源地址172.17.0.1/16访问 目的端口为9092
iptables -t mangle -I PREROUTING -i eth0 -s 172.17.0.1/16 -p tcp -m multiport --dports 9092 -j ACCEPT
禁止源地址为172.17.26.32 出站访问
iptables -t mangle -I PREROUTING -i eth0 -s 172.17.26.32 -j DROP
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值