GeekFactory

int128.hatenablog.com

公開SSHサーバの安全性を高める5つの設計

出先からサーバをメンテナンスするには、SSHサーバをインターネットに公開する必要があります。SSHはデフォルトではIDとパスワードだけでログインできてしまうため、狙われやすい侵入経路の一つです。

ここではSSHサーバの安全性を高める設計を挙げてみます。

  1. 公開するポートを22番から変更する。
  2. 他サーバから独立したネットワーク(DMZ)にSSHサーバを配置する。
  3. SSHサーバの表裏にファイアウォールを設置し、裏側を通って他サーバにログインする。
  4. ログインシェルをchroot-jailで実行し、可能なことを制限する。
  5. 認証ログを監視する。

定期的にセキュリティアップデートを適用すること、推測されにくいIDやパスワードを使うことは言うまでもありません。地道な運用作業は重要です。

VMにおける実現方式

自宅サーバのようにスペースや静音性に制約がある環境では、独立したサーバを設置するのは困難です。また、SSHサーバはほとんどCPUが遊んでいる状態ですから省エネの観点で望ましくありません。

うちの自宅サーバでは、SSHサーバはKVM上のVMゲストで動作しています。KVMハイパーバイザではiptablesが動いており、内部ファイアウォールの役割を果たしています。VMゲストの仮想NICとはtunデバイスでつながっています。

VMゲストの仮想NICをルーティングして使うと、ブリッジと比べて帯域効率や安全性の高いネットワークを構築できます。ファイアウォールのポリシー設計がやや面倒ではありますが、ぜひ試してみてください。