[译]如何经过7个简单步骤保护您的Linux服务器

原文地址html

许多服务器时不时被黑客攻击。因此我决定写一个简短的教程,向您展现如何轻松保护您的 Linux 服务器。node

这并非一本全面的安全指南。linux

可是,它能够帮助您防止几乎90%的流行后端攻击,例如暴力登陆尝试和 DDoS。git

最好的部分是你能够在一两个小时内实现它们。github

开始以前

  1. 你须要一台 Linux 服务器。
  2. 您须要对命令行有基本的了解。这是一张你可使用的备忘单

若是您已知足上述要求,请转到第一步。后端

1.配置SSH密钥

要访问远程服务器,您必须使用密码登陆或使用 SSH 密钥。安全

密码的问题在于它们很容易暴力破解(您将在下面学习如何进一步防止这种状况)。此外,您还必须在须要访问服务器时随时键入它们。bash

要避免上述缺点,您必须设置 SSH 密钥身份验证。它比密码更安全,由于黑客不能暴力破解它们。服务器

链接到服务器也更容易,更快,由于您不须要输入密码。网络

如下是如何为服务器设置SSH身份验证。

  • 在本地计算机上,键入如下内容生成SSH密钥对:

    ssh-keygen
    复制代码

    上面的命令将指导您完成几个步骤来生成SSH密钥。记下要存储密钥的文件。

  • 使用如下命令将公钥添加到服务器:

    ssh-copy-id username@remote_host
    复制代码

    请务必使用您的真实用户名和服务器的IP地址替换 username 和 remote_host 。系统将提示您输入密码。

  • 尝试使用如下命令登陆服务器:

    ssh username@remote_host
    复制代码

    不要忘记将 username 和 remote_host 替换为服务器的详细信息。您应该注意到,此次不会提示您输入密码。

若是 ssh-copy-id 命令没法使用,请使用如下命令将公钥(这里是 id_rsa.pub)拷贝到服务器:

scp -P port id_rsa.pub username@remote_host:~/.ssh
复制代码

port 是端口号

而后在服务器执行

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
复制代码

2.保持系统时间最新

许多安全协议利用您的系统时间来运行 cron 做业,日期日志和执行其余关键任务。

若是您的系统时间不正确,可能会对您的服务器产生负面影响。为防止这种状况发生,您能够安装 NTP 客户端。此客户端将使您的系统时间与全球 NTP 服务器保持同步。

使用如下命令安装 NTP 客户端:

sudo apt install ntp
复制代码

您再也不须要担忧再次设置系统日期。

3.查看活动端口

服务器上的应用程序会公开某些端口,以便网络中的其余应用程序能够访问它们。

黑客还能够在您的服务器上安装后门,并公开一个端口,经过它能够控制服务器。

出于这个缘由,咱们不但愿您的服务器在咱们不知道的端口上侦听请求。

要查看活动端口,请使用如下命令:

sudo ss -lntup
复制代码

查看输出并调查您彷佛并不熟悉的任何端口或进程。

尝试发现并追踪可能有害的服务和进程。

要开始前,请查看 “bad” TCP/UDP ports

4.设置防火墙

防火墙容许您中止/容许来自/来自服务器上特定端口的流量。为此,我一般使用 UFW(简单的防火墙)。

UFW 的工做原理是让您配置如下规则:

  • 容许或否定
  • 传入或传出的流量
  • to or from
  • 特定或全部端口

在本节中,您将阻止除明确容许的网络流量以外的全部网络流量。在安装其余程序时,请记住启用运行所需的必要端口。

