Linux的系统安全及应用

前言

只要是关于系统安全的操作肯定是绕不开用户和应用的,因为能对系统造成安全隐患的大多数都是人为操作,一旦出现隐患,那么应用多多少少会遭受波及,所以本次要学习的可以说是对系统安全的一个进阶版,毕竟安全是重中之重。

一、账号安全基本措施

1.账号安全基本措施

系统账号清理
将非登录用户的Shell设为/sbin/nologin

锁定长期不使用的账号
usermod -L或passwd -l
#锁定账号
passwd -S
#查看账号信息
passwd -u
#解锁
userdel -r
#删除
锁定账号文件passwd、shadow
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.密码安全控制

设置密码有效期
要求用户下次登陆时修改密码
可以看到这里设置的有效期时间是90天
vim /etc/login.defs这种方式适用于新建用户
在这里插入图片描述
创建一个新用户lisi,可以看到刚刚修改的密码有效期为90天
在这里插入图片描述

chage -l zhangsan查看用户信息,可以看到原本已有的用户zhangsan的密码有效期并未发生改变

所以得用chage -M 30 zhangsan这种适用于已有用户
在这里插入图片描述
在这里插入图片描述
chage -d 0 zhangsan 要求用户zhangsan下次登陆时修改密码
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
这里可以看到用户zhangsan登陆时需要输入新密码
在这里插入图片描述

3.历史命令

3.1.history命令

可以看到之前输入的命令,有利有弊,所以需要注意一下
在这里插入图片描述
用echo进行修改的密码都能看到,不过一般用passwd就行,安全也方便
在这里插入图片描述

3.2.删除历史记录

history -c
临时清除历史记录,重启之后历史记录还是能看到
在这里插入图片描述
vim /etc/profile
输入set nu显示行号方便查找,在46行histsize前面加上export编辑想要显示几条历史记录
在这里插入图片描述
可以看到历史记录只显示5条以内了,但是历史记录还是未能删除
在这里插入图片描述
vim .bash_history
在这里插入图片描述
vim .bash
在最后一行输入
echo ‘’ > ~/.bash_history
在这里插入图片描述
这里是目前尚未重启的历史记录
在这里插入图片描述
重启之后
在这里插入图片描述

4.终端自动注销

终端自动注销设置180秒,在底部输入export TIMEOUT=180,记得刷新
. /etc/profile

source/etc/profile
之后等三分钟便会自动关闭
在这里插入图片描述
在这里插入图片描述

二、切换用户

1.使用su命令切换用户

1.1用途及用法

用途:Substitute User 切换用户
格式:su - 目标用户
PS:使用 su 命令时,有 - 和没有 - 是完全不同的,- 选项表示在切换用户身份的同时,连当前使用的环境变量也切换成指定用户的,切换的更彻底,没有-的情况下,环境变量依旧是原用户的。

1.2密码验证

root——任意用户,不验证密码
普通用户——其他用户,验证目标用户的密码
在这里插入图片描述

1.3限制使用su命令的用户

将允许使用su命令的用户加入wheel组
启用pam_wheel认证模块
查看su操作记录
安全日志文件:/var/log/secure

默认情况下,任何用户都允许使用su命令,从而有机会反复尝试其他用户(如 root)的登录密码,这样带来了安全风险。
为了加强su 命令的使用控制,可以借助于pam wheel 认证模块,只允许极个别用户使用su命令进行切换。实现过程如下:将授权使用su命令的用户添加到 wheel组,修改/ etc/pam.d su认证配置以启用pam wheel认证。

在/etc/pam.d/su文件里设置禁止用户使用su命令
vim /etc/pam.d/su
2 # auth sufficient pam_ rootok.so
6 #auth required pam wheel.so use_uid
简单来说:加了#后,root切换到普通用户也要密码验证,root和普通用户互相切换都要密码验证。
谁不在wheel组里,谁就用不了su,root也不行。解决办法在下面的添加授权用户root

下图表示所有用户均可使用su命令,带#号表示注释,不带#表示开启pam认证
在这里插入图片描述
1.以上两行是默认状态(即开启第一行,注释第二行),这种状态下是允许所有用户间使用su命令进行切换的。
2.两行都注释也是运行所有用户都能使用su命令,但root下使用su切换到其他普通用户需要输入密码;如果第一行不注释,则root使用su切换普通用户就不需要输入密码(pam rootok,so模块的主要作用是使uid为0的用户,即root用户能够直接通过认证而不用输入密码。)
3.如果开启第二行,表示只有root用户和wheel组内的用户才可以使用su命令
4.如果注释第一行,开启第二行,表示只有whee1组内的用户才能使用su命令,root用户也被禁用su命令。
gpasswd -a root wheel
添加授权用户root和zhangsan在这里插入图片描述

