【Linux系统】第十章 -系统安全应用


1、账号安全基本措施

1.1 系统账号操作

将用户设置为无法登录

#nologin的修改
[root@localhost ~]# tail /etc/passwd       
#查看lisi的属性

[root@localhost ~]# chsh -s /sbin/nologin lisi     
#修改lisi的shell属性
Changing shell for lisi.
Shell changed.
[root@localhost ~]# tail -1 /etc/passwd				
#查看lisi的属性
lisi:x:1001:1001::/home/lisi:/sbin/nologin

锁定用户

[root@localhost ~]# passwd -l zhaosi
锁定用户 zhaosi 的密码 。
passwd: 操作成功
[root@localhost ~]# su zhangsan
[zhangsan@localhost root]$ su zhaosi
密码:
su: 鉴定故障
[root@localhost ~]# passwd -u zhaosi
解锁用户 zhaosi 的密码。
passwd: 操作成功
[root@localhost ~]# passwd -u zhaosi
解锁用户 zhaosi 的密码。
passwd: 操作成功
[root@localhost ~]# su zhangsan
[zhangsan@localhost root]$ su zhaosi
密码:
[zhaosi@localhost root]$ 

删除账户

userdel -r  用户名
家目录 

家目录   无主文件  前主人的uid

锁定配置文件

chattr

  • -a 让文件或目录仅供附加用途。只能追加

  • -i 不得任意更动文件或目录

[root@localhost ~]# chattr +i /etc/passwd /etc/shadow
#加i
[root@localhost ~]# useradd liqi
useradd:无法打开 /etc/passwd
[root@localhost ~]# lsattr /etc/passwd /etc/shadow
----i----------- /etc/passwd
----i----------- /etc/shadow

chattr -i /etc/passwd /etc/shadow

1.2 密码安全控制

1.2.1 设置密码的规则

对于新建的用户可以修改 /etc/login.defs 文件里的内容来设置密码规则

[root@localhost ~]# vim /etc/login.defs              
#适用于修改后生效后修改的用户
	 --------------------------------
	 25 PASS_MAX_DAYS   99999
     26 PASS_MIN_DAYS   0
     27 PASS_MIN_LEN    5
     28 PASS_WARN_AGE   7
[root@localhost ~]# tail -5 /etc/shadow            
#修改密码有效期限

对于已有的用户可以使用chage命令

chage

chage [选项] 用户名
-m:密码可更改的最小天数。为零时代表任何时候都可以更改密码。
-M:密码保持有效的最大天数。
-w:用户密码到期前,提前收到警告信息的天数。
-E:帐号到期的日期。过了这天,此帐号将不可用。
-d:上一次更改的日期。
-i:停滞时期。如果一个密码已过期这些天,那么此帐号将不可用。
-l:例出当前的设置。由非特权用户来确定他们的密码或帐号何时过期。


[root@localhost ~]# chage -d  0 zhangsan
#强制张三下一次登录一定修改密码(密码符合复杂性要求)


[root@localhost ~]#chage -M 30 lisi
#设置密码有效期为30[root@localhost ~]#cat /etc/shadow|tail -1
lisi:!!:19055:0:30:7:::5字段

man 5 shadow

1.3 命令历史

Shell 环境的命令历史机制为用户提供了极大的便利,但另一方面也给用户带来了潜在 的风险。只要获得用户的命令历史文件,该用户的命令操作过程将会一览无余,如果曾经在 命令行输入明文的密码,则无意之中服务器的安全壁垒又多了一个缺口。 Bash 终端环境中,历史命令的记录条数由变量 HISTSIZE 控制,默认为 1000 条。通 过修改/etc/profile 文件中的 HISTSIZE 变量值,可以影响系统中的所有用户。例如,可以设 置最多只记录 200 条历史命令。

#可以使用以下命令临时清除历史命令
history -c 
clear




[root@localhost ~]#vim /etc/profile
.............................
export HISTSIZE=200

