iptables防火墙

防火墙主要工作在网络层。

Linux 系统的软件防火墙有iptables 、firewalld 、ufw。

iptables防火墙由netfilter 和 iptables组成。主要功能是过滤发送和接收的数据包,处理数据包的IP地址、端口、协议等信息。

netfilter:属于“内核态”(Kernel Space,又称为内核空间)的防火墙功能体系。它属于linux内核的一部分,由一些数据包过滤表组成,这些表内包含内核用来控制数据包过滤处理的规则集。

iptables:属于“用户态”(User Space,又称为用户空间)的防火墙管理体系。它是用户用来管理Linux防火墙的命令程序,可以用来插入、修改和删除表中的规则,通常位于/sbin/iptables文件下。

iptables是基于内核的防火墙,其中内置了四个数据包过滤表,表中所有规则配置后,立即生效,不需要重启服务。

iptables防火墙的架构

iptables防火墙由四表五链构成。

四表

raw:数据包状态跟踪     

mangle:修改数据包内容,设置标记       

nat:数据包地址转换        

filter:过滤数据包

五链

INPUT:处理入站数据    

OUTPUT:处理出站数据     

FORWARD:处理转发数据     

PREROUTING:路由处理前,修改目的地址(接收数据包)      

POSTROUTING:路由处理后,修改源地址(发送数据包)

四表五链的关系

raw 表包含  OUTPUT、PREROUTING

mangle 表包含 INPUT、 OUTPUT、FORWARD、PREROUTING 、POSTROUTING

nat 表包含 OUTPUT、PREROUTING、POSTROUTING

filter 表包含 INPUT、OUTPUT、FORWARD

数据包的匹配顺序

四表的匹配顺序

raw -> mangle -> nat -> filter

较常用的是filter和nat

数据的匹配顺序

入站数据:PREROUTING(nat) -> INPUT(filter)-> 本机的应用程序

出站数据:本机的应用程序 -> OUTPUT(filter) -> POSTROUTING(nat)

转发数据:PREROUTING(nat) -> FORWARD(filter) -> POSTROUTING(nat)

表内规则的匹配顺序  

从上往下依次匹配链中的规则,匹配到即停止;若没有匹配的规则,则按照链的默认规则处理

iptables操作管理

命令格式: iptables  -t 表名(默认为filter)  操作选项   链名    匹配条件选项     -j 控制类型

常用操作选项:

 -F:清空链中所有规则。

-I:插入规则到链的指定位置(默认为第一条)。

-A:添加规则到链的末尾。

-R:替换链中的规则。(--line-number显示规则的编号。)

-D:删除指定规则(可以通过规则编号或内容指定)。

-P:设置链的默认策略。(一般不修改默认策略)

-L:列出所有规则。

-n:以数字格式显示地址和端口。

-v:详细信息。

--line-number:显示规则的编号。

[root@sunny1 ~]# iptables -nvL --line-number
Chain INPUT (policy ACCEPT 179 packets, 18657 bytes)
num   pkts bytes target     prot opt in     out     source               destination
1        0     0 ACCEPT     udp  --  virbr0 *       0.0.0.0/0            0.0.0.0/0            udp dpt:53
2        0     0 ACCEPT     tcp  --  virbr0 *       0.0.0.0/0            0.0.0.0/0            tcp dpt:53
3        0     0 ACCEPT     udp  --  virbr0 *       0.0.0.0/0            0.0.0.0/0            udp dpt:67
4        0     0 ACCEPT     tcp  --  virbr0 *       0.0.0.0/0            0.0.0.0/0            tcp dpt:67

Chain FORWARD (policy ACCEPT 32 packets, 2432 bytes)
num   pkts bytes target     prot opt in     out     source               destination
1        0     0 ACCEPT     all  --  *      virbr0  0.0.0.0/0            192.168.122.0/24     ctstate RELATED,ESTABLISHED
2        0     0 ACCEPT     all  --  virbr0 *       192.168.122.0/24     0.0.0.0/0
3        0     0 ACCEPT     all  --  virbr0 virbr0  0.0.0.0/0            0.0.0.0/0
4        0     0 REJECT     all  --  *      virbr0  0.0.0.0/0            0.0.0.0/0            reject-with icmp-port-unreachable
5        0     0 REJECT     all  --  virbr0 *       0.0.0.0/0            0.0.0.0/0            reject-with icmp-port-unreachable

Chain OUTPUT (policy ACCEPT 188 packets, 24309 bytes)
num   pkts bytes target     prot opt in     out     source               destination
1        0     0 ACCEPT     udp  --  *      virbr0  0.0.0.0/0            0.0.0.0/0            udp dpt:68

匹配条件选项:

-i:指定入站网卡。

-o:指定出站网卡。 

 -s:指定源地址。

-d:指定目标地址。

-p:指定协议(如tcp、udp、icmp)。

--sport:指定源端口。

--dport:指定目标端口。

控制类型:

ACCEPT:允许数据包通过。

DROP:直接丢弃数据包,不给出任何回应。

REJECT:拒绝数据包通过,并返回错误信息。

SNAT:源地址转换,修改数据包的源地址。

DNAT:目标地址转换,修改数据包的目标地址。

LOG:记录数据包信息到日志,然后传给下一条规则继续匹配。

MASQUERADE:地址伪装,将数据包的源地址修改为本机的动态公网IP。

REDIRECT:将数据包重定向到本机的指定端口。

隐含匹配:需要使用 -p 指定协议作为前提
-p tcp/udp  --dport 目的端口/端口范围
-p tcp/udp  --sport 源端口/端口范围
-p tcp  --tcp-flags SYN,ACK,FIN,RST,PSH,URG  SYN  -j REJECT :表示会拒绝除了 SYN=1 以外的TCP报文
-p icmp --icmp-type 8(请求)/0(回显)/3(目标不可达)

显式匹配:需要使用 -m 指定模块
-m multiport --sport/--dport 端口列表
-m iprange --src-range/--dst-range  IP范围
-m mac --mac-source 源MAC地址
-m state --state RELATED,ESTABLISHED[,NEW,INVALID] (RELATED,ESTABLISHED 用于放行返回的应答包进站)

通过命令设置的规则为临时规则,系统重启或者服务重载,这些规则就会失效。

保存规则  iptables-save > 文件路径
还原规则  iptables-restore < 文件路径
保存为默认规则  iptables-save > /etc/sysconfig/iptables

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值