运维人员必会的系统安全

一、账号安全控制

1.1、账号安全基本措施

1.1.1、系统帐号清理

  • 将非登录用户的Shell设为/sbin/nologin
  • 锁定长期不使用的账号
  • 删除无用的账号
  • 锁定账号文件passwd、shadow

[root@localhost ~]# chattr +i /etc/passwd /etc/shadow
[root@localhost ~]# Isattr /etc/passwd /etc/shadow
-------- /etc/passwd
-------- /etc/shadow

更改用户登录权限操作

1、进入vi /etc/passwd

2、在root用户选更改yang用户的登录权限 改成/sbin/nologin

3、然后yang用户退出登录在登陆时,已经登陆不上了

用passwd -l 锁定账户 ,登陆不上;passwd -u 解锁账户

用usermod -L 锁定账户 ;usermod -U 解锁账户

删除无用账户

useradd先创建一个模拟的无用账户;

userdel -r 删除无用账户

在这里插入图片描述

锁定文件

1、chattr +i /etc/passwd /etc/shadow
在vi编辑器里只能读,不能写

在这里插入图片描述
2、lsattr /etc/passwd /etc/shadow 查看文件状态
在这里插入图片描述
3、在vi编辑器里面操作是否可以读写,只读不写

解锁文件

1、chattr -i /etc/passwd /etc/shadow
在vi编辑器里可读可写了
在这里插入图片描述
2、lsattr /etc/passwd /etc/shadow 查看文件状态
在这里插入图片描述

密码安全控制

  • 设置密码有效期
  • 要求用户下次登录时修改密码
[root@localhost ~]# vi /etc/login.text  适用于新建用户
PASS MAX DAYS 30
[root@localhost ~]# chage -M 30 lisi   ## 适用于已有用户
[root@localhost ~]# chage -d 0 yang  ##强制在下次登录时更改密码

新建用户更改密码有效期:

1、进入 vi /etc/login.test
2、找到下面这句话 ,把数值改为30(就是有效期为30天)

PASS_MAX_DAYS 30

3、新建tang用户 ,给tang设置密码
在这里插入图片描述
4、这时候 vi /etc/shadow 查看新建的 tang 用户的密码有效期已经自动改成了30天

tang:*:17110:0:30:7:::

已有用户更改密码有效期

1、更改已有用户 tx 的密码有效期为30天

[root@localhost ~]# chage -M 15 tang

2、进入vi /etc/shadow 查看
在这里插入图片描述
③强制指定用户在下次登录时更改密码
1、 强制指定bing用户下次登陆时更改密码

[root@localhost ~]# chage -d 0 bing

2.在tang用户没有改密码有效期之前的效果
在这里插入图片描述
3、bing用户改完之后的更改密码有效期之后的效果是不一样的,可以仔细看
在这里插入图片描述
4、重新登陆的时候,按照图片输入要输入的密码就可以了

在这里插入图片描述

命令历史限制

  • 减少记录的命令条数
  • 注销时自动清空命令历史

修改历史命令数量的限制

方法一:

1、进入vi /etc/profile 里面直接改里面的参数,从而达到修改历史命令数量的限制
系统默认的历史记录是为1000条,可以直接修改HISTSIZE后面值的大小
在这里插入图片描述
除此之外,还可以修改用户宿主目录的·/.bash_logout文件,添加清空历史命令的操作。这样,当用户退出登录的bash环境之后,所记录的历史命令将自动清空

这里是引用
[root@localhost ~]# vi ~/.bash_logout
在这里插入图片描述

刷新一下
[root@localhost ~]# source /etc/profile

终端自动注销

  • 闲置600秒后自动注销
    注意,注销的时候必须是闲置的时候!!!不能动

①针对所有用户的注销
1、进入vi编辑器后,在最后一行输入这句话,100秒后注销

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

在这里插入图片描述
2、退出编辑器,然后刷新下
[root@localhost ~]# source /etc/profile

时间长了之后再次点击进去之后提示
在这里插入图片描述

3、账户注销了

②针对单个用户修改注销时间
[root@localhost ~]# vi .bash_profile

在这里插入图片描述
[root@localhost ~]# source /etc/profile

3、账户注销了
在这里插入图片描述

二、系统引导和登录控制

2.1、使用su命令切换用户

2.1.1、用途和用法

■用途及用法

用途: Substitute User, 切换用户
格式: su - 目标用户
■密码验证

root→任意用户,不验证密码
普通用户>其他用户,验证目标用户的密码
2.1.2、限制使用su命令的用户
■限制使用su命令的用户

将允许使用su命令的用户加入wheel组,在wheel组内的用户才可以使用su切换用户命令
启用pam_wheel认证模块
■查看su操作记录

安全日志文件:/var/log/secure
限制使用su命令的用户实验

1、把 tang用户加入 wheel 组

[root@localhost ~]# gpasswd -a tang wheel

Adding user tang to group wheel

[root@localhost ~]# grep wheel /etc/group

wheel❌10:tang

然后在/etc/pam.d/su 修改配置文件,把前面的#号键去了

在这里插入图片描述
在这里插入图片描述

三、Liunx中的PAM安全认证

3.1 su命令的安全隐患

su命令的安全隐患
默认情况下,任何用户都允许使用su命令,从而恶意用户有机会反复尝试其他用户(如root)的登录密码,带来安全风险
为了加强su命令的使用控制,可以借助于PAM认证模块,只允许极个别用户使用su命令进行切换
PAM(Pluggable Authentication Modules)可拔插式认证模块,它是一种高效而且灵活便利的用户级别的认证方式,也是当前Linux服务器普遍使用的认证方式

