- 论坛徽章:
- 0
|
- 这个想法早就有,只是一直没动手,今天找到一个机会实施了一把,略有所感,晚上回家和朋友聊着,他说他的服务器每天都有大量的 SSH ROBOT 在尝试登录,我就把我的想法给他说了一下,他说觉得很不错,就在自己机器上也整了些脚本干这个事情。
- 其实很简单,就是用firewall(pf/ipfilter/ipfw/iptables之类),把ssh端口保护起来,外网来连接ssh时发现到这个端口的数据被drop了,就会返回这个端口不能用,以为这台服务器没开ssh,就关掉了机器人来试密码的机会。
- 但当我们自己要登录 ssh 的时候怎么办呢,我们可以写个脚本(当然是php文件了,可用用表单,http验证,mysql验证,只要你能想到的BT办法都可以)放到www上运行,只有用户通过了我们设定的权限验证,就把这个客户端的IP地址记录下来,保存到一个秘密的地方, 然后在Cron里面跑一个脚本,每隔1分钟检查一次那个保存数据的秘密地方是否有ip记录,有的话就把这个ip添加到 firewall的白名单规则里面,这样你就可以顺利的链接ssh端口,不会被firefall 档住了。
- 下班回家的路上想了想怎么清理过时的ip数据问题,可以考虑cron里面跑个脚本,定期删除一段时间(如12小时或更短时间)内没有再次登录的ip,提高firewall规则的效率。
复制代码 |
|