账号安全基本措施


账号安全基本措施

系统账号清理

将非登录用户的Shell设为/sbin/nologin
usermod -s lsbin/nologin 用户名

锁定长期不使用的账号

usermod -l 用户名
passwd -L 用户名
passwd -S 用户名

删除无用的账号
userdel [-r]用户名

锁定账号文件 passwd, shadow

chattr +i /etc/passwd /etc/shadow

lsattr /etc/passwd /etc/shadow

chattr -i /etc/passwd /etc/shadow

锁定账户文件 演示如下

在这里插入图片描述

将passwd 和shadow 文件锁掉之后,删除用户,和修改密码 的行为是进行不了的


账号安全的基本措施

对于已经存在的账户设置密码有效期

chage -M 天数 账户名称

在这里插入图片描述

如何去设置新创建账户的密码有效期

vim /etc/login.defs

在这里插入图片描述


如何设置强制在下次登陆时更改密码

chang -d 0 账户名 			##这条命令的 0 ,设置完成后shadow 文件中的第三个字段																被修改为0

在这里插入图片描述


历史命令设置

vim /etc/profile

在这里插入图片描述

为什么要在HISTSIZE前加一个 export呢? 是因为加了export之后 无论怎么切换环境,配置都能生效

设置完成后保存退出,还需要一个命令,需要刷新下这个文件里的配置

source /etc/profile
或
. /etc/profile

在这里插入图片描述

每次登录 都清空 历史命令

vim .bashrc

在这里插入图片描述

init 6 重启一下

在这里插入图片描述


如何设置自动注销/休眠时间

vim /etc/profile

在这里插入图片描述


限制使用su命令的用户

将允许使用su命令的用户加入wheel组

启用pan_wheel认证模块

现在有个需求,系统中有三个账户 超级用户root,普通用户zhangsan,niubi,我需要只有zhangsan能够切换root账户,niubi不能切换,操作如下

vim /etc/pam.d/su					##进入到这个文件中

在这里插入图片描述

其中
2    auth sufficient parm_rootok.so
...............
6   #auth required pam_wheel.so use_uid
........

以上两行是默认状态(即开启第一行,注释第二行),这种状态下是允许所有用户间使用su命令进行切换的。

两行都注释也是运行所有用户都能使用su命令,但root下使用su切换到其他普通用户需要输入密码;如果第一行不注释,则root使用su切换普通用户就不需要输入密码pimrootok.so模块的主要作用是使uid为0的用户,即 root用户能够直接通过认证而不用输入密码。

如果开启第二行,表示只有root用户和wheel组内的用户才可以使用su命令。

如果注释第一行,开启第二行,表示只有wheel组内的用户才能使用su命令,root用户也被禁用su命令。


然后将zhangsan 加入到wheel组中

gpasswd -a zhangsan wheel

进行验证

在这里插入图片描述


查看su的操作记录

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

在这里插入图片描述


Linux的PAM安全认证

首先我们需要指定su命令的安全隐患:

默认情况下,任何用户都允许使用su命令,有机会反复尝试其他用户(如root)的登录密码,带来安全风险

为了加强su命令的使用控制,可借助于PAM认证模块,只允许极个别用户使用su命令进行切换

那什么又是PAM认证模块呢?

PAM,全称是(Pluggable Authentication Modules) 可插拔式认证模块
是一种高效而且灵活便利的用户级别的认证方式,也是当前Linux服务器普遍使用的认证方式

PAM认证原理

一般遵循的顺序

在这里插入图片描述

首先要确认哪一项服务,然后加载相应的PAM的配置文件(位于/etc/pam.d),最后调用认证文件(位于/lib64/security)进行安全认证

用户访问服务器时,服务器的某一个服务程序把用户的请求发送到PAM模块进行认证

不同的应用程序所对应的PAM模块是不同的

如果你要查看某个服务或程序支不支持PAM认证,可以到 /etc/pam.d/文件中查看

在这里插入图片描述

认证文件是在 /lib64/security/中

在这里插入图片描述

PAM的配置文件

第一列代表PAM认证模块类型
auth:对用户身份进行识别,如提示输入密码,判断是否为root。
account:对账号各项属性进行检查,如是否允许登录系统,帐号是否已经过期,是否达到最大用户数等。
password:使用用户信息来更新数据,如修改用户密码。
session:定义登录前以及退出后所要进行的会话操作管理,如登录连接信息,用户数据的打开和关闭,挂载文件系统。

