我可以(几乎)阻止访问我的国家的SSH端口?

我在想阻止访问SSH端口只允许我的国家是一个明显的步骤,但我不能看到一个实际的方法来做到这一点。

如果有关系,我在英国。 我可以完全访问Ubuntu服务器。 该服务器是一个远程基于云的服务器。

这看起来太简单了,我看不出它是如何工作的: http : //eminasif.wordpress.com/2014/01/14/how-to-restrict-server-ssh-access-or-any-port-only -用于特定国,在-CSF /

这显示了一个IP的负载,但我不明白我怎么可以转移到任何可用/实用的: http : //www.nirsoft.net/countryip/gb.html

事实上,只有一个人的办公室需要访问(没有人是遥远的)。 我不愿意设置连接时使用的当前IP地址,因为它似乎每6个月更换一次。

我还有其他很好的安全措施 – 禁用rootlogin,高位encryption密钥等,但这似乎是一个明显的额外步骤。

这是值得的麻烦? 有没有可靠的方法来做到这一点?

这听起来像一个默默无闻的安全隐患。 任何真正有兴趣进入这样的系统的人都可以很容易地在英国find一个开放的代理服务器或者租用服务器 ,并从那里进行攻击。

与此同时,你正在使操作更加困难:

  • 不得不使用启发式,因为在TCP / IP中没有什么像“国家”。 启发式方法失败了,当他们这样做的时候将会是最糟糕的时刻 。
  • 一个非标准的设置会挫败未来的维护者。
  • 关键的备份应该在全球范围内复制。 您不希望等待生产停机时间来发现关键恢复path被阻止。

这似乎不是完全必要的。 取决于您的防火墙,它可能会自己做GeoIP阻塞。 否则,您可以使用iptables来“允许”您在办公室内获得的IP块。

但是,对于大多数服务器,您迄今所做的已经足够了。 只有密钥的身份validation使得暴力行为变得不可行。 您可以通过更改默认的SSH端口来进一步减less攻击。 请注意,这不会增加安全性,但是它确实减less了在不同端口上查找SSH的自动扫描程序的伪造stream量的90%。

说实话,我不认为你实际上只能确保来自英国的人能够通过SSH连接,因为我不知道100%的方法来真正确定连接。

http://www.geoip.co.uk/可能是这样做的一种方式,但是查询每次检查结果可能会触发太多的超时。

如果你想只允许基于IP的特定位置,假设你使用的是iptables ,你必须将默认的INPUT策略设置为DROP然后单独允许每个地址块。

恕我直言,这将是less得多的开销,并相对安全地禁用密码authentication,并只允许基于密钥的login到服务器。

我发现大多数IP位置列表是不可靠的。 一些地址是完全错误的。

为需要SSH的每个人创build一个VPN会更容易,所以他们可以从任何地方连接…并阻止来自公众的SSH访问。

您可以下载RIPE分配列表并基于此创buildiptables规则。 你应该知道,列表可能不完整,我认为有less量的IP地址分配通过略有不同的渠道,这将不会出现在该列表。

知道您所做的事情的攻击者如果能够find允许的IP地址列表上的任何代理(或类似的),就能够绕过过滤。

我过去也有类似的情况。 已经说过的一切都是非常有效的,我同意你不能在没有使用合适的防火墙的情况下有效地阻止这个国家,甚至是错误的。

关于你需要远程访问的问题,总有一天,在最糟糕的时刻“是真正的决定因素,正如俗话说的那样:”在那里,做到了“,这并不美丽。

这就是我解决问题的方法。

我设置了办公室防火墙,以允许ibound ssh只有我们的提供者子网和另一个外部IP地址。 该外部服务器configuration了非标准的端口,portsentry和其他一些东西,以确保只有可以到达它,然后将ssh,到内部networking。

在您的服务器上设置一个dynamicDNS。 将密钥发给授权客户端,以便每个客户端只能更新自己的dynamicDNS IP地址。 这可以让您的服务器知道您的授权客户端来自哪个IP地址。

使用TCP Wrapper保护您的SSH服务器,您只允许授权客户端使用dynamicDNS信息进行连接。 相关文件是/etc/hosts.{allow,deny}用于TCP Wrapper。

鉴于上述的复杂性,我只在less数Linux客户端上做了这个。 移动客户端面临更多的挑战(主要是由于缺lessnsupdate或缺less有关IP地址更改的通知)。 我安装了OpenVPN服务器,并向非Linux漫游客户端发放密钥。 如果移动客户端丢失/被盗,相应的密钥可以在OpenVPN服务器上被撤销/删除。

我开始使用IPSec,但廉价的无线NAT路由器不会让IPSec数据包通过。 也许更新/昂贵的路由器会。