Linux で非アクティブまたはアイドル状態の SSH 接続を切断する方法
前回の記事では、アクティビティがないときに Linux シェルを自動ログアウトするためのシェル変数 TMOUT を説明しました。この記事では、Linux で非アクティブまたはアイドル状態の SSH セッションまたは接続を自動的に切断する方法を説明します。
こちらもお読みください: 切断後もリモート SSH セッションとプロセスを実行し続ける 5 つの方法
これは、SSH サービスを潜在的な攻撃から保護し安全にするためのいくつかの方法のうちの 1 つにすぎません。セキュリティを強化するために、Linux の特定の IP およびネットワーク範囲への SSH および FTP アクセスをブロックすることもできます。
Linux での非アクティブな SSH セッションの自動切断
アイドル状態の SSH セッションを自動的に切断するには、次の sshd 構成オプションを使用できます。
- ClientAliveCountMax – sshd がクライアントから返信メッセージを受信せずに ssh クライアントに送信されるメッセージ (クライアント生存メッセージ) の数を定義します。この制限に達すると、クライアントが応答しない場合、sshd は接続を終了します。デフォルト値は3です。
- ClientAliveInterval – タイムアウト間隔 (秒単位) を定義します。この間隔が経過すると、クライアントからメッセージを受信しなかった場合、sshd はクライアントに応答を要求するメッセージを送信します。デフォルトは 0 で、これらのメッセージはクライアントに送信されないことを意味します。
設定するには、選択したエディタでメインの SSH 設定ファイル /etc/ssh/sshd_config を開きます。
vi /etc/ssh/sshd_config
次の 2 行を追加します。これは、約 3 分後にクライアントを切断することを意味します。これは、60 秒ごとにクライアント生存メッセージが送信されることを意味します (合計 3 つのクライアント生存メッセージが送信されます)。その結果、3*60=180 秒になります (<強>3 分)。
ClientAliveInterval 60
ClientAliveCountMax 3
変更を加えた後は、必ずSSH サービスを再起動して、新しい変更を有効にしてください。
systemctl restart sshd [On Systemd]
service sshd restart [On SysVinit]
それだけです!以下は、役立つ SSH ガイドのリストです。読むことができます。
- カスタム SSH 接続を構成してリモート アクセスを簡素化する方法
- ssh_scan – Linux での SSH サーバー構成とポリシーを検証します
- Chrooted Jail を使用して SSH ユーザー アクセスを特定のディレクトリに制限する
サーバーのセキュリティ上の理由から、非アクティブな SSH セッションを自動的に切断することが絶対に必要です。意見を共有したり、質問したりするには、以下のコメント フォームを使用してください。