当前位置:主页 > 查看内容

系统安全由我不由他!Linux账号安全及登录控制详细介绍,让你的

发布时间:2021-10-07 00:00| 位朋友查看

简介:账号安全和登录控制 一、账号安全控制 1.1 账号安全的基本措施 1.1.1 将非登录用户的Shell设为nologin 1.1.2 锁定长期不使用的账号 1.1.3 删除无用的账号 1.1.4 锁定账号文件 1.1.5 密码安全控制 1.1.6 命令历史记录限制 1.1.7 终端自动注销 1.1.8 使用su命……

在这里插入图片描述

一、账号安全控制

1.1 账号安全的基本措施

1.1.1 将非登录用户的Shell设为nologin

[root@hostname ~]# usermod -s nologin 用户名						#格式
[root@cheng0307 ~]# usermod -s nologin zhangsan					#实际操作

在这里插入图片描述

1.1.2 锁定长期不使用的账号

[root@cheng0307 ~]# usermod -L lisi			#锁定账户方式一
[root@cheng0307 ~]# usermod -U lisi			#解锁账户方式一
[root@cheng0307 ~]# passwd -l lisi			#锁定账户方式二
[root@cheng0307 ~]# passwd -u lisi			#解锁账户方式二

在这里插入图片描述

1.1.3 删除无用的账号

[root@hostname ~]# userdel 用户名			#格式
[root@cheng0307 ~]# userdel lisi			#实际操作

在这里插入图片描述

1.1.4 锁定账号文件

[root@cheng0307 ~]# lsattr /etc/passwd /etc/shadow				#查看文件的状态
[root@cheng0307 ~]# chattr +i /etc/passwd /etc/shadow			#锁定文件
[root@cheng0307 ~]# chattr -i /etc/passwd /etc/shadow			#解锁文件

在这里插入图片描述

1.1.5 密码安全控制

  • 设置密码有效期
  • 要求用户下次登录时修改密码

1.格式:

1.适用于新建用户
[root@cheng0307 ~]# vim /etc/login.defs 			#修改配置文件
-----此处省略部分注释及配置-------
PASS_MAX_DAYS   30									#修改密码有效期为30

2.适用于已有用户
[root@cheng0307 ~]# chage -M 30 zhangsan			#修改密码有效期

