我们想限制root SSHlogin只有less数networking,我们认为“安全”(VPN等),而不会对其他帐户施加相同的条件。
在OpenSSH 5.x中,我们可以使用match块。 但是,这在OpenSSH 4.x中是不可选的,这是我们在RHEL5中所限制的。
我想也许这可以使用PAM来完成。 任何人有任何想法?
find这个Cyberciti.biz文章后 ,我开始研究pam_access 。 这是我正在解决的解决scheme:
首先,我在/etc/security/sshd.conf创build了一个访问文件。 我select这样做,而不是使用默认的/etc/security/access.conf因为我想要一个专用于sshd的访问文件。 该文件如下所示:
# cat /etc/security/sshd.conf +:root:192.168.0.0/8 -:root:ALL
有关语法的更多信息,请查阅man access.conf 。
然后,我在/etc/pam.d/sshd的PAM堆栈顶部添加了以下行:
auth required pam_access.so accessfile=/etc/security/sshd.conf
我在Cyberciti.biz文章中使用auth而不是account的原因是因为使用accounttypes允许用户validation密码, 然后被拒绝。 我宁愿不validation密码。 查看man pam.conf了解更多信息。
这工作完美。
是的,pam_access会做到这一点。 其他的可能性包括TCP包装(RHEL5 sshd支持它们)和iptables。
没有RHEL和朋友的经验,但我可能会尝试首先使用tcpwrappers – 我的意思是/etc/hosts.allow和/etc/hosts.deny文件:
---8<--- hosts.deny ---8<--- ALL: ALL
和
---8<--- hosts.allow ---8<--- ALL: localhost, 10.yz
注意暗示/ 24; 我不确定CIDR块的语法。 如果你需要它,我可以追捕它。 尽量避免使用这些技巧locking自己。
PS:你已经考虑过ARP欺骗了,对吧?