最新更新日 2001.06.11.


tcp_wrappers_7.6 のインストール。
 あぁあ、このページが出来た時から項番だけあった XEmacs ネタは書かずに先にこっちを書いてしまう・・(^^;;。ま、それもまた人生。許してくだされ・・;-)。

 今月はセキュリティ強化月間と言う事で、先に IPv6 対応な tcp_wrappers の設定をしてサーバを守る事にしましょう。

 まず インストールするに当たり必要なモノを取りに行きましょう。

ftp://ftp.hiroshima-u.ac.jp/pub/solaris/Solaris/SOURCES/

辺りから持ってきてください。そして、IPv6 パッチも用意しましょう。

http://www.imasy.or.jp/~ume/ipv6/tcp_wrappers_7.6-ipv6-1.13.diff.gz

辺りにあります。それでは以下の手順で make して行きましょう。どうも うめさん の所からダウンロードしたファイルは拡張子が取れてもまだ gzip されているのでその為の儀式が必要です。

----------------
% mv tcp_wrappers_7.6-ipv6-1.13.diff tcp_wrappers_7.6-ipv6-1.13.diff.gz
% gunzip tcp_wrappers_7.6-ipv6-1.13.diff.gz
% tar xvzfp tcp_wrappers-7.6.tar.gz
% cd tcp_wrappers-7.6
% cat ../tcp_wrappers_7.6-ipv6-1.13.diff | patch -p1
% vi Makefile
% make solaris8
----------------
 儀式が終わって patch をあてた後、Solaris8 に対応する為に Makefile を手で編集します。私が編集した項目は以下になります。

----------------
# SysV.4 Solaris 2.x OSF AIX
REAL_DAEMON_DIR=/usr/sbin
---
FACILITY= LOG_LOCAL1    # LOG_MAIL is what most sendmail daemons use
SEVERITY= LOG_NOTICE    # LOG_INFO is normally not logged to the console
---
DOT= -DAPPEND_DOT
---
KILL_OPT= -DKILL_IP_OPTIONS
----------------
 上記の五つの設定を有効にします。これが終わったらすかさず make します。IPv6 パッチでターゲットに Solaris8 が出来たのがすごいですね;-)。

 と、言う事で make install は手でします。これでインストールはおしまいです。後はサーバの設定に移りましょう。

----------------
% cp try-from tcpdmatch tcpdchk safe_finger /usr/local/bin
% cp tcpd /usr/sbin
% cp libwrap.a /usr/local/lib
% cp tcpd.h /usr/local/include
%
----------------
 ちなみに、tcpdmatch tcpdchk 等のコマンドはその名の通り動作チェックやテストの為のツールです。

 libwrap.a を link したプログラムは /etc/hosts.allow で設定出来ます。FreeBSD の場合は、sendmail や portmap 等にもリンクされています。これらは、個別のアクセス制限の設定の他に /etc/hosts.allow でも可能です。

 では、先にインストールの終わっている OpenSS-2.5.2p2 を libwrap 経由で制御出来る様にしましょう。実際の詳しい内容は、そちらで確認て下さい。

----------------
% tar xvzfp openssh-2.5.2p2
% cd openssh-2.5.2p2
% ./configure --with-egd-pool=/var/tmp/entropy --with-dante=/usr/local/lib --with-tcp-wrappers
% make
# make install
----------------
 新しいオプションである --with-tcp-wrappers を付けます。これで OK ですね。むひひひひ。

 と、言う事でインストールが終わったので後は残すは設定のみです。まずは、/etc/inetd.conf から起動されるモノを tcpd 経由で起動する様にします。代表的なモノは以下の様にしました。

----------------
ftp     stream  tcp     nowait  root    /usr/sbin/tcpd    in.ftpd
telnet  stream  tcp     nowait  root    /usr/sbin/tcpd    in.telnetd
ftp     stream  tcp6    nowait  root    /usr/sbin/tcpd    in.ftpd
telnet  stream  tcp6    nowait  root    /usr/sbin/tcpd    in.telnetd
----------------
 さて、後は二つのファイルの作成です。/etc の下に hosts.allow と hosts.deny を用意します。 hosts.deny は拒否する設定を書きます。以下の感じで良いと思います。
----------------
ALL: ALL
----------------
 全部拒否する。と、言う事ですね。では続いて許可する設定をします。hosts.allow と言うファイルですが、基本的には以下ですね。それなりの練習用にしてみました。
----------------
#ALL : ALL : allow

#ALL : localhost 127.0.0.1 : allow
#ALL : .running-dog.net 192.168.1.0/255.255.255.0 : allow
#ALL : [3ffe:505:2019:1::]/64 : allow
#ALL : [fe80::]/10 : allow

in.telnetd : localhost 127.0.0.1 : allow
in.telnetd : .running-dog.net 192.168.1.0/255.255.255.0 : allow
in.telnetd : [3ffe:505:2019:1::]/64 : allow
in.telnetd : [fe80::]/10 : allow

sshd : localhost 127.0.0.1 : allow
sshd : .running-dog.net 192.168.1.0/255.255.255.0 : allow
sshd : 192.168.1.0/255.255.255.0 :allow
sshd : [3ffe:505:2019:1::]/64 : allow
sshd : [fe80::]/10 : allow

in.ftpd : ALL : allow
----------------
 最初の #ALL の第 1 行目は全てのサービスに対してアクセスを許す設定ですが、これを書いておくとどえりゃー事になるのでコメントしておきます;-)。

 その次の 4 行は同じく全てのサービスに対しアクセス可としていますが、アクセス元の制限を掛けています。 localhost と 自分のドメインから、その逆引きの設定、そして、tcpd が IPv6 Ready なので、グローバルな IPv6 の指定、そして、リンクローカルな IPv6 アドレスを書いています。

 全てのサービスに対するアクセスを許可するのは心もとないのであれば、telnet と ssh は特定のマシンから許可。ftp は anonymous サービスをするので、全てのサイトからのアクセスを許可。なんて言うので上記の様にしてみました。

 さてと。後は自分のセキュリティポリシィに従って設定してみてください。/etc/inetd.conf 内で tcpd 経由の設定にしたサービスに付いては、これらの設定ファイルで制御出来る様になります。

 最後にですが、リンクローカルな IPv6 アドレスの記述に付いて とある方からコメントを頂いたので書いておきます。基本的に IPv6 Ready なマシンであればリンクローカルなアドレスでわざわざアクセスする必要もないので書く必要が無い可能性の方が大きいかもしれません。ま、何らかの原因で、rtadvd とお喋りできなくて IPv6 が付かなかった時にはおおいに力を発揮するのですけど;-)。

 IPv6 環境の為に tunnel を掘っているマシン、あるいは router 機能を有効にしているマシンの場合には fe80::/10 を開けてしまうのはとっても恐いと思いがちです。tunnel 先が信用出来るのであれば問題は無いですが、そうでない場合は非常に怖い。と、言う事になります。それらも考慮した上で設定してみてください。

 ちなみに Solaris8 では FreeBSD の様に %fxp0 と言う scope-ID が無いのもちょっと脅威です。


Copyright (c) 1997-2004 takachan@running-dog.net All Rights Reserved.