今天的早饭真难吃——系统安全及应用

文章目录

  • 账号安全控制
    • 系统账号清理
    • 密码安全控制
      • 命令实例:
    • 命令历史限制
      • 命令实例:
    • 使用su命令切换用户
      • 用途及用法
        • 密码验证
        • 命令实例:
      • 限制使用su命令的用户
        • 命令实例:
      • 查看su操作记录
    • Linux中的PAM安全认证
      • su命令的安全隐患
      • PAM(Pluggable Authentication Modules)可插拔式认证模块
    • PAM认证原理
    • PAM认证的构成
      • 查看某个程序是否支持PAM认证,可以用ls命令
      • 查看su的PAM配置文件:`cat /etc/pam.d/su
    • PAM安全认证流程
      • 控制类型也称作Control Flags,用于PAM验证类型的返回结果
    • 使用sudo机制提升权限
      • su命令的缺点
      • sudo命令的用途及用法
      • 配置sudo授权
      • 查看sudo操作记录
      • 查询授权的sudo操作
  • 系统引导和登录控制
    • 开关机安全控制
      • 调整BIOS引导设置
      • GRUB限制
    • 终端登录安全控制
      • 限制root只在安全终端登录
      • 禁止普通用户登录
  • 弱口令检测
    • Joth the Ripper,简称为 JR
    • 安装JR方法
    • 检测弱口令账号
    • 密码文件的暴力破解
  • 端口扫描
    • NMAP


账号安全控制

系统账号清理

  • 将非登录用户的Shell设为/sbin/nologin
usermod -s /sbin/nologin 用户名
  • 锁定长期不使用的账号
usermod -L 用户名       ###锁定用户名
usermod -U 用户名       ###解锁用户名
passwd -l 用户名        ###锁定用户名
passwd -u 用户名        ###解锁用户名
passwd -S 用户名        ###查看用户名
  • 删除无用的账号
userdel [-r] 用户名
  • 锁定账号文件passwd、shadow
chattr +i /etc/passwd /etc/shadow     ###锁定文件
chattr -i /etc/passwd /etc/shadow     ###解锁文件
lsattr /etc/passwd /etc/shadow        ###查看文件状态

密码安全控制

  • 设置密码有效期
  • 要求用户下次登陆时修改密码
[root@localhost ~]# vi /etc/login.defs              ###修改默认密码配置文件,适用于新建用户
......
PASS_MAX_DAYS   30                                  ###默认密码有效期为30[root@localhost /]# chage -M 30 用户                ###修改用户密码有效期为30[root@localhost /]# cat /etc/shadow | grep 用户     ###查看用户的账号配置信息

[root@localhost /]# chage -d 0 用户                 ###强制用户在下次登录时更改密码

命令实例:

在这里插入图片描述修改默认密码配置文件,适用于新建用户

今天的早饭真难吃——系统安全及应用_第1张图片更改 PASS_MAX_DAYS 这一行的参数

今天的早饭真难吃——系统安全及应用_第2张图片直接修改用户wolf的密码有效期并查验

今天的早饭真难吃——系统安全及应用_第3张图片强制用户wolf在下次登录时更改密码

命令历史限制

  • 减少记录的命令条数
  • 登录时自动清空命令历史
[root@localhost ~]# vi /etc/profile        ###用vi编辑器打开文件
export HISTSIZE=200                        ###设置记录的最高命令条数是200[root@localhost ~]# source /etc/profile    ###重新加载
[root@localhost ~]# . /etc/profile         ###用.代替source,也是重新加载的意思

[root@localhost ~]# vim /etc/rc.d/rc.local   ###用vi编辑器打开文件
echo " " > ~/.bash_history                   ###输入命令,设置登陆时自动清空命令历史
chmod +x /etc/rc.d/rc.loca                   ###激活文件

命令实例:

今天的早饭真难吃——系统安全及应用_第4张图片使用vim打开文件

今天的早饭真难吃——系统安全及应用_第5张图片输入限制最大命令历史数命令

今天的早饭真难吃——系统安全及应用_第6张图片重新加载

今天的早饭真难吃——系统安全及应用_第7张图片首先激活文件,然后再用vi编辑器打开

今天的早饭真难吃——系统安全及应用_第8张图片输入登录时自动执行的命令

今天的早饭真难吃——系统安全及应用_第9张图片使用 init 6 命令重启后,命令历史已经被清除了

使用su命令切换用户

用途及用法

  • 用途:Substitute User,切换用户
  • 格式su - 目标用户

密码验证

  • root→任意用户,不验证密码
  • 普通用户→其他用户,验证目标用户的密码
[wolf@localhost ~]$ su - root    ###带 - 选项表示将使用目标用户的登录Shell环境
密码:                            ###普通用户su其他用户时需要验证目标用户的密码
[root@localhost ~]# whoami       ###显示本用户信息
root

命令实例:

今天的早饭真难吃——系统安全及应用_第10张图片su实例

在这里插入图片描述whoami实例

限制使用su命令的用户

  • 将允许使用su命令的用户加入wheel组
  • 启用pam_wheel认证模块
[root@localhost ~]# vi /etc/pam.d/su
#%PAM-1.0
auth            sufficient      pam_rootok.so
auth            required        pam_wheel.so use_uid

命令实例:

今天的早饭真难吃——系统安全及应用_第11张图片将允许使用su命令的用户wolf加入wheel组,并使用vi打开配置文件

今天的早饭真难吃——系统安全及应用_第12张图片启用认证模块

今天的早饭真难吃——系统安全及应用_第13张图片配置成这样就可以了

查看su操作记录

  • 安全日志文件:/var/log/secure

Linux中的PAM安全认证

su命令的安全隐患

  • 默认情况下,任何用户都允许使用su命令,有机会反复尝试其他用户(如root)的登陆密码,带来安全风险
  • 为了加强su命令的使用控制,可借助于PAM认证模块,只允许个别用户使用su命令进行切换

PAM(Pluggable Authentication Modules)可插拔式认证模块

  • 是一种高效而且灵活便利的用户级别的认证方式
  • 也是当前Linux服务器普遍使用的认证方式

PAM认证原理

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

PAM认证的构成

查看某个程序是否支持PAM认证,可以用ls命令

示例:查看su是否支持PAM模块认证

la /etc/pam.d | grep su

查看su的PAM配置文件:`cat /etc/pam.d/su

  • 每一行都是一个独立的认证过程
  • 每一行可以区分为三个字段
    -认证类型
    -控制类型
    -PAM模块及其参数

