当前位置: 首页 > news >正文

Linux中Firewall防火墙操作

一、安装Firewall命令

yum install firewalld firewalld-config

二、防火墙的基本操作

1、查看防火墙状态

  • 使用systemctl status firewalld命令可以查看firewalld服务的状态。
  • 也可以使用firewall-cmd --state命令直接查看防火墙的状态。

2、开启防火墙

*   临时性开启(重启后失效):systemctl start firewalld
*   永久性开启(即开机启动):systemctl enable firewalld

3、关闭防火墙

*   临时性关闭(重启后恢复):systemctl stop firewalld
*   永久性关闭(即禁止开机启动):systemctl disable firewalld

4、重启防火墙

重新加载防火墙的所有配置并应用新的规则:systemctl restart firewalld

5、重新加载防火墙配置

*   不中断现有连接:firewall-cmd --reload
*   中断所有连接(类似重启服务):firewall-cmd --complete-reload

三、区域(Zone)管理

*   查看所有可用的区域:firewall-cmd --get-zones
*   查看当前激活的区域:firewall-cmd --get-active-zones
*   查看指定区域的详细信息:firewall-cmd --zone=public --list-all(public是示例区域名,需替换为实际区域名)
*   设置默认区域:firewall-cmd --set-default-zone=public(public是示例区域名)
*   添加区域:firewall-cmd --permanent --new-zone=myzone(myzone是自定义区域名)
*   删除区域:firewall-cmd --permanent --delete-zone=myzone(myzone是自定义区域名)

四、端口(Port)管理

1、查看已开放的端口

firewall-cmd --list-ports(显示当前防火墙会话中开放的端口,包含永久或临时开放的端口,未指定区域则默认为public区域)

firewall-cmd --permanent --list-ports  (列出在 firewalld 防火墙配置中永久设置的端口)

2、添加指定开放端口

*   永久开放:firewall-cmd --permanent --zone=public --add-port=80/tcp(80是端口号,tcp是协议类型)
*   开放端口范围:firewall-cmd --permanent --zone=public --add-port=9000-9008/tcp

3、移除指定开放端口

*   永久移除:firewall-cmd --permanent --zone=public --remove-port=80/tcp
*   移除端口范围:firewall-cmd --permanent --zone=public --remove-port=9000-9008/tcp

4、查询指定开放端口状态

firewall-cmd --zone=public --query-port=80/tcp

五、服务(Service)管理

*   查看已启用的服务:firewall-cmd --list-services(未指定区域则默认为public区域)
*   查看所有可用的服务:firewall-cmd --get-services
*   添加指定服务(永久添加):firewall-cmd --permanent --zone=public --add-service=http(http是服务名)
*   移除指定服务(永久移除):firewall-cmd --permanent --zone=public --remove-service=http

六、富规则(Rich Rules)

查看已设置的富规则:firewall-cmd --list-rich-rules(未指定区域则默认为public区域)。

添加富规则:例如,只允许特定IP访问特定端口,可以使用如下命令:

firewall-cmd --permanent --zone=public --add-rich-rule="rule family='ipv4' source address='192.168.1.1/24' port protocol='tcp' port='3306' accept"

移除富规则:需要指定与添加时相同的规则字符串来移除。

七、查看当前防火墙配置

1、查看所有默认的区域设置

sudo firewall-cmd --get\-default\-zone

2、列出所有可用的区域

sudo firewall-cmd --get\-zones

3、列出当前激活的区域

sudo firewall-cmd --get\-active-zones

4、查看某个区域的所有规则

sudo firewall-cmd --zone=<zone> --list-all

八、修改防火墙配置

1、永久改变默认区域

sudo firewall-cmd --set\-default\-zone=<new\-zone>

2、临时改变默认区域 (重启后会恢复)

sudo firewall-cmd --set\-default\-zone-to=<new\-zone>

3、将接口移动到特定区域

sudo firewall-cmd --permanent --change-zone=<interface\> <new\-zone>

4、添加端口到指定区域

sudo firewall-cmd --zone=<zone> --add-port=<port>/<protocol> --permanent

5、删除端口

sudo firewall-cmd --zone=<zone> --remove-port=<port>/<protocol> --permanent

6、允许或禁止服务

sudo firewall-cmd --zone=<zone> --add-service=<service> --permanent
sudo firewall\-cmd --zone=<zone> --remove-service=<service> --permanent

