理论+实验 Linux-系统安全及应用 ( 实验全是图片步骤,照着做就行,超详细!适合新手! )

目录

一、账号安全控制

1.1 账号安全基本措施1-1

■ 系统账号清理

  • 将非登录用户的shell设为/sbin/nologin
  • 锁定长期不使用的账号
  • 删除无用的账号
  • 锁定账号文件passwd、shadow
[root@localhost ~]# chattr +i /etc/passwd /etc/shadow	
[root@localhost ~]# lsattr /etc/passwd /etc/shadow		
----i----------- /etc/passwd	
----i----------- /etc/shadow	
1.1.1 修改shell环境让账户无法登陆

1、vi /etc/passwd进入编译
在这里插入图片描述
2、把想锁定的账户后面改成/sbin/nologin,wq保存退出
在这里插入图片描述
3、这样就不能登录了
在这里插入图片描述

1.1.2 两种账户锁定和解锁方法

1、passwd -l tang 锁定tang用户
2、passwd -u tang 解锁tang用户
在这里插入图片描述
1、usermod -L tang 锁定tang用户
2、usermod -U tang 解锁tang用户
usermod命令锁定和解锁用户的的时候没有交互信息(就是不会有提示)
在这里插入图片描述

1.1.3 删除账户

1、删除tang1账户
在这里插入图片描述

1.1.4 锁定文件

1、用chattr +i 命令锁定/etc/passwd 和 /etc/shadow文件
在这里插入图片描述
2、进入文件验证一下
在这里插入图片描述
3、随便输入一下,wq保存一下发现无法保存,只能读不能写
在这里插入图片描述

1.1.5 解锁文件

1、用chattr -i 命令解锁/etc/passwd 和 /etc/shadow文件
在这里插入图片描述
2、随便输入,发现可以保存退出了
在这里插入图片描述

1.2 账号安全基本措施1-2

■ 密码安全控制

  • 设置密码有效期
  • 要求用户下次登陆时修改密码
[root@localhost ~]# vim /etc/login.defs  ###适用于新建用户
......
PASS_MAX_DAYS   30	###适用于已有用户

[root@localhost ~]#chage -d 0zhangsan  ###强制在下次登录时更改密码
1.2.1 设置新建用户密码有效期实验:(适用于新建用户)

1、进入vi编辑
在这里插入图片描述
2、找到PASS_MAX_DAYS 99999改成30 就是30天
在这里插入图片描述
3、新建一个账号zk1
在这里插入图片描述
4、进入shadow里看一下
在这里插入图片描述
5、zk1账户密码有效期变成了30天
在这里插入图片描述

1.2.2 设置用户密码有效期实验:(适用于已有账户)

1、把zk1账户密码有效期设置成40天
在这里插入图片描述
2、进shadow查看一下
在这里插入图片描述
3、zk1账户变成了40天
在这里插入图片描述

1.2.3 设置账户下次登录强制更改密码实验

1、把zk1账户设置成下次登录强制更改密码
在这里插入图片描述

1.2 账号安全基本措施1-3

■ 命令历史限制

  • 减少记录的命令条数
  • 注销时自动清空命令历史
    ■ 终端自动注销
  • 闲置600s后自动注销
[root@localhost lisi]# vim /etc/profile	'进入/etc/profile'
HISTSIZE=200

[root@localhost /]# vim ~/.bash_logout	
history -c	
clear
[root@localhost /]# vim ~/.bash_profile	
.......
export TMOUT=600
1.3.1 编辑全局更改命令记录限制

1、编辑全局变量文件
在这里插入图片描述
2、查询 一下HISTSIZE 在哪里,然后把后面的数值改成100,这样就只记录100条
在这里插入图片描述
3、刷新一下文件,让生效
在这里插入图片描述
4、查看一下记录命令
在这里插入图片描述
5、一百多条,我们重启一下看看
在这里插入图片描述
6、用history命令在查看一下,就只保存一百条,多出来的不保存
在这里插入图片描述

1.3.2 使用命令直接更改命令记录限制

1、直接命令更改成命令记录限制200条,然后重启
在这里插入图片描述

1.3.3 注销时自动清空命令历史实验

1、vi编辑
在这里插入图片描述
2、输入此命令,设置成注销时自动清空历史命令,wq保存退出
在这里插入图片描述

1.3.4 终端闲置时自动注销账户实验 (600秒注销账户实验:1-1(针对全部用户))

1、编辑全局变量文件
在这里插入图片描述
2、设置600秒后注销,wq保存退出
在这里插入图片描述
3、刷新文件生效一下
在这里插入图片描述

1.3.4 终端闲置时自动注销账户实验 600秒注销账户实验:1-2(针对单个用户)

1、编辑全局变量文件
在这里插入图片描述
2、设置600秒后注销,wq保存退出
在这里插入图片描述
3、刷新文件生效一下
在这里插入图片描述

二、系统引导和登陆控制

2.1 使用su命令切换用户2-1

■ 用途及方法

  • 用途: Substitute User, 切换用户
  • 格式:su - 目标用户

