Red Hat Training
A Red Hat training course is available for Red Hat Enterprise Linux
4.4. 保护网络访问
4.4.1. 使用 TCP wrapper 和 xinetd 保护服务
TCP wrapper 的能力远远不止于拒绝对服务的访问。本节介绍如何使用它们发送连接横幅、来自特定主机的攻击警告,以及增强日志记录功能。有关 TCP Wrapper 功能和控制语言的详情,请查看 hosts_options(5) man page。可用的标记请查看 xinetd.conf(5) man page,它作为您可以应用到服务的选项。
4.4.1.1. TCP 封装器和连接程序
当用户连接到服务时,显示合适的横幅是让潜在攻击者知道系统管理员正在被滥用的好方法。您还可以控制向用户显示有关系统的信息。要为服务实施 TCP wrappers 横幅,请使用
banner 选项。
这个示例为 vsftpd 实施横幅。首先,创建一个横幅文件。它可以是系统上的任何位置,但名称必须与守护进程相同。在本例中,该文件名为
/etc/banners/vsftpd,包含以下行:
220-Hello, %c 220-All activity on ftp.example.com is logged. 220-Inappropriate use will result in your access privileges being removed.
%c 令牌提供各种客户端信息,如用户名和主机名,或者用户名和 IP 地址,以使连接更加令人生畏。
要使此横幅显示在传入的连接中,请在
/etc/hosts.allow 文件中添加以下行:
vsftpd : ALL : banners /etc/banners/
4.4.1.2. TCP wrapper 和 Attack Warning
如果检测到特定主机或网络攻击服务器,则可以使用 TCP wrapper 警告管理员使用 generate 指令发送该主机或网络的后续攻击。
在本例中,假设来自 206.182.68.0/24 网络的攻击者已被检测到试图攻击服务器。将以下行放在
/etc/hosts.deny 文件中,以拒绝来自该网络的任何连接尝试,并将尝试记录到特殊文件:
ALL : 206.182.68.0 : spawn /bin/echo `date` %c %d >> /var/log/intruder_alert
%d 令牌提供攻击者试图访问的服务名称。
要允许连接并进行记录,请将 generate 指令放在
/etc/hosts.allow 文件中。
注意
由于生成指令执行任何 shell 命令,因此最好创建一个特殊脚本来通知管理员,或者在特定客户端尝试连接服务器时执行命令链。
4.4.1.3. TCP wrappers 和增强的日志记录
如果某些类型的连接比其他类型的关注更大,那么可以使用 severity 选项提升该服务的日志级别。
在本例中,假设尝试连接到 FTP 服务器上的端口 23( Telnet 端口)都是攻击者。若要表示这一点,请在日志文件中放置 emerg 标志,而不是默认的标志、Info 和拒绝连接。
要做到这一点,请在
/etc/hosts.deny 中添加以下行:
in.telnetd : ALL : severity emerg
这将使用默认的 authpriv 日志记录功能,但将优先级从 info 的默认值提升为 emerg,后者将日志消息直接发送到控制台。