环境
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