0


Linux系统安全及其应用

文章目录

一、用户账号安全管理

1.1 系统账号的清理

将不需要登录的用户的登录shell设置为/sbin/nologin。

usermod-s /sbin/nologin 用户      //需要管理员权限

1.2 对用户账号的操作

1.2.1 锁定和解锁用户
usermod-L 用户    //锁定用户
passwd-l 用户    //锁定用户

usermod-U 用户    //解锁用户    
passwd-u 用户    //解锁用户
1.2.2 删除无用账号
userdel-r 用户    //删除用户及家目录

1.3 对重要文件进行锁定

如:passwd shadow fstab ifcfg-ens33等文件

lsattr 文件    //查看文件状态锁定(全- 表示没有状态,有i表示被锁定)
chattr +i 文件    //锁定文件,可多个
chattr -i 文件    //解锁文件

1.4 密码安全控制

1.4.1 新建用户

/etc/login.defs

文件中修改新建用户配置

在第25行,可以改变密码有效期,只对新建用户有效

在这里插入图片描述

1.4.2 已有用户
chage -M30 用户    //改变已有用户密码有效期为30天
chage -d0 用户    //使用户密码失效,下次登录时需要重设密码

二、历史命令管理

2.1 历史命令限制

history            //查看历史命令
history-c        //临时清空历史命令

永久限制历史命令数量:编辑

/etc/profile

进行全局配置,第46行,

HISTSIZE

设置为60-80条,保存退出并

source

,使立即生效

在这里插入图片描述

2.2 自动清空历史命令

vim ~/.bash_logout
echo""> ~/.bash_history        //注销时自动清空历史命令 

vim ~/.bashrc
echo""> ~/.bash_history        //登录时自动清空历史命令

三、设置终端登录的安全管理

3.1 设置终端登录超时

vim /etc/profile

,键入行

TMOUT=600

(默认单位:秒):10分钟无操作,终端自动断开。

3.2 禁止普通用户登录

root用户

touch /etc/nologin

,可禁止普通用户登录

root用户

rm -rf /etc/nologin

,恢复普通用户登录

四、对用户切换进行限制

4.1 su命令

su 用户名

:在终端中切换已知密码的用户,root用户切换到普通用户默认不需要密码,普通用户发起的切换需要目标账户的密码。

su

切换用户不会改变环境变量,用的还是之前用户的shell,是不完全切换。

su - 用户名

:登录式切换,读取目标用户的配置文件,切换到家目录。

如果在root用户下,

su

相当于刷新;如果是普通用户,就是切换回root。

4.2 限制普通用户使用

su
4.2.1 wheel组

wheel :wheel组,这个在组文件中查不到,属于特殊组,用来控制系统管理员的权限。专为管理员服务。

如果普通用户加入到wheel组,就能拥有管理员才能执行的一些权限。需要用

sudo

命令执行wheel组的特殊权限。

vim /etc/pam.d/su    //进入存放wheel组和默认root切换权限的配置

在这里插入图片描述

解除注释,保存退出后,可以发现除了wheel组用户和root用户,其他用户都不能切换用户。

wheel组默认是空的,没有任何成员,需要管理员账号手动添加。

gpasswd -a 用户 wheel

将用户添加到wheel组,用户即可获得切换用户的权限。

wheel组的权限很大,配置的时候要以最小权限的原则来进行配置。

4.2.2 PAM安全认证

PAM安全认证:Linux系统身份认证的一个架构,提供了一种标准的身份认证的接口,允许管理员定制化地管理认证方式和方法。

PAM认证是一个可插拔式的模块。所谓可插拔,是因为PAM认证的配置文件里,启用和停用只需要改变相应命令行开头的#号即可。

PAM的认证类型

  • 认证模块:验证用户的身份,基于密码的认证。
  • 授权模块:控制用户对系统资源的访问,文件访问、进程权限等。
  • 账户管理模块:管理用户账户的信息,密码过期策略,账户锁定策略等等。
  • 会话管理模块:管理用户会话,注销用户等。

