系统安全及应用

一、账号安全基本措施

  1.1 系统账号清理

  •     将系统设置成无法登录
  •     锁定账户
  •     删除账户
  •     锁定账户密码

  1.1.1 将系统设置成无法登录

    [root@localhost ~ ] #    tail /etc/passwd                       #  查看lisi的属性

    [root@localhost ~ ] #    chsh -s /sbin/nologin lisi         #   修改lisi的shell属性

    [root@localhost ~ ] #    tail -1 /etc/passwd                  #   查看lisi的属性

  1.1.2 锁定账户 

    [root@localhost ~ ] #    passwd -l zhaosi                锁定用户zhaosi的密码

    [root@localhost ~ ] #    su zhangsan                       切换用户为zhangsan

    [zhangsan@localhost ~ ] #    su zhaosi                   鉴定故障zhaosi

    [root@localhost ~ ] #    passwd -u zhaosi               解锁用户zhaosi的密码

  1.1.3 删除用户

     格式:userdel -r 用户名

  1.1.4 锁定配置文件

    chattr

选项 功能
-a 追加文件或目录
-i 不得任意更改文件或目录

  

  1.2 切换用户

    格式:su [options...] [-] [user [args...]]

    切换用户的方式:

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

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

    说明:root切换至其他用户无须密码;非root用户切换时需要密码

    su和su - 的区别

      su - 这个选项切换的更加彻底;而su这个选项只能切换一部分

    限制使用su命令的用户

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

  1.3 PAM安全认证

    PAM提供了对所有服务进行认证的中央机制,适用于本地登录,远程登录。

     [root@localhost ~ ] #    rpm -qi pam        查看当前系统pam

     [root@localhost ~ ] #    rpm -ql pam        查看当前模块

   1.3.1 PAM相关文件
  •       包名: pam
  •       模块文件目录:/lib64/security/*.so
  •       特定模块相关的设置文件:/etc/security/
  •       man 8 + 模块名 可以查看帮助
  •       应用程序调用PAM模块的配置文件
  1. 主配置文件:/etc/pam.conf,默认不存在,一般不使用主配置

  2. 为每种应用模块提供一个专用的配置文件:/etc/pam.d/APP_NAME

  3. 注意:如/etc/pam.d存在,/etc/pam.conf将失效

  1.3.2 PAM工作原理

    PAM认证的顺序:Service(服务)→PAM(配置文件)→pam_*.so

  1.3.3 专门配置文件/etc/pam.d/格式

    格式:type        control        module-path        arguments

     type:指模块类型

     control :PAM库该如何处理与该服务相关的PAM模块的成功或失败情况,一个关键词实现

     module-path: 用来指明本模块对应的程序文件的路径名

     Arguments: 用来传递给该模块的参数

   模块类型

      Auth 账号的认证和授权

  •       Account 帐户的有效性,与账号管理相关的非认证类的功能
  •       Password 用户修改密码时密码复杂度检查机制等功能
  •       Session 用户会话期间的控制

  Control

    required 一票否决 如果失败,一定失败,但是会继续运行验证

    requisite 一票否决 如果失败会立即结束验证,同时反馈失败

    sufficient 验证成功则立即返回,暴露再继续,否则忽略结果并继续

  第三列代表PAM模块

    默认是在/lib64/security/目录下,如果不在此默认路径下,要填写绝对路径。

    每一行可以区分为三个字段: 认证类型 控制类型 PAM 模块及其参数

    PAM 认证类型包括四种:

  1.       认证管理
  2.       账户管理
  3.       密码管理
  4.       会话管理

  1.3.4 Shell模块

    作用:规定检查shell,pam_shells 只允许 规定的shell类型通过,而且它是在/etc/shells 文件中存在的。

    命令:man pam_shells。

   1.3.5 pam_nologin.so模块

      如果/etc/nologin文件存在,将导致非root用户不能登陆,当该用户登陆时,会显示/etc/nologin文件内容,并拒绝登陆。

      此模块对ssh登录有效,但不影响su登录

  1.3.6 limit

    在用户级别实现对其可使用的资源的限制。

选项 功能
-H 设置硬件资源,一旦设置无法添加
-S 设置软件资源,可以添加但不能超过硬件资源
-a 显示当前所有的limit信息
-c 最大的core文件大小,单位为blocks
-d 进程最大的数据段,单位为Kbytes
-f 最大创建的文件量,单位为blocks
-l 最大可枷锁内存的大小,单位为Kbytes
-m 最大内存,单位为Kbytes
-n 最大文件描述符数量
-p 管道缓冲区大小,单位为Kbytes
-s 线程栈大小,单位为Kbytes
-t 最大CPU占用时间,单位为秒
-u 用户最大可用进程数
-v 进程可用最大的虚拟内存,单位为Kbytes

  1.4 sudo

    允许系统管理员让普通用户执行一些或者全部的root命令的一个工具,udo使一般用户不需要知道超级用户的密码即可获得权限。

    配置文件格式说明:/etc/sudoers,/etc/sudoers.d/

  1.4.1 别名

    sudo别名有四种类型:

      User_Alias(用户)

      Runas_Alias(代表用户)

      Host_Alias(登录主机)

      Cmnd_Alias(命令)

    注意:别名格式必须大写字母,数字可以使用但是不能放在开头

相关推荐

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-08 15:30:03       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-08 15:30:03       100 阅读
  3. 在Django里面运行非项目文件

    2024-01-08 15:30:03       82 阅读
  4. Python语言-面向对象

    2024-01-08 15:30:03       91 阅读

热门阅读

  1. python-日志模块以及实际使用设计

    2024-01-08 15:30:03       59 阅读
  2. 【Unity】动态申请权限

    2024-01-08 15:30:03       90 阅读
  3. Unity游戏引擎的未来进化展望

    2024-01-08 15:30:03       56 阅读
  4. Spring之依赖注入的方式

    2024-01-08 15:30:03       52 阅读
  5. Golang leetcode242有效字符异位词 哈希表map 排序

    2024-01-08 15:30:03       51 阅读
  6. Redis 哨兵主备切换的数据丢失问题解决方案

    2024-01-08 15:30:03       56 阅读
  7. vue中的防抖和节流

    2024-01-08 15:30:03       62 阅读
  8. Ubuntu 24.04 Preview 版安装 libtinfo5

    2024-01-08 15:30:03       67 阅读
  9. React16源码: React中FiberRoot的源码实现

    2024-01-08 15:30:03       60 阅读
  10. 导致服务器重启的原因都有哪些,要如何处理

    2024-01-08 15:30:03       60 阅读
  11. Linux修改内核默认启动项

    2024-01-08 15:30:03       45 阅读