我想将特定 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
选项AllowUsers
、AllowGroups
、DenyUsers
、DenyGroups
也可用于限制,例如:
AllowGroups group1
Match Address 10.0.1.0/24
AllowGroups group1 group2
这sshd_config
手册页部分匹配有一个允许选项和描述的详细列表。