在来自任何源 IP 的端口碰撞后允许 SSH 访问

在来自任何源 IP 的端口碰撞后允许 SSH 访问

我在 Linux 上仅使用 iptables 规则和遵循本教程的“最近”模块,为 SSH 建立了一个有效的端口敲门设置:https://wiki.archlinux.org/index.php/Port_knocking#Port_knoking_with_iptables_only

现在我的问题是,像我的工作网络这样的几个网络会阻止流向非标准端口(如 22、80、443)的流量,因此我无法发送敲门数据包。另一方面,我的移动互联网允许他们。

作为一种解决方法,我想在发送正确的敲击序列时打开 SSH 端口任何主机,而不仅仅是同一台主机。

有没有办法用 iptables 来实现这一点?例如,我可以想象一个“状态开关”或全局变量,可以由一个规则打开并由另一规则检查。超时后它会回到“关闭”状态。

答案1

我建议走敲门路线。这样就比较简单了。仅代替使用此默认配置

[openSSH]
        sequence    = 7000,8000,9000
        seq_timeout = 10
        tcpflags    = syn
        command     = /usr/sbin/iptables -A INPUT -s %IP% -p tcp --dport 22 -j ACCEPT

  [closeSSH]
        sequence    = 9000,8000,7000
        seq_timeout = 10
        tcpflags    = syn
        command     = /usr/sbin/iptables -D INPUT -s %IP% -p tcp --dport 22 -j ACCEPT

您将使用这个(注意 -s %IP% 已删除)

[openSSH]
        sequence    = 7000,8000,9000
        seq_timeout = 10
        tcpflags    = syn
        command     = /usr/sbin/iptables -A INPUT -p tcp --dport 22 -j ACCEPT

  [closeSSH]
        sequence    = 9000,8000,7000
        seq_timeout = 10
        tcpflags    = syn
        command     = /usr/sbin/iptables -D INPUT -p tcp --dport 22 -j ACCEPT

相关内容