防火墙:firewalld

一.官方文档
1.官方文档
https://firewalld.org/documentation/
2.红帽文档(中文)
https://docs.redhat.com/zh-cn/documentation/red_hat_enterprise_linux/9/html/configuring_firewalls_and_packet_filters/index
3.Netfilter官网文档(别的防火墙)
https://netfilter.org/documentation/


二.firewalld的配置文件
1. 主配置文件
cat /etc/firewalld/firewalld.conf
2.区域配置文件
ls /etc/firewalld/zones/

 

三.防火墙firewalld使用
1.查看所有可用区域
firewall-cmd --get-zones

企业微信截图_17568678132128

 

2.查看当前区域及其配置
firewall-cmd --get-active-zones
3.查看某个区域的详细信息(例如 public 区域)
firewall-cmd --zone=public --list-all
4.设置默认区域为 public
firewall-cmd --set-default-zone=public
5.允许服务
允许SSH服务
firewall-cmd --zone=public --add-service=ssh --permanent
允许HTTP服务
firewall-cmd --zone=public --add-service=ssh --permanent
允许HTTPS服务
firewall-cmd --zone=public --add-service=https --permanent
6.添加自定义端口
允许TCP端口8080
firewall-cmd --zone=public --add-port=8080/tcp --permanent
7.移除服务
移除HTTP服务
firewall-cmd --zone=public --remove-service=http --permanent
8.移除端口
移除TCP端口8080
firewall-cmd --zone=public --remove-port=8080/tcp --permanent
9.重新加载配置生效
firewall-cmd --reload
10.查看所有当前规则
firewall-cmd --list-all

企业微信截图_17568694349014

 

11.日志管理(firewalld 可以记录拒绝的流量。要启用日志)
sudo firewall-cmd --set-log-denied=all

 

四.firewalld的其他使用(转发)
1.查看firewalld是否运行
firewall-cmd --state

2.将 eth0 分配到 public 区域(可以将不同网口分配到不同的区域)
firewall-cmd --zone=public --add-interface=eth0

3.只允许某网段访问
firewall-cmd --permanent --zone=public --add-source=192.168.1.0/24
firewall-cmd --reload

4.端口转发设置
①启用 IP 伪装(Masquerade)
firewall-cmd --zone=public --add-masquerade --permanent
②转发到内部端口
firewall-cmd --zone=public --add-forward-port=port=80:proto=tcp:toport=8080 --permanent
firewall-cmd --reload
③转发到别的机器
firewall-cmd --zone=public --add-forward-port=port=80:proto=tcp:toaddr=192.168.1.100 --permanent
firewall-cmd --reload
④转发到别的机器别的端口
firewall-cmd --zone=public --add-forward-port=port=80:proto=tcp:toaddr=192.168.1.100:toport=8080 --permanent
firewall-cmd --reload

posted @ 2025-02-04 12:45  铿锵有力自信且坚定  阅读(35)  评论(0)    收藏  举报