如何正确使用服务器防火墙命令来保护网络安全?

服务器防火墙命令是用于管理和配置服务器防火墙的关键工具,它们帮助管理员控制网络流量,保护服务器免受未经授权的访问,以下是一些常用的服务器防火墙命令及其详细解释:

一、查看防火墙状态

服务器防火墙命令

1、systemctl status firewalld

功能:查看firewalld服务的状态。

示例sudo systemctl status firewalld

输出:显示firewalld服务的当前状态(如运行中、已停止等)。

2、firewall-cmd –state

功能:查看firewalld的状态。

示例sudo firewall-cmd --state

服务器防火墙命令

输出:显示firewalld的运行状态(running表示正在运行,not running表示未运行)。

3、firewall-cmd –version

功能:查看firewalld的版本信息。

示例sudo firewall-cmd --version

输出:显示firewalld的版本号和构建日期等信息。

二、启动与关闭防火墙

1、启动防火墙

systemctl start firewalld

服务器防火墙命令

功能:启动firewalld服务。

示例sudo systemctl start firewalld

2、停止防火墙

systemctl stop firewalld

功能:停止firewalld服务。

示例sudo systemctl stop firewalld

3、重启防火墙

systemctl restart firewalld

功能:重启firewalld服务。

示例sudo systemctl restart firewalld

4、重新加载防火墙规则

firewall-cmd –reload

功能:重新加载firewalld的规则,无需重启服务。

示例sudo firewall-cmd --reload

5、完全重启防火墙

firewall-cmd –complete-reload

功能:完全重启firewalld服务,包括断开所有现有连接。

示例sudo firewall-cmd --complete-reload(注意:此操作会断开所有现有连接,请谨慎使用)

三、配置防火墙规则

1、添加放行端口

永久添加

命令sudo firewall-cmd --zone=public --add-port=8080/tcp --permanent

示例:将8080端口添加到公共区域,并设置为永久生效。

临时添加

命令sudo firewall-cmd --zone=public --add-port=8080/tcp

示例:临时将8080端口添加到公共区域,重启后失效。

2、移除放行端口

永久移除

命令sudo firewall-cmd --zone=public --remove-port=8080/tcp --permanent

示例:从公共区域永久移除8080端口。

临时移除

命令sudo firewall-cmd --zone=public --remove-port=8080/tcp

示例:临时从公共区域移除8080端口,重启后失效。

3、查询端口状态

命令sudo firewall-cmd --zone=public --query-port=8080/tcp

示例:查询8080端口在公共区域的状态(是否开放)。

4、按服务管理规则

查询支持的服务列表sudo firewall-cmd --get-services

查询已开放的服务列表sudo firewall-cmd --zone=public --list-services

永久开放服务sudo firewall-cmd --permanent --zone=public --add-service=http

临时开放服务sudo firewall-cmd --zone=public --add-service=http

永久移除服务sudo firewall-cmd --permanent --zone=public --remove-service=http

临时移除服务sudo firewall-cmd --zone=public --remove-service=http

四、其他高级配置

1、设置默认区域

查看默认区域sudo firewall-cmd --get-default-zone

设置默认区域为publicsudo firewall-cmd --set-default-zone=public

2、修改区域属性

查看区域属性sudo firewall-cmd --zone=public --list-all

修改区域目标sudo firewall-cmd --zone=block --change-interface=eth0 --permanent(将eth0接口移动到block区域)

3、ICMP阻止反转

查看ICMP阻止反转状态sudo firewall-cmd --zone=public --query-icmp-block-inversion

启用ICMP阻止反转sudo firewall-cmd --zone=public --add-icmp-block-inversion

禁用ICMP阻止反转sudo firewall-cmd --zone=public --remove-icmp-block-inversion

4、端口转发

本机端口转发:将80端口的流量转发至8080端口

命令sudo firewall-cmd --permanent --zone=public --add-forward-port=port=80:proto=tcp:toport=8080