■ 密码验证

  • root切换到任意用户,不用验证密码
  • 普通用户切换到其他用户,需要验证目标用户的密码
[root@localhost /]# su - root
[root@localhost ~]# whoami
root

2.2 使用su命令切换用户2-2

■ 限制使用su命令的用户

  • 将允许使用su命令的用户加入wheel组
  • 启用pam_wheel认证模块

■ 查看su操作记录

  • 安全日志文件:/var/log/secure
[root@localhost ~]# gpasswd -a root wheel
正在将用户“root”加入到“wheel”组中
2.2.1 将用户添加到组里

1、将zk1用户加到wheel组
在这里插入图片描述
2、进去看一下是否添加成功
在这里插入图片描述
3、已成功
在这里插入图片描述

2.2 使用su命令切换用户2-2

■ 限制使用su命令的用户
在这里插入图片描述

2.2.2 限制用户使用su命令

1、vi编辑
在这里插入图片描述
2、把这两条命令前面#字符去掉启动
在这里插入图片描述
3、vi编辑
在这里插入图片描述
4、然后设置成不在组能不能运行SU命令登陆
在这里插入图片描述
5、验证一下,用不在组里的su命令切换一下,发现输入正确密码也无法登陆(没有权限)
在这里插入图片描述

2.3 Linux中的PAM安全认证

■ su命令的安全隐患

  • 默认情况下,任何用户都允许使用su命令,从而恶意用户有机会反复尝试其他用户(如root)的登录密码,带来安全风险
  • 为了加强su命令的使用控制,可以借助于PAM认证模块,只允许极个别用户使用su命令进行切换
    ■ PAM(Pluggable Authentication Modules)可拔插式认证模块
  • 是一种高效而且灵活便利的用户级别的认证方式
  • 也是当前Linux服务器普遍使用的认证方式

2.4 PAM认证原理

■ 一般遵循的顺序

  • Service(服务)>PAM(配置文件)>pam_*.so

■ 首先要确定哪一项服务,然后加载相应的PAM的配置文件(位于/etc/pam.d下),最后调用认证文件(位于/lib/security下)进行安全认证
■ 用户访问服务器的时候,服务器的某一个服务程序把用户的请求发送到PAM模块进行认证
■ 不同的应用程序所对应的PAM模块也是不同的

2.5 PAM认证的构成

■ 查看某个程序是否支持PAM认证,可以用ls命令

  • 示例:查看su是否支持PAM模块认证
    ls /etc/pam.d | grep su

■ 查看su的PAM配置文件:cat /etc/pam.d/su

  • 每一行都是独立的认证过程
  • 每一行可以区分为三个字段
      • 认证类型
      • 控制类型
      • PAM模块及其参数

2.6 PAM认证流程

■ 控制类型也可以乘坐Control Flags,用于PAM验证类型的返回结果

1、required验证失败时仍然继续,但返回Fail
2、requisite验证失败则立即结束整个验证过程,返回fail(最重要的一步)
3、sufficient验证成功则立即返回,不再继续,否则忽略结果并继续
4、optional不用于验证,只显示信息(通常用session类型)
在这里插入图片描述

2.7 使用sudo机制提升权限2-3

■ su命令的缺点
■ sudo命令的用途及用法

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

2.8 使用sudo机制提升权限2-4

■ 配置sudo授权

  • visudo命令 或者 vim /etc/sudoers
  • 记录格式:用户 主机名列表 = 命令程序列表
2.8.1 给账户提权创建网卡信息

1、用root用户 进入vi /etc/sudoers添加提权用户
在这里插入图片描述
2、zk用户在zk主机下执行/sbin下所有命令,出了reboot
在这里插入图片描述
3、去zk账户里创建一个网卡,输入密码
在这里插入图片描述
4、用ifconfig命令查看一下是否创建成功了
在这里插入图片描述

2.9 使用sudo机制提升权限2-5

■ 查看sudo操作记录

  • 需启用Defaults logfile配置
  • 默认日志文件:/var/log/sudo
[root@localhost ~]# visudo
Defaults logfile ="、var/log/sudo"

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

■ 查询授权的sudo操作

  • sudo -l
    #####

2.10 开关机安全控制

■ 调整BIOS引导设置

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

■ GRUB限制

  • 使用grub2-mkpasswd-pbkdf2生成密钥
  • 修改/etc/grub.d/00_header文件中,添加密码记录
  • 生成新的grub.cfg配置文件
2.10.1 设置BIOS密码实验

1、设置BIOS密码
在这里插入图片描述
2、重启f2进入BIOS ,就需要刚刚设置的密码进入了
在这里插入图片描述

2.10.2 GRUB限制实验

1、设置grub密码
在这里插入图片描述
2、开机在这个界面按e
在这里插入图片描述
3、输入账号、密码
在这里插入图片描述
4、进入grub菜单
在这里插入图片描述

2.11 终端登录安全控制

■ 限制root只在安全终端登录

  • 安全终端配置:/etc/securetty
