在 Linux 系统中,hosts.deny 文件是一个安全相关的配置文件,它用于指定哪些类型的网络服务应该拒绝来自特定主机或所有主机的连接请求。这个文件通常位于 /etc/ 目录下。与之相对的还有一个 hosts.allow 文件,用于明确允许某些服务的连接。

hosts.deny 文件的工作原理是,当一个服务(如 FTP、SSH、HTTP 等)被配置为使用 hosts.deny 和 hosts.allow 文件时,该服务会首先检查 hosts.deny 文件,然后检查 hosts.allow 文件。如果一个主机在 hosts.deny 中被明确拒绝,那么即使它在 hosts.allow 中被允许,连接也会被拒绝。

hosts.deny 文件的格式通常如下:

# 这是一个注释行,以 # 开头
daemon_list : 拒绝主机列表
ALL: <IP地址或hostname>
ALL: 拒绝的hostname
  • daemon_list 是一个由空格分隔的列表,指定了哪些服务应该应用这个规则。ALL 表示所有服务。
  • : 后面跟着的是主机名、IP 地址或者模式,用来指定哪些主机的连接应该被拒绝。
  • ALL 表示拒绝所有未明确允许的主机。

例如,以下配置会拒绝所有主机的 FTP 服务连接,但允许本地主机(即 IP 地址为 127.0.0.1 的主机):

ftpd: ALL
ftpd: 127.0.0.1

请注意,hosts.deny 文件的效果取决于系统中服务的配置。并不是所有的服务都会使用这些文件。例如,对于 SSH 服务,您需要在 /etc/ssh/sshd_config 文件中设置 UseDeny yes 才能启用 hosts.deny 和 hosts.allow 文件的检查。

在实际使用中,应该谨慎编辑 hosts.deny 文件,因为错误的配置可能会导致合法用户被拒绝访问或者系统服务不可用。在修改配置文件后,建议重启相应的服务或者整个系统以应用更改。