服务器之间转发:将本机80端口的流量转发至另一台服务器的8080端口

命令sudo firewall-cmd --permanent --zone=public --add-forward-port=proto=80:proto=tcp:toaddr=192.168.1.0.12:toport=8080

移除端口转发规则sudo firewall-cmd --permanent --zone=public --remove-forward-port=port=80:proto=tcp:toport=8080

5、伪装IP

检查是否允许伪装IPsudo firewall-cmd --query-masquerade

允许伪装IPsudo firewall-cmd --add-masquerade

禁止伪装IPsudo firewall-cmd --remove-masquerade

五、UFW防火墙命令(适用于Ubuntu等基于Debian的系统)

UFW(Uncomplicated Firewall)是Ubuntu系统中常用的防火墙管理工具,以下是一些基本的UFW命令:

1、检查UFW状态

命令sudo ufw status

输出:显示UFW的当前状态(如inactive表示未激活,active表示已激活)。

2、启动UFW

命令sudo ufw enable

功能:启动UFW防火墙。

3、关闭UFW

命令sudo ufw disable

功能:关闭UFW防火墙。

4、添加规则

允许所有IP访问8080端口sudo ufw allow 8080/tcp

指定IP和端口访问sudo ufw allow from 192.168.3.101 to any port 3306 proto tcp(允许来自192.168.3.101的IP访问任何服务器上的3306端口,协议为TCP)

5、删除规则

根据规则编号删除:首先查看当前规则列表sudo ufw status numbered,然后根据编号删除规则sudo ufw delete 1(替换1为相应的编号)

根据特定端口删除sudo ufw delete allow from 192.168.3.101 to any port 3306(删除允许从192.168.3.101访问3306端口的规则)

根据特定IP删除sudo ufw delete allow from 192.168.3.101(删除允许192.168.3.101访问所有端口的规则)

六、Docker与UFW的兼容性问题及解决方案

在Linux系统中使用Docker时,可能会遇到Docker绕过UFW防火墙的问题,为了解决这个问题,可以禁用Docker的默认iptables规则,具体步骤如下:

1、编辑Docker配置文件:打开Docker的配置文件/etc/docker/daemon.json(如果文件不存在,则创建一个新的JSON文件)。

2、添加iptables配置:在文件中添加以下内容以禁用Docker的iptables规则。

   {
     "iptables": false
   }

3、保存并退出编辑器

4、重启Docker服务:执行sudo systemctl restart docker 以使配置生效。

通过以上步骤,可以确保Docker容器中的网络规则不会与UFW防火墙规则产生冲突,从而增强系统的安全性。

七、FAQs

问题1:如何更改firewalld的默认区域为drop?

答:要将firewalld的默认区域更改为drop,可以按照以下步骤操作:

1、查看当前默认区域:执行sudo firewall-cmd --get-default-zone

2、如果当前默认区域不是drop,执行以下命令将其更改为drop:

   sudo firewall-cmd --set-default-zone=drop

3、验证更改是否成功:再次执行sudo firewall-cmd --get-default-zone,确认输出为drop。

问题2:如何在firewalld中添加多个连续端口?

答:在firewalld中添加多个连续端口,可以使用“-”符号来指定端口范围,要添加8000到8080之间的所有端口,可以执行以下命令:

sudo firewall-cmd --permanent --zone=public --add-port=8000-8080/tcp

然后重新加载防火墙规则以使更改生效:

sudo firewall-cmd --reload

这样,8000到8080之间的所有TCP端口都将被添加到公共区域,并设置为永久生效。

各位小伙伴们,我刚刚为大家分享了有关“服务器防火墙命令”的知识,希望对你们有所帮助。如果您还有其他相关问题需要解决,欢迎随时提出哦!

【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!

(0)
热舞的头像热舞
上一篇 2024-12-21 17:05
下一篇 2024-12-21 17:35

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

QQ-14239236

在线咨询: QQ交谈

邮件:asy@cxas.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信