• linux操作系统的安全配置


    账号安全配置

    1. 基本安全配置
    • 系统账号清理锁定

      1. 超级用户 root

      2. 程序用户 登录shell--> /sbin/nologin

        对于一些长期不用的可以删除 userdel 用户名

      3. 普通用户 登录shell--> /etc/passwd

      4. 对于一些账号不能删除可以锁定
        usermod passwd

      usermod -L zhangsan #锁定
      passwd -S zhangsan  #查看状态
      
      usermod -U zhangsan  #解锁
      passwd -S zhangsan
      
      passwd -l zhangsan #锁定
      passwd -u zhangsan  #解锁
      
      1. +锁 +i 锁 -i 解锁 锁定之后即不可以写东西也不可以删东西

      使用lsattr查看文件锁定情况

      1. +a锁 -a锁(只适用于日志) 同i 锁定之后只可以写东西,不能删
        写东西时用echo "5678" >> 1.txt

      2. 密码安全控制

      为了降低密码暴力破解(穷举)风险,限制用户定期修改密码

      vim /etc/login.defs  //使用于新建用户
      chage -d 0 zhangsan  //下次登录必须修改密码
      

      1. 命令历史

      history #查看
      为了保险与安全,设置历史命令自动消除或者保留数量较少

      source /etc/profile  
      echo $HISTSIZE   #查看保留数量
      HISTSIZE=5 #设置保留数量
      

      除此之外还可以修改~/.bash_logout文件,添加清空命令的命令

      用户退出时自动清除命令

      1. 自动注销

      设置锁屏时间

    1. 用户切换与提权
    • su 切换用户

      root切换普通用户加‘-’不需要密码,且还是root的虚拟环境
      普通用户切换root时需要密码

      此时exit不是退出,可以理解成返回

    • 安全日志/var/log/secure #记录su验证,和shell的开启
      tail /var/log/secure

    • sudo 提权
      让普通用户拥有一部分的管理权限,默认的权限类型为440(rr-),在/etc/sudoers 文件中,只能用!强制保存

      visudo 提权

      visudo -c #会提示是否检查出错
      

      vim /etc/sudoers

      格式:user MACHINE=COMMANDS

      • 用户(user):直接授权用户名,或采用“%组名”的方式授权一个组
      • 主机(MACHINE):使用此配置文件的主机名称,一般为localhost
      • 命令(COMMANDS):允许授权的用户
      # sudo 语法
      user MACHINE=COMMANDS
      
      ## Syntax:
      ##
      ## 	user	MACHINE=COMMANDS
      ##
      ## The COMMANDS section may have other options added to it.
      ##
      ## Allow root to run any commands anywhere 
      root	ALL=(ALL) 	ALL
      
      -1.root:	用户
        
      -2.ALL:代表用户可以在哪台机器上执行指令,通常设置为ALL,如果设置为localhost代表在本机上执行指令。
        也可以设置为本机以外的其他IP地址或主机名,此时该/etc/sudoers虽然是在本机上配置的,但用户登录到本机 后仍然是无法执行命令的,如果把/etc/sudoers这个配置文件赋值到指定ip或主机名的那台机器上,就好用了
        配置文件中讲到:
        ## Next comes the main part: which users can run what software on 
        ## which machines (the sudoers file can be shared between multiple 
        ## systems).
        即/etc/sudoers文件可以在多个系统之间共享,如果我们设置成ALL的话就省事了,该文件复制到人任 意一台机器 上的完成的权限配置都一样
        
      -3.(All): 表示允许用户以哪个用户的权限做事情
      
      -4.ALL:	所有命令
        
      最终解释:root用户可以在所有主机上以任意用户身份执行所有命令
      
      root    ALL=(ALL)       ALL
      bibibi  ALL=(ALL)       ALL    
      # bibibi用户在任何机器上,可以以任何用户身份执行任何命令等同 于root用户
      user10  ALL=(ALL)       /bin/cp,/bin/touch
      # 只允许user10用户以root用户身份执行cp,touch命令
      lili 		ALL=(ALL) 	NOPASSWD: ALL # 免密
      egon01 ALL=(ALL) ALL,!/usr/bin/vim /test/a.txt 
      # !代表取反 
      egon02 ALL=(ALL) /usr/bin/passwd [a-zA-Z]*,/usr/bin/vim *,!/usr/bin/vim /test/a.txt # 可以编辑所有文件,除了/test/a.txt
        
      # 测试
      [bibibi@arther-linux ~]$ cat /etc/shadow
      cat: /etc/shadow: Permission denied
      [bibibi@arther-linux ~]$ sudo cat /etc/shadow
      [sudo] password for bibibi:  # 输入用户自己的密码
      # 执行成功
      
      ps: sudo 执行流程 
        1.普通用户执行sudo命令, 会检查/var/db/sudo是否存在时间戳缓存 
        2.如果存在则不需要输入密码, 否则需要输入用户与密码 
        3.输入密码会检测是否该用户是否拥有该权限 
        4.如果有则执行,否则报错退出      
      

      cat /var/lof/sudo查看sudo的日志

  • 相关阅读:
    java中Objenesis库简单使用
    java魔法类之ReflectionFactory介绍
    求与一个数最接近的2的N次幂
    java魔法类之Unsafe介绍
    java中如何通过程序检测线程死锁
    jQuery.fullpage自定义高度(demo详解)
    angular diretive中 compile controller link的区分及编译顺序
    div水平垂直居中的几种方法(面试问题)
    angular 双ng-repeat显示隐藏
    快速应用rem
  • 原文地址:https://www.cnblogs.com/wml3030/p/15191176.html
Copyright © 2020-2023  润新知