Linux 系统和安全


1.前言

  作为一个开放源代码的操作系统,grep "/sbin/nologin" /etc/passwd usermod -s /sbin/nologin testuser

2.2 锁定长期不使用的账号

usermod -L testuser(-U 解锁) passwd -l testuser(-u 解锁) 

2.3 删除无用账号

userdel testuser 

2.4 锁定账号文件 passwd、shadow

chattr +i /etc/passwd /etc/shadow	#锁定文件 chattr -i /etc/passwd /etc/shadow	#解锁文件 lsattr ...	#查看文件属性 

示例:

[root@c7-1 ~]#touch test [root@c7-1 ~]#lsattr test  ---------------- test [root@c7-1 ~]#chattr +i test  [root@c7-1 ~]#echo "123456" >> test  -bash: test: 权限不够 [root@c7-1 ~]#lsattr test  ----i----------- test [root@c7-1 ~]#chattr -i test  [root@c7-1 ~]#echo "123456" >> test  [root@c7-1 ~]#cat test  123456 [root@c7-1 ~]#lsattr test  ---------------- test 

2.5 设置密码有效期

#新建用户遵循此规则,密码有效期为 30 天或 90 天 vim /etc/login.defs 修改 PASS_MAX_DAYS 30/90	  #修改已存在的用户密码有效天数,chage -l user 查看 chage -M 30/90 testuser  #强制用户下次登录时修改密码 chage -d 0 testuser 

2.6 历史命令设置

#永久减少记录的命令条数 vim /etc/profile	#第46行(末行输入 :46| 跳转) HISTSIZE=10	或者	export HISTSIZE=10  source /etc/profile	#使配置文件永久生效  #登录时自动清空命令历史 vim ~/.bash_logout history -c 			#该命令临时清除历史命令  #手动清除存放历史命令的配置文件 echo > ~/.bash_history  #重启永久清除历史命令 vim ~/.bashrc echo > ~/.bash_history 

2.7 设置终端自动注销

vim ~/.bash_profile export TMOUT=600	#设置无操作 600 秒后终端自动注销 

2.8 su 命令管理

su(switch user)命令将有效用户 id 和组 id 更改为 user 的 id。单个 - 视为 -l。如果未指定 user,将默认为 root。
格式:

su [选项] [-] [USER [参数]...] 
参数 含义
-m / -p 不重置环境变量
-g 指定主组
-G 指定一个辅助组
- / -l 使 shell 成为登录 shell
-c 使用 -c 向 shell 传递一条命令
-f 向 shell 传递 -f 选项(csh 或 tcsh)
-s 若 /etc/shells 允许,则运行 shell

示例:

[root@c7-1 ~]#su - syhj 上一次登录:日 822 13:07:23 CST 2021pts/1 上 [syhj@c7-1 ~]$exit 登出 [root@c7-1 ~]#su syhj [syhj@c7-1 /root]$exit exit [root@c7-1 ~]#su - syhj 上一次登录:日 822 16:27:30 CST 2021pts/2 上 [syhj@c7-1 ~]$su -c ls root 密码: test3  test4 [syhj@c7-1 ~]$whoami syhj [syhj@c7-1 ~]$pwd /home/syhj # su 切换用户更换了用户身份,但是 shell 仍然是当前用户 shell;su - 不仅更换用户也更换 shell 

(1) 限制使用 su 命令的用户

#将允许使用 su 命令的用户加入 wheel 组 #启用 pam_wheel 认证模块 gpasswd -a user1 wheel	#将 user1 用户加入 wheel 组里 grep "wheel" /etc/group gpasswd -d user1 wheel	#从 wheel 组中删除 user1 用户  vim /etc/pam.d/su auth            sufficient      pam_rootok.so auth	   		required        pam_wheel.so  use_uid		#去掉注释开启此模块 #启用 pam wheel 认证以后,未加入到 wheel 组内的其他用户将无法使用 su 命令,尝试进行切换时将提示"拒绝权限",从而将切换用户的权限控制在最小范围内。 #如果注释第一行,开启第二行,表示只有 wheel 组内的用户才能使用 su 命令,root 用户也被禁用 su 命令。  tail -f /var/log/secure	#查看安全日志文件 

