发布时间:2014-09-05 17:18:46作者:知识屋
在本文中我将一步一步指导大家设置自己的“超级计算机集群”,通过Ubuntu MPI Cluster平台,借助John the Ripper实现在多台计算机上对加密过的目标进行暴力破解。当然这一切应以学术研究为目的。
计算机上具备四核处理器的朋友有福了。尽管Ubuntu 软件库中的”john”二进制代码原本只针对于单核运行,但我的设置将尝试使其在四核计算机上运行效率更高,耗时更少。
本文的出发点是将问题表达得通俗易懂,以使普通用户便于理解掌握,因此我决定不在其中涉及NIS,NFS,BIND或诸如此类的复杂技术。读者应该不必花费数天时间阅读有关Linux系统管理员知识的教材或手册,也能在家中轻松建立并玩转计算机集群系统。我制作的应用基于Ubuntu 10.04 Server,因为它是迄今为止最常用的Linux工具,同时也是一种蕴涵长效机制的版本,在2015年之前可以一直适用。
前言
本文中谈到的集群实施方案并不会对具备高实用性及安全性的运行环境构成威胁。
背景
我发现不得不从破解自己设置的一个尘封多年早已忘却的老密码开始着手。在搜集了几台手边的计算机之后,我开始尝试让它们协同工作。
本文的诞生,是极端沮丧的心情、过量的咖啡因加上一整个不眠之夜的产物。
基本要求
需要至少两台可运行Ubuntu Linux 10.04版本且已联网的计算机。
“John”并不需要太大的带宽。
服务器配置
服务器要求
一个静态IP地址或DHCP中保留的IP。
需要用到的软件包
以下软件包是必备的:
?libmpich1.0 - dev- MPICH静态库和开发文件
?libmpich - mpd1.0 - dev- MPICH静态库和开发文件
? libmpich - shmem1.0 - dev- MPICH静态库和开发文件
? openssh-server ― 安全框架 (SSH) 工具, 保障远程计算机的安全访问
? mpich2 ― 实施MPI信息传递接口标准
? mpich2-doc ― MPICH2相关文档
? john ― 强力的密码破解工具
? build-essentials 必备软件包的信息统计清单
www.linuxidc.com@server:~$ sudo apt-get install libmpich1.0-dev libmpich-mpd1.0-dev libmpich-shmem1.0-dev mpich2 mpich2-doc john openssh-server build-essentials
网络配置
默认情况下,/etc/hosts文件应如下所示:
127.0.0.1 localhost
127.0.1.1 server.linuxidc.com server
#下列内容是采用IPv6协议的主机
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
首先把你的IP地址修改为127.0.1.1。
<server.linuxidc.com>处应为你的FQDN,而<server>处应为你的计算机主机名。
通过执行下列命令查找你的IP:
www.linuxidc.com@server:~$ ifconfig|grep “inet addr”
inet addr:10.0.0.1 Bcast:10.255.255.255 Mask:255.0.0.0
inet addr: 127.0.0.1 Mask:255.0.0.0
修改后/etc/hosts下的内容应如下所示:
127.0.0.1 localhost
10.0.0.1 server.linuxidc.com server
#下列内容是采用IPv6协议的主机
::1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
用户配置
新建一个名为“cluster”(集群)并在其路径中加入~/bin/代码。
我发现在每台计算机上都对’cluster’采取相同的设置步骤是最便捷的做法。
www.linuxidc.com@server:~$ sudo useradd -m -s /bin/bash cluster
www.linuxidc.com@server:~$ sudo passwd cluster
Enter new UNIX password:(输入新的UNIX密码)
Retype new UNIX password:(再次输入新的UNIX密码)
passwd: password updated successfully(密码:密码更改成功)
www.linuxidc.com@server:~$ sudo su cluster -c “mkdir ~/bin;export PATH=~/bin:$PATH”
MPICH设置
MPI的应用基于以下配置文件:
? ~/.mpd.conf
注:此文件以a开头且必须配合chmod 600才能生效。
此文件在你的密码中包含一个单独的命令行“secretword=<password>“ (replace <password>,其内容必须与集群中所有~/.mpd.conf中的相关内容相同。
? ~/mpd.hosts
此文件中包含所有集群节点及服务器的列表,其格式为“host:number-of-cpu-cores”, fx。如果您的计算机具备四核心处理器,则将10.0.0.2设置为10.0.0.2:4。
如果你只是想使用MPICH的功能而不在乎可用处理器核心的数量,那么该数值可以设置得低于实际情况。
举例说明,如果服务器具备四核心处理器,你可能希望将数值设置为:3,而不是:4,这样服务器可以同时处理其它一些运算。
千万不要预设localhost或127.0.0.1这类你必须连接网络才能使用的IP。
检查处理器核心数量,并创建配置文件。
cluster@server:~$ touch ~/.mpd.conf
cluster@server:~$ chmod 600 ~/.mpd.conf
cluster@server:~$ echo secretword=pass>~/.mpd.conf
cluster@server:~$ /sbin/ifconfig|grep “inet addr”
cluster@server:~$ /sbin/ifconfig|grep “inet addr”
inet addr:127.0.0.1 Mask:255.0.0.0
cluster@server:~$ cat /proc/cpuinfo|grep processor|wc l
cluster@server:~$ echo 10.0.0.1: 1 >~/mpd.hosts
设置完成后,通过执行以下指令检查是否运行正常:
? mpdboot 启动集群
? mpdtrace - 列出群体的所有节点
? mpdallexit 关闭集群
mpdallexit shut down the cluster
cluster@server:~$ mpdtracecluster@server:~$ mpdallexit
如果设置方面没有任何错误,那么你的指令将全部被正确执行。如果出现问题,请检查你的~/.mpd.cof的权限设置及/etc/hosts和~/mpd.hosts的内容是否正确。
安装John the Ripper
在www.bindshell.net/tools/johntheripper处可以获取具备MPI补丁版本的John the Ripper。
cluster@server:~$ mkdir source
cluster@server:~$ cd source
cluster@server:~/source$ wget http://www.bindshell.net/tools/johntheripper/john-1.7.2-bp 17-mpi8.tar.gz
从src目录中解压并运行make指令(若你的计算机分辨率不足,请尝试使用make|less指令)。
cluster@server:~/source$ tar -zxf john-1.7.2-bp17-mpi8.tar.g
cluster@server:~/source$ cd john-1.7.2-bp17-mpi8/src/
cluster@server:~/source/john-1.7.2-bp17-mpi8/src$ make
此时你会看到一个选项清单。
要创建John the Ripper,键入
保持系统清空
运行所需的系统如下所示:
linux-x86-mmx Linux, x86 with MMX
linux-x86-sse Linux, x86 with SSE2 (推荐)
linux-x86-any Linux, x86
linux-x86-64 Linux, AMD x86-64, 64-bit native w/SSE2 (推荐)
linux-x86-64-mmx Linux, AMD x86-64, 32-bit with MMX
我发现linux-x86-sse2在我基于Intel架构的工作站上运行效果最好。
cluster@server:~/source/john-1.7.2-bp17-mpi8/src$ make clean linux-x86-sse2
如果程序编译过程没问题,测试一下它能否正常工作。
cluster@server:~/source/john-1.7.2-bp17-mpi8/src$ ../run/john -format=DES test
Benchmarking: Traditional DES [128/128 BS SSE2]… DONE
Many salts: 1994K c/s real, 1994K c/s virtual
Only one salt: 1658 c/s real, 1654K c/s virtual
将你新编译出的可执行文件移动至~/bin下。
运行John程序并确保它是_mpi版本。
如果仍然无法正确执行,那一定是你设置的路径出了问题。
cluster@server:~/source/john-1.7.2-bp17-mpi8/src$ john|grep version
John the Ripper password cracker, version 1.7.2_bp17_mpi
配置额外的节点
每次在集群中新增节点,都需要遵循下列操作:
该节点的IP地址为10.0.0.2
前期准备
linux一键安装web环境全攻略 在linux系统中怎么一键安装web环境方法
Linux网络基本网络配置方法介绍 如何配置Linux系统的网络方法
Linux下DNS服务器搭建详解 Linux下搭建DNS服务器和配置文件
对Linux进行详细的性能监控的方法 Linux 系统性能监控命令详解
linux系统root密码忘了怎么办 linux忘记root密码后找回密码的方法
Linux基本命令有哪些 Linux系统常用操作命令有哪些
Linux必学的网络操作命令 linux网络操作相关命令汇总
linux系统从入侵到提权的详细过程 linux入侵提权服务器方法技巧
linux系统怎么用命令切换用户登录 Linux切换用户的命令是什么
在linux中添加普通新用户登录 如何在Linux中添加一个新的用户
2012-07-10
CentOS 6.3安装(详细图解教程)
Linux怎么查看网卡驱动?Linux下查看网卡的驱动程序
centos修改主机名命令
Ubuntu或UbuntuKyKin14.04Unity桌面风格与Gnome桌面风格的切换
FEDORA 17中设置TIGERVNC远程访问
StartOS 5.0相关介绍,新型的Linux系统!
解决vSphere Client登录linux版vCenter失败
LINUX最新提权 Exploits Linux Kernel <= 2.6.37
nginx在网站中的7层转发功能