Ubuntu下Apache2安全设置指南
1. 基础系统与软件更新
定期更新系统和Apache2相关软件包,修补已知安全漏洞。执行以下命令:
sudo apt update && sudo apt upgrade
这一步能确保服务器运行最新的安全补丁,降低被已知漏洞攻击的风险。
2. 配置防火墙(UFW)
使用UFW(Uncomplicated Firewall)限制对Apache2的访问,仅允许必要的HTTP(80端口)和HTTPS(443端口)流量:
sudo apt install ufw # 安装UFW(若未安装)
sudo ufw allow 'Apache Full' # 允许Apache Full(包含HTTP和HTTPS)
sudo ufw enable # 启用防火墙
通过防火墙规则,能有效阻挡未经授权的网络访问,减少攻击面。
3. 隐藏Apache敏感信息
修改Apache配置文件,隐藏服务器版本号和操作系统信息,防止攻击者利用这些信息针对性攻击:
编辑/etc/apache2/apache2.conf,添加或修改以下指令:
ServerTokens Prod # 仅显示“Apache”而不显示版本号
ServerSignature Off # 关闭服务器响应中的签名信息(如版本号、服务器名)
重启Apache使配置生效:sudo systemctl restart apache2。
4. 禁用不必要的Apache模块
禁用不使用的模块,减少潜在的攻击入口。首先查看已启用的模块:
apache2ctl -M
然后禁用不需要的模块(如autoindex、php7.x等,根据实际需求调整):
sudo a2dismod autoindex # 禁用目录列表模块
sudo a2dismod php7.4 # 示例:禁用PHP模块(若未使用PHP)
禁用后重启Apache:sudo systemctl restart apache2。
5. 防止目录列表泄露
禁用目录自动列表功能,避免用户直接查看网站根目录下的文件列表。编辑Apache站点配置文件(如/etc/apache2/sites-available/000-default.conf),找到部分,修改为:
Options -Indexes +FollowSymLinks # 禁用Indexes(目录列表)
AllowOverride None
Require all granted
重启Apache使配置生效。
6. 启用SSL/TLS加密(HTTPS)
使用Let’s Encrypt获取免费SSL证书,配置Apache2支持HTTPS,加密客户端与服务器之间的通信:
sudo apt install certbot python3-certbot-apache # 安装Certbot和Apache插件
sudo certbot --apache -d yourdomain.com -d www.yourdomain.com # 替换为你的域名
Certbot会自动修改Apache配置文件,启用HTTPS并重定向HTTP到HTTPS(可选)。验证SSL配置:访问https://yourdomain.com,确认浏览器地址栏显示锁图标。
7. 配置安全HTTP头
通过设置HTTP响应头,增强浏览器端的安全防护,防止XSS、点击劫持等攻击。编辑/etc/apache2/conf-available/security.conf,添加以下内容:
Header always set X-Content-Type-Options "nosniff" # 防止MIME类型嗅探
Header always set X-Frame-Options "SAMEORIGIN" # 防止点击劫持
Header always set X-XSS-Protection "1; mode=block" # 启用XSS防护
Header always set Referrer-Policy "no-referrer-when-downgrade" # 控制Referer信息泄露
启用配置:sudo a2enconf security,然后重启Apache。
8. 使用安全模块防范攻击
mod_security(Web应用防火墙,WAF)
安装并配置mod_security,实时检测和阻止SQL注入、跨站脚本(XSS)等常见Web攻击:
sudo apt install libapache2-mod-security2 # 安装mod_security
sudo a2enmod security2 # 启用模块
编辑/etc/apache2/conf-available/security2.conf,启用OWASP Core Rule Set(CRS):
SecRuleEngine On # 开启规则引擎
Include /etc/apache2/conf-available/crs-setup.conf # 包含CRS配置
重启Apache:sudo systemctl restart apache2。
mod_evasive(防范DoS/DDoS攻击)
安装mod_evasive,限制同一IP的频繁请求,防止DoS攻击:
sudo apt install libapache2-mod-evasive # 安装模块
编辑/etc/apache2/mods-enabled/evasive.conf,配置规则:
# 根据模块版本调整(20或24)
DOSHashTableSize 3097
DOSPageCount 2 # 1秒内同一IP的页面请求超过2次则触发
DOSSiteCount 50 # 1秒内同一IP的站点请求超过50次则触发
DOSPageInterval 1
DOSSiteInterval 1
DOSBlockingPeriod 10 # 触发后封锁IP 10秒
重启Apache使配置生效。
9. 访问控制与权限管理
限制敏感目录访问
对网站敏感目录(如/admin)设置基本认证,仅允许授权用户访问:
sudo htpasswd -c /etc/apache2/.htpasswd username # 创建密码文件(首次使用-c参数)
编辑站点配置文件,添加以下内容:
AuthType Basic
AuthName "Restricted Area"
AuthUserFile /etc/apache2/.htpasswd
Require valid-user
重启Apache。
IP白名单/黑名单
使用Require ip指令限制特定IP访问网站:
Require ip 192.168.1.1 # 仅允许192.168.1.1访问
# Require not ip 192.168.1.100 # 示例:禁止192.168.1.100访问
重启Apache。
10. 日志记录与监控
确保Apache日志配置正确,便于及时发现异常行为:
编辑/etc/apache2/apache2.conf,确认以下配置:
LogLevel warn # 日志级别(warn及以上级别记录)
ErrorLog ${APACHE_LOG_DIR}/error.log # 错误日志路径
CustomLog ${APACHE_LOG_DIR}/access.log combined # 访问日志格式(combined包含IP、请求等信息)
使用logwatch工具定期分析日志:
sudo apt install logwatch # 安装logwatch
sudo cp /usr/share/logwatch/default.conf/logwatch.conf /etc/logwatch/conf/logwatch.conf # 备份默认配置
sudo logwatch # 查看当日日志摘要
定期检查/var/log/apache2/error.log和/var/log/apache2/access.log,关注异常请求(如大量404错误、频繁POST请求)。
11. 定期备份配置与数据
定期备份Apache配置文件和网站数据,防止数据丢失或配置损坏:
sudo tar -czvf /backup/apache2_backup_$(date +%Y%m%d).tar.gz /etc/apache2 # 备份配置文件
sudo tar -czvf /backup/www_backup_$(date +%Y%m%d).tar.gz /var/www/html # 备份网站数据
将备份文件存储到安全位置(如外部存储设备、云存储)。
12. 其他高级加固措施
禁用Apache版本信息
编辑/etc/apache2/apache2.conf,确保ServerSignature Off和ServerTokens Prod已设置,彻底隐藏服务器版本信息。
使用SELinux或AppArmor
若系统支持SELinux或AppArmor,可进一步限制Apache的权限:
- AppArmor:Ubuntu默认安装,启用Apache的AppArmor profile:
sudo aa-enforce /etc/apparmor.d/usr.sbin.apache2 # 强制生效 - SELinux:若使用CentOS/RHEL,可设置SELinux上下文:
sudo semanage fcontext -a -t httpd_sys_content_t "/var/www/html(/.*)?" sudo restorecon -Rv /var/www/html
这些措施能有效隔离Apache进程,防止越权访问。
通过以上步骤,可显著提升Ubuntu下Apache2服务器的安全性。需定期检查和更新安全配置,应对新的威胁和漏洞。
以上就是关于“Ubuntu下Apache2安全设置指南”的相关介绍,筋斗云是国内较早的云主机应用的服务商,拥有10余年行业经验,提供丰富的云服务器、租用服务器等相关产品服务。云服务器资源弹性伸缩,主机vCPU、内存性能强悍、超高I/O速度、故障秒级恢复;电子化备案,提交快速,专业团队7×24小时服务支持!
简单好用、高性价比云服务器租用链接:https://www.jindouyun.cn/product/cvm