账号安全控制
▪ 基本安全措施
1.系统账号清理
在Linux系统中,除了用户手动创建的各种账号之外,还包括随系统或程序安装过程而生成的其他大量账号,除了root外,其他账号只是用来维护系统运作、启动或保持服务进程,一般不允许登录。
常见的非登录用户账号包括bin、daemon、ip、mail等,在Shell通常是/sbin/nologin,表示禁止终端登录,确保不被人为改动。
对于服务器中长期不用的用户账号,可以暂时将其锁定,若要锁定解锁名为zhangsan的用户账号,可以执行一下操作(passwd、usermod命令)
例:usermod -L zhangsan 锁定账号
passwd -S zhangsan 查看账号状态
usermod -U zhangsan 解锁账号
如果服务器中的用户账号已经固定,不再进行更改,可以采取锁定账号配置文件的方法,使用chattr命令,结合“+i”"-i"来锁定、解锁文件,使用lsattr命令 可以查看文件锁定情况
例:chatte +i /etc/passwd /etc/shadow 锁定文件
lsattr +i /etc/passwd /etc/shadow 查看为锁定的状态
chatte -i /etc/passwd /etc/shadow 解锁文件
lsattr -i /etc/passwd /etc/shadow 查看为解锁的状态
在账号文件被锁定的情况下,其内容不允许变更,因此无法添加、删除账号,也不能更改用户的密码
2.密码安全控制
在不安全的网络环境中,为了降低密码被猜出或被暴力破解的风险,管理员可以在服务端限制用户密码的最大有效天数。
将密码的有效期设置为30天(chage命令用于设置密码时限):vi /etc/login.defs 适用于新建的用户
chage -M 30 lisi 适用于已有的lisi用户
在某些特殊情况下,要求批量创建的用户初次登录必须自设密码,根据安全规划统一要求所有用户更新密码等,可以由管理员执行强制策略,以便用户在下次登录时必须更改密码,例: chage -d 0 zhangsan
3.命令历史 、自动注销
例:设置最多只记录 200条历史命令
vi /etc/profile 适用于新登录用户
HISTSIZE=200
export HISTSIZE=200 适用于当前用户
当用户退出已登录Bash环境以后,所记录的历史命令将自动清空:vi ~/.bash_logout
Bash终端环境中,还可以设置一个闲置超时时间,当超过指定时间没有任何输入时将自动注销终端,闲置超时由变量TMOUT来控制,默认单位为秒(s)
例:vi /etc/profile 适用于新登录用户
export TMOUT=600 适用于当前用户
用户切换与提权
1.su命令--切换用户
(1)su命令用法
su root
gpasswd -a tsengyia wheel 添加授权用户tsengyia
grep wheel /etc/group 确认wheel组成员
vi /etc/pam.d/su
(2)PAM安全认证
is /etc/pam.d/ | grep su
cat /etc/pam.d/su
每一行都是一个独立的认证过程
每一行可以区分为三个字段
▪ 认证类型
▪ 控制类型
▪ PAM模块及其参数
PAM认证类型包括四种:
认证管理:接受用户名和密码,进而对该用户的密码进行认证
账户管理:检查账户是否被允许登录系统,账号是否已经过期,账号的登录是否有时间段的限制等
密码管理:主要是用来修改用户的密码
会话管理:主要是提供会话的管理和记账
2.sudo命令--提升执行权限
(1)在配置文件/etc/sudoers中添加授权
授权配置主要包括用户、主机、命令三个部分。各部分的具体含义如下:
用户(user):直接授权指定的用户名,或采用“%组名”的形式(授权一个组的所有用户)
主机(MACHINE):使用此配置文件的主机名称
命令(COMMANDS):允许授权的用户通过sudo方式执行的特权命令,需填写命令程序的完整路径,多个命令之间 以逗号“,”进行分隔
系统引导和登录控制
开关机安全控制
1.调整BIOS引导设置
2.闲置更改GRUB引导参数
终端及登录控制
1.禁止root用户登录
2.禁止普通用户登录
弱口令检测、端口扫描
弱口令检测--John tne Ripper
2.检查弱口令账号
3.使用密码字典文件
网络扫描--NMAP
1.安装NMAP软件包
2.扫描语法及类型
比较常见的几种扫描类型如下: