限制特定用户通过 SSH 登录到特定 IP 地址

限制特定用户通过 SSH 登录到特定 IP 地址

我想将特定 FreeBSD 用户帐户的 SSH 登录限制到特定的 IP 地址(它们是从一台机器到另一台机器的自动 rsync 备份,实际用户永远不应该登录,只有 SSH + rsync 过程)。

我觉得我应该能够使用 hosts.allow 或 sshd_config 来执行此操作...但我找不到任何明确的示例来说明如何执行此操作。有人可以告诉我吗?

答案1

除了包装器选项之外,我想这个rsync备份还使用了 ssh 密钥。

您可以将密钥限制为特定源 IP 或域。这相当于用户到 IP 的限制,因为只有该用户才能使用该密钥(如果您很聪明,就会出现这种情况)。

文件第一行authorized_keys

from="trusted.domain.com",no-port-forwarding,no-pty ssh-rsa AAAABasdf

答案2

来自 hosts.allow 手册页:

CLIENT USERNAME LOOKUP
       When the client host supports the RFC  931  protocol  or  one  of  its
       descendants  (TAP,  IDENT, RFC 1413) the wrapper programs can retrieve
       additional information about the owner of a connection.  Client  user-
       name  information,  when available, is logged together with the client
       host name, and can be used to match patterns like:

          daemon_list : ... user_pattern@host_pattern ...

答案3

还可以在文件中限制远程 IP 地址sshd_config,例如对于 root 访问:

PermitRootLogin no
Match Address 10.0.1.0/24
     PermitRootLogin prohibit-password

选项AllowUsersAllowGroupsDenyUsersDenyGroups也可用于限制,例如:

AllowGroups group1
Match Address 10.0.1.0/24
    AllowGroups group1 group2

sshd_config手册页部分匹配有一个允许选项和描述的详细列表。

相关内容