安全最重要

前言

为啥标题要用英文???原本的标题是中文如何保护你的vps,但好像总觉得差点什么,说的太多又显得太长不好,感觉用hijacked好像更能表达我的意思!😊

接下来言归正传,相信很多人都期望拥有一台自己的服务器,在上面跑一些自己的服务,建一个博客。由于服务要暴漏到公网上,看过三体的人可能都知道黑暗森林这个词,公网也是一样,每个服务器都是一只待宰的羔羊。一旦你的服务器暴露到互联网,就会立即成为各种扫描器、爬虫和攻击者的目标。无论是 Shodan、ZoomEye 这样的互联网资产搜索引擎,还是黑客利用自动化脚本扫描开放端口,都会对你的服务器产生潜在威胁。如果安全配置不到位,你的服务器可能会在短时间内被入侵,成为别人的肉鸡,被用于 DDoS 攻击、挖矿甚至数据窃取。

那么,如何在黑暗森林中生存,保护好自己的服务器?本文将从性能优化、基础安全、入侵防御等多个方面,详细介绍,带你一步步构建一台既稳定高效,又足够安全的VPS。

一、VPS 性能优化

在保证安全的前提下,优化 VPS 的运行效率,可以提升服务器的响应速度,减少资源占用,避免性能瓶颈。以下是几个关键的优化点:

1. 调整内核参数

Linux 的默认内核参数并不适用于所有服务器,可以通过 sysctl 调整 TCP 连接优化、文件描述符限制等参数。
编辑内核配置文件:

sudo nano /etc/sysctl.conf

添加以下优化参数:

# 启用 BBR 拥塞控制算法
net.core.default_qdisc=fq
net.ipv4.tcp_congestion_control=bbr

# 增加最大文件描述符数量
fs.file-max=1000000

# 关闭 TCP 时间戳,防止被利用进行扫描
net.ipv4.tcp_timestamps=0

# 减少 TCP 连接超时等待时间
net.ipv4.tcp_fin_timeout=15

# 开启 SYN cookie 保护 SYN Flood 攻击
net.ipv4.tcp_syncookies=1

应用配置:

sudo sysctl -p

2. 关闭不必要的系统服务

很多 Linux 发行版默认开启了一些不必要的服务,可以禁用以减少资源占用:

sudo systemctl disable --now cups      # 关闭打印服务
sudo systemctl disable --now postfix   # 关闭邮件服务
sudo systemctl disable --now apache2   # 关闭未使用的 Web 服务器

3. 启用 BBR 网络优化

BBR(Bottleneck Bandwidth and RTT)是 Google 开发的一种 TCP 拥塞控制算法,可以极大地提高网络吞吐量。
检查是否支持 BBR:

lsmod | grep bbr

如果没有启用,可以执行:

echo "net.core.default_qdisc=fq" | sudo tee -a /etc/sysctl.conf
echo "net.ipv4.tcp_congestion_control=bbr" | sudo tee -a /etc/sysctl.conf
sudo sysctl -p

4. 限制进程和文件句柄

ulimit -n 100000  # 增加最大文件描述符数
ulimit -u 4096    # 限制最大用户进程数

或者修改 /etc/security/limits.conf

* soft nofile 1000000
* hard nofile 1000000
* soft nproc  65535
* hard nproc  65535

二、VPS 安全防护

性能优化只是基础,没有安全保护的服务器很快会沦为别人的肉鸡。以下是关键的安全防护措施。

1. 更改 SSH 端口,启用密钥登录

SSH 是 VPS 最常见的攻击目标,默认端口 22 可能会被暴力破解。我们可以更改端口,并只允许密钥认证:

① 修改 SSH 端口

sudo nano /etc/ssh/sshd_config

修改:

Port 2222  # 改为 2222 或其他非默认端口
PermitRootLogin no  # 禁止 root 直接 SSH 登录
PasswordAuthentication no  # 仅允许密钥登录

重启 SSH 服务:

sudo systemctl restart sshd

② 配置 SSH 密钥登录

在本地机器上生成 SSH 密钥:

ssh-keygen -t rsa -b 4096

然后将公钥复制到 VPS:

ssh-copy-id -p 2222 user@your-vps-ip

2. 安装 Fail2Ban,防止暴力破解

Fail2Ban 监控日志,自动封禁恶意 IP:

sudo apt install fail2ban -y

启用 SSH 防护:

sudo nano /etc/fail2ban/jail.local

添加:

[sshd]
enabled = true
port = 2222
maxretry = 3
bantime = 3600

重启:

sudo systemctl restart fail2ban

3. 配置防火墙

① 使用 UFW(推荐)

sudo apt install ufw -y
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow 2222/tcp  # 允许 SSH 端口
sudo ufw enable

② 使用 iptables

sudo iptables -A INPUT -p tcp --dport 2222 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
sudo iptables -P INPUT DROP
sudo iptables-save | sudo tee /etc/iptables.rules

4. 关闭 Root 账户密码登录

sudo passwd -l root

5. 安装入侵检测工具

sudo apt install rkhunter clamav -y
sudo freshclam  # 更新病毒库
sudo rkhunter --update
sudo rkhunter --checkall

三、定期维护

  • 更新系统
    sudo apt update && sudo apt upgrade -y
    
  • 监控 SSH 登录
    sudo cat /var/log/auth.log | grep "Failed password"
    
  • 检查系统资源
    top
    htop  # 需要安装 htop
    btop  
    

版权声明: 如无特别声明,本文版权归 sshipanoo 所有,转载请注明本文链接。

(采用 CC BY-NC-SA 4.0 许可协议进行授权)

本文标题:《 Protect your VPS from being hijacked. 》

本文链接:http://0.0.0.0:3015/tech/how-to-protect-your-vps.html

本文最后一次更新为 天前,文章中的某些内容可能已过时!