目录
-
密码安全策略
查看空口令帐号并为弱/空口令帐号设置强密码
[root@localhost ~]# awk -F: '($2 == ""){print $1}' /etc/shadow
设置密码的有效期和最小长度
修改vim /etc/login.defs配置密码周期策略
[root@localhost ~]# vim /etc/login.defs
/etc/login.defs参数说明:
PASS_MAX_DAYS 90 #密码最大有效期,此处参数PASS_MAX_DAYS为90,表示90天后,密码会过期,99999表示永不过期。
PASS_MIN_DAYS 10 #两次修改密码的最小间隔时间,0表示可以随时修改账号密码
PASS_MIN_LEN 8 #密码最小长度,对于root无效
PASS_WARN_AGE 7 #密码过期前多少天开始提示
注:修改了 /etc/login.defs下参数时,会立即生效,但是它只对修改后创建的用户生效,以前的帐号还是按99999天周期时间来算
设置用户密码的复杂度
备份原有配置文件
[root@localhost ~]# cp /etc/pam.d/system-auth /etc/pam.d/system-auth.bak
设置复杂度策略
[root@localhost ~]# vim /etc/pam.d/system-auth
找到包含pam_pwquality.so模块的行,将原有行注释并修改为如下的新配置,密码长度最少12位,至少包含一个大写字母,一个小写字母,一个数字,一个特殊符号。
password requisite pam_cracklib.so try_first_pass local_users_only retry=3 difok=2 authtok_type= minlen=12 lcredit=-1 ucredit=-1 dcredit=-1 ocredit=-1 enforce_for_root
注释说明:
difok=2 #本次密码与上次密码至少不同字符数
minlen=12 #密码最小长度为8个字符。
lcredit=-1 #密码应包含的小写字母的至少一个
ucredit=-1 #密码应包含的大写字母至少一个
dcredit=-1 #将密码包含的数字至少为一个
retry=3 #重试多少次后返回密码修改错误
ocredit=-1 #设置其他符号的最小数量,例如@,#、! $%等,至少要有一个
enforce_for_root #确保即使是root用户设置密码,也应强制执行复杂性策略。
【注】这个设置对于root没有作用,只针对普通用户修改自己密码时起作用
创建新用户进行验证
-
登录安全策略
设置用户远程登录的安全策略
执行指令# vim /etc/pam.d/login添加以下一行
[root@localhost ~]#vim /etc/pam.d/login
在字符终端下,实现某一用户连续错误登陆N次后,就锁定该用户X分钟
执行 vim /etc/pam.d/login
在#%PAM-1.0 下新起一行,加入
auth required pam_tally2.so deny=3 unlock_time=5 even_deny_root root_unlock_time=10
如果不限制root用户,则可以写成
auth required pam_tally2.so deny=3 unlock_time=5
说明:
even_deny_root=n #root用户失败登录次数超过deny=n次后拒绝访问
deny=n #设置普通用户和root用户连续错误登陆的最大次数,超过最大次数,则锁定该用户;
unlock_time=n #设定普通用户锁定后,多少时间后解锁,单位是秒;
root_unlock_time=n #与even_deny_root相对应的选项,如果配置该选项,则root用户在登录失败次数超出限制后被锁定指定时间。
解锁用户:
pam_tally2 --user <username> #查看用户登录失败次数记录
[root@localhost ~]# pam_tally2 --user root
pam_tally2 --user <username> --reset #清空失败次数记录,即解锁用户
或者[root@localhost ~]# pam_tally2 -r -u root
安全的远程管理方式
关闭telnet有两种方法
方法一: vi /etc/xinetd.d/telnet 将disable = no 改为 disable = yes
方法二: chkconfig telnet off
重启服务生效 service xinetd restart
删除包 rmp -e telnet-server --nodeps
vim /etc/services 注释掉23端口
访问控制
usermod -L user 禁用帐号,帐号无法登录,/etc/shadow第二栏显示为!开头
userdel user 删除user用户
userdel -r user 将删除user用户,并且将/home目录下的user目录一并删除
限制root用户登录
创建普通用户test2
[root@localhost ~]# useradd test2
[root@localhost ~]# passwd test2
为普通用户test2添加su授权
[root@localhost ~]# vim /etc/sudoers
root ALL=(ALL) ALL
test2 ALL=(ALL) ALL
登录test2普通用户验证
修改root用户禁止ssh登录系统
执行指令
[root@localhost ~]# vim /etc/ssh/sshd_config
PermitRootLogin no
[root@localhost ~]# systemctl restart sshd 重启ssh服务
再次使用root用户登录就被限制了
可以使用普通用户登录后,su 切换至root用户
修改ssh 22端口
[root@localhost ~]# vim /etc/ssh/sshd_config
Port 2022
[root@localhost ~]# systemctl restart sshd 重启
验证
设置登录超时时间
通过命令查看cat /etc/profile grep TMOUT
vim /etc/profile
添加export TMOUT=600 --600秒超时
-
限制IP访问
[root@localhost ~]# vim /etc/hosts.allow
sshd:192.168.2.*:allow #允许访问的网段
sshd:192.168.3.10:allow #允许访问的IP
添加sshd:ALL限制所有ip地址访问
[root@localhost ~]# vim /etc/hosts.deny
-
安全审计
审核策略开启
查看rsyslog与auditd服务是否开启
[root@localhost ~]# systemctl status rsyslog
[root@localhost ~]# systemctl status auditd
日志属性设置
[root@localhost ~]# vim /etc/logrotate.conf
把原始配置修改成 rotate 6
[root@localhost ~]# more /etc/logrotate.conf | grep -v "^#\|^$"
-
查看系统登录日志
[root@localhost ~]# lastlog #查看登录用户、端口和登录时间等信息
[root@localhost ~]# last –x #查看系统关闭、用户登录和退出的信息
[root@localhost ~]# lastb #查看尝试登录的失败信息
[root@localhost ~]# tail -f /var/log/messages #查看系统日志
[root@localhost ~]# last #参看账号登录情况