その他
    ホーム 技術発信 DoRuby xinetd(ザイネットディー) 〜sshのIP制限とアクセスログの記録〜

    xinetd(ザイネットディー) 〜sshのIP制限とアクセスログの記録〜

    この記事はアピリッツの技術ブログ「DoRuby」から移行した記事です。情報が古い可能性がありますのでご注意ください。

    rick No32です。
    今回は、xinetdといわれるサービスを管理し、必用なときに起動させるデーモンです。
    このxinetdでsshのIP制限とアクセスログの記録を行います。

    インストール

    yum -y install xinetd
    > xinetd.x86_64 2:2.3.14-20.el5_10
    ls /etc
    > xinetd.confとxinetd.dフォルダが作成される

    SSH設定

    // 自動起動
    chkconfig xinetd on
    service sshd stop
    chkconfig sshd off
    cd /etc/xinetd.d/
    vim ssh
    ————————
    // 設定するサービス名を指定(/etc/servicesファイルに定義されたサービス名を指定)
    service ssh
    {
    // サービスの停止指定
    // no=サービスを起動する
    disable =no
    // サービスが使用するソケットタイプ
    // stream=TCP
    // dgram=UDP
    // raw=IPダイレクトアクセス
    // seqpacket=sequenced packet
    socket_type =stream
    // マルチスレッド
    // yes=1つしかsshを受け付けない
    // no=リミットまで受け付ける
    wait =no
    // サービスを実行するユーザ名
    user =root
    // 起動するサービスを絶対パスで指定
    server =/usr/sbin/sshd
    // サービスに渡す引数
    server_args =-i
    // 接続に成功した場合に記録するログの種類を指定(下記をスペース区切りで繋げられる)
    // PID=サービスのプロセスID
    // HOST=リモートホストのIPアドレス
    // USERID=リモートホストの認証ユーザ名(マルチスレッド+TCPでのみ有効)
    // EXIT=サービス終了シグナルを受けたのかを記録
    // DURATION=セッション周期(秒)
    log_on_success += DURATION HOST USERID
    // 接続に失敗した場合に記録するログの種類を指定
    // HOST=リモートホストのIPアドレス
    // USERID=リモートホストの認証ユーザ名(マルチスレッド+TCPでのみ有効)
    // ATTEMPT=起動に失敗した場合の記録
    // RECORD=サービスが起動しなかった場合の諸事情を記録
    //  設定するとエラー Bad log_on_failure flag: RECORD [file=/etc/xinetd.d/ssh] [line=10]
    log_on_failure += HOST USERID
    }
    ———————–
    /etc/init.d/xinetd start

    共通設定

    vim /etc/xinetd.conf
    defaults
    {
    // ログ出力方法を定義
    log_type = SYSLOG daemon info
    log_on_failure = HOST
    log_on_success = PID HOST DURATION EXIT
    // 毎秒ごとの可能な接続数上限の設定
    // 第1引数=1秒間で処理可能な数
    // 第2引数=上限を超えた後サービスが停止し再開するまでの時間
    cps = 50 10
    // 起動できるデーモンの数
    instances = 50
    // 同じクライアントからの接続数制限
    per_source = 10
    v6only = no
    groups = yes
    umask = 002
    }

    ログ出力

    基本は
    /var/log/messages
    に出力される
    別ファイルに出したい場合は
    log_type = FILE ファイル名
    を指定するとファイルにログが吐出される(log_typeは型も含めて2つで問題ない)

    IP制限

    個別指定に
    lonly_from = 192.168.7.{23,91}
    のようにすると23と91だけ許可になる

    注意点

    selinuxは停止しておかないと接続できない可能性があります。

    記事を共有