所以我在 Ubuntu 机器上有一个使用静态 IP 地址的 OpenSSHD。
我的笔记本电脑有动态 IP 地址 ->“我的意思是真正动态”,所以不能指定任何范围...
我需要限制 SSHD 仅显示它在我的笔记本上(这样其他人就看不到有 sshd 正在监听某个端口,只有我)。
我正在考虑 Knockd (实现起来非常简单)。有什么解决办法吗?
答案1
老实说,我只是设置基于密钥的身份验证,禁用密码身份验证,而不用担心人们敲响门把手。只要你保守秘密,一切都会好起来的。这个问题经常出现,在许多情况下,这是出于对日志文件混乱的担忧;虽然这很烦人,但这也表明您的安全策略正在发挥作用。
如果你真的需要如果您的 sshd 仅对您的笔记本可见,您可以在它和服务器之间设置 OpenVPN,然后配置 sshd,以便它绑定到 tun/tap 接口而不是物理接口。但随后你将所有流量加密两次,对我来说这似乎是浪费熵。
答案2
答案3
您可以创建 no-ip、duckdns 等类型的主机,并使用以下 shell 脚本:
#!/bin/bash
DYN_IP="myhost.dynamic.example.com"
CMD=$(ping -c1 $DYN_IP | head -1 | awk -F' ' '{ print $3}' | sed 's/(\|)//g')
FILE="./last_ip.txt"
NEW_IP=$CMD
if [ -e $FILE ]; then
OLD_IP=$(cat $FILE)
else
OLD_IP="0"
fi
if [ $OLD_IP != $NEW_IP ]; then
echo $NEW_IP > last_ip.txt
sed -i "/^sshd: $OLD_IP/d" /etc/hosts.allow
echo "sshd: $NEW_IP" >> /etc/hosts.allow
echo "Allow ip changed to $NEW_IP"
fi
添加 crontab 每 5 分钟运行一次:
*/5 * * * * root /pathtoyou/script
此问题中用户 PRIX 的积分:https://serverfault.com/questions/187231/accessing-ip-restricted-server-from-dynamic-ip
答案4
您可以使用 no-ip.org 服务。免费注册一个地址,例如my-laptop.noip.org
,然后将软件下载到您的笔记本电脑上,每当您的 IP 发生变化时,该软件都会更新您的地址以指向您的新 IP 地址。
您只需通过 SSH 连接到my-laptop.noip.org
.
实际上我有一个服务是这样运行的。 :D