安全最重要
前言
为啥标题要用英文???原本的标题是中文如何保护你的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
本文最后一次更新为 天前,文章中的某些内容可能已过时!