Chinaunix首页 | 论坛 | 博客
  • 博客访问: 147442
  • 博文数量: 68
  • 博客积分: 10
  • 博客等级: 民兵
  • 技术积分: 720
  • 用 户 组: 普通用户
  • 注册时间: 2011-02-28 20:01
文章分类

全部博文(68)

文章存档

2015年(68)

我的朋友

分类: 系统运维

2015-08-31 18:41:48

以下均以redhat 为例,其他的发行版没测过,没把握的千万不要在正式机上玩,登录不上就麻烦了。

一、限制终端登陆 

/etc/securetty文件限制“root”用户可以从那个TTY设备登录登录程序(通常是“/bin/login”)需要读取“/etc/securetty”文件。它的格式是:列出来的tty设备都是允许登录的,注释掉或是在这个文件中不存在的都是不允许root登录,这个只针对root用户。

[root@localhost ~]#vi /etc/securetty

console
vc/1
--------略-------
vc/11
tty1
tty2
#tty3
#tty4
#tty5
#tty6
#tty7
#tty8
#tty9
#tty10
#tty11  

这个只是限制终端登录,简单的说就是直接在服务器上连上显示器、键盘来本地操作的那种,对ssh(ssh使用pts)远程登录没有影响;如上修改完后就只能通过终端tty1和tty2登录了,如果你按ALT+F[3-6]切换终端登录会报login incorrect错误。

默认情况下是允许root从6个终端登陆,可以修改文件/etc/init/start-ttys.conf更改。

二、限制ssh登录

[root@localhost ~]#vi /etc/ssh/sshd_config 

1)限制root用户通过ssh登录: PermitRootLogin no

2) 设定允许/拒绝个别组通过ssh登录:AllowGroups/DenyGroups remote  允许/拒绝remote这个组的用户远程登陆

3) 设定允许/拒绝个别用户通过ssh登录:AllowUsers/DenyUsers  user1 user2 user3  允许/拒绝user[123]  三个用户访问, 这个可以用正则表达式,如:

AllowUsers/DenyUsers user* 以^user开头的用户

AllowUsers/DenyUsers [^user] 非以user开头的用户名

此外更严格一点还可以只限制/允计从某台服务器过来的用户

AllowUsers user1@192.168.1.100

4)修改配置文件后重启sshd(/etc/init.d/sshd restart)服务后生效 

三、  限制用户登陆的时间

需用到pam模块pam_time.so 

1) ssh 

[root@localhost ~]#vi /etc/pam.d/sshd

#%PAM-1.0

auth       include      system-auth

account    required     pam_nologin.so

account    required     /lib64/security/pam_time.so  //添加这一行

----- 略------

2) 终端登录

[root@localhost ~]#vi /etc/pam.d/login

#%PAM-1.0

auth [user_unknown=ignore success=ok ignore=ignore default=bad] pam_securetty.so

auth       include      system-auth

account    required     pam_nologin.so

account    required     /lib64/security/pam_time.so  //添加这一行

----- 略------

3)配置time.conf

[root@localhost ~]# vi /etc/security/time.conf

time.conf配置文件格式:services;ttys;users;times

services — pam服务名列表,可以ls /etc/pam.d查看

tty —终端名.

users —用户名

times —可以使用services 的时间段

示例如下:

sshd;*;apptest;Al1400-2000  //限制apptest用户只能在中午2点到晚上8点这段时间通过ssh登录

login;*;user01;Al1400-2000 //限制user01用户只能在中午2点到晚上8点这段时间通过终端登录

sshd;*;!root;!Al0000-2400   //除了root用户外,其他用户都不能登录

time.conf的详细配置方法请 man time.conf


四、  限制同一用户登陆的数量

linux是个多用户系统,同一个用户名可以多个人使用且同时登录,如果想限制只能有一个用户登录系统,可以做如下设置

[root@localhost ~]#vi /etc/security/limits.conf 

   添加:

abc     -     maxlogins     1 


设置后,用户名abc的最大登录数量为1,不管是通过本地终端或是SSH等远程登录,如果登录的数量超过1个即会拒绝,如

[root@localhost ~]# ssh abc@192.168.22.238
abc@192.168.22.238's password: 
Too many logins for 'abc'.
Last login: Thu Jun 14 17:17:52 2012
Connection to 192.168.22.238 closed.
[root@localhost ~]# ssh abc@192.168.22.238
abc@192.168.22.238's password: 
Too many logins for 'abc'.
Last login: Thu Jun 14 17:17:52 2012
阅读(8021) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~