以下情况:我在互联网上运行服务器。尽管hosts.allow中存在例外规则,但是对于任何人,服务器都在端口22上关闭。
因为当我在家并通过我的提供商连接时,我总是拥有不同的IP地址。我当时要做的是通过浏览器控制台登录我的服务器,然后运行tcpdump ip proto ICMP
,从tcpdump输出中取出主机名并编辑/etc/hosts.allow,运行service ssh restart和之后,我可以通过ssh(putty)登录我的服务器。
只要我的提供商没有更改我的IP(大部分时间都是在夜间发生),这种方法就有效。
现在,我正在寻找的是自动化这个过程。问题是,我必须告诉我的服务器,我是谁在ping。因此,我要么以秘密模式进行ping操作,要么通过其他方式对自己进行身份验证。我还考虑点击我网站上的一个(ssl安全)链接,让一些网络服务为我坐的客户打开服务器所需的步骤。
答案 0 :(得分:1)
您可能会对使用Single Packet Authentication感到满意。这是端口敲门方法的演变,其基本思想与您描述的相同:您在防火墙机器的特定端口上发送带有加密有效负载的单个数据包,并且防火墙会丢弃数据包。但是,在幕后,如果有效载荷中的挑战成功,则在iptables中添加规则以将端口22打开到有效载荷的发送者。然后你可以ssh
到服务器。
为方便起见,您可以重新定义ssh
Bash函数,该函数首先使用Fwknop在防火墙中打开门,然后运行ssh,传递参数。它工作得很好。
Fwknop还有一个Android应用程序,允许您从手机发送加密的有效负载并打开防火墙以获取特定的IP地址。当您从平常的另一台机器连接时,可以使用此功能。