温馨提示×

CentOS下Apache安全设置指南

小樊
63
2025-05-10 22:54:34
栏目: 智能运维

在CentOS下配置Apache服务器以提高安全性是一个涉及多个层面的任务。以下是一个详细的安全设置指南:

1. 更新系统和Apache

  • 定期更新系统:确保安装了最新版本和Apache的安全补丁。
    sudo yum update 
  • 启用HTTPS:使用SSL/TLS证书加密通信。
    sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/pki/tls/private/server.key -out /etc/pki/tls/certs/server.crt 
    编辑httpd.conf文件,配置SSL证书和密钥路径:
    SSLCertificateFile /etc/pki/tls/certs/server.crt SSLCertificateKeyFile /etc/pki/tls/private/server.key 
    重启Apache服务:
    sudo systemctl restart httpd 

2. 强化SSH安全

  • 修改SSH端口:避免使用默认的22端口。
    vi /etc/ssh/sshd_config Port 10000 
  • 禁用root用户直接登录:使用普通用户登录后再切换到root。
    PermitRootLogin no 
  • 启用密钥认证:禁用密码认证。
    PasswordAuthentication no 
    重启SSH服务:
    sudo systemctl restart sshd 

3. 禁用未使用的服务和端口

  • 检查并禁用不需要的服务和端口
    service --status-all iptables -L 

4. 禁用不必要的Apache模块

  • 编辑httpd.conf文件,关闭不需要的模块。例如:
    # LoadModule cgi_module modules/mod_cgi.so # LoadModule php7_module modules/libphp7.so 

5. 防止信息泄露

  • 修改httpd.conf文件,隐藏服务器版本信息。例如:
    ServerTokens Prod ServerSignature Off 

6. 配置防火墙

  • 使用firewalld配置防火墙规则,允许HTTP(80)和HTTPS(443)流量。
    sudo firewall-cmd --permanent --zone public --add-service=http sudo firewall-cmd --permanent --zone public --add-service=https sudo firewall-cmd --reload 

7. 强化用户口令和保护口令文件

  • 设置复杂口令,包含大写字母、小写字母、数字和特殊字符,长度大于10位。
  • 使用chattr命令/etc/passwd/etc/shadow等文件加上不可更改属性。
    sudo chattr +i /etc/passwd sudo chattr +i /etc/shadow 

8. 防止未授权访问

  • 设置root账户自动注销时限:修改/etc/profile文件中的TMOUT参数。
    TMOUT 300 
  • 限制su命令:编辑/etc/pam.d/su文件,限制只有特定组的用户才能使用su命令切换到root。
    %pam-1.0 auth sufficient pam_wheel.so trust use uid 

9. 防止IP欺骗和DoS攻击

  • 编辑host.conf文件和设置资源限制,如最大进程数和内存使用量。

10. 启用SELinux

  • 启用并配置SELinux以增强系统安全性,限制Apache进程的权限。
    setenforce 1 

11. 监控和日志记录

  • 配置日志记录系统,以监控服务器的运行状态和安全事件。
    ErrorLog logs/error_log CustomLog logs/access_log common 

通过以上配置,可以显著提高CentOS Apache服务器的安全性,减少潜在的安全风险。建议定期检查和更新安全设置,以应对新的安全威胁。

0