松尾くんと共同で、サーバのセキュリティ強化作業。
アクセス制限を徐々に強めていく際、どちらかがログインしたままで、他方が一旦抜けて、入り直す作業の繰り返し。
今日だけで、相当にセキュリティは強化されて、普通にアクセスして来ても、まず、rootには辿り着けないようにはなった、と思う。が、問題はその操作にかかった時間で、当初の予定としては、「ちょいちょいっと、1時間程度」のつもりが、7時間かかってしまった。
どこでドツボったか。(たぶん、似たようなトラブルにハマる人もいるかも、と思うので、アップしておきます。ご参考までに。)
SSHで、暗号鍵を使ったログインの設定をする際に、そのデフォルトポートを22から変更したのに、変更後のポートが全く開けない、という現象が起きた。言うまでもなく、いくつに変更したかは書けない。中国からのアクセスみたいに、片っ端から繋ぎに来ていれば、いつかは見つかるかも知れないけれども、こんなもん、ネットに書いたら変更した意味がない。(余談ながら、今は、pingも返さないし、そのポートにSSHでアクセスされても、アクセス方法が正しくなければ一切返事しない、はず、なんだが、返事を返さなくてもしつこく繋ぎに来るハッキング・ツールがあるみたいだ。)
結論から言えば、IANAに登録がないポート番号でも、どれでも使える訳ではない、ということのようだった。(間違いなく、昔は、使っていなければ任意のポート番号に設定できたはず、なんだけれども・・・)
問題解決に時間がかかりすぎて、何が原因だったか確認する余力が、僕にも、松尾くんにも残っていない気分でした。
最初は、ファイアウォールに蹴られているか、と思い、ufwの設定を変えて、試しまくった。何よりも、初期状態では inactive だったのに・・・。activeにして、明示的にそのポートを開いても、22番は通るものの、新しいポートにつながらない。散々時間を潰した挙句に、ufwのログを調べたら、ufwがそのポートへのアクセスを蹴った記録が一切残っていない。ということは、ufwは切っていない。
次に試したのは、/etc/ssh/sshd_config のポート以外の指定。効果なし。 /etc/ssh/ssh_config も試した。iptablesのツールも入れて調べたけれど、ポート自体は「許可」になっている。どこをどう見ても、そのポートは「口を開いて待っている」設定になっている。
あぁでもない、こうでもないと、延々と試行錯誤した。ネット検索しても、どのサイトも「ここだけ直せばすぐに変更できる」となっている。何で俺たちだけ?と、無力感に晒されてくる。
結論:開いていても、ssh deamonには、使えないポート番号がある。
このサイトで、
ウェルノウンポート番号 (0–1023) 登録済みポート番号 (1024–49151)
となっているのが気になった。ここを外して設定してみようか。40152-65535の範囲にある別のポートに切り替えたら、瞬殺で、動作した。何で、こんなところに時間を費やして・・・
ググると、「こうやれば、簡単にできます」のサンプルでは、この1024-49151の範囲にあるポート番号が「適当に」設定されて、使えることになっている。「適当な値に変えて下さい」その「適当」とは、0-49151以外のようだ。(もう、試す元気がない。)
SSHのポート変更で、うまく動かなかったら、「使われていないポート番号」を探すだけではなく、0〜49151を避けるというのも、重要なことのように、自分は理解した。(間違っているかも知れないけれども、経験則として・・・)あるいは、ちょっと試してつなげなかったら、すぐに別のポート番号を試す、というのが、おそらく正解なんだろうと思う。二人して、ほぼ一日浪費した気分。(こうして、どんどんと予定がずれ込む。)
最近、仕事の仕方が「きれい」じゃない。とにかく動けばそれでいい、そんな感じになって来た。でも、これほど調べたのに、SSHに「使える」ポート番号について書かれたサイトが、一つもなかった。もう、結果オーライ。
もう22番はファイアウォールも閉じているから、これでだいぶ静かになってくれたらありがたい、と思ったのだけれども、結局認証ログは静かになったのに、ファイアウォールのログが、凄まじい勢いで膨らんでいる。認証ログが騒がしいよりは、心が穏やかだけど。こういうアクセスをする人たちには、この世界から消えて欲しいよなぁ。