VPS安全配置指南
🛡️ 基础安全设置
第一步:系统更新
购买VPS后的第一件事就是更新系统:
bash
# Ubuntu/Debian系统
sudo apt update && sudo apt upgrade -y
# CentOS/RHEL系统
sudo yum update -y
# 或者新版本使用
sudo dnf update -y
第二步:创建新用户
避免使用root用户进行日常操作:
bash
# 创建新用户
sudo adduser newuser
# 添加到sudo组
sudo usermod -aG sudo newuser
# 切换到新用户
su - newuser
第三步:SSH安全配置
编辑SSH配置文件:
bash
sudo nano /etc/ssh/sshd_config
推荐安全设置:
bash
# 更改默认端口(避免自动化扫描)
Port 2222
# 禁用root登录
PermitRootLogin no
# 禁用密码登录(使用密钥认证)
PasswordAuthentication no
# 限制登录尝试
MaxAuthTries 3
# 设置空闲超时
ClientAliveInterval 300
ClientAliveCountMax 2
重启SSH服务:
bash
sudo systemctl restart sshd
🔐 SSH密钥认证
生成SSH密钥对
在本地计算机上:
bash
# 生成RSA密钥(推荐4096位)
ssh-keygen -t rsa -b 4096 -C "[email protected]"
# 或者生成更安全的Ed25519密钥
ssh-keygen -t ed25519 -C "[email protected]"
部署公钥到VPS
bash
# 复制公钥到VPS
ssh-copy-id -p 2222 newuser@your-vps-ip
# 或者手动复制
cat ~/.ssh/id_rsa.pub | ssh newuser@your-vps-ip "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
测试密钥登录
bash
ssh -p 2222 newuser@your-vps-ip
🔥 防火墙配置
UFW防火墙(Ubuntu)
bash
# 启用UFW
sudo ufw enable
# 设置默认规则
sudo ufw default deny incoming
sudo ufw default allow outgoing
# 允许SSH(使用您的自定义端口)
sudo ufw allow 2222
# 允许HTTP和HTTPS(如果需要)
sudo ufw allow 80
sudo ufw allow 443
# 查看状态
sudo ufw status verbose
Firewalld(CentOS)
bash
# 启动firewalld
sudo systemctl start firewalld
sudo systemctl enable firewalld
# 添加SSH端口
sudo firewall-cmd --permanent --add-port=2222/tcp
# 重新加载配置
sudo firewall-cmd --reload
# 查看开放端口
sudo firewall-cmd --list-ports
👤 用户权限管理
Sudo权限配置
bash
sudo visudo
添加用户权限:
bash
# 允许用户执行特定命令
newuser ALL=(ALL) /usr/bin/apt, /usr/bin/systemctl
# 无需密码执行sudo(谨慎使用)
newuser ALL=(ALL) NOPASSWD: ALL
账户安全策略
bash
# 设置密码过期时间
sudo chage -M 90 newuser
# 查看账户信息
sudo chage -l newuser
# 锁定不用的账户
sudo usermod -L olduser
🔒 系统安全加固
禁用不必要的服务
bash
# 查看运行中的服务
sudo systemctl list-unit-files --state=enabled
# 禁用不需要的服务
sudo systemctl disable cups
sudo systemctl disable bluetooth
内核安全参数
编辑 /etc/sysctl.conf
:
bash
# 禁用IP转发
net.ipv4.ip_forward = 0
# 禁用ICMP重定向
net.ipv4.conf.all.accept_redirects = 0
net.ipv6.conf.all.accept_redirects = 0
# 启用SYN攻击保护
net.ipv4.tcp_syncookies = 1
# 应用设置
sudo sysctl -p
安装安全工具
bash
# Fail2Ban - 防止暴力破解
sudo apt install fail2ban
# ClamAV - 病毒扫描
sudo apt install clamav clamav-daemon
# rkhunter - rootkit检测
sudo apt install rkhunter
# Lynis - 安全审计
sudo apt install lynis
🕵️ 隐私保护技巧
清除登录记录
bash
# 清除history
history -c
history -w
# 清除系统日志
sudo truncate -s 0 /var/log/auth.log
sudo truncate -s 0 /var/log/syslog
# 清除last登录记录
sudo truncate -s 0 /var/log/wtmp
sudo truncate -s 0 /var/log/btmp
匿名化网络流量
bash
# 安装Tor
sudo apt install tor
# 配置Tor代理
# 编辑 /etc/tor/torrc
# SocksPort 9050
# ControlPort 9051
# 启动Tor
sudo systemctl start tor
sudo systemctl enable tor
VPN设置
bash
# OpenVPN客户端
sudo apt install openvpn
# 连接VPN
sudo openvpn --config your-vpn-config.ovpn
📊 监控和日志
系统监控
bash
# 安装监控工具
sudo apt install htop iotop nethogs
# 查看系统状态
htop # 进程监控
iotop # I/O监控
nethogs # 网络监控
sudo ss -tuln # 端口监听
日志监控
bash
# 实时查看系统日志
sudo tail -f /var/log/syslog
# 查看SSH登录尝试
sudo grep "Failed" /var/log/auth.log
# 查看成功登录
sudo grep "Accepted" /var/log/auth.log
入侵检测
bash
# 运行rkhunter扫描
sudo rkhunter --check
# 运行Lynis审计
sudo lynis audit system
# ClamAV病毒扫描
sudo clamscan -r /home
⚠️ 安全注意事项
🚨 重要提醒
严重安全风险
- 永远不要在VPS上存储敏感个人信息
- 不要使用简单密码或默认密码
- 不要在公共网络上管理VPS
- 不要信任来源不明的软件
🔄 定期安全检查
- [ ] 每周检查系统更新
- [ ] 每月审查用户账户
- [ ] 每月检查防火墙规则
- [ ] 每季度更换SSH密钥
- [ ] 每季度进行安全扫描
📋 安全检查清单
- [ ] 已更新系统到最新版本
- [ ] 已创建非root用户
- [ ] 已配置SSH密钥认证
- [ ] 已更改默认SSH端口
- [ ] 已配置防火墙规则
- [ ] 已安装安全监控工具
- [ ] 已禁用不必要的服务
- [ ] 已设置自动安全更新
🛠️ 故障排除
SSH连接问题
bash
# 检查SSH服务状态
sudo systemctl status sshd
# 查看SSH日志
sudo journalctl -u sshd
# 测试SSH配置
sudo sshd -t
防火墙问题
bash
# 临时关闭防火墙(紧急情况)
sudo ufw disable
# 重置防火墙规则
sudo ufw --force reset
性能问题
bash
# 检查系统负载
uptime
top
# 检查磁盘空间
df -h
# 检查内存使用
free -h
📚 进阶安全配置
Docker安全
如果使用Docker:
bash
# 以非特权用户运行Docker
sudo usermod -aG docker newuser
# 扫描Docker镜像安全
docker scan your-image
数据库安全
如果安装了数据库:
bash
# MySQL安全配置
sudo mysql_secure_installation
# PostgreSQL用户权限
sudo -u postgres createuser --interactive
Web服务器安全
如果运行Web服务器:
bash
# Nginx安全配置
# 隐藏服务器版本
server_tokens off;
# Apache安全配置
# 隐藏服务器信息
ServerTokens Prod
ServerSignature Off
本指南持续更新,建议定期查看最新安全实践。最后更新:2024年1月