企業のセキュリティ対応でご健在なのが「IP制限」。
クラウドサービスは、ID/PASSで認証していることが多いのだけれど、企業のセキュリティ基準の場合には「物理的・地理的な制約」があることが求められるケースもある。IP制限はそのうち、地理的な制約の一つと言ってもいい。これはこれでセキュリティが増すので結構な話。
ただ、全ての環境で、固定IPが持てているわけではないので、何らかの形で固定IPのサーバを通じての通信が必要。いろいろ方法はあるのだけれど、案4がすごく良くてできてるのでおすすめ。
案1:Webプロキシサーバをたてる
固定IPをもつサーバにsquidをたてて、Webのプロキシサーバをたてる
<メリット>
ブラウザからのプロキシ設定ならやったことがあるユーザーが多い。
<デメリット>
ID/PASSの認証。新たにユーザ管理しなくちゃいけない。
ブラウザからの通信のみが対象。
案2:sshトンネル
<メリット>
枯れた技術。
<デメリット>
ユーザの手間が多い。
接続先をローカルホストとかに切り替えるという手間が発生する。
案3:VPNサーバを構築
<メリット>
枯れた技術。
<デメリット>
これだけのためにVPNサーバが必要。VPNのID/PASSの管理が大変。ワンタイムパスワードも導入するソリューションもあるけど、大げさ。
案4:sshサーバをプロキシのように使う
これが今回のおすすめ。sshuttleというツールを使う。
<メリット>
sshトンネルと似ているのだけれど、PCのクライアントはそこを一切意識しないでいい。公開鍵認証なので、ID/PASSに比べて圧倒的に強い。普段から使い慣れてる。何よりものログインが超ラクチン。
<デメリット>
LinuxとMacのみ。Windowsで似たツールがないか探したけどなさそう。
sshuttleの使い方
インストール(Macの場合)
brew install sshuttle
実行(全ての通信をsshサーバ経由にしたいとき)
sshuttle -r ユーザー名@ホスト名 0/0
最後の0/0の部分を、192.168.230.0/24とかにすると、IPレンジ指定でsshサーバ経由の通信になる。
通信速度は確かに落ちるのだけれど、それはどのソリューションを使っても同じ。もはや、多くの人が「私の公開鍵と秘密鍵」を持ち始めている。