保护 Ubuntu 服务器对于保护您的数据、应用程序和基础设施免受恶意攻击至关重要。无论您托管的是网站、数据库还是应用程序,实施强有力的安全实践都能确保服务器抵御各种漏洞。本文将介绍保护 Ubuntu 服务器的实用步骤,包括配置防火墙、安全地设置 SSH、使用fail2ban等工具和其他加固技巧。
上一篇文章:
01. Ubuntu Server 简介 – SysOSX: AI & Cloud
02. 如何设置您的第一台 Ubuntu 服务器:初学者指南 – SysOSX: AI & Cloud
03. 掌握适用于 Ubuntu Server 的 Linux 命令行 – SysOSX: AI & Cloud
04. 管理 Ubuntu Server 上的用户和权限:综合指南 – SysOSX: AI & Cloud
05. Ubuntu Server 网络基础:综合指南 – SysOSX: AI & Cloud
06. 在 Ubuntu Server 上安装和管理软件:完整指南 – SysOSX: AI & Cloud
07.修补和更新 Ubuntu Server:综合指南 – SysOSX: AI & Cloud
为什么服务器安全很重要?
服务器通常保存着敏感数据,并且对业务运营至关重要。如果没有适当的安全措施,攻击者可以利用漏洞获得未授权访问、破坏服务或窃取信息。遵循这些实用步骤,您可以显著降低遭受攻击的风险,并确保服务器保持安全。
1. 保持系统更新
定期更新对于修补安全漏洞和保持服务器安全至关重要。Ubuntu 会及时为其软件包和内核提供更新。
更新服务器的步骤:
sudo apt update
sudo apt upgrade
sudo apt dist-upgrade
此外,请启用unattended-upgrades以自动执行安全更新:
sudo apt install unattended-upgrades
sudo dpkg-reconfigure unattended-upgrades
2. 使用 UFW 配置防火墙
防火墙是抵御未授权访问的第一道防线。Ubuntu 包含UFW(Uncomplicated Firewall),它简化了防火墙管理。
配置 UFW 的步骤:
- 启用 UFW:
sudo ufw enable
- 允许 SSH 连接:
sudo ufw allow ssh
- 允许特定端口(例如,Web 服务器的 HTTP 和 HTTPS):
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
- 检查防火墙状态:
sudo ufw status
默认情况下,UFW 会阻止所有传入连接,只允许明确放行的连接,从而确保服务器受到保护。
3. 保护 SSH 访问
SSH 是远程服务器管理的主要方法,但它经常成为暴力破解攻击的目标。保护 SSH 对于降低未授权访问的风险至关重要。
保护 SSH 的技巧:
- 更改默认 SSH 端口:
- 编辑 SSH 配置文件:
sudo nano /etc/ssh/sshd_config
- 更改默认端口(例如,从
22更改为2222),然后重启 SSH 服务:
sudo systemctl restart ssh
- 更新 UFW 规则,以允许访问新端口:
sudo ufw allow 2222/tcp
- 禁用 root 登录:
在/etc/ssh/sshd_config中,设置:
PermitRootLogin no
- 使用 SSH 密钥身份验证:
- 生成 SSH 密钥对:
ssh-keygen -t rsa -b 4096
- 将公钥复制到服务器:
ssh-copy-id username@server-ip
- 限制 SSH 访问:
通过编辑/etc/hosts.allow和/etc/hosts.deny文件。
4. 安装和配置 Fail2Ban
Fail2Ban是一款通过监控日志文件并封禁表现出可疑行为的 IP 地址来保护服务器免受暴力破解攻击的工具。
设置 Fail2Ban 的步骤:
- 安装 Fail2Ban:
sudo apt install fail2ban
- 创建本地配置文件:
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
- 配置 SSH 保护:
编辑/etc/fail2ban/jail.local并启用 SSH jail:
[sshd]
enabled = true
port = 2222
maxretry = 5
bantime = 3600
- 重启 Fail2Ban:
sudo systemctl restart fail2ban
Fail2Ban 现在将监控 SSH 日志,并在多次登录失败后封禁相关 IP。
5. 禁用不必要的服务
运行不必要的服务会增加服务器的攻击面。请识别并禁用不需要的服务。
禁用服务的步骤:
- 列出活动服务:
sudo systemctl list-units --type=service
- 停止并禁用未使用的服务:
sudo systemctl stop service-name
sudo systemctl disable service-name
6. 使用强密码和用户帐户
弱密码是一种常见漏洞。请确保所有用户帐户都使用强大且唯一的密码。
用户帐户安全技巧:
- 使用密码管理器生成和存储强密码。
- 定期审计用户帐户并删除未使用的帐户:
sudo awk -F: '{ print $1}' /etc/passwd
7. 启用双因素身份验证 (2FA)
双因素身份验证为 SSH 登录过程增加了一层额外的安全保护。您可以使用Google Authenticator.
启用 2FA 的步骤:
- 安装 Google Authenticator:
sudo apt install libpam-google-authenticator
- 为您的用户配置 2FA:
运行以下命令并按照提示操作:
google-authenticator
- 在 SSH 中启用 2FA:
编辑/etc/pam.d/sshd并添加:
auth required pam_google_authenticator.so
重启 SSH 服务:
sudo systemctl restart ssh
8. 监控日志和系统活动
定期监控服务器日志有助于及早发现可疑活动。
日志监控工具:
- Syslog:检查常规系统日志:
sudo less /var/log/syslog
- Auth 日志:查看身份验证尝试:
sudo less /var/log/auth.log
考虑使用Logwatch或OSSEC等工具进行自动日志分析和告警。
9. 定期执行备份
即使采取了强有力的安全措施,备份对于从攻击或数据丢失中恢复仍然至关重要。
备份选项:
- 使用rsync创建本地备份:
rsync -av /data /backup/
- 使用Duplicity等工具自动执行备份,或集成基于云的解决方案,例如AWS S3或Google Cloud Storage.
10. 其他加固技巧
- 安装防病毒软件:使用ClamAV等工具扫描恶意软件。
sudo apt install clamav
sudo clamscan -r /path/to/scan
- 保护 Web 应用程序:如果托管网站,请使用ModSecurity等工具防范常见的 Web 漏洞。
- 启用 AppArmor:AppArmor 为应用程序提供强制访问控制。
sudo apt install apparmor
sudo aa-status
结论
保护 Ubuntu 服务器需要采取主动的方法,将系统更新、防火墙配置、SSH 加固以及 Fail2Ban 等工具结合起来。遵循这些步骤并定期监控服务器,您可以建立针对潜在威胁的强大防御。
如需了解更多信息,请参阅官方Ubuntu 安全指南.
接下来:Ubuntu Server 上的审计与日志记录
保护服务器固然重要,但保持对其运行状况的可见性同样关键。审计和日志记录 使您能够监控系统活动、识别异常并有效地排查问题。
在下一节中,我们将介绍:
- 系统审计和日志的重要性。
- 使用auditd跟踪和记录系统事件。
- 使用logrotate配置日志轮转,以高效管理日志文件。
- 监控
/var/log目录中的关键事件。
这些实践将帮助您保持问责、发现潜在威胁并确保服务器的可靠性。
敬请期待,我们将深入介绍帮助您有效审计和监控 Ubuntu 服务器的工具和技术。
3 thoughts on “08. Securing Your Ubuntu Server: Practical Steps for Hardening and Protection”