环境

centos7.9

之前由于各类原因,装完系统第一时间就是关墙,但在线上环境才发现,墙真是好东西啊

配置

1. 启动、停止和重启防火墙

  • 启动防火墙
bash复制代码
 sudo systemctl start firewalld
  • 停止防火墙
bash复制代码
 sudo systemctl stop firewalld
  • 重启防火墙
bash复制代码
 sudo systemctl restart firewalld

2. 防火墙状态检查

  • 查看防火墙状态
bash复制代码
 sudo systemctl status firewalld
  • 设置防火墙开机自启
bash复制代码
 sudo systemctl enabled firewalld

3. 配置防火墙规则

开放端口

  • 添加单个端口(例如,开放80端口):
bash复制代码
 sudo firewall-cmd --zone=public --add-port=80/tcp --permanent  
 
 sudo firewall-cmd --reload

注意:--permanent 参数表示永久生效,修改后需要执行 firewall-cmd --reload 使更改生效。

  • 添加端口范围(例如,开放20000-29999端口):
bash复制代码
 sudo firewall-cmd --zone=public --add-port=20000-29999/tcp --permanent  
 
 sudo firewall-cmd --reload

允许服务

  • 允许特定服务(例如,允许HTTP服务):
bash复制代码
 sudo firewall-cmd --zone=public --add-service=http --permanent  
 
 sudo firewall-cmd --reload
  • 查看可用的服务
bash复制代码
 sudo firewall-cmd --get-services

允许或拒绝特定IP

  • 允许特定IP访问(例如,允许192.168.100.100访问):
bash复制代码
 sudo firewall-cmd --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.100.100/32" accept' --permanent  
 
 sudo firewall-cmd --reload
  • 拒绝特定IP访问(例如,拒绝192.168.100.100访问):
bash复制代码
 sudo firewall-cmd --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.100.100/32" reject' --permanent  
 
 sudo firewall-cmd --reload

查看和删除规则

  • 查看当前开放的端口
bash复制代码
 sudo firewall-cmd --list-ports
  • 查看所有规则
bash复制代码
 sudo firewall-cmd --list-all
  • 删除特定端口
bash复制代码
 sudo firewall-cmd --zone=public --remove-port=80/tcp --permanent  
 
 sudo firewall-cmd --reload
  • 删除特定IP规则
bash复制代码
 sudo firewall-cmd --zone=public --remove-rich-rule='rule family="ipv4" source address="192.168.100.100/32" accept' --permanent  
 
 sudo firewall-cmd --reload

4. 防火墙区域管理

  • 查看所有区域
bash复制代码
 sudo firewall-cmd --get-zones
  • 查看默认区域
bash复制代码
 sudo firewall-cmd --get-default-zone
  • 设置默认区域
bash复制代码
 sudo firewall-cmd --set-default-zone=home