CLOSE_WAITのセッションを早く消す方法 – Hiro Fukami's Blog - 深海寛信のブログ
# vi /etc/sysctl.conf
net.ipv4.tcp_keepalive_time = 10
net.ipv4.tcp_keepalive_probes = 2
net.ipv4.tcp_keepalive_intvl = 3
# sysctl -p
とやったが、(即座には?)セッション解放されなかったので、
sshdをrestart、restart自体も数分かかったが、とりあえず復旧
相変わらずデフォルトが長い感。
現象再発したので再調査
https://qiita.com/ssssasaki/items/11123677e2c154dcfe1f
CentOS7 などのデフォルト設定では 10:30:100 になっています。
これは、非認証な接続が 10 を超えるとそれ以降の接続を 30% の確率で拒絶し、さらに 100 に達した時点でそれ以降の接続を全て拒絶するという設定になります。
通常、非認証な接続が一気に 10 も来ることはほとんどの環境では無いと思いますので、いわゆる不正アクセス対策のための設定と考えて良いと思います。
上記の 拒絶 パターンの際に、下記のエラーが表示されます。ssh_exchange_identification: Connection closed by remote host
エラーメッセージも合致し、異常時に100件あるので怪しいが、MaxStartupsの単純引き上げも微妙
https://www.facebook.com/sengoku.hiroaki/posts/2380178762095810
このあたりを組み合わせて上記メッセージ出力時にsshdの自動再起動を仕込んでみる
https://qiita.com/Qrg/items/107928672569a8141222
https://genzouw.com/entry/2021/07/05/154156/2701/