[root@localhost ~]#source  /etc/profile



###退出清空密码#############
[root@localhost ~]#vim .bash_logout 
#退出后清除
# ~/.bash_logout
echo " " >~/.bash_history



#一定要加空格
[root@localhost ~]#vim .bashrc     自对自己生效
#开机后清除
echo " " >~/.bash_history

bash             windows 桌面
bash


#设置超时时间
[root@localhost ~]# vi /etc/profile   对所有用户生效
.................................
export  TMOUT=60

[root@localhost ~]# source /etc/profile

1.4 切换用户

su命令即 switch user,命令可以切换用户身份,并且以指定用户的身份执行命令

格式

su [options...] [-] [user [args...]]

切换用户的方式:

su UserName:非登录式切换,即不会读取目标用户的配置文件,不改变当前工作目录,即不完全切换

su - UserName:登录式切换,会读取目标用户的配置文件,切换至自已的家目录,即完全切换

说明:root su至其他用户无须密码;非root用户切换时需要密码

注意:su 切换新用户后,使用 exit 退回至旧的用户身份,而不要再用 su 切换至旧用户,否则会生成很多的bash子进程,环境可能会混乱。

su 与 su-

即有 - 选项,切换用户身份更彻底;反之,只切换了一部分,这会导致某些命令运行出现问题或错误(例如无法使用 service 命令)。

示例:

[zhangsan@localhost ~]$ pwd
/home/zhangsan
[zhangsan@localhost ~]$ su 
密码:
[root@localhost zhangsan]# pwd
/home/zhangsan
[zhangsan@localhost ~]$ su -
密码:
上一次登录:二 713 10:24:14 CST 2021pts/1[root@localhost ~]# pwd
/root

限制使用su命令的用户

[root@localhost ~]# gpasswd -a lisi wheel
#将用户加入 wheel组 root

[root@localhost ~]#vim /etc/pam.d/su
#开启服务
#auth           required        pam_wheel.so use_uid

vim /etc/pam.d/su
2 # auth sufficient pam_ rootok.so
6 #auth required pam_ wheel.so use_ _uid

a)以上两行是默认状态(即开启第一行,注释第二行),这种状态下是允许所有用户间使用su命令进行切换的。
b)两行都注释也是允许所有用户都能使用su命令,但root'下使用su切换到其他普通用户需要输入密码;如果第一行不注释,则root使用su切换普通用户就不需要输入密码(pam rootok. so模块的主要作用是使uid为0的用户,即root用户能够直接通过认证而不用输入密码。)
c)如果只开启第二行,表示只有root用户和wheel组内的用户才可以使用su命令
d)如果注释第一行,开启第二行,表示只有whee1组内的用户才能使用su命令,root用户也被禁用su命令。

1.5 sudo

1.5.1 sudo的组成

包:sudo

配置文件:/etc/sudo.conf

执行授权命令:/usr/bin/sudo

时间戳文件:/var/db/sudo

日志文件:/var/log/secure

授权规则配置文件:

/etc/sudoers
#修改文件
10
20


/etc/sudoers.d/*.conf  子配置 

zhangsan

例子:修改权限

[root@localhost ~]#vim /etc/sudoers
[root@localhost ~]#visudo
#语法检查

visudo -c
#检查语法

1.5.2 sudo命令

sudo命令
ls -l /usr/bin/sudo
sudo -i -u wang 切换身份功能和 su 相似,但不一样,sudo必须提前授权,而且要输入自已的密码
sudo [-u user] COMMAND 
-V 显示版本信息等配置信息
-u user 默认为root
-l,ll 列出用户在主机上可用的和被禁止的命令
-v 再延长密码有效期限5分钟,更新时间戳
-k 清除时间戳(1970-01-01),下次需要重新输密码
-K-k类似,还要删除时间戳文件
-b 在后台执行指令
-p 改变询问密码的提示符号
 示例:-p "password on %h for user %p: "
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值