系统安全和应用

目录

1.系统账号的安全管理

2.密码的安全管理

3.命令历史记录

4.用户的切换及权限提升

5.grub加密

1.系统账号的安全管理

1)把用户设置为无法登录

所谓“无法登陆”指的仅是这个用户无法使用bash或其他shell来登陆系统而已,并不是说这个账号就无法使用系统资源。举例来说,各个系统账号中,打印作业有lp这个账号管理,www服务器有apache这个账号管理,他们都可以进行系统程序的工作,但就是无法登陆主机而已

如果我们想创建一个新用户并将它设置为无法登陆,可以使用useradd命令

useradd 用户名 -s /sbin/nologin

这我以zi这个账户为例,可以看到最后的shell路径是/sbin/nologin

如果我们想修改已有账户为不可登录,可以使用chsh命令或是usermod命令

chsh -s /sbin/nologin 用户名
usermod -s /sbin/nologin 用户名

这里我以账户zz为例,它原来的默认路径是/bin/bash

 

 在我使用了chsh命令之后,它的路径也变为了/sbin/nologin

2)锁定账户

如需要锁定账户可以使用usermod和passwd命令

usermod -L  用户名  //锁定用户
usermod -U  用户名  //解锁用户
passwd -l  用户名  //锁定用户
passwd -u  用户名  //解锁用户

3)删除账户

删除账户需要使用userdel命令

userdel  -r  用户名

-r选项是将该用户的家目录一起删除

4)锁定配置文件

锁定配置文件其实就是限制/etc/passwd 和 /etc/shadow的这两个文件,我们知道passwd是存放用户账号信息的文件,而shadow是存放用户密码的文件,如果限制这两个文件的写入,就可以做到限制新建账户。

我们可以使用chattr命令来实现锁定配置文件

chattr +/-i 文件路径      //+i 不得任意改动文件或目录  -i解除锁定
chattr -a   文件路径      //-a 让文件或目录仅供附加用途。只能追加
lsattr      文件路径      //查看文件的属性

 可以看到这两个文件都加上了i选项此时我们将无法创建用户

2.密码的安全管理

对于还未创建的用户,可以进入/etc/login.defs 这个文件中来修改密码规则,修改的信息会在下次创建用户时生效

我们需要修改的信息在25-28行

前几行是对下面字段的解释

PASS_MAX_DAYS   99999        //密码的最大生产周期   99999代表永久有效
PASS_MIN_DAYS   0            //密码的最小生产周期   
PASS_MIN_LEN    5            //密码设置的最小长度
PASS_WARN_AGE   7            //密码过期提前警告天数

如果我们想对已有的用户进行密码的设置,可以使用chage命令

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

3.命令历史记录

shell环境中为了给用户带来更好的体验,提供了历史命令机制,它会记录我们使用过那些命令,保存在命令历史文件中,但是这个机制有利有弊,非法用户如果进入我们的账户,也可以通过查看历史命令记录,来判断该账号的用途并加以破坏,所以修改命令历史记录很有必要

history -c                //临时清除历史命令

可以修改/etc/profile 文件中的第46行的属性来更改历史命令出现的数量

vim /etc/profile

此外我们还可以在bash_logout和bashrc这两个文件中设置命令清除

vim .bash_logout 
echo " " >~/.bash_history                //退出后清除

vim .bashrc
echo " " >~/.bash_history                //开机后清除

4.用户的切换及权限提升

切换用户命令su 可以指定用户的身份来执行命令

切换用户的方式:

su   用户名   //非登录式切换,即不会读取目标用户的配置文件,不改变当前工作目录,即不完全切换

su - 用户名   //登录式切换,会读取目标用户的配置文件,切换至自已的家目录,即完全切换

当我们是root用户时,使用su至其他用户时不需要输入密码的,但普通用户使用su是需要密码的

此外,su 切换新用户后,使用 exit 退回至旧的用户身份,而不要再用 su 切换至旧用户,否则会生成很多的bash子进程,环境可能会混乱

我们可以使用wheel组来限制使用su命令的用户

wheel相当于一个管理员组,可以通过修改配置文件来实现组内用户使用su命令

vim /etc/pam.d/su
2 # auth sufficient pam_ rootok.so
6 #auth required pam_ wheel.so use_ _uid

以上两行是默认状态(即开启第一行,注释第二行),这种状态下是允许所有用户间使用su命令进行切换的。
两行都注释也是运行所有用户都能使用su命令,但root'下使用su切换到其他普通用户需要输入密码;如果第一行不注释,则root使用su切换普通用户就不需要输入密码(pam rootok. so模块的主要作用是使uid为0的用户,即root用户能够直接通过认证而不用输入密码。)
如果开启第二行,表示只有root用户和wheel组内的用户才可以使用su命令
如果注释第一行,开启第二行,表示只有whee1组内的用户才能使用su命令,root用户也被禁用su命令
之后我们可以使用gpasswd来将用户加入到wheel

gpasswd -a 用户名 wheel

sudo

Linux sudo命令以系统管理者的身份执行指令,也就是说,经由 sudo 所执行的指令就好像是 root 亲自执行

sudo特性:

  • sudo能够授权指定用户在指定主机上运行某些命令。如果未授权用户尝试使用 sudo,会提示联系管理员

  • sudo提供了丰富的日志,详细地记录了每个用户干了什么。它能够将日志传到中心主机或者日志服务器

  • sudo使用时间戳文件来执行类似的“检票”系统。当用户调用sudo并且输入它的密码时,用户获得了一张存活期为5分钟的票

  • sudo的配置文件是sudoers文件,它允许系统管理员集中的管理用户的使用权限和使用的主机。它所存放的位置默认是在/etc/sudoers,属性必须为0440

在 /etc/sudoers 中可以找到使用sudo的格式为                  注:可以使用通配符

 

用户    登入主机    =    (代表用户)     命令
user  	host       =    (runas)       command

当我们想要批量授权用户时,可以使用sudo的别名

sudo别名有四种类型:

  • User_Alias (用户)

  • Runas_Alias (代表用户)

  • Host_Alias (登录主机)

  • Cmnd_Alias (命令)

5.grub加密

定义每个菜单项的所有脚本都存放在/etc/grub.d目录中,这些脚本的名称必须有两位的数字前缀,其目的是构建GRUB 2菜单时定义脚本的执行顺序以及相应菜单项的顺序,比如00_header文件首先被读取。

文件描述
00_header设置grub默认参数
10_linux系统中存在多个linux版本
20_ppc_terminfo设置tty控制台
30_os_prober设置其他分区中的系统(硬盘中有多个操作系统时设置)
40_custom和41_custom用户自定义的配置

为了防止恶意用户通过grub菜单使用单用户模式修改服务器的密码,我们可以给grub菜单进行加密

GRUB 2密码支持以下两种格式

  • 明文密码:密码数据没有经过加密,安全性差

  • PBKDF2加密密码:密码经过PBKDF2哈希算法进行加密,在文件中存储的是加密后的密码数据,安全性较高。

根据服务器版本不同,使用的方法也不尽相同,如果使用centos7系统,只需要一条命令就可以完成修改

grub2-setpassword

如果是centos6,先要使用grub2-mkpasswd-pbkdf2命令生成PBKDF2加密口令,然后在/etc/grub.d/00_header文件中添加超级用户和PBKDF2加密口令,最后使用grub2-mkconfig命令生成grub配置文件。

在文件末尾添加刚刚复制id密码

 下次我们进入grub菜单时就需要密码了

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值