Iptables

iptables简介

iptables与firewalld都不是真正的防火墙,它们都只是用来定义防火墙策略的防火墙管理工具而已,或者说,它们只是一种服务。

iptables服务会把配置好的防火墙策略交由内核层面的netfilter网络过滤器来处理,而firewalld服务则是把配置好的防火墙策略交由内核层面的nftables包过滤框架来处理。

策略与规则链

防火墙会从上至下的顺序来读取配置的策略规则,在找到匹配项后就立即结束匹配工作并去执行匹配项中定义的行为(即放行或阻止)。如果在读取完所有的策略规则之后没有匹配项,就去执行默认的策略。一般而言,防火墙策略规则的设置有两种:一种是“通”(即放行),一种是“堵”(即阻止)。当防火墙的默认策略为拒绝时(堵),就要设置允许规则(通),否则谁都进不来;如果防火墙的默认策略为允许时,就要设置拒绝规则,否则谁都能进来,防火墙也就失去了防范的作用。

iptables服务把用于处理或过滤流量的策略条目称之为规则,多条规则可以组成一个规则链,而规则链则依据数据包处理位置的不同进行分类,具体如下:

在进行路由选择前处理数据包(PREROUTING);

处理流入的数据包(INPUT);

处理流出的数据包(OUTPUT);

处理转发的数据包(FORWARD);

在进行路由选择后处理数据包(POSTROUTING)。

针对策略规则可采取的动作

ACCEPT(允许流量通过)

REJECT(拒绝流量通过)

LOG(记录日志信息)

DROP(拒绝流量通过)

iptables中常用的参数说明

参数
作用

-P

设置默认策略

-F

清空规则链

-L

查看规则链

-A

在规则链的末尾加入新规则

-I num

在规则链的头部加入新规则

-D num

删除某一条规则

-s

匹配来源地址IP/MASK,加叹号“!”表示除这个IP外

-d

匹配目标地址

-i

匹配从这块网卡流入的数据

-o

匹配从这块网卡流出的数据

-p

匹配协议,如TCP、UDP、ICMP

--dport num

匹配目标端口号

--sport num

匹配来源端口号

实验测试

查看已有的防火墙规则链

清空已有的防火墙规则链

把INPUT规则链的默认策略设置为拒绝

向INPUT链中添加允许ICMP流量进入的策略规则

删除INPUT规则链中刚刚加入的那条策略(允许ICMP流量),并把默认策略设置为允许

将INPUT规则链设置为只允许指定网段的主机访问本机的22端口,拒绝来自其他所有主机的22端口流量

向INPUT规则链中添加拒绝所有人访问本机12345端口的策略规则

向INPUT规则链中添加拒绝192.168.10.5主机访问本机80端口(Web服务)的策略规则

向INPUT规则链中添加拒绝所有主机访问本机1000~1024端口的策略规则

Last updated