首页服务器教程Linux系统自带防火墙常用设置教程

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

2024-02-29 28

在 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、本站原创内容未经允许不得转裁,转载请注明出处“站长百科”和原文地址。

相关文章