首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >CentOS 7安装Firewalld防火墙与常用命令

CentOS 7安装Firewalld防火墙与常用命令

作者头像
星哥玩云
发布2022-08-13 14:34:04
发布2022-08-13 14:34:04
3.2K00
代码可运行
举报
文章被收录于专栏:开源部署开源部署
运行总次数:0
代码可运行

firewalld是Linux操作系统的防火墙管理工具。它通过充当Linux内核的netfilter框架的前端来提供防火墙功能,就像iptables一样。

安装firewalld

默认情况下CentOS 7可能已经安装了firewalld服务,若确实没有安装直接使用yum命令安装即可:

代码语言:javascript
代码运行次数:0
运行
复制
#安装firewalld
yum -y install firewalld

运行firewalld之前的准备

firewalld默认规则已经放行SSH服务(22端口),但如果您修改过SSH端口,则必须先放行,否则一旦启用firewalld将被阻挡在外,无法连接服务器,那就杯了个具。

比如您将SSH端口修改为了2018,可尝试直接编辑firewalld的配置文件vi /etc/firewalld/zones/public.xml,里面加入一条规则:

代码语言:javascript
代码运行次数:0
运行
复制
<port protocol="tcp" port="2018"/>

另外直接修改配置文件的方法不太推荐,而且容易改错,最近了解到firewall-offline-cmd命令可在firewalld离线的时候执行:

代码语言:javascript
代码运行次数:0
运行
复制
firewall-offline-cmd --zone=public --add-port=2018/tcp

接着输入命令:systemctl start firewalld来启动firewalld,这样就不会阻挡在外啦。

常用命令

安装完成后firewalld并没有运行,有必要先来熟悉下基本的命令:

代码语言:javascript
代码运行次数:0
运行
复制
#查看运行状态
firewall-cmd --state
#启动firewall
systemctl start firewalld
#设置开机自启
systemctl enable firewalld
#删除开机自启
systemctl disable firewalld
#停止firewall
systemctl stop firewalld

如果您在启动的时候提示“Failed to start firewalld.service: Unit firewalld.service is masked.”,输入下面的命令可解决:

代码语言:javascript
代码运行次数:0
运行
复制
systemctl unmask firewalld.service

一些常用的列子

放行某个指定的TCP端口,如放行80端口:

代码语言:javascript
代码运行次数:0
运行
复制
firewall-cmd --zone=public --add-port=80/tcp --permanent

放行端口范围(8000-9000):

代码语言:javascript
代码运行次数:0
运行
复制
firewall-cmd --zone=public --add-port=8000-9000/tcp --permanent

查看已经放行的端口:

代码语言:javascript
代码运行次数:0
运行
复制
firewall-cmd --zone=public --list-ports

删除某个已经放行的端口(6022):

代码语言:javascript
代码运行次数:0
运行
复制
firewall-cmd --zone=public --remove-port=6022/tcp --permanent

阻止某个IP(123.57.22.204)连接:

代码语言:javascript
代码运行次数:0
运行
复制
firewall-cmd --permanent --add-rich-rule="rule family=ipv4 source address=123.57.22.204 reject"

仅允许特定的IP访问特定的端口:

代码语言:javascript
代码运行次数:0
运行
复制
firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="101.32.40.130" port protocol="tcp" port="3306" accept"

注意上面的所有列子都需要输入: firewall-cmd --reload重载firewall使其生效。

总结

个人感觉firewalld使用起来比iptables简单,CentOS 7默认使用firewalld作为防火墙也肯定是有原因的,因此赶紧把这篇文章收藏了肯定没坏处(此处应有一个坏笑的表情)。上面仅提供了firewalld的基本使用方法,应对大部分情况应该足够了,如果需要详细了解参数含义可网上自行搜索。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 安装firewalld
  • 运行firewalld之前的准备
  • 常用命令
  • 一些常用的列子
  • 总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档