为初学者保护 Linux 服务器的 6 个开源工具和技巧
使用开源工具保护您的 Linux 环境免遭破坏。
由于我们现在可以在线获取大量个人和专业数据,因此对于每个人(从专业人士到普通互联网用户)来说,了解安全和隐私的基础知识非常重要。作为一名学生,我通过学校的 CyberPatriot 计划获得了该领域的经验,在那里我有机会与行业专家互动,了解网络漏洞以及建立系统安全的基本步骤。
本文根据我作为初学者迄今为止所学到的知识,详细介绍了提高个人使用的 Linux 环境安全性的六个简单步骤。在我的整个旅程中,我利用开源工具来加速我的学习过程,并熟悉与保护 Linux 服务器相关的更高层次的概念。
我已经使用我最熟悉的版本 Ubuntu 18.04 测试了这些步骤,但这些步骤也适用于其他 Linux 发行版。
1.运行更新
开发人员不断寻找通过修补已知漏洞来使服务器更加稳定、快速和安全的方法。定期运行更新是一个可以最大限度提高安全性的好习惯。运行它们:
sudo apt-get update && apt-get upgrade
2.启用防火墙保护
启用防火墙可以更轻松地控制服务器上的传入和传出流量。您可以在 Linux 上使用许多防火墙应用程序,包括firewall-cmd 和 Uncomplicated Firewall (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. 禁用容易被利用的非必要服务
最佳做法是禁用不必要的服务。这使得开放供利用的端口更少。
安装系统包:
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 进行系统分析以及创建频繁备份相结合。
您使用哪些开源工具来保证服务器安全?在评论中告诉我们有关它们的信息。