文章目录
- 账号安全控制
- 系统引导和登录控制
- 弱口令检测
- 端口扫描
账号安全控制
系统账号清理
- 将非登录用户的Shell设为/sbin/nologin
usermod -s /sbin/nologin 用户名
- 锁定长期不使用的账号
usermod -L 用户名 ###锁定用户名
usermod -U 用户名 ###解锁用户名
passwd -l 用户名 ###锁定用户名
passwd -u 用户名 ###解锁用户名
passwd -S 用户名 ###查看用户名
- 删除无用的账号
userdel [-r] 用户名
- 锁定账号文件passwd、shadow
chattr +i /etc/passwd /etc/shadow ###锁定文件
chattr -i /etc/passwd /etc/shadow ###解锁文件
lsattr /etc/passwd /etc/shadow ###查看文件状态
密码安全控制
- 设置密码有效期
- 要求用户下次登陆时修改密码
[root@localhost ~]# vi /etc/login.defs ###修改默认密码配置文件,适用于新建用户
......
PASS_MAX_DAYS 30 ###默认密码有效期为30天
[root@localhost /]# chage -M 30 用户 ###修改用户密码有效期为30天
[root@localhost /]# cat /etc/shadow | grep 用户 ###查看用户的账号配置信息
[root@localhost /]# chage -d 0 用户 ###强制用户在下次登录时更改密码
命令实例:
修改默认密码配置文件,适用于新建用户
更改 PASS_MAX_DAYS
这一行的参数
直接修改用户wolf的密码有效期并查验
强制用户wolf在下次登录时更改密码
命令历史限制
- 减少记录的命令条数
- 登录时自动清空命令历史
[root@localhost ~]# vi /etc/profile ###用vi编辑器打开文件
export HISTSIZE=200 ###设置记录的最高命令条数是200条
[root@localhost ~]# source /etc/profile ###重新加载
[root@localhost ~]# . /etc/profile ###用.代替source,也是重新加载的意思
[root@localhost ~]# vim /etc/rc.d/rc.local ###用vi编辑器打开文件
echo " " > ~/.bash_history ###输入命令,设置登陆时自动清空命令历史
chmod +x /etc/rc.d/rc.loca ###激活文件
命令实例:
使用vim打开文件
输入限制最大命令历史数命令
重新加载
首先激活文件,然后再用vi编辑器打开
输入登录时自动执行的命令
使用 init 6 命令重启后,命令历史已经被清除了
使用su命令切换用户
用途及用法
- 用途:Substitute User,切换用户
- 格式
su - 目标用户
密码验证
- root→任意用户,不验证密码
- 普通用户→其他用户,验证目标用户的密码
[wolf@localhost ~]$ su - root ###带 - 选项表示将使用目标用户的登录Shell环境
密码: ###普通用户su其他用户时需要验证目标用户的密码
[root@localhost ~]# whoami ###显示本用户信息
root
命令实例:
su实例
whoami实例
限制使用su命令的用户
- 将允许使用su命令的用户加入wheel组
- 启用
pam_wheel
认证模块
[root@localhost ~]# vi /etc/pam.d/su
#%PAM-1.0
auth sufficient pam_rootok.so
auth required pam_wheel.so use_uid
命令实例:
将允许使用su命令的用户wolf加入wheel组,并使用vi打开配置文件
启用认证模块
配置成这样就可以了
查看su操作记录
- 安全日志文件:
/var/log/secure
Linux中的PAM安全认证
su命令的安全隐患
- 默认情况下,任何用户都允许使用su命令,有机会反复尝试其他用户(如root)的登陆密码,带来安全风险
- 为了加强su命令的使用控制,可借助于PAM认证模块,只允许个别用户使用su命令进行切换
PAM(Pluggable Authentication Modules)可插拔式认证模块
- 是一种高效而且灵活便利的用户级别的认证方式
- 也是当前Linux服务器普遍使用的认证方式
PAM认证原理
- 一般遵循的顺序
Service(服务)→PAM(配置文件)→pam_*.so
- 首先要确定哪一项服务,然后加载相应的PAM的配置文件(位于
/etc/pam.d
下),最后调用认证文件(位于/lib64/security
下)进行安全认证 - 用户访问服务器时,服务器的某一个服务程序把用户的请求发送到PAM模块进行认证
- 不同的应用程序所对应的PAM模块是不同的
PAM认证的构成
查看某个程序是否支持PAM认证,可以用ls命令
示例:查看su是否支持PAM模块认证
la /etc/pam.d | grep su
查看su的PAM配置文件:`cat /etc/pam.d/su
- 每一行都是一个独立的认证过程
- 每一行可以区分为三个字段
-认证类型
-控制类型
-PAM模块及其参数
PAM安全认证流程
控制类型也称作Control Flags,用于PAM验证类型的返回结果
- required验证失败时任然继续,但返回Fail
- requisite验证失败则立刻结束整个验证过程,返回Fail
- sufficient验证成功则立即返回,不再继续,否则忽略结果并继续
- optional不用于验证,只显示信息(通常用于session类型)
使用sudo机制提升权限
su命令的缺点
sudo命令的用途及用法
- 用途:以其他用户身份(如root)执行授权的命令
- 用法
sudo 授权命令
配置sudo授权
-
visudo
或者vi /etc/sudoers
- 记录格式
用户 主机名=命令程序列表
[root@localhost ~]# visudo
......
%wheel ALL=NOPASSWD:ALL
jerry localhost=/sbin/ifconfig
syrianer localhost=/sbin/*,!/sbin/ifconfig,!/sbin/route
Cmnd_Alias PKGTOOLS=/bin/rpm,/usr/bin/yum
mike localhost=PKGTOOLS
查看sudo操作记录
- 需启用
Defaults logfile
配置 - 默认日志文件:
/var/log/sudo
查询授权的sudo操作
sudo -l
系统引导和登录控制
开关机安全控制
调整BIOS引导设置
- 将第一引导设备设为当前系统所在硬盘
- 禁止从其他设备(光盘、U盘、网络)引导系统
- 将安全级别设为setup,并设置管理员密码
GRUB限制
- 使用
grub2-mkpasswd-pbkdf2
生成密钥 - 修改
/etc/grub.d/00_header
文件中,添加密码记录 - 生成新的
grub.cfg
配置文件
终端登录安全控制
限制root只在安全终端登录
- 安全终端配置:
/etc/securetty
[root@localhost ~]# vi /etc/securetty
.......
#tty5
#tty6
禁止root用户从终端tty5、tty6登录
禁止普通用户登录
- 建立
/etc/nologin
文件 - 删除
nologin
文件或重启后即恢复正常
[root@localhost ~]# touch /etc/nologin ###禁止普通用户登录
[root@localhost ~]# rm -rf /etc/nologin ###取消上述登录限制
弱口令检测
Joth the Ripper,简称为 JR
- 一款密码分析工具,支持字典式的暴力破解
- 通过对shadow文件的口令分析,可以检测密码强度
- 官方网站:http://www.openwall.com/john/
安装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