この投稿はSSH構成の強化についてです
はじめに
SSHは、UNIXベースのシステムのリモート管理の標準ツールになりました。 SSHデーモン(sshd
)は、デフォルトでほとんどすべての主要なシステムにインストールされています。さらに、sshd
また、多くの構成オプションを提供します。
注 :この記事は、Lynisに関する以前のトピックの続きです。私はこれをそれ自体で読みやすくしようとしましたが。コンテキストを把握するために、前の記事を読むことを検討することをお勧めします。
openssh
のデフォルト設定 (OpenBSDプロジェクトによって開発されたSSHのバージョン)は「デフォルトで安全」という哲学に従っているため、ほとんどの構成はそれ自体で安全です。ただし、lynis監査スキャンを実行すると、構成に関するいくつかの提案がありました。それでは、SSHデーモンをさらに強化するために、提案を確認してみましょう。また、それらの一部をオフ/オンにするとセキュリティが向上するかどうかについてもコメントします。
SSH構成の強化
提案には、sshd
の変更が含まれます 構成。 sshd
のデフォルトパスとして configは/etc/ssh/sshd_config
です 、それが私たちが見るべき場所です。
TCPおよびエージェント転送
スクリーンショットからわかるように、lynis
AllowTCPForwardingとAllowAgentForwardingをnoに設定することをお勧めします。必要なものだけを使用することをお勧めします。使用しない場合は、このオプションを無効にする必要があります。ただし、これを無効にしても、ユーザーがシェルアクセスを持っている場合はセキュリティが向上しません。その場合、ユーザーは独自のフォワーダーを設定できます(sshd_config(5)
で指摘されています)。 マニュアルページ)。
ClientAliveCountMax
ClientAliveCountMaxとClientAliveIntervalは、2つの関連するオプションです。最大カウントに秒単位のクライアントアライブ間隔を掛けると、接続が応答しなくなった時期が決まります。これがセキュリティにどのように影響するかわかりません。おそらく、私はもっと研究をする必要があります。それでも、値を下げても問題はありません。
圧縮
SSHを使用すると、このオプションを使用して認証後に送信されるデータを圧縮できます。遅いモデムでは、圧縮によって接続速度が向上する場合があります。ただし、最近のほとんどのシステムでは、これを有効にしても効果はありません。さらに、このGitHubコメントで指摘されているように、BREACH攻撃を紹介する可能性もあります。したがって、lynis'
を取り上げましょう。 提案。
LogLevel
sshd
メッセージをjournald
に記録します ほとんどのGNU/Linuxディストリビューションではデフォルトで。このオプションは、ログに記録される詳細のレベルを制御します。 lynis
これをINFOからVERBOSEに設定することをお勧めします。これは、トラブルシューティングなどに役立つ場合があります。sshd_config(5)
のマニュアルページ ただし、より高いレベル(DEBUGなど)に設定すると、ユーザーのプライバシーが侵害される可能性があることを指摘します。したがって、この設定を調整してもセキュリティは実際には向上しません。
MaxAuthTries
この値は、接続ごとに許可する認証の試行回数を決定します。さらに、接続試行の失敗がこの値の半分に達すると、sshd
失敗のログ記録を開始します。エルゴ、この値を下げるのは理にかなっています。
MaxSessions
このオプションの値は、接続ごとに許可されるシェルセッションの数を指定します。 ssh
する必要はないと思います 1台のサーバーに複数回接続します。さらに、tmux
もあります これにより、複数のセッションを開かずに、必要な多重化を実行できます。したがって、この提案を採用することは理にかなっています。
ポート
この提案の私の解釈は、sshd
を設定する必要があるということです 他の値へのリスニングポート。これは、デフォルトのポートで脆弱なマシンを探してインターネットをスキャンしているほとんどのボットネットから防御するのに役立ちます。ただし、ネットワークマッピングの基本(nmap
などのツール)を知っている人は誰でも )これは役に立たないことがわかります。それでも、デフォルト以外の値に設定しましょう。
TCPKeepAlive
このオプションをYESに設定すると、接続が切断されたときにサーバーが通知するのに役立ちます。そうすれば、セッションがサーバー上で無期限にハングすることはありません。したがって、このオプションを無効にしない方がよいと思います。
X11転送
ただし、ほとんどのssh
セッションは、テキストベースのみを対象としています。ただし、opensshは、クライアントに表示されるサーバー上でGUIアプリケーションを開く機能も提供します。それが機能する方法は、Xサーバーがクライアントに戻るチャネルを開くことです。これに伴う問題は、X11がセキュリティを念頭に置いて設計されたことはないということです。これらは私たちによって実行されたため、すべてのプログラムが信頼されていることを前提としています。ただし、この回答が示すように、X11Forwardingを使用すると、サーバーはクライアントを制御できるため、クライアントでシェルコマンドを実行できます。したがって、この機能が必要ない場合は、この機能を有効にすることをお勧めします。
結論
いつものように、セキュリティは非常に複雑なトピックです。システムがいつ安全であるかを常に知ることはできません。さらに、セキュリティの外観は、セキュリティがない場合よりもさらに悪くなります。
この記事では、sshサーバーのセキュリティを向上させるのに役立つ可能性のある非常に小さな詳細も含めて、さまざまな構成について説明しました。ただし、いつものように、脅威モデルに従ってシステムを強化してください。
つまり、SSH構成の強化について知っています