Solaris
tcp w
rapper
●●● ●●● ●●● ●●● ●●● ●●● ●●● ●●● ●●● ●●● ●●● ●●● ●●●



TCP Wrapper
 サーバーがinetdやデーモンとしてサービスを提供している場合、自分は当然だが、他人(見ず知らずの人)が使えてくれては困る。もっと言えば、LANからでなく外部から入られると困る。(まあルーターで制限するが(笑))。
 FTPやSSHなど主なものはほとんどTCPで来るので、TCPについてくる出元のIPで制限をかけられるTCP Wrapperを入れる。

tcp wrapperのインストール
2002/03/25の時点で最新のものを。
ftp://ftp.porcupine.org/pub/security/index.html (配布サイト)
ここから拾ってくる。

wget ftp://ftp.porcupine.org/pub/security/tcp_wrappers_7.6.tar.gz


$ tar zxvf tcp_wrappers_7.6.tar.gz
$ cd tcp_wrappers_7.6
$ CC=gcc REAL_DAEMON_DIR=/usr/sbin make sunos5


tcp wrapperにはインストーラーがついていないので、コンパイルしたファイルを手動でコピーする必要がある。

$ su
# cp safe_finger tcpd tcpdchk tcpdmatch try-from /usr/local/sbin


また、後々、OpenSSHをtcp wrapper経由でインストールするために、
tcpd.h ---> /usr/local/include
libwrap.a ---> /usr/local/lib

# cp tcpd.h /usr/local/include
# cp libwrap.a /usr/local/lib


にコピーしておく。

tcp wrapperの設定

/etc/hosts.allow
/etc/hosts.deny
この2つが設定に重要なファイルとなる。
hosts.allowにマッチしたものが許可され、hosts.denyにマッチしたものが拒否される。両方にマッチしなかったものは、無条件で許可されるので注意。

・・・・簡単に言ってしまえば、基本的に全てを不許可にして、必要なものだけを許可すればよい。よって、設定はこうなる。

/etc/hosts.deny (禁止するサービスと禁止する出元の設定ファイル)

ALL: ALL

この1行のみでよい。基本的に全て不許可ということ。

/etc/hosts.allow  (許可の対象と許可する出元の設定ファイル)

in.ftpd: 192.168.0. .netnoris.com
ALL: 127.0.0.1 <-- 忘れないこと。

この例だと、
1行目:
in.ftpdというもの(inetd経由で動かしてるftpだけど)に関しては192.168.0.1/24と *.netnoris.comからのものは全て許可する。

2行目:
自分自身からのアクセスも全て許可する、と言う意味。

ほかにやろうとおもえば、
in.telnetd: 192.168.0.4/32 とかしてしまえば、telnetは192.168.0.4からのみしかうけつけない、などできる。

これを書いて、inetdの設定をする。ここではFTPをtcpwrapper経由にする。
/etc/inetd.conf

ftp stream tcp nowait root /usr/sbin/in.ftpd in.ftpd (デフォルト)

ftp stream tcp nowait root /usr/local/bin/tcpd /usr/local/sbin/in.ftpd

このようにすれば、FTPをtcpwrapper経由にできる。






<メインに戻る>
<NetNorisトップに戻る>