Iptables
按組限制 ssh 隧道埠訪問
我的理解是,在創建到遠端機器的 ssh 隧道時,該機器上的埠會開放,任何人都可以使用並連接回我的本地機器(不僅僅是打開隧道的使用者)。有沒有辦法將對遠端機器上打開的埠的訪問限制為指定的 unix 組?我在想這可能通過 iptables 規則或其他一些 TCP/IP 埠限制來實現,但我不完全確定。
謝謝
您可以使用 iptables
owner
模組來匹配原始套接字的 UID 或 GID,但這僅適用於源自本地(即來自遠端機器)的數據包。% ssh -fNR 20022:localhost:22 localhost % sudo iptables --append OUTPUT --destination 127.0.0.1 --protocol tcp --dport 20022 --match owner \! --uid-owner mgorven --jump REJECT % sudo iptables -nvL OUTPUT Chain OUTPUT (policy ACCEPT 40 packets, 6349 bytes) pkts bytes target prot opt in out source destination 0 0 REJECT tcp -- * * 0.0.0.0/0 127.0.0.1 tcp dpt:20022 ! owner UID match 1000 reject-with icmp-port-unreachable % telnet 127.0.0.1 20022 Trying 127.0.0.1... Connected to 127.0.0.1. Escape character is '^]'. SSH-2.0-OpenSSH_5.9p1 Debian-5ubuntu1 ^] telnet> Connection closed. % sudo telnet 127.0.0.1 20022 Trying 127.0.0.1... telnet: Unable to connect to remote host: Connection refused