Linux系统自带防火墙常用设置教程

在 Linux 系统中,防火墙是保护网络安全的重要工具之一。通过配置防火墙规则,可以限制网络流量并保护系统免受潜在的网络攻击。本篇文章将介绍Linux系统自带防火墙的设置命令,包括查看、开启、关闭、给指定的IP开放/关闭指定的端口以及其他常用命令。

一、查看/开启/关闭防火墙

1、查看服务器的防火墙状态命令

// 查看防火墙状态
systemctl status firewalld

2、开启和关闭防火墙命令

// 开启防火墙
systemctl start firewalld
// 关闭防火墙
systemctl stop firewalld
// 开机启动
systemctl enable firewalld
// 开机关闭
systemctl disable firewalld

当我们开启了linux的防火墙后,对该服务器的网络访问将受到控制。

二、查看/开放/关闭端口

1、查看开放端口命令

// 查询打开的端口
firewall-cmd --zone=public --list-ports

2、开放指定端口命令

firewall-cmd --zone=public --add-port=8888/tcp --permanent (–permanent永久生效,没有此参数重启后失效)
//重新载入一下防火墙设置,使设置生效
firewall-cmd --reload

3、关闭指定端口命令

//关闭端口8888
firewall-cmd --zone=public --remove-port=8888/tcp --permanent
//重新载入一下防火墙设置,使设置生效
firewall-cmd --reload

三、给指定的IP开放/关闭指定的端口

1、给指定端口开放指定的IP

// 允许ip127.0.0.1访问8888端口
firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="127.0.0.1" port protocol="tcp" port="8888" accept"

这里需要注意一点,如果之前8888端口已经设置允许全部IP访问,在上面我们指定访问IP白名单以后需要关闭允许全部IP访问,不然起不到只允许特定IP访问的效果。

2、关闭指定端口对所有IP访问的设置

//关闭端口8888对所有IP开发的访问
firewall-cmd --zone=public --remove-port=8888/tcp --permanent

//重新载入一下防火墙设置,使设置生效
firewall-cmd --reload

//查看已设置规则
firewall-cmd --zone=public --list-rich-rules

3、删除规则操作

限制IP为127.0.0.1的地址禁止访问8888端口即禁止访问机器:

firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="127.0.0.1" port protocol="tcp" port="8888" reject"

删除已设置规则:

firewall-cmd --permanent --remove-rich-rule="rule family="ipv4" source address=" 127.0.0.1" port protocol="tcp" port="8888" accept"

四、防火墙设置只允许特定IP远程连接sshd服务

我们知道centos7版本可以在/etc/hosts.allow 和/etc/hosts.deny文件设置允许或者拒绝sshd连接的IP地址,实现除了指定IP允许访问以外拒绝其它IP连接,实现基础安全。但是在centos8版本以后系统取消了这个功能项。如何通过防火墙规则实现这一安全需求呢?

下面的命令将配置192.168.1.0/24整个网段的IP允许访问服务器的22端口:

// 先移除默认开启的没有访问限制的ssh服务
# firewall-cmd --permanent --remove-service=ssh

// 添加复杂规则,只允许指定IP段访问22端口
# firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" port protocol="tcp" port="22" accept'

// 使上面配置生效
# firewall-cmd --reload

// 查看当前配置信息
# firewall-cmd --list-all

五、规则的持久化位置

以上配置都会持久化的存储在一个文件里面,使用如下命令查看:

vi /etc/firewalld/zones/public.xml

六、其他常用命令

1、开放指定服务(系统内置的)

firewall-cmd --permanent --add-service=http

2、删除服务

firewall-cmd --permanent --remove-service=http

3、添加白名单地址(单IP)

firewall-cmd --permanent --add-source=192.168.1.100

4、添加白名单地址(指定网络段CIDR格式)

firewall-cmd --permanent --add-source=192.168.1.0/24

5、删除白名单地址

firewall-cmd --permanent --remove-source=192.168.1.100

6、屏蔽指定IP地址

firewall-cmd --permanent --add-rich-rule="rule family='ipv4' source address='192.168.1.100' reject"

7、屏蔽IP地址段

