Linux中多种方法限制用户名+IP登录

在生产服务器中经常要做一些安全设置,其中限制IP登录可能是最常用也是最有用的一种方法了。
主要有四种方法:
tcp_wrappers
ssh
iptables
PAM

先说一下结论:
tcp_wrappers和iptables只能限制IP
ssh和PAM可以限制IP+限制某用户
如果只想限制IP,可能用tcp_wrappers是最方便的,但是用防火墙限制是最安全的
如果想限制IP+限制某用户登录,直接ssh里限制是最方便的,也可以防火墙+ssh来限制

只限制IP的话,大家都知道,我这里主要是讲限制IP+用户的方法。

一、SSH的方法
在/etc/ssh/sshd_config中添加AllowUsers、AllowGroups、DenyUsers、DenyGroups。
AllowUsers:允许某个用户、某些用户能登录,其它都不能登录
AllowGroups:允许某个组、某些组能登录,其它都不能登录
DenyUsers:拒绝某个用户、某些用户登录,其它都能登录
DenyGroups:拒绝某个组、某些组登录,其它都能登录

例子:
AllowUsers oracle@192.168.0.3

允许来自于192.168.0.3的用户oracle登录本机,其它都不允许

AllowUsers oracle@192.168.3.*

允许来自于192.168.0网段的用户oracle登录本机,其它都不允许

AllowUsers root oracle@192.168.3.5

允许所有网段的root用户和来自于192.168.3.5的用户oracle登录本机,其它都不允许

DenyUsers root admin
#拒绝root admin帐户通过SSH登录本机

用户和IP之间可以*组合。

二、PAM方法
首先编辑/etc/pam.d/sshd,加入如下内容
account required pam_access.so

然后编辑/etc/security/access.conf
在尾行加入一行
-:snmp:ALL EXCEPT 192.168.1.

“-”的表示拒绝
“snmp”是用户名,
“ALL”是所有,
“EXCEPT 192.168.1.”意思是排除192.168.1这个网段,需要注意的是192.168.1. 最后的这个“.”

整句的意思就是:拒绝所有的IP使用snmp来登录,但是192.168.1.段的可以登录

也可以写一个具体IP,如:
-:snmp:ALL EXCEPT 192.168.1.122
这个就是只允许192.168.1.122的IP登录snmp用户

还可以写成类似这样的:(一般写成这样,上面那个不能限制通过其它用户登录)
+:snmp:192.168.1.122 先允许
-:ALL EXCEPT root:ALL 再拒绝所有,保留root用户能登录

access.conf文件里自带了很多例子

上一篇:RouteReuseStrategy angular路由复用策略详解,深度刨析路由复用策略


下一篇:深度:从 Office 365 新图标来看微软背后的设计新理念