[root@localhost ~]# vi /etc/securetty
......
#tty5           ###禁止root用户从终端tty5登录
#tty6           ###禁止root用户从终端tty6登录

■ 禁止普通用户登录

  • 建立/etc/nologin文件
  • 删除nologin文件或重启后即恢复正常
[root@localhost ~]# touch /etc/nologin  #禁止普通用户登录

[root@localhost ~]#rm -rf /etc/nologin  #取消上述登录限制
2.11.1 限制root安全终端登录实验

1、在字符界面先用who看一下在哪个终端
在这里插入图片描述
2、进入编辑
在这里插入图片描述
3、我们把tty2终端注释掉,或者删掉
在这里插入图片描述
4、Carl+alt+f2切到tty2终端,输入账号密码看看能不能登录,显示不能登录,成功!
在这里插入图片描述

2.11.2 禁止普通用户登录实验

1、创建/etc/nologin文件(如果该文件存在,那么Linux上的所有用户(除了root以外)都无法登录)
在这里插入图片描述
2、编辑
在这里插入图片描述
3、里面输入什么普通用户登录的时候就显示什么,但登录不上
在这里插入图片描述

4、用zk1账户登录,就会登录不上,并显示刚刚输入的提示内容
在这里插入图片描述

5、删掉这个文件,我们就可以恢复账号登录
在这里插入图片描述
在这里插入图片描述

三、弱口令检测

3.1 系统弱口令检测3-1

■ Joth the Ripper,简述为JR

  • 一款密码分析工具,支持字典式的暴力破解
  • 通过对shadow文件的口令分析,可以检测密码强度
  • 官方网站:http://www,openwall.com/john/
    在这里插入图片描述

3.2 系统弱口令检测3-2

■ 安装JR工具

  • 安装方法make clean 系统类型
  • 主程序文件为john

■ 检测弱口令账号

  • 获得Linux/Unix服务器的shadow文件
  • 执行john程序,将shadow文件作为参数

■ 密码文件的暴力破解

  • 准备好密码字典文件,默认为password.lst
  • 执行john程序,结合–wordlist=字典文件
3.2.1 弱口令检测实验(弱口令自定义账号密码破解)

1、先用Xmanager Enterprise软件的xftp 把JR包上传上去
在这里插入图片描述
2、cd 进入opt看一下压缩包是否在
在这里插入图片描述
3、解压包
在这里插入图片描述
4、解压完后 ,ll 查看一下
在这里插入图片描述
5、进入解压的目录看一下
在这里插入图片描述
6、进入 src子目录 ,ls查看一下
在这里插入图片描述
7、编译一下linux-x86-64
在这里插入图片描述
8、退到上一层,进入run目录,ls查看一下,在进入/目录
在这里插入图片描述
9、复制shadow文件到root下面的shadow.txt里
在这里插入图片描述
10、进入root目录,查看一下有没有复制过去
在这里插入图片描述
11、创建一个字典,里面写入密码
在这里插入图片描述
12、破解密码
在这里插入图片描述
13、ll查看一下,破解的密码放在john.pot里面
在这里插入图片描述
14、编辑john.opt ,里面就是刚刚破解的密码
在这里插入图片描述
15、注意! 如果在破解刚刚的账号,会提示已经破解了 不能在破解
在这里插入图片描述

3.2.2 弱口令检测实验(弱口令穷举账号密码破解)

1、编辑 john.opt
在这里插入图片描述
2、直接按 100dd 键清除里面所有东西,wq保存退出
在这里插入图片描述
3、输入穷举破解,等待就好!!!
在这里插入图片描述
4、已经破解出来
在这里插入图片描述
5、用此条命令就能直接看到刚刚破解的账号密码
在这里插入图片描述

四、端口扫描

4.1 网络端口扫描4-1

■ NMAP

  • 一款强大的网络扫描、安全监测工具
  • 官方网站:http://nmap.org/
  • CentOs 7.3光盘中安装包nmap-6.40-7.el7.x86_64.rpm

4.2 网络端口扫描4-2

■ NMAP的扫描 nmap [扫描类型] [选线] <扫描目标...>
■ 常用的扫描类型

  • sS、sT、-sF、-sU、-sP、-P0

■ 示例1

  • 分别查看本机开放的TCP端口、UDP端口

■ 示例2

  • 检测192.168.4.0/24网段有哪些主机提供FTP服务

■ 示例3

  • 检测192.168.4.0/24网段有哪些存活主机
4.2.1 网络端口扫描实验

1、虚拟机要连接
在这里插入图片描述
2、挂载一下,并安装一下nmap扫描工具
在这里插入图片描述
3、查看本机开了多少端口
在这里插入图片描述
4、扫描本机开的udp端口
在这里插入图片描述
5、查看20.0.0.0/24字段的ftp服务(-p后面21是ftp端口)
在这里插入图片描述
6、查看20.0.0.0/24段的存活哪些主机(能ping通)
在这里插入图片描述
7、查看20.0.0.0-200主机是否开启文件共享
在这里插入图片描述

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_44733021/article/details/107495478