FreeBSD ネット関連ワークソフト紹介

Last Update (1999/05/10 07:33:58)

ミラーサイト [www.ceres.dti.ne.jp] [yk.rim.or.jp]

[ホームページ] [日記] [読んでいる日記] [秋葉原価格] [FreeBSD] [FreeBSD LINK] [検索] [高速検索]

ネットワーク関連ソフト紹介

IRC users in Japan Home Page
jp-ircii-2.8.2.tgz FreeBSD 2.2.2R
ネットワーク上でキーボードを使ってチャット(おしゃべり)するためのツール IRC。
上記のページでは、IRC全般(IRC用ソフトやIRCサーバなど)に関しての情報が得られる。
tcp_wrappers-7.4.tgz FreeBSD 2.2.2R
TCP/IPによる外部からのアクセスを制限するソフト
インターネットに直接接続しているマシンは、24時間いつでもどこからでもクラック攻撃を受ける可能性がある。 また、ダイアルアップPPP接続でインターネットに接続している場合でも、接続している間は外部からクラック攻撃(telnetされたり、ftpされたり...)を受ける可能性がある。 このソフトは、送信者のIPアドレスを判別して、特定の送信者からのみtelnetなどを受け付けるようにできるソフトだ。
以下、簡単にインストール方法を示す。
  1. suでroot になる。
  2. pkg_add tcp_wrappers-7.4.tgz として、tcp_wrappers のパッケージをインストールする。
  3. /etc/inetd.conf を編集する。
    telnet	stream	tcp	nowait	root	/usr/libexec/telnetd	telnetd
    	    
    の行を
    telnet	stream	tcp	nowait	root	/usr/local/libexec/tcpd	telnetd
    	    
    と変更する。
    /etc/inetd.conf の記入方法については、man inetd とすると表示されるだろう。
  4. /usr/local/etc/hosts.allow を作成する。
    このファイルにはネットワークデーモンプロセスにアクセス許可を与えるIPアドレス、またはホスト名を指定する。
    ネットワークプロセスデーモン名: 範囲指定 [, 範囲指定...]
    	    
    という形でネットワークプロセスデーモン別にアクセス制限を記述する。 以下、アクセス制限をかけるネットワークデーモンとして telnetd を指定することにする。 範囲指定の部分をIPアドレスで指定する場合は、ネットアドレス/ネットマスクという組合せで指定する。
    telnetd: 10.0.0.0/255.255.255.0
    	    
    上のように設定した場合、10.0.0.0 〜 10.0.0.255 までの IPアドレスからの telnet は許可する。 tcpdの判定方法は、アクセス元のIPアドレス に ネットマスクの値を AND して、その結果がネットアドレスに等しければアクセスを許可するというものだ。 (実際には、10.0.0.0 から telnet されることは無いだろーけど。)
    また、
    telnetd: 10.0.0.
    	    
    のように、ピリオド(.)で数字を終らせておくと、IPアドレスの上位3バイトが10.0.0のホストからアクセスは許可するようになる。 私の場合は、
    telnetd: LOCAL, 10.0.0.0/255.255.255.0
    	    
    と記述しておいた。 「LOCAL」という指定で、ローカルホストからのtelnetも許可する設定にしている。
    記入方法の詳細は、man 5 hosts_access とすると表示されるので参考にして欲しい。
    余談だが、FreeBSDのports/packagesでインストールされるプログラムは/usr/local以下に置かれ、設定ファイルも/usr/local以下に置かれるべきだという鋼鉄の掟がある。 tcp_wrappersをオリジナルソースから手動でコンパイル・インストールした場合は、設定ファイルは /etc/hosts.allow になるらしい。
  5. /usr/local/etc/hosts.deny を作成する。
    このファイルには、ネットワークデーモンへのアクセスを禁止するIPアドレス、またはホスト名を指定する。 記述方法は /usr/local/etc/hosts.allowと同じである。
    ALL: ALL
    	    
    上の例では、/usr/local/etc/hosts.allowファイルでアクセス許可した以外のIPアドレスからのtelnetを許可しないので、全部禁止という指定をしている。 ALL という指定をすると、「全部」と解釈される。
  6. 変更した設定ファイル /etc/inetd.conf を読み込ませるため、inetdにシグナル SIGHUPを送る。
    ps -ax | grep inetd として inetd の プロセスIDをさがすか、cat /var/run/inetd.pid としてinetdのプロセスIDを見て、kill -HUP プロセスID とする。
  7. tcpdchkを実行して、設定ファイルのエラーをチェックする。
    /usr/local/sbin/tcpdchk として、エラーが表示されなければOKだ。
  8. /usr/local/sbin/tcpdmatchでアクセス制御のテストを行う。
    /usr/local/sbin/tcpdmatch telnetd 10.0.0.1 とすると、
    client:   address  10.0.0.1
    server:   process  telnetd
    matched:  /usr/local/etc/hosts.allow line 1
    access:   granted
    	    
    のように、access が granted(許可)されているのが表示される。

    /usr/local/sbin/tcpdmatch telnetd 192.23.12.33 とすると、

    client:   address  192.23.12.33
    server:   process  telnetd
    matched:  /usr/local/etc/hosts.deny line 1
    access:   denied
    	    
    と表示され、access が denied(拒否)されているのが表示される。
以上でtcp_wrapperを使ったtelnetdに対するアクセス制限の設定は終了だ。

他にアクセス制限が必要なものとして、ftpやfingerなどが考えられる。 上の記述の応用例として、ftpやfingerにもアクセス制限する設定を行ってみる。

  1. /etc/inetd.confの編集
    finger	stream	tcp	nowait	nobody	/usr/libexec/fingerd	fingerd -s
    	    
    finger	stream	tcp	nowait	nobody	/usr/local/libexec/tcpd	fingerd -s
    	    
    に変更。 続いて
    ftp	stream	tcp	nowait	root	/usr/libexec/ftpd	ftpd -l
    	    
    ftp	stream	tcp	nowait	root	/usr/local/libexec/tcpd	ftpd -l
    	    
    と変更。
  2. /usr/local/etc/hosts.allowを編集
    telnetd: LOCAL, 10.0.0.0/255.255.255.0
    ftpd: LOCAL, 10.0.0.
    fingerd: LOCAL, 10.0.0.
    	    
    としてみた。
    みんなおんなじアクセス制限範囲指定で、inetd.conf で tcp_wrapper が使われるように指定したのは telnetd, ftpd, fingerd だけなので /usr/local/etc/hosts.allow の内容は
    ALL: LOCAL, 10.0.0.
    	    
    でもオッケーかもしれない。
  3. tcpdchk でテスト
  4. tcpdmatch でテスト
以上で設定終了だ。
さらにアクセス制限が必要なものについては、同じように設定すると良いだろう。

Copyright(c) 1996,97,98,99,2000,01,02,03,04 George(小濱 純). All rights reserved.
私の作成したページへのリンクはご自由にどうぞ。
このページに間違いや要望などがありましたら george@yk.rim.or.jp まで御連絡ください。

[ホームページ] [日記] [読んでいる日記] [秋葉原価格] [FreeBSD] [FreeBSD LINK] [検索] [高速検索]

home: <george@yk.rim.or.jp> or <george@ceres.dti.ne.jp>
(I am using SPAM filter, so please phone me when you wrote mail to me.)