Ubuntu默认安全机制与SELinux的关系
Ubuntu的默认安全增强工具是AppArmor,而非SELinux(Security-Enhanced Linux)。SELinux是一个内核级强制访问控制(MAC)模块,需手动安装配置,用于提供更细粒度的资源访问限制。若需同时使用SELinux与防火墙(Ubuntu默认使用ufw
),需分别配置两者并注意兼容性。
通过APT安装SELinux基础工具、策略及审计工具:
sudo apt update
sudo apt install selinux-basics selinux-policy-default auditd setools setools-gui selinux-policy-dev
运行以下命令激活SELinux(需重启系统使更改生效):
sudo selinux-activate
SELinux有三种运行模式,可通过setenforce
临时调整或修改配置文件永久生效:
临时切换模式:
sudo setenforce 0 # 切换至Permissive模式
sudo setenforce 1 # 切换至Enforcing模式
永久修改模式:编辑/etc/selinux/config
文件,将SELINUX=
行改为对应值(如SELINUX=enforcing
),然后重启系统。
Ubuntu默认未安装ufw,需通过APT安装:
sudo apt update
sudo apt install ufw
启用ufw以启动防火墙保护:
sudo ufw enable
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow 22/tcp # 允许SSH
sudo ufw allow 80/tcp # 允许HTTP
sudo ufw allow 443/tcp # 允许HTTPS
sudo ufw allow from 192.168.1.100
sudo ufw allow from 192.168.1.0/24
sudo ufw delete allow 22/tcp
verbose
模式显示详细信息):sudo ufw status
sudo ufw status verbose
sudo ufw disable
port_t
)控制进程对端口的访问。配置ufw规则时,需确保SELinux允许对应服务访问网络(如允许Apache访问80端口,需确认SELinux中http_port_t
包含80端口)。semanage
将端口添加至对应SELinux类型:sudo semanage port -a -t http_port_t -p tcp 8080 # 将8080/tcp添加至http_port_t类型
audit2allow
生成自定义策略:sudo ausearch -m avc -ts recent # 查找最近的SELinux拒绝事件
sudo audit2allow -M my-custom-policy # 生成自定义策略模块
sudo semodule -i my-custom-policy.pp # 加载自定义策略
通过以上步骤,可在Ubuntu系统中完成SELinux与ufw的配置,实现内核级强制访问控制与网络层流量过滤的双重安全保障。需根据实际需求调整规则,平衡安全性与可用性。