LFCA – 保护数据和 Linux 的实用技巧 – 第 18 部分
自 20 世纪 90 年代初发布以来,Linux 凭借其稳定性、多功能性、可定制性以及庞大的开源开发人员社区赢得了技术界的青睐,这些开发人员昼夜不停地为操作系统提供错误修复和改进。总体而言,Linux 是公共云、服务器和超级计算机的首选操作系统,近 75% 的面向互联网的生产服务器都在 Linux 上运行。
除了为互联网提供支持外,Linux 还进入了数字世界,并且自那时起就一直没有减弱。它为各种智能设备提供支持,包括 Android 智能手机、平板电脑、智能手表、智能显示器等等。
Linux 真的安全吗?
Linux 以其顶级安全性而闻名,这也是它在企业环境中受到青睐的原因之一。但事实是,没有操作系统是 100% 安全的。许多用户认为 Linux 是一个万无一失的操作系统,这是一个错误的假设。事实上,任何具有互联网连接的操作系统都容易受到潜在的漏洞和恶意软件攻击。
在早期,Linux 的用户群规模较小,以技术为中心,因此遭受恶意软件攻击的风险很小。如今,Linux 为互联网的很大一部分提供支持,这推动了威胁形势的增长。恶意软件攻击的威胁比以往任何时候都更加真实。
针对 Linux 系统的恶意软件攻击的一个完美例子是Erebus 勒索软件,这是一种文件加密恶意软件,影响了韩国网络托管公司 NAYANA 的近 153 台 Linux 服务器。
因此,进一步强化操作系统以提供所需的安全性来保护您的数据是明智之举。
Linux 服务器强化技巧
保护 Linux 服务器并不像您想象的那么复杂。我们整理了一份最佳安全策略列表,您需要实施这些策略来加强系统安全性并维护数据完整性。
1.定期更新软件包
在Equifax 数据泄露事件的初始阶段,黑客利用了Equifax 客户投诉门户网站上一个广为人知的漏洞 — — Apache Struts 。
Apache Struts是 Apache 基金会开发的一款用于创建现代优雅的 Java Web 应用程序的开源框架。该基金会于 2017 年 3 月 7 日发布了补丁来修复该漏洞,并发表了一份声明。
Equifax 被告知了该漏洞,并被建议修补其应用程序,但不幸的是,该漏洞直到同年 7 月才被修补,此时为时已晚。攻击者能够访问该公司的网络并从数据库中窃取数百万机密客户记录。当 Equifax 得知此事时,已经过去了两个月。
那么,我们可以从中学到什么呢?
恶意用户或黑客总是会探测您的服务器是否存在软件漏洞,然后利用这些漏洞来破坏您的系统。为了安全起见,请始终将软件更新到最新版本,以修补任何现有漏洞。
如果您运行的是Ubuntu或基于 Debian 的系统,第一步通常是更新您的软件包列表或存储库,如下所示。
$ sudo apt update
要检查所有具有可用更新的软件包,请运行以下命令:
$ sudo apt list --upgradable
将您的软件应用程序升级到其当前版本,如下所示:
$ sudo apt upgrade
您可以按照所示在一个命令中连接这两个。
$ sudo apt update && sudo apt upgrade
对于RHEL和CentOS,请运行以下命令升级您的应用程序:
$ sudo dnf update ( CentOS 8 / RHEL 8 ) $ sudo yum update ( Earlier versions of RHEL & CentOS )
另一个可行的选择是启用 Ubuntu 的自动安全更新并为 CentOS / RHEL 设置自动更新。
2. 删除旧版通信服务/协议
尽管支持多种远程协议,但诸如 rlogin、telnet、TFTP 和 FTP 等传统服务可能会给您的系统带来巨大的安全问题。这些是旧的、过时的、不安全的协议,数据以纯文本形式发送。如果存在这些协议,请考虑将其删除,如下所示。
对于基于 Ubuntu / Debian 的系统,执行:
$ sudo apt purge telnetd tftpd tftpd-hpa xinetd rsh-server rsh-redone-server
对于基于RHEL / CentOS的系统,执行:
$ sudo yum erase xinetd tftp-server telnet-server rsh-server ypserv
3.关闭防火墙上未使用的端口
一旦删除了所有不安全的服务,重要的是扫描服务器的开放端口并关闭任何可能被黑客用作入口点的未使用的端口。
假设你想阻止UFW 防火墙上的端口7070。此命令为:
$ sudo ufw deny 7070/tcp
然后重新加载防火墙以使更改生效。
$ sudo ufw reload
对于Firewalld,运行以下命令:
$ sudo firewall-cmd --remove-port=7070/tcp --permanent
并记得重新加载防火墙。
$ sudo firewall-cmd --reload
然后交叉检查防火墙规则,如下所示:
$ sudo firewall-cmd --list-all
4.安全 SSH 协议
SSH 协议是一种远程协议,可让您安全地连接到网络上的设备。虽然它被认为是安全的,但默认设置还不够,需要进行一些额外的调整才能进一步阻止恶意用户破坏您的系统。
我们有一个关于如何强化 SSH 协议的全面指南。以下是主要亮点。
- 配置无密码 SSH 登录并启用私钥/公钥认证。
- 禁用 SSH 远程根登录。
- 禁止使用空密码的用户进行 SSH 登录。
- 完全禁用密码验证并坚持使用 SSH 私钥/公钥验证。
- 限制特定 SSH 用户的访问。
- 配置密码尝试次数的限制。
5.安装并启用Fail2ban
Fail2ban是一款开源入侵防御系统,可保护您的服务器免受暴力攻击。它通过禁止表示恶意活动(例如登录尝试次数过多)的 IP 来保护您的 Linux 系统。开箱即用,它附带了针对 Apache webserver、vsftpd 和 SSH 等热门服务的过滤器。
我们有一个关于如何配置 Fail2ban 以进一步加强 SSH协议的指南。
6. 使用 PAM 模块强制密码强度
重复使用密码或使用弱密码和简单密码会严重破坏系统的安全性。您可以强制执行密码策略,使用 pam_cracklib 设置或配置密码强度要求。
使用PAM 模块,您可以通过编辑/etc/pam.d/system-auth文件来定义密码强度。例如,您可以设置密码复杂度并防止密码重复使用。
7. 安装 SSL/TLS 证书
如果您正在运行网站,请始终确保使用SSL/TLS 证书保护您的域名,以加密用户浏览器和网络服务器之间交换的数据。
8. 禁用弱加密协议和密码密钥
加密网站后,还请考虑禁用弱加密协议。在撰写本指南时,最新协议是TLS 1.3,这是最常见和最广泛使用的协议。早期版本(如 TLS 1.0、TLS 1.2 和 SSLv1 至 SSLv3)与已知漏洞有关。
[您可能还喜欢:如何在 Apache 和 Nginx 中启用 TLS 1.3 ]
总结
这是为确保 Linux 系统的数据安全和隐私可采取的一些步骤的总结。