在数字时代,保护您的 Linux 虚拟专用服务器 (VPS)
对于保护您的数据和基础设施至关重要。这
综合指南探讨了保护您的 Linux VPS 免受侵害的方法
网络威胁。
保留您的系统
已更新
确保 Linux VPS 安全的最重要方面之一是
确保您的系统是最新的。过时的软件可能会
包含恶意行为者可以利用的漏洞。以下是如何操作
这样做:
使用包管理器
大多数 Linux 发行版都提供包管理器。例如,如果
如果您使用的是基于 Debian 的系统,您可以运行以下命令
更新和升级软件包:
sudo apt update
sudo apt upgrade
如果您使用的是 CentOS 系统,请使用 yum:
sudo yum update
设置自动
更新
设置自动更新并启用无人值守升级
基于 Debian 的系统:
在基于 Debian 的系统(例如 Ubuntu)上,您可以使用
无人值守升级包可自动执行更新过程。
- 安装无人值守升级:
sudo apt install unattended-upgrades
- 配置自动更新设置。编辑配置
文件:
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";
};
- 启用并启动无人值守升级服务:
sudo dpkg-reconfigure -plow unattended-upgrades
该命令将提示您确认更改。选择“是”即可
启用自动更新。
打开 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
使用
用于安全身份验证的强密码和 SSH 密钥
保护您的 Linux VPS 涉及使用强身份验证方法。
无论您是从 Linux 还是 Windows 客户端进行连接,以下是如何
有效使用强密码和 SSH 密钥:
使用强
密码
在 VPS 上创建用户帐户时,请确保密码是
复杂,由大写和小写字母、数字和特殊字符组合而成
人物。避免使用容易被猜到的密码。
使用 SSH 密钥
验证
对于 Linux 客户端:
- 要在 Linux 客户端上生成 SSH 密钥对,请使用 ssh-keygen
命令:
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 地址或 FQDN 与远程服务器的
地址:
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
实施防火墙
保护您的 Linux VPS 涉及设置防火墙来控制
传入和传出流量。以下是如何实施防火墙
增强安全性:
在 Debian/Ubuntu 上使用 ufw(简单防火墙)或
CentOS 上的防火墙:
- 如果尚未安装,请安装防火墙管理工具。
对于 Debian/Ubuntu 上的 ufw:
sudo apt install ufw
对于 CentOS 上的防火墙:
sudo yum install firewalld
- 在启用防火墙之前添加允许 SSH 的规则,以防止被攻击
锁定:
对于 Debian/Ubuntu 上的 ufw:
sudo ufw allow OpenSSH
对于 CentOS 上的防火墙:
sudo firewall-cmd --permanent --add-service=ssh
- 启用防火墙并设置默认规则:
对于 Debian/Ubuntu 上的 ufw:
sudo ufw enable
sudo ufw default deny incoming
sudo ufw default allow outgoing
对于 CentOS 上的防火墙:
sudo systemctl start firewalld
sudo systemctl enable firewalld
- 重新加载防火墙以使更改生效。
对于 Debian/Ubuntu 上的 ufw:
sudo ufw reload
对于 CentOS 上的防火墙:
sudo systemctl reload firewalld
禁用根登录
保护您的 Linux VPS 涉及限制 root 访问。方法如下
禁用 root 登录以增强安全性:
- 创建新用户:以 root 用户身份登录您的 VPS。然后创建
具有 sudo 权限的新用户帐户。将 newuser 替换为您的
所需的用户名:
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 的连接(如果您以 root 身份连接)并登录
返回使用新用户帐户。这确保您可以执行
使用 sudo 执行管理任务。 -
编辑 SSH 配置:
打开 VPS 上的 SSH 服务器配置文件。这个文件是
通常位于 /etc/ssh/sshd_config:
sudo nano /etc/ssh/sshd_config
找到显示 PermitRootLogin 的行并将其设置为 no:
PermitRootLogin no
保存文件并退出文本编辑器。
- 重新启动 SSH 服务:
进行此更改后,您应该重新启动 SSH 服务
新设置生效:
在 Debian/Ubuntu 上:
sudo systemctl restart ssh
在 CentOS 上:
sudo systemctl restart sshd
强化 SSH
配置
保护您的 Linux VPS 涉及进一步强化 SSH
配置以增加安全性并确保 UFW 规则符合
日期。以下是强化 SSH 设置和更新 UFW 的方法
规则:
- 允许 UFW 中的新 SSH 端口:
如果您使用 UFW(简单防火墙),请首先允许新的 SSH
更改默认端口之前的端口:
# Allow the new SSH port (e.g., 2222)
sudo ufw allow 2222/tcp
- 从 UFW 规则中删除 OpenSSH:
更改 SSH 端口后,应删除旧的 OpenSSH
UFW 规则中的服务(默认端口 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
找到显示端口 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
实施 Fail2Ban
保护您的 Linux VPS 包括防止暴力登录
尝试和其他类型的恶意活动。 Fail2Ban 很有用
用于此目的的工具。以下是实现 Fail2Ban 的方法:
- 安装 Fail2Ban:
首先更新您的包裹清单,以确保您拥有最新的
可用套餐:
对于基于 Debian 的系统(例如 Ubuntu):
sudo apt update
对于 CentOS:
sudo yum update
安装 Fail2Ban:
对于基于 Debian 的系统:
sudo apt install fail2ban
对于 CentOS:
sudo yum install fail2ban
- 配置 Fail2Ban:
Fail2Ban的主要配置文件位于
/etc/fail2ban/jail.conf。您可以创建覆盖
文件于 /etc/fail2ban/jail.local 自定义设置
无需修改默认配置。打开这个文件:
sudo nano /etc/fail2ban/jail.local
添加以下配置,禁止IP地址10分钟
(600 秒)六次登录尝试失败后。调整参数为
需要:
[sshd]
enabled = true
maxretry = 6
findtime = 600
bantime = 600
保存文件并退出文本编辑器。
- 启动并启用 Fail2Ban:
启动 Fail2Ban 并使其在引导时启动:
sudo systemctl start fail2ban
sudo systemctl enable fail2ban
- 检查 Fail2Ban 状态:
您可以检查 Fail2Ban 的状态以确保其正常工作
预期的:
sudo fail2ban-client status
您应该看到它正在监视 SSH 服务。
这里讨论的 6 种基本方法提供了强大的防御
针对潜在的漏洞。通过保持系统更新,
采用强身份验证、配置防火墙、强化 SSH、
并实施 Fail2Ban,您可以强化您的 VPS 并维持和平
在这个永远互联的世界中思考。如果您有任何疑问,请不要
犹豫是否联系我们的支持团队 提交一个
票.