目录
一、什么是防火墙?
二、防火墙的工作原理?
三、Firewalld的区域默认配置?四、SELinux端口标记是什么,如何控制SELinux端口标记?
防火墙(Firewall) 是一种网络安全系统,用于监控和控制进出网络的流量,基于预定义的安全规则允许或阻止数据包的传输。它的主要功能包括流量过滤、访问控制、防止攻击、网络地址转换(NAT)以及日志记录和监控。防火墙可以分为网络层防火墙、应用层防火墙、状态检测防火墙和下一代防火墙(NGFW),部署位置包括边界防火墙、内部防火墙和主机防火墙。防火墙通过保护网络免受外部威胁和内部滥用,是网络安全的基础设施。
在红帽企业Linux(RHEL)中,防火墙功能主要通过 firewalld 服务实现。firewalld 是一个动态管理防火墙的工具,支持区域(zone)和服务(service)的概念,能够灵活地管理网络流量。
1. firewalld 的核心概念
2. firewalld 的常用命令
sudo systemctl start firewalld # 启动 firewalld
sudo systemctl stop firewalld # 停止 firewalld
sudo systemctl enable firewalld # 设置 firewalld 开机自启
sudo systemctl disable firewalld # 禁用 firewalld 开机自启
sudo systemctl status firewalld # 查看 firewalld 状态
sudo firewall-cmd --get-default-zone
sudo firewall-cmd --list-all
sudo firewall-cmd --add-service=http --permanent
sudo firewall-cmd --reload
sudo firewall-cmd --add-port=8080/tcp --permanent
sudo firewall-cmd --reload
sudo firewall-cmd --set-default-zone=internal
sudo firewall-cmd --remove-service=http --permanent
sudo firewall-cmd --remove-port=8080/tcp --permanent
sudo firewall-cmd --reload
防火墙的工作原理是通过监控和控制进出网络的流量,基于预定义的安全规则允许或阻止数据包的传输。以下是防火墙工作原理的详细说明:
1. 流量过滤
2. 规则匹配
3. 状态检测
4. 网络地址转换(NAT)
5. 应用层过滤
6. 日志记录和监控
7. 防御攻击
8. 工作模式
总结
防火墙通过流量过滤、规则匹配、状态检测、NAT、应用层过滤、日志记录和防御攻击等功能,保护网络免受未经授权的访问和恶意攻击。它是网络安全的基础设施,能够有效提升网络的安全性。
在红帽企业Linux(RHEL)中,firewalld 使用 区域(Zone) 来管理不同网络环境下的防火墙规则。每个区域都有一组预定义的规则,用于控制流量。以下是几个比较重要的默认区域及其配置:
1. 公共区域(public)
2. 受信任区域(trusted)
3. 内部区域(internal)
4. 工作区域(work)
5. 家庭区域(home)
6. 隔离区域(DMZ)
7. 阻塞区域(block)
8. 丢弃区域(drop)
9. 外部区域(external)
SELinux(Security-Enhanced Linux) 是一种强制访问控制(MAC)机制,用于增强 Linux 系统的安全性。SELinux 不仅控制文件和进程的访问权限,还可以控制网络端口的访问。SELinux 端口标记是指为网络端口分配的安全上下文(Security Context),用于限制哪些服务可以绑定到特定端口。
1. SELinux 端口标记的作用
2. 查看 SELinux 端口标记
sudo semanage port -l
http_port_t tcp 80, 81, 443, 488, 8008, 8009, 8443, 9000
ssh_port_t tcp 22
表示 http_port_t 类型的服务可以使用 TCP 端口 80、443 等。
3. 控制 SELinux 端口标记
添加端口标记
sudo semanage port -a -t http_port_t -p tcp 8080
删除端口标记
sudo semanage port -d -t http_port_t -p tcp 8080
修改端口标记
sudo semanage port -m -t my_custom_port_t -p tcp 8080
4. 恢复默认 SELinux 端口标记
sudo semanage port -D
sudo load_policy