2011-04-07 84 views
1

我正在租用VPS,现在它被用作我的网络服务器和MySQL数据库。当租用VPS时,他们给你SSH访问权限。有没有办法让我隐藏(看起来它不存在)SSH和MySQL外部连接,除了我自己的?如何隐藏公共Web服务器上的SSH访问?

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

+0

我看没有办法,你会怎么做,因为所有的人需要做的是让你的IP,并尝试通过端口22,它是微不足道的连接。如果你想从新手想要的黑客来保护你的网站,这不是你应该采取的方法。 – 2011-04-07 15:37:54

+0

你可以设置一个VPN并设置你sshd只在该连接上进行监听。 – babsher 2011-04-07 15:38:28

回答

5

的mysql:你也许可以禁止除了从本地主机连接,并使用SSH端口转发到远程访问数据库

SSH:使用非标准端口,并切换到公钥认证。无论如何,你将不得不离开一个港口。

编辑:Fail2ban可能值得尝试。它会在重复失败后阻止来自给定地址的机器连接。

+0

+1用于为ssh建议公钥认证。我还建议编辑'/ etc/sshd_config'并将'PasswordAuthentication'设置为'no' – kdgregory 2011-04-07 15:49:43

3

如果您只从一个地址(或极少地址)访问服务器,则可以添加防火墙规则以阻止对除这些地址之外的任何访问进行的任何访问。但是,如果您打算从手机访问该网站,则无法执行此操作,因为您的手机很可能会攻击NAT防火墙,并且无法预测外部IP是什么。

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

+1

我经常监视我的'auth.log',并且对非我的非标准端口的SSH尝试计数为0.而一周我打开了22号端口,因为我要在限制性防火墙后面工作(为什么防火墙阻止出站连接?!?),每天都有数十起攻击(以及数百次尝试)。除非你经营一个受欢迎的网站,否则我认为除了愚蠢的攻击之外你不会得到任何东西。 – Anon 2011-04-07 15:41:38

+0

我有几条ipchains规则,在Y秒内阻止X次以上的尝试。仍然会记录数百次尝试,但他们只会获得这些X次尝试,并且还没有找到我的用户名(唯一的远程访问帐户)。 – 2011-04-07 15:42:39

5

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

2

一些想法...

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

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

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

5

安装端口嗅探守护进程。它会查找“特殊”敲击“端口匹配序列”,然后按需要打开防火墙。

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