在Linux或者Unix上使用tcpd(TCPWrapper)限制SSH访问

时间:2020-01-09 10:43:16  来源:igfitidea点击:

如何在Linux上使用tcpd限制ssh访问?

tcpd用于访问Internet服务的访问控制工具。
可以将tcpd程序设置为监视对telnet,finger,ftp,exec,rsh,rlogin,tftp,sshd和其他具有一对一映射到可执行文件的服务的传入请求。
您的sshd服务器必须正在配置(编译)以支持tcpd。
您可以使用以下命令轻松找到tcpd(tcpwrapper)支持:

# strings $(which sshd)| grep libwrap

输出示例:

libwrap.so.0
libwrap refuse returns

如果将libwrap视为输出(如上所示),则可以按以下方式使用tcpd监视传入的ssh请求。

配置

使用文本编辑器(例如vi)打开或者编辑文件/etc/hosts.deny
该文件列出了不允许访问系统的主机或者IP。
在此示例中,您将为所选IP阻止sshd服务器TCP端口22。

例子

假设您要拒绝访问IP 192.54.1.20 64.66.44.22 64.66.44.25:

# vi /etc/hosts.deny

添加/添加以下行:

sshd: 192.54.1.20 64.66.44.22 64.66.44.25

保存并关闭文件。
接下来,确保您的规则正确,并使用以下命令运行语法检查:

# tcpdchk -v

输出示例:

Using network configuration file: /etc/inetd.conf

>>> Rule /etc/hosts.deny line 20:
daemons:  sshd
clients:  192.54.1.20 64.66.44.22 64.66.44.25
access:   denied