Linux系统安全常规优化--经典(一)

系统安全常规优化
一:用户账户安全优化
     用户账号,是计算机使用者的身份凭证或标识,每一个要访问系统资源的人,必须凭借他的用户账号才能进入计算机。在 Linux 系统中,提供了多种机制来确保用户账号的正当、安全使用。
(一):基本安全措施
1 :删除系统中不适用的用户和组(两种方式)
Linux 系统中,一些程序在安装时会创建特有的用户和组,这些用户仅仅用于启动服务或运行进程,通常是不允许登录的,例如 MySQL Apache named news……. 。当攻击者假冒这些用户或组身份时,往往不易被管理员发现。
根据当前服务器的具体应用情况,可以将不使用的用户和组删除。例如,很少使用的用户、组包括; news uucp games gopher 等。如果服务不需要启用 named 服务器,那么就可以删除 named 用户、 named 组;如果不需要提供 FTP 服务,就可以删除 ftp 用户、 ftp ………
如果不确定用户是否应该删除,也可以暂时禁用该用户。
(1)   使用带“ -l ”选项的 passwd 命令可以锁定( lock )用户,“ -u ”选项用于解锁
 
这里可以看到在 /etc/shadow 文件中 zhangsan 用户加了“!”表示用户被锁定
只需将“!”去掉即可解锁或者使用“ -u
检测张三用户是否可以登录
(2)   直接修改 shadow 文件,在用户的密码字符串前加“!”
 2 :确认程序或服务用户的登录 Shell 不可用
     主要检查服务器运行必须的系统服务或程序的运行账号,如: rpm ftp apache dovecot 等,将这些用户账号的登录 shell 修改为“ /sbin/nologin , 即可禁止登录。
将不需要使用终端的用户的登录 Shell 改为 /sbin/nologin
Vim /etc/shadow 或者 usermod �Cs /sbin/nologin  rpm
 3: 限制用户的密码有效期(最大天数)
       在不安全的网络环境中,为了降低密码被猜出或被暴力破解的风险,用户应养成定期更改密码的习惯,避免长期使用同一个密码。管理员可以在服务器端口限制用户密码的最大有效天数。
用户在登录服务器时,如果密码已经超过有效期,系统会要求重新设置一个新的密码,否则将无法登录。
 4 :制定用户在下次登录时必须修改密码
或者将 shadow 文件中 zhangsan 用户 LAST DAY 域(冒号“:”分隔的第 3 列)的值设为 0
  5 :限制用户密码的最小长度
        red hat Linux 系统中,主要基于 cracklib 模块检查用户密码的复杂性和安全强度,增加 minlen (最小长度)参数的值可以有效地提高密码的安全性。缺省情况下, minlen 的默认值为 10. ,对应的用户口令最短长度约为 6 (需要注意 ,cacklib 基于密码串长度和复杂性同时进行检查,因此 minlen 的值并不直接代表用户设置密码的长度)。
        例;通过 PAM( 可插拔认证模块 ) 机制修改密码最小长度限制,强制提高用户自设密码时的安全强度(密码太短或太简单时将设置不成功)。
  6 :限制记录命令历史的条数
          在使用 Linux 命令终端的过程中, shell 的命令历史机制为用户提供了极大的便利。另一方面,命令历史记录也给用户带来了潜在的风险。只要获得用户的命令历史记录文件,那么该用户在服务器中的命令操作过程将会一览无余,假设该用户曾经在命令历史输入过明文的密码,则无意中又为服务器系统的安全性打开了一个缺口。
设置当前用户在注销登录后自动清空历史命令
  7 :设置闲置超时自动注销终端
          在使用 bash 终端时,可以设置一个 TMOUT 变量,当超过指定的时间(默认单位为秒)没有输入即自动注销终端。设置恰当的终端闲置超时时间,可以有效的避免当管理员不在时其他人员对服务器的误操作风险。
(二): 使用 su 切换用户身份
      在大多数的 Linux 系统服务中,通常不建议用户直接使用 root 用户登录系统。这样一方面尽可能的减少了以“超级用户”身份发生误操作的可能性,另一方面也降低了 root 密码在不安全的网络中被泄露(或者暴力破解)的风险。
      Linux 系统为我们提供了 su substitute user ,潜换用户)命令工具,主要用于切换用户身份,使用 su 命令,可以临时以另一个系统用户的身份来完成工作,当然,需要提供目标用户的密码。
     Su - 用户名   其中“ - ”可选项相当于“ ―login ”,表示使用目标用户的登录 Shell login Shell )环境、工作目录、 PATH 变量等。若不是用“ - ”选项,则保持原有的用户环境不变。
     如果当前用户不是 root 用户,则使用 su 命令切换为其他用户(包括 root 用户)时,需要输入目标用户登录的密码,省略用户名参数时, su 命令默认将用户身份切换为 root
   Su 权限设置的用法:
修改 PAM 设置,添加 pam_wheel 认证(将此行首 # 去掉)
验证 su 限制效果
(三): 使用 sudo 提升执行权限
sudo 命令工具提供了一种机制,只需要预先在 /etc/sudoers 配置文件中进行授权,即可以允许特定的用户以超级用户(或其他普通用户)的身份执行命令,而该用户不需要知道 root 用户(或其他普通用户)的密码。
1 /etc/sudoers 配置文件
  /etc/sudoers 文件的默认权限为 440 ,通常使用专门的 visudo 命令进行编辑,如果直接使用 vim 命令编辑,则在保存文件的时候需要使用: w! ,否则系统将提示为只读文件而拒绝保存。在 /etc/sudoers
  文件中,常见的配置语法格式为: user+ 主机 + 命令
(1)        授权用户 zhangsan 可以以 root 权限执行 ifconfig 命令
或者可以用别名(将表中内容对应写入配置文件中)
User-Alias
SYSVCTRL=jerry,tom,zhangsan
Host_Alias
MAILSERVERS=smtp pop
Cmnd_Alias
SOFTWARE=/bin/rpm, /usr/bin/yum
 
(2)        通过别名定义一组命令,并授权用户 zhangsan 可以使用改组命令
(3)        授权 wheel 组的用户不需要验证密码即可执行所有命令
(4)        在指定允许用户执行的命令列表时,可以使用通配符“ * ”、 取反符号“!”(可以禁止用户使用某些命令)
 2 :使用 sudo 执行命令
sudo �Cl  查看当前用户被授权使用的命令
sudo �Ck  可以清除 timestamp 时间戳标记,再次使用 sudo 命令 时需要重新验证密码
sudo-v   可以重新更新时间戳(必要时系统会再次询问用户密码)

你可能感兴趣的:(linux,职场,休闲)