保持系统与软件更新
定期更新Ubuntu系统及所有已安装软件包是防范Exploit攻击的基础。使用sudo apt update && sudo apt upgrade命令手动更新,或安装unattended-upgrades包实现自动安全更新(sudo apt install unattended-upgrades && sudo dpkg-reconfigure unattended-upgrades),及时修补已知漏洞,降低被攻击风险。
配置防火墙限制访问
使用UFW(Uncomplicated Firewall)控制进出系统的网络流量,仅允许必要的端口和服务(如SSH、HTTP、HTTPS)。安装并启用UFW:sudo apt install ufw && sudo ufw enable;设置默认策略(拒绝所有入站、允许所有出站):sudo ufw default deny incoming && sudo ufw default allow outgoing;允许特定服务:sudo ufw allow ssh && sudo ufw allow http && sudo ufw allow https;查看状态确认规则生效:sudo ufw status verbose。
强化SSH服务安全性
SSH是远程管理的关键组件,需通过配置减少暴露风险:
- 禁用root远程登录:编辑
/etc/ssh/sshd_config文件,设置PermitRootLogin no; - 禁用密码认证:将
PasswordAuthentication yes改为no,强制使用密钥对认证; - 更改默认端口:将
Port 22改为非标准端口(如2222),减少暴力破解尝试; - 重启SSH服务使更改生效:
sudo systemctl restart sshd。
严格管理用户权限
遵循“最小权限原则”,避免过度授权:
- 避免使用root账户日常操作,创建普通用户并通过
sudo执行特权命令; - 限制sudo权限:编辑
/etc/sudoers文件(使用visudo命令),仅为必要用户分配sudo权限; - 禁用不必要的服务:使用
systemctl stop停止不需要的服务(如FTP、Telnet),并通过systemctl disable禁止开机自启,减少攻击面。
安装安全工具主动防御
部署安全工具实现实时监控与威胁响应:
- Fail2Ban:监控日志文件(如
/var/log/auth.log),自动封禁多次尝试登录失败的IP地址,安装并启用:sudo apt install fail2ban && sudo systemctl enable fail2ban && sudo systemctl start fail2ban; - ClamAV:开源防病毒工具,用于扫描恶意软件,安装并更新病毒库:
sudo apt install clamav clamav-daemon && sudo freshclam; - Rkhunter/Chkrootkit:检测系统是否存在rootkit等恶意程序,定期运行:
sudo apt install rkhunter chkrootkit && sudo rkhunter --checkall && sudo chkrootkit。
监控日志与定期审计
定期检查系统日志(如/var/log/auth.log、/var/log/syslog),及时发现异常活动(如陌生IP登录、未授权文件修改);使用journalctl命令实时查看日志:sudo journalctl -xe;通过Lynis等工具进行安全审计:sudo apt install lynis && sudo lynis audit system,识别系统配置漏洞并提出修复建议。
数据备份与恢复准备
定期备份重要数据(如用户文件、数据库、配置文件),并将备份存储在离线或异地位置(如外部硬盘、云存储)。使用rsync工具实现增量备份:sudo rsync -avz /path/to/source /path/to/backup;测试备份文件的完整性和可恢复性,确保遭受攻击后能快速恢复系统。
其他高级防护措施
- 加密敏感数据:使用LUKS(Linux Unified Key Setup)对磁盘分区或敏感文件进行加密,保护数据机密性;
- 禁用Swap分区:在
/etc/fstab文件中注释Swap行,执行swapoff --all关闭Swap,防止内存数据被窃取; - 调整内核参数:通过
sysctl.conf文件优化内核安全设置(如限制ICMP请求、禁止IP转发),增强系统抗攻击能力。