在Ubuntu上配置Apache2的安全策略涉及多个方面,包括修改默认端口、配置防火墙、设置虚拟主机、禁用不必要的模块、配置SSL证书等。以下是详细的步骤:
为了提高安全性,可以修改Apache2默认监听的端口。例如,将HTTP端口从80修改为5000,HTTPS端口从443修改为4443。
sudo vim /etc/apache2/ports.conf
# 将 Listen 80 修改为 Listen 5000
# 将 Listen 443 修改为 Listen 4443
使用UFW(Uncomplicated Firewall)允许Apache2的端口通过。
sudo ufw allow 5000/tcp
sudo ufw allow 4443/tcp
sudo ufw enable
禁用不需要的Apache2模块可以减少潜在的安全风险。例如,禁用mod_php
模块可以减少PHP代码执行的风险。
sudo a2dismod php7.x
为了实现HTTPS加密,需要配置SSL/TLS证书。
sudo apt-get install libapache2-mod-ssl
sudo mkdir /etc/apache2/ssl
使用OpenSSL生成自签名证书和密钥。
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/apache2/ssl/apache.key -out /etc/apache2/ssl/apache.crt
编辑虚拟主机配置文件,例如/etc/apache2/sites-available/default.conf
。
sudo nano /etc/apache2/sites-available/default.conf
# 在 VirtualHost *:443 部分添加以下内容
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/apache.crt
SSLCertificateKeyFile /etc/apache2/ssl/apache.key
sudo a2ensite default.conf
sudo systemctl restart apache2
为了提高安全性,可以配置Apache2在访问不存在的页面时显示错误详情页,并防止列出目录内容。
在/etc/apache2/apache2.conf
或/etc/httpd/conf/httpd.conf
中添加以下配置。
ErrorDocument 404 /error.html
<Directory />
Options FollowSymLinks
AllowOverride None
Require all denied
</Directory>
在/etc/apache2/apache2.conf
或/etc/httpd/conf/httpd.conf
中添加以下配置。
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
如果使用AppArmor,建议创建自定义配置文件以避免与默认配置冲突。
sudo /etc/init.d/apparmor stop
sudo update-rc.d -f apparmor remove
sudo apt-get remove apparmor apparmor-utils
可以安装并配置Apache2模块来阻止DDoS攻击和Slowloris攻击。
安装libapache2-mod-evasive
模块。
sudo apt-get install libapache2-mod-evasive
sudo mkdir -p /var/log/apache2/evasive
sudo chown -R www-data:root /var/log/apache2/evasive
将以下命令添加到mod-evasive.load
文件的末尾。
DOSHashTableSize 2048
DOSPageCount 20
DOSPageInterval 1.0
DOSSiteCount 300
DOSSiteInterval 1.0
DOSBlockingPeriod 10.0
DOSLogDir "/var/log/apache2/evasive"
DOSEmailNotify admin@domain.com
安装libapache2-mod-qos
模块。
sudo apt-get install libapache2-mod-qos
检查qos.conf
中的配置。
# QS_ClientEntries 100000
# QS_SrvMaxConnPerIP 50
MaxClients 256
# QS_SrvMaxConnClose 180
# QS_SrvMinDataRate 150 1200
通过以上步骤,可以显著提高Ubuntu上Apache2服务器的安全性。
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>