1. 更新系统与软件包
定期更新系统和Apache相关软件包,修补已知安全漏洞。执行以下命令:
sudo apt update && sudo apt upgrade -y
2. 安装必要安全模块
安装mod_security(Web应用防火墙)和mod_evasive(防DDoS/暴力破解)模块:
sudo apt install libapache2-mod-security2 libapache2-mod-evasive -y
sudo a2enmod security2 evasive # 启用模块
3. 配置防火墙(UFW)
使用UFW限制访问,仅允许HTTP(80)、HTTPS(443)和SSH(默认22,建议修改为非标准端口)流量:
sudo apt install ufw -y
sudo ufw allow ssh # 若修改了SSH端口,需替换为对应端口
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable # 启用防火墙
4. 隐藏Apache敏感信息
修改Apache主配置文件,隐藏版本号和服务器签名,减少攻击者获取的信息:
sudo nano /etc/apache2/apache2.conf
# 找到并修改以下行
ServerTokens Prod # 仅显示"Apache",不暴露版本
ServerSignature Off # 关闭错误页面中的服务器信息
sudo systemctl restart apache2
5. 禁用不必要的模块
列出已启用模块,禁用不需要的模块(如status、autoindex,若无需目录列表):
apache2ctl -M # 查看已启用模块
sudo a2dismod status autoindex # 禁用模块
sudo systemctl restart apache2
6. 强化访问控制
- 限制Web根目录访问:禁止目录列表,仅允许授权用户访问敏感目录(如
/admin)。编辑虚拟主机配置文件(如/etc/apache2/sites-available/000-default.conf):创建密码文件并添加用户:Options -Indexes FollowSymLinks # 禁止目录列表 AllowOverride None Require all granted AuthType Basic AuthName "Restricted Area" AuthUserFile /etc/apache2/.htpasswd Require valid-user sudo htpasswd -c /etc/apache2/.htpasswd admin # 创建用户admin - 基于IP的限制:仅允许特定IP访问敏感路径(如后台):
"/admin" > Require ip 192.168.1.100 192.168.1.101 # 替换为允许的IP
7. 启用SSL/TLS加密
使用Let’s Encrypt免费获取SSL证书,强制HTTPS访问:
sudo apt install certbot python3-certbot-apache -y
sudo certbot --apache -d yourdomain.com -d www.yourdomain.com # 替换为你的域名
# 证书自动配置,Apache会自动重定向HTTP到HTTPS
8. 配置ModSecurity规则
启用OWASP Core Rule Set(CRS),防范SQL注入、XSS等常见攻击:
sudo apt install modsecurity-crs -y
sudo a2enconf crs-setup # 启用CRS配置
sudo nano /etc/apache2/mods-available/security2.conf
# 修改以下行,开启规则引擎
SecRuleEngine On
Include /etc/apache2/conf-available/crs-setup.conf
sudo systemctl restart apache2
9. 权限与用户管理
- 以最小权限运行Apache:确保Apache以
www-data用户/组运行(默认配置),避免使用root。检查/etc/apache2/envvars:export APACHE_RUN_USER=www-data export APACHE_RUN_GROUP=www-data - 设置Web目录权限:Web根目录(
/var/www/html)属主为www-data,权限为755;上传目录(如/var/www/html/uploads)需写入权限,但限制为www-data组:sudo chown -R www-data:www-data /var/www/html sudo find /var/www/html -type f -exec chmod 644 {} \; # 文件权限644 sudo find /var/www/html -type d -exec chmod 755 {} \; # 目录权限755 sudo chmod -R 775 /var/www/html/uploads # 上传目录权限775 sudo chown -R www-data:www-data /var/www/html/uploads
10. 安全审计与监控
- 查看实时日志:监控访问日志和错误日志,及时发现异常请求:
sudo tail -f /var/log/apache2/access.log sudo tail -f /var/log/apache2/error.log - 使用LogWatch汇总日志:安装LogWatch生成每日安全报告:
sudo apt install logwatch -y sudo cp /usr/share/logwatch/default.conf/logwatch.conf /etc/logwatch/conf/logwatch.conf sudo logwatch --output mail # 可配置邮件发送报告
11. 定期备份配置与数据
定期备份Apache配置文件和网站数据,防止数据丢失或配置损坏:
sudo tar -czvf /backup/apache_config_$(date +%Y%m%d).tar.gz /etc/apache2
sudo tar -czvf /backup/website_data_$(date +%Y%m%d).tar.gz /var/www/html
注意事项:
- 安全配置需定期更新,跟随Apache官方安全公告修复漏洞。
- 生产环境中,建议关闭目录列表、限制上传文件类型(如在
uploads目录禁止执行PHP),并使用Web应用防火墙(WAF)进一步防护。 - 若使用虚拟主机,需为每个站点单独配置SSL和访问控制。
以上就是关于“怎样在Ubuntu上安全配置Apache”的相关介绍,筋斗云是国内较早的云主机应用的服务商,拥有10余年行业经验,提供丰富的云服务器、租用服务器等相关产品服务。云服务器资源弹性伸缩,主机vCPU、内存性能强悍、超高I/O速度、故障秒级恢复;电子化备案,提交快速,专业团队7×24小时服务支持!
简单好用、高性价比云服务器租用链接:https://www.jindouyun.cn/product/cvm