系统安全及应用

徘徊边缘 提交于 2019-11-26 15:52:24

 系统安全及应用

 

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

  • 方法一: usermod -s
  • 方法二: chsh 命令,交互式修改
  • 方法三: chsh -s

(2)锁定长期不使用的账号

  • 方法一: passwd -l (将在密文前增加 2 个“!”)解锁 passwd -u 查看 passwd -S
  • 方法二: usermod -L(将在密文前增加 1 个“!”)解锁 usermod -U

(3)删除无用的账号

  • ·userdel [-r] 用户名 

(4)锁定账号文件 /etc/passwd、/etc/shadow

  • 锁定:chattr +i /etc/passwd /etc/shadow
  • 解锁:chattr -i /etc/passwd /etc/shadow
  • 查看:lsattr /etc/passwd /etc/shadow

2、密码安全控制
  方法一:设置密码有效期

  • 修改某个已存在用户的密码有效期:
    • chage -M 天数 用户名
    • passwd -x 天数 用户名
  • 设置今后添加用户时的默认密码有效期:
    • 方法:vi 编辑/etc/login.defs 文件,修改“PASS_MAX_DAY”后面的数值
  • 要求用户下次登录时修改密码
    • 方法:chage -d 0 用户名

3、命令历史限制
(1)减少历史的命令条数

  • 方法一:vi 编辑/etc/profile 文件,修改“HISTSIZE=”后面的数值
  • 方法二:export HISTSIZE=数值

(2)注销时自动清空历史命令

  • 方法:vi 编辑宿主目录下的“.bash_logout”文件,添加“history -c”

4、终端自动注销

  • 方法一:vi 编辑/etc/profile 文件,添加“TMOUT=数值”
  • 方法二:export TMOUT=数值

5、 提升权限 sudo 命令

(1)su 命令的缺点:

  在使用 su 命令时,不指定用户名默认切换至 root 用户,需要输入 root 密码,但实际生产中 root 密码是不可以被广泛告知的。

  如果需要执行 root 用户才有权限的命令,需要通过sudo 命令或 wheel 组的设置来实现。

(2)sudo 命令

  • 作用:以其他用户身份(默认 root 身份)执行授权的命令
  • 用法:

      sudo 授权命令

      默认设置为首次执行时,需输入当前用户的登录密码,5 分钟内再次执行 sudo 命令时则无需再输入密码。

  • 配置 sudo 授权:
    • 方法一:添加单个用户的 sudo 授权
      • visudo 或者 vi /etc/sudoers(效果相同),添加配置内容
      • 格式:用户 主机名列表=命令程序列表,命令前加“!”表示“除了”此命令
    • 方法二:批量授权
      • wheel 组
      • 别名
      • 根据示例以及实际需求,设置别名
      • 设置别名后,添加格式:用户别名 主机别名=命令别名(所有别名均大写)

 (3)查看 sudo 操作记录    

    • 方法:
      • 第一步:visudo 或者 vi /etc/sudoers 添加“Defaults logfile=/var/log/sudo”
      • 第二步:cat /var/log/sudo
        • 示例:启用 Defaults logfile 配置,给 amber 用户所有/sbin/以及/usr/sbin 下的命令执行权限,除了关机以及重启。
        • [root@www ~]# visudo

 (4)查询授权操作 sudo -l

