【问题标题】:How to hide SSH access on public web server? [closed]如何在公共 Web 服务器上隐藏 SSH 访问?
【发布时间】:2011-07-31 19:40:12
【问题描述】:

我正在租用一个 VPS,现在它被用作我的网络服务器和 MySQL 数据库。租用 VPS 时,他们会为您提供 SSH 访问权限。有没有办法让我隐藏(让它看起来不存在)SSH 和 MySQL 外部连接,除了我自己的?

我不希望公共用户看到 SSH 已启用,即使他们可能不会猜到密码。

【问题讨论】:

  • 我看不出你会怎么做,因为有人需要做的就是获取你的 IP 并尝试通过端口 22 进行连接,这很简单。如果您想保护您的网站免受新手黑客的攻击,这不是您应该采取的方法。
  • 你可以设置一个 VPN 并设置你的 sshd 只监听那个连接。

标签: mysql ssh webserver port


【解决方案1】:

mysql:你可以禁止除本地主机以外的连接,并使用 ssh 端口转发远程访问你的数据库

ssh:使用非标准端口并切换到公钥认证。无论如何,您都必须打开一个端口。

编辑:Fail2ban 可能值得一试。重复失败后,它将阻止从给定地址到您的计算机的连接。

【讨论】:

  • +1 用于建议 ssh 的公钥身份验证。我还建议编辑/etc/sshd_config 并将PasswordAuthentication 设置为“否”
【解决方案2】:

安装端口敲门守护程序。它会查找“端口命中的特殊“敲门”序列”,然后按照您的需要打开防火墙。

knock myserver.example.com 123:tcp 456:udp 789:tcp

【讨论】:

    【解决方案3】:

    我认为最好的两个选择是:

    1) 将服务器隐藏在防火墙后面并使用 VPN 进行通信。 2) 将端口号更改为随机的,这样默认端口扫描就不会检测到它们。

    【讨论】:

      【解决方案4】:

      一些想法...

      • 您可以在非标准端口上运行 sshd。端口扫描器将能够注意到它,但仅仅敲击端口 22 的脚本不会看到它。
      • 您可以将其配置为仅允许来自指定主机的连接(最好在防火墙级别执行此操作,请考虑一下)。这将限制您从任何地方登录它的能力,但会允许 sshd 立即拒绝来自指定主机以外的任何地方的连接。

      【讨论】:

        【解决方案5】:

        您可以使用Port knocking 隐藏SSH。我会关闭 mysql 端口并为此使用 SSH 隧道。

        【讨论】:

          【解决方案6】:

          如果您仅从一个地址(或很少的地址)访问服务器,您可以添加防火墙规则来阻止来自这些地址以外的任何地址的任何访问。但是,如果您要从(例如)您的手机访问该站点,则无法执行此操作,因为您的手机很可能是 NAT 防火墙,您无法预测外部 IP 将是什么.

          您还可以将 SSH 移动到默认端口 22 以外的其他位置,以阻止“愚蠢”的 ssh 攻击扫描器,但这不会阻止专用端口扫描器。

          【讨论】:

          • 我定期监控我的auth.log,针对我的非标准端口的 SSH 尝试计数为 0。然而,我打开端口 22 的那一周,因为我将落后于限制性防火墙(为什么防火墙会阻止出站连接?!?),每天都有数十次攻击(和数百次尝试)。除非您经营一个受欢迎的网站,否则我认为您只会受到愚蠢的攻击。
          • 我有几个 ipchains 规则在 Y 秒内阻止超过 X 次尝试。仍然记录了数百次尝试,但他们只获得了那 X 次尝试并且还没有找到我的用户名(唯一具有远程访问权限的帐户)。
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-01-18
          • 1970-01-01
          • 1970-01-01
          • 2016-07-05
          • 2014-06-06
          • 1970-01-01
          相关资源
          最近更新 更多