![将 openSSH 6.1p1 通过 LDAP 登录限制到某个 IP 范围](https://linux22.com/image/608075/%E5%B0%86%20openSSH%206.1p1%20%E9%80%9A%E8%BF%87%20LDAP%20%E7%99%BB%E5%BD%95%E9%99%90%E5%88%B6%E5%88%B0%E6%9F%90%E4%B8%AA%20IP%20%E8%8C%83%E5%9B%B4.png)
我在 DMZ 中有一些服务器,它们从外部(公共)IPv4 地址接收公共流量。这些流量在我们的网关处被转换为 172.xxx 地址。
所有外部客户端都使用本地帐户并已 chroot。它们通过这种方式进行连接。
来自我们内部地址的内部账户来自 10.xxx
我想限制 openssh 仅从内部 (10.x) 网络监听 LDAP。如果可能的话,我想在 sshd conf 文件中配置它(没有 tcpwrappers 或 iptables)。
所以,
sshd 连接 -> 172.xxx 仅本地身份验证 sshd 连接 -> 10.xxx 本地+ldap 身份验证
运行 openssh 6.1p1
谢谢,
德鲁。
答案1
如果我理解正确的话,您可以使用 pam_access。我认为您不能在 sshd_config 中执行此操作。
要启用 pam_access,请将以下行添加到 pam sshd 服务文件。在我的系统上,该文件是 /etc/pam.d/sshd。
account required pam_access.so
然后,您应该将本地用户和 ldap 用户放入不同的组中。假设为 localusers 组和 ldapusers 组。
您现在可以在 /etc/security/access.conf 中编辑访问限制:
# root only from local-network?
+ : root : : 10.0.0.0/8
# users in ldap only access from local network
+ : (ldapusers) : 10.0.0.0/8
# local user only access from 172.x.x.x network
+ : (localusers) : 172.0.0.0/8
# Deny all other users to get access from all sources?
- : ALL : ALL
首先尝试了解 access.conf 配置,因为您很容易将自己锁定。