当前位置:   article > 正文

Linux系统安全及应用_linux 安全

linux 安全

目录

一.账号安全基本措施

1.系统账号清理

2.密码安全控制

chage命令

2.1.常用选项

2.2.相关实操

                  2.3.相关实操

3.命令历史限制

3.1.相关实操

                  3.2.永久生效

4.终端自动注销

二.系统引导和登录控制

1.使用su命令切换用户

1.1.用途及用法

1.2.密码验证

1.3.限制使用su命令的用户

         1.4.ssh远程登录输入三次密码错误则锁定用户 

2.Linux中的PAM安全认证

2.1.su命令的安全隐患

2.2.PAM(Pluggable Authentication Modules)可拔插式认证模块

2.3.PAM认证原理

2.4.PAM配置文件

第一列代表PAM认证模块类型

第二列代表PAM控制标记

第三列代表PAM模块

第四列代表PAM模块的参数

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

3.使用sudo机制提升权限

3.1.使用sudo

3.2.配置sudo

别名创建

使用别名进行授权

普通用户使用授权命令

启用sudo操作日志

4.安全控制

4.1.开关机安全控制

调整BIOS引导设置

GRUB限制(了解即可)

4.2.终端登录安全控制

安全终端配置:/etc/securetty


一.账号安全基本措施

1.系统账号清理

  • 将非登录用户的shell设为/sbin/nologin
usermod -s /sbin/nologin 用户名
  • 锁定长期不使用的账号
  1. usermod -L 用户名
  2. passwd -l 用户名
  3. passwd -S 用户名
  • 删除无用的账号
userdel 【-r】用户名
  • 锁定账号文件passwd、shadow
  1. chattr +i /etc/passwd /etc/shadow
  2. lsattr /etc/passwd /etc/shadow(锁定文件并查看状态)
  3. chattr -i /etc/passwd /etc/shadow(解锁)
  4. md5sum /etc/password 校验和

2.密码安全控制

chage命令

2.1.常用选项
-m密码可更改的最小天数,为0时可代表任何时候
-M密码保持有效的最大天数
-w用户密码到期前,提前收到警告信息的天数
-E账号到期的日期
-d上一次更改的日期
-i停滞时期 如果一个密码已过期这些天,那么此账号将不可用
-l列出当前的设置 由非特权用户来确定他们的密码或账号何时过期
  • 设置密码有效期
  • 要求用户下次登录时修改密码
  1. chage -M 天数 用户名 (针对已存在的用户,天数为 99999 表示为永不过期)
2.2.相关实操

vim /etc/login.defs  -->  PASS_MAX_DAYS 天数(针对新建的用户)
2.3.相关实操

chage -d 0 用户名(强制用户下一次登录修改密码)

3.命令历史限制

  • 减少记录的命令条数
  • 登录时自动情况命令历史
  1. history(查看历史命令)
  2. vim /etc/profile --> export HISTSIZE=XX --> source /etc/profile(限制历史命令数量)
  3. history -c(临时清空历史命令)
  4. vim /etc/profile --> > ~/.bash_history
3.1.相关实操


3.2.永久生效

4.终端自动注销

  • 闲置600秒后自动注销
vim /etc/profile  -->  export TMOUT=XX  -->  source /etc/profile(自动注销)
  • 开机永久清空历史命令

  • 设置每60秒清空一次历史命令

二.系统引导和登录控制

1.使用su命令切换用户

1.1.用途及用法

用途:Substitiute User,切换用户

格式:

su -目标用户

1.2.密码验证

root→任意用户,不验证密码

普通用户→其他用户,验证目标用户的密码

相关实操

1.3.限制使用su命令的用户

  • 将允许使用su命令的用户加入wheel组 
    gpasswd wheel -a 用户名
    
  • 启用pam_wheel认证模块
    vim /etc/pam.d/su -> 开启 auth   required   pam_wheel.so use_uid 的配置

相关实操

加入wheel组前

加入wheel组

加入wheel组后

1.4.ssh远程登录输入三次密码错误则锁定用户 

  1. vim /etc/pam.d/sshd
  2. auth required pam_tally2.so deny=3 unlock_time=600 even_deny_root root_unlock_time=600

相关实操

2.Linux中的PAM安全认证

2.1.su命令的安全隐患

  • 默认情况下,任何用户都允许使用su命令,有机会反复尝试其他用户(比如root)的登录密码,带来安全风险
  • 为了加强su命令的使用控制,可借助于PAM认证模块,只允许极个别用户使用su命令进行切换

2.2.PAM(Pluggable Authentication Modules)可拔插式认证模块

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

2.3.PAM认证原理

  • 一般遵循的顺序

