我有一台面向 Web 的 Ubuntu Linux 服务器。因此,我收到了相当多的暴力 SSH 尝试(谁没有呢)。我想在登录提示符下显示最近 N 次失败的登录尝试。我制定了简单的脚本:
grep "Failed" /var/log/auth.log | tail -5
但我需要知道的是我应该把这行脚本放在哪里?有没有与 shell 无关的地方可以把它放在那里?
答案1
您可以使用几个软件包来帮助抵御暴力攻击。
- 拒绝主机
- Fail2ban
要收集日志并向您发送报告,您可以使用 logwatch。它还可以发送失败登录的摘要。
要回答您最初的问题,您可以将脚本放在“/etc/profile.d/yourscript.sh”中,并且它应该在登录时执行。
您可能还考虑设置 arno-iptables-firewall 包。
答案2
它确实依赖于 shell。对于bash
,您应该将其放在.bash_login
文件中。
关于暴力攻击预防,除了已经建议的将攻击者的 IP 列入黑名单之外,我通常会告诉 sshd 监听非标准端口并禁用密码验证。当然,这可能并不总是可行的,但它肯定是有效的。
答案3
将所有内容放入 /etc/profile 中。
它将在转到 shell 启动文件之前运行 /etc/profile 中的所有内容。