尊敬的客户:
05互联来详细介绍每个步骤的具体操作方法:
1. 账户和密码安全
1.1 密码策略
/etc/security/pwquality.conf
# 设置密码复杂度要求
minlen = 12 # 最小长度
minclass = 4 # 至少包含小写字母、大写字母、数字和特殊字符
dcr
dit = -1 # 至少1个数字
ucredit = -1 # 至少1个大写字母
lcredit = -1 # 至少1个小写字母
ocredit = -1 # 至少1个特殊字符
:/etc/pam.d/system-auth
# 添加密码历史记录
password required pam_pwhistory.so remember=5
1.2 账户锁定策略
```bash:/etc/pam.d/system-auth
# 添加登录失败锁定
auth required pam_tally2.so deny=5 unlock_time=300 even_deny_root
1.3 设置账户过期
# 设置root密码90天过期
chage -M 90 root
# 检查特权账户
awk -F: '($3 == 0) {print}' /etc/passwd
# 锁定系统账户
for user in daemon bin sys adm; do
passwd -l $user
usermod -s /sbin/nologin $user
done
2. 文件系统安全
2.1 重要目录权限设置
# 设置关键目录权限
chmod 644 /etc/passwd
chmod 000 /etc/shadow
chmod 644 /etc/group
chmod 600 /etc/gshadow
chmod 600 /etc/crontab
chmod 700 /root
chmod 755 /tmp
chmod 700 /etc/rc*.d
2.2 查找和修复SUID/SGID文件
# 查找SUID文件
find / -type f -perm -4000 -ls
# 查找SGID文件
find / -type f -perm -2000 -ls
# 必要时移除不必要的SUID权限
chmod u-s /path/to/file
3. 服务安全配置
3.1 SSH服务加固
:/etc/ssh/sshd_config
# SSH安全配置
Port 22222 # 修改默认端口
Protocol 2 # 使用SSH2协议
PermitRootLogin no # 禁止root直接登录
MaxAuthTries 3 # 最大认证尝试次数
PasswordAuthentication yes # 是否允许密码认证
PermitEmptyPasswords no # 禁止空密码
ClientAliveInterval 300 # 客户端活动间隔
ClientAliveCountMax 3 # 最大客户端活动计数
AllowUsers user1 user2 # 允许登录的用户
3.2 禁用不必要服务
# 查看运行的服务
systemctl list-units --type=service
# 禁用不必要的服务
systemctl disable telnet.service
systemctl disable rsh.service
systemctl disable tftp.service
systemctl disable xinetd.service
systemctl disable vsftpd.service
4. 网络安全
4.1 基本iptables规则
# 清除现有规则
iptables -F
# 设置默认策略
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
# 允许已建立的连接
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# 允许本地回环
iptables -A INPUT -i lo -j ACCEPT
# 允许SSH(假设端口为22222)
iptables -A INPUT -p tcp --dport 22222 -j ACCEPT
# 保存规则
service iptables save
4.2 系统网络参数优化
:/etc/sysctl.conf
# 网络安全参数
net.ipv4.tcp_syncookies = 1
net.ipv4.icmp_echo_ignore_broadcasts = 1
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.all.accept_source_route = 0
net.ipv4.conf.all.log_martians = 1
net.ipv4.tcp_max_syn_backlog = 2048
net.ipv4.tcp_synack_retries = 2
net.ipv4.tcp_syn_retries = 5
5. 系统审计
5.1 配置审计规则
:/etc/audit/rules.d/audit.rules
# 监控文件系统
-w /etc/passwd -p wa -k identity
-w /etc/group -p wa -k identity
-w /etc/shadow -p wa -k identity
-w /etc/sudoers -p wa -k identity
# 监控命令执行
-a exit,always -F arch=b64 -S execve -k exec
5.2 日志配置
/etc/rsyslog.conf
# 配置远程日志
*.* @logserver:514
# 重要日志本地存储
auth.* /var/log/auth.log
kern.* /var/log/kern.log
6. 系统监控
6.1 设置文件完整性监控
# 安装AIDE
yum install aide
# 初始化AIDE数据库
aide --init
mv /var/lib/aide/aide.db.new.gz /var/lib/aide/aide.db.gz
# 创建定期检查脚本
cat > /etc/cron.daily/aide-check << 'EOF'
#!/bin/bash
/usr/sbin/aide --check | mail -s "AIDE检查报告 $(date)" root
EOF
chmod 755 /etc/cron.daily/aide-check
7. 定期维护任务
# 创建系统更新脚本
cat > /root/system-update.sh << 'EOF'
#!/bin/bash
yum -y update
yum -y upgrade
EOF
chmod 700 /root/system-update.sh
# 添加到crontab
echo "0 2 * * 0 /root/system-update.sh" >> /var/spool/cron/root
8. 安全检查清单
1. 定期运行以下命令:
# 检查开放端口
netstat -tunlp
# 检查系统用户
cat /etc/passwd | awk -F: '$3==0 {print $1}'
# 检查异常进程
ps -ef | grep -v root
# 检查定时任务
for user in $(cut -f1 -d: /etc/passwd); do crontab -u $user -l 2>/dev/null; done
注意事项:
1. 实施前要进行备份
2. 分步骤实施,每步测试
3. 保留应急回退方案
4. 记录所有更改
5. 定期检查配置有效性
6. 建立安全事件响应机制
这些配置需要根据具体环境调整,建议在测试环境验证后再应用到生产环境。同时要注意保存原始配置文件的备份。
05互联
发布时间:2024/12/23 0:35:29