学而实习之 不亦乐乎

禁止某个 IP 连接 Linux 服务器

2023-11-29 22:05:47

在 Linux 中有 /etc/hosts.allow/etc/hosts.deny 两个文件是控制远程访问设置的,通过设置这个文件可以允许或者拒绝某个 IP 或者 IP 段的客户访问 linux 的某项服务。
如果请求访问的主机名或 IP 不包含在 /etc/hosts.allow 中,那么 tcpd 进程就检查 /etc/hosts.deny。看请求访问的主机名或IP有没有包含在 hosts.deny 文件中。如果包含,那么访问就被拒绝;如果既不包含在 /etc/hosts.allow 中,又不包含在 /etc/hosts.deny 中,那么此访问也被允许。

一、文件格式

文件的格式为:<daemon list>:<client list>[:<option>:<option>:...]

  • daemon list:服务进程名列表,如telnet的服务进程名为in.telnetd
  • client list:访问控制的客户端列表,可以写域名、主机名或网段,如.python.org或者192.168.1.
  • option:可选选项,这里可以是某些命令,也可以是指定的日志文件

二、实例

文件示例:hosts.deny文件

in.telnetd:.python.org
vsftpd:192.168.0.
sshd:192.168.0.0/255.255.255.0

第一行表示,禁止python.org这个域里的主机允许访问TELNET服务,注意前面的那个点(.)。
第二行表示,禁止192.168.0这个网段的用户允许访问FTP服务,注意0后面的点(.)。
第三行表示,禁止192.168.0这个网段的用户允许访问SSH服务,注意这里不能写为192.168.0.0/24。在CISCO路由器种这两中写法是等同的。