読者です 読者をやめる 読者になる 読者になる

日々の作業メモ

ライトなインフラエンジニアです

MacからSSHポートフォワードで自宅のSambaにアクセスする

サーバー

f:id:jimaoka:20170105224241p:plain

現在自宅で動作しているSambaサーバはローカルNWからのみアクセスできる状況で、外部からアクセスすることはできません。
常々外からアクセスしたかったのですが、SSHポートフォワードならどうにかできるのではないかと思い、今回試してみました。

外部からSSHできるサーバが必要です。
smbサーバのホスト名: smb.example.com (内部のみで解決できるものでもOK)
sshできるサーバのホスト名: sshd.example.com

単純にLocalhostへForwardする

ローカルPC上で下記のコマンドを実行します。

### 127.0.0.1の139からsmb.example.comの139へForwardする
% sudo ssh -L 139:smb.example.com:139 username@sshd.example.com

localhostの139へアクセスしようとしても、Mac内のルールにより阻まれるようです。(127.0.0.1としても同様)

f:id:jimaoka:20170105224247p:plain

f:id:jimaoka:20170105223428p:plain

ループバックアドレスを追加して試す

127.0.0.1でなければ良いのではないかということで、127.0.0.2をループバックアドレスに追加してみます。

### ループバックアドレスを追加
% sudo ifconfig lo0 alias 127.0.0.2 255.255.255.0
% ifconfig
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384
    options=3<RXCSUM,TXCSUM>
    inet6 ::1 prefixlen 128
    inet 127.0.0.1 netmask 0xff000000
    inet6 fe80::1%lo0 prefixlen 64 scopeid 0x1
    inet 127.0.0.2 netmask 0xff000000
    nd6 options=1<PERFORMNUD>
...

### 127.0.0.2の139からsmb.example.comの139へForwardする
% sudo ssh -L 127.0.0.2:139:smb.example.com:139 username@sshd.example.com

127.0.0.2を指定して接続してみると、無事接続できました。

f:id:jimaoka:20170105224233p:plain

f:id:jimaoka:20170105224241p:plain

補足

1024番以上であればsudoしなくても大丈夫です。

### 127.0.0.2の8139からsmb.example.comの139へForwardする
% ssh -L 127.0.0.2:8139:smb.example.com:139 username@sshd.example.com

f:id:jimaoka:20170105224623p:plain

あとは、ショートカットも作っておくと便利です。

f:id:jimaoka:20170105225219p:plain