3.2 PAM认证原理

  • PAM认证一般遵循的顺序:Service(服务)>PAM(配置文件)>pam_*.so
    PAM认证首先要确定哪一项服务,然后加载相应的PAM的配置文件(位于/etc/pam.d下),最后调用认证文件(位于/lib/security下)进行安全认证
    用户访问服务器的时候,服务器的某一个服务程序把用户的请求发送到PAM模块进行认证
    不同的应用程序所对应的PAM模块也是不同的
  • so 为结尾的就是模块文件

3.3 PAM认证的构成

  • 查看某个程序是否支持PAM认证,可以用ls命令进行查看/etc/pam.d,然后管道符号检索想要查询的程序;例如查看su是否支持PAM模块认证
    ls /etc/pam.d | grep su
    查看su的PAM配置文件:cat /etc/pam.d/su
    每一行都是独立的认证过程
    每一行可以区分为三个字段
    认证类型
    控制类型
    PAM模块及其参数

3.4、PAM安全认证流程

  • 控制类型也可以乘坐Control Flags,用于PAM验证类型的返回结果
    1.required验证失败时仍然继续,但返回Fail
    2.requisite验证失败则立即结束整个验证过程,返回fail(最重要的一步)
    3.sufficient验证成功则立即返回,不再继续,否则忽略结果并继续
    4.optional不用于验证,只显示信息(通常用session类型)

四 、使用sudo机制提升权限

4.1、su命令的缺点

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

4.2、sudo命令的用途及用法

  • 用途:以其他用户身份(如root)执行授权的命令
  • 用法:sudo 授权命令

4.3、配置sudo授权

  • visudo命令 或者 vim /etc/sudoers
  • 记录格式: 用户 主机名列表 = 命令程序列表
[root@localhost ~]# visudo

用户	主机名列表 = 命令程序列表
%wheel	ALL = NOPASSWD:ALL
jerry	localhost = /sbin/ifconfig
syrianer	localhost = /sbin/*,!/sbin/ifconfig,!/sbin/route
'可以使用通配符号*和取反符号!'
Cmnd_Alias	PKGTOOLS = /bin/rpm,/usr/bin/yum
mike	localhost = PKGTOOLS

4.4、查看sudo操作记录

■查看sudo操作记录

需启用Defaults logfile 配置
默认日志文件: /var/log/sudo
■查询授权的sudo操作

sudo -|
使用sudo机制提升权限实验

1、先在tang用户上测试,先输入(ifconfig ens33:1 192.168.10.10)创建网卡;
发现是不允许操作的,因为没有权限

在这里插入图片描述
2、需要在root用户visudo 或者/etc/sudoers都可以进配置文件添加提权用户;

[root@localhost ~]# vi /etc/sudoers

3、配置文件末行加入你想要提权的用户;(localhost是写主机名)
在这里插入图片描述
tang localhost=/sbin/*,!/sbin/reboot (tang用户在KGC主机下执行/sbin下所有命令,除了reboot)

4、再去tang用户上再去(sudo ifconfig ens33:1 192.168.10.30)创建网卡那条命令,发现是可以做操作的权限已经有了

五、开关机安全控制

5.1、调整BIOS引导设置

  • 将第一引导设备设为当前系统所在硬盘
  • 禁止从其他设备(光盘、U盘、网络)引导系统
  • 将安全级别设为isetup,并设置管理员密码
  • 备注:禁止从其他设备引导系统操作,感觉若是出现忘记root密码就可能无法从光驱去修改,所以还是谨慎操作

调整BIOS引导设置实操

虚拟机重启之后,按F2进入BIOS

在这里插入图片描述
设置进入BIOS的密码,设置完之后确认

在这里插入图片描述

设置开机就要输入密码

在这里插入图片描述
在这里插入图片描述
F10保存退出!
在这里插入图片描述

5.2、GRUB限制

使用grub2-mkpasswd-pbkdf2生成密钥
修改/etc/grub.d/00_header文件中,添加密码记录
生成新的grub.cfg配置文件

5.3、终端登录安全控制 5.3.1、限制root只在安全终端登录

在linux服务器中,默认开启了6个tty终端,允许任何用户进行本地本地登录。关于本地登录的安全控制,可以从以下几个方面着手
1.减少开放的tty终端个数
对于远程维护的linux服务器,6个tty终端实际上有点多余。在CentOS 6系统中,控制终端的配置文件如下:

/etc/init/tty.conf                    //控制tty终端的开启
/etc/init/start-ttys.conf             //控制tty终端的开启数量、设备文件
/etc/sysconfig/init                   //控制tty终端的开启数量、终端的颜色

通过修改/etc/init/start-ttys.conf和/etc/sysconfig/init ,可以减少开放大的tty终端数量。若只希望开启tty4、tty5、tty6三个终端,修改的操作如下
[root@localhost ~]#[root@localhost ~]# vi /etc/init/start-ttys.conf

env ACTIVE_CONSOLES=/dev/tty【456】

[root@localhost ~]#[root@localhost ~]# vi /etc/sysconfig/init

ACTIVE_CONSOLES=/dev/tty【456】

[root@localhost ~]#reboot

注意:禁止tty1、tty2、tty3终端以后,重启开机并进入字符模式,默认将无法登录。必须按ALT+F4 组合键或ALT+F5、ALT+F6 组合键切换到可用的终端,然后才能进行登录操作

■限制root只在安全终端登录

  • 安全终端配置: /etc/securetty
[root@localhost ~]# vi letc/securetty
......
#tty5    ## 禁止root用户从终端tty5,tty6登录
#tty6

5.3.2、禁止普通用户登录

■禁止普通用户登录

建立/etc/nologin文件
删除nologin文件或重启后即恢复正常

[root@localhost ~]# touch /etc/nologin    ## 禁止普通用户登录
[root@localhost ~]# rm -rf /etc/nologin    ## 取消上述登录限制
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值