以下是Ubuntu SELinux网络策略配置的核心技巧,需先安装selinux-basics等基础包并启用强制模式:
管理端口访问
semanage port -lsemanage port -a -t http_port_t -p tcp 8080(如允许HTTP服务使用8080端口)semanage port -d -t http_port_t -p tcp 8080控制进程网络访问
setsebool -P httpd_can_network_connect 1(针对HTTP服务)audit2allow工具生成规则。自定义策略模块
ausearch -m avc -ts recentaudit2allow -M mypolicysemodule -i mypolicy.pp文件上下文与网络服务隔离
chcon -R -t httpd_sys_content_t /var/www/htmlsemanage fcontext -a -t httpd_sys_content_t "/var/www/html(/.*)?"(持久化)网络命名空间隔离
ip netns创建隔离网络空间,配合SELinux限制进程仅能访问特定命名空间内的网络资源。sestatus(确认是否为enforcing模式)getsebool -a | grep httpd(查看布尔值状态)tail -f /var/log/audit/audit.log,分析拒绝事件并优化策略注意:SELinux配置复杂,建议在测试环境验证后再应用于生产环境,优先使用Ubuntu默认的AppArmor(更轻量且与系统兼容性更好)。
参考来源: