SELinux对网络服务的主要限制
一 核心机制与运行模式
getenforce、setenforce 0|1、sestatus、/etc/selinux/config 配置持久化。二 对网络服务的典型限制维度
三 常见服务与限制示例
| 服务 | 典型域/标签 | 常见限制 | 放行方式示例 |
|---|---|---|---|
| Apache httpd | 进程域:httpd_t;内容:httpd_sys_content_t(只读)、httpd_sys_content_rw_t(读写)、httpd_sys_script_exec_t(CGI) | 不能读 user_home_t、samba_share_t;默认仅能绑定 http_port_t 端口 | 将目录标记为相应类型(如 semanage fcontext -a -t httpd_sys_content_t "/myweb(/.*)?" && restorecon -R /myweb);端口改用策略允许端口或用 semanage port 添加;外连数据库开启 setsebool -P httpd_can_network_connect 1 |
| Samba | 进程域:smbd_t | 与其他受限服务域隔离;共享目录需正确类型 | 为共享目录设置 samba_share_t 等合适类型 |
| FTP | 进程域:vsftpd_t | 上传/写入需目录为 public_content_rw_t;家目录访问受控 | 通过布尔值启用/禁用家目录访问、写入等能力 |
| NFS/CIFS 客户端访问 | 挂载点类型:nfs_t/cifs_t | httpd 等默认不可读/写 | 开启布尔值(如 httpd_use_nfs、httpd_use_cifs)以放行访问 |
四 排错与配置要点
getenforce、sestatus;临时切换 setenforce 0|1(在 Enforcing/Permissive 间切换无需重启;改为 Disabled 需重启)。ls -lZ、ps -eZ;必要时修正类型:chcon(临时)或 semanage fcontext + restorecon(永久)。semanage port -a -t http_port_t -p tcp 12345 将端口加入允许列表。getsebool -a | grep httpd 查看;setsebool -P httpd_can_network_connect 1 永久生效。/var/log/audit/audit.log),或用 ausearch -m avc -ts recent、aureport -a 分析。五 与防火墙的关系