linux系统用户账户的安全维护

目录

一、账户安全的基本措施

1、系统账号清理

2、密码的限制

3、切换账户的限制

4、用户的授权

5、查看用户sudo记录

二、开关机安全控制

1、调整BIOS引导设置

2、GRUB限制

三、弱口令检测

四、端口扫描

总结


说起账号的安全,除了更改密码之类的方式之外,还有让管理员及时将不使用的账户进行“冻结”或者删除,防止有些人图谋不轨的人使用这些账号进行访问服务器再进行攻击。

一、账户安全的基本措施

1、系统账号清理

    这种管理方式是最简单的一种,就是账号利用完毕之后,直接进行删除或者限制,是最简单干脆的方式,防止在不知道的时候有人盗取账户密码进行访问。

删除账号的方式不用仔细说:userdel 加上账号的名称就可以了。如果不想保留这个用户的家目录就加上 -r选项就可以了  

userdel -r 用户名      就可以删除掉账号的同时删除该用户的家目录。

第二种是设置用户的登录环境

这个用户不能进行访问服务器,只有这个账户的存在,并不能登录服务器。

命令方式也是很简单,直接一个命令就解决。

格式: usermod -s  /sbin/nologin 用户名

这个作用就是限制这个用户,不能进行访问

 由上面两个用户的登录环境对比一下就可以清晰的看到两者环境的区别。

第三种是都比较熟悉的“冻结”账户,通俗易懂的就是这个账号被封了。

一般在账号还有一些利用价值,但是在短期之内用不到的时候会用第二种跟第三种方式,第一种直接删除账号的方式只有在保密场合或者这个账户彻底没有价值的场景才会进行删除账号。

“冻结”账号的方式不止一种。有usermod、passwd两种方式进行设置

命令格式都是差不多一致,只是要区分开后面参数的大小写。

格式: usermod -L 用户名          这样就可以直接冻结目标用户的密码

解开账户密码的话直接使用参数 -U就可以解锁账户。

格式: usermod -U 用户名         解锁被冻结的用户密码

 上面就是其中一种冻结解锁用户密码的方式。第二个差不多,就不详细说了

passwd -l 用户名    冻结用户密码

passwd -u 用户名   解锁用户密码

使用  passwd -S 用户名,可以看到这个用户的密码的状态。

第四种方式就是比较宽松点的,限制用户的创建或者改密等方式。

是一种限制创建用户的方式,用来固定用户数量,不让私自创建用户。

原理就是禁止用户更改etc下的passwd跟shadow两个文件来达到不可以新建用户跟现在已存在用户改密码等行为。

格式:chattr +i /etc/passwd   

 这是这个文件还没限制的时候。

 对这个文件进行限制之后,就可以发现就算是管理员账户,也不能进行创建用户

 解开的方式也是一样,把“+”变成“-”就可以了。

禁止更改密码的方式除了路径,完全一致,就不详述

chattr +i /etc/shadown     禁止用户更改密码,把“+”变成“-”就是解开

2、密码的限制

密码的使用周期太长,也有可能会被别人试探出来,所以需要定期的更换用户的密码。

大部分人都会忘记自己的密码使用了多久,所以就需要设置一下单次密码的有效期之类的,来强制用户来更改。就需要用到这些命令,也是非常简单的格式。

chage -M 10 用户名

原本用户的密码有效期是9天,现在更改为有效期是15天,也就是每15天就必须更改一次密码。

还有一种特殊的情况,例如管理员检测到你的账户异常登录或者距离上次有点久了,就强制要求下次登录必须强制更换密码。

chage -d 0 用户名   强制用户下次登录更换密码。

这两种都是针对现在已存在用户的方式,另一种就是针对创建新用户的时候用的,更改配置的方式。

文件位置就在etc目录下的login.defs文件内

 找到这一行,直接修改数字就可以,保存退出,之后创建的用户,默认就是每*天更改一次密码。*是你设置的天数。

