sshdのxinetd化
サービスで動いているsshdをxinetdで動作するように変更します。
通常、sshdはサービスで動作するようになっていますが、sshdがハングアップしてしまうと、ログインできなくなってしまいます。
そこで、xinetdでsshを動作するように変更すると、アクセスごとにsshのセッションを復活させられるようになるので、ハングアップする可能性が減ります。
ということで、xinetd上でsshを動かします。
まずは、起動スクリプトを作成します。
# vi /etc/xinetd.d/ssh
service ssh
{
disable = no
socket_type = stream
wait = no
user = root
server = /usr/sbin/sshd
server_args = -i
}
その後、sshdの自動起動を停止させます。
# chkconfig sshd off
次に、sshdの停止とxinetdの再起動を行うのですが、リモートでするにはかなり不安です。
できるだけ、コンソールから行った方がよいと思います。
# service sshd stop
# /etc/rc.d/init.d/xinetd restart
どうしても、リモートでするなら、sshd停止後すぐにxinetdを再起動するようにコマンドを打ちます。(ほんとにつながらなくなる可能性があるので、注意してください。)
# service sshd stop;/etc/rc.d/init.d/xinetd restart
これで、sshdが停止していていれば、OKです。
確認方法は、下記のようにします。
# netstat -natp
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 4164/xinetd
22番ポートを使っているプログラムがxinetdになっていれば、OKです。