TCP 包装器不仅能够允许和拒绝对服务的访问。
使用可选的命令参数,他们可以发送连接横幅、警告来自特定主机的攻击并增强日志记录。
服务的 TCP 包装器横幅
要为服务实现 TCP 包装器横幅,请使用横幅选项。
此示例为 vsftpd 实现了一个横幅。
我们需要在系统的任何位置创建一个横幅文件,并为其赋予与守护程序相同的名称。
在此示例中,该文件名为 /etc/banners/vsftpd 并包含以下几行:
220-Hello, %c 220-All activity on ftp.example.com is logged. 220-Inappropriate use results in access privileges being removed.
%c 令牌提供各种客户端信息。
%d 令牌(未显示)扩展为客户端尝试连接的守护程序的名称。
要向传入连接显示此横幅,请将以下行添加到 /etc/hosts.allow 文件:
# vi /etc/hosts.allow vsftpd : ALL : banners /etc/banners/
拒绝访问并记录连接尝试
/etc/hosts.deny 中的以下条目拒绝所有客户端访问所有服务(除非 /etc/hosts.allow 中特别允许)并记录连接尝试:
# vi /etc/hosts.deny ALL : ALL : spawn /bin/echo “%c tried to connect to %d and was blocked” >> /var/log/tcpwrappers.log
可以使用严重性选项提升日志级别。
假设任何试图通过 ssh 连接到 FTP 服务器的人都是入侵者。
要表示这一点,请在日志文件中放置一个紧急标志,而不是默认标志信息,并拒绝连接。
为此,请将以下行放在 /etc/hosts.deny 中:
# vi /etc/hosts.deny sshd : ALL : severity emerg
这使用默认的 authpriv 日志记录工具,但将优先级从默认值 info 提升到 emerg,后者将日志消息直接发布到控制台。
TCP 包装器以警告潜在攻击
TCP 包装器可以使用 spawn 指令警告我们来自主机或者网络的潜在攻击。
spawn 指令执行任何 shell 命令。
在此示例中,尝试从 200.182.68.0/24 网络进行访问。
将以下行放在 /etc/hosts.deny 文件中以拒绝来自该网络的任何连接尝试,并将尝试记录到特殊文件中:
# vi /etc/hosts.deny ALL : 200.182.68.0 : spawn /bin/echo `date` %c %d >> /var/log/intruder_alert
要允许连接并记录它,请将 spawn 指令放在 /etc/hosts.allow 文件中。
拒绝来自特定域的访问
以下示例说明,如果尝试从 example.com 域中的主机连接到 SSH 守护程序 (sshd),请执行 echo 命令以将尝试添加到特殊日志文件,并拒绝该连接。
因为使用了可选的 deny 指令,即使它出现在 /etc/hosts.allow 文件中,该行也会拒绝访问:
# vi /etc/hosts.allow sshd : .example.com \ : spawn /bin/echo `/bin/date` access denied >> /var/log/sshd.log \ : deny
每个选项字段(生成和拒绝)前面都有反斜杠 (),以防止规则因长度而失败。