设置 UFW

  • Install ufw.

    sudo apt-get install ufw
    复制代码
  • 您能够拒绝全部传出流量...

    sudo ufw default deny outgoing comment 'deny all outgoing traffic'
    复制代码
  • ...或容许全部传出流量。

    sudo ufw default allow outgoing comment 'allow all outgoing traffic'
    复制代码
  • 接下来,咱们要拒绝全部传入的流量......

    sudo ufw default deny incoming comment 'deny all incoming traffic'
    复制代码
  • ...除了SSH链接,以便咱们能够访问系统。

    sudo ufw limit in ssh comment 'allow SSH connections in'
    复制代码
  • 若是您将UFW配置为拒绝全部传出流量,请不要忘记根据您的须要容许特定流量。如下是一些例子:

    # 容许端口 53 上的流量 -- DNS
    sudo ufw allow out 53 comment 'allow DNS calls out'
    # 容许在 123 端口输出流量-- NTP
    sudo ufw allow out 123 comment 'allow NTP out'
    # 容许 HTTP,HTTPS 或 FTP 的流量输出 apt 可能须要这些,具体取决于您使用的是哪些来源
    sudo ufw allow out http comment 'allow HTTP traffic out'
    sudo ufw allow out https comment 'allow HTTPS traffic out'
    sudo ufw allow out ftp comment 'allow FTP traffic out'
    # allow whois
    sudo ufw allow out whois comment 'allow whois'
    # 容许端口 68 上的流量输出 -- the DHCP client
    # you only need this if you're using DHCP
    sudo ufw allow out 68 comment 'allow the DHCP client to update'
    复制代码
  • 要拒绝端口 99 上的任何流量,请使用如下命令:

    sudo ufw deny 99
    复制代码
  • 最后,使用如下命令启动 UFW:

    sudo ufw enable
    复制代码
  • 您还可使用如下命令查看 UFW 状态:

    sudo ufw status
    复制代码

5.防止自动攻击

您可使用两个实用程序来阻止大多数自动攻击:

PSAD 和 Fail2Ban 之间的区别

咱们了解到端口能够访问服务器上的应用程序。

攻击者可能决定扫描您的服务器以获取他们可能用于访问服务器的开放端口。

PSAD 监视网络活动以检测并可选地阻止此类扫描和其余类型的可疑流量,例如 DDoS 或 OS 指纹识别尝试。

另外一方面,Fail2Ban 扫描各类应用程序(如 FTP )的日志文件,并自动禁止显示恶意标志(如自动登陆尝试)的 IP。

6.安装 logwatch

服务器上的应用程序一般会将日志消息保存到日志文件中。除非您打算手动监视日志文件,不然须要安装 logwatch。

logwatch 扫描系统日志文件并对其进行汇总。

您能够直接从命令行运行它,也能够将其安排在按期计划中运行。例如,您能够配置 logwatch 以经过电子邮件向您发送日志文件的每日摘要。请注意,您的服务器须要可以发送电子邮件才能正常工做。

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 天天发送一封电子邮件,其中包含咱们日志文件的摘要。要执行此操做,请打开文件 /etc/cron.daily/00logwatch 并找到执行行,而后将其更改成如下内容:

/usr/sbin/logwatch --output mail --format html --mailto root --range yesterday --service all
复制代码

7.执行安全审核

保护 Linux 服务器后,您应该执行安全审核,以发现您可能错过的任何安全漏洞。

为此,您可使用 Lynis,这是一个能够执行如下操做的开源软件:

  • 安全审核。
  • 一致性测试(例如PCI,HIPAA,SOx)。
  • 渗透测试。
  • 漏洞检测。
  • 系统强化。

How to use Lynis

首先,经过克隆他们的 Github 存储库来安装 Lynis。这可确保您安装最新版本的Lynis。

git clone https://github.com/CISOfy/lynis
复制代码

切换到咱们克隆Lynis的目录:

cd lynis
复制代码

最后,使用下面的命令来运行你的第一次审核:

./lynis audit system
复制代码

您能够在他们的官方网站上了解有关 Lynis 的更多信息。

最后

欢迎您阅读有关增强 Linux 服务器的其余操做指南。我但愿你能学到新东西。

相关文章
相关标签/搜索