保持系统与软件最新
定期更新系统是防范漏洞的核心措施。使用sudo apt update && sudo apt upgrade -y命令更新本地软件包索引并升级已安装的软件包,及时修补已知安全漏洞。建议开启自动安全更新,通过sudo apt install unattended-upgrades -y安装工具,并运行sudo dpkg-reconfigure unattended-upgrades启用自动更新,确保系统自动获取并安装重要安全补丁。
强化用户权限管理
避免使用root账户进行日常操作,创建普通用户并通过usermod -aG sudo 用户名将其加入sudo组,以最小权限执行管理任务。禁用root用户的SSH远程登录,编辑/etc/ssh/sshd_config文件,将PermitRootLogin设置为no,防止攻击者通过暴力破解root密码入侵。同时,制定强密码策略,通过PAM模块要求密码包含字母、数字和特殊字符组合,并定期更换密码。
配置防火墙限制流量
使用ufw(Uncomplicated Firewall)简化防火墙配置,安装后运行sudo ufw enable启用防火墙,设置默认入站规则为deny(sudo ufw default deny incoming),仅允许必要的端口(如SSH的22端口、HTTP的80端口、HTTPS的443端口)开放,例如sudo ufw allow 22/tcp。对于复杂需求,可使用iptables配置更细粒度的规则(如允许已建立的连接、拒绝无效流量),并保存规则以防止重启失效。
加固SSH服务安全
修改SSH默认端口(如将22改为其他高位端口),编辑/etc/ssh/sshd_config文件中的Port参数,减少自动化扫描工具的攻击概率。启用SSH密钥对认证,生成密钥对(ssh-keygen -t rsa),将公钥添加到服务器的~/.ssh/authorized_keys文件中,关闭密码登录(PasswordAuthentication no),防止密码被破解。此外,限制允许登录的用户(AllowUsers 用户1 用户2),进一步提升安全性。
实施监控与日志审计
使用工具监控系统活动,如Logwatch生成每日日志报告、Fail2ban自动封禁多次登录失败的IP地址,及时发现异常行为。定期审查系统日志(通过journalctl -u sshd查看SSH日志、/var/log/auth.log查看认证日志),分析登录记录、服务启动停止等信息,识别潜在攻击迹象。部署入侵检测系统(如Snort),实时监测网络流量,预警可疑活动。
精简系统服务与端口
核查并停用非必要的网络服务(如FTP、Telnet等明文传输服务),使用systemctl list-unit-files --type=service查看运行中的服务,通过systemctl stop 服务名和systemctl disable 服务名停止并禁用不需要的服务,减少攻击面。关闭不必要的端口,通过防火墙规则限制端口访问,仅开放业务必需的端口(如Web服务的80/443端口、数据库的3306端口)。
定期漏洞扫描与数据备份
使用漏洞扫描工具定期检查系统及软件漏洞,如OpenVAS(sudo apt install openvas),扫描后根据报告修复高风险漏洞。定期备份重要数据(如配置文件、数据库、用户文件),使用rsync(rsync -av /path/to/data /backup/location)或tar(tar -czvf backup.tar.gz /path/to/data)工具,将数据存储到安全的离线介质(如外部硬盘)或云存储中,确保遭受攻击(如勒索软件)时能快速恢复。