linux系统加固
Linux系统加固是保障服务器或终端安全的关键步骤,通过减少攻击面、限制权限和监控异常行为来提升系统安全性。以下是针对Linux系统的详细加固指南,适用于个人用户及企业环境:
一、账户与权限管理
-
密码策略
-
修改密码复杂度规则(编辑
/etc/security/pwquality.conf
或/etc/pam.d/common-password
):bash
复制
下载
minlen = 12 minclass = 4 # 包含大写、小写、数字、符号 maxrepeat = 3 # 禁止连续重复字符
-
设置密码有效期(编辑
/etc/login.defs
):bash
复制
下载
PASS_MAX_DAYS 90 PASS_MIN_DAYS 1 PASS_WARN_AGE 7
-
使用
chage -l <用户>
检查密码状态。
-
-
用户与组权限
-
删除无用账户:
userdel <用户名>
-
限制特权用户:
-
使用
sudo
代替直接使用root
。 -
通过
/etc/sudoers
限制sudo
权限(使用visudo
编辑):bash
复制
下载
%admin ALL=(ALL) NOPASSWD: /usr/bin/apt, /usr/bin/systemctl
-
-
禁止非特权用户登录:在
/etc/ssh/sshd_config
中设置AllowUsers user1 user2
。
-
-
账户锁定策略
-
安装
pam_tally2
模块(编辑/etc/pam.d/login
):bash
复制
下载
auth required pam_tally2.so deny=5 unlock_time=300
-
查看失败登录记录:
pam_tally2 --user <用户名>
。
-
二、服务与进程管理
-
关闭不必要的服务
-
列出所有服务:
systemctl list-unit-files --type=service
-
禁用高危服务(如
rpcbind
、telnet
、nfs
等):bash
复制
下载
systemctl stop <服务名> systemctl disable <服务名>
-
-
限制后台进程
-
使用
ps aux
或top
检查异常进程。 -
通过
crontab -u root -e
检查计划任务,删除可疑条目。 -
禁用 Ctrl+Alt+Del 重启:注释
/etc/systemd/system/ctrl-alt-del.target
。
-
三、网络与防火墙配置
-
防火墙规则
-
使用
ufw
(Ubuntu)或firewalld
(RHEL/CentOS):bash
复制
下载
ufw default deny incoming ufw allow 22/tcp # 仅允许SSH端口 ufw enable
-
高级规则(iptables):
bash
复制
下载
iptables -A INPUT -p tcp --dport 22 -j ACCEPT iptables -A INPUT -j DROP
-
-
SSH加固
-
编辑
/etc/ssh/sshd_config
:bash
复制
下载
Port 2222 # 修改默认端口 PermitRootLogin no PasswordAuthentication no # 强制使用密钥认证 MaxAuthTries 3 ClientAliveInterval 300 # 超时断开空闲连接
-
重启SSH服务:
systemctl restart sshd
。
-
-
禁用IPv6(若无需使用)
-
编辑
/etc/sysctl.conf
:bash
复制
下载
net.ipv6.conf.all.disable_ipv6 = 1 net.ipv6.conf.default.disable_ipv6 = 1
-
生效配置:
sysctl -p
。
-
四、文件系统与权限
-
关键目录权限
-
设置敏感目录权限:
bash
复制
下载
chmod 700 /root chmod 644 /etc/passwd /etc/group chmod 600 /etc/shadow /etc/gshadow
-
限制SUID/SGID文件:
bash
复制
下载
find / -perm /4000 -exec ls -ld {} \; # 查找SUID文件 find / -perm /2000 -exec ls -ld {} \; # 查找SGID文件
-
-
挂载选项加固
-
编辑
/etc/fstab
,为分区添加noexec,nosuid,nodev
选项:bash
复制
下载
/dev/sda1 / ext4 defaults,noexec,nosuid,nodev 0 1
-
-
文件完整性监控
-
使用
aide
或tripwire
监控文件变更:bash
复制
下载
aide --init aide --check
-
五、内核参数调优
-
防止常见攻击
-
编辑
/etc/sysctl.conf
:bash
复制
下载
# 禁止ICMP重定向 net.ipv4.conf.all.accept_redirects = 0 net.ipv4.conf.default.accept_redirects = 0 # 防止SYN洪水攻击 net.ipv4.tcp_syncookies = 1 # 禁止内核转储(防止敏感信息泄露) fs.suid_dumpable = 0
-
生效配置:
sysctl -p
。
-
六、日志与审计
-
启用审计服务
-
使用
auditd
记录关键操作:bash
复制
下载
auditctl -a always,exit -F arch=b64 -S execve # 监控进程执行 auditctl -w /etc/passwd -p wa # 监控文件修改
-
查看日志:
ausearch -k <审计规则名>
。
-
-
集中化日志管理
-
配置
rsyslog
或systemd-journald
将日志发送至远程服务器。 -
示例(rsyslog):
bash
复制
下载
*.* @192.168.1.100:514
-
七、安全工具与自动化
-
漏洞扫描与基线检查
-
使用工具自动化加固:
-
Lynis:
lynis audit system
-
OpenSCAP:根据CIS基准扫描。
-
-
定期运行:
cron
定时任务。
-
-
入侵检测系统(IDS)
-
部署
fail2ban
防止暴力破解:bash
复制
下载
apt install fail2ban systemctl enable fail2ban
-
-
SELinux/AppArmor
-
启用并配置强制模式:
bash
复制
下载
# SELinux(RHEL/CentOS) setenforce 1 sed -i 's/SELINUX=permissive/SELINUX=enforcing/g' /etc/selinux/config # AppArmor(Ubuntu/Debian) systemctl enable apparmor systemctl start apparmor
-
八、加密与备份
-
磁盘加密
-
使用LUKS加密分区:
bash
复制
下载
cryptsetup luksFormat /dev/sdb1 cryptsetup open /dev/sdb1 encrypted_volume mkfs.ext4 /dev/mapper/encrypted_volume
-
-
定期备份
-
使用
rsync
或borg
增量备份:bash
复制
下载
borg create /backup::"{now}" /data
-
加密备份文件:
gpg -c backup.tar.gz
。
-
注意事项
-
最小权限原则:所有操作遵循“仅授予必要权限”。
-
测试与回滚:加固前备份配置文件,并在测试环境验证。
-
持续监控:结合Prometheus+Grafana或ELK监控系统状态。
-
合规要求:参考CIS Benchmark、NIST或企业安全规范。
通过以上措施,可显著提升Linux系统的安全性。企业环境中建议结合Ansible/Puppet实现批量配置管理,并定期进行渗透测试验证防护效果。