xinetd(アクセスコントロールのために)
inetdでもtcp_wrappersと組み合わせて使うことで、十分実用には耐えられると思います。
しかし、インストールルートが制限されるなどの弊害もあります(tcp_wrappersの制限)
なので、うちみたいに追加のソフト群をtcp_wrappersの管理外(/opt以下)においてしまう場合、
アクセスコントロールができなくなります。
tcp_wrappers(hosts.alow/hosts.deny)を使いながら変則的なインストールでも制御できるように、
細かい設定が可能で自由度が高いxinetdを導入してみましょう。
まぁ、最初に作った理由は「sshdをtcp_wrappersを経由して起動させるため」だったんですけどね。
さらに言うと、binaryにxinetdがついているんです。tcp_wrappersに対応していないけど・・・orz
「細かい設定が可能」
たとえば、
xinetd単体で(tcp_wrappersを使わなくても)アクセス制御ができる。
サービスを提供する時間を個別に設定できる。
1ファイル1サービス単位での管理ができるので管理が簡単。
などなど、inetdの機能を拡張した感じといえばいいのかな?
設定の簡単さで言えばinetdの場合が多いですが(行頭のコメント記号をはずすだけとか)、
コメント行だらけでわかりにくい点もあります。
まぁ、使いやすいほうで良いんじゃないかな?(本当か?
やること一覧 ・インストール ・設定ファイルの生成〜調整:Manpage of XINETD ・スーパーサーバーの切り替え
関連ページ ・tcp_wrappers(アクセスコントロールのために)
事前準備
標準でインストールされるxinetd.confを削除する。
# rm /etc/xinetd.conftcp_wrappersの機能を取り込んでアクセス制限を行う場合、
$ tar xvfz xinetd-2.3.14.tar.gz $ cd xinetd-2.3.14 $ ./configure --prefix=/usr --with-libwrap=/usr/lib/libwrap.a
option | 説明など |
--with-libwrap= | tcp_wrappersのライブラリを取り込む |
# cd /usr/sbin # strip -p itox xinetd「--with-libwrap」
設定ファイルの生成
# /usr/sbin/xconv.pl </etc/inetd.conf> /etc/xinetd.confxinetd.confに取り込まれているin.telnetdとin.ftpdを分離・編集して再配置(改行コードに注意)
まぁ、ここはそのままでも実害はない。 説明するの面倒だから、省略(をxinetd.confの修正
# vi /etc/xinetd.conf (変更) ┃# log_type = FILE /var/log/servicelog ┃ log_type = SYSLOG AUTH (追加) ┃includedir /etc/xinetd.d設定ファイル置き場の作成
# mkdir /etc/xinetd.d細かい設定ファイルの書き方は参考や他のサイトのほうが詳しい。
起動スクリプトの作成
inetdの起動スクリプトを元に作成する。 作成手順 1.inetdの文字列をxinetdに置き換える 2.checkportmap () { 〜 } までをコメントアウト(または、削除) 3.startとrestartの所にあるcheckportmapをコメントアウト(または、削除) まぁ、上記手順で作った起動スクリプトも置いておくけど・・・保障はしないよ? xinetd起動スクリプト(xinetd.tar.gz) md5sum crc32:73B422FF起動スクリプトを使える状態にする
FFFTPで/etc/init.dにアップ(viで書いた人は mv xinetd /etc/init.d/ ) # chmod 755 /etc/init.d/xinetd注意
# /etc/init.d/inetd stopxinetdのテスト(起動|再起動|停止)
# /etc/init.d/xinetd start # /etc/init.d/xinetd restart # /etc/init.d/xinetd stopxinetdの起動
# /etc/init.d/xinetd starttelnet/ftpの接続テストを行う。
# mv /etc/rc.d/rc2.d/S20inetd /etc/rc.d/rc2.d/K20inetdxinetdが自動起動するようにする
# ln -s /etc/init.d/xinetd /etc/rc.d/rc2.d/S20xinetd # ln -s /etc/init.d/xinetd /etc/rc.d/rc0.d/K20xinetd # ln -s /etc/init.d/xinetd /etc/rc.d/rc6.d/K20xinetd再起動(自動起動するかテスト)
# shutdown -r now (再起動後) $ ps ax | grep inetd | grep -v "grep"「スーパーサーバー」
戻るなら押せ!