Create  Edit  Diff  Mac OS X Serverで作る 小さな計算機室  Index  Search  Changes  RSS  Login

小さな計算機室 - CannotLogin Diff

  • Added parts are displayed like this.
  • Deleted parts are displayed like this.

しばらくの間、定常運転していたMac Proのサーバーが、ときどきおかしな挙動を示すようになった。
メールやWEBなどのサービスは全てちゃんと動いている。
けれども、sshでリモートログインしようとすると、パスワードが通った直後に、うんともすんとも言わなくなる。ssh -v して様子を見ても、だんまりになる直前までは異常はない。

そんな状態でも、管理ユーザーでコンソールからはログインできて、「サーバー管理」はちゃんと使える。
ところが、sudoやsuは受け付けないし、再起動もかけることができない。
仕方がないので、電源スイッチで無理矢理落として、再起動すると、何事もなかったように動き出す。
そして、1〜2週間くらいすると、不定期的に、また上記の症状が発生する・・・
困ったものだ。

認証関係、ファイルサービス関係、ディスクの不具合など、調べた範囲では、特に深刻な問題はまだ
見つかっていない。

!! sshdの設定

/var/log/secure.logを見ると,定常的に(たぶんロボットが)外部からrootなどのidで不正ログインを試みている。
sshdの認証する前に張れるセッション数は,/etc/sshd_configのMaxStartupsで設定できる。
デフォルトは10なので,同時に10以上,不正進入を試されると実際の「正規ユーザー」がログインしようと
しても受け付けてくれなくなる。
しかも,様子を見ていると,CLOSE_WAITやLAST_ACKのまましばらく残っているコネクションがいつも見られていた。


そこで,次善の策として,
# rootでの進入を試みる例が多いので,PermitRootLoginはもちろんnoにしておく
# 不正ログインの試みができるだけ短時間で終わるように,MaxAuthTriesを小さめの値にしておく。
# MaxStartupsの値を大きめ(20くらい)に設定
# LoginGraceTimeをあまり大きい値にすると,サーバーがだんまり状態になりやすい。かなり短めに設定してみる。
としておいた。

でもやっぱりダメみたいなので,仕方なく,外部から22番ポートへの接続をブロックした。

!!代替ポートを開けてみる

次に、/etc/sshd_configを変更して、22番以外のポートも開けて、外部からはそちらをアクセスするようにしてみた。
が、Portの指定を変えても、全く反映されない。少し調べると

http://www.macosxhints.com/article.php?story=20050707140439980

に記述があったので、これに沿って plist などをいじる。
うまく動いた様子だ。