6、PAM 安全认证

  1、su 命令的安全隐患

    默认情况下,任何用户都允许使用 su 命令,从而有机会反复尝试其他用户(如 root)的登录密码,带来安全风险。

    为了增强 su 命令的使用控制,可以借助 PAM 认证模块,只允许极个别用户使用 su 命令进行切换。

  2、可插拔认证模块 PAM(Pluggable Authentication Modules)

  (1)PAM 简介

    PAM 是一种高效而且灵活便利的用户级别的认证方式,它也是当前 Linux 服务器普遍使用的认证方式。

    PAM 提供了对所有服务进行认证的中央机制,适用于 login,远程登录(telent,rlogin,fsh,ftp),su 等应用程序。

    系统管理员通过 PAM 配置文件来制定不同应用程序的不同认证策略。

  (2)PAM 认证原理

     PAM 认证一般遵循的顺序:Service(服务)→PAM→pam_*.so

     PAM 认证首先要确定哪一项服务,然后加载相应的 PAM 的配置文件(位于/etc/pam.d下),最后调用认证文件(32 位系统位于/lib/security 下,64 位系统位于/lib64/security 下)进行安全认证。

     用户访问服务器的时候,服务器的某一个服务进程把用户的请求发送到 PAM 模块进行认证。不同的应用程序所对应的 PAM 模块也是不同的。

     如果想查看某个程序是否支持 PAM 认证,可以用 ls 命令进行查看,

     如查看 su 是否支持PAM 模块认证:ls /etc/pam.d|grep su

  3、PAM 认证的构成

    每一行都是一个独立的认证过程

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

  4、常见的四种认证类型    

      认证            类型             意义作用

       auth               认证管理       接受 用户名和密码,进而对该用户的密码进行认证

      account           账户管理      检查账户是否被允许登录系统,账号是否已过期,账号的登录是否有时间段的限制等 权限

      password     密码管理      主要是用来 修改用户的 密码

      session      会话管理      主要是提供 对会话的 管理和 记账

  5、常见的五种控制类型

  (1)required 验证失败时仍然继续,但返回 Fail

  (2)requisite 验证失败则立即结束整个验证过程,返回 Fail

  (3)sufficient 验证成功则立即返回,不再继续,否则忽略结果并继续

  (4)optional 不用于验证,只是显示信息(通常用于 session 类型)

  (5)include 不进行认证,转到后面 PAM 模块进行认证

  6、使用 PAM 认证模块,限制某个命令或是服务的使用权限

  (1)vi 编辑该命令在/etc/pam.d/下对应的配置文件,启用 pam_wheel 模块

  (2)添加授权用户到 wheel 组  

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

  • 方法一: usermod -s
  • 方法二: chsh 命令,交互式修改
  • 方法三: chsh -s

(2)锁定长期不使用的账号

  • 方法一: passwd -l (将在密文前增加 2 个“!”)解锁 passwd -u 查看 passwd -S
  • 方法二: usermod -L(将在密文前增加 1 个“!”)解锁 usermod -U

(3)删除无用的账号

  • ·userdel [-r] 用户名 

(4)锁定账号文件 /etc/passwd、/etc/shadow

  • 锁定:chattr +i /etc/passwd /etc/shadow
  • 解锁:chattr -i /etc/passwd /etc/shadow
  • 查看:lsattr /etc/passwd /etc/shadow

2、密码安全控制
  方法一:设置密码有效期

  • 修改某个已存在用户的密码有效期:
    • chage -M 天数 用户名
    • passwd -x 天数 用户名
  • 设置今后添加用户时的默认密码有效期:
    • 方法:vi 编辑/etc/login.defs 文件,修改“PASS_MAX_DAY”后面的数值
  • 要求用户下次登录时修改密码
    • 方法:chage -d 0 用户名

3、命令历史限制
(1)减少历史的命令条数

  • 方法一:vi 编辑/etc/profile 文件,修改“HISTSIZE=”后面的数值
  • 方法二:export HISTSIZE=数值

(2)注销时自动清空历史命令

  • 方法:vi 编辑宿主目录下的“.bash_logout”文件,添加“history -c”

4、终端自动注销

  • 方法一:vi 编辑/etc/profile 文件,添加“TMOUT=数值”
  • 方法二:export TMOUT=数值

5、 提升权限 sudo 命令

(1)su 命令的缺点:

  在使用 su 命令时,不指定用户名默认切换至 root 用户,需要输入 root 密码,但实际生产中 root 密码是不可以被广泛告知的。

  如果需要执行 root 用户才有权限的命令,需要通过sudo 命令或 wheel 组的设置来实现。