service(服务)->PAM(配置文件)->pam_*.so

  • 首先要确定哪一项服务,然后加载相应的PAM的配置文件(位于/etc/pam.d下),最后调用认证文件(位于/lib64/security下)进行安全认证
  • 用户访问服务器时,服务器的某一个服务程序把用户的请求发送到PAM模块进行认证
  • 不同的应用程序所对应的PAM模块是不同的

2.4.PAM配置文件

PAM的配置文件中的每一行都是一个独立的认证过程,它们按从上到下的顺序依次由PAM模块调

用cat /etc/pam.d/system-auth

第一列代表PAM认证模块类型

auth:认证模块接口,如验证用户身份、检查密码是否可以通过,并设置用户凭据

account:账户模块接口,检查指定账户是否满足当前验证条件,如用户是否有权访问所请求的服

务,检查账户是否到期

password:密码模块接口,用于更改用户密码,以及强制使用强密码配置

session:会话模块接口,用于管理和配置用户会话。会话在用户成功认证之后启动生效

第二列代表PAM控制标记

required:模块结果必须成功才能继续认证,如果在此处测试失败,则继续测试引用在该模块接口

的下一个模块,直到所有的模块测试完成,才将结果通知给用户。

requisite:模块结果必须成功才能继续认证,如果在此处测试失败,则会立即将失败结果通知给用

户。

sufficient:模块结果如果测试失败,将被忽略。如果sufficient模块测试成功,并且之前的required

模块没有发生故障,PAM会向应用程序返回通过的结果,不会再调用堆栈中其他模块。

optional:该模块返回的通过/失败结果被忽略。一般不用于验证,只是显示信息(通常用于

session 类型)。

include:与其他控制标志不同,include与模块结果的处理方式无关。该标志用于直接引用其他

第三列代表PAM模块

默认是在/lib64/security/目录下,如果不在此默认路径下,要填写绝对路径。同一个模块,可以出

现在不同的模块类型中,它在不同的类型中所执行的操作都不相同,这是由于每个模块针对不同的

模块类型编制了不同的执行函数。

第四列代表PAM模块的参数

这个需要根据所使用的模块来添加。传递给模块的参数。参数可以有多个,之间用空格分隔开

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

示例:

查看su是否支持PAM模版认证

ls /etc/pam.d | grep su

相关实操

查看su的PAM配置文件

cat /etc/pam.d/su

 相关实操

3.使用sudo机制提升权限

3.1.使用sudo

  • 用途:以其他用户身份(比如root)执行授权的命令
  • 用法:sudo授权命令
相关实操

新用户不在wheel组

在wheel组的用户

3.2.配置sudo

vi  /etc/sudoers(此文件的默认权限为 440,保存退出时必须执行“:wq!”命令来强制操作)

用户 主机名=命令程序列表    //可以使用通配符*全部,!取反符号
别名创建
  • User_Alias 大写别名=用户1,用户2,……
  • Host_Alias 大写别名=主机名1,主机名2,……
  • Cmnd_Alias 大写别名=程序1,程序2,……

相关实操

使用别名进行授权

#用户/组授权

用户名/用户别名 主机名/别名 =(用户)程序列表/别名

%组名 主机名 程序列表

用户名 主机名 = [(用户)NOPASSWD:] 程序列表

普通用户使用授权命令
  1. mkdir ~/guazhai(通过wangwu用户在家目录下创建一个 guazhai的空文件)
  2. sudo mount /dev/sr0 ~/guazhai //sudo(加配置的命令表中的命令,以root的身份去运行该授权命令)

提示:第一次执行需要验证密码,默认超时时长为5分钟,在此期间不再重复验证密码

启用sudo操作日志

visudo

Defaults logfile = “/var/log/sudo”

su切换

将信任的普通用户加入到wheel组中    gpasswd -a 用户 wheel

修改su的PAM认证文件配置 

 /etc/pam.d/su 将2,6行注释取消

4.安全控制

4.1.开关机安全控制

调整BIOS引导设置
  • 将第一引导设备设为当前系统所在硬盘
  • 禁止从其他设备(光盘、u盘、网络)引导系统
  • 将安全级别设为setup,并设置管理员密码
GRUB限制(了解即可)
  • 使用grub-mkpasswd-pbkdf2生成密钥
  • 修改/etc/grub.d/00 header文件中,添加密码记录
  • 生成新的grub.cfg配置文件

通常情况下在系统开机进入GRUB菜单时,按e可以查看并修改GRUB引导参数,这对服务器是一

个极大的威胁。可以为GRUB设置一个密码,只有提供正确的密码才能被允许修改参数

4.2.终端登录安全控制

  • 限制root只在安全终端登录
安全终端配置:/etc/securetty

  • 禁止普通用户登录
  1. 建议/etc/nologin文件
  2. 删除nologin文件或重启后即恢复正常
  1. touch /etc/nologin(禁止普通用户登录)
  2. rm -rf /etc/nologin(取消上述登录限制)
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/634665
推荐阅读
相关标签
  

闽ICP备14008679号