ucspi-tcp(UNIX Client-Server Program Interface)の導入


1. これなに?

inetd + tcp_wrapperの強力版みたいなもの

2. なにするもの?

inetd起動タイプのdaemonにかぶせて、同時接続数制御、ユーザネーム(IDENT)、
ipアドレスベースでのallow/deny なんかができます。 さらに、アクセス制御に使われるルールは
hashなDB使を使うので、 即時更新可能。基本的にinetdののかわりのソフトウェアっぽい。

3. 設定、起動

・使うファイル達:

ucspi-tcp-0.84.tar.gz
cdb-0.55.tar.gz

§1. compile(ucspi-tcp)

$ make
# make setup check

§2. compile(constant databases "cdb")

ftp://koobera.math.uic.edu/www/cdb.html

$ make
# cp cdbget cdbmake cdbdump cdbstats cdbtest 12tocdbm /usr/local/bin
# cp *.1 /usr/local/man/man1
# cp *.3 /usr/local/man/man3

§3. database作成

/etc/tcp.ftpのような形式でアクセス制御ファイルを作成

tcp.ftp:

foo@1.2.3.7:allow
1.2.3.6:allow
1.2.4.:allow
:deny

$ cd /etc
# /usr/local/bin/tcprules tcp.ftp.cdb tcp.ftp.tmp < tcp.ftp

§4. tcpserverの起動(syslogを使う)

tcpserver options host port program [ arg ... ]
# /usr/local/bin/tcpserver -v -c 40 -x /etc/tcp.ftp.cdb -u 0 -g 0 0 \
ftp /usr/sbin/in.ftpd -a -l -i 2>&1 | /usr/bin/logger -t tcp.ftp &
とかするとsyslogに'tcp.ftp: tcpserver ほげほげ' と残ります。

追記

ucspi-tcp-0.84-domain.patch

tcp.ftp:

foo@1.2.3.7:allow
1.2.3.6:allow
1.2.4.:allow
.mydomain.com:allow
friend.other.com:allow
.jp:allow
:deny

tcpserverの起動オプションに-nを入れることで,逆引きされたドメイン名での接続制御が可能になる.

詳細は,patchを当てた後のtcpserverのman pageを参照.


Copyright © Dai Okuyama / dai@unixuser.org
$Id: ucspi-tcp.html,v 1.1.1.1 2002/04/11 03:41:41 dai Exp $