SELinux实现网络隔离的机制与要点
一、核心机制
二、常见隔离手段与配置示例
端口绑定隔离(端口类型匹配)
# 1) 防火墙放行
firewall-cmd --permanent --add-port=8088/tcp
firewall-cmd --reload
# 2) 将 8088/TCP 标记为 http_port_t,使 httpd_t 可绑定
semanage port -a -t http_port_t -p tcp 8088
# 3) 验证与回滚
semanage port -l | grep http_port_t
semanage port -d -p tcp 8088 # 需要回滚时使用
服务对外连接隔离(布尔开关)
setsebool -P httpd_can_network_connect on
setsebool -P samba_enable_home_dirs on
基于域的进程间网络隔离
三、与防火墙的分工与配合
四、排错与运维要点
getenforce # 查看 Enforcing/Permissive/Disabled
setenforce 0/1 # 临时切换(重启失效)
ps -eZ | grep httpd # 进程域(如 httpd_t)
semanage port -l | grep http # 端口类型(如 http_port_t)
journalctl)中的 AVC 拒绝记录,可精确定位被拒的域/类型/操作。