3.强制在下次登录成功时修改密码(/etc/shadow第三个字段被修改为0
[root@cheng0307 ~]# chage -d 0 zhangsan				#设置下次登录强制修改密码

2.实例1:修改密码配置文件,要求新创建的用户密码有效期都为30天
在这里插入图片描述
在这里插入图片描述
3.实例2:将现有用户zhangsan的密码有效期也修改为30天。
在这里插入图片描述

4.实例3:将现有用户zhangsan设置为强制下次登录时需要修改密码。
在这里插入图片描述
登录时输入密码后,需要设置新的密码才可以。
在这里插入图片描述

1.1.6 命令历史记录限制

  • 减少记录的命令条数;
  • 登录时自动清空命令历史 ;
  • 系统默认保存1000条历史命令记录;
  • history -c 命令只可以临时清除记录,重启后记录还在。

1.格式:

1.对历史命令的数量进行限制
[root@cheng0307 ~]# vim /etc/profile		#修改配置文件
export HISTSIZE=200					#修改命令历史记录数量最大为200,前面添加export为全局有效
source /etc/profile 				#刷新配置文件,立即生效

2.设置登录时自动清空命令历史
vim .bashrc 					#修改/etc/profile配置文件(每次切换bash都执行)

vim /etc/profile				#修改/etc/profile配置文件(执行一次)
echo " " > ~/.bash_history		#

2.实例1:修改历史命令记录为200条,并设置全局有效,并验证
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
3.实例2:设置登录时自动清空命令历史
在这里插入图片描述
在这里插入图片描述

1.1.7 终端自动注销

  • 闲置 [ n ] 秒后自动注销。(n为数字)

1.格式:

[root@cheng0307 ~]# vim /etc/profile			#编辑/etc/profile文件
export TMOUT=100								#设置全局自动注销时间

2.案例1:设置100s秒终端自动注销
在这里插入图片描述

1.1.8 使用su命令切换用户

1.用途和用法

  • 用途:Substitute User,切换用户
  • 格式:su - 目标用户(横杠“ - ”代表切换到目标用户的家目录)

2.密码验证

  • root - - - >任意用户,不验证密码
  • 普通用户- - - >其他用户,验证目标用户的密码
  • 带 “ - ” 表示将使用目标用户的登录Shell环境

3.格式:

1.切换用户
[root@cheng0307 ~]# su - zhangsan			#root切换普通用户
[zhangsan@cheng0307 ~]$ su - root			#普通用户切换其他用户

2.查看当前登录的用户
[root@cheng0307 ~]# whoami					#显示当前登录的用户

4.案例:测试用户之间切换
在这里插入图片描述

1.1.9 限制使用su命令的用户

  • 将允许使用su命令的用户加入wheel组中;
  • 启用pam_wheel 认证模块

1.格式:

[root@cheng0307 ~]# vim /etc/pam.d/su			#编辑/etc/pam.d/su配置文件
[root@cheng0307 ~]# gpasswd -a zhangsan wheel	#将希望可以使用su命令的用户加入到wheel组中
auth  required  pam_wheel.so use_uid			#将此行的注释取消即可

2.实例:有zhangsan和lisi两个用户,要求设置zhangsan可以使用su命令切换用户,lisi用户不允许使用。
在这里插入图片描述
在这里插入图片描述
3. 实例2:查看su操作记录
在这里插入图片描述

1.1.10 Linux中的PAM安全认证

1.su命令的安全隐患

  • 默认情况下,任何用户都允许使用su命令,有机会反复尝试其他用户(如root) 的登录密码,带来安全风险;
  • 为了加强su命令的使用控制,可借助于PAM认证模块,只允许极个别用户使用su命令进行切换。

2.PAM(Pluggable Authentication Modules)可插拔式认证模块

  • 是一种高效而且灵活便利的用户级别的认证方式;
  • 也是当前Linux服务器普遍使用的认证方式。

3.PAM认证原理:

  • PAM认证一般遵循的顺序: Service (服务) --> PAM (配置文件) --> pam_*.so;,
  • PAM认证首先要确定哪一项应用服务,然后加载相应的PAM的配置文件(位于/etc/pam.d下),最后调用认证模块(位于/lib64/security/下)进行安全认证。
  • 用户访问服务器的时候,服务器的某一个服务程序把用户的请求发送到PAM模块进行认证。不同的应用程序所对应的PAM模块也是不同的。
  • 如果想查看某个程序是否支持PAM认证,可以用ls命令进行查看/etc/pam.d/
  • PAM的配置文件中的每一行都是一个独立的认证过程,它们按从上往下的顺序依次由PAM模块调用.

在这里插入图片描述

1.1.11 使用sudo机制提升权限

1.sudo命令的用途及用法

  • 用途 :以其他用户身份(如root执行授权的命令)
  • 用法:sudo 权限命令

2.配置sudo授权
- visudo或者vi /etc/sudoers(此文件默认权限为440,保存时必须 wq!强制执行操作)
- 记录格式:用户 主机名=命令程序列表
- 可以使用通配符“ * ”号任意值和“ !”号进行取反操作。
- 权限生效后,输入密码后5分钟可以不用重新输入密码。

3.语法格式:

用户 主机名=命令程序列表
用户 主机名=(用户)命令程序列表
zhangsan ALL=(root) /sbin/ifconfig				#实际操作
  • 用户: 直接授权指定的用户名,或采用“&组名"的形式(授权一个组的所有用户)。
  • 主机名:使用此规则的主机名。没配置过主机名时可用localhost,有配过主机名则用实际的主机名,ALL则代表所有主机。
  • (用户):用户能够以何种身份来执行命令。此项可省略,缺省时以root用户的身份来运行命令。
    命令程序列表:允许授权的用户通过sudo方式执行的特权命令,需填写命令程序的完整路径,多个命令之间以逗号“。"进行分隔。ALL则代表系统中的所有命令

4.启用sudo操作日志

  • 需启用Defaults logfile配置
  • 默认日志文件:/var/log/sudo
  • 操作:在/etc/sudoers末尾添加Defaults logfile="/var/log/sudo"

5.查询授权的sudo操作

  • sudo -l

6.实例1:查看当前sudo配置文件。
在这里插入图片描述

实例2:配置相关文件,使得zhangsan可以通过sudo命令使用ifconfig。

  1. 切换到zhangsan用户进行测试。
    在这里插入图片描述

  2. 末尾插入下列配置,然后强制保存并退出。
    在这里插入图片描述

  3. 进行测试。
    在这里插入图片描述

实例3:设置wheel组进行sudo操作时无需密码验证,并将lisi用户添加到wheel组中测试。
在这里插入图片描述
这里是sudo配置文件 /etc/sudoers 内的具体修改步骤:
在这里插入图片描述
实例4:使用关键字来进行设置别名,批量控制用户进行sudo操作时无法使用重启(reboot)、关机(poweroff)、切换init和无法删除。
第一步:vim /etc/sudoers 或者visudo 修改配置文件(这里我使用的是第一种)
在这里插入图片描述
第二步:添加配置
在这里插入图片描述
第三步:使用普通用户进行测试
在这里插入图片描述
第四步:查看zhangsan和lisi的可使用权限。
在这里插入图片描述
实例5:修改实例4,使zhangsan和lisi用户可以无需密码使用sudo可以使用的权限为/sbin下所有。
在这里插入图片描述

实例6: 在/car/log下创建sudo日志文件,用来存储用户使用的sudo命令记录。
在这里插入图片描述

二、系统引导和登录控制

2.1 开关机安全控制

1.调整BIOS引导设置

  • 将第一引导设备设为当前系统所在硬盘;
  • 禁止从其他设备(光盘、 U盘、网络)引导系统;
  • 将安全级别设为setup,并设置管理员密码。

2.GRUB限制

  • 使用grub2-mkpasswd-pbkdf2生成密钥;
  • 修改/etc/grub.d/00_ header文件中, 添加密码记录;
  • 生成新的grub.cfg配置文件。

3.限制更改GRUB引导参数
通常情况下在系统开机进入GRUB菜单时,按e键可以查看并修改GRUB引导参数,这对服务器是一个极大的威胁。可以为GRUB菜单设置一个密码,只有提供正确的密码才被允许修改引导参数。

4.实例:为GRUB菜单设置密码
第一步:我们先来看一下未设置之前的状态
在这里插入图片描述
第二步:使用grub2-mkpasswd-pbkdf2生成密钥并复制,然后备份两个配置文件。
在这里插入图片描述
第三步:修改/etc/grub.d/00_ header文件中, 添加密码记录,并存并退出
在这里插入图片描述
第四步:生成新的grub.cfg文件,然后重启系统
在这里插入图片描述
第五步:验证结果
在这里插入图片描述

;原文链接:https://blog.csdn.net/weixin_45551608/article/details/116052610
本站部分内容转载于网络,版权归原作者所有,转载之目的在于传播更多优秀技术内容,如有侵权请联系QQ/微信:153890879删除,谢谢!
上一篇:知识点:Java HashMap 原理与源码分析(下) 下一篇:没有了

推荐图文


随机推荐