作为IT工程师,以下是Linux系统下常见的安全事件预防措施,分为多个关键方面:
定期更新系统:
# Debian/Ubuntu
sudo apt update && sudo apt upgrade -y
# RHEL/CentOS
sudo yum update -y
# Fedora
sudo dnf upgrade -y
最小化安装原则:只安装必要的软件包和服务
禁用不必要的服务:
sudo systemctl disable <不需要的服务名>
sudo systemctl stop <不需要的服务名>
使用强密码策略:
/etc/login.defs
设置密码过期时间、最小长度等libpam-cracklib
增强密码复杂度要求限制root登录:
# 禁止root直接SSH登录
sudo sed -i 's/PermitRootLogin yes/PermitRootLogin no/' /etc/ssh/sshd_config
sudo systemctl restart sshd
使用sudo代替su:限制普通用户通过sudo执行特权命令
定期检查用户账户:
# 检查空密码账户
sudo awk -F: '($2 == "") {print}' /etc/shadow
# 检查UID为0的账户
sudo awk -F: '($3 == "0") {print}' /etc/passwd
配置防火墙:
# 使用ufw(简单)
sudo ufw enable
sudo ufw default deny incoming
sudo ufw default allow outgoing
# 或使用iptables/nftables(更灵活)
SSH安全加固:
# 修改SSH端口
sudo sed -i 's/#Port 22/Port 2222/' /etc/ssh/sshd_config
# 仅允许密钥认证
sudo sed -i 's/#PasswordAuthentication yes/PasswordAuthentication no/' /etc/ssh/sshd_config
# 限制SSH访问IP
echo "sshd: 192.168.1.0/24" >> /etc/hosts.allow
echo "sshd: ALL" >> /etc/hosts.deny
sudo systemctl restart sshd
禁用不安全的协议:如telnet、ftp、rlogin等
设置适当的文件权限:
# 关键目录权限
sudo chmod 750 /etc/sudoers.d
sudo chmod 700 /root
# 查找全局可写文件
sudo find / -xdev -type f -perm -0002 -exec ls -l {} \;
使用文件属性:
# 防止关键文件被修改
sudo chattr +i /etc/passwd /etc/shadow /etc/group /etc/sudoers
# 防止二进制文件被替换
sudo chattr +i /usr/bin/*
配置umask:在/etc/profile
中设置默认umask为027或077
安装入侵检测系统:
# 安装AIDE(高级入侵检测环境)
sudo apt install aide
sudo aideinit
sudo mv /var/lib/aide/aide.db.new /var/lib/aide/aide.db
# 定期检查:sudo aide.wrapper --check
日志监控:
/etc/rsyslog.conf
集中管理日志/var/log/auth.log
, /var/log/secure
等关键日志安装rootkit检测工具:
sudo apt install rkhunter chkrootkit
sudo rkhunter --update
sudo rkhunter --check
使用SELinux/AppArmor:
# 检查SELinux状态
sestatus
# 安装AppArmor
sudo apt install apparmor apparmor-utils
sudo aa-status
限制SUID/SGID程序:
# 查找所有SUID/SGID文件
sudo find / -xdev \( -perm -4000 -o -perm -2000 \) -type f -print0 | xargs -0 ls -l
# 移除不必要的SUID/SGID
sudo chmod u-s /path/to/file
sudo chmod g-s /path/to/file
定期备份关键数据:
# 使用tar备份
sudo tar -czvf /backup/etc_backup_$(date +%Y%m%d).tar.gz /etc
# 或使用rsync
sudo rsync -avz /important/data /backup/location/
测试恢复流程:定期验证备份的完整性和可恢复性
内核安全参数调优:
# 修改/etc/sysctl.conf
net.ipv4.conf.all.rp_filter=1
net.ipv4.conf.default.rp_filter=1
net.ipv4.icmp_echo_ignore_broadcasts=1
net.ipv4.conf.all.accept_redirects=0
net.ipv6.conf.all.accept_redirects=0
kernel.exec-shield=1
kernel.randomize_va_space=2
使用安全审计工具:
sudo apt install lynis
sudo lynis audit system
通过实施这些措施,可以显著提高Linux系统的安全性,预防大多数常见的安全事件。安全是一个持续的过程,需要定期审查和更新安全策略。