EN JA
HOSTS_ACCESS(3)
HOSTS_ACCESS(3) FreeBSD Library Functions Manual HOSTS_ACCESS(3)

名称

hosts_access, hosts_ctl, request_init, request_set -アクセス制御 (コントロール) ライブラリ

書式


#include "tcpd.h"


extern int allow_severity;
extern int deny_severity;


struct request_info *request_init(request, key, value, ..., 0)
struct request_info *request;


struct request_info *request_set(request, key, value, ..., 0)
struct request_info *request;


int hosts_access(request)
struct request_info *request;


int hosts_ctl(daemon, client_name, client_addr, client_user)
char *daemon;
char *client_name;
char *client_addr;
char *client_user;

解説

この文書に記述されたルーチンは、 libwrap.a ライブラリの一部です。それらは、規則が発光する時、実行されるオプションのシェルコマンドで規則に基づいたアクセス制御 (コントロール) 言語を実装します。

request_init() は、クライアント要求に関する情報で構造体を初期化します。 request_set() は、既に初期化されたリクエスト構造体を更新します。両方の関数は、key-value のペアの可変長のリストをとり、それらの最初の引数を返します。引数リストは、0 key 値で終了します。すべての文字列値の引数はコピーされます。予期されたキー (また対応する値のタイプ) は、次のとおりです。

RQ_FILE (int)
ファイル記述子は、リクエストと関連しました。
RQ_CLIENT_NAME (char *)
クライアントホスト名。
RQ_CLIENT_ADDR (char *)
クライアントネットワークアドレスの印刷可能な表現。
RQ_CLIENT_SIN (struct sockaddr_in *)
クライアントネットワークアドレスおよびポートの内部表現。構造体の内容は、コピーされません。
RQ_SERVER_NAME (char *)
ホスト名は、サーバ終了点アドレスと関連しました。
RQ_SERVER_ADDR (char *)
サーバ終了点アドレスの印刷可能な表現。
RQ_SERVER_SIN (struct sockaddr_in *)
サーバ終了点アドレスおよびポートの内部表現。構造体の内容は、コピーされません。
RQ_DAEMON (char *)
サーバホスト上で走るデーモンプロセスの名前。
RQ_USER (char *)
代わりにクライアントホストが要求にするユーザの名前。

hosts_access() は、 hosts_access(5) マニュアルページに記述されたアクセス制御 (コントロール) テーブルを調べます。内部終了点情報が利用可能な場合、ホスト名およびクライアントユーザ名は、キャッシュとしてリクエスト構造体を使用して、要求に応じて調べられます。 hosts_access() は、アクセスが否定される場合、0 を返します。

hosts_ctl() は、たぶんより便利なインタフェース (それは、自動クライアントユーザ名検査をサポートするためには十分な情報を渡しませんが) のために request_init() および hosts_access() ルーチンのまわりのラッパです。クライアントホストアドレス、クライアントホスト名およびユーザ名引数は、有効なデータあるいは、STRING_UNKNOWN を含んでいるべきです。 hosts_ctl() は、アクセスが拒否されると、0 を返します。

allow_severitydeny_severity 変数は、アクセプト (受諾) されるかリジェクト (拒否) される要求をどのようにログするかを決定します。呼び出し側は、それらを提供しなければならず、アクセス制御 (コントロール) テーブル中の規則によって修正されるかもしれません。

診断

問題は、syslog デーモンによって報告されます。

関連項目

hosts_access(5), アクセス制御 (コントロール) テーブルのフォーマット。 hosts_options(5), 基本となる言語に対するオプションの拡張。

関連ファイル

/etc/hosts.allow, /etc/hosts.deny, アクセス制御 (コントロール) テーブル。

バグ

hosts_access() は、strtok() ライブラリ関数を使用します。これは、 strtok() に頼る他のコードに干渉するかもしれません。

作者


Wietse Venema (wietse@wzv.win.tue.nl)
Department of Mathematics and Computing Science
Eindhoven University of Technology
Den Dolech 2, P.O. Box 513,
5600 MB Eindhoven, The Netherlands