将SSH根login限制在OpenSSH 4.x中的“安全”networking

我们想限制root SSHlogin只有less数networking,我们认为“安全”(VPN等),而不会对其他帐户施加相同的条件。

在OpenSSH 5.x中,我们可以使用match块。 但是,这在OpenSSH 4.x中是不可选的,这是我们在RHEL5中所限制的。

我想也许这可以使用PAM来完成。 任何人有任何想法?

find这个Cyber​​citi.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 

我在Cyber​​citi.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欺骗了,对吧?