公開SSHサーバの安全性を高める5つの設計
出先からサーバをメンテナンスするには、SSHサーバをインターネットに公開する必要があります。SSHはデフォルトではIDとパスワードだけでログインできてしまうため、狙われやすい侵入経路の一つです。
ここではSSHサーバの安全性を高める設計を挙げてみます。
- 公開するポートを22番から変更する。
- 他サーバから独立したネットワーク(DMZ)にSSHサーバを配置する。
- SSHサーバの表裏にファイアウォールを設置し、裏側を通って他サーバにログインする。
- ログインシェルをchroot-jailで実行し、可能なことを制限する。
- 認証ログを監視する。
定期的にセキュリティアップデートを適用すること、推測されにくいIDやパスワードを使うことは言うまでもありません。地道な運用作業は重要です。
VMにおける実現方式
自宅サーバのようにスペースや静音性に制約がある環境では、独立したサーバを設置するのは困難です。また、SSHサーバはほとんどCPUが遊んでいる状態ですから省エネの観点で望ましくありません。
うちの自宅サーバでは、SSHサーバはKVM上のVMゲストで動作しています。KVMハイパーバイザではiptablesが動いており、内部ファイアウォールの役割を果たしています。VMゲストの仮想NICとはtunデバイスでつながっています。
VMゲストの仮想NICをルーティングして使うと、ブリッジと比べて帯域効率や安全性の高いネットワークを構築できます。ファイアウォールのポリシー設計がやや面倒ではありますが、ぜひ試してみてください。