Linux系统安全(包含系统引导,登录控制,用户提权和密码破解等)

Linux系统安全(包含系统引导,登录控制,用户提权和密码破解等)

概述:

用户账号是计算机使用者的身份凭证或标识,在Linux系统中,提供了多种机制来确保用户账号的正当、安全使用。

本章基本结构
在这里插入图片描述

一,基本安全措施

1,系统账号清理(限制新用户创建)

Linux用户账号信息存在于/etc/passwd和/etc/shadow目录下。

/etc/passwd/目录:存放账号信息

/etc/shadow/目录:存放账号密码信息

我们可以通过锁定该文件来限制新用户的创建。

常用命令如下:

chattr +i-----------锁定文件

chattr -i------------解锁文件

lsattr-----------查看文件状态

例如:
在这里插入图片描述

2,终端登录安全控制

(1)禁止root用户登录

login程序会读取/etc/securetty/文件,以决定root用户可以从哪些终端登录,若要禁止root用户从指定终端登录,只需要从该文件中删除或者注释掉对应的即可,
例如:
在这里插入图片描述
(2)禁止普通用户登录

在etc中建立nologin文件即可

[root@localhost ~]# touch /etc/nologin

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

[root@localhost ~]# rm -rf /etc/nologin 
[root@localhost ~]# 
3,注销时自动清空历史命令

当用户注销时会总动加载配置文件.bash_logout,我们可以在该文件中写入history -c命令让用户注销时自动执行,例如:

[root@localhost ~]# vim .bash_logout

在这里插入图片描述

4,用户自动注销

进入/etc/profile配置文件,添加“export TMOUT=注销时间”。

[root@localhost ~]# vim /etc/profile

在这里插入图片描述

[root@localhost ~]# source /etc/profile(执行该配置)
[root@localhost ~]#  等待输入超时:自动登出
5,开关机安全控制

(1)调整BIOS引导设置

将第一优先引导设备设为当前系统所在磁盘

禁止从其他设备(如光盘,U盘,网络等)引导系统,对应的项设为“disabled”

将BIOS的安全级别改为“setup”,并管理好管理密码,以防止未授权的修改

(2)给修改GRUB菜单添加进入密码

GRUB菜单负责引导分区中的操作系统, 开机在这个界面我们只需要按一下“e”,就可以进入到我们的grub配置菜单, 而且拥有root权限,对服务器安全威胁很大。
在这里插入图片描述
在这里插入图片描述
为了安全我们可以给GRUB菜单设置一个密码,主要是通过加密算法设置一个密码在头文件然后覆盖原先的grub.cfg配置文件

实验环境:centos 7

(1)通过加密算法生成一个秘钥。
在这里插入图片描述
(2)进入GRUB2的头文件,按G到行尾,将上图的密文复制并加进去。

[root@localhost ~]#vim /etc/grub.d/00_header

在这里插入图片描述
(3)覆盖原先GRUB2的配置文件grub.cfg,并重启。

[root@localhost ~]# grub2-mkconfig -o /boot/grub2/grub.cfg
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-3.10.0-693.el7.x86_64
Found initrd image: /boot/initramfs-3.10.0-693.el7.x86_64.img
Found linux image: /boot/vmlinuz-0-rescue-db2a8cea43c145b19ed3486d1927c284
Found initrd image: /boot/initramfs-0-rescue-db2a8cea43c145b19ed3486d1927c284.img
done
[root@localhost ~]# init 6

(4)到grub菜单界面发现要输入密码才能修改
在这里插入图片描述
在这里插入图片描述

二,密码安全控制

1,设置用户密码有效期

对于未创建的用户:

修改配置文件/etc/login.defs下的PASS_MAX_DAYS设置。

[root@localhost ~]# vim /etc/login.defs

在这里插入图片描述

对于已创建的用户可以直接用命令

[root@localhost ~]# chage -M 30 #用户
2,系统弱口令破解密码

对于密码的暴力破解,字典文件的选择很关键,只要字典文件足够完整,破解密码只是时间问题。

我们在网上下了个John the Ripper密码分析工具,以john-1.8.0.tar.gz源代码包
为例:

实验环境centos 7

(1)解压john-1.8.0.tar.gz程序包到dev下的abc文件夹

[root@localhost ~]# mkdir /dev/abc
[root@localhost ~]# tar zxfv /mnt/john-1.8.0.tar.gz -C /dev/abc
[root@localhost ~]# cd /dev/abc
[root@localhost abc]# ls
john-1.8.0

(2)我们进入john-1.8.0的src源码包中发现全是以.c为结尾的c语言文件,所以我们要安装gcc,gcc-c++编译器

