将非登录用户的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
进行验证
安全日志文件:/var/log/secure
首先我们需要指定su命令的安全隐患:
默认情况下,任何用户都允许使用su命令,有机会反复尝试其他用户(如root)的登录密码,带来安全风险
为了加强su命令的使用控制,可借助于PAM认证模块,只允许极个别用户使用su命令进行切换
那什么又是PAM认证模块呢?
PAM,全称是(Pluggable Authentication Modules) 可插拔式认证模块
是一种高效而且灵活便利的用户级别的认证方式,也是当前Linux服务器普遍使用的认证方式
一般遵循的顺序
首先要确认哪一项服务,然后加载相应的PAM的配置文件(位于/etc/pam.d),最后调用认证文件(位于/lib64/security)进行安全认证
用户访问服务器时,服务器的某一个服务程序把用户的请求发送到PAM模块进行认证
不同的应用程序所对应的PAM模块是不同的
如果你要查看某个服务或程序支不支持PAM认证,可以到 /etc/pam.d/文件中查看
认证文件是在 /lib64/security/中
第一列代表PAM认证模块类型
auth:对用户身份进行识别,如提示输入密码,判断是否为root。
account:对账号各项属性进行检查,如是否允许登录系统,帐号是否已经过期,是否达到最大用户数等。
password:使用用户信息来更新数据,如修改用户密码。
session:定义登录前以及退出后所要进行的会话操作管理,如登录连接信息,用户数据的打开和关闭,挂载文件系统。
第二列代表PAM控制标记
required:表示需要返回一个成功值,如果返回失败,不会立刻将失败结果返回,而是继续进行同类型的下一验证,所有此类型的模块都执行完成后,再返回失败。
requisite: 与required类似,但如果此模块返回失败,则立刻返回失败并表示此类型失败。
sufficient:如果此模块返回成功,则直接向程序返回成功,表示此类成功,如果失败,也不影响这类型的返回值。
optional:不进行成功与否的返回,一般不用于验证,只是显示信息(通常用于 session类型〉。
include:表示在验证过程中调用其他的PA配置文件。
比如很多应用通过完整调用/etc/pam.d/systam-auth(主要负责用户登录系统的认证工作)来实现认证而不需要重新逐一去写配置项。
第三列代表PAM模块,默认是在/lib64/security/目录下,如果不在此默认路径下,要填写绝对路径。
同一个模块,可以出现在不同的模块类型中,它在不同的类型中所执行的操作都不相同,这是由于每个模块针对不同的模块类型编制了不司的执行函数。
第四列代表PAM模块的参数,这个需要根据所使用的模块来添加。传递给模块的参数。参数可以有多个,之间用空格分隔开
控制类型也称做Control Flags,用于PAM验证类型的返回结果
1 required验证失败时仍然继续,但返回Fail
2 requisite验证失败则立即结束整个验证过程,返回Fail
3 sufficient验证成功则立即返回,不再继续,否则忽略结果并继续
4 optional不用于验证,只显示信息
(通常用于session类型)
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 ##取消登陆限制
显示无法登入了
简称为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网段中存活的主机