在这里插入图片描述
确认wheel组成员
在这里插入图片描述

vi /etc/pam.d/ su
修改认证配置
auth sufficient pam_rootok.so
auth required pam_wheel.so use_uid
去除这两行开头的#号
在这里插入图片描述
这里可以看到,lisi用户不在wheel组中,不能使用su进行切换用户
在这里插入图片描述

1.4.PAM安全认证

su命令的安全隐患:
第一默认情况下,任何用户都可以通过反复尝试其他用户的登陆密码,带来安全隐患;第二为了加强su命令的使用控制,可以借助PAM认证模块,只允许极个别用户使用su 命令进行切换。

PAM(Pluggable Authentication Modules)可插拔式认证模块#可插拔式认证模块,就是配置文件和指定的一个小模块是一种高效而且灵活便利的用户级别的认证方式

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

PAM安全认证流程
控制类型也称做Control Flags,用于PAM验证类型的返回结果
1.required验证失败时仍然继续,但返回Fail
2.requisite验证失败则立即结束整个验证过程,返回Fail
3.sufficient验证成功则立即返回,不再继续,否则忽略结果并继续
4.optional不用于验证,只显示信息(通常用于session类型)
在这里插入图片描述

三、使用sudo机制提升权限

1.sudo命令的用途及用法

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

2.配置

visudo或者vi letc/sudoers
记录格式:用户 主机名列表=命令程序列表

这里可以看到zhangsan没有权限,使用visudo或vi /etc/sudoers在底部输入
zhangsan ALL=(root) /usr/sbin/useradd

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
获得权限后,输入命令要在前面加上sudo
这里用了zhangsan用户进行创建wangwu用户
在这里插入图片描述
进行查看,创建成功
想要取消zhangsan的权限也很简单
#zhangsan ALL=(root) /usr/sbin/useradd前面加个#号进行注释即可
在这里插入图片描述

3.启用sudo操作日志

visudo
Defaults logfile = “/var/log/sudq”

sudo日志记录以备管理员查看,应在/etc/sudoers 文件中增加“Defaults logfile”设置如果已经启用 sudo 日志,则可以从/var/log/sudo 文件中看到用户的 sudo 操作记录。
注:启用日志:Defaults logfile=/var/log/sudo
另外一个方法是/var/log/secure 日志可查看到sudo操作用户步骤
在这里插入图片描述
sudo [参数选项] 命令
-l:列出用户在主机上可用的和被禁止的命令;一般配置好/tec/sudoers后,要用这个命令来查看和测试是不是配置正确的
-v:验证用户的时间戳:如果用户运行sudo后,输入用户的密码后,在短时间内可以不用输入口令来直接进行sudo 操作,用-v可以跟踪最新的时间戳;
-u:指定以以某个用户执行特定操作;
-k:删除时间戳,下一个sudo命令要求用求提供密码;

四、开关机安全控制

1. 调整BIOS引导设置

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

2.GRUB限制

使用grub2-mkpasswd-pbkdf2生成密钥
grub.cfg的一个引导菜单配置文件和header引导文件进行备份
修改/etc/grub.d/00_header文件中,添加密码记录
生成新的grub.cfg配置文件
通常情况下在系统开机进入GRUB菜单时,按e键可以查看并修改GRUB引导参数,这对服务器是一个极大的威胁。
可以为GRUB菜单设置一个密码,只有提供正确的密码才被允许修改引导参数

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

3.终端登陆安全控制

限制root只在安全终端登陆
安全终端配置:vim /etc/securetty

禁止普通用户登陆
touch /etc/nologin
取消上述登陆限制,删除nologin文件或重启后即恢复正常
rm -rf /etc/nologin
在这里插入图片描述

总结

vim /etc/login.defs这种修改密码有效期的方式和chage -M是有区别的,一个是针对新建用户,一个是针对已有用户。以前经常用的su命令进行切换用户,前面是否有"-"是由根本区别的,个人建议切换用户时加上“-”会比较好一点,sudo的注释和开启不要混淆,有#注释,无#开启。终端控制时反着的,有#表示禁止。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值