温馨提示×

Apache2在Ubuntu上如何配置安全策略

小樊
46
2025-02-26 08:11:21
栏目: 智能运维
Ubuntu服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

在Ubuntu上配置Apache2的安全策略涉及多个方面,包括修改默认端口、配置防火墙、设置虚拟主机、禁用不必要的模块、配置SSL证书等。以下是详细的步骤:

1. 修改默认端口

为了提高安全性,可以修改Apache2默认监听的端口。例如,将HTTP端口从80修改为5000,HTTPS端口从443修改为4443。

sudo vim /etc/apache2/ports.conf
# 将 Listen 80 修改为 Listen 5000
# 将 Listen 443 修改为 Listen 4443

2. 配置防火墙

使用UFW(Uncomplicated Firewall)允许Apache2的端口通过。

sudo ufw allow 5000/tcp
sudo ufw allow 4443/tcp
sudo ufw enable

3. 禁用不必要的模块

禁用不需要的Apache2模块可以减少潜在的安全风险。例如,禁用mod_php模块可以减少PHP代码执行的风险。

sudo a2dismod php7.x

4. 配置SSL/TLS证书

为了实现HTTPS加密,需要配置SSL/TLS证书。

安装mod_ssl模块

sudo apt-get install libapache2-mod-ssl

创建SSL证书目录

sudo mkdir /etc/apache2/ssl

生成SSL证书和密钥

使用OpenSSL生成自签名证书和密钥。

sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/apache2/ssl/apache.key -out /etc/apache2/ssl/apache.crt

配置虚拟主机以使用SSL证书

编辑虚拟主机配置文件,例如/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

启用SSL站点配置并重启Apache

sudo a2ensite default.conf
sudo systemctl restart apache2

5. 配置错误详情页和列目录

为了提高安全性,可以配置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>

6. 禁止AppArmor冲突(适用于生产环境)

如果使用AppArmor,建议创建自定义配置文件以避免与默认配置冲突。

sudo /etc/init.d/apparmor stop
sudo update-rc.d -f apparmor remove
sudo apt-get remove apparmor apparmor-utils

7. 阻止DDoS攻击和Slowloris攻击

可以安装并配置Apache2模块来阻止DDoS攻击和Slowloris攻击。

阻止DDoS攻击

安装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

阻止Slowloris攻击

安装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元/月。点击查看>>

推荐阅读:Ubuntu Apache2如何配置安全策略

0