目录
密码加固
updateauthconfig --passminlen=8 --update //限制口令最短8位
authconfig --passminclass=4 --update//限制口令至少包含4种字符
修改口令的生存周期
限制口令的最长使用期限为90天,口令的最短使用期限为3天,口令到期前15天发出警告
vi /etc/login.defs //编辑文件,修改文件内容
设置远程登录失败锁定
用户远程登录验证连续超过5次失败的,锁定账号30分钟
vim /etc/pam.d/sshd
在#%PAM-1.0下面加上一行
auth required pam_tally2.so deny=5 unlock_time=1800 even_deny_root root_unlock_time=1800
处理弱口令账号
例如现在要加固user1用户的弱口令,使其符合长度适合和复杂性的要求
passwd user1 //为用户设置符合长度适合和复杂性的要求
处理和系统运行维护无关的账户
加固要求:系统存在与系统运行、维护工作无关的账户,名为test,将其锁定。
加固方法:usermod -L test //锁定账户
防服务漏洞
更改ssh服务的端口将其端口改为其他的端口,列如改为2222端口
vi /etc/ssh/sshd_config
保存退出,把新的Port口告诉SELinux
semanage port -a -t ssh_port_t -p tcp 2222
重启ssh服务
systemctl restart sshd
查看
systemctl status sshd
限制SSH连接的源地址范围
例如:至允许192.168.247.0/24网端访问ssh服务
vi /etc/hosts.deny //在最后面加上一行sshd:ALL
vi /etc/hosts.allow //在最后面加上
sshd:192.168.247.0/255.255.255.0:allow
保存退出
重启ssh服务
systemctl restart sshd
禁用不必要的服务
例如cups,减少系统的受攻击面
systemctl stop cups //停止服务
systemctl disable cups //禁用服务
启动代码审计服务
systemctl start auditd //手动开启
systemctl enable auditd //开机自启动
systemctl status auditd //查看当前状态
防权限提升
启用sudo日志
创建sudo.log文件
touch /var/log/sudo.log
修改rsyslog配置文件
vi /etc/rsyslog.conf //在最后面加上一行
local2.debug /var/log/sudo.log //这里的空格必须用tab键
保存退出
visudo //编辑sudo配置
加上
Defaults logfile=/var/log/sudo.log
Defaults loglinelen=0
Defaults !syslog
保存退出
查看
cat /var/log/sudo.log
限制su的使用,禁止其他的用户使用su命令
vi /etc/pam.d/su
取消下面行的注释
auth required pam_whell.so use_uid
保存退出
vi /etc/group
将需要禁用的用户放进wheel组:wheel:小写的X:10:用户名
管理suid/sgid文件
加固要求:系统中存在设置了suid的vim程序(/usr/bin/vim),存在提权风险,要求取消该程序文件的suid权限。
加固方法:chmod u-s /usr/bin/vim
设置严格的umask
vi /etc/bashrc //将umask的参数改为027
vi /etc/profile //将umask参数的值改为027
查看任意用户创建的文件
ls -l test.file
注销时清除历史命令
加固要求:用户注销时清除该用户的历史命令
加固方法(例如)://注销时清除root用户的历史命令
vi /root/.bash_profile
加上
echo > /root/.bash_history
保存退出
禁用coredump
vi /etc/security/limits.conf
在最后文本最后加上 * hard core 0
保存退出
vi /etc/sysctl.conf
加入: fs.suid_dumpable = 0
保存退出
立即生效
sysctl -w fs.suid_dumpable=0
查看
sysctl -a | grep fs.suid_dumpable
防木马后门
加固要求:开启网络防火墙,只允许远程主机访问本地的特定端口,如22和80端口
加固方法:
systemctl start firewalld //启动firewalld服务
systemctl enable firewalld //设置服务开机自启
firewall-cmd --add-service=http //允许访问http服务
firewall-cmd --add-service=http --permanent //持久化(写入配置文件)
firewall-cmd --add-service=ssh
firewall-cmd --add-service=ssh --permanent
firewall-cmd --remove-service=dhcpv6-client //删除不需要的服务
firewall-cmd --remove-service=dhcpv6-client --permanent
firewall-cmd --list-service //查看firewalld允许的服务
firewall-cmd --list-service --permanent //查看配置文件允许的服务
限制crontab使用者
加固要求:禁止root之外的用户以crontab方式运行计划任务
touch /etc/cron.allow && vi /etc/cron.allow //创建文件并编辑文件
写入
root
保存退出
防痕迹清除
启用rsyslog服务
加固要求:启动rsyslog服务并设置为开机自动运行。
加固方法:
systemctl enable rsyslog //设置自动启动
systemctl start rsyslog //手动启动服务
配置远程日志服务器
加固要求:配置远程rsyslog日志服务器。
加固方法:
vi /etc/rsyslog.conf //编辑配置文件,在末尾加入一行:.@192.168.242.1
作用是将全部日志转发到192.168.242.1的UDP 514端口
加强审计日志文件权限
加固要求:为audit日志文件设置严格的权限,避免日志信息被恶意操作。
加固方法:
chmod 700 /var/log/audit
chmod 600 /var/log/audit/audit.log
防物理攻击
bootloader安全配置
加固要求:要求用户在系统引导程序执行之前输入boot口令,避免非授权用户改变启动参数或者改变引导分区,从而降低系统安全性被削弱的风险(如在启动时关闭selinux、进入单用户模式等)。
加固方法:grub2-setpassword