系统安装及应用

本文详细介绍了如何加强Linux系统的安全性,包括账号清理、密码控制、PAM认证、限制命令历史、sudo权限管理和资源限制等关键措施。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

系统的安全加固操作:

账号安全基本措施

系统账号清理:

密码安全控制

命令历史限制

​编辑

使用su命令切换用户

​编辑

PAM安全认证(插件式的认证模块)

​编辑

相关文件:

专用配置文件/etc/pam.d/格式

limit

功能:

修改限制的实现方式:

选项:

提升执行权限 sudo

1、 sudo命令的用途及用法:

2、配置sudo授权

实例: 以普通用户cc登入,使用sudo命令会报错,显示cc用户未在sudoers文件中


系统的安全加固操作:

1、锁定用户

2、删除不需要的用户

4、下次立即修改密码

5、锁定重要文件:chattr +i

6、设置密码长度

7、密码有效期

8、禁止普通用户:touch /etc/nologin

9、sudo提权操作

10、修改shell类型,不让登录

11、禁止su切换用户

12、禁止终端登录

账号安全基本措施

系统账号清理:
  • 将非登录用户的shell设为/sbin/nologin

  • 锁定长期不使用的账号

  • 删除无用的账号

  • 锁定账号文件passwd、shadow

    • chattr +i /etc/passwd /etc/shadow(锁定与解锁)

    • lsattr /etc/passwd /etc/shadow(查看)

密码安全控制
  • 设置密码有效期

  • 要求用户下次登录时修改密码

    • 新建用户:vi /etc/login.defs

      PASS_MAX_DAYS 30

    • 已有用户:chage -M 30 lisi

选项: chage[选项] [用户名] -m :密码可更改的最小天数。为零时代表任何时候都可以更改密码。 -M :密码保持有效的最大天数 (有效期) w: 用户密码到期前,提前收到警告信息的天数。 -E: 帐号到期的日期。过了这天,此帐号将不可用。 -d: 上一次更改的日期。 -i: 停滞时期。如果一个密码已过期这些天,那么此帐号将不可用 -l: 例出当前的设置 (查看) vim /etc/login.defs (适合以后添加的用户)

命令历史限制
  • 减少记录的命令条数

    • echo " " ~/.bsah_history

    • vim /etc/profile(对所有用户生效)

      HISTSIZE=200(限制历史命令记录为200条)

      export TMOUT=60(设置超时时间)

    • history -c(clear):临时清除历史命令

  • 注销时自动清空命令历史

    • vim .bash_logout(退出时)

      echo " " > ~/.bash_history

    • vim .bash_profile

终端自动注销

  • 闲置600秒后自动注销

    • vi ~/.bash_profile

      export TMOUT=600

      export:愿意传给子进程

    • vi ~/.bash_logout

使用su命令切换用户

语法:

  • su 目标用户:

    • 非登录式切换,不会读取目标用户的配置文件,不改变当前工作目录,不完全切换,子进程会接收父进程的一些配置

  • su -目标用户:

    • 登录式切换,读取目标用户的配置文件,切换至自己的家目录,完全切换,子进程完全不接收父进程的配置

PAM安全认证(插件式的认证模块)

官网手册:GitHub - linux-pam/linux-pam: Linux PAM (Pluggable Authentication Modules for Linux) project

  • 是高效且灵活便利的用户级别的认证方式

  • 也是当前Linux服务器普遍使用的认证方式

认证原理

  • 一般遵循的顺序

    • Service(服务)——PAM(配置文件)——pam_*.so

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

  • 用户访问服务器时,服务器的某一个服务程序把用户的请求发送到PAM模块进行认证

  • 不同的应用程序所对应的PAM模块是不同的

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

  • 特定模块相关的设置文件:/etc/security/(功能较强大的模块,才有特定的配置文件)

  • man 8 模块名:查看帮助

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

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

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

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

专用配置文件/etc/pam.d/格式
  • application:

  • type:

  • control:PAM库该如何处理与服务相关的PAM模块的成功或失败情况,一个关键词实现

  • module-path:用来指明本模块对应的程序文件的路径名

  • Arguments:用来传递给该模块的参数

limit

功能:

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

修改限制的实现方式:

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

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:设置管道缓冲区的最大值.单位:kbvtes

-s size:设置堆栈的最大值.单位:kbvtes

-t size:设置CPU使用时间的最大上限.单位:seconds

-u size:最大用户进程数

-v size:设置虚拟内存的最大值.单位:kbvtes

unlimited 是一个特殊值,用于表示不限制

提升执行权限 sudo

1、 sudo命令的用途及用法:

用途: 以其他用户身份 (如root) 执行授权命令

用法: sudo 授权命令

2、配置sudo授权

visudo 或者 vim /etc/sudoers 找到如下内容

以上标记处每一列的含义如下: 第一列: 用户名,如root、 test;

第二列: 等号左边的ALL表示允许从任何主机登录当前的用户账户,等号右边的ALL表示第一列的用户可以切换成系统中任何一个其它用户 (如: su test)。

第三列: 第一列的用户能下达的命令,ALL表示可以下达任何命令。也可以指定特定命令女/sbin/useradd./sbin/userdel

实例: 以普通用户cc登入,使用sudo命令会报错,显示cc用户未在sudoers文件中

1、下面我们将cc用户添加到sudoers文件中:

下一步切换到cc用户,使用命令: sudo useradd cc1,这里首次运行sudo需要输入cc的密码才会执行

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值