系统账户安全及应用

系统账户安全及应用
基本安全措施
计算机所谓的清理,很大一部分并不是删除,而是不让它起作用。首先为了安全起见,会对系统自带的账号进行清理。也就是限制登录,不让它起作用。

  1. 系统账号清理
  1. 将非登录用户的shell修改为/sbin/nologin
    usermod -s
    chsh命令
    chsh -s
    还可以直接vim编辑/etc/passwd文件进行修改
    chsh命令 交互式修改用户的登录权限
    系统账户安全及应用
    chsh -s 非交互修改
    系统账户安全及应用
  2. 锁定长期不使用的账号
    passwd -l 将在密文前面加2个! 解锁passwd -u 查看passwd -s
    usermod -L 将在密文前加1个! 解锁usermod -u
    也可直接vim编辑/etc/shadow
  3. 删除无用账号(不推荐删除)
    userdel 用户名
    通过+i锁的方式锁定账号文件 /etc/passwd、/etc/shadow
    锁定:chattr +i 文件名 i锁通常用于很重要但是又不需要经常修改的文件
    解锁:chattr -i 文件名
    查看:lsattr 文件名 查看文件的特殊权限
    如果不加文件名,则是查看当前目录下的所有
    chattr只能超户使用,普通用户没有权限。+i锁定后的文件跳出了rwx读写执的范畴,强行进入只读权限,任何用户(包括超户)不允许进行任何修改,修改包括改变和新增。除非超户解除锁定。
    如果chattr +i锁定passwd文件就无法再创建用户,也无法再进行修改。
    系统账户安全及应用
    chattr +a 文件名
    chattr +a可以追加内容,但是不能修改内容。如果+a锁定passwd文件可以创建用户,但是不能修改用户。
  1. 密码安全控制
  1. 修改某个已存在的用户密码有效期
    chage -M 天数 用户名
    passwd -x 天数 用户名
    系统账户安全及应用
    系统账户安全及应用
  2. 设置今后添加用户的默认密码有效期
    用vim编辑/etc/login.defs文件,修改“PASS_MAX_DAY”后面的数值
    系统账户安全及应用
  3. 要求用户下次登录时修改密码
    chage -d 0 用户名
    系统账户安全及应用
    系统账户安全及应用
  1. 命令历史限制
    history查看历史记录
    history -c清空历史记录
    家目录下ls -a查看隐藏文件,文件.bash_history里也有记录。而且history -c无法清空。
  1. 减少历史的命令数量
    /etc/profile文件,系统全局变量文件,所有和变量相关的都应该放在这里。可以在此文件里修改任何系统全局变量,并且永久生效。
    编辑/etc/profile文件
    使用vim编辑/etc/profile文件,把“HISTSIZE=”后面的值修改为想要的数字。
    系统账户安全及应用
    export HISTSIZE=数值
    export全局生效命令,当前进程下所有子进程全部生效。export HISTSIZE=修改后的数值,仅当前用户环境下生效
    系统账户安全及应用
  2. 注销时自动清空历史命令
    vim编辑用户家目录下的.bash_logout文件,添加history -c
    系统账户安全及应用
  1. 终端自助注销
    TMOUT=数值 是在多长时间没有命令输入之后,退出登录
    vim编辑/etc/profile文件
    系统账户安全及应用
    source强制重新加载命令
    后加文件名,强制重新加载指定文件
    export TMOUT=任意数值
    系统账户安全及应用
    source强制重新加载命令
    后加文件名,强制重新加载指定文件
    .bash_logout退出时执行此文件
    为什么企业服务器用linux多
    linux操作系统里子进程如果没有对操作系统做任何改变(只是读取并没有修改),是不会给它分配操作空间的。用的还是父进程的空间。
    linux操作系统内存分配原理是 写时复制(copy on write)技术。这种技术会大大降低对内存的占用。
    切换用户su命令
    普通用户切换到别的用户都需要密码,只有超户切换到普通用户不需要密码。
    切换用户的同时,并没有关闭之前的用户。可通过exit退出当前bash回到之前的用户。
    格式 su [-] 目标用户
    参数
    -初始化环境变量,不加-环境变量不改变
    加不加-的区别
    环境变量不一样
    起始位置不一样
    如果不加-则延用之前用户的环境变量,这种方法有可能发生有些安装在用户家目录里的命令会找不到,加了-之后相当于重新登录一个用户一样。
    加不加-起始位置也会发生变化。加-会切换到用户家目录,不加则位置不发生变化。
    系统账户安全及应用
    su -c
    临时切换到某一个用户,执行一个命令,执行完自动返回到当前用户。切换到一个shell执行一个命令,然后退出所切换的用户环境。需要输入root的密码。
    系统账户安全及应用
    如果是root切换普通用户则不需要密码,通常用于/etc/rc/local文件里,因为此文件开机执行是以超户身份执行,但是为了确保安全有些进程必须以普通用户身份执行就会用到-c参数。
    查看su操作记录
    系统账户安全及应用
    提升权限sudo命令
    su命令的缺点
    系统账户安全及应用
    作用
    让普通用户临时执行超户的权限
    用法格式
    sudo 后加授权的命令,如果是未授权的命令则会被拒绝权限。
    sudo是提取权限,不是切换用户,所以输入的密码是自己账户的密码。默认为首次执行时,输入当前用户的登录密码,5分钟内再次执行sudo命令则无需再次输入密码。
    参数
    sudo -l
    查看当前用户在主机上可用的和被禁止的命令,配置好sudo权限后,可以用这个参数来查看授权情况。
    sudo -v
    验证用户的时间戳,当前用户运行sudo输入用户密码后,在短时间内不用再次输入密码也可直接进行sudo提权,用此参数可以跟踪最新的时间戳
    sudo -u
    指定以某个用户身份执行特定的命令操作
    sudo -k
    效果同-K,删除时间戳,下一个sudo命令需要提供密码,前提是该用户不能有NOPASSWD参数,时间戳默认5分钟也会失效
    对单用户授权
    visudo命令
    /etc/sudoers文件只能通过visudo命令才能修改,文件修改后只有文件关闭才会生效。
    /etc/sudoers文件里98行 root ALL=(ALL) ALL
    其中root为用户 第一个ALL是IP地址
    第二个(ALL)是主机名,可以不写代表所有主机名
    第三个ALL是所有的命令能干什么
    命令前加!取反代表不能使用那个命令,取反的命令要放到后面
    如果需要授权多个命令则用,逗号做区分
    Nopasswd是免密码 加在第二个ALL后面,第三个ALL前面
    系统账户安全及应用
    授权命令组,但限制具体命令
    系统账户安全及应用
    限制命令执行范围
    系统账户安全及应用
    对用户组授权
    %是对用户组授权,后加用户组名称
    系统账户安全及应用
    系统账户安全及应用
    配置sudo命令用户行为日志审计
    系统账户安全及应用