0


Linux系统安全

一、账号安全基本措施

1.1 系统账号清理

将用户设置为无法登陆

锁定账户

删除账户

锁定账户密码 本地锁定

1.1.1 将用户设置为无法登陆

方法1:chsh -s修改

方法2:usermod -s

1.1.2 锁定用户

usermod -L lisi            #锁定账户
usermod -U lisi            #解锁账户
 
passwd -l lisi            #锁定账户方
passwd -u lisi            #解锁账户

1.1.3 删除账户

userdel 用户名  #删除用户

1.1.4 chattr 锁定重要配置文件(passwd 、shadow、fstab等)

lsattr /etc/passwd /etc/shadow                #查看文件的状态
chattr +i /etc/passwd /etc/shadow            #锁定文件
chattr -i /etc/passwd /etc/shadow            #解锁文件

1.2 密码安全控制

1.2.1 设置密码规则

1.适用于新建用户
vim /etc/login.defs             #修改配置文件
-----此处省略部分注释及配置-------
PASS_MAX_DAYS   30                #修改密码有效期为30天
 
2.适用于已有用户
chage -M 30 zhangsan            #修改密码有效期
 
3.强制在下次登录成功时修改密码(/etc/shadow第三个字段被修改为0)
chage -d 0 zhangsan                #设置下次登录强制修改密码

1.3 命令历史

export HISTSIZE=200
#临时修改历史命令条数为200条

二、切换和限制用户、pam

2.1 su:切换用户

可以切换用户身份,并且以指定用户的身份执行命令

su 不加- 不安全的切换,继承上个用户

su 加- 安全的切换

2.2 PAM 安全认证

pam 插件式的验证模块

   当用户来访问某一程序的时候如果这个时候启用了pam模块。会先去读取配置文件。然后按照配置文件调用模块进行操作。

service ——> PAM(配置文件)——>pam_*.so(配置)

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

/etc/security 复杂的配置文件

type 类型

  • auth 用户身份认证
  • account 帐户的有效性,与账号管理相关的非认证类的功能,如:用来限制/允许用户对某个服务的访问时间,限制用户的位置(例如:root用户只能从控制台登录)
  • password 用户修改密码时密码复杂度检查机制等功能
  • session 用户会话期间的控制,如:最多打开的文件数,最多的进程数等
  • -type 表示因为缺失而不能加载的模块将不记录到系统日志,对于那些不总是安装在系统上的模块有用

Control: ( 控制位)
required (渣男) 一票否决,如果失败最后一定失败,但会继续验证

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

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

三、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 是一个特殊值,用于表示不限制

[root@localhost pam.d]#ulimit -a
#可以看到系统的相关 资源限制 设置

#使用压力测试工具进行测试  打开的文件数
ab -c1025 -n 2000 http://192.168.91.100/
#必须这样写, 包括url 后面的 斜杠/

[root@localhost pam.d]#ulimit -n  10000
#修改最大值  临时修改

[root@localhost security]#vim /etc/security/limits.conf 
#永久修改不用重启   软硬一起设置可以直接使用 -
zhangsan         -       nproc            5

su  -   zhangsan
#切换时  注意要完全切换

pgrep -lu  zhangsan

limits 生产中的 建议设置

*                soft    core            unlimited
*                hard    core            unlimited
*                soft    nproc           1000000
*                hard    nproc           1000000
*                soft    nofile          1000000
*                hard    nofile          1000000
*                soft    memlock         32000
*                hard    memlock         32000
*                soft    msgqueue        8192000
*                hard    msgqueue        8192000

四、sudo

4.1 sudo 命令的用途及格式

sudo 即superuser do,允许系统管理员让普通用户执行一些或者全部的root命令的一个工具

不仅减少了root用户的登录 和管理时间,同样也提高了安全性在最早之前,一般用户管理系统的方式是利用su切换为超级用户。但是使用su的缺点之一在于必须要先告知超级用户的密码。

sudo特性:

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

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

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

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

用户 主机名=命令程序列表
用户 主机名=(用户)命令程序列表
 
zhu1 ALL=(root) /sbin/ifconfig                #举例

root ALL=(ALL) ALL

root:那个用户要使用命令 lisi @192.168.91.100 zhangsan@192.168.91.100

ALL:那台主机 192.168.91.100 192.168.91.10

(ALL):以谁的身份运行 root

ALL :所有命令

4.2 查看当前sudo配置文件,启用sudo操作日志

启用sudo操作日志

  • 需启用Defaults logfile配置
  • 默认日志文件:/var/log/sudo
  • 操作:在/etc/sudoers末尾添加Defaults logfile="/var/log/sudo"

查询授权的sudo操作

  • sudo -l

本文转载自: https://blog.csdn.net/mikechen1/article/details/135409995
版权归原作者 mikechen1 所有, 如有侵权,请联系我们删除。

“Linux系统安全”的评论:

还没有评论