如何利用云计算加固服务器,防止SSH攻击?

  • 回答 (6)
  • 关注 (0)
  • 查看 (449)

Secure Shell(安全外壳协议,简称SSH)是一种加密的网络传输协议,可在不安全的网络中为网络服务提供安全的传输环境。 它通常用于远程控制计算机系统或传输文件,当SSH暴露给公网时,它会有安全隐患。那么云计算是如何来加固服务器以防止SSH攻击的呢?

月挽云岫月挽云岫提问于
742512027cdb不要轻易地考验人性回答于

可以安装PyFilter软件,它的目的是过滤掉服务器的所有非法登录请求。它的工作原理是读取防火墙日志文件,并在用户可配置的时间内检查请求是否来自同一IP地址。如果它捕获了太多失败的尝试,则会向防火墙添加规则,从而拒绝其连接到服务器。

下载和配置PyFilter

从Github克隆其存储库来下载PyFilter。切换到你的主目录并克隆存储库:

cd ~
git clone https://github.com/Jason2605/PyFilter.git

这将创建一个名为PyFilter的目录。将此目录移动到/usr/local文件夹:

sudo mv PyFilter /usr/local/PyFilter

然后切换到/usr/local/PyFilter目录:

cd /usr/local/PyFilter

接下来,需要创建一个配置文件。PyFilter附带一个默认配置文件Config/config.default.json

备份默认配置文件:

sudo cp Config/config.default.json Config/config.json

使用less命令查看配置文件的内容:

cd /usr/local/PyFilter

接下来,让我们运行PyFilter并确保其工作正常。

运行PyFilter

PyFilter包含一个run.sh用于启动PyFilter的脚本。

首先,更改脚本的权限以使其可执行。

sudo chmod +x run.sh

授予权限后,运行脚本以启动PyFilter:

./run.sh

PyFilter将开始审查系统日志,当事件发生时你将看到如下输出:

No file to check within rule: Mysql
No file to check within rule: Apache
No file to check within rule: Nginx
Checking Ssh logs

默认情况下,PyFilter会禁止在上一次失败请求的5秒内发生的五个及五个以上失败请求的IP,你可以在PyFilter配置文件中更改此设置。

这些结果也会记录到/usr/local/PyFilter/Log目录中。

当IP达到了禁止的限制时,你将看到类似于下面的输出:

2018-03-22 14:18:18 Found IP: 203.0.113.13 from server: your_server_name.

要关闭PyFilter,请按CTRL+C。现在让我们将PyFilter安装为系统服务,以便它可以自动运行。

少女女先疯队长大学生 码字爱好者 工商管理专业回答于

PyFilter可以起到保护作用, 可以将其配置为作为系统服务运行,以便每次重启服务器时它都会启动。

PyFilter目录中,使用脚本install.sh为PyFilter创建服务并使其在系统启动时运行。

修改脚本的执行权限:

sudo chmod +x install.sh

然后启动脚本:

./install.sh

安装成功的显示如下:

Service created and enabled, check the status of it by using "sudo systemctl status PyFilter"

确保一切正常运行:

sudo systemctl status PyFilter

你将看到此输出,显示该服务是active

● PyFilter.service - PyFilter
   Loaded: loaded (/etc/systemd/system/PyFilter.service; enabled; vendor preset: enabled)
   Active: <^>active^> (running) since Wed 2018-03-21 18:55:35 UTC; 12s ago
 Main PID: 8383 (bash)
   CGroup: /system.slice/PyFilter.service
           ├─8383 bash /usr/local/PyFilter/run.sh
           ├─8384 sudo python3 run.py
           └─8387 python3 run.py
ipwut回答于

可以安装PyFilter

PyFilter可以检索有关被禁IP的地理数据,以便提供有关攻击地址的统计信息。所以此可选模块将此信息附加到PyFilter的日志中。

要使用此功能,首先需要geoip2的Python模块,你可以使用pip安装它:

pip3 install geoip2

安装此模块后,重新启动PyFilter以识别新模块:

sudo systemctl restart PyFilter

现在,当你看到禁止的IP地址时,你将看到有关IP的其他信息:

2018-03-22 14:18:18 Found IP: 203.0.113.13 from server: your_server_name. The IP was from United Kingdom.

PyFilter会成功记录了请求来自哪个国家/地区。

坏蛋为你我手码我心回答于

使用TCP Wrappers可以阻止或允许应用服务仅对某些主机开放,给系统在增加一道安全屏障。这部分设置共涉计到两个文件:hosts.allow和 hosts.deny。 将那些明确允许的请求添加到/etc/hosts.allow中。如系统仅允许IP地址为192.168.0.15和10.0.0.11的主机使用 sshd服务,则添加如下内容:

sshd:192.168.0.15 10.0.0.11

将需要禁止使用的信息添加到/etc/hosts.deny中。如对除了在hosts.allow列表中明确允许使用sshd的用户外,所有其他用户都禁止使用sshd服务,则添加如下内容到hosts.deny文件中: sshd:All 注意:系统对上述两个文件的判断顺序是先检查hosts.allow文件再查看hosts.deny文件,因此一个用户在hosts.allow允许使用网络资源,而同时在hosts.deny中禁止使用该网络资源,在这种情况下系统优先选择使用hosts.allow配置,允许用户使用该网络资源。

或有或无习惯成就一切回答于

尽量关闭一些系统不需要的启动服务,系统默认情况下启动了许多与网络相关的服务,因此相对应的开放了许多端口进行LISTENING(监听)。 开放的端口越多,系统从外部被入侵的可能也就越大,所以我们要尽量关闭一些不需要的启动服务,从而尽可能的关闭端口,提供系统的安全性。

一夜之后的沉默闲来无事回答于

可以修改sshd服务器的配置文件/etc/ssh/sshd_config的读写权限,对所有非root用户设置只读权限,防止非授权用户修改sshd 服务的安全设置。

所属标签

可能回答问题的人

  • 腾讯云技术服务团队

    腾讯云 · 技术服务团队 (已认证)

    21 粉丝0 提问3 回答
  • 宝哥@devops运维

    腾讯 · 高级云计算工程师 (已认证)

    64 粉丝0 提问0 回答
  • elliswu

    腾讯计算机系统有限公司 · 高级工程师 (已认证)

    4 粉丝0 提问0 回答
  • 腾讯云通信团队

    腾讯 · 腾讯云通信团队 (已认证)

    51 粉丝0 提问24 回答
  • jansonjiang

    腾讯 · 技术咨询工程师 (已认证)

    6 粉丝0 提问2 回答
  • 龙泉

    1 粉丝1 提问3 回答

扫码关注云+社区

领取腾讯云代金券