SELinux与Ubuntu防火墙(如UFW)配合使用需注意以下要点:
安装与启用
sudo apt install selinux-config
,初始化并设置为Permissive模式(记录违规但不阻止):sudo setenforce 0
,生产环境建议用Enforcing模式(强制执行策略):sudo setenforce 1
。sudo apt install ufw
,启用后设置默认策略(如拒绝入站、允许出站)。规则配置协调
ufw allow/deny
命令开放/关闭端口(如sudo ufw allow 22/tcp
允许SSH),规则会自动同步至iptables。semanage fcontext
设置文件/目录的安全上下文(如sudo semanage fcontext -a -t httpd_sys_content_t "/var/www(/.*)?"
),再用restorecon
应用上下文。sudo ufw allow 30022/tcp
),并在SELinux中添加端口规则(sudo semanage port -a -t ssh_port_t -p tcp 30022
)。避免冲突与验证
sestatus
查看SELinux模式,ufw status
查看防火墙规则,确保两者规则无冲突。/var/log/audit/audit.log
分析SELinux违规日志,调整策略避免误拦截。sudo systemctl restart ufw
、sudo systemctl restart ssh
),测试网络连通性和服务权限是否正常。注意:Ubuntu默认使用AppArmor而非SELinux,如需使用SELinux需手动安装配置,且部分场景可能需额外适配。生产环境中建议优先使用UFW管理网络流量,SELinux用于增强进程级安全控制。