一.密码长度与有效期
 默认配置:#cat /etc/login.defs |grep PASS_ |grep -v '#'
 PASS_MAX_DAYS 99999
 PASS_MIN_DAYS 0
 PASS_MIN_LEN 5
 PASS_WARN_AGE 7
 加固方案:1.备份配置文件:
#cp -a /etc/login.defs /etc/login.defs.default2.编辑配置文件并将相关参数改成如下
#vi /etc/login.defs
 PASS_MAX_DAYS 90
 PASS_MIN_DAYS 6
 PASS_MIN_LEN 8
 PASS_WARN_AGE 30
 备注:/etc/login.defs文件的pass_min_len 参数并不具备强制性,测试仍然可以设置7位密码。最终需要cracklib来实现。
参数说明:
PASS_MAX_DAYS 密码有效期
PASS_MIN_DAYS 修改密码的最短期限
PASS_MIN_LEN 密码最短长度
PASS_WARN_AGE 密码过期提醒
二.密码复杂度
 默认配置:#cat /etc/pam.d/system-auth | grep "pam_pwquality.so try_first_pass local_users_only retry=3 authtok_type="
 password requisite pam_pwquality.so try_first_pass local_users_only retry=3 authtok_type=
 加固方案:1.备份配置文件:
#cp -a /etc/pam.d/system-auth /etc/pam.d/system-auth.default
 2.编辑配置文件
#vi /etc/pam.d/system-auth
 将password requisite pam_pwquality.so try_first_pass local_users_only retry=3 authtok_type=
 注释并在其下面新增1行 password requisite pam_cracklib.so try_first_pass minlen=8 difok=5 dcredit=-1 lcredit=-1 ocredit=-1 retry=1 type=
 备注:try_first_pass而当pam_unix验证模块与password验证类型一起使用时,该选项主要用来防止用户新设定的密码与以前的旧密码相同。
minlen=8:最小长度8位
difok=5:新、旧密码最少5个字符不同
dcredit=-1:最少1个数字
lcredit=-1:最少1个小写字符,(ucredit=-1:最少1个大写字符)
ocredit=-1:最少1个特殊字符
retry=1:1次错误后返回错误信息
type=xxx:此选项用来修改缺省的密码提示文本
三.新口令不能与4个最近使用的相同
 默认配置:#cat /etc/pam.d/system-auth |grep use_authtok
 password sufficient pam_unix.so sha512 shadow nullok try_first_pass use_authtok
 加固方案:1.备份配置文件
 2.编辑配置文件:
#vi /etc/pam.d/system-auth
 在password sufficient pam_unix.so sha512 shadow nullok try_first_pass use_authtok 所在行的后面添加
 remember=5
 备注:记住5个历史密码
四.设置会话超时(5分钟)
 默认配置:无
加固方案:
 1.备份配置文件:
#cp -a /etc/profile /etc/profile.default
 2.编辑配置文件:
#vi /etc/profile
 在文件的末尾添加参数
 export TMOUT=300备注:
5分钟无操作中断登录会话
五.设置history命令时间戳
 默认配置:无
加固方案:
 1.备份配置文件:
 略
 2.编辑配置文件:
#vi /etc/profile
 在文件的末尾添加参数
 export HISTTIMEFORMAT="%F %T whoami "六.设置登陆失败锁定(终端登录)
 默认配置:无
加固方案:
1.备份配置文件
 2.编辑配置文件:
#vi /etc/pam.d/system-auth
 在# User changes will be destroyed the next time authconfig is run.行的下面,添加
 auth required pam_tally2.so deny=5 unlock_time=1800 even_deny_root root_unlock_time=1800备注:
通过终端登录,5次登录失败后锁定账号30分钟,锁定期间此账号无法再次登录。
七.禁止root通过ssh远程登录
 默认配置:#cat /etc/ssh/sshd_config |grep PermitRootLogin
 #PermitRootLogin yes加固方案:
1.备份配置文件
#cp -a /etc/ssh/sshd_config /etc/ssh/sshd_config.default
 2.编辑配置文件
#vi /etc/ssh/sshd_config
 将配置参数#PermitRootLogin yes改成PermitRootLogin no
 4.重启ssh服务
#systemctl restart sshd八.SSH 配置参数增强
 1.备份配置文件
 2.编辑配置文件
#vi /etc/ssh/sshd_config(1)禁止空密码登录
 将#PermitEmptyPasswords no参数的注释符号去掉,改成
 PermitEmptyPasswords no(2)关闭ssh的tcp转发
 将#AllowTcpForwarding yes参数改成
 AllowTcpForwarding no(3)关闭S/KEY(质疑-应答)认证方式
 将#ChallengeResponseAuthentication yes参数,改成
 ChallengeResponseAuthentication no(4)关闭基于GSSAPI 的用户认证
 将GSSAPIAuthentication yes参数,改成
 GSSAPIAuthentication no4.重启ssh服务
#systemctl restart sshd九.设置SSH登录警告语
 默认配置:无
加固方案:
1.备份配置文件
 略
 2.编辑配置文件
#vi /etc/ssh/sshd_config
 找到#Banner none参数,在其下一行,增加
 Banner /etc/ssh/alert
 3.保存配置文件
 4新增告警信息文件.
#vi /etc/ssh/alert
 文件内容,设置成这里的内容自己定义,可以提示一下登录的用户引起运维人员重视
 Warning!!!Any Access Without Permission Is Forbidden!!!5.保存后重启ssh服
十.设置umask值
 默认配置:#umask
 0022
 加固方案:1.备份配置文件
#cp -a /etc/bashrc /etc/bashrc.default
 2.编辑配置文件
#vi /etc/bashrc
 在文件末尾增加参数
 umask 027
 3. 备份配置文件
#cp -a /etc/profile /etc/profile.default
 4.编辑配置文件
#vi /etc/profile
 在文件末尾增加参数
 umask 027备注:
将umask值设置成0027,用于拿掉新增目录与文件的非所有者和所有者所属组的访问权限
默认:
新增目录权限755,即rxwr-xr-x
新增文件权限644,即
rw-r–r—
加固后:
新增目录权限750,即rxwr-x—
新增文件权限640,即
rw-r-----
十一.禁止Control-Alt-Delete 键盘重启系统命令
 默认配置:#ls /usr/lib/systemd/system/ctrl-alt-del.target
加固方案:
1.备份配置文件
#cp -a /usr/lib/systemd/system/ctrl-alt-del.target /usr/lib/systemd/system/ctrl-alt-del.target.default
 2.移除该原源文件
#rm -rf /usr/lib/systemd/system/ctrl-alt-del.target
十二. 隐藏系统版本信息
 默认配置:加固方案:
执行以下命令:
#mv /etc/issue /etc/issue.bak
 #mv /etc/issue.net /etc/issue.net.bak备注:登录界面显示系统版本信息
十三.设置grup密码
 默认配置:无加固方案:
1.备份配置文件
#cp -a /etc/grub.d/00_header /etc/grub.d/00_header.default
 2.使用grub2-mkpasswd-pbkdf2 加密密码(密码自己定义,但是一定得保存好否则最后连自己都登录不进去)
#grub2-mkpasswd-pbkdf2
 Enter password:
 Reenter password:
 PBKDF2 hash of your password is grub.pbkdf2.sha512.10000.B157F42E96462AB239C03000F113D32EB18FD48073F1FC7D8F87A8F3B3F89F662424ECCAB901F3A812A997E547FD520F3E99D0E080F4FE8B05E019757E34F75B.29C83F87B4B6C086FC9A81E046CC3623CC5CF2F82128EDC3A0364894E429D4993B28563F82D71BF346188108CBD4341FC4A71B90E543581646B4E7EAE920C54A3.添加以下配置到该文件的最后面(特别需要注意 用户名root和密文之间是空格分隔,而不是换行)
 cat <<EOF
 set superusers=‘root’
 password_pbkdf2 root grub.pbkdf2.sha512.10000.B157F42E96462AB239C03000F113D32EB18FD48073F1FC7D8F87A8F3B3F89F662424ECCAB901F3A812A997E547FD520F3E99D0E080F4FE8B05E019757E34F75B.29C83F87B4B6C086FC9A81E046CC3623CC5CF2F82128EDC3A0364894E429D4993B28563F82D71BF346188108CBD4341FC4A71B90E543581646B4E7EAE920C54A
 E0F
 4.执行命令grub2-mkconfig -o /boot/grub2/grub.cfg
 重新编译生成grub.cfg文件十四.最大文件打开数(文件句柄数)
 默认配置:#ulimit -n
 1024加固方案:
1.备份配置文件
#cp -a /etc/security/limits.conf /etc/security/limits.conf.default
 2.添加以下两行配置到该文件最后
 ‘’* soft nofile 65535 #最大打开文件数软限制
 ‘’* hard nofile 65535 #最大打开文件数硬限制备注:修改所有用户的最大文件打开数为65535
十五.用户最大进程数
 默认配置:#cat /etc/security/limits.d/20-nproc.conf
 #Default limit for number of user’s processes to prevent
 #accidental fork bombs.
 #See rhbz #432903 for reasoning.‘’* soft 65535 #最大打开文件数软限制
 root hard 65535 #最大打开文件数硬限制加固方案:
1.备份配置文件
#cp -a /etc/security/limits.d/20-nproc.conf /etc/security/limits.d/20-nproc.conf.default
 2.修改配置文件
#vim /etc/security/limits.d/20-nproc.conf
 ‘’* soft nproc 65535 #最大打开进程数软限制
 ‘’* hard nproc 65535 #最大打开进程数硬限制备注:修改所有用户的最大进程数为65535
十六.系统参数调优
 默认配置:无
加固方案:
1.备份配置文件
#cp -a /etc/sysctl.conf /etc/sysctl.conf.default
 2.添加以下调优参数到该文件中
 net.ipv4.ip_forward = 1
 net.ipv4.conf.default.rp_filter = 1
 net.ipv4.conf.default.accept_source_route = 0
 kernel.sysrq = 0
 kernel.core_uses_pid = 1
 kernel.msgmnb = 65536
 kernel.msgmax = 65536
 kernel.shmmax = 68719476736
 kernel.shmall = 4294967296
 net.core.wmem_default = 8388608
 net.core.rmem_default = 8388608
 net.core.rmem_max = 16777216
 net.core.wmem_max = 16777216
 net.ipv4.route.gc_timeout = 20
 net.ipv4.tcp_retries2 = 5
 net.ipv4.tcp_fin_timeout = 30
 net.ipv4.tcp_wmem = 8192 131072 16777216
 net.ipv4.tcp_rmem = 32768 131072 16777216
 net.ipv4.tcp_mem = 94500000 915000000 927000000
 net.core.somaxconn = 262144
 net.core.netdev_max_backlog = 262144
 net.core.wmem_default = 8388608
 net.core.rmem_default = 8388608
 net.core.rmem_max = 16777216
 net.core.wmem_max = 16777216
 net.ipv4.route.gc_timeout = 20
 net.ipv4.ip_local_port_range = 10024 65535
 net.ipv4.tcp_retries2 = 5
 net.ipv4.tcp_syn_retries = 2
 net.ipv4.tcp_synack_retries = 2
 net.ipv4.tcp_timestamps = 0
 net.ipv4.tcp_tw_recycle = 1
 net.ipv4.tcp_tw_reuse = 1
 net.ipv4.tcp_keepalive_time = 1800
 net.ipv4.tcp_keepalive_probes = 3
 net.ipv4.tcp_keepalive_intvl = 30
 net.ipv4.tcp_max_orphans = 3276800
 net.ipv4.tcp_wmem = 8192 131072 16777216
 net.ipv4.tcp_rmem = 32768 131072 16777216
 net.ipv4.tcp_mem = 94500000 915000000 927000000fs.file-max = 65535
 kernel.pid_max = 65536
 net.ipv4.tcp_wmem = 4096 87380 8388608
 net.core.wmem_max = 8388608
 net.core.netdev_max_backlog = 5000
 net.ipv4.tcp_window_scaling = 1
 net.ipv4.tcp_max_syn_backlog = 10240net.core.netdev_max_backlog = 262144
 net.core.somaxconn = 262144
 net.ipv4.tcp_max_orphans = 3276800
 net.ipv4.tcp_max_syn_backlog = 262144
 net.ipv4.tcp_timestamps = 0
 net.ipv4.tcp_syn_retries = 1
 net.ipv4.tcp_synack_retries = 1net.ipv4.tcp_syncookies = 1
 net.ipv4.tcp_tw_reuse = 1
 net.ipv4.tcp_tw_recycle = 1
 net.ipv4.tcp_fin_timeout = 30net.ipv4.tcp_keepalive_time = 120
 net.ipv4.ip_local_port_range = 10000 65000
 net.ipv4.tcp_max_syn_backlog = 262144
 net.ipv4.tcp_max_tw_buckets = 36000