Linux下管理防火墙策略

article/2025/11/5 21:14:58

目录

      • 1. 防火墙管理工具的切换
      • 2. iptables的使用
      • 3.关于firewalld的域
      • 4.firewalld的基本管理命令
      • 5.firewalld的高级规则
      • 6.firewall中的NAT规则

防火墙是一组规则。当数据包进出受保护的网络区域时,进出内容(特别是关于其来源、目标和使用的协议等信息)会根据防火墙规则进行检测,以确定是否允许其通过。
iptables 是 Linux 系统上管理防火墙规则的工具。另一方面,firewalld 也是 Linux 机器上管理防火墙规则的工具。
iptables和firewalld将用户的安全设定执行到内核的netfilter中,他们的作用都是用于维护规则,而真正使用规则干活的是netfilter。

1. 防火墙管理工具的切换

Redhat Linux系统中默认使用firewalld
1.1、 firewalld切换到iptables
①:安装iptables软件 :dnf install iptables-services.x86_64 -y
②:关闭firewalld服务,设定开机不自启 ;还可以更深度的注销firewalld服务(注销服务表示:系统重启后不会启动服务,也无法使用start ,enable 操作)
在这里插入图片描述
③:systemctl enable --now iptables ##开启iptables服务,并设定开机自启
在这里插入图片描述
1.2、iptables切换到firewalld
①:关闭iptables,设定开机不自启;注销服务
在这里插入图片描述
②:取消对firewalld服务的注销,否则无法执行开启操作;开启firewalld服务
在这里插入图片描述

2. iptables的使用

2.1、iptables3表5链
五链: 链是规则的集合

链的名称解释
PREROUTING数据包进入路由表之前,对数据包做路由选择前应用此链路中的规则
INPUT进来的数据包应用此规则链中的规则
FORWARD转发数据包时应用此规则链中的规则
OUTPUT外出的数据包应用此规则链中的规则
POSTROUTING数据包做路由选择后发送后到网卡接口之前应用此链中的规则

三表: 表是链的集合

表的名称存放的链
FilterINPUT;OUTPUT;FORWARD(过滤数据包)
NATPREROUTING;POSTOUTING ;INPUT ;OUTPUT( 用于网络地址转换 )
MangleINPUT ;OUTPUT ;FORWARD ;POSTROUTING ;PREROUTING

2.2、iptables命令

  • iptables策略记录文件 :/etc/sysconfig/iptables
  • iptables命令可对防火墙规则做出临时更改,重启iptables服务后,还原到原始设定
  • 在对iptables规则更改后,可使用以下任意一条命令永久保存策略
    • iptables-save > /etc/sysconfig/iptables
    • service iptables save
iptables 命令常用参数解释
-t指定表名称(不知道表名称时,默认修改filter表)
-n不做解析
-L查看
-A添加策略(策略顺序依次叠加)
-P指定协议
- -dport目的端口号
-s源地址
-j指定动作:ACCEPT ##允许; DROP ##丢弃 ; REJECT ##拒绝 ; SNAT ##源地址转换 ; DNAT ##目的地地址转换
-N新建链
-E更改链名称
-X删除链
-D删除指定规则
-I插入规则(可指定具体的位置,默认在第一条插入)
-R更改规则
-P更改默认规则(只能设定ACCEPT,DROP)
-F清除所有规则
-m扩展各种模块,比如state模块

注意: iptables执行规则时,是从规则表中从上至下顺序执行的,如果遇到匹配的规则,执行后就不再往下检查了,如果没遇到匹配的规则,就一条一条往下进行匹配,当所有规则读取完成后,再执行默认规则。
示例: 在192.168.1.19主机上设定防火墙策略
示例1:
iptables -F ##清空所有规则;
iptables -A INPUT -j REJECT ##增加一条拒绝所有进来的数据包的规则;
iptables -A INPUT -s 192.168.1.29 -p TCP --dport 22 -j ACCEPT ##增加一条数据包源地址是192.168.1.29主机,目的端口号为22,允许通过的规则;
在192.168.1.29主机ssh远程连接192.168.1.19主机,连接被拒绝,因为192.168.1.29主机符合第一条规则中的all条件,规则被执行,防火墙检测不再往下读取策略。在这里插入图片描述
在这里插入图片描述
示例2:
iptables -F ##清空所有规则;
iptables -A INPUT -s 192.168.1.29 -p TCP --dport 22 -j ACCEPT ##增加一条数据包源地址是192.168.1.29主机,目的端口号为22,允许通过的规则;
iptables -I INPUT -s 192.168.1.29 -p TCP --dport 80 -j ACCEPT ##插入一条数据包源地址是192.168.1.29主机,目的端口号为80,允许通过的规则(插入后规则顺序为1);
iptables -P INPUT DROP ##修改默认规则为DROP;在这里插入图片描述
在192.168.1.29主机ssh远程连接192.168.1.19主机,匹配第二条规则,连接成功 ;在192.168.1.29主机ping192.168.1.19主机,不符合设定的两条规则,执行默认规则,连接状态为DROP,无反应。
在这里插入图片描述
2.3、state模块

