系统安全及应用

系统安全及应用

账号安全控制

账号安全基础措施

系统账号清除

1.将非登录用户的shell设为/sbin/nologin

2.锁定长期不使用的账号

3.删除无用的账号

4.锁定账号文件passwd、shadow

示例:

方法一

使用usermod命令修改用户账号属性

-s:修改shell

方法二

这里有两种命令用法基本一致

passwd [选项] 用户名

-l :锁定用户账号

-u:解锁用户账号

-S:查看用户状态

usermod [选项] 用户名

-L:锁定用户账号

-U:解锁用户账号

这两条命令可以串起来用,好比我用passwd命令锁定用户可以用usermod命令解锁,反之也是可以的。

方法三

添加-r选项时,表示连同用户的宿主目录一并删除

方法四

锁定用户账号文件passwd、shadow

使用chattr命令更改文件属性

-i:不得任意更改文件或目录

密码安全控制

1.设置密码有效期

2.要求用户下次登录时修改密码

chage命令

用来修改帐号和密码的有效期限。

格式:

chage [选项] 用户名

常用选项

-m:密码可更改的最小天数。为零时代表任何时候都可以更改密码。
-M:密码保持有效的最大天数。
-w:用户密码到期前,提前收到警告信息的天数。
-E:帐号到期的日期。过了这天,此帐号将不可用。
-d:上一次更改的日期。
-i:停滞时期。如果一个密码已过期这些天,那么此帐号将不可用。
-l:例出当前的设置。由非特权用户来确定他们的密码或帐号何时过期。

1.设置密码有效期

方法一

使用chage命令进行修改(这种方法适合用于已有用户修改)

方法二

进入配置文件修改文件位置/etc/login.defs(这种方法只针对新建用户)

2.要求用户下次登录时修改密码方法与上方一样

方法

命令历史限制

1.减少记录的命令条数

方法一

通过配置文件修改,文件位置/etc/profile(此方法为永久修改当前shell环境)

方法二

使用export命令定义变量(此方法针对所有的bash环境重启后将失效)

2.注销时自动清空历史命令

[root@localhost ~]# vim .bash_logout #编辑关机自动启动配置文件
echo " " > ~/.bash_history

3.开机时自动清除历史命令

[root@localhost ~]# vim .bashrc#编辑开机自动启动配置文件
echo " " > ~/.bash_history

终端自动注销

闲置20秒后自动注销

方法一

写入配置文件 文件位置 .bash_profile

[root@localhost ~]# vim .bash_profile #编辑配置文件

su命令

用途及用法

用途(Subastitute User):用于切换用户

格式:su -[目标用户] (这里如果不加目标用户系统默认切换到root用户)

密码验证

1.从root切换到任意用户不需要验证密码

2.普通用户切换到其他用户需要验证目标用户的密码

3.限制用户使用su切换用户

wheel组

wheel组的作用

wheel组是一个很特殊的用户组,它被一些Unix系统用来控制能否通过su命令来切换到超级用户(root用户)。也就是说在wheel组中的成员有一些特殊的权限,我们可以通过把普通用户加入wheel组,然后配置相关的文件就可以使处在wheel 组的成员有特殊权限,而且可以用su命令来切换到root用户。为了加强系统的安全性,我们可以配置一些文件使得非wheel组的成员无法用 su命令切换的root用户。这么做的好处是我们在需要root的权限才能操作时我们直接su切换到root即可,无需再次用root用 户登陆,同时还能禁止其他非wheel组的成员通过su命令来切换到root用户,这样就加强了系统的安全性。

示例:

[root@localhost ~]# gpasswd -a ky18 wheel
正在将用户“ky18”加入到“wheel”组中
[root@localhost ~]# vim /etc/pam.d/su    #编辑pam认证模块

查看su操作记录

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

sudo命令—提升执行权限

sudo命令作用以及用法

作用:指定用户以超级用户的身份来执行部分命令

用法:sudo 授权命令

1.在配置文件中添加授权,文件位置visudo 或者 vim /etc/sudoers

root    ALL=(ALL)       ALL  #这里的all表示所以命令

记录格式 :用户 登入主机 = (代表用户) 命令

可以使用通配符“ * ”号任意值和“ !”号进行取反操作。
权限生效后,输入密码后5分钟可以不用重新输入密码。

示例一:

示例二:

示例三:

也可以在/etc/sudoers配置文件里使用alias设置别名进行批量给普通用户提升执行权限

验证

子目录

在配置文件下创建子目录将用户权限写入子目录

验证

PAM安全认证

su命令的安全隐患

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

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

PAM(Pluggable Authentication Modules)可插拔式认证模块

是一种高效而且灵活便利的用户级别的认证方式

也是当前linux服务器普遍使用的认证方式

PAM认证原理

一般遵循的顺序

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

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

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

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

如果想查看某个程序是否支持PAM 认证,可以用ls命令进行查看/etc/pam.d/

PAM安全认证流程

控制类型也称作Control Flags,用于PAM验证类型返回的结果

1.required验证失败时任然继续,但返回Fail

2.requisite验证失败则立即结束整个验证过程,返回Fail

3.sufficien验证成功则立即返回,不在继续,否则忽略结果并继续

4.optional不用于验证,只显示信息

系统引导和登录控制

开关机安全控制

调整BLOS引导设置

将第一引导设备设为当前系统所在硬盘

禁止从其他设备(光盘、U盘、网络)引导系统

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

GRUP限制

使用grub2-mkpasswd-pbkdf2生成密钥

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

生成新的grub.cfg配置文件

示例一:

示例二:

终端登录安全控制

限制root只在安全终端登录

安全终端配置:/etc/securetty

禁止普通用户登录

建立/etc/nologin

删除nologin文件或重启后即恢复正常

弱口令检测

Joth the Ripper,简称为 JR

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

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

暴力破解密码

示例:

只能破解密码文件中已有的密码password.lst

posted @ 2022-03-07 18:28  GENGBO  阅读(79)  评论(0编辑  收藏  举报