浅谈Linux系统安全和应用

系统账号清理

● 将非登录用户的Shell设为/sbin/nologin            
● 锁定长期不使用的账号            
● 删除无用的账号           
● 锁定账号文件passwd、shadow

[root@localhost ~]# chattr +i /etc/passwd /etc/shadow (锁定文件并查看状态)
[root@localhost ~]# Isattr letc/passwd letc/shadow
-------- /etc/passwd
--------- /etc/shadow

chattr命令的用法

+ :在原有参数设定基础上,追加参数。                  
- :在原有参数设定基础上,移除参数。                  
= :更新为指定参数设定。

a: 即append, 设定该参数后,只能向文件中添加数据,而不能删除,多用于服务器日志文件安全,只有root才能设定这个属性。
i: 设定文件不能被删除、改名、设定链接关系,同时不能写入或新增内容。i参数对于文件系统的安全设置有很大帮助。

示例:chattr +i /etc/passwd /etc/shadow 设定文件/etc/ passwd、 /etc/ shadow文件不能被修改、删除、创建链接

  • lsattr /etc/ passwd /etc/ shadow 查看效果
  • 验证权限
  • useradd lisi 报无权限
  • cat /etc/ passwd
  • passwd lisi 报无效账户
  • cat /etc/ shadow
  • chattr -i /etc/ passwd /etc/ shadow 解锁
  • lsattr /etc/ passwd /etc/ shadow 查看文件保护效果

密码安全控制

● 设置密码有效期
● 要求用户下次登录时修改密码
[root@localhost ~]# vi /etc/login.defs 适用于新建用户
PASS MAX DAYS 30
[root@localhost ~]# chage -M 30 XXX 适用于已有用户
[root@localhost ~]# chage -d 0 XXX 强制在下次登陆时更改密码
■ 命令历史限制
● 减少记录的命令条数
● 注销时自动清空命令历史
$ history -C
该命令可以清空本次登入的所有输出命令,但不清空. bash_ history文件, 所以下次登陆后,旧命令还将出现,历史命令是存在于当前用户根目录下的. /bash_history文件。
echo > $home. /bash_history
每个用户根目录下都有一个. bash_ history文件用于保存历史命令,当每次注销时,本次登陆所执行的命令将被写入该文件。所以可以清空该文件,下次登陆后上次保存的命令将消失,清空效果将在下次登陆生效。
clear作用是清屏

使用su命令切换用户

■ 用途及用法
● 用途: Substitute User,切换用户
● 格式: su-目标用户
■ 密码验证
● root→任意用户,不验证密码
● 普通用户→其他用户,验证目标用户的密码
[jerry@localhost ~]$ su - root 带-选项表示将使用目标用户的登录Shell环境
口令:
[root@localhost ~]# whoami
root
■ 限制使用su命令的用户
● 将允许使用su命令的用户加入wheel组
● 启用pam_ wheel认证模块
[root@localhost ~]# gpasswd -a tsengyia wheel
tsengyia
正在将用户“tsengyia’”加入到"wheel"组中

PAM安全认证流程

■ 控制类型也称做Control Flags,用于PAM验证类型的返回结果
1.required验证失败时仍然继续,但返回Fail
2.requisite验证失败则立即结束整个验证过程,返回Fail
3. sufficient验证成功则立即返回,不再继续,否则忽略结果并继续 4.optiona|不用于验证,只显示信息 (通常用于session类型)
■ PAM认证类型包括四种:
1 认证管理(authentication management) :接受用户名和密码,进而对该用户的密码进行认证;
2 帐户管理( account management) :检查帐户是否被允许登录系统,帐号是否已经过期,帐号的登录是否有时间段的限制等;
3 密码管理( password management) :主要是用来修改用户的密码;
4 会话管理(sessionmanagement):主要是提供对会话的管理和记账。
■ su命令的安全隐患
● 默认情况下,任何用户都允许使用su命令,有机会反复尝试其他用户(如root) 的登录密码,带来安全风险
● 为了加强su命令的使用控制,可借助于PAM认证模块,只允许极个别用户使用su命令进行切换
■ PAM(Pluggable Authentication Modules)可插拔式认证模块
● 是一种高效而且灵活便利的用户级别的认证方式
● 也是当前Linux服务器普遍使用的认证方式

PAM认证原理

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

PAM认证的构成

■ 查看某个程序是否支持PAM认证,可以用Is命令
● 示例:查看su是否支持PAM模块认证
Is /etc/pam.d | grep su
■ 查看su的PAM配置文件: cat /etc/pam.d/su
● 每一行都是一个独立的认证过程
● 每一行可以区分为三个字段
◆ 认证类型
◆ 控制类型
◆ PAM模块及其参数

使用sudo机制提升权限

■ su命令的缺点
● 身份改变
■ sudo命令的用途及用法
● 用途: 以其他用户身份(如root) 执行授权的命令
● 用法:sudo授权命令
■ 配置sudo授权
● visudo或者vi /etc/sudoers
● 记录格式: 用户 主机名列表=命令程序列表
■ 查看sudo操作记录
● 需启用Defaults logfile配置
● 默认日志文件: /var/log/sudo
■ 查询授权的sudo操作
● sudo -l

开关机安全控制

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值