Solaris 9上で、TCPを用いて接続記録やアクセス制御を行うUNIX処方箋

現場ですぐに役立つ知識を欲するあなたに贈る珠玉のTips集。今回は、Solaris 9上で、TCPを用いて接続記録やアクセス制御を行う方法について解説します。

» 2008年10月06日 08時00分 公開
[ITmedia]

Solaris 9から、TCPを用いて接続してきた相手の記録やアクセス制御を行う機能があると聞いたのですが、どのように使用するのでしょうか?


Solaris 9以降、/etc/default/inetdファイルに設定を行うことで、inetd経由で利用するサービスかつTCPを使用した通信に対する記録や、アクセス制御を行えるようになりました。

ログの記録

 TCP通信のログを記録する場合、ENABLE_CONNECTION_LOGGINGのオプションをYESに設定します。設定の手順は以下のとおりです。

  • rootユーザーに移行
  • /etc/default/inetdの内容を、次のように編集

ENABLE_CONNECTION_LOGGING=YES

  • inetdを再起動

 再起動後、inetd経由で接続されるサービスの対象となるIPアドレスが以下の/var/adm/messagesに記録されるようになります。


Sep 14 21:13:35 sun-10 inetd[125]: [ID 317013 daemon.notice] telnet[431] from 172.30.30.116 3767
Sep 14 21:16:03 sun-10 inetd[125]: [ID 317013 daemon.notice] telnet[459] from 172.30.30.116 3775
Sep 14 21:17:52 sun-10 inetd[125]: [ID 317013 daemon.notice] ftp[478] from 172.30.30.116 3787
Sep 14 21:17:56 sun-10 inetd[125]: [ID 317013 daemon.notice] ftp[479] from 172.30.30.116 3790

アクセス制御について

 アクセス制御は、TCP Wrappersの機能を用います。このため、アクセス制御のオプションを有効にする以外の設定は、TCP Wrappersの設定に準拠した内容となります。設定の手順は、以下のとおりです。

  • rootユーザーに移行
  • /etc/default/inetdの内容を次のように編集

ENABLE_TCPWRAPPERS=YES

  • /etc配下に、hosts.allowとhosts.denyを作成
  • inetdを再起動

 hosts.allowに接続許可条件を、hosts.denyに接続拒否条件を記述します(リスト1)。


・/etc/hosts.allow
ALL : 172.17.0.0/16,127.0.0.1
・/etc/hosts.deny
ALL : ALL

リスト1 172.17.0.0/16および自分自身への通信を許可し、それ以外の通信は遮断する場合の設定例

 詳細に関しては、オンラインマニュアルのhosts_accessを参照するといいでしょう。ただし、このドキュメントは/usr/sfw/man内にあるため、マニュアル用検索パスを指定する「-M」オプションとともに、次のようにmanコマンドを実行します。


$ man -M /usr/share/man hosts_access

 または、環境変数MANPATHの設定に/usr/sfw/manを加えた上で参照する点に注意してください。

関連キーワード

UNIX処方箋 | アクセス制御 | Solaris | UNIX


Copyright © ITmedia, Inc. All Rights Reserved.

注目のテーマ