Iptables

按組限制 ssh 隧道埠訪問

  • June 12, 2012

我的理解是,在創建到遠端機器的 ssh 隧道時,該機器上的埠會開放,任何人都可以使用並連接回我的本地機器(不僅僅是打開隧道的使用者)。有沒有辦法將對遠端機器上打開的埠的訪問限制為指定的 unix 組?我在想這可能通過 iptables 規則或其他一些 TCP/IP 埠限制來實現,但我不完全確定。

謝謝

您可以使用 iptablesowner模組來匹配原始套接字的 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

引用自:https://serverfault.com/questions/398112