LinuxSSHのセキュリティについて見直したので、メモしてみました。基本的な設定から、暗号スイートや接続数制限など、あまり情報がない設定にまで踏み込んで、SSHのセキュリティをさらに向上させる設定をまとめました。詳しい解説はページ下部へ。設定の反映にはsshdの再起動が必要なのでお忘れなく。umac-128-etm@openssh.com,umac-64-etm@openssh.com,hmac-sha2-512-etm@openssh.com,hmac-sha2-256-etm@openssh.com,umac-128@openssh.com,umac-64@openssh.com,hmac-sha2-512,hmac-sha2-256以下、各設定項目の解説です。前半の項目に関しては、別記事で解説しているのでそちらを参照してください。基礎から学ぶ!最初にやるべきSSHのセキュリティ設定【全コマンド例付き】sshdがリッスンするポート番号の変更(SELinux有効の場合)当然ですがsshd_configとは別に、ファイアウォールの許可設定が必要です。<変更したポート番号>認証関係の設定MaxStartups同時に認証できる接続数の上限を設定することができます。デフォルトでは、10まで無条件に接続を受け入れ、それを超えると30%の確率で接続を拒否するようになります。それ以降は、接続数が増加する度に拒否の確率が上がり、接続数が100に達すると100%拒否するようになります。接続数上限のコントロール方法には、上記のように段々拒否する確率を上げていく方法(1)と、単純に上限を決めてそれ以下は無条件に許可する方法(2)の2つがあります。同時に100接続することは考えにくかったので、許可数を減らしました。ちなみに、設定の書式は以下のようになっています。<上限数>AllowUsersログインを許可するユーザーを指定することができます。これにより、意図していないユーザーへのログインを防ぐことが可能です。接続に利用する暗号化のアルゴリズムを設定することができます。WebサーバのSSL設定によく似ています。デフォルトの設定だと、強度的に少し不安があるものが混じっているので、それらを除きました。Ciphers実際の通信を暗号化する暗号化アルゴリズムを指定します。デフォルトでは、既に脆弱性が報告されている3DES-cbcが有効になっていますが無効化しています。古いバージョンのOpenSSHではRC4が有効になっているらしく、こちらはもっと危険です。KexAlgorithms実際の通信に先立って、鍵を安全に配送するための鍵交換アルゴリズムを指定します。方はNIST準拠のものではないそうです。バックドア云々の話が気になる場合は@libssh.orgのつかない方は指定しないほうが良いかも。Macs改ざん検知等に利用される、MACのアルゴリズムを指定します。こちらの設定に関しては私もいまいち分からない部分があるので、デフォルト設定から、ハッシュアルゴリズムにMD5やSHA1を使っているものを無効にしました。公開鍵のアルゴリズムとして最も一般的に利用されているのはRSAで、現時点では鍵長が2048ビット以上のものはセキュリティ上特に問題ありません。利用することができます。「エドワーズ曲線デジタル署名アルゴリズム」のことで、現状選択できるアルゴリズムの中で最もセキュアということなので、これを利用します。ed25519鍵長は、256bit固定なので、指定する必要はありません。方はNIST準拠のものではないそうです。バックドア云々の話が気になる場合は@libssh.orgのつかない方は指定しないほうが良いかも。コメントをキャンセル質問・感想などお気軽にどうぞ。*が付いている項目は入力必須です。メールアドレス以外の項目が公開されます。スパム防止のため、コメント反映まで少々時間がかかります。基礎から学ぶ!最初にやるべきSSHのセキュリティ設定【全コマンド例付き】リンクGitHubアカウントを開設しました!当ブログ内で取り上げたコードなどを上げています。