第二列代表PAM控制标记
required:表示需要返回一个成功值,如果返回失败,不会立刻将失败结果返回,而是继续进行同类型的下一验证,所有此类型的模块都执行完成后,再返回失败。
requisite: 与required类似,但如果此模块返回失败,则立刻返回失败并表示此类型失败。
sufficient:如果此模块返回成功,则直接向程序返回成功,表示此类成功,如果失败,也不影响这类型的返回值。
optional:不进行成功与否的返回,一般不用于验证,只是显示信息(通常用于 session类型〉。
include:表示在验证过程中调用其他的PA配置文件。
比如很多应用通过完整调用/etc/pam.d/systam-auth(主要负责用户登录系统的认证工作)来实现认证而不需要重新逐一去写配置项。

第三列代表PAM模块,默认是在/lib64/security/目录下,如果不在此默认路径下,要填写绝对路径。
同一个模块,可以出现在不同的模块类型中,它在不同的类型中所执行的操作都不相同,这是由于每个模块针对不同的模块类型编制了不司的执行函数。

第四列代表PAM模块的参数,这个需要根据所使用的模块来添加。传递给模块的参数。参数可以有多个,之间用空格分隔开


PAM安全认证流程

在这里插入图片描述

控制类型也称做Control Flags,用于PAM验证类型的返回结果
1 required验证失败时仍然继续,但返回Fail
2 requisite验证失败则立即结束整个验证过程,返回Fail
3 sufficient验证成功则立即返回,不再继续,否则忽略结果并继续
4 optional不用于验证,只显示信息
(通常用于session类型)


使用sudo机制提升权限

sudo 命令是以其他用户身份,执行授权的命令

格式:

sudo 授权命令

如何去使用sudo机制提升权限呢?有两种方法

第一种使用visudo或 vim /etc/sudoers

记录格式

用户	主机名=命令程序列表

现在我需要将普通用户lisi进行提权,来修改网卡配置文件,如何操作

先进vim /etc/sudoers中 修改配置文件

在这里插入图片描述

接下来验证

在这里插入图片描述


如果我现在让lisi除了reboot ,poweroff,shutdown命令,其余在sbin目录中的命令都能使用,如何操作

老样子,先进vim /etc/sudoers

在这里插入图片描述

强制保存并退出

接下来验证

在这里插入图片描述


调用别名 批量设置

别名格式如下

user_Alias USERS=Tom , Jerry,Mike
Host_Alias HOSTS=localhost, bogon
cmnd_Alias CMNDS=/sbin/ifconfig,/usr/sbin/useradd,/usr/sbin/userdel
USERS HOSTS=CMNDS

进vim /etc/sudoers

在这里插入图片描述

如何不需要密码就能进行操作呢?

在这里插入图片描述


启用sudo操作日志

进vim /etc/sudoers

在这里插入图片描述

然后返回root账户,进vim /var/log/sudo中进行查看

![在这里插入图片描述](https://img-blog.csdnimg.cn/e97039edf434499583fc3716b4b6cdd8.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA55av54uC55qE5pav5Zu-5Y2h,size_20,## 标题color_FFFFFF,t_70,g_se,x_16#pic_center)


终端登陆安全控制

限制root只在安全终端登录

vim /etc/securetty

在这里插入图片描述

我们Ctrl+Alt+F6切换终端进行登陆,看看能不能登陆进去

在这里插入图片描述

切换终端,显示可以登陆

在这里插入图片描述


禁止普通用户登陆

touch /etc/nologin

为什么说创建这个文件 普通用户 就无法登录了呢? 是因为login程序会检查/etc/nologin文件是否存在,如果存在,则拒绝普通用户登录系统(root用户不受限制)。

如果说取消登陆限制,那就直接删除这个文件就是
rm -rf /etc/nologin				##取消登陆限制

显示无法登入了

在这里插入图片描述


密码破解工具(Joth the Ripper)

简称为JR

是—款密码分析工具,支持字典式的暴力破解

通过对shadow文件的口令分析,可以检测密码强度

在这里插入图片描述

网站链接如下。感兴趣的小伙伴可以深入了解

https://www.openwall.com/john/

安装和使用教程如下

首先 我们 进入到opt目录中,将网上下载好的tar包 拖入虚拟机当中,并进行解压缩

在这里插入图片描述

解压完毕之后 需要下载一个编译安装make工具

在这里插入图片描述

下载完成之后,ls看一下,cd到src目录中,并make clean

make clean
 清除上次的make命令所产生的object文件(后缀为“.o”的文件)及可执行文件

在这里插入图片描述

完成后 cd 到 run/目录中

在这里插入图片描述

这里需要说一下 password.lst 这个文件 这个文件包含了很多简易的密码,就是一个密码字典文件 我们可以去里面看一下

在这里插入图片描述

将存有账户密码的文件 /etc/shadow 复制到当前目录中。然后用john进行破解

在这里插入图片描述

如何让清空已破解的账户列表,以便重新分析

>john.pot

现在对于这个字典 我不满足,我需要一个更强大的字典,如何去指定第三方的字典呢

./john --wordlist=./新的字典 /opt/shadow.txt				

网络端口扫描

NMAP

NMAP是一款强大的网络扫描,安全检测工具

官方网站如下:

http://nmap.org/

命令格式如下

nmap [扫描类型] [选项] <扫描目标...>

常见的扫描类型有

-sS, -sT, -sF, -sU, -sP,-P0

nmap命令常用选项和扫描类型

在这里插入图片描述

介绍两个查看TCP UDP网络状态信息的命令

netstat -natp      		##查看TCP

netstat -naup			##查看UDP

natstat命令常用选项:
-a:显示主机中所有活动的网络连接信息(包括监听、非监听状态的服务端口)。
-n:以数字的形式显示相关的主机地址、端口等信息。
-t:查看TCP相关的信息。
-u:显示UDP协议相关的信息。
-p:显示与网络连接相关联的进程号、进程名称信息(该选项需要 root 权限)。
-r:显示路由表信息。
-l:显示处于监听状态的网络连接及端口信息。

查看httpd服务端口网络连接信息

第一种

在这里插入图片描述

第二种 ss的效率要比netstat要来的快

在这里插入图片描述

第三种 指定端口号进行查看

在这里插入图片描述


分别使用namp命令查看本机开放的TCP,UDP端口

在这里插入图片描述

检测192.168.232.0/24网段有哪些主机提供HTTP服务

在这里插入图片描述


如何快速的扫描出192.168.232.0/24网段中存活的主机

在这里插入图片描述

Guess you like

Origin blog.csdn.net/weixin_54059979/article/details/121512551