How To Secure Your Linux Server In 7 Easy Steps

in with 0 comment

How To Secure Your Linux Server In 7 Easy Steps

如何通过 7 个简单的步骤加固你的服务器安全

原文地址

原文大意

大量的服务器在过去和现在常常被黑客攻击。所以我决定去写一篇简短的指南去教你如何通过简单的方式加固你的服务器。

这不是一篇全面的安全指南。

无论如何,它能帮助你防范 90% 的常见的后端攻击,比如 brute force 登录和 DDos

最激动的是,你可以在一个至两个小时之内实现它

在你开始之前

  1. 你需要一台 Linux 服务器。
  2. 你需要基本的命令行知识。这里有一份简单的指南

如果你已经有上述的所有条件,那我们开始第一步吧。

1. 设置 SSH 密钥

为了访问远程服务器,你需要通过密码或者 SSH 密钥登录。

密码的问题是太容易被暴力破解。此外,你将不得不在每次你需要访问服务器时输入它。

为了避免上述的缺点,你将不得不设置 SSH 密钥验证。它比密码更加安全,因为黑客是不能暴力破解它们。

连接服务器又快又简单,因为你不需要去输入密码。

这里将展示为你的服务器设置 SSH 密钥。

上述命令行通过简短的步骤生成你的 SSH 密钥。记下密钥存储的文件。

请务必将真实的 username 和你的服务器 IP,替换成 user_hostremote_host

不要忘记在你的服务器上,替换成 user_hostremote_host。你应该发现现在不会出现密码的提示。

2. 保持最新的系统时间

许多安全协议利用你的系统时间去运行 cron 任务,日期日志和执行其它关键任务。

如果你的系统时间是错误的,它可能会导致你的服务器会出现许多负面情况。为了防止这个情况发生,你需要安装 NTP 服务,这个服务会动态的保持你的系统时间与全局的 NTP 服务器时间相同。

使用以下的命令安装 NTP 服务:

sudo apt install ntp

你不用在担心会再次设置系统时间。

3. 查看活动端口

在你服务器上的应用会暴露某些端口用来被互联网访问。

黑客可以在你服务器上安装后门并暴露一个端口,便能控制你的服务器。

由此可知,我们并不想让我们的服务器被我们不知道的端口监听。

要想查看活动端口,使用以下命令:

sudo ss -lntup

看一看有没有任何你不熟悉的进程或端口。

尝试并发现跟踪有害的服务或进程。

可以对照这张 "bad" TCP/UDP ports

4. 设置防火墙

防火墙允许你去禁止 / 允许特定端口的进出服务器的流量。我经常使用 UFW。

UFW 的工作原理是让你配置以下规则:

再找个小节,你将禁止除了那些你明确知道以外的所有流量。在你安装其它程序时,记得开启必要的端口允许它们使用。

设置 UFW

5. 防止自动攻击

这里有两个实用的程序来避免大多数的自动攻击:

这两个的区别

我们知道在服务器上,端口是访问应用的入口。

攻击者可能会扫描服务器上的开放端口用来访问服务器。

PASD 检测网络活动以检测并可选择性的阻止此类扫描和其他可以的流量,例如 DDoS 或者 OS 指纹识别尝试。

Fail2Ban,可以扫描各种应用(如 FTP)的日志文件,并自动禁止并显示恶意标志(如自动登录)的 IP。

下面的指南将会向你展示如何去安装和配置 PSAD 和 Fail2Ban 以便于与 UFW 一起使用。

6. 安装 logwatch

在你的服务器中的应用将会经常产生日志信息到日志文件。除非你打算手动去监控你的日志文件,否则你还是需要去安装 logwatch。

logwatch 会扫描系统日志文件并将它们汇总。

你可以直接通过命令行运行它或者通过定期任务运行。举个例子,你可以设置 logwatch 通过 email 发送日志报告给你。但注意的是,你的服务器得有可以发送 email 的能力

logwatch 使用服务文件去阅读和汇总日志文件。你可以在 /usr/share/logwatch/scripts/services 中可以看到所有的服务文件。

logwatch 的设置文件在 /usr/share/logwatch/default.conf/logwatch.conf 中有默认配置。你可以通过命令行参数来覆盖它们。

在 Ubuntu 或者 Debian 中安装 logwatch 可以使用以下命令:

apt-get install logwatch

对于其它 Linux 发行版的用户,可以查看 Linode 指南

你可以通过直接运行 logwatch,以防你需要去看收集的样本。

sudo /usr/sbin/logwatch --output stdout --format text --range yesterday --service all

最终,告诉 logwatch 像我们发送日常的日志汇总 email。要执行此操作,可以打开 /etc/cron.daily/00logwatch 这个文件并且通过下面的命令行改变文件:

/usr/sbin/logwatch --output mail --format html --mailto root --range yesterday --service all

7. 执行安全审核

在配置好你的 Linux 服务器的安全设置后,你应该运行安全审核一遍去找到你遗漏的安全漏洞。

执行此操作,你可以使用 Lynis,一个开源的安全软件,它可以执行以下操作:

如何去使用

第一,从他们的 Github 仓库 clone。确保了你可以安装最新版。

git clone https://github.com/CISOfy/lynis

切换到 clone 后的目录下:

cd lynis

最后,使用以下命令去运行你的第一次检测:

lynis audit system

你可以从官方网站学到更多

结论

恭喜你阅读完了如何去加强 Linux 服务器。希望你可以学到新的东西。

Tip:这篇文章翻译起来比较轻松,词汇也比较简单,而且这篇文章很实用,感觉读完收获到了不少东西,对于 Linux 安全防护这块有了新的了解。