Linux—-利用hosts.deny 防止暴力破解ssh

一、ssh暴力破解

利用专业的破解程序,配合密码字典、登陆用户名,尝试登陆服务器,来进行破解密码,此方法,虽慢,但却很有效果。

二、暴力破解演示

2.1.基础环境:2台linux主机(centos 7系统)、Development Tools.

主机ip:192.168.30.63 (服务器端)、192.168.30.64(客户端+ 暴力破解【Hydra】)

在30.63上进行暴力破解30.64

2.2 客户端上安装 破解程序 hydra。关于该程序的详情请去官网.

安装该软件的依赖环境:

下载hydra 软件(如果在linux 中无法直接wget下载的话,可以在浏览器(windows)中直接输入该链接去下载该软件)

解压、编译、安装(注意: 编译安装时需要注意看下有没有error类的错误,不然可能会导致hydra程序无法使用)

正常安装的话,就可以使用了。

2.3 hydra 常用命令详解

复制代码

复制代码

2.4 测试破解 (在192.168.30.63上操作)

创建一个目录,用来存放用户文件以及密码字典,并创建用users.txt、passwd.txt 文件

复制代码

复制代码

运行一下命令进行破解,可以看到倒数第二行,提示已经找到1个有效的密码。倒数第三行,便是有效的用户名和密码(如果在命令里加上-vV 选项的话,会输出更详细的破解运行的信息)

复制代码

复制代码

运行-o 选项可以将得到的有效用户名和密码保存到文件中,如下:

以上就是暴力破解的过程,另外hydra 程序支持更多的协议,如ftp、web用户名登陆、cisco、pop3、rdp、telnet…… 等等等等。有兴趣的可以谷歌搜索下用法。不要用来做坏事啊,防患于未然。

三、如何防止自己的服务器被ssh暴力破解呢?

3.1 这里利用到了linux 系统的日志,不知道大家发现没,每次我们登陆服务器时,如果有登陆认证失败的情况,会在服务器的/var/log/secure文件中记录日志。错误日志如下:

通过上面的日志我们可以看出,是30.63这台主机ssh登陆失败了,那假如它登陆失败次数过多后,我们能否禁止它登陆呢?

3.2 这里用到了linux 的hosts.deny(利用tcp_wrappers)文件。参考文章:我本善良

hosts.deny介绍:一般來說linux的密碼我們會用shadow來保護。電子郵件大概有人也會說使用PGP,但是一般的網路連線呢?可能會有人舉手回答說防火牆,那防火牆跟tcp_wrappers有什麼關係呢?筆者個人認為,如果說Firewall是第一道防線的話,第二道防線大概就是tcp_wrappers了,我們可以利用不同的防護程式來增加防護的能力之外,並且還能增加被駭客破台的困難度。設計一個完善的防火牆規則本來就不是一件很容易的事情,但是我們能透過簡單的程式化困難為容易,讓新手更能快樂的接觸美麗的Linux新世界。

3.3 利用脚本配合任务计划去定时检测 /var/log/secure 文件,当发现有大量失败日志后,就将该ip追加到hosts.deny中,以达到防止暴力破解的目的。(在192.168.30.64 服务器上操作)

脚本内容:

任务计划:(每分钟运行下该程序)

重启crond服务

我们先查看下/etc/hosts.deny文件,默认里面的内容应该是空的,如下

 

3.4 在客户端上进行破解。(192.168.30.63上操作)

第一次运行破解命令

第二次在继续操作时出现连接端口失败的提示(已经被服务器加入deny拒绝了。)

可以去服务器上去检查下hosts.deny文件内容。看下有没有把客户端的ip 追加到里面

说明该脚本运行正常,可以拒绝那些想暴力破解我们服务器的ip。

四、注意事项

1.上述的实验中,可能会存在很快的被扫描到账号和密码,没有起到防止暴力的作用,那是因为我的密码文件已经在里面了,而且用户名及密码就几个。但是在真实环境中,黑客不可能那么快就扫描到,除非你的密码弱爆了。。。

2.上述实验中的软件来自于互联网。

0

Leave a Reply

Your email address will not be published. Required fields are marked *