firewall-cmd --permanent --add-rich-rule="rule family='ipv4' source address='192.168.1.0/24' reject"

8、手动编辑xml配置文件

除了上面的命令添加规则外,还可以直接编辑/etc/firewalld/zones/public.xml文件(改完后记得执行firewall-cmd --reload生效)

9、查看防火墙清单

firewall-cmd --list-all

10、通过如下命令查看8888是否生效

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

11、批量开放或限制端口

批量开放端口,如从7000到7005这之间的端口我们全部要打开:

firewall-cmd --zone=public --add-port=7000-7005/tcp --permanent
firewall-cmd --reload

批量限制端口为:

firewall-cmd --zone=public --remove-port=7000-7005/tcp --permanent
firewall-cmd --reload

七、其它firewalld相关命令

#进程与状态相关
systemctl start firewalld.service #启动防火墙 
systemctl stop firewalld.service #停止防火墙 
systemctl status firewalld #查看防火墙状态
systemctl enable firewalld #设置防火墙随系统启动
systemctl disable firewalld #禁止防火墙随系统启动
firewall-cmd --state #查看防火墙状态 
firewall-cmd --reload #更新防火墙规则 
firewall-cmd --list-ports #查看所有打开的端口 
firewall-cmd --list-services #查看所有允许的服务 
firewall-cmd --get-services #获取所有支持的服务 

#区域相关
firewall-cmd --list-all-zones #查看所有区域信息 
firewall-cmd --get-active-zones #查看活动区域信息 
firewall-cmd --set-default-zone=public #设置public为默认区域 
firewall-cmd --get-default-zone #查看默认区域信息 

#接口相关
firewall-cmd --zone=public --add-interface=eth0 #将接口eth0加入区域public
firewall-cmd --zone=public --remove-interface=eth0 #从区域public中删除接口eth0 
firewall-cmd --zone=default --change-interface=eth0 #修改接口eth0所属区域为default 
firewall-cmd --get-zone-of-interface=eth0 #查看接口eth0所属区域 

#端口控制
firewall-cmd --query-port=8080/tcp # 查询端口是否开放
firewall-cmd --add-port=8080/tcp --permanent #永久添加8080端口例外(全局)
firewall-cmd --remove-port=8800/tcp --permanent #永久删除8080端口例外(全局)
firewall-cmd --add-port=65001-65010/tcp --permanent #永久增加65001-65010例外(全局) 
firewall-cmd --zone=public --add-port=8080/tcp --permanent #永久添加8080端口例外(区域public)
firewall-cmd --zone=public --remove-port=8080/tcp --permanent #永久删除8080端口例外(区域public)
firewall-cmd --zone=public --add-port=65001-65010/tcp --permanent #永久增加65001-65010例外(区域public)

总的来说,Linux系统的防火墙是一个非常重要的安全工具,它能帮助保护你的服务器不受不必要的网络攻击。以上常见命令希望能够帮到大家。

广告合作
QQ群号:707632017

温馨提示:

1、本网站发布的内容(图片、视频和文字)以原创、转载和分享网络内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。邮箱:2942802716#qq.com(#改为@)。

2、本站原创内容未经允许不得转裁,转载请注明出处“站长百科”和原文地址。

热门教程

  • Z-Blog教程
    Z-Blog教程
    ZBlog教程分享ZBlog安装教程、ZBlog建站教程和ZBlog使用教程等相关教程,包括如何创建...
  • WordPress教程
    WordPress教程
    WordPress教程提供了关于WordPress的基础知识和技巧,包括安装、设置、发布内容、选择主...
  • 宝塔面板教程
    宝塔面板教程
    宝塔面板教程是一个致力于向用户传授宝塔面板的使用技巧和知识的学习资源,旨在帮助用户快速上手和充分利用...
  • Shopify教程
    Shopify教程
    Shopify教程提供了关于Shopify平台的基本知识和操作指南,包括商店设置、商品管理、订单处理...
  • PHP教程
    PHP教程
    PHP教程提供了关于PHP语法、变量、函数、流程控制等概念的详细指导,同时介绍了常见的Web开发技术...

3个月免费VPS

亚马逊云科技

阿里云