You are here: Home tech Server系 sshdのxinetd化
Navigation

 
Document Actions

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です。