我需要破解 OS X pf 以将所有 ssh 连接从用户重定向到这台机器。我想要,在做的时候
$ ssh google.com
Run Code Online (Sandbox Code Playgroud)
得到相同的结果
$ ssh localhost
Run Code Online (Sandbox Code Playgroud)
即连接到我本地运行的 sshd。
在最近的 Linux 下,这将是:
# iptables -t nat -A OUTPUT -p tcp --dport 22 -m owner --uid-owner theuser -j REDIRECT
Run Code Online (Sandbox Code Playgroud)
在 OS X 10.8 下,似乎有 2 种方法 - ipfw 和 pf。两者都不起作用。ipfw:
# ipfw flush
# ipfw add 50 fwd 127.0.0.1,22 tcp from any to any 22 uid theuser
Run Code Online (Sandbox Code Playgroud)
如果我删除该uid theuser
部分,重定向将起作用,减去用户的东西。如果我把uid
指令留在那里,网络堆栈就会死掉,系统很快就会变得无法使用;没有了ipfw
,没有了ps
,没有了kill
。
根据手册页,不推荐使用 ipfw,因此应改用数据包过滤器:
# sysctl -w …
Run Code Online (Sandbox Code Playgroud)