系统安全及应用

一、账号安全措施

系统账号清理

  • 将用户设置为无法登录

  • 锁定账户

  • 删除账户

  • 锁定账户密码 本质锁定

1. 锁定配置文件 - chattr

-a        让文件或目录仅供附加用途。只能追加

-i         不得任意更动文件或目录

系统安全及应用_第1张图片

2. 密码安全控制

对于新建用户

        可以修改 /etc/login.defs 文件里的内容来设置密码规则

对于已有用户

        可以使用chage命令

chage [选项] 用户名
        -m:密码可更改的最小天数。为零时代表任何时候都可以更改密码。
        -M:密码保持有效的最大天数。
        -w:用户密码到期前,提前收到警告信息的天数。
        -E:帐号到期的日期。过了这天,此帐号将不可用。
        -d:上一次更改的日期。
        -i:停滞时期。如果一个密码已过期这些天,那么此帐号将不可用。
        -l:例出当前的设置。由非特权用户来确定他们的密码或帐号何时过期。

3. 命令历史

history:查看历史命令,默认一千条。通过修改/etc/profile文件中的HISTSIZE变量值,可以影响系统中的所有用户。

可以使用以下命令临时清除历史命令
        history -c 
        clear

二、切换用户 - su

su命令即 switch user,命令 可以切换用户身份,并且以指定用户的身份执行命令。

通式: su [options...] [-] [user [args...]]

切换用户的方式:

        su UserName:非登录式切换,即不会读取目标用户的配置文件,不改变当前工作目录,即不完全切换

        su - UserName:登录式切换,会读取目标用户的配置文件,切换至自已的家目录,即完全切换

        说明:root用户su至其他用户无须密码;非root用户切换时需要密码

        注意:su切换新用户后,使用 exit 退回至旧的用户身份,而不要再用 su 切换至旧用户,否则会生成很多的bash子进程,环境可能会混乱。

su 与 su -

        即有 - 选项,切换用户身份更彻底;反之,只切换了一部分,这会导致某些命令运行出现问题或错误(例如无法使用 service 命令)。

         限制使用su命令的用户

gpasswd -a lisi wheel

        #将用户加入 wheel组

wheel组权限比root组高

系统安全及应用_第2张图片

# auth sufficient pam_rootok.so
# auth required pam_wheel.so use_uid

a) 以上两行是默认状态(即开启第一行,注释第二行),这种状态下是允许所有用户间使用su命令进行切换的。
b) 两行都注释也是允许所有用户都能使用su命令,但root'下使用su切换到其他普通用户需要输入密码;如果第一行不注释,则root使用su切换普通用户就不需要输入密码(pam rootok. so模块的主要作用是使uid为0的用户,即root用户能够直接通过认证而不用输入密码。)
c) 如果开启第二行,表示只有root用户和wheel组内的用户才可以使用su命令
d) 如果注释第一行,开启第二行,表示只有whee1组内的用户才能使用su命令,root用户也被禁用su命令。

三、PAM安全认证

PAM提供了对所有服务进行认证的中央机制,适用于本地登录,远程登录。

查看当前系统pam:rpm -qi pam

系统安全及应用_第3张图片

查看模块:rpm -ql pam

系统安全及应用_第4张图片

PAM相关文件

  • 包名: pam

  • 模块文件目录:/lib64/security/*.so

  • 特定模块相关的设置文件:/etc/security/

  • man 8 加模块名 可以查看帮助

  • 应用程序调用PAM模块的配置文件

  1. 主配置文件:/etc/pam.conf,默认不存在,一般不使用主配置

  2. 为每种应用模块提供一个专用的配置文件:/etc/pam.d/APP_NAME

  3. 注意:如/etc/pam.d存在,/etc/pam.conf将失效

/usr/lib64/security          存放功能模块

/etc/security                  复杂的配置文件
/etc/pam.d/                    存放配置文件

PAM控制类型

required:一票否决,如果失败最后一定会失败,但是会继续进行验证

requisite:一票否决,如果失败会立即结束验证,反馈失败

sufficient:验证成功则立即返回,不在继续,否则忽略结构并继续

optional:不用于验证,只是显示信息

四、shell模块

功能:检查有效shell,pam_shells.so 只允许规定的shell类型通过, 是在/etc/shells文件中存在的类型通过

帮助:man pam_shells

系统安全及应用_第5张图片

系统安全及应用_第6张图片

系统安全及应用_第7张图片

securetty模块

功能:只允许root用户在/etc/securetty列出的安全终端上登陆

pam_nologin.so 模块

功能:如果/etc/nologin文件存在,将导致非root用户不能登陆,当该用户登陆时,会显示/etc/nologin文件内容,并拒绝登陆

五、limit

功能:在用户级别实现对其可使用的资源的限制,例如:可打开的文件数量,可运行的进程数量,可用内存空间。

修改限制的实现方式:

(1) ulimit命令

        ulimit是linux shell的内置命令,它具有一套参数集,用于对shell进程及其子进程进行资源限制。

        ulimit的设定值是 per-process 的,也就是说,每个进程有自己的limits值。使用ulimit进行修改,立即生效。

        ulimit只影响shell进程及其子进程,用户登出后失效。

        可以在profile中加入ulimit的设置,变相的做到永久生效

选项 效果
-H 设置硬件资源限制
-S 设置软件资源限制
-a 显示当前所有的资源限制
-c size 设置core文件的最大值.单位:blocks
-d size 设置数据段的最大值.单位:kbytes
-f size 设置创建文件的最大值.单位:blocks
-l size 设置在内存中锁定进程的最大值.单位:kbytes
-m size 设置可以使用的常驻内存的最大值.单位:kbytes
-n size 设置内核可以同时打开的文件描述符的最大值.单位:n
-p size 设置管道缓冲区的最大值.单位:kbytes
-s size 设置堆栈的最大值.单位:kbytes
-t size 设置CPU使用时间的最大上限.单位:seconds
-u size 最大用户进程数
-v size 设置虚拟内存的最大值.单位:kbytes
unlimited 是一个特殊值,用于表示不限制

六、sudo - 提权操作

        允许系统管理员让普通用户执行一些或者全部的root命令的一个工具,如halt,reboot,su等等。

sudo特性:

  • sudo能够授权指定用户在指定主机上运行某些命令。如果未授权用户尝试使用 sudo,会提示联系管理员

  • sudo提供了丰富的日志,详细地记录了每个用户干了什么。它能够将日志传到中心主机或者日志服务器

  • sudo使用时间戳文件来执行类似的“检票”系统。当用户调用sudo并且输入它的密码时,用户获得了一张存活期为5分钟的票

  • sudo的配置文件是sudoers文件,它允许系统管理员集中的管理用户的使用权限和使用的主机。它所存放的位置默认是在/etc/sudoers,属性必须为0440

root ALL=(ALL) ALL        #任意机器上的root用户都可以在本机上处理命令

七、别名

sudo别名有四种类型:

  • User_Alias(用户)

  • Runas_Alias(代表用户)

  • Host_Alias(登录主机)

  • Cmnd_Alias(命令)

别名格式:必须大写字母,数字可以使用但是不能放在开头

你可能感兴趣的:(系统安全,安全,服务器,运维)