了解如何保护您的 Linux VPS将帮助您避免各种网络威胁和攻击。然而,这不是一次性的任务——除了应用最佳安全实践外,您还必须持续监控您的虚拟专用服务器。考虑到这一点,我们将深入研究 Linux 安全及其常见弱点。我们还将讨论 15 个 VPS 安全提示,以防止对您的虚拟服务器进行网络攻击。
Linux 安全和常见弱点
尽管 Linux 以其安全系统而闻名,但它也存在一些漏洞。许多安全威胁会破坏服务器的安全和数据。
让我们详细了解最常见的威胁和弱点列表:
- 恶意软件– 指故意设计用于损害计算机及其操作系统的侵入式软件。它有多种形式,包括特洛伊木马、勒索软件、病毒和间谍软件。
- 嗅探攻击——当黑客使用数据包嗅探器拦截并从网络中提取数据时发生。
- 蛮力攻击——一种黑客方法,涉及攻击者使用反复试验来猜测登录凭据。
- SQL 注入——当黑客利用 Web 应用程序中的代码获取对服务器数据库的访问权限时发生。
- 跨站点脚本 (XSS) – 一种客户端攻击,在此期间黑客将恶意代码注入网站。
- 没有功能级别的控制——服务器可能会通过不正确验证访问权限,给一般用户 root 权限来导致它。
- 损坏的身份验证——身份盗窃通常是由于未加密的数据、弱密码或设置不当的应用程序会话超时而发生的。
在实施任何安全措施之前,让自己了解应该监控的元素。这里是其中的一些:
- VPS 主机安全
- 服务器软件
- SSH连接
- 根访问和登录
- 密码和凭据
- 防火墙
- FTP连接
- 用户权利和特权
- 服务器日志
保护服务器安全的 15 个 VPS 安全提示
本节包含 15 个保护VPS 主机的安全提示。
1.研究您的虚拟主机安全性
您选择的托管服务提供商需要拥有强大的安全基础设施并提供额外的保护以确保您的服务器安全。在 Hostinger,我们提供高级安全模块来保护我们的 VPS,例如 mod_security、防火墙、Suhosin PHP 加固和 PHP open_basedir 保护。
此外,Hostinger 利用 BitNinja 的全栈服务器保护和内置的高级 DDoS 缓解措施来增强 VPS 的总体安全性。对于共享托管服务器,我们提供 Monarx 反恶意软件。
此外,Hostinger 提供自动定期备份和实时快照,您可以使用它们在网站出现故障时立即恢复您的网站。
2.更改默认SSH端口
如果您仍然使用端口 22 通过 SSH 连接访问您的虚拟服务器,则很可能会发生黑客攻击。这是因为攻击者可以扫描开放的端口来执行暴力攻击并获得对服务器的远程访问。
我们建议为 SSH 使用不同的端口以保护您的数据免受网络攻击。
以下是更改 SSH 端口的方法:
- 打开终端并登录 SSH。
- 通过运行以下命令来编辑服务配置文件:
nano /etc/ssh/sshd_config
- 找到读取端口 22的行。
- 将22替换为新端口号并删除#。
- 保存更改并退出。
- 通过插入以下命令并按Enter重新启动服务:
- 对于 Debian 和 Ubuntu
服务 ssh 重启
- 对于 CentOS 和红帽企业 Linux (RHEL)
systemctl 重启 sshd.service
- 最后,尝试使用新端口登录 SSH。
3.禁用根登录
每个 Linux VPS 都有一个 root 用户,与系统的其他用户相比,它拥有最多的权限。网络罪犯可能会以他们为目标以获得对服务器的完全访问权限。
因此,禁用 root 用户登录以保护您的服务器免受暴力攻击至关重要。我们还建议创建一个具有执行根级命令权限的备用用户名。
请按照以下步骤禁用 root 登录:
- 打开终端并登录到您的 SSH 帐户。
- 要打开和编辑配置文件,请使用 nano 或 vi 运行以下命令:
nano /etc/ssh/sshd_config
- 找到以下参数并将其更改为no:
PermitRootLogin=否
- 通过运行以下命令保存更改并重新启动 SSH 服务:
- 对于 Debian 和 Ubuntu
服务 ssh 重启
- 对于 CentOS 和红帽企业 Linux (RHEL)
systemctl 重启 sshd.service
- 这将禁用根登录。
4.使用强密码
包含与您的身份相关的信息或简单密码的密码很容易被猜到。因此,创建一个包含多个元素的长而强的密码,例如大小写字母、数字和特殊字符。这样做可以保护您的系统免受暴力攻击。
此外,不要重复使用相同的密码。
您还可以使用NordPass或LastPass等在线工具来创建强密码。两者都提供自定义选项,例如限制密码长度和字符的使用。
5. 开始使用 SSH 密钥
如果您仍然使用密码登录您的 SSH 帐户,您可能会成为嗅探攻击的目标。为避免这种情况,请改用SSH 密钥。本质上,SSH 密钥是一种比密码更安全的身份验证方法。
当计算机生成这些密钥时,它们的长度可达 4096 位,这使得它们比密码更长、更复杂。
SSH 密钥分为两套——公共和私人。前者保存在服务器上,后者保存在用户机器上。当检测到登录尝试时,服务器将生成一个随机字符串并使用公钥对其进行加密。加密的消息只能使用关联的私钥解密。
以下是在 Linux 服务器上生成 SSH 密钥的方法:
- 打开终端应用程序并登录到 SSH。
- 要生成公钥和私钥,请键入以下命令并按Enter键:
ssh-keygen -t rsa
- 出现回复后,按Enter键:
输入保存密钥的文件 (/root/.ssh/id_rsa):
- 系统将提示您两次填写密码。如果没有,可以按两次Enter 。
输入密码(没有密码为空):
再次输入相同的密码:
- 您的私钥和公钥现已成功保存。
6. 设置内部防火墙(IP 表)
由于 HTTP 流量可以来自任何地方,因此必须对其进行过滤以确保只有信誉良好的访问者才能访问您的系统。这样做将帮助您避免不需要的流量和 DDoS 攻击。
Linux 发行版附带一个名为iptables 的内部防火墙服务。该工具使用表格监控进出您的服务器的流量。它使用称为链的规则来过滤传入和传出的数据包。
使用它,您可以根据需要调整防火墙限制。以下是如何在 Ubuntu 上安装和检查 iptables 的当前配置:
- 打开终端并登录 SSH。
- 通过运行以下命令安装 iptables:
sudo apt-get 安装 iptables
- 安装完成后,输入以下命令并回车:
sudo iptables -L -v
- 输出将包括详细格式的所有规则列表。
7. 配置你的 UFW 防火墙
我们建议启用简单防火墙 (UFW)作为附加层来控制系统的入站和出站流量。它是一个旨在易于使用的 netfilter 防火墙。
UFW 充当 iptables 的前端,通常预装在 Linux 发行版上。通常,它将拒绝所有传入连接并允许传出连接,从而降低潜在威胁的风险。此外,您还可以根据自己的喜好对防火墙进行修改和添加规则。
以下是在 Ubuntu 上启用它的方法:
- 打开终端并通过 SSH 连接。
- 键入以下命令以启用 UFW 并按Enter键:
sudo ufw 启用
- 如果回复指出未找到该命令,请使用此命令安装防火墙:
sudo apt-get 安装 ufw
- 安装完成后,运行第二步中的命令以启用 UFW。
- 使用以下命令验证防火墙状态:
sudo ufw 状态
8. 使用 SFTP 而不是 FTP
虽然 FTP 连接未启用加密,但 FTP over TLS (FTPS) 仅加密凭据而不加密文件传输。
因此,同时使用这两种连接可能会使您的数据面临风险。黑客可以轻松地执行嗅探攻击来窃取您的登录凭据并拦截文件传输。
为避免这种情况,请改用 FTP over SSH 或SFTP。这是一个安全的 FTP 连接,因为它完全加密所有数据,包括正在传输的凭证和文件。此外,SFTP 保护用户免受中间人攻击,因为客户端在获得对系统的访问权限之前需要由服务器进行身份验证。
按照以下步骤设置 SFTP 连接:
- 打开终端并登录 SSH。
- 通过输入此命令并按Enter启动 SFTP 连接:
sftp 用户@server_ip 地址
或者
sftp user@remotehost_domainname
- 如果您使用的是自定义端口,请运行以下命令:
sftp -oPort=customport user@server_ipaddress
或者
sftp -oPort=customport user@remotehost_domainname
- 连接后,将出现 SFTP 提示。
9. 设置 Fail2Ban
Fail2Ban是一款监控系统日志并在多次登录失败后阻止黑客的软件。此外,它还保护服务器免受 DoS、DDoS、字典和暴力攻击。Fail2Ban 使用 iptables 和 firewalld 来禁止 IP 地址。
请按照以下步骤在 Ubuntu 上设置 Fail2Ban 软件包:
- 打开终端并启动 SSH 连接。
- 通过输入以下命令并按Enter安装 Fail2Ban 软件包:
sudo apt-get 安装 fail2ban
- 将出现以下输出。键入Y并按Enter。
你想继续吗?[是/否] 是
- 安装完成后,通过运行以下命令验证状态:
须藤 systemctl 状态 fail2ban
- Fail2Ban 软件应该处于活动状态并正在运行。
10. 安装杀毒软件
除了设置防火墙来过滤传入流量外,还可以考虑监控存储在 VPS 上的文件。由于 Linux 无法天生免疫病毒攻击,网络威胁可能会以您的服务器为目标并损坏您的数据。
因此,安装防病毒软件作为一种安全加固措施至关重要。有许多可用选项,但最著名的是ClamAV。它是开源的,用于检测可疑活动和隔离不需要的文件。
按照以下说明在 CentOS 上安装 ClamAV:
- 打开终端并登录 SSH。
- 通过运行以下命令安装 Extra Packages for Enterprise Linux (EPEL):
sudo yum -y 安装 epel-release
- 完整!输出将表明 EPEL 安装已完成。
- 通过键入以下命令并按Enter清除所有缓存信息:
sudo yum clean all
- 通过运行以下命令安装 ClamAV:
sudo yum -y install clamav-server clamav-data clamav-update clamav-filesystem clamav clamav-scanner-systemd clamav-devel clamav-lib clamav-server-systemd
- 寻找另一个完整的!行以了解安装何时完成。
- ClamAV 现在应该已启动并正在运行。
11. 为您的 VPS 设置 VPN
如果您使用公共连接,则很有可能有人会拦截您的流量并窃取您的数据。
为避免这种情况,我们建议设置一个 VPN来对抗安全威胁。它将通过加密隧道路由您的流量并掩盖您的实际位置,因为您的机器将使用 VPN 的 IP 地址。这也将允许您在浏览互联网时保持匿名,因为您的 IP 将无法追踪。
简而言之,VPN 可确保您的数据安全并防止黑客拦截您的流量。它与防火墙协同工作以提供额外的 VPS 安全性。
专家提示
VPN 对于居住在基于位置限制的区域的用户也有好处,因为它可以让他们更改 IP 以绕过互联网审查。
按照以下步骤在 CentOS 上安装 OpenVPN:
- 打开终端并使用 SSH 连接。
- 在安装 OpenVPN 之前安装网络工具包。运行此命令:
sudo yum 安装网络工具
- 输入以下 curl 命令以下载 OpenVPN 包并按Enter键:
curl -O http://swupdate.openvpn.org/as/openvpn-as-2.7.3-CentOS7.x86_64.rpm
- 通过运行以下命令打印 SHA256 校验和以验证安装:
sha256sum openvpn-as-*
- 输出将打印校验和,如下所示:
- 将下载的二进制文件的校验和与网站上提供的校验和进行比较。如果匹配,您可以使用以下命令开始安装 OpenVPN:
sudo rpm --install openvpn-as-*.rpm
- 安装完成后,您将获得 Admin UI 和 Client UI 详细信息,如下所示:
- 接下来,使用以下命令设置密码:
密码 openvpn
- 系统将提示您重新输入新密码。
- 访问管理或客户端 UI 以访问以下屏幕:
- 输入您刚刚设置的用户名openvpn和密码,然后按Sign In。
12.审查用户权利
如果许多用户使用您的 VPS 主机,则需要仔细考虑控制和权限的分配。为所有用户提供 root 级别权限可能会使您的资源使用和敏感数据面临风险。
因此,您需要设置访问限制以防止服务器出现问题。这可以通过管理用户并授予他们对特定文件和资源集的不同级别的权限来完成。
Linux 具有系统权限功能,可帮助您定义用户权限。为此,请为具有相同权限的用户创建一个组。
以下是在 Ubuntu 上管理用户及其权限的方法:
- 打开终端并通过 SSH 连接。
- 输入以下命令创建一个组,然后按Enter:
sudo 添加组 my_group
- 接下来,通过运行以下命令创建一个新用户:
添加用户 first_user
- 输出将提示您设置密码并填写简历,例如全名、房间号和电话。键入y并按Enter确认输入的信息。
- 要将用户添加到组,请运行以下命令。请注意,它不会产生任何输出。
sudo usermod -a -G group1,group2 first_user
- 如果要授予用户 root 访问权限,请运行以下命令。请记住,这也不会产生任何输出。
sudo usermod -aG sudo first_user
- 另一方面,如果您有一个目录并想为其添加读写权限,则基本语法如下:
sudo chmod -R g+w /目录
13. 禁用 IPv6
启用 IPv6 会暴露安全漏洞,并使您的 VPS 主机容易受到各种网络攻击。如果您不经常使用它,我们建议您完全禁用它。由于黑客经常通过 IPv6 发送恶意流量,因此让该协议保持开放状态会使您的服务器面临许多潜在的安全漏洞。即使您没有主动使用 IPv6,您的某些程序也可能会在其上打开侦听套接字。因此,每当有数据包进来时,他们都会对其进行处理,包括恶意数据包。
按照以下说明在 Ubuntu 上禁用 IPv6:
- 打开终端并登录 SSH。
- 输入以下命令以禁用 IPv6,然后按Enter键:
须藤纳米 /etc/sysctl.d/99-sysctl.conf
- 配置文件将打开。在底部添加以下行:
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1
- 保存并关闭文件。
- 接下来,运行以下命令来执行更改:
sudo sysctl -p
- 最后,插入以下命令并按Enter键。如果您看到 1,则表示已成功禁用 IPv6。
cat /proc/sys/net/ipv6/conf/all/disable_ipv6
14.监控你的服务器日志
监控您的服务器日志可以帮助您控制 VPS 托管发生的事情。这些日志还可用于分析和报告有关服务器当前状态的详细信息。
服务器日志会让您知道服务器是否正在遭受网络攻击或其他安全威胁。这些漏洞修复得越早,攻击者拦截数据的机会就越少。
Linux 系统上的关键目录之一称为/var/log。它存储一组日志文件,其中包含与系统、内核、程序包管理器和在服务器上运行的各种应用程序相关的重要信息。
以下是在 Ubuntu 服务器上打开/var/log并检查系统日志的方法:
- 打开终端并登录 SSH。
- 运行以下命令将工作目录更改为/var/log。请记住,这不会产生任何输出。
cd /变量/日志
- 要列出所有文件,请插入以下命令并按Enter键:
ls
- 要检查系统日志,请输入以下命令并按Enter键:
须藤猫系统日志
15. 让你的应用程序保持最新
您的 VPS 使用的软件越旧,它就越容易受到攻击。开发人员通常会定期发布更新和安全补丁。一定要留意你的软件的最新版本,并在它们可用时尽快安装它们。
以下是在 Debian 或 Ubuntu 上执行此操作的方法:
- 如果要更新整个包列表,请运行以下命令:
sudo apt-get 更新
- 如果您要更新实际包,请输入此命令并按Enter键:
sudo apt-get 升级
按照以下步骤在 CentOS/RHEL 上执行此操作:
- 要刷新包数据库并安装更新,请键入此命令并按Enter 键。
须藤百胜更新
- 要检查是否有任何更新,请插入以下命令并按Enter键。
sudo yum 检查更新
如果您在服务器上使用内容管理系统 (CMS),我们建议通过启用自动更新来自动执行此过程。此外,您还可以创建cron 作业,这是一种基于 Linux 的实用程序,用于安排命令或脚本在指定的时间和日期运行。
在 CentOS 或 RHEL 上安装和运行 cron 作业的最方便的方法是使用 yum-cron。每次发布新版本时,它都会自动更新软件。以下是在 CentOS 或 RHEL 上设置它的方法:
- 打开终端并通过 SSH 连接。
- 通过运行以下命令安装 yum-cron:
sudo yum 安装 yum-cro
- 通过插入以下命令并按Enter来启用该服务。请注意,这不会产生任何输出。
sudo systemctl 启用 yum-cron.service
- 通过键入以下命令并单击Enter来启动服务。请记住,此命令不会产生回复。
sudo systemctl 启动 yum-cron.service
- 通过运行以下命令检查服务的状态:
sudo systemctl 状态 yum-cron.service
- 使用以下命令打开配置文件:
sudo vi /etc/yum/yum-cron.conf
- 在输出中找到以下行并将no替换为yes。保存更改并退出文件。
apply_updates = 是
结论
始终保护和保持您的 VPS 安全非常重要,尤其是因为它存储了您的敏感数据和程序。尽管 Linux 以其强大的安全性而闻名,但它仍然存在您应该注意的漏洞。常见的网络攻击和需要注意的问题包括恶意软件、嗅探和暴力攻击、SQL 注入、跨站点脚本 (XSS)、缺少功能级控制和身份验证失败。