是否有规范的方法来限制 Unix 中某些 IP 地址的 ssh 访问?

是否有规范的方法来限制 Unix 中某些 IP 地址的 ssh 访问?

我检查了与OS X 和其他系统man相关的页面,并尝试使用和文件sshhosts.allowhosts.deny这个帖子,并且sshd_config无济于事。

$ cat /etc/hosts.allow 
sshd: 192.168.0.4/255.255.255.0
$ cat /etc/hosts.deny 
sshd: ALL

sshd_config尝试使用Match但没有成功(我不记得确切的配置)。

我的系统是 OS X 10.8.5,我希望sshd允许来自本地 IP 192.168.0.4/24 或其本地名称的访问,并拒绝包括网关 192.168.0.1 在内的所有其他主机的访问。

更新Stephen Kitt 下面提出的解决方案除了格式之外都有效AllowUsers name/pattern@hostname。这会记录以下内容

sshd[31723]: debug1: attempt 6 failures 5 [preauth]
sshd[31723]: debug1: keyboard-interactive devs  [preauth]
sshd[31723]: debug1: auth2_challenge: user=test devs= [preauth]
sshd[31723]: debug1: kbdint_alloc: devices 'pam' [preauth]
sshd[31723]: debug1: auth2_challenge_start: trying authentication method 'pam' [preauth]
sshd[31723]: Postponed keyboard-interactive for invalid user test from 192.168.0.4 port 55680 ssh2 [preauth]
sshd[31723]: error: PAM: authentication error for illegal user test from 192.168.0.4 via 192.168.0.5
sshd[31723]: Failed keyboard-interactive/pam for invalid user test from 192.168.0.4 port 55680 ssh2
sshd[31723]: Disconnecting: Too many authentication failures for test [preauth]
sshd[31723]: debug1: do_cleanup [preauth]

答案1

Match如果您希望允许从单个主机登录,而不是使用,则以下内容对我有用(在sshd_config):

AllowUsers *@192.168.0.4

它仅允许用户使用目标上的任何登录名从 192.168.0.4 登录。如果您愿意,您可以替换*为特定的登录名,并指定用空格分隔的多个模式;例如:

AllowUsers [email protected] [email protected]

相关内容