將 SSH 隧道限制為特定用戶

將 SSH 隧道限制為特定用戶

我在網關上打開了一個 ssh 隧道,如下所示:

autossh -M 30000 -f -N example.com -L \*:20022:192.168.1.40:22

我怎麼能讓一個用戶(比如說約翰)只使用這個 ssh 隧道並限制我擁有的所有其他用戶,這樣除了約翰之外沒有用戶可以使用端口 20022 進行 ssh?請注意,使用者 john 在我的網關上不存在,無論是作為本機使用者還是在 LDAP 中。

答案1

如果客戶端是Linux主機,你可以這樣做iptables:

iptables -A OUTPUT --dest 192.168.1.40 --dport 22 -m owner --uid-owner john -j ACCEPT
iptables -A OUTPUT --dest 192.168.1.40 --dport 22 -j REJECT

--sport 20022請注意,此條件針對的是目標位址和端口,而不是來源端口--dest20022 --dport。但這當然不會阻止其他用戶在不同的連接埠上打開類似的隧道。

答案2

僅將 John 的公鑰發佈到網關上的authorized_keys 檔案。關閉密碼驗證。

相關內容