确保 Apache Web 服务器的安全性对于保护网站数据和用户信息至关重要。以下是在 Debian 系统上配置 Apache 2 的基本安全设置步骤,这些措施可以帮助防御外部攻击,保护服务器的稳定运行。
保持系统和软件包的最新状态是安全设置的第一步。
sudo apt-get update
sudo apt-get upgrade
使用 Uncomplicated Firewall (UFW) 来管理防火墙规则,允许必要的端口(如 HTTP 的 80 端口和 HTTPS 的 443 端口)通过。
sudo ufw enable
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
检查服务器上所有正在运行的服务和开放的端口,禁用不需要的服务。
sudo service --status-all
sudo iptables -L
sudo chkconfig --list
通过配置 Directory
指令,限制特定目录的访问权限,仅允许特定 IP 地址或拒绝某些 IP 地址访问。
<Directory "/var/www/html">
Order deny,allow
Deny from all
Allow from 192.168.1.0/24
</Directory>
为每个虚拟主机配置 SSL 证书,实现数据传输的加密。可以使用 Let’s Encrypt 提供的免费 SSL 证书。
sudo apt-get install certbot python3-certbot-apache
sudo certbot --apache
修改 Apache 配置文件以隐藏版本信息,防止攻击者利用版本信息进行针对性攻击。
ServerTokens Prod
ServerSignature Off
禁用不需要的模块以减少潜在的安全风险。
sudo a2dismod php7.4_module
sudo a2enmod authz_core
配置 SSH 以使用强密码策略,并禁用 root 用户的远程登录。
sudo passwd root
# 设置强密码并退出
sudo sed -i 's/PermitRootLogin prohibit-password/PermitRootLogin no/' /etc/ssh/sshd_config
定期备份网站文件和数据库,以防数据丢失或被篡改。
sudo cp -a /var/www/html /backup/www
启用和配置 Apache 的日志功能,记录所有访问和错误信息,使用日志分析工具如 GoAccess 来审查日志,及时发现可疑活动。
sudo tail -f /var/log/apache2/access.log
通过这些步骤,您可以显著提高 Debian 上 Apache 2 服务器的安全性。建议定期审查和更新安全配置,以应对新的威胁和挑战。