只要你的服务器一放到网上就不断有人试图暴力破解你的root密码, 你不信? 那就去你的 /var/log/secure 看看里面记录了多少次失败的登录. 我相信你看了一下日志, 一定会有所惊讶,并在想如何解决这个问题.
最直接的方法, 那就是停止ssh服务, 不过正常情况下这个不太现实(可能某些vps提供了网页版的ssh), 也不太方便. 修改端口没有太大的作用, 端口扫描程序还是会发现的. 给root加一个复杂的密码, 不错, 这是非常非常重要的方法, 来个10几位,大小写,数字,符号统统搞一通, 那估计破解出来不是件容易的事. 不过看着别人一直在那里破解, 日志文件一天天变大, 心里也不大舒服哦. 我想这时你肯定想到了防火墙.
目前最常见的软件防火墙就是iptables, 硬件防火墙其实也是基于他们修改的, 还记得7年前在研究ipchains, 套个管理端, 装在1u服务器里卖硬件防火墙, 现在都没人提了. 不过当你真的想写防火墙规则的时候, 却发现无从下手. 只允许自己的ip访问? 中国的网络还没能给我这个条件, ip地址哪能固定. 限制mac地址, 可以是可以, 但还是感觉不方便, 在其他地方想访问的时候访问不了.
这里介绍一款软件叫 . 他是通过分析日志文件联动iptables防火墙. 比如一定时间内连续检测到失败登录, 就将其ip地址封掉一定的时间. 感觉像IDS入侵检测吧. 安装和配置都很简单, 最方便的安装就用rpm包安装. centos 可以用yum, ubunto/debain可以用apt-get.
安装好以后只要配置参数定义一个入侵场景就可以了:
修改jail.conf文件, 正常在 /etc/fail2ban/jail.conf
fail2ban除了可以监控ssh登录以外, 还可以监控其他应用,如ftp等, 在配置文件里把不需要的注释掉就ok了.
bantime=600 #隔离时间, 隔离10分钟
findtime=600 #连续动作时间窗, 10分钟
[ssh-iptables]
enabled = true
filter = sshd
action = iptables[name=SSH, port=ssh, protocol=tcp]
logpath = /var/log/secure #需要分析的日志文件
maxretry = 3 #最多连续3次
上面的参数意思就是说10分钟内连续3次失败登录, 将把ip地址屏蔽10分钟. 通过配置了这个, 那些想暴力破解你密码的估计会放弃了.
阅读(1605) | 评论(0) | 转发(0) |