7、允许或禁止单个 IP 地址

sudo firewall-cmd --zone=<zone> --add-rich-rule='rule family="ipv4" source address="<ip-address>" accept' sudo firewall\-cmd --zone=<zone> --remove-rich-rule='rule family="ipv4" source address="<ip-address>" accept'

8、重新加载配置文件(不会中断现有连接)

sudo firewall-cmd --reload

九、注意事项

  • 使用 --permanent 参数会将更改写入配置文件,这样更改在系统重启后仍然有效。
  • 不带 --permanent 参数的更改仅在当前会话中生效,重启 firewalld 或系统后会丢失。
  • 是你想要应用规则的区域名称,例如 public, internal, trusted 等。
  • 是预定义的服务名称,如 ssh, http, https 等。
  • 指定要开放的端口号,而 通常是 tcp 或 udp。

十、常用命令

查看防火墙清单
#查看所有已开放的临时端口  
firewall-cmd --list-all
#查看防火墙状态
systemctl status firewalld
#打开防火墙
systemctl start firewalld
#重启防火墙 
systemctl reload firewalld

开放或限制端口(端口开放,所有ip都可以访问)

#开放1521端口
firewall-cmd --zone=public --add-port=1521/tcp --permanent
#重新载入一下防火墙设置,使设置生效
firewall-cmd --reload
#通过如下命令查看1521是否生效
firewall-cmd --zone=public --query-port=1521/tcp
#系统打开的所有端口
firewall-cmd --zone=public --list-ports
#关掉刚刚打开的1521端口
firewall-cmd --zone=public --remove-port=1521/tcp --permanent
firewall-cmd --reload

批量开放或限制端口
批量开放端口,如从1001到1005这之间的端口我们全部要打开
firewall-cmd --zone=public --add-port=1001-1005/tcp --permanent
firewall-cmd --reload


开放或限制ip(设置规则)
  开放IP为192.168.1.1的地址允许访问1521端口

firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.1.1" port protocol="tcp" port="1521" accept"
firewall-cmd --reload

#查看已经设置的规则 

firewall-cmd --zone=public --list-rich-rules

限制IP为192.168.1.1的地址禁止访问1521端口即禁止访问机器

firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.1.1" port protocol="tcp" port="1521" reject"
firewall-cmd --reload

删除原设置规则

firewall-cmd --permanent --remove-rich-rule="rule family="ipv4" source address="192.168.1.1" port protocol="tcp" port="1521" accept"
firewall-cmd --reload

如设置未生效,可尝试直接编辑规则文件,删掉原来的设置规则,重新载入一下防火墙即可

vi /etc/firewalld/zones/public.xml

相关文章:

  • Python GUI打包工具对比与选择
  • Ip 等级
  • 拆解 “ES 已死“ 伪命题:Agentic RAG 时代搜索引擎的终极形态
  • 暴雨受邀参加AMD华南渠道分享会
  • 如何通过ibd文件恢复MySql数据
  • 机器视觉工程师红外相机的选择:红外长波工业相机和短波红外工业相机玄机大总结
  • e2studio开发RA4M2(2)---Programmer烧录程序
  • sql-labs less-1-5wp
  • Python入门教程:从零开始学习Python编程
  • Mybatis3 调用存储过程
  • 计算机二级web易错点(2)-选择题
  • 深入理解Linux网络随笔(七):容器网络虚拟化--Veth设备对
  • 【揭秘测绘艺术】从基础到法律,绘制地球的智慧蓝图
  • 计算机视觉算法实战——驾驶员分心检测(主页有源码)
  • idea更新git代码报错No Git Roots
  • 从零开始搭建搜索推荐系统(五十四)多路召回之万剑归宗
  • 树莓科技(成都)集团:如何铸就第五代产业园标杆
  • Redis内存淘汰策略
  • 【C++】每日一练(有效的括号)
  • 【如何使用云服务器与API搭建专属聊天系统:宝塔面板 + Openwebui 完整教程】
  • 网站导航条/上海网站建设费用
  • 小学生做网站/软文广告有哪些
  • 陕西省信用建设门户网站/南宁做网站公司
  • 目前做系统比较好的网站/代做百度关键词排名
  • 享学课堂 移动互联网开发/昆明seo关键词排名
  • 沈阳网站建设多少钱/外包平台