【操作系统】防火墙管理工具-iptables

参考文章
1. linux iptables详解 作者:JackLiu16
2. Linux网络服务之iptables防火墙工具 作者:白幽幽白
3. 【操作系统】安全管理/防火墙 作者:"sudo


一、防火墙简介

我的另一篇文章,很简单的写了一下防火墙:【操作系统】安全管理/防火墙
相同或类似的内容,本文就不再重复了
本文主要是想记录一下iptables。重点在iptables,不在firewalld

1.Netfilter

  • netfilter是一个linux内核 功能,用于在 网络数据包 从网络堆栈进入或者离开时进行包过滤和操作。
  • Netfilter 称为防火墙的“内核态”。

2.firewalld和iptables

  • Firewalld和iptables都不是防火墙,是防火墙管理工具。被称为防火墙的“用户态”。
  • Centos 7中默认管理防火墙规则的工具是firewalld。

二、防火墙管理工具:iptables

1. 定义

  • 由软件包iptables提供的命令行工具
  • 工作在用户空间,用来编写规则,写好的规则被送往Netfilter-告诉内核如何去处理信息包。

2. 报文流向

记:需要后续完善~20240324

# 1.流入本机
PREROUTING -- INPUT -- 用户空间进程
# 2.流出本机
用户空间进程 -- OUTPUT -- POSTROUTING
# 3.转发
PREROUTING -- FORWARD -- POSTROUTING

3.基本语法

iptables [-t 规则表] 管理选项 [规则链] [匹配条件] [-j 处理动作]

3.1 “四表”

规则表功能
raw表关闭启用的连接跟踪机制,加快封包穿越防火墙的速度
mangle表给数据包设置标记
nat表地址转换规则表
filter表过滤规则表,根据预定义的规则 过滤符合条件的数据包(默认表)

3.2 “五链”

规则链的作用:容纳各种防火墙规则,对数据包进行过滤或处理。

规则链功能
INPUT链处理入站数据包
OUTPUT链处理出站数据包
FORWARD链处理转发数据包
PREROUTING链在进行路由选择前处理数据包
POSTROUTING链在进行路由选择后处理数据包

3.3 管理选项

可使用iptables -h进行查询
下表列举一些常用的,并不全

操作类型管理选项描述
-A向规则链中添加一条规则,末尾追加
-I在规则链的指定位置插入一条规则,未指定徐皓,默认作为第一条
-N创建一个新的自定义规则链
-D从规则链中清除一条规则
-F清除链中所有规则
-X删除一个自定义规则链
“改”-R替换规则链中的一条规则
“改”-E重命名规则链
-L列出规则链中的所有规则
–line-number查看规则编号

3.4 匹配条件

指定匹配条件的选项描述
-p指定要匹配的协议类型,例如TCP、UDP、ICMP等
-s指定源IP地址或地址范围
-d指定 目标IP地址或地址范围
-i <网络接口>指定 输入网络接口
-o <网络接口>指定 输出网络接口
-m指定 扩展模块,用于进一步定义匹配条件
–icmp-type指定ICMP类型
–sport指定源端口号或端口范围
–dport指定目标端口号或端口范围

3.5 处理动作

处理动作描述
DROP丢弃数据包,不给与任何回应信息
REJECT拒绝数据包通过,会给数据发送端一个响应信息
ACCEPT允许数据包通过(默认)
SNAT修改数据包的源地址
DNAT修改数据包的目的地址
LOG在/var/log/messages文件中记录日志信息,然后将数据包传递给下一条规则
MASQUERADE伪装成一个非固定公网IP地址

4. 基础实例

4.1 增

即: 增加规则,添加规则

#一般只对INPUT和PREROUTING规则链进行处理
#不处理OUTPUT POSTROUTING FORWARD

# 实例1 :允许来自192.168.1.0/24子网的数据包进入INPUT链
iptables -A INPUT -s 192.168.1.0/24 -j ACCEPT
# iptables [-t filter]  -A INPUT -s ***.***.***.*** -j DROP/REJECT

# 实例2 :在INPUT链的第2条规则之前插入一条允许来自192.168.1.0/24子网的数据包进入的规则
iptables -I INPUT 2 -s 192.168.1.0/24 -j ACCEPT
# iptables -I INPUT 编号 -s ***.***.***.*** -j DROP

4.2 删

即:删除规则

# iptables -D <规则链> <要删除的规则>
# iptables  -D <规则链> n #n为规则编号

# 实例1 : 删除允许来自192.168.1.0/24子网的数据包进入INPUT链的规则
iptables -D INPUT -s 192.168.1.0/24 -j ACCEPT

4.3 改

即:修改 替换规则

# 将INPUT链中的第2条规则替换为拒绝来自192.168.1.0/24子网的数据包的规则
iptables -R INPUT 2 -s 192.168.1.0/24 -j DROP

4.4 查

iptables -vnL #查看所有规则表的规则

# -t 指定查看某个规则表,默认filter表
# -v 详细信息
# -n 数字形式显示
# -L 查看规则列表

三、默认策略(可略)

详细内容可参考 <参考文章第二篇~>
此处不多做介绍

比较常见的

# 允许SSH进入
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
# 允许HTTP和HTTPS流量
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
  • 15
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值