在当今网络环境中,Ubuntu Web服务器安全加固已成为每个网站管理员必须掌握的基本技能。无论是个人博客还是企业应用,只要你的服务暴露在公网,就可能成为攻击目标。本文将手把手教你如何对运行在 Ubuntu 系统上的 Web 服务器进行全方位安全加固,即使你是 Linux 新手也能轻松上手。
一、更新系统与软件包
首先,确保你的 Ubuntu 系统和所有已安装的软件包都是最新的。这能修复已知的安全漏洞。
sudo apt updatesudo apt upgrade -ysudo apt autoremove -y
二、创建非 root 用户并禁用 root 登录
永远不要直接使用 root 用户操作服务器。应创建一个普通用户,并赋予其 sudo 权限。
adduser your_usernameusermod -aG sudo your_username
然后编辑 SSH 配置文件,禁止 root 通过 SSH 登录:
sudo nano /etc/ssh/sshd_config
找到以下行并修改为:
PermitRootLogin no
保存后重启 SSH 服务:
sudo systemctl restart sshd
三、配置 UFW 防火墙(Ubuntu防火墙设置)
UFW(Uncomplicated Firewall)是 Ubuntu 自带的简易防火墙工具。启用它并只开放必要的端口(如 HTTP 80、HTTPS 443 和 SSH 22)。
sudo ufw default deny incomingsudo ufw default allow outgoingsudo ufw allow 22/tcp comment 'SSH'sudo ufw allow 80/tcp comment 'HTTP'sudo ufw allow 443/tcp comment 'HTTPS'sudo ufw enable
查看防火墙状态:
sudo ufw status verbose
四、安装 Fail2Ban 防止暴力破解
Fail2Ban 可以自动封禁多次尝试登录失败的 IP 地址,有效防止 SSH 暴力破解。
sudo apt install fail2ban -ysudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.localsudo systemctl enable fail2bansudo systemctl start fail2ban
五、Web 服务器安全配置(Apache/Nginx)
无论你使用 Apache 还是 Nginx,都应隐藏服务器版本信息,防止攻击者利用已知漏洞。
Apache 示例:
sudo nano /etc/apache2/conf-available/security.conf# 修改以下两行为:ServerTokens ProdServerSignature Offsudo a2enconf securitysudo systemctl reload apache2
Nginx 示例:
sudo nano /etc/nginx/nginx.conf# 在 http 块中添加:server_tokens off;sudo nginx -t && sudo systemctl reload nginx
六、定期备份与监控
再好的防护也需配合定期备份。建议使用
rsync或
borg工具备份关键数据,并设置日志监控(如
logwatch)及时发现异常行为。
总结
通过以上步骤,你已经完成了基础的 Ubuntu Web服务器安全加固。记住,安全不是一次性任务,而是一个持续的过程。定期检查日志、更新软件、审查权限,是保障 Linux服务器安全配置 的关键。同时,合理的 Web服务器防护措施 能显著降低被攻击的风险。
希望这篇教程能帮助你构建一个更安全、更可靠的 Web 服务环境!
