【转载】在Linux下限制用户登陆IP

150 阅读1分钟

       今天,头让我做一个事,就是限制服务器下的test用户只能从公司内网登陆,不能从公网登陆。偶想了一下,觉得利用pam可以很好的实现,下面列出我的操作步骤:
第一步,编辑/etc/pam.d/sshd,加入如下内容
account  required  pam_access.so

**       加入后的内容如下:

                 *auth          required     pam_stack.so service=system-auth
auth          required     pam_nologin.so
account     required     pam_stack.so service=system-auth
account     required     pam_access.so
password   required     pam_stack.so service=system-auth
session      required     pam_stack.so service=system-auth
session      required     pam_loginuid.so
*       退出保存。

       第二步:编辑/etc/security/access.conf,在尾行加入一行-:test:ALL EXCEPT 192.168.1.

解释一下,“-”的意思是拒绝“test”是用户名,“ALL”是所有,“EXCEPT 192.168.1.”意思是排除192.168.1这个网段,需要注意的是192.168.1. 最后的这个“.”一定要加上哦!

     还要为每个用户加上相应的权限,不然即使是root用户,一些权限也会被禁用了,比如说crontab -e权限。\

+ : root : cron crond :0 tty1 tty2 tty3 tty4 tty5 tty6
+ : userx : cron crond :0 tty1 tty2 tty3 tty4 tty5 tty6

修改端口号:vim /etc/ssh/ssh_config
vim /etc/ssh/sshd_config
修改两个文件中的Port 这个配置项

第三步:重启sshd服务即可
service sshd restart