运维人员必会的系统安全

时间: 2023-07-11 admin 互联网

运维人员必会的系统安全

运维人员必会的系统安全

文章目录

  • 一、账号安全控制
  • 1.1、账号安全基本措施
  • 1.1.1、系统帐号清理
    • 更改用户登录权限操作
      • 1、进入vi /etc/passwd
      • 2、在root用户选更改yang用户的登录权限 改成/sbin/nologin
      • 3、然后yang用户退出登录在登陆时,已经登陆不上了
    • 用passwd -l 锁定账户 ,登陆不上;passwd -u 解锁账户
    • 用usermod -L 锁定账户 ;usermod -U 解锁账户
    • 删除无用账户
      • useradd先创建一个模拟的无用账户;
      • userdel -r 删除无用账户
    • 锁定文件
    • 解锁文件
    • 密码安全控制
    • 新建用户更改密码有效期:
    • 已有用户更改密码有效期
    • 命令历史限制
    • 修改历史命令数量的限制
    • 终端自动注销
    • 二、系统引导和登录控制
      • 2.1、使用su命令切换用户
      • 2.1.1、用途和用法
    • 三、Liunx中的PAM安全认证
    • 3.1 su命令的安全隐患
    • 3.2 PAM认证原理
    • 3.3 PAM认证的构成
    • 3.4、PAM安全认证流程
    • 四 、使用sudo机制提升权限
      • 4.1、su命令的缺点
      • 4.2、sudo命令的用途及用法
      • 4.3、配置sudo授权
    • 4.4、查看sudo操作记录
    • 五、开关机安全控制
    • 5.1、调整BIOS引导设置
    • 调整BIOS引导设置实操
    • 5.2、GRUB限制
    • 5.3、终端登录安全控制 5.3.1、限制root只在安全终端登录
    • 5.3.2、禁止普通用户登录

一、账号安全控制

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    ## 取消上述登录限制