• Linux:系统安全及应用


    一、账号安全控制

    1、账号安全基本措施
    (1)系统账号清理
    a、将非登录用户的Shall设为/sbin/nologin

    usermod -s/sbin/nologin 用户名

    b、锁定长期不使用的账号

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

    passwd -S 用户名

    c、删除无用的账号

    userdel[-r]用户名

    d、锁定账号文件passwd、shadow

    chattr +i/etc/passwd/etc/shadow(锁定文件并查看状态)

    isattr /etc/passwd/etc/shadow

    chattr -i/etc/passwd/etc/shadow(解锁文件)

    账号安全管理
    禁止程序用户登录             usermod -s /sbin/nologin 用户名
    锁定禁用长期不使用的用户     passwd -l 用户名       usermod -L 用户名        #查看锁定账号状态  passwd -S 用户名
    删除无效用户                 userdel -r 用户名
    禁止账号和密码的修改         chattr +i /etc/passwd /etc/shadow               #查看锁定文件状态  lsattr 文件名
     

    (2)密码安全控住
    a、设置密码有效期

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

    [root@localhost~]# vi/etc/login.defs(修改密码配置文件适用于新建用户)

    PASS_MAX_DAYS    30

    [root@localhost~]# chage-M 30 lisi(适用于已有用户)

    [root@localhost~]# cat/etc/shadow | grep lisi

     [root@localhost~]# chage -d 0 zhangsan(强制在下次登录时更改密码)

    [root@localhost~]# cat /etc/shadow | grep zhangsan(shadow文件中的第三个字段被修改为0)

    密码安全管理
    设置密码有效期               chage -M 天数  用户名                            #针对已存在的用户,天数为 99999 表示为永不过期
                                 vim /etc/login.defs  -->  PASS_MAX_DAYS 天数     #针对新建的用户
    强制用户下一次登录修改密码   chage -d 0 用户名


    (3)命令历史限制
    a、减少记录的命令条数

    b、登录时自动清空命令历史

    (4)终端自动注销
    a、闲置600秒后自动注销

    历史命令安全管理
    查看历史命令        history
    限制历史命令数量    vim /etc/profile  -->  export HISTSIZE=XX  -->  source /etc/profile
    清空历史命令        history -c      #临时清空
                        vim /etc/profile  -->  > ~/.bash_history

    2、使用su命令切换用户


    (1)限制使用su命令的用户
    a、将允许使用su命令的用户加入wheel组

    b、启用pam_wheel认证模块

    限制su切换用户
    1)将信任的用户加入到wheel组中     gpasswd wheel -a 用户名
    2)修改su的PAM认证配置文件         vim /etc/pam.d/su -> 开启 auth   required   pam_wheel.so use_uid 的配置

    ssh远程登录输入三次密码错误则锁定用户
    vim /etc/pam.d/sshd  
    auth       required     pam_tally2.so  deny=3 unlock_time=600 even_deny_root root_unlock_time=600


    sudo提权


    visudo     vim /etc/sudoers (要用 wq! 强制保存)
    #用户/组授权
    用户名  主机名=程序列表                 #命令要用绝对路径表示,支持使用通配符 * 表示所有, ! 表示取反
    %组名 主机名=程序列表
    用户名  主机名=NOPASSWD: 程序列表       #NOPASSWD: 表示sudo不用密码验证

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

    #设置sudo日志路径
    Defaults logfile = "/var/log/sudo.log"

    sudo -l           #普通用户查看有哪些sudo权限       


    如何查看进程是否已经开启?
    systemctl status 进程名
    ps aux/-elf | grep 进程名 
    netstat/ss -lntup | grep 进程名/:端口
    lsof -i :端口  


    如何通过端口查看进程号?
    netstat -lntup | grep :端口
    ss -lntup | grep :端口
    lsof -i :端口 

  • 相关阅读:
    应用商店的ASO和搜索引擎的SEO的区别
    面试经典150题 -- 二叉树 (总结)
    java毕业设计——基于java+J2EE+sqlserver的SMART在线考试系统设计与实现(毕业论文+程序源码)——在线考试系统
    【T690 之十一】基于方寸EVB2开发板,结合 Eclipse+gdb+gdbserver 调试 CCAT 的流程总结
    2022前端CSS经典面试题
    简单聊一聊公平锁和非公平锁,parallel并行流
    用go设计开发一个自己的轻量级登录库/框架吧
    Java 21新特性:Sequenced Collections(有序集合)
    采集拼多多商品详情api接口
    机器学习实战练手项目
  • 原文地址:https://blog.csdn.net/2401_83784927/article/details/139284770