保护SSH服务器

我有一个运行多个服务的debian-machine,例如带有http和https的Apache,jabber和一个用于pipe理的openssh服务器。 ssh服务器没有在端口22上运行。它的端口类似于端口62111.我使用fail2ban来保护openssh。 因此,无论何时攻击者试图连接到端口62111上的ssh,在端口62111上被fail2ban禁止了两天之前,他有两次尝试。

我想在端口22上启动一个(假的)SSH服务器,每当有人试图连接到这个端口时,他将被iptables永久禁止在所有端口上,或者至less在我放弃iptables规则之前。 任何合法的SSH连接都不会尝试ssh到端口22,因为每个pipe理员都知道正确的SSH端口。

这个想法是攻击者会先尝试攻击22号端口。 所以他甚至没有机会尝试SSH到港口62111.我不在乎那些cookies看到我的网站。 所以在任何端口上(包括80和443)都可以阻止它们。

任何build议如何做到这一点?

我会试着build议你另一个解决偏执的办法:)

http://www.portknocking.org/view/

它的工作原理是要求连接一系列预定义的closures端口。 当收到正确的端口“敲打”(连接尝试)序列时,防火墙将打开某个端口以允许连接。

当然只有ssh密钥authentication。

没有好主意(恕我直言)。

连接到端口22并不意味着有人试图插入到您的服务器。

为了保护您的服务器免受黑客/黑客的攻击,请遵循一些简单的规则(例如)。

  • 使用像fail2ban明智的工具
  • 保持您的服务(ssh,http,…)始终保持最新状态
  • 使用强密码(并将其更改为循环)
  • 为sshd使用ssh-keys并禁用密码authentication

我想在其他端口上运行sshd,仍然使用相同的fail2ban等 – 我发现了一个非常好的,类似的手册: http : //www.kudos.be/multiple_sshd

将在这里重新发布和改变你的东西:

目标是在两个不同的端口上运行相同的守护进程,并在一个实例上禁用任何types的身份validation。

  1. 复制configuration:

    cd / etc / ssh / sshd_config / etc / ssh / sshd_config-fake

  2. 根据这个改变configuration:

    更改PortSyslogFacility*Authenticationstring(禁用伪造), PidFile

  3. 创build符号链接:ln -s / usr / sbin / sshd / usr / sbin / sshd-fake

  4. 创buildinit脚本: cp /etc/init.d/sshd /etc/init.d/sshd-fake并相应地修改sshd-fake文件的内容。

  5. 更改/ etc / sysconfig / sshd-fake: OPTIONS="-f /etc/ssh/sshd_config-fake"

  6. 添加服务chkconfig --add sshd-fake

  7. 创buildpamconfiguration: cp /etc/pam.d/sshd /etc/pam.d/sshd-fake

  8. 编辑/etc/pam.d/sshd-fake并禁止一切,或者使用不同的方法,如允许用户从文件列出: http : //linux.die.net/man/8/pam_listfile

  9. 重启服务: service sshd restart;service sshd-fake restart;chkconfig sshd-fake on

  10. 相应地configurationfail2ban

这可能不是最优雅的,但它应该是快速和function性的:

 iptables -I INPUT --m recent --name blocked --rcheck -j DROP iptables -I INPUT -p tcp --dport 22 -m state --state NEW -m recent --name blocked --set 

说明:

在input链中插入firwall规则(在顶部),检查数据包的源地址是否当前在“阻止”列表中,如果是,则将其丢弃。

在input链中插入另一个防火墙规则(在我们刚刚插入的规则之上),该规则将任何连接尝试的源地址添加到端口22到“阻止”列表。

我没有看到需要真正运行一个(假的)服务器,或任何端口22上的任何监听器。

编辑:看看我的答案,我想补充说,你可能应该超时你的阻止列表比

“永远或至less直到我放弃iptables规则”

因为您将从dynamicIP地址获得大量的点击,这些点击后将在几小时甚至几分钟内重新分配给合法用户。

请参阅: http : //www.netfilter.org/documentation/HOWTO/netfilter-extensions-HOWTO-3.html#ss3.16