3、切换账户的限制

在默认情况下,任何用户都可以使用 su 命令互相切换用户,在图谋不轨的人手里,可以借此来尝试别的用户的密码,进行暴力破解root等具有权限的账户的密码,非常不安全,所以需要限制大部分用户的权限,以此来达到将用户的账户限制在本身的范围,防止暴力登录别的账号。

限制的方式介绍一种相对简单的方式,进入etc下pam.d文件夹下的su文件中

 进入文件之后,将划标记的一行开启之后保存退出就可以了。

再然后将需要使用su功能的用户添加进wheel组内就可以了。

 将目标添加进组内之后,该成员可以正常使用su命令。

 切换到lisi用户之后,还照常可以使用su切换到别的用户。

 不在wheel组内的话,是使用不了su功能的。

 在位于/var/log/secure文件中,存放着使用su命令的记录,可以查看所有用户使用su的记录。

方便管理人员查看,有没有异常的su使用记录,来及时的做对应措施。

4、用户的授权

管理员可以修改配置文件,给别的用户授予权限,可以让其通过管理员的方式使用这些命令跟文件。

方法也很简单,就是被授权的用户在命令之前使用sudo命令就可以了。

但是前提是需要管理员事先进行修改配置文件,文件位于/etc/sudoers文件内,直接进去修改

 进入文件之后,直接到尾部添加需要的账户就可以了

第一列是用户名

第二列是主机名

就是这个,一般主机名都是localhost

然后主机名=需要添加的权限的绝对路径,这样就可以赋予该用户这个权限

例如 : lhk localhost=/sbin/ifconfig   这条命令,将ifconfig的权限赋予用户lhk

或者就是直接设置 : %wheel   ALL=NOPASSWD:ALL    直接赋予wheel组内成员所有的权限。

 上图就是用户lhk通过sudo使用ifconfig命令来创建一个虚拟IP。

 而没有加入wheel组或者没有添加权限的成员是不能使用sudo命令的,而且该记录会被报告上去。

 

 可以使用sudo -l命令查看当前用户可以使用那些权限。

sudo命令是su的扩展版本,可以赋予对应的用户相对应的权限。也是进一步管理系统账号的方式。

如果嫌一个一个设置,设置大量用户的时候,需要一遍一遍的设置重复的命令就可以对一种重复性很高的命令进行定义别名,使用这个权限或者别的功能的时候,直接调用别名就可以了。

还是在同一个文件内修改配置即可

 直接添加别名就可以,下面我将别名更改了一下,没有使用图上面的别名

Host_Alias HOST = localhost

这条命令的作用就是给主机名重新定义。只需要注意一下主机名需要大写

User_Alias USER = a,b,c

这条命令是给一组用户定义别名,用户可以是多个,中间用逗号隔开,别名也一定需要是大写

Cmnd_Alias CMND = /sbin/useradd

这条命令是将一组要赋予的命令给定义成这个别名,直接调用这个别名可以直接调用后面命令的代码。

USER  HOST = NOPASSWD: CMND

NOPASSWD: 的作用是使用sudo的时候不需要再次打密码。

时候西药添加新用户的时候,直接在  USER  别名后面添加新的用户就可以了。别的别名也是一样的方式。或者就是建立新的别名调用,看自己喜欢的方式来用,都可以,看自己习惯来。

5、查看用户sudo记录

查看其他用户的sudo使用记录是需要先开启功能,之后才能进行记载使用的记录。

开启功能的地方还在同一文件夹下进行操控。

 在末行位置添加这条命令,然后进行保存,就可以了

之后再去别的用户账号,使用sudo命令

之后系统会自行在 /var/log下面创建一个sudo文件,使用sudo的所有记录都在这里面。

需要注意的一点就是,在创建之后,如果没有使用sudo的记录,是不会生成这个文件的。

而且这个保存路径是可以进行修改的,但是一般默认是使用这个名字,因为方便使用。

二、开关机安全控制

