系统安全及应用
系统安全及应用
账号安全控制
账号安全基础措施
系统账号清除
1.将非登录用户的shell设为/sbin/nologin
2.锁定长期不使用的账号
3.删除无用的账号
4.锁定账号文件passwd、shadow
示例:
方法一
使用usermod命令修改用户账号属性
-s:修改shell
方法二
这里有两种命令用法基本一致
passwd [选项] 用户名
-l :锁定用户账号
-u:解锁用户账号
-S:查看用户状态
usermod [选项] 用户名
-L:锁定用户账号
-U:解锁用户账号
这两条命令可以串起来用,好比我用passwd命令锁定用户可以用usermod命令解锁,反之也是可以的。
方法三
添加-r选项时,表示连同用户的宿主目录一并删除
方法四
锁定用户账号文件passwd、shadow
使用chattr命令更改文件属性
-i:不得任意更改文件或目录
密码安全控制
1.设置密码有效期
2.要求用户下次登录时修改密码
chage命令
用来修改帐号和密码的有效期限。
格式:
chage [选项] 用户名
常用选项
-m:密码可更改的最小天数。为零时代表任何时候都可以更改密码。
-M:密码保持有效的最大天数。
-w:用户密码到期前,提前收到警告信息的天数。
-E:帐号到期的日期。过了这天,此帐号将不可用。
-d:上一次更改的日期。
-i:停滞时期。如果一个密码已过期这些天,那么此帐号将不可用。
-l:例出当前的设置。由非特权用户来确定他们的密码或帐号何时过期。
1.设置密码有效期
方法一
使用chage命令进行修改(这种方法适合用于已有用户修改)
方法二
进入配置文件修改文件位置/etc/login.defs(这种方法只针对新建用户)
2.要求用户下次登录时修改密码方法与上方一样
方法
命令历史限制
1.减少记录的命令条数
方法一
通过配置文件修改,文件位置/etc/profile(此方法为永久修改当前shell环境)
方法二
使用export命令定义变量(此方法针对所有的bash环境重启后将失效)
2.注销时自动清空历史命令
[root@localhost ~]# vim .bash_logout #编辑关机自动启动配置文件
echo " " > ~/.bash_history
3.开机时自动清除历史命令
[root@localhost ~]# vim .bashrc#编辑开机自动启动配置文件
echo " " > ~/.bash_history
终端自动注销
闲置20秒后自动注销
方法一
写入配置文件 文件位置 .bash_profile
[root@localhost ~]# vim .bash_profile #编辑配置文件
su命令
用途及用法
用途(Subastitute User):用于切换用户
格式:su -[目标用户] (这里如果不加目标用户系统默认切换到root用户)
密码验证
1.从root切换到任意用户不需要验证密码
2.普通用户切换到其他用户需要验证目标用户的密码
3.限制用户使用su切换用户
wheel组
wheel组的作用
wheel组是一个很特殊的用户组,它被一些Unix系统用来控制能否通过su命令来切换到超级用户(root用户)。也就是说在wheel组中的成员有一些特殊的权限,我们可以通过把普通用户加入wheel组,然后配置相关的文件就可以使处在wheel 组的成员有特殊权限,而且可以用su命令来切换到root用户。为了加强系统的安全性,我们可以配置一些文件使得非wheel组的成员无法用 su命令切换的root用户。这么做的好处是我们在需要root的权限才能操作时我们直接su切换到root即可,无需再次用root用 户登陆,同时还能禁止其他非wheel组的成员通过su命令来切换到root用户,这样就加强了系统的安全性。
示例:
[root@localhost ~]# gpasswd -a ky18 wheel
正在将用户“ky18”加入到“wheel”组中
[root@localhost ~]# vim /etc/pam.d/su #编辑pam认证模块
查看su操作记录
安全日志文件位置:/var/log/secure
sudo命令—提升执行权限
sudo命令作用以及用法
作用:指定用户以超级用户的身份来执行部分命令
用法:sudo 授权命令
1.在配置文件中添加授权,文件位置visudo 或者 vim /etc/sudoers
root ALL=(ALL) ALL #这里的all表示所以命令
记录格式 :用户 登入主机 = (代表用户) 命令
可以使用通配符“ * ”号任意值和“ !”号进行取反操作。
权限生效后,输入密码后5分钟可以不用重新输入密码。
示例一:
示例二:
示例三:
也可以在/etc/sudoers配置文件里使用alias设置别名进行批量给普通用户提升执行权限
验证
子目录
在配置文件下创建子目录将用户权限写入子目录
验证
PAM安全认证
su命令的安全隐患
默认情况下,任何用户都允许使用su命令,有机会反复尝试其他用户(如root) 的登录密码,带来安全风险;
为了加强su命令的使用控制,可借助于PAM认证模块,只允许极个别用户使用su命令进行切换。
PAM(Pluggable Authentication Modules)可插拔式认证模块
是一种高效而且灵活便利的用户级别的认证方式
也是当前linux服务器普遍使用的认证方式
PAM认证原理
一般遵循的顺序
Service (服务)—>PAM (配置文件) —>pam_*.so
首先要确定哪一项服务,然后加载相应的PAM的配置文件(位于:/etc/pam.d),最后调用认证文件(位于:/bin/security下)进行安全认证。
用户询问服务时,服务器的某一个服务程序把用户的请求发送到PAM模块进行认证。
不同的应用程序所对应的PAM模块时不同的。
如果想查看某个程序是否支持PAM 认证,可以用ls命令进行查看/etc/pam.d/
PAM安全认证流程
控制类型也称作Control Flags,用于PAM验证类型返回的结果
1.required验证失败时任然继续,但返回Fail
2.requisite验证失败则立即结束整个验证过程,返回Fail
3.sufficien验证成功则立即返回,不在继续,否则忽略结果并继续
4.optional不用于验证,只显示信息
系统引导和登录控制
开关机安全控制
调整BLOS引导设置
将第一引导设备设为当前系统所在硬盘
禁止从其他设备(光盘、U盘、网络)引导系统
将安全级别设为setup,并设置管理员密码
GRUP限制
使用grub2-mkpasswd-pbkdf2生成密钥
修改/etc/grub.d/00_header文件中,添加密码记录
生成新的grub.cfg配置文件
示例一:
示例二:
终端登录安全控制
限制root只在安全终端登录
安全终端配置:/etc/securetty
禁止普通用户登录
建立/etc/nologin
删除nologin文件或重启后即恢复正常
弱口令检测
Joth the Ripper,简称为 JR
一款密码分析工具,支持字典式的暴力破解
通过对shadow文件的口令分析,可以检测密码强度
暴力破解密码
示例:
只能破解密码文件中已有的密码password.lst