Apache2 是广泛使用的开源 Web 服务器,但在配置和使用过程中存在一些安全隐患。通过适当的安全设置,可以显著提高服务器的安全性。以下是一个详细的指南,帮助你在 Ubuntu 上配置 Apache2 以提高安全性。
首先,确保你已经安装了 Apache2。如果没有安装,可以使用以下命令进行安装:
sudo apt update
sudo apt install apache2
为了启用 HTTPS,需要安装并启用 mod_ssl
模块:
sudo a2enmod ssl
禁用不需要的模块可以减少潜在的安全风险。例如,禁用 mod_autoindex
模块可以防止目录列表:
sudo a2dismod autoindex
使用 ufw
(Uncomplicated Firewall)来配置防火墙规则,允许 HTTP 和 HTTPS 流量通过:
sudo ufw allow 'Apache Full'
修改 Apache 配置文件以隐藏版本信息,防止攻击者利用已知版本漏洞进行攻击:
sudo sed -i 's/ServerTokens OS/ServerTokens Prod/g' /etc/apache2/apache2.conf
sudo sed -i 's/ServerSignature On/ServerSignature Off/g' /etc/apache2/apache2.conf
在默认的配置文件中,禁用目录列表功能:
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride None
Require all denied
</Directory>
确保网站内容只放在指定的目录中,例如 /var/www/html
:
DocumentRoot /var/www/html
<Directory /var/www/html>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
编辑默认的虚拟主机配置文件,例如 /etc/apache2/sites-available/000-default.conf
:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
为 Apache 配置 SSL 证书以启用 HTTPS:
使用 OpenSSL 生成自签名证书:
sudo openssl req -x509 -newkey rsa:4096 -keyout /etc/apache2/ssl/apache.key -out /etc/apache2/ssl/apache.crt -days 365
在 Apache 配置文件中启用 SSL 模块并指定证书路径:
<VirtualHost *:443>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/apache.crt
SSLCertificateKeyFile /etc/apache2/ssl/apache.key
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
完成上述配置后,重启 Apache 服务以使更改生效:
sudo systemctl restart apache2
在开发环境中可以禁用 AppArmor,但在生产环境中建议配置自定义的 AppArmor 规则:
sudo systemctl stop apparmor
sudo update-rc.d -f apparmor remove
sudo apt-get remove apparmor apparmor-utils
安装并配置 mod_evasive
模块以阻止分布式拒绝服务(DDoS)攻击:
sudo apt-get install libapache2-mod-evasive
sudo cp /usr/share/doc/libapache2-mod-evasive/mod-evasive.load /etc/apache2/mods-available/
sudo a2enmod evasive
确保启用详细的日志记录,以便监控服务器的安全状态:
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
通过以上步骤,你可以显著提高 Ubuntu 上 Apache2 服务器的安全性。定期检查和更新配置文件也是保持服务器安全的重要措施。
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
推荐阅读:Ubuntu Apache2如何安全设置