1、调整BIOS引导设置

设置BIOS引导配置一般是从这三个以下三个方向入手

(1)将第一引导设备设为当前系统所在的硬盘。

(2)禁止从其他设备引导系统。例如光盘、U盘、网络等方式

 将除了硬盘启动全部禁用掉,shift+!就可以禁用了。但是要注意,硬盘不能选错,要是自己的系统所在硬盘。

(3)将安全级别设置为setup,并且设置管理员密码

 禁用了启动项之后,还需要对开启启动项进行设置密码,这样别人就不能进入BIOS界面直接开启启动项了。

这个界面,找到 set supervisor passwd 之后,选中就可以进行设置密码了。

可以有效的防止别有用心的人登录服务器。

2、GRUB限制

(1)使用grub2-mkpasswd-pbkdf2生成密钥

第一种较为快捷,直接输入命令grub2-setpasswd,进行配置密码就可以添加成功了。

第二种则是相对复杂一点

第一步:先使用 grub2-mkpasswd-pbkdf2 命令设置密码并进行加密

第二步: 在passwd is后面的命令跟加密密码全部复制。

第三步: 到 /etc/grub2.d/00_header   文件内进行编写

第四步:到文件内部直接进行编写

cat <<EDF

set superusers="root"

password_pbkdf2 root 复制的加密密码。

EOF

保存退出就可以了。

(2)修改/etc/grub.d/00_header文件,添加密码记录

(3)生成新的grub.cfg配置文件

三、弱口令检测

John the Ripper ——JR

JR是一款密码分析工具,是一种支持字典式的暴力破解密码的程序。

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

具体过程就不详细介绍了,这是一款进行检测弱密码的程序,可以对绝大部分的低强度密码进行暴力破解并且显示出来。

https://www.openwall.com/john/   这个是JR的程序的官网,感兴趣可以去下载。

四、端口扫描

端口扫描、nmap是一款常用的端口扫描程序,扫描端口的各种状态等功能,可以进行关闭端口来组织黑客访问等等功能。

通常nmap是需要手动安装的,就在安装系统的时候仓库里面就有这个程序,直接用yum安装就可以了。

yum install nmap -y      就可以安装了。

使用的方式就是很简单

就是nmap  选项 端口号或者IP地址

常用的扫描选项有以下几种

-p:指定扫描的端口

-n:禁用反向DNS解析

-sS:TCP的SYN扫描,只向目标发送SYN数据包,如果收到SYN/ACK响应包就认为目标端口正在监听,并立即断开连接,否则认为端口未开放。

-sT:TCP的连接扫描,这是完整的TCP扫描方式,用来建立一个TCP连接,如果成功,则认为目标正在监听服务,否则认为目标端口未开放。

-sF:TCP的FIN扫描,开放式的端口,会忽略这些数据包,关闭的端口会回应RST数据包。许多防火墙只对SYN数据包进行简单的过滤,而忽略了其他形式的TCP攻击包。这种类型的扫描可以间接检测防火墙的健壮性如何。

-sU:UDP扫描,探测目标主机提供那些udp服务,udp扫描的速度会比较慢

-sP:ICMP 扫描,类似于ping检测,快速判断目标主机是否存活,不做其他扫描。
-P0:跳过ping检测, 这种方式认为所有的目标主机是存活的,当对方不响应ICMP请求时,使用这种方式可以避免因无法
ping通而放弃扫描。

总结

可以理解到给用户添加或者减少权限来控制大部分用户的使用范围,来控制用户,不让别有用心的人通过一些被攻击的账户访问管理员账户来达到偷看机密等事情。

而给BIOS添加权限则是杜绝用户通过物理手段重置管理员账户密码来访问服务器,端口扫描技术是搜索自己的端口,来让获取别的用户访问自己的途径。提前做准备。

设置以上这些方式,可以大大地提升服务器的安全强度。

猜你喜欢

转载自blog.csdn.net/m0_60360828/article/details/120405220