(2) PAM 安全认证

#通过 pam 模块防止暴力破解 ssh vim /etc/pam.d/sshd #在第一行下面添加 auth	required		pam_tally2.so	deny=3	unlock_time=600	even_deny_root	root_unlock_time=1200 #说明:尝试登陆失败超过 3 次,普通用户 600 秒解锁,root 用户 1200 秒解锁  #sudo机制提升权限 vim /etc/sudoers ...... %wheel  ALL=(ALL)       ALL		# % 代表用户组的意思,ALL 代表所有主机名,这个配置表示 wheel 组成员有和 root 用户一样的最高权限 ......  #示例 useradd zhangsan echo "123456" | passwd --stdin zhangsan su - zhangsan useradd lisi	#创建失败,权限不足 exit  vim /etc/sudoers zhangsan kgc=(root) /usr/sbin/useradd,/usr/sbin/ifconfig	 #张三用户获得了 useradd 命令的使用权限,sudo useradd lisi 成功 #张三用户获得 ifconfig 命令权限,sudo ifconfig ens33:0 192.168.10.50/24 Host_Alias MYHOSTS = kgc,localhost User_Alias MYUSERS = lisi,wangwu	#也可以加组 Cmnd_Alias MYCMNDS= /usr/sbin/useradd,/usr/sbin/usermod,/usr/bin/rm,/usr/bin/passwd,!/sbin/init,!/sbin/reboot,!/usr/sbin/poweroff MYUSERS MYHOSTS=MYCMNDS		#调用别名  su - lisi sudo useradd wangliu		#可以添加用户,输入密码  vim /etc/sudoers MYUSERS MYHOSTS=NOPASSWD:MYCMNDS #配置此模块后再创建用户不需要输入密码  sudo reboot/init/poweroff	#没有权限  #定义使用 rm 命令需要输入密码 Cmnd_Alias MYCMNDS = PASSWD:/usr/sbin/rm  #启用 sudo 操作日志 visudo Defaults logfile = "/var/log/sudo"	  tail -f /var/log/sudo 

3.系统引导与登录控制

3.1 开关机安全控制

(1) 调整 BIOS 引导设置

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

(2) GRUB限制(以 centos7 为例)

grub2-mkpasswd-pbkdf2	#生成加密算法口令,从 grub.pbkdf2.sha512 开始 cd /boot/grub2/ && cp grub.cfg grub.cfg.bak && cp /etc/grub.d/00_header /etc/grub.d/00_header.bak #备份原 grub.cfg 和 00_header 配置文件  vim /etc/grub.d/00_header #在最后添加如下内容,shift + G 可以跳转到文档末尾 cat << EOF set superusers="root" password pbkdf2 root grub.pbkd2.sha512...........		#上面生成的一长串加密算法口令 EOF #保存退出  grub2-mkconfig -o /boot/grub2/grub.cfg	#生成新的 grub.cfg 配置文件 init 6	#重启虚拟机 在 VMware 虚拟机界面按 e 进入编辑,需要输入用户和密码(root <自己设的密码>) 进入内核文件菜单 

3.2 终端登录安全控制

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

vim /etc/securetty ...... tty1		#图形界面 tty2-tty6	#字符界面 禁止从哪个终端登录就将其注释掉 #tty* 

(2) 禁止普通用户登录

touch /etc/nologin		#建立该文件后普通用户不可登录系统 rm -rf /etc/nologin		#删除文件即可恢复正常 

4.弱口令检测

通过 JR 软件(John the Ripper)检测口令强度

版权声明:玥玥 发表于 2021-08-23 8:42:04。
转载请注明:Linux 系统和安全 | 女黑客导航