扩展式命令与 spawn 和 twist 命令一起使用时,可以提供关于客户、服务器以及相关进程的信息。
下面是一个支持扩展式的命令列表:
%a — 返回用户的 IP 地址。
%A — 返回服务器的 IP 地址。
%c — 返回大量的客户信息,比如用户名和主机名,或用户名和 IP 地址。
%d — 返回守护进程的名称。
%h — 返回客户的主机名(或 IP 地址,如果主机名没有提供的话)。
%H — 返回服务器的主机名(或 IP 地址,如果主机名没有提供的话)。
%n — 返回客户的主机名。如果主机名没有提供的话,屏幕上会显示 unknown。如果客户的主机名和主机地址不匹配的话, 屏幕上会显示 paranoid。
%N — 返回服务器的主机名。如果主机名没有提供的话,屏幕上会显示 unknown。如果服务器的主机名和主机地址不匹配的话, 屏幕上会显示 paranoid。
%p — 返回守护进程的进程 ID。
%s — 返回各种不同类型的服务器信息,比如守护进程的进程和服务器的主机或 IP 地址。
%u — 返回客户的用户名。如果没有提供的话,屏幕上会显示 unknown。
下面用来示范的规则与 spawn 命令一起使用了一个扩展式来在一个定制的日志文件中确认客户主机。
当来自 example.com 域的一个主机向 SSH 守护进程(sshd)发出连接意图时,执行 echo 命令来把这次包括客户主机名(通过使用 %h 扩展式)的连接尝试信息记录到一个专用文件中。
sshd : .example.com \
: spawn /bin/echo `/bin/date` access denied to %h>>/var/log/sshd.log \
: deny
同样的,扩展式也可以用来把个性化的讯息返回给客户。在下面的例子中,试图访问来自 example.com 域的 FTP 服务的客户们得到通知,他们的访问被服务器取缔了:
vsftpd : .example.com \ : twist /bin/echo "421 %h has been banned from this server!"
如果需要有关可用扩展式的更完全的解释,以及对附加的访问控制选项的更完全的解释,请参阅 man page 的第五部分,查看 hosts_access (man 5 hosts_access)和 hosts_options。
请参阅 第 3.2.5 节 “其它资料” 来获取关于 TCP Wrappers 的更多信息。