CentOS Apache2的安全设置包括多个方面,以下是一些关键的安全配置措施:
-
定期更新系统:
- 确保安装了最新版本和Apache的安全补丁。
- 使用
yum update
命令更新系统。
-
设置和保护SSH安全:
- 修改SSH端口,避免使用默认的22端口。
- 禁用root用户直接登录,使用普通用户登录后再切换到root。
- 启用密钥认证,禁用密码认证。
- 配置
/etc/ssh/sshd_config
文件,例如:Port 10000 PermitRootLogin no PasswordAuthentication no
- 重启SSH服务:
sudo systemctl restart sshd
-
禁用未使用的服务:
- 检查并禁用不需要的服务和端口。
- 使用
service --status-all
查看所有服务状态。 - 使用
iptables -L
查看所有端口规则。
-
禁用不必要的Apache模块:
- 编辑
httpd.conf
文件,关闭不需要的模块。例如:# LoadModule cgi_module modules/mod_cgi.so # LoadModule php7_module modules/libphp7.so
- 删除不必要的模块配置文件。
- 编辑
-
让Apache以指定的用户和组来运行:
- 编辑
httpd.conf
文件,更改默认的用户和组。例如:User apache Group apache
- 以提高安全性。
- 编辑
-
防止信息泄露:
- 修改
httpd.conf
文件,隐藏服务器版本信息。例如:ServerTokens Prod ServerSignature Off
- 重启Apache服务:
sudo systemctl restart httpd
- 修改
-
隐藏PHP版本信息:
- 编辑
php.ini
文件,设置expose_php off
。 - 重启Apache服务。
- 编辑
-
禁用自动索引模块:
- 编辑
httpd.conf
文件,禁用自动索引功能。例如:Options -Indexes
- 重启Apache服务。
- 编辑
-
配置防火墙:
- 使用
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
- 确保防火墙在系统启动时自动启动:
sudo systemctl enable firewalld
- 使用
-
配置SSL/TLS:
- 生成SSL证书和私钥。例如:
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
- 生成SSL证书和私钥。例如:
-
强化用户口令:
- 设置复杂口令,包含大写字母、小写字母、数字和特殊字符,长度大于10位。
- 检查并强化空口令账户。
-
保护口令文件:
- 使用
chattr
命令给/etc/passwd
,/etc/shadow
等文件加上不可更改属性。例如:sudo chattr +i /etc/passwd sudo chattr +i /etc/shadow
- 防止未授权访问。
- 使用
-
设置root账户自动注销时限:
- 修改
/etc/profile
文件中的TMOUT
参数。例如:TMOUT=300
- 减少未授权访问的风险。
- 修改
-
限制su命令:
- 编辑
/etc/pam.d/su
文件,限制只有特定组的用户才能使用su
命令切换到root。例如:%pam-1.0 auth sufficient pam_wheel.so trust use uid
- 限制普通用户的敏感操作。
- 编辑
-
禁用ctrl+alt+delete重启命令:
- 修改
/etc/inittab
文件,禁用ctrl+alt+delete
组合键重启机器的命令。
- 修改
-
设置开机启动服务权限:
- 设置
/etc/rc.d/init.d/
目录下所有文件的权限,确保只有root用户可以操作这些服务。
- 设置
-
防止IP欺骗和DoS攻击:
- 编辑
host.conf
文件和设置资源限制,如最大进程数和内存使用量。
- 编辑
通过以上配置,可以显著提高CentOS Apache2服务器的安全性,减少潜在的安全风险。建议定期检查和更新安全设置,以应对新的安全威胁。