state模块是iptables的扩展模块,可以让iptables实现 连接追踪机制 ,它把’‘连接’'分为四种状态。通过state模块判断报文是为了回应我们之前发出的报文还是主动向我们发送的报文,可以防止恶意攻击主动连接到你的主机;还可对RELATED,ESTABLISHED,我们所信任的数据包,指定防火墙规则,避免多条规则检测等待,提高数据传输效率。

数据包状态解释
NEW这个数据包是一条连接收到的第一个数据包
ESTABLISHED状态正在建立的连接,只要一个数据包发送并接到应答,那么这个连接中的其他数据包的状态就为ESTABLISHED
RELATEDRELATED状态数据包是指被动产生的响应数据包,而且这个数据包不属于现在任何连接的数据包,是和一个已建立的连接相关的
INVALID状态一个包无法被识别,或者这个包没有任何状态,一般这种数据包都是被拒绝的

示例:
iptables -I INPUT -m state --state RELATED,ESTABLISHED -j REJECT ##设定状态为RELATED,ESTABLISHED的数据包拒绝通过;
在192.168.1.29主机上ping192.168.1.19主机,第一条数据包状态为NEW,采用默认规则,通过防火墙,连接成功,第二条数据包状态为ESTABLISHED,数据包被防火墙拒绝。
在这里插入图片描述
2.4、nat表中的地址转换
双网卡主机:192.168.1.19 ; 172.25.254.19 ;开启内核路由转发功能,在这台主机上设定iptables;
在这里插入图片描述
在这里插入图片描述
192.168.1.29主机, 172.25.254.39主机 ,均作为测试主机
SNAT源地址转换:
①:在172.25.254.39主机上设定网关为 172.25.254.19(与双网络卡主机iP2一致),使其可以和192.168.1.19 通信;
在这里插入图片描述
在这里插入图片描述
②:在双网卡主机上设定iptables策略:iptables -t nat -A POSTROUTING -o ens160 -j SNAT --to-source 192.168.1.19 ##在nat表中添加路由转发之后,把从ens160网络接口出去的数据包源地址转换成 192.168.1.19的规则;
在这里插入图片描述
③:在172.25.254.39主机上测试,可以ping通192.168.1.29主机,也可以ssh 远程连接192.168.1.29主机;
在这里插入图片描述
④:在192.168.1.29主机上查看登陆者的信息,是192.168.1.19主机而不是172.25.254.39。
在这里插入图片描述
DNAT目的地址转换:
①:在双网卡主机上设定iptables策略:iptables -t nat -A PREROUTING -i ens160 -j DNAT --to-dest 172.25.254.39 ##在nat表中添加路由转发之前,把从ens160网络接口进来的数据包的目的地址转换为 172.25.254.39
在这里插入图片描述
②:在192.268.1.29主机上ssh 远程登录 192.168.1.19主机,登录成功后,查看当前主机ip,实际上连接的是172.25.254.39主机
在这里插入图片描述

3.关于firewalld的域

说明
trusted接受所有的网络连接
home用于家庭网络;允许接受ssh mdns ipp-client samba-client dhcp-client
work工作网络 ; ssh ipp-client dhcp-cilent
public公共网络; ssh dhcp-client
dmz军级网络 ;ssh
block拒绝所有
drop丢弃 ;所有数据全部丢弃无任何回复
internal内部网络; ssh mdns ipp-client samba-client dhcp-client
externalipv4网络地址伪装转发; sshd

4.firewalld的基本管理命令

  • 火墙配置目录 : /etc/firewalld
  • 火墙模块目录 : /lib/firewalld
