Linux系统安全及应用
目录一、Linux账户安全措施1.系统账号清理2. 密码安全控制3.命令历史限制减少记录的命令条数注销时自动清空历史命令4.终端自动注销二、su命令使用方法1.用途及用法2.密码验证3.限制使用su命令的用户4.实例将zrk用户加入到wheel组里,并进行查看启用pam认证,在wheel组里的用户可以使用5.PAM安全认证认证原理PAM认证的构成三、sudo命令1.用途及用法2.su命令的缺点
目录
一、Linux账户安全措施
1.系统账号清理
- 将非登录用户的Shell设为/sbin/nologin
- 锁定长期不使用的账号
- 删除无用的账号
- 锁定账号文件passwd、shadow
chattr +i /etc/passwd ###锁定文件
lsattr /etc/passwd ###查看状态
chattr -i /etc/passwd ###解锁文件
2. 密码安全控制
概述:设置密码有效期;要求用户下次登录时修改密码。
vi /etc/login.defs 适用于新建用户
chage -M 日期 用户 #设置用户密码有效期,适用于已有用户
chage -d 0 用户 强制在下次登录时更改密码
chage -l 用户 #也可以查看状态
查看用户rrr状态
更改用户rrr密码有效期
强制用户在下次登陆时更改密码
3.命令历史限制
减少记录的命令条数
适用于新用户-----
[root@localhost ~]# vi /etc/profile ## 进入配置文件修改限制命令条数。适合新用户
export HISTSIZE=200 ##修改限制命令为200条,系统默认是1000条profile
[root@localhost ~]# source /etc/profile ## 刷新配置文件,使文件立即生效
适用于当前用户-----
[root@localhost ~]# export HISTSIZE=200 适用于当前用户
[root@localhost ~]# source /etc/profile
[root@localhost ~]# source /etc/profile 刷新配置文件,使文件立即生效
[root@localhost ~]#echo $HISTSZE ##查看历史记录保留条数数量
环境变量的读取:
用户登录-》加载~/.bash_profile --》bash_profile中的配置首先是使 ~/.bashrc生效
用户登出–》.bash_logout 运行logout配置文件
注销时自动清空历史命令
[root@localhost ~]#echo " " > ~/.bash_history
永久清除
[root@localhost ~]# vim ~/.bashrc ##进入vim编辑器
echo " " > ~/.bash_history ##以空白文件覆盖历史记录(相当于清空历史记录)
临时清除
[root@localhost ~]#vim ~/.bash_logout
history -c
clear
4.终端自动注销
闲置600秒后自动注销
vi /etc/profile
###进入写入 export TMOUT=600
wq保存退出
source /.bash_logout 刷新
或者
. /etc/profile ###刷新
二、su命令使用方法
1.用途及用法
- 用途:Substitute User,切换用户
- 格式:su - 目标用户
2.密码验证
- root——>任意用户,不验证密码
- 普通用户——>其他用户,验证目标用户的密码
[song@localhost ~]$ su - root ##带`-`选项表示将使用目标用户的登录Shell环境 口令: [root@localhost ~]# whoami root ##查看当前所在用户
su命令和su -命令区别
前者只是切换了root身份,但Shell环境仍然是普通用户的Shell;
而后者连用户和Shell环境一起切换成root身份了。只有切换了Shell环境才不会出现PATH环境变量错误。
3.限制使用su命令的用户
- 将允许使用su命令的用户加入wheel组
- 启用pam_wheel认证模块
- 默认情况下,任何用户都允许使用su命令,有机会反复尝试其他用户(如root) 的登录密码,带来安全风险
- 为了加强su命令的使用控制,可借助于PAM认证模块,只允许极个别用户使用su命令进行切换
- 查看su操作记录:安全日志文件/var/log/secure
4.实例
默认情况下,任何用户都允许使用su命令,从而有机会反复尝试其他用户(如root)的登录密码,这样带来了安全风险。为了加强su命令的使用控制,可以借助于pam_wheel认证模块,只允许极个别用户使用su命令进行切换。实现过程如下:将授权使用su命令的用户添加到 wheel组,修改/etc/pam.d/su认证配置以启用 pam_wheel 认证。
- gpasswd -a 用户 wheel #将用户添加到组
- vim /etc/pam.d/su #进入pam认证配置文件
- auth required pam_wheel.so use_uid #取消注释
- 以上两行是默认状态(即开启第一行,注释第二行),这种状态下是允许所有用户间使用su命令进行切换的。
- 两行都注释也是运行所有用户都能使用su命令,但root下使用su切换到其他普通用户需要输入密码;如果第一行不注释,则root使用su切换普通用户就不需要输入密码(pam_rootok.so模块的主要作用是使uid为0的用户,即root用户能够直接通过认证而不用输入密码。
- 如果开启第二行,表示只有root用户和wheel组内的用户才可以使用su命令
- 如果注释第一行,开启第二行,表示只有wheel组内的用户才能使用su命令,root用户也被禁用su命令。
将zrk用户加入到wheel组里,并进行查看
启用pam认证 ,在wheel组里的用户可以使用
启用pam_wheel认证以后,未加入到wheel组内的其他用户将无法使用su命令,尝试进行切换时将提示“拒绝权限”,从而将使系统更加安全。
5.PAM安全认证
Linux-PAM,是Linux可插拔认证模块,是一套可定制、可动态加载的共享库,使本地系统管理员可以随意选择程序的认证方式。
认证原理
- PAM认证一般遵循的顺序:service (服务) -->PAM(配置文件)–> pam*.so;
- PAM认证首先要确定哪一项应用服务,然后加载相座的PAM的配置文件(位于/etc/pam.d下),最后调用认证模块(位于/ lib64 / security/ 下)进行安全认证。
- 用户访问服务器的时候,服务器的某一个服务程序把用户的请求发送到PAw模块进行认证。不同的应用程序所对应的PAM模块也是不同的。如果想查看某个程序是否支持PAM认证,可以用ls命令进行查看/etc/pam.d/。
- PAM的配置文件中的每一行都是一个独立的认证过程,它们按从上往下的顺序依次由PAM模块调用。
PAM认证的构成
查看某个程序是否支持PAM认证,可以使用ls命令。如:查看su是否支持PAM模块认证。
查看su的PAM配置文件:cat/etc/pam.d/su
- 每一行都是一个独立的认证过程
- 每一行可以区分为三个字段:认证类型 控制类型 PAM模块及其参数
三、sudo命令
概述:我们可以使用sudo机制来提升权限
1.用途及用法
- 用途:以其他用户身份(如root)执行授权的命令
- 用法:sudo 授权命令
2.su命令的缺点
通过su命令可以非常方便切换到另一个用户,但前提条件是必须知道用户登录密码。对于生产环境中的Linux服务器,每多一个人知道特权密码,安全风险就多一分。于是就多了一种折中的办法,使用sudo命令提升执行权限,不过需要由管理员预先进行授权, 指定用户使用某些命令。
3.配置sudo授权
- visudo或者vi /etc/sudoers(此文件的默认权限为440,保存退出时必须执行:"wq!" 命令来强制操作)
- 记录格式:用户 主机名=(用户) 命令程序列表
-
用户:直接授权指定的用户名,或采用”组名”的形式(授权一个组的所有用户)。
主机名:使用此规则的主机名。没配置过主机名时可用localhost,有配过主机名则用实际的主机名,ALL则代表所有主机
(用户):用户能够以何种身份来执行命令。此项可省略,缺省时以root用户的身份来运行命
命令程序列表:允许授权的用户通过sudo方式执行的特权命令,需填写命令程序的完整路径多个命令之间以逗号""进行分隔。ALL则代表系统中的所有命令
- sudo [参数选项] 命令
参数 | 作用 |
-l(小写L) | 列出用户在主机上可用的和被禁止的命令;一般配置好/etc/sudoers后,要用这个命令来查看和测试是不是配置正确的; |
-v | 验证用户的时间戳;如果用户运行sudo后,输入用户的密码后,在短时间内可以不用输入口令来直接进行sudo操作;用 -v可以跟踪最新的时间戳。 |
-u | 指定以以某个用户执行特定操作 |
-k | 删除时间戳,下一个sudo命令要求用求提供密码; |
4.实例
zrk用户可以使用useradd usermod
需求:zrk root用户下的权限useradd usermod
对结果进行验证
四、开关机安全控制
1.调整BIOS引导设置
- 将第一引导设备设为当前系统所在硬盘
- 禁止从其他设备(光盘、U盘网络)引导系统
- 将安全级别设为setup,并设置管理员密码
2.GRUB限制
- 使用grub2-mkpasswd-pbkdf2生成密钥
- 修改/etc/grubd/00header文件中,添加密码记录
- 生成新的grubcfg配置文件
更多推荐
所有评论(0)