AIX openSSH 允许任何用户使用任何 IP(默认),但限制特定用户使用某个 IP

AIX openSSH 允许任何用户使用任何 IP(默认),但限制特定用户使用某个 IP

似乎无法找到正确的匹配项

sshd 应该允许任何地方的任何人,即通常/默认配置,但我想将用户限制为 IP

例如,bob 只应被允许从 IP 1.2.3.4 进入

PS 我已添加 AIX 作为操作系统。虽然 PAM 是 AIX 的一部分,但其实现方式略有不同

答案1

鉴于还没有其他人提到它,可以使用该pam_access模块来做到这一点。

您需要检查 pam 堆栈是否正在调用此模块,方法是查找/etc/pam.d/sshd并添加一个account值(如果不存在)。IE

#%PAM-1.0
auth       required pam_sepermit.so
auth       substack     password-auth
auth       include      postlogin
account    required     pam_nologin.so

account    required     pam_access.so

account    include      password-auth
password   include      password-auth
# pam_selinux.so close should be the first session rule
session    required     pam_selinux.so close
session    required     pam_loginuid.so
# pam_selinux.so open should only be followed by sessions to be executed in the user context
session    required     pam_selinux.so open env_params
session    optional     pam_keyinit.so force revoke
session    include      password-auth
session    include      postlogin
session    required     pam_tty_audit.so enable=*

然后,在访问文件(默认为/etc/security/access.conf)中添加以下三行(假设没有其他行提供任何其他安全设置)。

+ : bob : 1.2.3.4
- : bob : ALL
+ : ALL : ALL

在 SSH 中

我认为下面的方法可行。

<Global scope>
DenyUsers bob

Match Address 1.2.3.4
  AllowUsers bob

答案2

如果你认识所有其他用户,那么这将有效:

AllowUsers user@ip user2 user3 

但不幸的是,它不能使用通配符。

根据您的最终目标,您可以强制用户使用 SSH 密钥而不是密码,并使用语句限制用户~/.ssh/authorized_keys文件中的主机from=man sshd有关格式的信息,请参阅)。

答案3

如果我理解正确的话,您想允许所有幸运的非 Bob 用户来自任何地方,但倒霉的 Bob 只能来自 1.2.3.4。

也许可以尝试这个:

AllowUsers !bob
AllowUsers [email protected]

相关内容