命令作用
firewall-cmd --state查看火墙状态
firewall-cmd --get-active-zones查看火墙中生效的域
firewall-cmd --get-default-zone查看默认域
firewall-cmd --list-all查看默认域中的火墙策略
firewall-cmd --list-all --zone=work查看指定域的火墙策略
firewall-cmd --set-default-zone=trusted设定默认域
firewall-cmd --get-services查看所有可以设定的服务
firewall-cmd --permanent --remove-service=cockpit移除服务( --permanent #永久
firewall-cmd --reload重新加载火墙的规则配置
firewall-cmd --permanent --add-source=172.25.254.0/24 --zone=block指定数据来源访问指定域
firewall-cmd --permanent --remove-source=172.25.254.0/24 --zone=block删除自定域中的数据来源
firewall-cmd --permanent --remove-interface=ens224 --zone=public删除指定域的网络接口
firewall-cmd --permanent --add-interface=ens224 --zone=block添加指定域的网络接口
firewall-cmd --permanent --change-interface=ens224 --zone=public更改网络接口到指定域

示例:
①:基本查看命令
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
②:在192.168.1.19主机上指定192.168.1.10/24网段的主机访问drop域;在192.168.1.29主机上ping192.168.1.19主机,数据包被丢弃,无反应
在这里插入图片描述
在这里插入图片描述
③:添加172.25.254.19IP对应的网络接口ens224到block域中;在172.25.254.29主机上ping172.25.254.19,数据包被拒绝
在这里插入图片描述
在这里插入图片描述

5.firewalld的高级规则

命令写法相似于iptables命令
示例:
在192.168.1.19主机上设定只有192.168.1.29主机可以访问它的22端口,其他均不允许
在这里插入图片描述
在192.168.1.29主机上ping192.168.1.19主机,访问被拒绝;但是可以在192.168.1.29主机上ssh远程登录192.168.1.19主机
在这里插入图片描述

6.firewall中的NAT规则

双网卡主机:192.168.1.19 ; 172.25.254.19 ;在这台主机上设定火墙规则;
192.168.1.29主机, 172.25.254.29主机 ,均作为测试主机;
SNAT源地址转换:
①:在双网卡主机开启地址伪装功能 :firewall-cmd --add-masquerade --permanent
在这里插入图片描述
②:在172.25.254.29主机上设定网关为172.25.254.19;ssh远程连接192.168.1.29主机,登录成功;
在这里插入图片描述
③:在192.168.1.29主机查看到登录用户的IP为192.168.1.19而不是172.25.254.29
在这里插入图片描述
DNAT目的地址转换:
①:在双网卡主机添加端口转发规则:firewall-cmd --permanent --add-forward-port=port=22:proto=tcp:toaddr=172.25.254.29 ##把访问22端口的数据包的目的地址转换为172.25.254.29;
在这里插入图片描述
②:在192.168.1.29主机ssh远程登录192.168.1.19主机,登录成功后查看ip,实际上登录的是172.25.254.29主机
在这里插入图片描述


http://chatgpt.dhexx.cn/article/FgFWTPb9.shtml

相关文章

基础防火墙策略

基于NAT的防火墙策略 原理:通过配置防火墙策略,实现内网可以通过防火墙访问外网,外网不能主动访问内网,保证了局域网的安全性。 上图为本次实验的简略图。 准备工作:外网设为桥接模式,内网设为仅主机模式,防火墙两个模式都有。 步骤: 首先把所有的不必要的防火墙策略…

A模块练习-防火墙策略

说明:iptables 组件是一种工具,也称为用户空间(userspace),它使插入、修改和除去信息包过滤表中的规则变得容易。除非您正在使用 Red Hat Linux 7.1 或更高版本,否则需要下载该工具并安装使用它。 防火墙策…

Linux进阶(10)--防火墙策略优化

一.火墙介绍 从RHEL7以后,iptables服务的启动脚本已被忽略。请使用firewalld来取代iptables服务。 防火墙是一组规则。当数据包进出受保护的网络区域时,进出内容(特别是关于其来源、目标和使用的协议等信息)会根据防火墙规则进行检…

H3C 防火墙策略介绍

注意点: H3C防火墙有安全策略和域间策略,安全策略的优先级大于域间策略,会优先匹配安全策略,匹配不到才会匹配域间策略 域间策略:any to any的域间策略优先级低于具体的区域到具体的区域的域间策略 安全策略匹配顺序…

防火墙策略管理-firewalld

1.拓扑图 2.firewalld服务基础 1、Linux防火墙体系 系统服务:firewalld 管理工具:firewalld-cmd、firewalld-config 2、预设安全区域 ①、根据所在的网络场所区分,预设保护规则集 public:仅允许访问本机的sshd等少数几个服务 tru…

firewalld 防火墙策略

一 下面都是在public区 firewalld防火墙默认情况下(也就是public区域)是拒绝所有的,但是public区默认情况下ping和ssh服务都是放开的 [rootnode-1 ~]# firewall-cmd --list-all --zone public public (active)target: defaulticmp-block-inversion: nointerface…

win10 配置防火墙策略

说明 某些情况下,我们想在不关闭防火墙的情况下,开放一些特定的端口,使得特定的应用可以访问本机应用。我们可以配置自定义的防火墙策略来解决这个问题。 配置 控制面板 > 系统和安全 > Windows Defender 防火墙 高级设置 入站规…

防火墙策略管理小工具——网络安全

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、防火墙配置文件1. 地址集合2. 服务集合3. 规则集合 二、防火墙策略管理小工具的开发1. 主要功能2. 框架设计2.1 IP_Set对象2.2 Service对象2.3 Rule对象2.4…

飞塔防火墙策略设置

上周公司要求对一些电脑进行上网限制,只允许部分软件上网。 一、添加地址:在“策略与对象”--“地址”--“新建” 二、输入IP地址:(最大陷阱,公司是使用无线上网,对飞塔而言,整个无线网是一个端…

防火墙策略配置

拓扑 任务一 c2 ping c1 ,c1 not ping c2 首先我们要做的就是配置接口、网关、子网掩码,使得c1与c2可以互ping 如上图,我们先开启两个客户机,为方便测试。 命令 syssysname FWdis ip int br 查看状态int g0/0/1ip add 192.168.…

防火墙的策略

1.防火墙支持哪些NAT技术,主要的应用场景是什么? 首先,NAT的分类: 在内外网之间,流量进出的两个方向,而NAT技术是包含源地址转换和目标地址转换这两类,在通常的情况下,源地址转换是…

HCIA-Security -- 防火墙安全策略

防火墙安全基本原理 安全区域安全策略状态检测和会话机制ASPF技术防火墙在网络安全中的应用场景 一、防火墙安全基本原理 防火墙不仅只是一个“入口的屏障”,而应该是多个网络的接入控制点。所有进出内网的数据流都应该首先经过防火墙,形成一个信息进出…

防火墙策略

定义与原理: 防火墙的基本作用是保护特定网络免受“不信任”的网络的攻击,但是同时还必须允许两个网络之间可以 进行合法的通信。 安全策略是控制设备对流量转发以及对流量进行内容安全一体化检测的策略,作用就是对通过防火墙的 数据流进行检…

kaggle数据集下载

一、首先需要安装kaggle winR→cmd→pip install kaggle 问题:安装到哪来?都说在c盘。可是我找不到,可能因为之前担心c负荷更改路径了,再安装一下发现已经安装成功,且给出了安装路径。 二、注册 (1387条消息) 最新k…

ImageNet 数据集下载与处理(亲测 实用有效无坑版)

下载 通常下载方式有两种, 官网下载和第三方网站上传的资源下载。这里推荐第三方下载,因为官网可能会存在注册麻烦,网页卡顿的情况。 第三方下载方式如下: 里面包含几乎所有常用的ImageNet的数据集以及标注文件。 https://pan.ba…

ImageNet ISLVRC2012数据集下载和使用

最近要在imagenet数据集上做实验,以前只知道这个数据集很大,但是没用过,这次亲自下载然后按照训练集和验证集划分好了,记录一下。 主要参考了这个 https://zhuanlan.zhihu.com/p/370799616 目录 1. 数据集下载2. 数据集处理2.1 训…

coco2017数据集下载(百度网盘)

今天,想要下载coco2017的数据集,奈何官网下载速度太慢,下载过程可谓坎坷,为了让有需求的人少走弯路,这里提供我的百度云链接,大家可自行下载,文件中包括的内容如下: 百度云链接&…

kaggle数据集的下载

感谢阅读本文,喜欢请收藏点赞 准备工作1.安装kaggle库2.注册登录kaggle账户3.kaggle.json的下载与使用4.下载数据集 文件保存路径 准备工作 1.安装kaggle库 2.注册登录kaggle账户 点我跳转 (没有帐户的有很多) 3.kaggle.json的下载与使用 …

KITTI数据集下载链接

1、简介 KITTI数据集由德国卡尔斯鲁厄理工学院和丰田美国技术研究院联合创办,是目前国际上最大的自动驾驶场景下的计算机视觉算法评测数据集。该数据集用于评测立体图像(stereo),光流(optical flow),视觉测距(visual odometry),3D…

ImageNet数据集 下载

文章目录 1. ImageNet 说明2. ILSVRC2012 说明3. ImageNet下载方式4. ImageNet数据组织与使用 1. ImageNet 说明 ImageNet官网:http://image-net.org/ ImageNet 由斯坦福李飞飞教授带领创建,ImageNet 本身有2万多个的类别,超过 1400 万张图…