centos selinux端口访问控制

CentOS中SELinux通过端口标记控制服务对端口的访问权限,核心操作如下:

  1. 查看SELinux状态
    sestatus  # 查看是否启用(Enforcing/Permissive/Disabled)  
    
  2. 查看端口标记规则
    semanage port -l  # 列出所有端口类型及对应服务(如http_port_t对应80、443端口)  
    
  3. 添加端口标记(允许服务使用非默认端口)
    sudo semanage port -a -t <服务类型> -p<协议> <端口号>  
    # 示例:允许HTTP服务使用8080端口  
    sudo semanage port -a -t http_port_t -p tcp 8080  
    
  4. 删除或修改端口标记
    sudo semanage port -d -t <服务类型> -p<协议> <端口号>  # 删除标记  
    sudo semanage port -m -t <新类型> -p<协议> <端口号>    # 修改标记类型  
    
  5. 临时/永久调整SELinux模式
    • 临时设为宽容模式(不阻止违规操作,仅记录日志):
      setenforce 0  
      
    • 永久修改模式:编辑/etc/selinux/config,设置SELINUX=permissiveSELINUX=disabled(不推荐禁用)。

注意:修改后需重启服务或系统使策略生效,且需确保服务配置中监听地址为0.0.0.0或对应IP。

参考来源: