-
- 口令锁定策略
加固方法:
- 把查找到的行在行首添加“#”进行注释,在注释行之后添加以下内容
编辑/etc/pam.d/system-auth修改为如下策略 auth requisite pam_faillock.so preauth audit deny=5 even_deny_root unlock_time=600
auth [default=die] pam_faillock.so authfail audit deny=5 even_deny_root unlock_time=600
auth sufficient pam_faillock.so authsucc audit deny=5 even_deny_root unlock_time=600
- 编辑/etc/pam.d/password-auth修改为如下策略auth required pam_faillock.so preauth audit deny=5 even_deny_root unlock_time=600
auth [default=die] pam_faillock.so authfail audit deny=5 even_deny_root unlock_time=600
auth sufficient pam_faillock.so authsucc audit deny=5 even_deny_root unlock_time=600
说明:
deny=为登陆失败尝试次数
even_deny_root为root账户登录达到失败次数也会锁定
unlock_time=为锁定时长,以秒为单位
恢复方法:
- 在/etc/pam.d/system-auth、/etc/pam.d/password-auth deny参数,unlock_time参数等恢复成默认值
- 登录超时设置
加固方法:
- 在/etc/profile文件添加或修改成如下行:
TMOUT=300
- 有的重启系统可能不生效,建议在每个用户下的.bashrc文件行尾追加下行:
source /etc/profile
- 对相关文件打标记:
sudo kysec_set exectl -v verified -f /etc/profile
注意:这里的“用户”是具体的用户,如“root”用户
恢复方法:
- 在/etc/profile文件删除如下行:
TMOUT=300
- 对相关文件打标记:
sudo kysec_set exectl -v verified -f /etc/profile
-
- 限制 root 用户 SSH 远程登录
加固方法:
- 在/etc/ssh/sshd_config文件添加或修改成如下行
PermitRootLogin no
- 重启ssh服务:
$sudo systemctl restart ssh
恢复方法:
- 在/etc/ssh/sshd_config文件添加或修改成如下行
PermitRootLogin yes
- 重启ssh服务:
$sudo systemctl restart ssh
-
- 设置文件与目录缺省权限控制
加固方法:
- 在/etc/bashrc文件中添加或修改成如下行:
umask 027
- 给/etc/bashrc打标记:
sudo kysec_set exectl -v verified -f /etc/bash.bashrc
- 重启系统生效
恢复方法:
- 在/etc/bashrc文件中删除如下行:
umask 027
- 给/etc/bashrc打标记:
sudo kysec_set exectl -v verified -f /etc/bashrc
- 重启系统生效
-
- 口令生存周期
加固方法:
- 在/etc/login.defs添加或修改成如下行:
PASS_MAX_DAYS 90
PASS_WARN_AGE 7
- 修改已创建用户的口令有效期和到期前警告时间:
chage -M 90 <用户名>
chage --warndays 7 <用户名>
恢复方法:
- 在/etc/login.defs添加或修改成如下行:
PASS_MAX_DAYS 99999
PASS_WARN_AGE 7
- 修改已创建用户的口令有效期和到期前警告时间:
chage -M 99999 <用户名>
chage --warndays 7 <用户名>
-
- 密码复杂度
加固方法:
- 在/etc/security/pwquality.conf文件中的参数修改成如下:
minlen = 8
dcredit = -1
ucredit = -1
lcredit = -1
ocredit = -1
usercheck = 1
minclass = 3
恢复方法:
- 在/etc/security/pwquality.conf文件中如下行前都添加“#”屏蔽相关行:
minlen = 8
dcredit = -1
ucredit = -1
lcredit = -1
ocredit = -1
usercheck = 1
minclass = 3
-
- 启用远程日志功能
加固方法:
- 在/etc/rsyslog.conf中添加如下信息(服务器端使用rsyslog进行日志远程管理,客户的加固配置)
*.* @<服务器ip>:514
样例:
*.* @192.168.10.29:514
- 重启rsyslog服务
$sudo systemctl restart rsyslog
恢复方法:
- 在/etc/rsyslog.conf中去除服务ip地址相关配置
- 重启rsyslog服务
$sudo systemctl restart rsyslog
-
- 锁定系统无关用户
加固方法:
- 运行以下命令进行用户锁定:
sudo usermod -L <用户名>
恢复方法:
- 运行以下命令进行用户锁定:
sudo passwd -u <用户名>
-
- 配置用户最小授权
加固方法:
- 修改/etc/security的权限为600
$ chmod 600 /etc/security
恢复方法:
- 修改/etc/security的权限为之前的权限xxx
$ chmod xxx /etc/security
-
- 记录安全事件日志
加固方法:
- 存在/etc/rsyslog.conf,在相关文件中配置添加如下行:
*.err;kern.debug;daemon.notice /var/adm/messages
恢复方法:
在/etc/rsyslog.conf删除加固时添加的行。
-
- 配置 NFS 共享服务限制
加固方法:
- 检查系统是否安装nfs-kernel-server软件,如安装则进行第二步
$rpm -qa|grep nfs-utils
- 在/etc/exports中进行ip限制,具体需要根据实际情况进行设置。
样例:
/data/test 192.168.0.0/24(rw)
说明:样例中/data/test是共享目录,192.168.0.0/24是表示共享的网段,,rw 表只读写,其他权限请参考nfs使用说明文档进行设置
- 使用如下命令重启nfs服务器
$sudo systemctl restart nfs-server
注意:nfs本身存在很多安全漏洞,如“show mount -e”漏洞,管理员如未正确配置可能存在安全隐患
恢复方法:
- 在/etc/exports中删除或注释修改的行
- 使用如下命令重启nfs服务器
$sudo systemctl restart nfs-server
-
- 控制远程访问的 IP 地址
加固方法:
- 在/etc/hosts.deny文件中配置如下行:
sshd:ALL
- 在/etc/hosts.allow文件中配置如下行:
sshd:ip地址或地址段
注意:地址或地址段是具体的ip或ip网段
恢复方法:
- 在/etc/hosts.deny文件中如下行前添加“#”进行注释:
sshd:ALL
- 在/etc/hosts.allow文件中删除相关ip或网段的设置
-
- 配置NTP
加固方法:
- 首先检查systemd服务配置文件/usr/lib/systemd/system/ntpd.service是否存在,如果不存在,认为未安装ntp服务,检查项返回无需加固状态。如果文件存在,检查以下四项:
(1)ntpd服务是否设置为自启动;
(2)/etc/ntp.conf文件内是否有restrict default配置行,且配置了kod、nomodify、notrap、nopeer、noquery选项;
(3)/etc/ntp.conf文件内配置了远端校时服务器(server或pool起始行);
(4)ntp服务是否指定以ntp用户组及ntp用户执行(/usr/lib/systemd/system/ntpd.service文件内ExecStart行有-u ntp:ntp程序参数,或/etc/sysconfig/ntpd文件内OPTIONS配置有-u ntp:ntp参数)
- 若以上检查结果均为是,则此检查项无需加固,否则,需要(手动)加固
恢复方法:
手动还原,将加固的配置及参数修改为加固之前的样子
-
- 修改SNMP的默认Community
加固方法:
- 如果系统未安装snmp服务,则无需加固
- 如存在/etc/snmp/snmp.conf,且存在private或public默认团体名 把查找到的行在行首添加“#”进行注释,在注释行之后添加以下内容:
把private或public 改成:security_snmp,并去除default关键字。
- 重启snmp服务
systemctl restart snmpd
恢复方法:
1)把加固时新增的行全部删除,再去掉查找到的行的行首的“#”。
2)重启snmp服务
systemctl restart snmpd