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

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
设置默认区域为public:sudo 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
检查是否允许伪装IP:sudo firewall-cmd --query-masquerade
允许伪装IP:sudo firewall-cmd --add-masquerade
禁止伪装IP:sudo 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端口都将被添加到公共区域,并设置为永久生效。
各位小伙伴们,我刚刚为大家分享了有关“服务器防火墙命令”的知识,希望对你们有所帮助。如果您还有其他相关问题需要解决,欢迎随时提出哦!
【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!
发表回复