• 【Linux】系统安全及应用


    目录

    一、账号安全基本措施

    1.系统账号清理

    2.密码安全控制

    3.历史命令安全管理

    4.限制su切换用户

    1)将信任的用户加入到wheel组中    

    2)修改su的PAM认证配置文件

     5.ssh远程登录输入三次密码错误则锁定用户

     二、Linux中的PAM安全认证

    1.su命令的安全隐患

    2.PAM

    3.PAM认证原理

    4.PAM的配置文件

     三、使用sudo提权

    1.使用sudo

    2.配置sudo

    3.使用别名进行授权


    一、账号安全基本措施

    1.系统账号清理

    将非登录用户的Shell设为/sbin/nologin

    usermod -s /sbin/nologin 用户名

    锁定长期不使用的账号

    usermod -L 用户名
    passwd -l 用户名
    passwd -S 用户名

    删除无用的账号

    userdel [-r] 用户名

    锁定账号文件passwd、shadow

    chattr  +i  /etc/passwd /etc/shadow
    lsattr  /etc/passwd  /etc/shadow        #锁定文件并查看状态
    chattr  -i  /etc/passwd  /etc/shadow    #解锁文件

    2.密码安全控制

    设置密码有效期

    要求用户下次登录时修改密码

    参数说明
    -m密码可更改的最小天数,为0时代表任何时候
    -M密码保持有效的最大天数
    -w用户密码到期前,提前收到警告信息的天数
    -E账号到期的日期
    -d上一次更改的日期
    -i停滞时期。如果一个密码已过期这些天,那么此账号将不可用
    1. [root@bogon ~]# useradd lisi
    2. [root@bogon ~]# echo 123456 | passwd --stdin lisi
    3. 更改用户 lisi 的密码 。
    4. passwd:所有的身份验证令牌已经成功更新。
    5. [root@bogon ~]# chage -M 30 lisi #密码有效期为30天
    6. [root@bogon ~]# chage -M 99999 lisi #99999代表密码永不过期
    7. [root@bogon ~]# chage -d 0 lisi #用户下次登录修改密码

    3.历史命令安全管理

    查看历史命令        history
    限制历史命令数量    vim /etc/profile  -->  export HISTSIZE=XX  -->  source /etc/profile

    清空历史命令        history -c      #临时清空
                                vim /etc/profile  -->  > ~/.bash_history 

    4.限制su切换用户

    1)将信任的用户加入到wheel组中    

    gpasswd wheel -a 用户名

    1. [root@bogon ~]# useradd zhangsan
    2. [root@bogon ~]# gpasswd wheel -a zhangsan #将用户加入到wheel组中,就可以实现su切换用户
    3. 正在将用户“zhangsan”加入到“wheel”组中
    4. [root@bogon ~]# su zhangsan
    5. [zhangsan@bogon root]$ su root
    6. 密码:
    7. [root@bogon ~]#

    2)修改su的PAM认证配置文件

    vim /etc/pam.d/su -> 开启 auth   required   pam_wheel.so use_uid 的配置

     5.ssh远程登录输入三次密码错误则锁定用户

    vim /etc/pam.d/sshd  
    auth       required     pam_tally2.so  deny=3 unlock_time=600 even_deny_root root_unlock_time=600

     

     二、Linux中的PAM安全认证

    1.su命令的安全隐患

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

    2.PAM

    (Pluggable Authentication Modules)可拔插式认证模块
            是一种高效而且灵活便利的用户级别的认证方式
            也是当前Linux服务器普遍使用的认证方式

    3.PAM认证原理

            一般遵循的顺序:service(服务)->PAM(配置文件)->pam_*.so

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

    4.PAM的配置文件

    PAM的配置文件中的每一行都是一个独立的认证过程,它们按从上往下顺序依次由PAM模块调用

    第一列代表PAM认证模块类型
    auth:认证模块接口,如验证用户身份、检查密码是否可以通过,并设置用户凭据
    account:账户模块接口,检查指定账户是否满足当前验证条件,如用户是否有权访问所请求的服务,检查账户是否到期
    password:密码模块接口,用于更改用户密码,以及强制使用强密码配置
    session:会话模块接口,用于管理和配置用户会话。会话在用户成功认证之后启动生效

    第二列代表PAM控制标记
    required:模块结果必须成功才能继续认证,如果在此处测试失败,则继续测试引用在该模块接口的下一个模块,直到所有的模块测试完成,才将结果通知给用户。
    requisite:模块结果必须成功才能继续认证,如果在此处测试失败,则会立即将失败结果通知给用户。
    sufficient:模块结果如果测试失败,将被忽略。如果sufficient模块测试成功,并且之前的required模块没有发生故障,PAM会向应用程序返回通过的结果,不会再调用堆栈中其他模块。
    optional:该模块返回的通过/失败结果被忽略。一般不用于验证,只是显示信息(通常用于 session 类型)。
    include:与其他控制标志不同,include与模块结果的处理方式无关。该标志用于直接引用其他PAM模块的配置参数

    第三列代表PAM模块

    默认是在/lib64/security/目录下,如果不在此默认路径下,要填写绝对路径。
    同一个模块,可以出现在不同的模块类型中,它在不同的类型中所执行的操作都不相同,这是由于每个模块针对不同的模块类型编制了不同的执行函数。

    第四列代表PAM模块的参数

    这个需要根据所使用的模块来添加。
    传递给模块的参数。参数可以有多个,之间用空格分隔开
     

     三、使用sudo提权

    1.使用sudo

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

    用法:sudo 授权命令

    2.配置sudo

    vi  /etc/sudoers(此文件的默认权限为 440,保存退出时必须执行“:wq!”命令来强制操作)

    3.使用别名进行授权

    User_Alias  大写别名=用户1, 用户2, ...
    Host_Alias  大写别名=主机名1, 主机名2, ...
    Cmnd_Alias  大写别名=命令路径1, 命令路径2, ...
    用户别名  主机别名=命令别名

    补充知识:
    #设置sudo日志路径
    Defaults logfile = "/var/log/sudo.log"
    sudo -l           #普通用户查看有哪些sudo权限    

  • 相关阅读:
    《攻守道》笔记(2)
    前端技能树,面试复习第 26 天—— React Hook 的实现原理 | useState | 生命周期
    Ubuntu服务器安全性提升:修改SSH默认端口号
    The given SOAPAction http__xxxxx_xx does not match an operation
    疫情之下的裁员浪潮,7点建议帮你斩获心仪offer
    c:Bubble Sort
    一台电脑安装多个不同版本Python
    学生HTML网页作业:基于HTML+CSS+JavaScript画家企业8页
    LayaBox---TypeScript---类型兼容性
    frida工具Jnitrace | Objection | r0tracer
  • 原文地址:https://blog.csdn.net/weixin_68840588/article/details/138040179