Hardening Linux: a 10 step approach to a secure server

  • 多く使われているdistributionをつかいましょう
    • 説明にはYast、apt-get、emergeが挙げられている事からSUSEdebianGentooがお薦めか
  • マウントポイントの決定
    • /一個だけの構成はよろしくない
      • /tmp、/var、/homeではnoexec、nosuid、nodevを記述しておこう
  • 必要のないパッケージをインストールするな
  • デフォルトパスワードの変更
    • システムが作成するユーザの一部にはデフォルトパスワードが設定されている場合があるのでそれを見付けだし、ユーザを削除するか適切なパスワードを設定すること
    • 管理用にユーザを作成すること
      • 普段からルートで作業すんな:)、sudo使え
  • 使っていないサービスは停止しよう
    • psで確認してKillしろとあるが…、いまどきならchkconfigで確認してpsの結果と突き合わせですかな
    • netstatもしとけー
  • リモートからのルートユーザでのログインを禁止する
    • sshd_config内でPermitRootLogin noしましょう
      • ほとんどのdistributionはデフォルトでyesになっています
  • IPTablesを使いましょう
    • いまどき(RHELとかSUSE)はインストール時に有効にしてくれるので便利ですな
  • 各種パラメータの設定
    • IPアドレスのなりすましを防いだりブロードキャストpingに反応しないように
  • HIDSの導入
    • samhainあたりを導入するか、最低でもAIDETripWireを。
      • もっと大胆な人ならSELinuxという選択もあります
  • 最新のパッチを当てましょう
    • 昨日インストールしたものでも今日には最新のパッチがでているかもしれません
  • 以降運用時に意識しておくべきこと
    • 過信しないこと、そのサーバは常に破られる可能性をもっています
    • 日頃からログを確認しましょう、エラーや警告の意味を理解しましょう
    • 新しいアプリケーションを導入する前には評価を行いましょう、ほとんどの場合穴はOS自身ではなく、アプリケーションに存在します
    • 素性の良いアプリケーションを使いましょう、可能ならchroot環境にインストールし、非ルートユザで起動しましょう
    • バックアップをとりましょう、最後の砦です:)