(2)sudo 命令

  • 作用:以其他用户身份(默认 root 身份)执行授权的命令
  • 用法:

      sudo 授权命令

      默认设置为首次执行时,需输入当前用户的登录密码,5 分钟内再次执行 sudo 命令时则无需再输入密码。

  • 配置 sudo 授权:
    • 方法一:添加单个用户的 sudo 授权
      • visudo 或者 vi /etc/sudoers(效果相同),添加配置内容
      • 格式:用户 主机名列表=命令程序列表,命令前加“!”表示“除了”此命令
    • 方法二:批量授权
      • wheel 组
      • 别名
      • 根据示例以及实际需求,设置别名
      • 设置别名后,添加格式:用户别名 主机别名=命令别名(所有别名均大写)

 (3)查看 sudo 操作记录    

    • 方法:
      • 第一步:visudo 或者 vi /etc/sudoers 添加“Defaults logfile=/var/log/sudo”
      • 第二步:cat /var/log/sudo
        • 示例:启用 Defaults logfile 配置,给 amber 用户所有/sbin/以及/usr/sbin 下的命令执行权限,除了关机以及重启。
        • [root@www ~]# visudo

 (4)查询授权操作 sudo -l

6、PAM 安全认证

  1、su 命令的安全隐患

    默认情况下,任何用户都允许使用 su 命令,从而有机会反复尝试其他用户(如 root)的登录密码,带来安全风险。

    为了增强 su 命令的使用控制,可以借助 PAM 认证模块,只允许极个别用户使用 su 命令进行切换。

  2、可插拔认证模块 PAM(Pluggable Authentication Modules)

  (1)PAM 简介

    PAM 是一种高效而且灵活便利的用户级别的认证方式,它也是当前 Linux 服务器普遍使用的认证方式。

    PAM 提供了对所有服务进行认证的中央机制,适用于 login,远程登录(telent,rlogin,fsh,ftp),su 等应用程序。

    系统管理员通过 PAM 配置文件来制定不同应用程序的不同认证策略。

  (2)PAM 认证原理

     PAM 认证一般遵循的顺序:Service(服务)→PAM→pam_*.so

     PAM 认证首先要确定哪一项服务,然后加载相应的 PAM 的配置文件(位于/etc/pam.d下),最后调用认证文件(32 位系统位于/lib/security 下,64 位系统位于/lib64/security 下)进行安全认证。

     用户访问服务器的时候,服务器的某一个服务进程把用户的请求发送到 PAM 模块进行认证。不同的应用程序所对应的 PAM 模块也是不同的。

     如果想查看某个程序是否支持 PAM 认证,可以用 ls 命令进行查看,

     如查看 su 是否支持PAM 模块认证:ls /etc/pam.d|grep su

  3、PAM 认证的构成

    每一行都是一个独立的认证过程

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

  4、常见的四种认证类型    

      认证            类型             意义作用

       auth               认证管理       接受 用户名和密码,进而对该用户的密码进行认证

      account           账户管理      检查账户是否被允许登录系统,账号是否已过期,账号的登录是否有时间段的限制等 权限

      password     密码管理      主要是用来 修改用户的 密码

      session      会话管理      主要是提供 对会话的 管理和 记账

  5、常见的五种控制类型

  (1)required 验证失败时仍然继续,但返回 Fail

  (2)requisite 验证失败则立即结束整个验证过程,返回 Fail

  (3)sufficient 验证成功则立即返回,不再继续,否则忽略结果并继续

  (4)optional 不用于验证,只是显示信息(通常用于 session 类型)

  (5)include 不进行认证,转到后面 PAM 模块进行认证

  6、使用 PAM 认证模块,限制某个命令或是服务的使用权限

  (1)vi 编辑该命令在/etc/pam.d/下对应的配置文件,启用 pam_wheel 模块

  (2)添加授权用户到 wheel 组  

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!