在來自任何來源 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

相關內容