PAM认证:确定服务Service----> 加载/etc/pam.d下的PAM配置文件 ---->调用/lib64/security下的认证文件进行认证。

PAM安全认证流程:

在这里插入图片描述

控制位:

required:只有成功才能通过认证,验证失败也不会立刻结束,只有所有的要素验证完整才会最终返回结果。必要条件。

requisite:只有成功才能通过认证,但是一旦失败,其他要素不再验证,立刻结束。必要条件。

sufficient:一票通过,成功了之后就是满足条件,但是失败了也可忽略。成功了执行验证成功的结果,失败则返回验证失败的结果,是最终的结果。充分条件。

optional:选项,反馈给用户的提示或结果。

4.2.1中提到的

su

命令配置就是在

/etc/pam.d

目录下的

su

文件中进行配置。

/etc/pam.d

文件夹中的每个文件对应着一个应用程序或服务,用于指定该程序或服务的身份验证和授权规则。

五、授权用户管理

5.1 sudo命令配置

sudo:相当于给普通用户赋权

配置sudo需要对

/etc/sudoers

进行编辑

vim /etc/sudoers    //该文档是只读文档,需要wq!强制保存退出
visudo        //快捷打开/etc/sudoers

进入配置,注释掉图中两行

在这里插入图片描述

再到100行,下行插入

test2    ALL=(root)    /usr/bin/passwd     //(多个赋权“,”隔开)
用户名    主机名=(用户)   命令

为test2用户赋权可以调用passwd命令,命令前加

NOPASSWD

可免密码

sudo

test2用户使用授权命令:

sudopasswd test2

test2可以给所有用户设置密码(包括root),这种行为很危险。所以sudo的配置一般仅给予需要的最小权限。

注意:第一次执行需要验证密码,默认超时时长为5分钟,在此期间不再重复验证密码

5.2 使用别名批量设置普通用户权限

还是在

/etc/sudoers 

文件里编辑:

Host_Alias MYHOSTS = localhost          //设置主机名,可不设,用ALL匹配
User_Alias MYUSERS = test1,test2    //设置限制的用户,可批量
Cmnd_Alias MYCMNDS = /usr/sbin/*,!/usr/sbin/reboot,!/usr/sbin/poweroff,!/usr/sbin/init,!/usr/bin/rm          //批量设置命令
// 注意:所有别名必须是全部大写
MYUSERS MYHOSTS=MYCMNDS        //启用配置

命令授权部分,定义了主机localhost,开放给test1和test2这两个用户/sbin下面所有的命令( *表示全部),除了(!表示取反,即不给权限)重启,关机,改变运行级别和删除。

六、其他

6.1 开关机安全控制

grub2 -setpassword :给grub菜单设置密码,要修改菜单需要此密码

6.2 弱口令扫描工具

弱口令扫描工具:检测过于简单的密码

使用

john-1.8.0

工具

yum -yinstall gcc gcc-c++ make
//安装依赖环境
cd /opt/john-1.8.0/src
//工具解压在/opt目录下
make clean linux-x86-64
cp /etc/shadow /opt/shadow.txt
//复制密码文件到/opt下,
cd../run
./john /opt/shadow.txt
//扫描密码
./john --show /opt/shadow.txt
//查看扫描情况

七、总结

你会做哪些系统加固?

  1. 锁定重要文件
  2. 修改history,命令历史记录
  3. 禁止普通用户切换
  4. 设置sudo权限,给普通用户
  5. 设置grub菜单加密
  6. 把一些默认的端口号改掉
  7. 内核参数调整:vim /etc/sysctl.conf,内核参数的配置文件。
标签: linux 系统安全

本文转载自: https://blog.csdn.net/weixin_44265455/article/details/139330354
版权归原作者 扮瘦人 所有, 如有侵权,请联系我们删除。

“Linux系统安全及其应用”的评论:

还没有评论