
Macにはpfを使ってパケットフィルタすることができます。
WiFiのパケットをVrtualBox上のLinuxやWindowsサーバーに流したりできます。
確認はYosmiteでしていますが、High Sierraでもできると思います。
今回はen1の80ポート宛のパケットを192.168.2.6の8081ポートに流したいと思います。
設定ファイルを作成してポートフォワードする
アンカーファイルを作成する
/etc/pf.anchors/com.hogehoge
下記を記述します。
rdr pass on en1 inet proto tcp from any to self port 80 -> 192.168.2.6 port 8081 |
アンカーファイルの書式確認
pfctlコマンドに引数を渡して確認します。
$ sudo pfctl - v -n -f /etc/pf .anchors /com .hogehoge |
アンカーファイルをpf.confに追加する
/etc/pf.confを編集します。
バックアップを取っておきましょう。
rdr-anchorの下に下記を追記します。
rdr-anchor "port80" load anchor "port80" from "/etc/pf.anchors/com.hogehoge" |
pfファイルをロードする
$ sudo pfctl -ef /etc/pf .conf |
ファイルを作成せずに行う
ターミナルで以下を実行します。
echo " rdr pass on en1 inet proto tcp from any to self port 80 -> 192.168.2.6 port 8081 " | sudo pfctl -ef - |
VirtualBoxで設定しているブリッジからのアクセスを振り分ける
ifconfigでみて見ると以下のようになっています。
... 省略 p2p0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 2304 ether 02:33:4b:19:bf:d5 media: autoselect status: inactive vboxnet0: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1500 ether 0a:00:27:00:00:00 inet 192.168.56.1 netmask 0xffffff00 broadcast 192.168.56.255 bridge100: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500 options=3<RXCSUM,TXCSUM> ether ca: bc :c8:d9:b4:64 inet 192.168.2.1 netmask 0xffffff00 broadcast 192.168.2.255 ... 省略 |
vboxnet0のポート8082にきているものを192.168.2.7のポート8082に流すには, 下記のようにターミナルで打ち込みます
$ echo " rdr pass on vboxnet0 inet proto tcp from any to self port 8082 -> 192.168.2.7 port 8082 nat-anchor "com.apple/*" all nat-anchor "com.apple.internet-sharing" all rdr-anchor "com.apple/*" all rdr-anchor "com.apple.internet-sharing" all pass out quick all " | sudo pfctl -ef - Password: pfctl: Use of -f option, could result in flushing of rules present in the main ruleset added by the system at startup. See /etc/pf.conf for further details. No ALTQ support in kernel ALTQ related functions disabled pfctl: pf already enabled |
nat-anchor "com.apple/*" all
から下は、AppleでEthernet共有をしているときに, 共有先がネットワークに接続できるようにするための設定です。
現在の設定を確認する
NATルールの確認
pfctl -sn
フィルタルールの確認
pfctl -sr
参考URL
(http://www.papercut.com/kb/Main/MacPortForwarding) (http://www.omakase.org/freebsd/freebsd_pf.html)
0 件のコメント :
コメントを投稿