Linux 中的 TCP Wrapper (hosts.allow & hosts.deny) 命令选项

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/
on  it road.com

拒绝访问并记录连接尝试

/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

每个选项字段(生成和拒绝)前面都有反斜杠 (),以防止规则因长度而失败。

日期:2020-09-17 00:14:50 来源:oir作者:oir