sambaを使ったグローバルipアドレスでの外部からのファイル共有で外部から接続できないという問題にぶつかった筆者が、sambaに外部からアクセスする方法を紹介します。
sambaを使ったグローバルipアドレスでの外部からのファイル共有【VPS】
centos6.9にてsambaを使ったファイル共有をやってみました。
サーバー上のsmabaに、スマホや職場、学校からアクセスできたら、利便性が増しますね!しかし、sambaでは外部からのアクセスができない。。。
sambaに外部から接続できる場面とできない場面が出てきました。
接続不可 | 自宅のプロバイダ、実家のプロバイダ |
---|---|
接続可能 | 携帯のネットワークmineo、会社のプロバイダ |
接続ができる場面とできない場面がありました。
なぜsambaで外部からグローバルIPでアクセスした時に接続できる場面とできない場面があるのでしょうか?
本来sambaはグローバルipアドレスから使用することを推奨していないのです。
プロバイダ側で通信制限をかけられてしまうということでこのような接続できるネットワークとできないネットワークに分類されているようでした。
接続できないネットワークから接続する方法
仮説:通信がどのような通信なのかをわからなくすればよいのではないか?
そう考えたときに、考えついた通信を暗号化する方法が2つありました。
shadowsocksr
Shadowsocksは、元々は中国の金盾(グレート・ファイアウォール)対策として生み出されたものですが、安全性の高いProxyとしての利用価値も高い仕組みです。
Shadowsocks(通称SS) は、SSHトンネル を Socks5 によって行うクライアント ⇔ サーバー型のプロトコルで、中国の金盾によるインターネット規制に対抗する仕組みとして、中国の Clowwindy氏 によって開発されました。
ShadowsocksR(通称SSR) は、その Shadowsocks を元に、互換性を保ちつつ主にセキュリティ面の機能を追加した派生バージョンで、中国の breakwa11氏 によって開発されました。
両者とも、GitHub上で自由に閲覧できるオープンソースプロジェクトです。
vpn(バーチャルプライベートネットワーク)
グローバルネットワーク上にあるものの通信を暗号化し、プライベートネットワークのように使うことができる。
ShadowsocksRでもvpnでも通信の暗号化をすれば、Sambaにアクセサすることはできる
検証した結果
結論:通信がどのような通信なのかをわからなくすればsambaへの外部からグローバルipアドレスでのアクセスが可能でした
ただし、ローカルネットワークではなく、グローバルipでのアクセスができるようにしておくことは、セキュリティ上良くないので、外部から接続したい場合は、VPNでグローバルipからのアクセスは不可にしておくことが良いでしょう。