[root@localhost abc]# cd john-1.8.0/
[root@localhost john-1.8.0]# ls
doc  README  run  src
[root@localhost john-1.8.0]# cd src
[root@localhost src]# ls
AFS_fmt.c   crc32.c     john.h        os.h        status.c
alpha.h     crc32.h     list.c        params.c    status.h
alpha.S     DES_bs_b.c  list.h        params.h    symlink.c
batch.c     DES_bs.c    LM_fmt.c      pa-risc.h   times.h
batch.h     DES_bs.h    loader.c      path.c      trip_fmt.
[root@localhost src]# yum install gcc gcc-c++ -y

(3)安装完成之后我们直接开始编译,在/john-1.8.0/run目录下生成执行脚本

[root@localhost src]# make linux-x86-64

在这里插入图片描述
(4)进入/etc/abc/john-1.8.0/run目录,执行john脚本分析passwd和shadow文件下的账号密码信息
在这里插入图片描述

三,用户切换与提权

1,切换用户-----su

su #目标用户

2,限制普通用户使用su命令切换用户-------启用pam_wheel认证模块

当启用pam认证后,只有在wheel组中的用户可以使用su命令切换

[root@localhost ~]# vim /etc/pam.d/su

在这里插入图片描述

[root@localhost ~]# useradd wangwu
[root@localhost ~]# su wangwu
[wangwu@localhost root]$ su root
密码:
147su: 拒绝权限

若想让普通用户wangwu可以使用su命令切换用户,只需要将wangwu加入pam的wheel组即可

[root@localhost ~]# gpasswd -a wangwu wheel
正在将用户“wangwu”加入到“wheel”组中
[root@localhost ~]# su wangwu
[wangwu@localhost root]$ su root
密码:
[root@localhost ~]# 
3,使用sudo机制提升权限

作用:让普通用户拥有一部分管理权限

常用格式: sudo #执行命令

条件:需要在sudoers配置文件中添加授权

例如:我们让普通用户zhangsan执行挂载命令发现是不允许的

[zhangsan@localhost dev]$ mount /dev/sr0 /mnt
mount: 只有 root 能执行该操作
[zhangsan@localhost dev]$ 

使用sudo机制执行该命令,发现由于配置文件中没有给zhangsan添加使用mount的权限所以也是不可以的

[zhangsan@localhost dev]$ sudo mount /dev/sr0 /mnt
[sudo] zhangsan 的密码:
zhangsan 不在 sudoers 文件中。此事将被报告。
[zhangsan@localhost dev]$ 

使用visudo或者/etc/sudoers 能进入配置界面

记录格式:用户 主机名列表=命令程序列表

用户:授权的用户名,或者用“%组名”的形式授权一个组的所有用户

主机名:使用此配置文件的主机名称

命令:允许被授权的用户使用sudo方式执行特权命令(sudo +所需执行的命令)

我们在配置文件中给zhangsan添加上使用mount的权限

[root@localhost ~]# visudo

在这里插入图片描述
提升权限后我们再执行上面的挂载命令

[root@localhost ~]# su zhangsan
[zhangsan@localhost root]$ sudo mount /dev/sr0 /mnt
[sudo] zhangsan 的密码:
mount: /dev/sr0 写保护,将以只读方式挂载
[zhangsan@localhost root]$ 

查看用户有哪些权限我们可以使用“sudo -l”命令

[zhangsan@localhost root]$ sudo -l
匹配 %2$s 上 %1$s 的默认条目:
    !visiblepw, always_set_home, match_group_by_gid, env_reset,
    env_keep="COLORS DISPLAY HOSTNAME HISTSIZE KDEDIR LS_COLORS",
    env_keep+="MAIL PS1 PS2 QTDIR USERNAME LANG LC_ADDRESS
    LC_CTYPE", env_keep+="LC_COLLATE LC_IDENTIFICATION
    LC_MEASUREMENT LC_MESSAGES", env_keep+="LC_MONETARY LC_NAME
    LC_NUMERIC LC_PAPER LC_TELEPHONE", env_keep+="LC_TIME LC_ALL
    LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY",
    secure_path=/sbin\:/bin\:/usr/sbin\:/usr/bin

用户 zhangsan 可以在 localhost 上运行以下命令:
    (root) /bin/mount

小结:Linux服务器以其安全,高效和稳定的特点得到广泛应用,本篇主要是从账号安全,登陆控制和系统引导的角度,简单讲解了Linux的基本安全措施,以及基于Linux环境的用户切换提权,弱口令破解等安全工具,帮助管理员做好安全防护措施。

  • 11
    点赞
  • 44
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值