![物理访问登录尝试失败后关闭机器电源](https://linux22.com/image/1508735/%E7%89%A9%E7%90%86%E8%AE%BF%E9%97%AE%E7%99%BB%E5%BD%95%E5%B0%9D%E8%AF%95%E5%A4%B1%E8%B4%A5%E5%90%8E%E5%85%B3%E9%97%AD%E6%9C%BA%E5%99%A8%E7%94%B5%E6%BA%90.png)
我想知道在从本地机器(例如从终端登录或从 lightdm)多次尝试登录失败后,是否有任何常见的技术可以关闭计算机。
对于 SSH 或任何远程登录,我只会使用 fail2ban。我问这个问题是为了个人电脑,比如台式机或笔记本电脑,它们更容易被盗。
我之所以想要在本地暴力破解尝试期间关闭机器,是为了迫使窃贼离开此次启动时已解锁的加密磁盘。
答案1
与 PAM 相关,您可能想要研究如何实现 pam_exec.so 来运行脚本,以便在身份验证期间因登录尝试失败而关闭机器。
这里有一个很好的资源,有人实现了相同类型的设置,他跟踪登录计数以确定何时调用关机脚本。
来源:https://cowboyprogrammer.org/2016/09/reboot_machine_on_wrong_password/
希望这可以帮助。
答案2
您可以使用logwatcher
或swatch
并在 X 次登录尝试失败后关闭。本地暴力破解?——您的意思是有人将 FPGA 物理连接到您的服务器并尝试暴力破解?
答案3
*首先,为了安全,打开另一个 tty(Alt+Ctrl+F3)并登录,这样如果您弄乱了系统,您可以恢复更改。(如果您不这样做,您仍然可以通过以下方式恢复系统:1. 在启动时,编辑 grub 启动行(按 e)并添加到init=/bin/sh
以“linux”开头的行,当您到达控制台时:2.mount -o remount,rw /
创建脚本
sudo vi /opt/loginfail
内容如下:
/bin/dash 的 #!/bin/dash
workdir="/home/USER/Downloads/failedlogin.d/"
failfile="$workdir/failfile"[ !-d “$workdir” ] && mkdir “$workdir”
[ !-f “$failfile” ] && echo “0” > “$failfile”trial="$(cat "$failfile")"
trials="$((trial + 1))"
echo "$trials" > "$failfile"如果 [ “$trials” -gt “2” ]; 然后
回显 “0” > “$failfile”
sudo /sbin/poweroff --no-wall --poweroff
fi
使其可执行
sudo chmod +x /opt/loginfail
编辑 /etc/pam.d/common-auth 并改变行
身份验证 [成功=1 默认=忽略] pam_unix.so nullok_secure
到
身份验证 [成功=2 默认=忽略] pam_unix.so nullok_secure
并添加以下行:
auth [默认=忽略] pam_exec.so seteuid /opt/loginfail