PAM安全认证流程

控制类型也称作Control Flags,用于PAM验证类型的返回结果

  • required验证失败时任然继续,但返回Fail
  • requisite验证失败则立刻结束整个验证过程,返回Fail
  • sufficient验证成功则立即返回,不再继续,否则忽略结果并继续
  • optional不用于验证,只显示信息(通常用于session类型)

使用sudo机制提升权限

su命令的缺点

sudo命令的用途及用法

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

配置sudo授权

  • visudo或者vi /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

查看sudo操作记录

  • 需启用Defaults logfile配置
  • 默认日志文件:/var/log/sudo

查询授权的sudo操作

sudo -l

系统引导和登录控制

开关机安全控制

调整BIOS引导设置

  • 将第一引导设备设为当前系统所在硬盘
  • 禁止从其他设备(光盘、U盘、网络)引导系统
  • 将安全级别设为setup,并设置管理员密码

GRUB限制

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

终端登录安全控制

限制root只在安全终端登录

  • 安全终端配置:/etc/securetty
[root@localhost ~]# vi /etc/securetty

.......
#tty5
#tty6

禁止root用户从终端tty5、tty6登录

禁止普通用户登录

  • 建立/etc/nologin文件
  • 删除nologin文件或重启后即恢复正常
[root@localhost ~]# touch /etc/nologin        ###禁止普通用户登录

[root@localhost ~]# rm -rf /etc/nologin       ###取消上述登录限制

弱口令检测

Joth the Ripper,简称为 JR

  • 一款密码分析工具,支持字典式的暴力破解
  • 通过对shadow文件的口令分析,可以检测密码强度
  • 官方网站:http://www.openwall.com/john/

安装JR方法

  • 安装方法make clean 系统类型
  • 主程序文件为john

检测弱口令账号

  • 获得Linux/Unix服务器的shadow文件
  • 执行john程序,将shadow文件作为参数

密码文件的暴力破解

  • 准备好密码字典文件,默认为password.lst
  • 执行john程序,结合--wordlist=字典文件

端口扫描

NMAP

  • 一款强大的网络扫描、安全检测工具
  • 官方网站:http://nmap.org/
  • CentOS 7.3光盘中安装包nmap-6.40-7.el7.x86_64.rpm

你可能感兴趣的:(Linux系统管理)