插件窝 干货文章 CentOS搭建web服务器的权限管理与访问控制策略

CentOS搭建web服务器的权限管理与访问控制策略

sudo bash httpd 权限 373    来源:    2025-04-12

CentOS Web服务器权限管理与访问控制策略

一、基础权限管理

1. 用户与组管理

  • 创建专用Web用户

    sudo useradd -r -s /sbin/nologin webuser
    
    • -r 创建系统用户
    • -s /sbin/nologin 禁止直接登录
  • 创建Web管理组

    sudo groupadd webadmins
    sudo usermod -aG webadmins webuser
    

2. 文件和目录权限

  • Web根目录权限设置

    sudo chown -R webuser:webadmins /var/www/html
    sudo chmod -R 750 /var/www/html
    sudo find /var/www/html -type d -exec chmod 2750 {} \;
    
    • 2750 设置SGID位,保持组继承
  • 敏感文件保护

    sudo chmod 640 /var/www/html/config.php
    sudo chattr +i /var/www/html/config.php  # 防止修改(谨慎使用)
    

二、SELinux配置

1. 基本策略

  • 检查SELinux状态

    sestatus
    getenforce
    
  • 设置Web目录上下文

    sudo semanage fcontext -a -t httpd_sys_content_t "/var/www/html(/.*)?"
    sudo restorecon -Rv /var/www/html
    

2. 允许Web服务器访问特定目录

sudo setsebool -P httpd_read_user_content 1
sudo setsebool -P httpd_enable_homedirs 1

三、防火墙配置

1. Firewalld设置

sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload

2. 限制访问IP

sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" service name="http" accept'
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="203.0.113.5" service name="http" accept'
sudo firewall-cmd --reload

四、Web服务器特定配置

1. Apache配置

  • 目录限制

    <Directory /var/www/html/private>
      Require ip 192.168.1.0/24
      Require valid-user
      AuthType Basic
      AuthName "Restricted Area"
      AuthUserFile /etc/httpd/conf/.htpasswd
    </Directory>
    
  • 禁用目录列表

    Options -Indexes
    

2. Nginx配置

  • 访问控制nginx location /admin { allow 192.168.1.0/24; deny all; auth_basic "Restricted"; auth_basic_user_file /etc/nginx/.htpasswd; }

五、日志与监控

1. 日志配置

# 设置日志权限
sudo chmod 640 /var/log/httpd/*
sudo chown root:webadmins /var/log/httpd/*

2. 日志轮转

# 编辑/etc/logrotate.d/httpd
/var/log/httpd/*log {
    missingok
    notifempty
    sharedscripts
    delaycompress
    postrotate
        /bin/systemctl reload httpd.service > /dev/null 2>/dev/null || true
    endscript
}

六、定期维护

  1. 定期审计权限

    sudo find /var/www/html -type f -perm /o=w -ls
    sudo audit2allow -a  # 查看SELinux拒绝记录
    
  2. 更新策略

    sudo yum update -y
    sudo setroubleshoot  # SELinux问题诊断
    

通过以上策略,您可以构建一个安全可靠的CentOS Web服务器环境,有效控制访问权限并防范潜在安全威胁。