小言_互联网的博客

理论+实验: Linux-系统安全及应用 ( 实验全是图片步骤,非常详细,适合新手! )

526人阅读  评论(0)

目录

一、账号安全控制

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主机是否开启文件共享


转载:https://blog.csdn.net/weixin_44733021/article/details/107495478
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场