在数字时代,保护你的 Linux 虚拟专用服务器 (VPS)
对于保护你的数据和基础设施至关重要。本
综合指南探讨了保护你的 Linux VPS 的方法
cyber threats.
保持系统更新
Updated
保护你的 Linux VPS 的最重要方面之一是
确保系统保持最新状态。过时的软件可能
包含恶意行为者可以利用的漏洞。以下是操作方法:
do it:
使用包管理器
大多数 Linux 发行版都提供包管理器。例如,如果
你使用的是基于 Debian 的系统,可以运行以下命令
来更新和升级软件包:
sudo apt update
sudo apt upgrade
如果你使用的是 CentOS 系统,请使用 yum:
sudo yum update
Set Up Automatic
Updates
在 Debian 系统上设置 unattended-upgrades 自动更新:
基于 Debian 的系统
在 Debian 系统(如 Ubuntu)上,你可以使用
unattended-upgrades 软件包自动化更新过程。
- 安装 unattended-upgrades:
sudo apt install unattended-upgrades
- 配置自动更新设置。编辑配置文件
file:
sudo nano /etc/apt/apt.conf.d/50unattended-upgrades
- 为安全相关的软件包启用自动更新:
Unattended-Upgrade::Allowed-Origins {
"${distro_id}:${distro_codename}-security";
"${distro_id}:${distro_codename}-updates";
"${distro_id}:${distro_codename}-proposed";
"${distro_id}:${distro_codename}-backports";
};
- 启用并启动 unattended-upgrades 服务:
sudo dpkg-reconfigure -plow unattended-upgrades
This command will prompt you to confirm the changes. Select “Yes” to
启用自动更新。
使用 yum-cron 设置自动更新
CentOS:
在 CentOS 上,你可以使用 yum-cron 来自动更新系统:
- 安装 yum-cron:
sudo yum install yum-cron
- 启动并启用 yum-cron 服务:
sudo systemctl enable yum-cron
sudo systemctl start yum-cron
Use
强密码和 SSH 密钥确保安全认证
保护您的 Linux VPS 需要使用强身份验证方法。
无论您是从 Linux 还是 Windows 客户端连接,以下是操作方法
有效使用强密码和 SSH 密钥:
Using Strong
Passwords
在 VPS 上创建用户账户时,请确保密码
复杂度高,包含大小写字母、数字和特殊符号
个字符。避免使用容易被猜到的密码。
使用 SSH 密钥
Authentication
针对 Linux 客户端:
- 要在 Linux 客户端上生成 SSH 密钥对,请使用 ssh-keygen
command:
ssh-keygen -t rsa -b 2048
默认情况下,公钥将存储在 ~/.ssh/id_rsa.pub。
- 将你的公钥复制到 VPS:
ssh-copy-id user@your_server_ip
- 在 SSH 服务器上禁用 VPS 的基于密码的 SSH 登录
配置文件 (/etc/ssh/sshd_config):
PasswordAuthentication no
适用于 Windows 客户端:
- 在 Windows 上,使用 PowerShell 可以实现类似的功能:
ssh-keygen
- 使用 PowerShell 将你的公钥复制到 VPS。替换
IP-ADDRESS-OR-FQDN 与远程服务器的
address:
type $env:USERPROFILE\.ssh\id_rsa.pub | ssh root@{IP-ADDRESS-OR-FQDN} "cat >> .ssh/authorized_keys"
- 在 SSH 服务器上禁用 VPS 的基于密码的 SSH 登录
配置文件 (/etc/ssh/sshd_config):
PasswordAuthentication no
Implement a Firewall
保护您的 Linux VPS 需要设置防火墙来控制
入站和出站流量。以下是防火墙的实现方法
enhance security:
在 Debian/Ubuntu 上使用 ufw(简易防火墙),或
firewalld on CentOS:
- 安装防火墙管理工具(如果尚未安装)。
在 Debian/Ubuntu 上使用 ufw:
sudo apt install ufw
在 CentOS 上使用 firewalld:
sudo yum install firewalld
- 在启用防火墙前添加规则以允许 SSH,防止被锁定
locked out:
在 Debian/Ubuntu 上使用 ufw:
sudo ufw allow OpenSSH
在 CentOS 上使用 firewalld:
sudo firewall-cmd --permanent --add-service=ssh
- 启用防火墙并设置默认规则:
在 Debian/Ubuntu 上使用 ufw:
sudo ufw enable
sudo ufw default deny incoming
sudo ufw default allow outgoing
在 CentOS 上使用 firewalld:
sudo systemctl start firewalld
sudo systemctl enable firewalld
- 重新加载防火墙以使更改生效。
在 Debian/Ubuntu 上使用 ufw:
sudo ufw reload
在 CentOS 上使用 firewalld:
sudo systemctl reload firewalld
禁用 Root 登录
保护您的 Linux VPS 需要限制 root 访问权限。以下是
禁用 root 登录以增强安全性的方法:
- 创建新用户:以 root 用户身份登录您的 VPS。然后创建
一个具有 sudo 权限的新用户账户。将 newuser 替换为您的
desired username:
adduser newuser
usermod -aG sudo newuser
- 创建 .ssh 目录、authorized_keys 并为
新用户设置权限:
mkdir -p /home/newuser/.ssh
touch /home/newuser/.ssh/authorized_keys
chmod 600 /home/newuser/.ssh/authorized_keys
chown -R newuser:newuser /home/newuser/.ssh
-
确保生成公钥并将其复制到您的
VPS. -
以新用户身份登录。
-
从 VPS 断开连接(如果您以 root 身份连接),然后使用
新用户账户重新登录。这样可以确保您能够使用 sudo 执行
管理任务。 -
编辑 SSH 配置:
在您的 VPS 上打开 SSH 服务器配置文件。该文件通常
位于 /etc/ssh/sshd_config:
sudo nano /etc/ssh/sshd_config
找到 PermitRootLogin 行并将其设置为 no:
PermitRootLogin no
保存文件并退出文本编辑器。
- 重启 SSH 服务:
更改此设置后,需要重启 SSH 服务才能让
新设置生效:
On Debian/Ubuntu:
sudo systemctl restart ssh
On CentOS:
sudo systemctl restart sshd
Harden SSH
Configuration
保护 Linux VPS 需要进一步加固 SSH
配置以增强安全性,并确保 UFW 规则保持
最新状态。以下是加固 SSH 设置和更新 UFW
rules:
- 在 UFW 中允许新的 SSH 端口:
如果使用 UFW(简化防火墙),在更改默认端口前,
先在 UFW 中允许新的 SSH 端口:
# Allow the new SSH port (e.g., 2222)
sudo ufw allow 2222/tcp
- 从 UFW 规则中移除 OpenSSH:
更改 SSH 端口后,应从 UFW 规则中移除旧的 OpenSSH
服务(默认端口 22),以确保只允许新的
SSH 端口:
# Remove the old OpenSSH service (default port 22)
sudo ufw delete allow OpenSSH
- 更改 SSH 端口:
SSH 默认使用端口 22。更改默认端口可增加一层安全保护,
让自动扫描工具更难发现
你的 SSH 服务器。
打开 SSH 服务器配置文件:
sudo nano /etc/ssh/sshd_config
找到显示 Port 22 的行,将端口号改为
另一个未使用的端口,例如 2222:
Port 2222
- 启用密钥重新认证:
可以为密钥重新认证设置时间限制,进一步保护
你的 SSH 会话。这意味着如果你的 SSH 会话
长时间无操作,它将在指定时间后自动过期。
在 SSH 服务器配置文件中添加或修改以下行
然后保存:
ClientAliveInterval 300
ClientAliveCountMax 2
- 重新加载 UFW 规则和 SSH 服务:
sudo ufw reload
sudo systemctl restart ssh
- 完成必要的更改后,可以使用以下命令建立新的 SSH
连接:
ssh -p <new_port> user@your_server_ip
Implement Fail2Ban
保护 Linux VPS 需要防御暴力破解登录
尝试和其他恶意活动。Fail2Ban 是一个有用的
工具。以下是实现方式:
- Install Fail2Ban:
首先更新软件包列表,确保获得最新版本
available packages:
对于基于 Debian 的系统(例如 Ubuntu):
sudo apt update
For CentOS:
sudo yum update
Install Fail2Ban:
对于基于 Debian 的系统:
sudo apt install fail2ban
For CentOS:
sudo yum install fail2ban
- Configure Fail2Ban:
Fail2Ban 的主配置文件位于
/etc/fail2ban/jail.conf。你可以创建一个覆盖配置
file at /etc/fail2ban/jail.local to customize settings
而无需修改默认配置。打开此文件:
sudo nano /etc/fail2ban/jail.local
添加以下配置,在六次失败登录尝试后禁止 IP 地址 10 分钟
(600 秒)。根据需要调整参数
needed:
[sshd]
enabled = true
maxretry = 6
findtime = 600
bantime = 600
保存文件并退出文本编辑器。
- 启动并启用 Fail2Ban:
启动 Fail2Ban 并将其设置为开机启动:
sudo systemctl start fail2ban
sudo systemctl enable fail2ban
- Check Fail2Ban Status:
你可以检查 Fail2Ban 的状态,确保其正常工作
expected:
sudo fail2ban-client status
你应该看到它正在监控 SSH 服务。
这里讨论的 6 种基本方法提供了强大的防护
抵御潜在漏洞。通过保持系统更新、
使用强身份验证、配置防火墙、强化 SSH,
以及部署 Fail2Ban,你能够强化 VPS 并获得心安
心态始终保持警觉。如有任何疑问,请随时
联系我们的支持团队 submitting a
ticket.