間違いだらけの備忘録

このページの内容は無保証でありこのページの内容によって直接、または間接に損害を受けられたとしても私は責任を取りません。

CLOSE_WAITセッションの蓄積によるssh接続不可

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/

このページにはhatena以外のサービスからのコンテンツが埋め込まれています。 hatenaによりGoogle AdSense 広告が埋め込まれています。