* tcpserver [#fa4378f6]
** インストール [#ma29ab25]
ファイルを取得して、展開する。
wget http://cr.yp.to/ucspi-tcp/ucspi-tcp-0.88.tar.gz
tar zxvf ucspi-tcp-0.88.tar.gz
cd ucspi-tcp-0.88
インストール先を変える場合、以下のようにファイルを修正する。
vi conf-home
コンパイルして、インストールする。
make
make setup check
*** 公式 [#z84f2a3a]
http://cr.yp.to/ucspi-tcp/install.html
** 起動 [#ve6ab9a3]
tcpserver [オプション] [ホスト名または、IPアドレス] [ポート番号] [サービスを行うプログラム]
- ホスト名、またはIPアドレスに 0 を指定すると、全ての IPアドレスの指定ポート番号を受け付ける。
- ポート番号には、/etc/service に指定されているサービス名を指定することもできる。
[ -1pPhHrRoOdDqQv ] [ -c limit ] [ -x rules.cdb ] [ -B banner ]
[ -g gid ] [ -u uid ] [ -b backlog ] [ -l localname ] [ -t timeout ]
|-q|エラーメッセージを出力する|
|-Q|エラーメッセージを出力しない(デフォルト)|
|-v|すべてのメッセージを出力する|
|-p|パラノイドを行う。リモートホスト名を調べた後、そのホスト名でIPアドレスを調べ、TCPREMOTEIPに一致するか調べる。一致しない場合はTCPREMOTEHOSTをセットしない。|
|-P|パラノイドを行わない。(デフォルト)|
|-h|リモートホスト名を調べ、TCPREMOTEHOSTをセットする。(デフォルト)|
|-H|リモートホスト名を調べない。|
|-r|IDENTを行い、TCPREMOTEINFOをセットする。(デフォルト)|
|-R|IDENTを行わない。|
|-climit|最大同時接続数の設定。デフォルトは40|
|-xrules.cdb|接続制御を行うときの接続制御データベースのファイル名|
|-Bbanner|接続時にバナーをネットワークへ出力する。|
|-uuid|ユーザIDをuidに切り替える|
|-ggid|グループIDをgidに切り替える|
|-llocalname|ローカルホスト名を調べるのをやめて、localnameをTCPLOCALHOSTにセットする|
|-ttimeout|IDENTをタイムアウトする時間(秒)。デフォルトは26|
** アクセス制御ファイルの書き方 [#qc431f49]
$ cat allow
200.100.200.100:allow
192.168.:allow
:deny
$ tcprules allow.cdb allow.cdb.tmp < allow
- 200.100.200.100と192.168.*.*からの接続を許可する。
- それ以外は拒否する。
- allow.cdb.tmpは一時ファイルでallow.cdbが作成(更新)成功すると削除される。(←変な感じだ)
- ''アクセス制御ファイルを書き換えた後、tcpserverを再起動する必要はない。''
** 参考 [#h80e01f0]
- http://www.asahi-net.or.jp/~wv7y-kmr/memo/tcpserver.html
- http://quox.org/tips/server/tcpserver.html
- http://www.emaillab.org/djb/tcpserver/database.html