CentOS7 系统安全及应用(一)

【一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义】

**开源地址:https://docs.qq.com/doc/DSmxTbFJ1cmN1R2dB **

1.系统账户清理


1)将非登录用户的 Shell 设为 /sbin/nologin/sbin/nologin:禁止终端登录)

[root@localhost ~]# grep “/sbin/nologin$” /etc/passwd | wc -l

[root@localhost ~]# grep “/sbin/nologin$” /etc/passwd | awk -F: ‘{print $1}’ > nologin.txt

[root@localhost ~]# cat nologin.txt

在这里插入图片描述

2)锁定长期不使用的账号(例如一些用户长期不使用,但不确认是否删除)

[root@localhost ~]# useradd zhangsan

[root@localhost ~]# echo “123123” | passwd --stdin zhangsan

[root@localhost ~]# usermod -L zhangsan

[root@localhost ~]# passwd -S zhangsan

[root@localhost ~]# usermod -U zhangsan

[root@localhost ~]# passwd -S zhangsan

在这里插入图片描述

3)锁定账号文件 /etc/passwd /etc/shadow

  • 例如:服务器账户已固定,不再进行更改。可锁定

[root@localhost ~]# chattr +i /etc/passwd /etc/shadow #锁定

[root@localhost ~]# lsattr /etc/passwd /etc/shadow #查看文件状态

[root@localhost ~]# useradd wangwu #创建用户测试

[root@localhost ~]# chattr -i /etc/passwd /etc/shadow #解锁

[root@localhost ~]# useradd wanguw #再次创建用户测试

[root@localhost ~]# echo “123123” | passwd --stdin wangwu

在这里插入图片描述

2.密码安全控制


1)设置密码有效期(默认天数为 99999)

  • 适用于新建用户,密码有效期 30 天:

[root@localhost ~]# vim /etc/login.defs

找到:

PASS_MAX_DAYS 99999

改为:

PASS_MAX_DAYS 30

  • 适用于已有用户:

[root@localhost ~]# chage -M 30 zhangsan

2)强制在下次登录时更改密码

[root@localhost ~]# chage -d 0 zhangsan

重新打开一个终端使用 zhangsan 用户登录

在这里插入图片描述

3.命令历史限制


1)减少记录的命令条数(默认条数是 1000 条)

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

找到:

HISTSIZE=1000

改为:

HISTSIZE=5

[root@localhost ~]# source /etc/profile #执行脚本

[root@localhost ~]# history #查看历史记录

在这里插入图片描述

2)终端自动注销

  • 在 Bash 终端环境中可以设置一个限制超时时间,当超过指定时间没有任何操作自动注销终端。

[root@localhost ~]# echo “export TMOUT=30” >> ~/.bash_profile #终端30秒不做任何操作将自动注销

[root@localhost ~]# source ~/.bash_profile #使其生效

[root@localhost ~]# 等待输入超时:自动登出

在这里插入图片描述

  • 验证完后,将终端自动注销时间改为 600 秒。

二、用户切换及提权

============================================================================

1.使用 Su 命令切换用户


1)用途及用法

  • 用途:Substitute User,切换用户。

格式:su - 目标用户 # 带 - 选项表示将使用目标用户的登录 Shell 环境

2)密码验证

  • root --> 任意用户, 不验证密码。

  • 普通用户 --> 其他用户,验证目标用户的密码。

在这里插入图片描述

[root@localhost ~]# whoami # 查看当前登录用户名

3)限制使用 Su 命令的用户

  • 默认都可以使用 Su 命令,防止密码穷举危险,只允许少量用户使用。

启用 pam_wheel 认证模块:

[root@localhost ~]# vim /etc/pam.d/su

#%PAM-1.0

auth sufficient pam_rootok.so # 默认就有

auth required pam_wheel.so use_uid # 将前面 # 去掉

[root@localhost ~]# grep wheel /etc/group

[root@localhost ~]# su - zhangsan

[zhangsan@localhost ~]$ su -

[zhangsan@localhost ~]$ exit

不能切换到 root 用户,需要将用户 tom 加入到 wheel 组中:

[root@localhost ~]# gpasswd -a ajbn wheel

[root@localhost ~]# su - ajbn

[zhangsan@localhost ~]$ su -

在这里插入图片描述

4)查看 Su 操作记录

  • 安全日志文件:/var/log/secure

[root@localhost ~]# tail /var/log/secure

在这里插入图片描述

5)Su 命令的缺点

  • 知道 root 密码的用户越少越安全。

2.使用 Sudo 机制提升权限


  • sudo:普通用户拥有一部分管理权限,又不需要知道 root 密码。

1)Sudo 命令的用途及用法

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

格式:sudo 执行的授权命令

2)配置 Sudo 授权 /etc/sudoers

  • 因为该文件的默认权限为 440,所以在编辑(visudovi /etc/sudoers )完后需在输入模式中使用 w! 保存。

记录格式:用户 主机名=命令程序列表

  • 用户:用户名或 %组名(组内所有用户)

  • 主机名:一般为 localhost 或实际主机名。

  • 命令列表:命令的绝对路径,多命令用 , 号分割。

分别使用 zhangsan 用户和 wangwu 用户进行测试:

[root@localhost ~]# su - wangwu

[wangwu@localhost ~]$ sudo /bin/df -hT | grep ‘/$’

[wangwu@localhost ~]$ exit

[root@localhost ~]# su - zhangsan

[zhangsan@localhost ~]$ sudo /bin/df -hT | grep ‘/$’

在这里插入图片描述

[zhangsan@localhost ~]$ sudo -l # 查看用户对应权限

在这里插入图片描述

使 wheel 组成员不需验证密码即可执行任何命令:

[root@localhost ~]# vim /etc/sudoers

将:

%wheel ALL=(ALL) NOPASSWD: ALL

改为:

%wheel ALL=(ALL) NOPASSWD: ALL

使 wangwu 可使用 df 命令:

wamgwu localhost=/bin/df # 加上这个表示可以执行 /bin/df 命令

在这里插入图片描述

  • 17
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值