目录
账号安全基线
查看空⼝令和root权限的账号
建立一个uid为0的用户并且使改密码为空值
查看空口令账号命令
awk -F: '($2=="")' /etc/shadow
查看uid为0的账号命令
awk -F: '($3==0)' /etc/passwd
锁定多余⽤户锁定⽤户:
修改/etc/passwd⽂件,将需要锁定的⽤户的shell设为/sbin/nologin 或通过#passwd -l username锁定账户;
只有具备超级⽤户权限的使⽤者⽅可使⽤#passwd -l username锁定⽤户
⽤#passwd -d username 删除⽤户原密码
补充操作说明: ⼀般情况下,需要锁定的⽤户:lp,nuucp,hpdb,www,demon
修改⽤户默认权限umask值
Linux umask命令指定在建⽴⽂件时预设的权限掩码。
umask可⽤来设定[权限掩码]。[权限掩码]是由3个⼋进制的数字所组成,将现有的存取权限减掉权限掩码后,即可 产⽣建⽴⽂件时预设的权限。
vi /etc/bashrc
int 6 重启
创建a目录权限000
单独针对⽤户设置
可修改⽤户home⽬录下的.bashrc脚本⽂件,例如,可增加⼀条语句:umask 027;对于权限要求较严格的场 合,建议设置为077。
全局默认设置:
默认编辑vim /etc/bashrc最后⼀⾏添加umask 027,通常建议将umask设置为0027以上,对于权限要求较严 格的场合,建议设置为077。
同时编辑vim /etc/profile配置⽂件,最后添加⾏umask 027 最后重启计算机通过命令字umask验证结果
权限说明
权限 ⽂件 ⽬录
r read 读去⽂件内容 可列出⽬录内容
w write 修改⽂件内容 添加、删除⽬录中的⽂件
x exe 运⾏程序、脚本 可以进⼊该⽬录
限制⽤户使⽤su
使⽤命令
vim /etc/pam.d/su
修改配置⽂件,去除第六⾏的注释符号,表示在wheel组中的⽤户才能够成功使⽤ su命令,其他⽤户⽆法使⽤。如果需要其他组⽀持该功能可以添加内容。
例如:只允许test组⽤户su到root
auth required pam_wheel.so group=test
只有wheel组中的⽤户可以使⽤su命令
init 6 重启
pam可插拔认证模块基础知识
pam功能主要由两部分组成:配置⽂件和功能模块
根据不同功能模块的作⽤实现不同验证功能
配置⽂件主要有
vim /etc/pam.d/system-config-users
vim /etc/pam.d/config-util
其中配置⽂件中包含的主要功能如下
分三列:认证类型 控制⽅式 加载的模块
认证类型包括:
auth 认证 确定组成员身份
account 认证⽤户的属性⽤户是否过期
password ⽤户改密码相关 复杂度要求
session 会话开始之前给⽤户的访问限制
控制⽅式包括:
sufficient 充分不必要条件 规则满⾜了就够了不⽤看后续条件 如果失败了没事不是必要条件要看后续项条件是否 满⾜
required 必要不充分条件 不满⾜肯定失败但是会检查后条件不管后续条件是否满⾜最终还是失败 满⾜了也不⼀定 成功要看后续条件匹配 如果⿊客破解密码 如果⽤requisite式密码匹配条件错了就⽴刻知道哪个条件不满⾜了 ⽐ 如不能在晚上登录
requisite 必要不充分条件 检查失败就失败 检查成功还需要检验后续条件是否满⾜
optional 可选的 成功了没影响失败了也没影响 设置参数⽤
include 包含
vim /etc/pam.d/system-config-users
密码的最⻓有效期以及⽤户登录机制
1.使⽤命令
vim /etc/login.defs
修改配置⽂件
PASS_MAX_DAYS 90 #新建⽤户的密码最⻓使⽤天数
PASS_MIN_DAYS 0 #新建⽤户的密码最短使⽤天数
PASS_MIN_LEN 8 #可以修改密码⻓度为8
PASS_WARN_AGE 7 #新建⽤户的密码到期提前提醒天数
使⽤chage命令修改⽤户设置,例如:
chage -m 0 -M 30 -E 2019-09-30 -W 7 表示:将此⽤户的密码最⻓使⽤天数设为30,最短使⽤天数设为0,密码2019年9⽉30⽇过期,过期前7天⾥警告⽤ 户
2.设置连续输错3次密码,账号锁定3分钟。
vim /etc/pam.d/system-auth
在第⼆有效⾏添加如下内容
auth required pam_tally2.so deny=3 unlock_time=30 even_deny_root root_unlock_time=30
account required pam_tally2.so
#超过失败登录尝试次数后锁定⽤户,可以通过pam_tally2来解锁⽤户
在vim /etc/pam.d/password-auth编辑内容同上
vim /etc/pam.d/password-auth
init6 重启
⽤ssh allen@127.0.0.1 故意输错三次密码
可以通过 pam_tally2命令查看锁定⽤户状态
pam_tally2 --reset -u tom 解锁⽤户锁定状态
密码的复杂性
# cat /etc/pam.d/password-auth
⼝令的最⼩⻓度⾄少12位
⼝令最少应包含的字符数量
⼝令中最少应包含的字⺟字符数量
⼝令中最少应包含的⾮字⺟数字字符数量
通过以上4⼦项的输出综合判断该项是否满⾜。
sshd login 配置⽂件都调⽤了 pam配置⽂件password-auth 和 system-aut
vim /etc/pam.d/system-auth
pam_cracklib.so 检查密码强度的⽐如是否基于字典
pam_unix.so 是标准的unix⽤户认证模块 获取⽤户信息满⾜就允许更新密码
pam_deny.so 永远返回失败
pam_cracklib.so try_first_pass 选项作⽤允许模块使⽤应⽤程序收集到的⽤户密码调⽤pam retry=3 返回错误之前提示⽤户⼏次
type=hello 表示输密码的时候屏幕上是空的 如果写了内容 就会在建⽴密码时候的提示会有你录⼊的内容⽐如 new hello password
minlen=N 密码⻓度最少⼏位 对管理员不⽣效 最短⻓度减去3才是最短⻓度
lcredit=N 在新密码⾥有多少个⼩写字⺟ (-2密码中最少需要两个⼩写字⺟ 与密码⻓度⽆关) ucredit=N ⼤写字⺟ -2表示密码⾥⾯最少需要2个⼤写字⺟ 正2⽆意义
dcredit=N 数字
ocredit=N 其他的字符
minclass=N 以上的分类 写⼏就⾄少带有⼏种
password requisite pam_cracklib.so try_first_pass retry=3 type=classpassword ucredit=-2 minlen=10 表示密 码最⼩⻓度为7位,⽽且必须有两个是⼤写字⺟
init 6
vim /etc/pam.d/password-auth
同上修改
init 6 重启
修改命令历史记录条⽬数以及时间标签
有时候需要对 Linux 系统做审计,那为历史记录添加时间戳,显示⾮常有⽤。
系统启动后的默认配置脚本
vim /etc/profile
HISTSIZE历史记录默认记录的条⽬数默认为1000
显示更加详细的信息
export HISTTIMEFORMAT="%F %T `who -u am i 2>/dev/null| awk '{print $NF}'|sed \-e
's/[()]//g'` `whoami`
source /etc/profile
⽴即加载⽂件
History的位置~/.bash_history
设置登录超时时间
使⽤命令vim /etc/profile 配置⽂件,在最后⼀⾏添加export TMOUT=,设置为export TMOUT=180,即超时时 间为3分钟
ssh服务安全加固
1、 不能使⽤telnet进⾏远程维护;
2、 应使⽤SSH进⾏远程维护;
3、 SSH配置要符合如下要求;
X11Forwarding yes #允许窗⼝图形传输使⽤ssh加密
HostbasedAuthentication no #不允许基于主机⽩名单⽅式认证
PermitRootLogin no #不允许root登录
PermitEmptyPasswords no #不允许空密码
使⽤命令“vi /etc/ssh/sshd_config”编辑配置⽂件
(1)不允许root直接登录 设置“PermitRootLogin ”的值为no
(2)修改允许密码错误次数(默认6次) 设置“MaxAuthTries”的值为3