实验目的&要求:了解Linux系统帐户创建,密码设置,登录管理。
实验内容
设置用户密码策略。
添加实验用账户test,密码设置为test。系统环境搭建时已创建test用户。创建密码时输入123,
系统提示密码字符太短。
密码输入123456,提示密码过于简单。
密码输入linuxtest,提示再次输入密码进行确认。
密码策略可以通过修改/etc/login_defs的文件进行设置,vi/etc/login_defs进行编辑
以下参数及功能
PASS_MAX_DAYS 99999 #密码的最大有效期, 99999:永久有期
PASS_MIN_DAYS 0 #是否可修改密码,0可修改,非0多少天后可修改
PASS_MIN_LEN 5 #密码最小长度,使用pam_cracklib module,该参数不再有效
PASS_WARN_AGE 7 #密码失效前多少天在用户登录时通知用户修改密码
或者修改vi /etc/pam.d/system-auth
在passwd部分查找到如下一行password requisite /lib/security/$ISA/pam_cracklib.so tretry=3 dcredit=-1,ucredit=-1,lcredit=-1 minlen=8设置密码强度至少为8位。
tretry=N 重试多少次后返回密码修改错误
difok=N 新密码必需与旧密码不同的位数
dcredit=N: N >= 0: 密码中最多有多少个数字;N < 0密码中最少有多少个数字.
lcredit=N 小写字母的个数
ucredit=N 大写字母的个数
credit=N 特殊字母的个数
minlen=8 密码最少位数
三个auth都会用来进行登陆检查,即使第一个模块失败,用来防止用户知道在哪个过程失败,主要目的是防止攻击。
auth 组件:认证接口,要求并验证密码
account组件:检测是否允许访问。检测账户是否过期或则在末端时间内能否登陆。
password组件:设置并验证密码
session组件:配置和管理用户sesison。
required:该模块必须success才能进行继续。即使失败用户也不会立刻获知,直到所有相关模块完成。
requisite:该模块必须success才能使认证继续进行。
suffifient:如果失败则忽略。
optinal:忽略结果,不管是否失败。
摘抄于:linux中/etc/pam.d/system-auth文件详解_ghjzzhg的博客-CSDN博客_/etc/pam.d/system-auth
禁止root帐号远程登录。
在LINUX系统中,计算机安全系统建立在身份验证机制上。如果root口令被盗,系统将会受到侵害,尤其在网络环境中,后果更不堪设想。因此限制用户 root 远程登录,对保证计算机系统的安全,具有实际意义。
使用vi修改/etc/ssh/sshd_config文件
编辑#PermitRootLogin yes,将#去掉,并将yes改为no,最终结果如图显示
重启SSH服务 service sshdrestart,此时通过终端使用root账户已经无法远程登录设备了。
配置策略锁定多次尝试登录失败的用户
锁定多次尝试登录失败的用户,能够有效防止针对于系统用户密码的暴力破解,配置策略锁定多次尝试登录失败的用户,其带来的最大好处便是让"猜"密码包括部分暴力破解密码的方式失去意义。
vi /etc/pam.d/system-auth
在system-auth文件的auth部分增加如下一行
auth required /lib/security/pam_tally.so onerr=fail no_magic_root
在system-auth文件的account部分增加如下一行,
account required /lib/security/pam_tally.so deny=3 no_magic_root reset
然后保存并关闭system-auth文件
然后在本地XP上使用putty软件或者SecureCRT进行SSH使用test账户远程登录,在尝试3次错误密码后再使用正确的密码登录,会发现访问仍然被拒绝,此时test帐号已经被锁定,无法登录。