广告位出租 | 本站出租出售 | WhatsApp +853 63351311
Skip to content

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月

本站仅供学习交流使用,请遵守当地法律法规