账号安全基本措施
系统账号清理
●将非登录用户的Shel设为/sbin/nologin
●锁定长期不使用的账号
●删除无用的账号
●锁定账号文件passwd、shadow
chattr +i /etc/passwd /etc/shadow
Isattr /etc/passwd /etc/shadow
锁定文件并查看状态
锁定和解锁长期不用账户,有2种命令
删除无用的账户
密码安全控制
■密码安全控制
●设置密码有效期
●要求用户下次登录时修改密码
命令历史限制
●减少记录施命令条数
右缩进
●注销时自动清空命令历史
终端自动注销
闲置600秒后自动注销
使用su命令切换用户
用途及用法
●用途: Substitute User,
切换用户
●格式
su-目标用户
■密码验证
●root>任意用户,不验证密码
●普通用户→其他用户,验证目标用户的密码
su - root ###带-选项表示将使用目标用户的登录Shell环境
whoami ###查看登录用户
限制使用su命令的用户
●将允许使用su命令的用户加入wheel组
●启用pam_ wheel认证模块
gpasswd -a tsengyia wheel ###正在将用户"tsengyia’加入到"wheel"组中
Linux中的PAM安全认证
su命令的安全隐患
●默认情况下,任何用户都允许使用su命令,有机会反复尝试其他用户(如root) 的登录密码,带来安全风险
●为了加强su命令的使用控制,可借助于PAM认证模块,只允许极个别用户使用su命令进行切换
PAM(Pluggable Authentication Modules)可插拔式认证模块
●是一种高效而且灵活便利的用户级别的认证方式
●也是当前Linux服务器普遍使用的认证方式
PAM的认证原理
■一般遵循的顺序;
●Service (服务) →PAM (配置文件) →pam_ *.so
■首先要确定哪一项服务,然后加载相应的PAM的配置文件(位于/etc/pam.d下),最后调用认证文件(位于/etc/security下)进行安全认证
■用户访问服务器时,服务器的某一个服务程序把用户的请求发送到PAM模块进行认证
■不同的应用程序所对应的PAM模块是不同的
PAM的认证构成
■查看某个程序是否支持PAM认证,可以用Is命令
示例:查看su是否支持PAM模块认证
Is /etc/pam.d | grep su
■查看su的PAM配置文件: cat /etc/pam.d/su
●每一行都是-个独立的认证过程
●每一行可以区分为三个字段
◆认证类型
◆控制类型
◆PAM模块及其参数
认证类型
## #认证类型####
1、认证管理(authentication management)
接受用户名和密码,进行对该用户的密码进行认证
2、账户管理(account management)
检查账户是否被允许登录系统,账号是否过期,账号的登录是否有时间限制
3、密码管理(password management)
主要是用来修改用户的密码
4、回话管理(session management)
主要是提供对回话的管理和记账(accounting)
控制类型
#####控制类型###
控制类型也可以叫control falgs用于PAM验证类型的返回结果,
具有以下四种类型:
1: required验证失败时仍然继续,但返回fail
2: requisite验证失败则立即结束整个验证过程,返回fail
3: sufficient验证成果则立即返回,不再继续,否则忽略结果并继续
4: optional不用于验证,只是显示信息(通常用于session)
使用sudo机制提升权限
sudo命令的用途及用法
●用途:以其他用户身份(如root) 执行授权的命令
●用法:sudo 授权命令
配置sudo授权
查看sudo操作记录
●需启用Defaults logfile配置
●默认日志文件: var/log/sudo
查询授权的sudo操作
sudo -l
开关机安全控制
■调整BIOS引导设置
●将第一引导设备设为当前系统所在硬盘
●禁止从其他设备(光盘、U盘、网络)引导系统
●将安全级别设为setup,并设置管理员密码
■GRUB限制
●使用grub2-mkpasswd-pbkdf2生成**
●修改/etc/grub.d/00_ header文件中, 添加密码记录
●生成新的grub.cfg配置文件
#######开关机安全控制####
GRUB菜单限制
1、未经授权禁止修改启动参数
2、未经授权精致进入指定系统
密码设置方式(grub.conf)
1、password明文密码串
2、password --md5加密密码串
密码记录的位置
1、全局部分(第- -个"title"之前)
2、系统引导部分(每个"title" 部分之后)
GRUB限制的实现
1、使用grub-md5-crypt获得加密字串
2、修改grub.conf文件,添加密码记录
CentOS6.5的改法
grub-md5-crypt ###设置密码,设置完毕后有一串密文,复制好
vi /boot/grub/grub.conf ####在title centos (2… 的. 上面插入password --md5 XXXXXXXX ###这边XXXX的意思是刚才设置的密文
####设置完毕后:wq保存######
###验证###
重启后再想修改该按e键按不动了。要先按p然后输入密码。
设置了grub菜单密码就不能设置root密码了
CentOS7.0上改法
grub2-setpassword ###设置密码1 23456
重启开机,进入grub菜单,按e键,需要输入账号密码##这边是用root设置的使用root密码123456
终端登录安全控制
I限制root只在安全终端登录
●安全终端配置: /etc/securetty
■禁止普通用户登录
●建立/etc/nologin文件
●删除nologin文件或重启后即恢复正常
touch /etc/nologin
禁止普通用户登录
rm -rf /etc/nologin
取消上述登录限制
系统弱口令检测
■安装JR工具
安装方法
make clean系统类型
主程序文件为john
■检测弱口令账号
获得Linux/Unix服务器的shadow文件
●执行john程序,将shadow文件作为参数
■密码文件的暴力**
●准备好密码字典文件,默认为password.lst
●执行john程序,结合-Wordlist=字典文件
网络端口扫描
NMAP
●一款强大的网络扫描、安全检测工具
●官方网站: http://nmap.org/
●CentOS 7.3光盘中安装包nmap-6.40-7.el7.x86_ _64.rpm