CentOS7 系统安全及应用

一、账户安全基本措施

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 命令

在这里插入图片描述
可以使用通配符 * 和 取反符号 !

[root@localhost ~]# vim /etc/sudoers
wangwu localhost=/usr/sbin/*,!/usr/sbin/useradd,/usr/bin/cat /etc/shadow
  • 可以使用 /usr/sbin 下所有命令,但不能创建用户。
  • 可以查看 /etcshadow 文件内容。

3)查看 Sudo 操作记录

  • 需启用 Defaults logfile 配置(默认日志文件:/var/log/sudo

启用日志配置以后,Sudo 操作过程才会被记录

在第二行添加:
Defaults logfile = "/var/log/sudo"
[root@localhost ~]# su - wangwu
[wangwu@localhost ~]$ sudo /usr/sbin/ss -anpt | grep 22
[wangwu@localhost ~]$ sudo /usr/sbin/useradd Coco
[wangwu@localhost ~]$ sudo /usr/bin/cat /etc/shadow

在这里插入图片描述

[root@localhost ~]# tail /var/log/sudo  					# 查看日志

在这里插入图片描述

三、系统引导和登录控制

  • 服务器一般用远程登录的方式进行管理,而本地引导和终端登录过程被忽视,会留下安全隐患;
  • 因此需要加强对其他用户的非授权介入的安全管理。

1.开关机安全控制

1)设置 BIOS 密码

  • 防止 U 盘破解 root 密码,从网络启动等;重启虚拟机一直按 F2,进入如下:

在这里插入图片描述
在这里插入图片描述
2)禁用重启热键 Ctrl+Alt+Del

  • 避免因用户误操作导致重启。

在不影响此文件的前提下禁用此热键(注销此服务)

[root@localhost ~]# systemctl mask ctrl-alt-del.target
Created symlink from /etc/systemd/system/ctrl-alt-del.target to /dev/null.

重新加载 systemd 配置:

[root@localhost ~]# systemctl daemon-reload

3)设置 GRUB 引导密码

  • 使用 grub2-mkpasswd-pbkdf2 生成密钥;pbkdf 算法加密更安全。在 /etc/grub.d/00_header 配置文件中,添加用户密码。
  • 注意:实验中每个人生成的密码不一样。
[root@localhost ~]# grub2-mkpasswd-pbkdf2   			# 生成密钥
输入口令:             									# 设置密码
Reenter password:     									# 再次输入密码

在这里插入图片描述
修改 /etc/grub.d/00_header 文件中,添加密码记录

[root@localhost ~]# cp /boot/grub2/grub.cfg /boot/grub2/grub.cfg.bak
[root@localhost ~]# cp /etc/grub.d/00_header /etc/grub.d/00_header.bak
[root@localhost ~]# vim /etc/grub.d/00_header
在末尾添加:
cat << EOF
set superusers="root"
password_pbkdf2 root
PBKDF2 hash of your password is
grub.pbkdf2.sha512.10000.922DA3FC35888D451ED9B45347F3E2C3F413BD1B41116622655D4B701DE26F5000D7FC7B9C26E4837BC58F16745FAF1E4A349AC39FE68D7AE52FC007732CCEDD.2E6B1CE241AD55D48639FD4EC0B2CA5ACB5620A530C0983B653F8CE8FF54DBBE071E152A2A98E0B567A6AF00B1C340B87C150752A25C80B685C2CED89911D20E
EOF

在这里插入图片描述
生成新的 grub.cfg 配置文件

[root@localhost ~]# grub2-mkconfig -o /boot/grub2/grub.cfg

在这里插入图片描述
验证:重启进入 grub 菜单,按 E 键将无法修改引导参数
在这里插入图片描述

2.终端登录安全控制

1)限制 root 只在安全终端登录

[root@localhost ~]# sed -i '/tty5/c#tty5' /etc/securetty
[root@localhost ~]# sed -i '/tty6/c#tty6' /etc/securetty
[root@localhost ~]# sed -n '/#/p' /etc/securetty

在这里插入图片描述
在这里插入图片描述
2)禁止普通用户登录(建议在服务器维护期间临时使用)

  • 创建 /etc/nologin 文件,login 程序会检查此文件是否存在。如果存在则拒绝普通用户登录系统(root 不受限制)`
[root@localhost ~]# touch /etc/nologin

使用普通用户在终端登录验证:
在这里插入图片描述
删除 /etc/nologin 文件或重启后即恢复正常:

[root@localhost ~]# rm -rf /etc/nologin

删除后再使用普通用户进行验证:
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

愿许浪尽天涯

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值