linux帐户安全管理与技巧
实验内容和步骤
任务一:建立与删除普通用户账户,管理组
管理帐户的俱行工具及功能如下:
useradd [] 添加新用户
usermod [] 修改已存在的指定用户
userdel [-r] 删除已存在的指定帐户,-r参数用于删除用户自家目录
groupadd [] 加新组
groupmod [] 修改已存在的指定组
groupdel 删除已存在的指定组
1)创建一个新用户user1
useradd user1
查看用户是否创建成功

2)创建一个新组group1
groupadd group1
3)创建一个新用户user2并将其加入用户组group1中
useradd -G group1 user2
4)创建一个新用户user3,指定登录目录为/www,不创建自家用户目录(-M)
useradd -d /www -M user3
5)将用户user1添加到附加组group1中
usermod -G group1 user1
至此,group1组中有user1,user2两个用户,用命令查看/etc/group文件如下图:

6)删除用户user3,用户uers3从用户组中消失
userdel user3

7)删除用户user2,同时删除自家目录
userdel -r user2

8)删除组group1,则组group1中的用户则被分配到其自己分配的私有组中。
groupdel group1

任务二:用户口令管理与口令时效管理
(1)passwd命令
passwd命令用来设置用户口令,格式为:passwd [] []
用户修改自己的用户密码可直接键入passwd,若修改其他用户密码需加用户名。超级用户还可以使用如下命令进行用户口令管理:
passwd -l //禁用用户帐户口令
passwd -S //查看用户帐户口令状态
passwd -u //恢复用户帐户口令
passwd -d //删除用户帐户口令
在创建完用户user1后,没给用户passwd口令时,账户默认为禁用状态:

1. 给用户user1创建口令,设置为:111111
passwd user1

接下来我们再次查看user1状态时,则为如下图所示:

密码已经设置,且为SHA512加密
2. 禁用账户user1
passwd -l user1

3. 恢复账户user1的账户口令:
passwd -u user1

4. 删除用户账户口令
passwd -d user1

用户user1的密码即为空。
2)chage命令
口令时效是系统管理员用来防止机构内不良口令的一种技术。在Linux系统上,口令时效是通过chage命令来管理的,格式为:chage []
下面列出了chage命令的选项说明:
-m days: 指定用户必须改变口令所间隔的最少天数。如果值为0,口令就不会过期。
-M days: 指定口令有效的最多天数。当该选项指定的天数加上-d选项指定的天数小于当前的日期时,用户在使用该帐号前就必须改变口令。
-d days: 指定从1970年1月1日起,口令被改变的天数。
-I days: 指定口令过期后,帐号被锁前不活跃的天数。如果值为0,帐号在口令过期后就不会被锁。
-E date: 指定帐号被锁的日期。日期格式YYYY-MM-DD。若不用日期,也可以使用自1970年1月1日后经过的天数。
-W days: 指定口令过期前要警告用户的天数。
-l: 列出指定用户当前的口令时效信息,以确定帐号何时过期。
例如下面的命令要求用户user1两天内不能更改口令,并且口令最长的存活期为30天,并且口令过期前5天通知用户
chage -m 2 -M 30 -W 5 user1
可以使用如下命令查看用户user1当前的口令时效信息:chage -l user1

任务三:PAM可插拔验证模块
PAM(Plugable Authentication Module,可插拔验证模块)是由Sun提出的一种认证机制。管理员通过它可以灵活地根据需要给不同的服务配置不同的认证方式而无需更改服务程序,同时也便于向系统中添加新的认证手段。不少应用软件都可以与PAM进行集成,当然,操作系统的登录验证过程也可以通过对PAM进行配置来进行。如指定密码复杂性、指定用户试图登录的失败次数等,以下列出对这些账号的安全性配置。
1. 指定密码复杂性
修改/etc/pam.d/system-auth配置:(注意:在root用户下进行,其余用户对这个文件只有读的权限)
vi /etc/pam.d/system-auth
限制密码最少有:2个大写字母,3个小写字母,3个数字,2个符号
文件中有一行为:
password requisite pam_cracklib.so try_first_pass retry=3
在其后追加如下参数:
ucredit=-2 lcredit=-3 dcredit=-3 ocredit=-2
2. 验证时若出现任何与pam_tally有关的错误则停止登录
auth required pam_tally.so onerr=fail magic_root
3. 账号验证过程中一旦发现连续5次输入密码错误,就通过pam_tally锁定此账号600秒
account required pam_tally.so deny=5 lock_time=600 magic_root reset


