Linux 系统安全加固的主要方法-05互联
>

新闻中心 / Linux 系统安全加固的主要方法

Linux 系统安全加固的主要方法

发布时间:2024/12/23 0:35:29

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. 建立安全事件响应机制


这些配置需要根据具体环境调整,建议在测试环境验证后再应用到生产环境。同时要注意保存原始配置文件的备份。