OpenSSHをxinetd経由で起動する。

先日インストールした、OpenSSHをxinetd経由で起動するようにしたいと思います。

まずは、/etc/xinetd.d/sshdの作成です。以下のような内容で作成しました。

service ssh
{
    disable = no
    socket_type = stream
    wait = no
    user = root
    server = /usr/local/openssh/sbin/sshd
    server_args = -i
    only_from = 192.168.11.0/24
    log_on_success += DURATION USERID DURATION
    log_on_failure += USERID HOST
}

xinetdの設定は、以下のサイトを参考にやってみました。
http://www.linux.or.jp/JM/html/xinetd/man5/xinetd.conf.5.html

設定が終わったら、xinetdを再起動します。

# service xinetd restart

XPから接続・・・・なんかメチャクチャ遅いです。

いろいろ調べていると、identというプロトコルを使ってサーバ側からクライアントを認証しているみたい。XPのパーソナルファイアウォールがそんなのに応答しないような設定になっているのですごく遅くなってしまっているようです。

対応としては、/etc/xinetd.d/sshdを以下のように変更しました。

service ssh
{
    disable = no
    socket_type = stream
    wait = no
    user = root
    server = /usr/local/openssh/sbin/sshd
    server_args = -i
    only_from = 192.168.11.0/24
    log_on_success += DURATION
    log_on_failure += HOST
}

log_on_success、log_on_failureを変更しています。log_on_successはサーバ起動時、修了時にログに何を出力するか。log_on_failureはサーバ起動失敗したときに何を出力するかを設定しています。ここにUSERIDという項目を設定しているとidentプロトコルを使用して、リモートユーザのユーザ IDを出力しようとするみたい。

修正後、再度xinetdを再起動。XPから接続…無事成功しました。

次回は、sshdの細かい設定を行います。