6 个开源工具和技巧,帮助初学者保护 Linux 服务器

使用开源工具来保护您的 Linux 环境免受漏洞攻击。
174 位读者喜欢这篇文章。
Avoiding data disasters with Sanoid

Opensource.com

由于我们今天大量的个人和专业数据都可以在网上获得,因此对于每个人——从专业人士到普通互联网用户——来说,学习安全和隐私的基础知识非常重要。作为一名学生,我通过学校的 CyberPatriot 计划获得了这方面的经验,我有机会与行业专家互动,了解网络漏洞以及建立系统安全的基本步骤。

本文详细介绍了六个简单的步骤,根据我作为初学者至今所学到的知识,来提高您的 Linux 环境的个人使用安全性。在我的学习过程中,我利用开源工具来加速我的学习过程,并熟悉与保护我的 Linux 服务器相关的高级概念。

我使用 Ubuntu 18.04 测试了这些步骤,这是我最熟悉的版本,但这些步骤也适用于其他 Linux 发行版。

1. 运行更新

开发人员不断寻找方法,通过修补已知的漏洞来使服务器更稳定、快速和安全。定期运行更新是养成最大化安全性的好习惯。使用以下命令运行更新:

sudo apt-get update && apt-get upgrade

2. 启用防火墙保护

启用防火墙 可以更轻松地控制服务器上的传入和传出流量。您可以在 Linux 上使用许多防火墙应用程序,包括 firewall-cmd 和简易防火墙 (UFW)。我使用 UFW,所以我的示例是针对它的,但这些原则适用于您选择的任何界面。

安装 UFW

sudo apt-get install ufw

如果您想让服务器更安全,您可以拒绝传入和传出的连接。请注意:这会断开您的服务器与外界的连接,因此一旦您阻止了所有流量,您必须指定允许从您的系统发出的哪些传出连接

sudo ufw default deny incoming
sudo ufw default allow outgoing

您还可以编写规则来允许您个人需要的传入连接

ufw allow <service>

例如,要允许 SSH 连接

ufw allow ssh

最后,使用以下命令启用您的防火墙:

sudo ufw enable

3. 加强密码保护

实施强密码策略是保持服务器免受网络攻击和数据泄露的重要方面。密码策略的一些最佳实践包括强制执行最小长度和指定密码有效期。我使用 libpam-cracklib 软件包来完成这些任务。

安装 libpam-cracklib 软件包

sudo apt-get install libpam-cracklib

强制执行密码长度

  • 打开 /etc/pam.d/common-password 文件。
  • 通过将 minlen=12 行更改为您想要的字符数,来更改所有密码的最小字符长度。

防止密码重用

  • 在同一个文件 (/etc/pam.d/common-password) 中,添加行 remember=x
  • 例如,如果您想阻止用户重复使用他们最近五个密码中的一个,请使用:remember=5

强制执行密码有效期

  • /etc/login.defs 文件中找到以下行,并将其替换为您首选的时间量(天)。例如
    PASS_MIN_AGE: 3
    PASS_MAX_AGE: 90
    PASS_WARN_AGE: 14

强制执行字符规范

  • 在密码中强制执行字符规范的四个参数是 lcredit(小写)、ucredit(大写)、dcredit(数字)和 ocredit(其他字符)。
  • 在同一个文件 (/etc/pam.d/common-password) 中,找到包含 pam_cracklib.so 的行。
    • 将以下内容添加到此行的末尾
      lcredit=-a ucredit=-b dcredit=-c ocredit=-d
    • 例如,以下行要求密码包含每个参数的一个。您可以根据您首选的密码安全级别更改数字
      lcredit=-1 ucredit=-1 dcredit=-1 ocredit=-1

4. 禁用易受攻击的非必要服务

禁用不必要的服务是一种最佳实践。这允许更少的端口打开以供利用。

安装 systemd 软件包

sudo apt-get install systemd

查看哪些服务正在运行

systemctl list-units

识别 哪些服务可能会对您的系统造成潜在的漏洞。对于每个服务

  • 停止当前正在运行的服务
    systemctl stop <service>
  • 禁止该服务在启动时启动
    systemctl disable <service>
  • 运行这些命令后,检查服务的状态
    systemctl status <service>

5. 检查监听端口

开放端口可能会带来安全风险,因此检查服务器上正在监听的端口非常重要。我使用 netstat 命令来显示所有网络连接

netstat -tulpn

查看地址列以确定 端口号。找到开放端口后,检查它们以确保它们都是必要的。如果不是,调整您正在运行的服务,或调整您的防火墙设置(或让 fail2ban 为您调整)。

6. 扫描恶意软件

防病毒扫描软件对于防止病毒进入您的系统很有用。使用它们是保持服务器免受恶意软件侵害的一种简单方法。我首选的工具是开源软件 ClamAV

安装 ClamAV

sudo apt-get install clamav

更新病毒签名

sudo freshclam

扫描所有文件并打印出受感染的文件,并在找到一个文件时发出提示音

sudo clamscan -r --bell -i /

您可以并且应该自动化扫描,这样您就不必记住或花费时间手动执行扫描。对于像这样的简单自动化,您可以使用 systemd 计时器 或您最喜欢的 cron

保持服务器安全

我们不能将保护服务器的责任留给一个人或组织。随着威胁形势继续迅速扩大,我们每个人都有责任意识到服务器安全的重要性,并采用一些简单有效的安全最佳实践。

这些只是您可以采取的许多步骤中的一小部分,以保持您的 Linux 服务器安全。当然,预防只是解决方案的一部分。这些策略应与严格的拒绝服务攻击监控相结合,使用 Lynis 进行系统分析,并创建频繁的备份。

您使用哪些开源工具来保持服务器安全?请在评论中告诉我们。

接下来阅读什么
User profile image.
Sahana Sreeram 是杜克大学的一年级学生。她喜欢用 Python 和 Java 编程,并在 AI4ALL 和 MIT FutureMakers 计划中获得了构建 AI 系统的经验。Sahana 也是她学校 CyberPatriot 团队的一员,她在那里学习如何使用 Linux 保护接口。

5 条评论

有一次,我有一个服务器连接到接收来自外部世界的 ssh。我发现有用但有点可怕的是检查尝试登录的日志。它们在您打开服务器后立即开始,并 24/7 不间断地持续进行。

我真的希望在列表中看到 fail2ban。该工具对于初学者来说并不完全适用,但默认的 ssh 设置已经足够好,并且是一个很好的起点。

好文章

链接到关于升级的第一点,使用 unattended-upgrades 在 Debian/Ubuntu 服务器上自动安装安全更新有助于保持系统安全,而无需干预。可以通过运行 `sudo apt install unattended-upgrades` 来设置它,然后在选项提示中选择“是”以启用自动升级。

知识共享许可协议本作品根据知识共享署名-相同方式共享 4.0 国际许可协议获得许可。
© . All rights reserved.