主机安全入门:新手必做的基础加固10步 核心要点图解,及时更新系统补丁是防止已知漏洞利用的最有效方法。;禁用root远程登录并强制使用密钥认证可大幅降低SSH爆破风险。;配置防火墙白名单策略,仅开放必要端口,减少攻击面。;定期检查账户权限和日志,及时发现异常行为。
主机安全入门:新手必做的基础加固10步 · 核心要点一图读懂(AegisX)

核心要点(TL;DR)

  • 及时更新系统补丁是防止已知漏洞利用的最有效方法。
  • 禁用root远程登录并强制使用密钥认证可大幅降低SSH爆破风险。
  • 配置防火墙白名单策略,仅开放必要端口,减少攻击面。
  • 定期检查账户权限和日志,及时发现异常行为。

为什么你的服务器总成为攻击目标?

很多新手在部署服务器后,往往只关注业务上线,而忽略了基础安全加固。默认配置的Linux系统存在大量风险:SSH允许root密码登录、防火墙未启用、系统补丁陈旧……攻击者利用自动化工具扫描互联网,几分钟就能发现这些弱点。本文总结10个必做的基础加固步骤,每个步骤附带具体命令和检查方法,帮助你快速提升主机安全水位,避免成为“肉鸡”。

1. 及时更新系统与软件补丁

超过80%的入侵源于已知漏洞。攻击者利用未修补的漏洞获取权限,因此补丁管理是安全基石。

操作命令:

# CentOS/RHEL
sudo yum update -y
# Ubuntu/Debian
sudo apt update && sudo apt upgrade -y

建议启用自动安全更新:CentOS安装yum-cron,Ubuntu配置unattended-upgrades。每月至少手动检查一次内核版本,使用uname -r确认是否需重启生效。

2. 强化SSH访问控制

SSH是服务器的大门,默认配置允许root密码登录,极易被爆破。必须修改以下配置(编辑/etc/ssh/sshd_config):

  • PermitRootLogin no 禁止root直接登录
  • PasswordAuthentication no 禁用密码认证,改用密钥
  • Port 2222 更改默认端口(可选,减少扫描)
  • AllowUsers deploy 限制允许登录的用户

修改后重启服务:sudo systemctl restart sshd。生成密钥对:ssh-keygen -t ed25519,将公钥上传至~/.ssh/authorized_keys。测试新连接成功后再关闭当前会话,避免锁死。

3. 配置防火墙最小化开放

默认策略应拒绝所有入站流量,仅按需开放端口。以firewalld为例:

sudo firewall-cmd --permanent --add-service=ssh
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --permanent --set-default-zone=drop
sudo firewall-cmd --reload

使用iptables则需设置默认DROP:iptables -P INPUT DROP,然后允许ESTABLISHED连接和特定端口。检查规则:iptables -L -n -v。云服务器还需配置安全组,实现双层防护。

4. 管理账户与权限

清理无用账户,避免共享账号。检查命令:

  • awk -F: '(>=1000){print }' /etc/passwd 列出普通用户
  • passwd -l username 锁定账户
  • usermod -L username 锁定密码

为sudo用户配置最小权限,编辑/etc/sudoers使用visudo。禁止su到root:echo "auth required pam_wheel.so use_uid" >> /etc/pam.d/su,仅允许wheel组切换。

5. 启用日志与监控

日志是发现入侵痕迹的关键。确保rsyslog服务运行,关键日志包括:

  • /var/log/secure(认证日志)
  • /var/log/auth.log(Debian系)
  • /var/log/cron(计划任务)

使用journalctl -u sshd --since "1 hour ago"查看SSH事件。配置logrotate避免磁盘占满。可安装auditd监控关键文件访问:auditctl -w /etc/passwd -p wa -k passwd_changes。

6. 安装入侵检测与防病毒

基础防护包括:

  • Fail2ban:自动封禁暴力破解IP。安装后配置/etc/fail2ban/jail.local启用sshd规则。
  • rkhunter:扫描rootkit和后门。运行rkhunter --check。
  • ClamAV:查杀恶意软件。定期执行clamscan -r /home。

这些工具能补充系统自身防护,建议每周执行一次扫描。

7. 加固内核参数

调整内核参数可抵御部分网络攻击。编辑/etc/sysctl.conf添加:

net.ipv4.conf.all.rp_filter = 1
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.all.send_redirects = 0
net.ipv4.tcp_syncookies = 1
kernel.randomize_va_space = 2

执行sysctl -p生效。这些配置能缓解IP欺骗、SYN Flood等攻击。

8. 文件权限与敏感信息保护

确保关键文件权限正确:

  • /etc/passwd 权限644,/etc/shadow 权限600
  • 家目录权限750,避免其他用户读取
  • 查找全局可写文件:find / -type f -perm -o+w -exec ls -l {} \;

使用chmod和chown修正。敏感配置文件(如数据库密码)不应放在Web目录下。

9. 定期备份与恢复演练

备份是最后一道防线。使用rsync或tar定期备份关键数据:

tar -czf /backup/etc-$(date +%F).tar.gz /etc /home /var/www

将备份存储到异地或对象存储,并设置保留策略。每季度进行一次恢复演练,确保备份有效。注意备份文件权限,避免泄露。

10. 制定安全基线并持续检查

将上述步骤固化为检查清单,使用自动化工具定期核查。例如,使用lynis进行系统审计:lynis audit system,根据报告修复问题。对于多台服务器,可借助Ansible批量执行加固脚本。考虑使用AegisX的主机安全能力,实时监控异常登录、文件变更和漏洞风险,将被动防御转为主动发现。

行动建议

安全加固不是一次性任务,而是持续过程。建议立即执行以下动作:1)更新所有补丁;2)修改SSH配置禁用密码登录;3)启用防火墙并仅开放必要端口;4)安装Fail2ban;5)创建定期检查任务。完成这10步后,你的服务器安全基线将显著提升,但需记住:安全是动态的,保持学习和监控才能应对不断变化的威胁。

常见问题(FAQ)

新手如何快速检查Linux服务器是否安全?

可以从基础项入手:检查系统补丁是否最新、SSH是否禁用root登录、防火墙是否启用、是否有异常账户或进程。使用命令如`lastb`查看登录失败记录,`netstat -tulnp`检查监听端口,`grep -i 'Failed' /var/log/secure`排查暴力破解。定期执行这些检查能发现大部分常见风险。

为什么必须禁用root的SSH远程登录?

root账户拥有最高权限,一旦被暴力破解或泄露,攻击者可直接控制整台服务器。禁用root远程登录后,攻击者需先破解普通账户再提权,增加了难度。同时应配合密钥认证和Fail2ban等工具,进一步阻断爆破尝试。

防火墙配置应该注意哪些原则?

遵循最小化开放原则:仅允许业务必需的端口(如80、443),其他一律拒绝。默认策略设为DROP,按需添加白名单IP。使用iptables或firewalld时,注意规则顺序,先允许已建立的连接,再拒绝非法流量。定期审查规则,移除过期条目。

如何检测服务器是否被植入后门?

检查异常进程、定时任务、启动项和网络连接。使用`ps aux`查看可疑进程,`crontab -l`检查计划任务,`netstat -antp`观察异常外连。还可使用rkhunter、chkrootkit等工具扫描rootkit。发现异常文件(如/tmp下可执行文件)应立即隔离分析。

安全加固后如何持续维护?

建立定期巡检机制:每周检查补丁更新、日志审计、账户变动;每月进行漏洞扫描和配置核查。使用自动化工具如Ansible批量执行基线检查,或借助AegisX的主机安全模块实时监控异常。同时保留操作记录,便于追溯。