複数サーバーの多段アクセスとそれに必要な設定でセキュリティを考える

2015年6月6日

サーバー セキュリティ

サーバー管理を行う場合に、公開サービスを行う場合は、1台だけ管理する事は少なく、 複数台の管理を行う必要があると思います。 クラウドサービスの普及に伴い、サーバーの台数を増やすという事は、ボタンひとつでとても簡単になったため、検証サーバーやstageサーバーなども同時に管理するというのも意外と多いと思います。

セグメント構成

サーバー構成は、vlanやサブネットマスクのセグメント単位でローカル、グローバルという内外の構成を考えなければいけません。 多くの構成で、グローバルに対してローカル環境を横並びに組む事が多いので、とりあえず、2段階の多段構成を基準に考えたいと思います。 多くの場合が、FireWall内のサーバーにアクセスできれば、そのサーバーを踏み台にして、セグメント内の他のサーバーに踏み台でアクセスを行うことが可能になります。 セキュリティとしては、関係者以外がサーバーに入って来られない仕組みを作りつつ、運用担当者は便利に効率良くアクセスを行う必要があります。

セキュリティ対策

多くは「パスワード」「鍵」のどちらかでのログインを許可して運用しますが、2つとも採用するケースもあります。 ただ、多段ログインなどを行う場合はパスワード入力はとても効率が悪くなるので、この辺はポリシーが許す限り、鍵運用のみで行う事をオススメします。 また、会社などでの運用する場合は、鍵に加えて、アクセス元のIPアドレスを許可するhosts設定をする事で第三者からの侵入を禁止し、無差別アクセスからのいたずらを回避することも可能なので、ポリシーをそれに合わせてセットする事も必要ですね。

多段認証をやってみる

sshでのアクセスを行い、上記の構成図を元にweb1を基準に多段認証を行なってみたいと思います。 ここでは、サーバー構成の手順などは省きますので、環境設定に合わせて理解してください。

複数sshアクセス

# local -> web1 -> web2 $ ssh -t user@web1 "ssh user@web2" この方法を行う場合、 local -> web1 にアクセスする場合は、鍵登録などでパスワードを排除することができますが、 web1 -> web2 のアクセスで、相互web2にweb1からのアクセス公開鍵を登録してある必要があり、逆のアクセスも想定すると、サーバーの鍵管理が台数に応じて膨れ上がってしまうので、都度パスワード入力をするでのあれば問題ありませんが、バッチ処理などでは、パスワード入力が厳しくなってしまうので、デメリット有りというトコロですね。

netcat機能を利用する

# local -> web1 -> web2 $ ssh user@web2.com -o ProxyCommand="ssh user@web1.com -W %h:%p -q" この方法であれば、localの公開鍵をweb1とweb2にそれぞれ登録しておくことで、web1,web2どちらを踏み台にしても鍵アクセスが問題なく可能になります。 鍵管理もクライアント分を全てのサーバーに登録しておく必要がありますが、バッチ処理をクライアント側でコントロールできるメリットがあるので、オススメです。 ちなみに、ProxyCommandの命令の最後に「-q」をつけないと、 Killed by signal 1. という返り値が1行必ず入ってしまうので、このオプションで回避しよう。

rsyncを踏み台方式でデータ転送を行う

ローカルの操作PCにあるデータを踏み台サーバーを経由して同じ鍵ファイルでweb2にコピー(転送)する。 # local:~/test.dat -> web1 -> web2:/home/user/test.dat $ rsync -av -e 'ssh -o ProxyCommand="ssh user@web1 -W %h:%p -q"' ~/test.dat user@web2:/home/user/ rsyncもsshモジュールを利用できる-eオプションがとても便利に使えます。 ほぼ直感でできるんですが、なれないとアンチョコを見ながらでないと、いきなりコマンドを叩き始めるのはキツイんですが、いきなりコマンドできるようになると、結構無敵にできますね。 便利ついでに、rsyncでweb1にあるデータをweb2にコピーする方法を検証しようと思ったんだが、どうやらサーバーに手を入れておかないと難しいかも・・・ 次回にやりたいと思います。

このブログを検索

ごあいさつ

このWebサイトは、独自思考で我が道を行くユゲタの少し尖った思考のTechブログです。 毎日興味がどんどん切り替わるので、テーマはマルチになっています。 もしかしたらアイデアに困っている人の助けになるかもしれません。