Linux服务器安全加固实战:SSH加固与fail2ban入侵检测配置

Linux服务器安全加固从哪些层面入手

服务器暴露在公网,第一波攻击基本来自扫描器和撞库脚本。安全加固不是装个杀毒软件的事,而是把攻击面逐项收口:SSH入口、账号权限、端口暴露、日志审计。下面按这个顺序给出可直接执行的加固步骤,适用于CentOS、Ubuntu等主流发行版。

SSH安全配置:密钥登录与禁止root远程登录

密码登录被爆破是服务器被入侵最常见的方式。改成密钥登录后,攻击者没有私钥,爆破无从下手。

# 客户端生成密钥对
ssh-keygen -t ed25519 -C "ops@example.com"

# 把公钥拷到服务器
ssh-copy-id -i ~/.ssh/id_ed25519.pub user@server

确认密钥能登录后,修改 /etc/ssh/sshd_config:

PasswordAuthentication no
PermitRootLogin prohibit-password
PubkeyAuthentication yes
Port 2222

改动后重启服务并先保持一个会话不退出,验证新端口能登录再关旧会话:

systemctl restart sshd
ss -tlnp | grep :2222

fail2ban入侵检测:拦截爆破与恶意扫描IP

fail2ban监控日志里的失败登录行为,触发规则后调iptables/nftables临时封禁IP。安装启用:

apt install fail2ban   # 或 yum install fail2ban

核心配置 /etc/fail2ban/jail.local:

[sshd]
enabled = true
port = 2222
maxretry = 5
bantime = 3600
findtime = 600

含义:10分钟内登录失败5次,封禁该IP 1小时。启用并验证:

systemctl enable --now fail2ban
fail2ban-client status sshd

实际观察中,公网服务器sshd一天可能收到几千次失败尝试,bantime调大(如86400)能显著减少骚扰流量。

系统层加固:防火墙、sudo权限与最小化服务

用ufw或firewalld按最小原则开放端口,业务只留SSH、Web、数据库对应端口,其余全部拒绝:

ufw default deny incoming
ufw allow 2222/tcp
ufw allow 80,443/tcp
ufw enable

sudo授权用sudoers单条给,不要给普通账号 ALL 权限。禁用不需要的系统服务,删除没有在用的账号,降低被利用的面。

服务器安全巡检与日志审计方法

定时检查这几个位置,能发现大多数异常:

  • /var/log/auth.log(Debian系)或/var/log/secure(RedHat系):登录与sudo记录
  • /etc/passwd 最近修改的账号,确认没有多余UID=0的账号
  • crontab -l 与 /etc/cron.d:排查定时任务里夹带的可疑脚本
  • last / lastb:最近登录成功与失败记录

加固是动态过程,每次上线新服务都要重新过一遍端口和权限清单,配合日志留存(如rsyslog转发到远端),出事才有迹可查。

原创文章,作者:小编,如若转载,请注明出处:https://www.yunthe.com/linux-fu-wu-qi-an-quan-jia-gu-shi-zhan-ssh-jia-gu-yu/

(0)
小编小编
上一篇 20小时前
下一篇 20小时前

相关推荐