确保 Linux 服务器的安全是系统管理员的核心任务之一。以下是一份全面的安全建议清单,涵盖身份验证、网络防护、文件系统安全、监控与审计等方面,帮助加固你的服务器。
1. 系统更新与补丁管理
定期更新系统和软件包:
bash复制# Debian/Ubuntusudo apt update && sudo apt upgrade -y# RHEL/CentOSsudo yum update -y# 或者使用 dnf(Fedora/CentOS 8+)sudo dnf upgrade -y
启用自动安全更新(可选):
bash复制# Debian/Ubuntusudo apt install unattended-upgradessudo dpkg-reconfigure unattended-upgrades# RHEL/CentOSsudo yum install yum-cronsudo systemctl enable --now yum-cron
2. 用户与权限管理
(1) 禁用 root 直接登录
禁止 root SSH 登录:
bash复制sudo sed -i 's/PermitRootLogin yes/PermitRootLogin no/g' /etc/ssh/sshd_configsudo systemctl restart sshd
使用
sudo
替代 root,仅授权必要用户:bash复制# 添加用户并赋予 sudo 权限sudo adduser usernamesudo usermod -aG sudo username # Debian/Ubuntusudo usermod -aG wheel username # RHEL/CentOS
(2) 强密码策略
设置密码复杂度要求(编辑
/etc/login.defs
和/etc/pam.d/common-password
或/etc/security/pwquality.conf
)。强制定期更换密码:
bash复制sudo chage -M 90 username # 90 天后过期
(3) 使用 SSH 密钥认证
生成密钥对(本地机器):
bash复制ssh-keygen -t ed25519 -C "your_email@example.com"
上传公钥到服务器:
bash复制ssh-copy-id username@server_ip
禁用密码登录(仅允许密钥):
bash复制sudo sed -i 's/#PasswordAuthentication yes/PasswordAuthentication no/g' /etc/ssh/sshd_configsudo systemctl restart sshd
3. 防火墙与网络防护
(1) 配置防火墙(UFW/firewalld)
UFW(Ubuntu/Debian):
bash复制sudo ufw enablesudo ufw allow 22/tcp # SSHsudo ufw allow 80/tcp # HTTPsudo ufw allow 443/tcp # HTTPS
firewalld(RHEL/CentOS):
bash复制sudo firewall-cmd --permanent --add-service=sshsudo firewall-cmd --permanent --add-service=httpsudo firewall-cmd --permanent --add-service=httpssudo firewall-cmd --reload
(2) 限制 SSH 访问
更改默认 SSH 端口(如
2222
):bash复制# Debian/Ubuntusudo apt install unattended-upgradessudo dpkg-reconfigure unattended-upgrades# RHEL/CentOSsudo yum install yum-cronsudo systemctl enable --now yum-cron0
仅允许特定 IP 访问 SSH:
bash复制# Debian/Ubuntusudo apt install unattended-upgradessudo dpkg-reconfigure unattended-upgrades# RHEL/CentOSsudo yum install yum-cronsudo systemctl enable --now yum-cron1
(3) 禁用不必要服务
检查运行的服务:
bash复制# Debian/Ubuntusudo apt install unattended-upgradessudo dpkg-reconfigure unattended-upgrades# RHEL/CentOSsudo yum install yum-cronsudo systemctl enable --now yum-cron2
关闭高风险服务(如
telnet
、ftp
、rpcbind
):bash复制# Debian/Ubuntusudo apt install unattended-upgradessudo dpkg-reconfigure unattended-upgrades# RHEL/CentOSsudo yum install yum-cronsudo systemctl enable --now yum-cron3
4. 文件系统安全
(1) 关键目录权限
限制敏感目录:
bash复制# Debian/Ubuntusudo apt install unattended-upgradessudo dpkg-reconfigure unattended-upgrades# RHEL/CentOSsudo yum install yum-cronsudo systemctl enable --now yum-cron4
防止提权攻击:
bash复制# Debian/Ubuntusudo apt install unattended-upgradessudo dpkg-reconfigure unattended-upgrades# RHEL/CentOSsudo yum install yum-cronsudo systemctl enable --now yum-cron5
(2) 禁用 SUID/SGID 危险文件
查找并移除不必要的 SUID 文件:
bash复制# Debian/Ubuntusudo apt install unattended-upgradessudo dpkg-reconfigure unattended-upgrades# RHEL/CentOSsudo yum install yum-cronsudo systemctl enable --now yum-cron6
移除危险文件的 SUID 位(如
chmod u-s /bin/xxx
)。
(3) 启用文件完整性监控(AIDE/Tripwire)
安装 AIDE(高级入侵检测工具):
bash复制# Debian/Ubuntusudo apt install unattended-upgradessudo dpkg-reconfigure unattended-upgrades# RHEL/CentOSsudo yum install yum-cronsudo systemctl enable --now yum-cron7
5. 入侵检测与日志监控
(1) 安装 Fail2Ban
自动封禁暴力破解 IP:
bash复制# Debian/Ubuntusudo apt install unattended-upgradessudo dpkg-reconfigure unattended-upgrades# RHEL/CentOSsudo yum install yum-cronsudo systemctl enable --now yum-cron8
配置规则(
/etc/fail2ban/jail.local
):ini复制# Debian/Ubuntusudo apt install unattended-upgradessudo dpkg-reconfigure unattended-upgrades# RHEL/CentOSsudo yum install yum-cronsudo systemctl enable --now yum-cron9
(2) 日志分析
检查 SSH 登录失败记录:
bash复制sudo sed -i 's/PermitRootLogin yes/PermitRootLogin no/g' /etc/ssh/sshd_configsudo systemctl restart sshd0
监控系统日志:
bash复制sudo sed -i 's/PermitRootLogin yes/PermitRootLogin no/g' /etc/ssh/sshd_configsudo systemctl restart sshd1
(3) Rootkit 检测
使用
rkhunter
或chkrootkit
:bash复制sudo sed -i 's/PermitRootLogin yes/PermitRootLogin no/g' /etc/ssh/sshd_configsudo systemctl restart sshd2
6. 其他高级防护
(1) SELinux/AppArmor
启用 SELinux(RHEL/CentOS):
bash复制sudo sed -i 's/PermitRootLogin yes/PermitRootLogin no/g' /etc/ssh/sshd_configsudo systemctl restart sshd3
启用 AppArmor(Debian/Ubuntu):
bash复制sudo sed -i 's/PermitRootLogin yes/PermitRootLogin no/g' /etc/ssh/sshd_configsudo systemctl restart sshd4
(2) 内核参数加固
编辑
/etc/sysctl.conf
:ini复制sudo sed -i 's/PermitRootLogin yes/PermitRootLogin no/g' /etc/ssh/sshd_configsudo systemctl restart sshd5
应用配置:
bash复制sudo sed -i 's/PermitRootLogin yes/PermitRootLogin no/g' /etc/ssh/sshd_configsudo systemctl restart sshd6
7. 备份与灾难恢复
定期备份关键数据(使用
rsync
、tar
或云存储):bash复制sudo sed -i 's/PermitRootLogin yes/PermitRootLogin no/g' /etc/ssh/sshd_configsudo systemctl restart sshd7
测试备份可恢复性,避免紧急情况失效。
总结
最小权限原则:只开放必要的服务和端口。
纵深防御:结合防火墙、入侵检测、日志监控多层防护。
自动化监控:使用工具(如
fail2ban
、AIDE
)减少人工干预。定期审计:检查用户、进程、文件变更。
通过以上措施,你的 Linux 服务器将具备较高的安全性,但仍需定期复查和更新策略以应对新威胁。
还木有评论哦,快来抢沙发吧~