CentOS Apache安全设置的要点主要包括以下几个方面:
定期更新系统和软件:
yum update httpd命令更新Apache。设置和保护SSH:
禁用未使用的服务和端口:
service --status-all和iptables -L命令查看服务和端口状态。禁用不必要的Apache模块:
httpd.conf文件,禁用不需要的模块。使用指定的用户和组运行Apache:
nobody。httpd.conf文件,设置User和Group指令。防止信息泄露:
httpd.conf文件,设置ServerSignature和ServerTokens指令为Off或Prod。隐藏PHP版本信息:
php.ini文件,将expose_php参数设置为Off。禁用自动索引模块:
强化用户口令:
/etc/login.defs文件,设置PASS_MIN_LEN和PASS_MAX_DAYS参数。保护口令文件:
chattr命令给/etc/passwd, /etc/shadow, /etc/group, 和/etc/gshadow文件加上不可更改属性。chattr +i /etc/passwd。设置root账户自动注销时限:
/etc/profile文件中的TMOUT参数,设置root账户的自动注销时限。TMOUT=300。限制su命令:
/etc/pam.d/su文件,限制只有特定组的用户才能使用su命令切换到root。usermod –G wheel username。禁用ctrl+alt+delete重启命令:
/etc/inittab文件,禁用ctrl+alt+delete组合键重启机器的命令。设置开机启动服务权限:
/etc/rc.d/init.d/目录下所有文件的权限,确保只有root用户可以操作这些服务。防止IP欺骗和DoS攻击:
host.conf文件和设置资源限制,如最大进程数和内存使用量。tcp_max_syn_backlog, tcp_syncookies, tcp_synack_retries和tcp_syn_retries。启用HTTPS:
限制HTTP方法和POST数据大小:
Limit或LimitExcept指令限制不必要的HTTP方法,如PUT, DELETE等。LimitRequestBody指令限制POST请求的数据大小。配置访问控制和认证:
.htaccess文件或全局配置中的AuthType, AuthName, AuthUserFile, 和Require指令实施认证。错误页面定制:
ErrorDocument 404 /errors/404.html。日志监控和审计:
禁用服务器签名:
ServerSignature Off和ServerTokens Prod以隐藏服务器的版本信息。优化文件和目录权限:
防火墙规则:
禁用或限制使用.htaccess文件:
AllowOverride None,以提高性能并减少潜在的安全风险。使用ModSecurity或其他WAF:
通过这些安全配置方法,可以显著提高CentOS上Apache Web服务器的安全性。