1. 设置 Apache 用户
Apache 运行时以一个用户身份来执行,为了增加安全性,我们应该更改此默认用户。首先,我们需要查看 Apache 当前使用的用户和组。
ps aux | grep apache
找到结果中的用户和组信息,然后进行更改。
sudo vi /etc/httpd/conf/httpd.conf
将 User
和 Group
改为新的用户名和组名。
User your_new_user
Group your_new_group
2. 隐藏 Apache 版本信息
Apache 默认会将版本信息显示在响应头中,为了增加安全性,我们应该隐藏该信息。
sudo vi /etc/httpd/conf/httpd.conf
找到以下行:
ServerTokens OS
将其改为:
ServerTokens Prod
然后找到以下行:
ServerSignature On
将其改为:
ServerSignature Off
3. 禁用不必要的 Apache 模块
Apache 会默认加载一些不必要的模块,我们应该禁用掉这些模块。首先查看当前加载的模块:
sudo apachectl -M
然后编辑 Apache 配置文件:
sudo vi /etc/httpd/conf/httpd.conf
注释掉不需要的模块,并保存文件。
4. 配置防火墙
为了增加服务器的安全性,我们可以使用防火墙来限制对 Apache 的访问。如果你使用的是 iptables:
sudo iptables -A INPUT -p tcp --dport 80 -j DROP
如果你使用的是 firewalld:
sudo firewall-cmd --permanent --remove-service=http
记得重启防火墙以使更改生效。不要忘记允许自己的 IP 地址访问 Apache。
5. 启用 SSL/TLS
为了实现安全的数据传输,我们应该启用 SSL/TLS。首先安装 OpenSSL:
sudo apt-get install openssl
然后为 Apache 生成自签名证书:
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/httpd/ssl/apache.key -out /etc/httpd/ssl/apache.crt
接下来,编辑 Apache 的 SSL 配置文件:
sudo vi /etc/httpd/conf.d/ssl.conf
取消注释以下行:
SSLEngine on
SSLCertificateFile /etc/httpd/ssl/apache.crt
SSLCertificateKeyFile /etc/httpd/ssl/apache.key
保存文件并重启 Apache 服务。
总结
通过设置 Apache 用户,隐藏版本信息,禁用不必要的模块,配置防火墙和启用 SSL/TLS,我们可以增强 Linux 下 PHP+Apache 的安全性。同时,我们还可以采用其他一些安全设置,例如限制文件上传大小、使用安全的数据库连接方式等,以进一步提高服务器的安全性。