4.系统日志查看
Linux系统常见的日志文件
路径1:/var/log/messages:记录 Linux 内核消息及各种应用程序的公共日志信息
路径2:/var/log/cron:记录 crond 计划任务产生的事件信息
路径3:/var/log/dmesg:记录 Linux 操作系统在引导过程中的各种事件信息
路径4:/var/log/maillog:记录进入或发出系统的电子邮件活动
路径5:/var/log/lastlog:记录每个用户最近的登录事件
路径6:/var/log/secure:记录用户认证相关的安全事件信息
路径7:/var/log/wtmp:记录每个用户登录、注销及系统启动和停机事件
路径8:/var/log/btmp:记录失败的、错误的登录尝试及验证事件
Linux系统用户日志相关命令
1.users#
users命令只是简单地输出当前登录的用户名称,每个显示的用户名对应一个登录会话。如果一个用户有不止一个登录会话,那他的用户名将显示与其相同的次数。
2.who#
who命令用于报告当前登录到系统中的每个用户的信息。使用该命令,系统管理员可以查看当前系统存在哪些不合法用户,从而对其进行审计和处理。who的默认输出包括用户名、终端类型、登录日期及远 程主机。
3.w#
w命令用于显示当前系统中的每个用户及其所运行的进程信息,比users、who命令的输出内容要丰富一些。
4.last#
last命令用于查询成功登录到系统的用户记录,最近的登录情况将显示在最前面。通过last命令可以及时掌握Linux主机的登录情况,若发现未经授权的用户登录过,则表示当前主机可能已被入侵。
5.lastb#
lastb命令用于查询登录失败的用户记录,如登录的用户名错误、密码不正确等情况都将记录在案。登录失败的情况属于安全事件,因为这表示可能有人在尝试猜解你的密码。
5.密码策略有效性的验证
1. 禁止使用旧密码
vi /etc/pam.d/system-auth
找到同时有 “password” 和 “pam_unix.so” 字段并且附加有 “remember=5” 的那行,它表示禁止使用最近用过的5个密码(己使用过的密码会被保存在 /etc/security/opasswd 下面)。
password sufficient pamunix.so sha512 shadow nullok tryfirstpass useauthtok remember=5
2.设置密码最短长度
vi /etc/pam.d/system-auth
找到同时有 “password” 和 “pam_cracklib.so” 字段并且附加有 “minlen=10” 的那行,它表示最小密码长度为(10 - 类型数量)。这里的 “类型数量” 表示不同的字符类型数量。PAM 提供4种类型符号作为密码 (大写字母、小写字母、数字和标点符号)。如果你的密码同时用上了这4种类型的符号,并且你的 minlen 设为10,那么最短的密码长度允许是6个字符。
password requisite pam_cracklib.so retry=3 difok=3 minlen=10
3.设置密码复杂度
vi /etc/pam.d/system-auth
找到同时有 “password” 和 “pam_cracklib.so” 那行.
# retry 允许重试3次
# difok=N:新密码必需与旧密码不同的位数 difok=3 新密码必须与旧密码有3位不同
# minlen 最小位数
# ucredit 大写字母位数
# lcredit 小写字母位数
# dcredit=N: N >= 0:密码中最多有多少个数字;N < 0密码中最少有多少个数字. dcredit=-1 密码中最少有1个数字
# ocredit=N:特殊字母的个数 ocredit=-1 密码中至少有1个特殊字符
# 它表示密码必须至少包含一个大写字母(ucredit),两个小写字母(lcredit),一个数字(dcredit)和一个标点符号(ocredit)。
password requisite pam_cracklib.so retry=3 difok=3 minlen=10 ucredit=-1 lcredit=-2 dcredit=-1 ocredit=-1
4.设置密码过期期限
vi /etc/login.defs
PASSMAXDAYS 99999 #密码的最大有效期, 99999:永久有期
PASSMINDAYS 0 #是否可修改密码,0可修改,非0修改密码后下一次修改需间隔多少天后可修改
PASS_MIN_LEN 5 #密码最小长度,使用pam_cracklib module,该参数不再有效
PASSWARNAGE 7 #密码失效前多少天在用户登录时通知用户修改密码
1.思考还有哪些加强linux账户安全的管理方法?
答: 密切关注密钥环 ,强制更新用户密码 ,不要盲目禁用安全增强Linux子系统 ,不要以root身份登录 ,及时进行安全更新 。
2.比较一下linux账户跟unix账户管理的异同。
答:1. 开源性
Linux是一款开源操作系统,不需要付费,即可使用;Unix是一款对源码实行知识产权保护的传统商业软件,使用需要付费授权使用。
2. 跨平台性
Linux操作系统具有良好的跨平台性能,可运行在多种硬件平台上;Unix操作系统跨平台性能较弱,大多需与硬件配套使用。
3. 可视化界面
Linux除了进行命令行操作,还有窗体管理系统;Unix只是命令行下的系统。
4. 硬件环境
Linux操作系统对硬件的要求较低,安装方法更易掌握;Unix对硬件要求比较苛刻,按照难度较大。
5. 用户群体
Linux的用户群体很广泛,个人和企业均可使用;Unix的用户群体比较窄,多是安全性要求高的大型企业使用,如银行、电信部门等,或者Unix硬件厂商使用,如Sun等。相比于Unix操作系统,Linux操作系统更受广大计算机爱好者的喜爱,主要原因是Linux操作系统具有Unix操作系统的全部功能,并且能够在普通PC计算机上实现全部的Unix特性,开源免费的特性,更容易普及使用!

浙公网安备 33010602011771号