ubuntu下N2N网络搭建

最近公司项目要研究p2p网络安全通信。其中用到了N2N开源框架。我们知道它使用的是twofish加密算法,强度不够,我的任务就是使用SM4替换掉twofish.

二话不说,先搭建环境。此处我使用的是桥接三台ubuntu虚拟机。

 

重要前提依赖:Openssl库已经安装,.h文件盒.a静态库也放入系统相应的默认的位置。不然编译会出错。

当然gcc、make等这一套工具,不用多说,必须已经安装。

下面开始:

首先svn下载源代码:

https://svn.ntop.org/svn/ntop/trunk/n2n/n2n_v2

此处选择v2版本.


下载完成后,将源代码分发到p2p网络中每台机器上,编译步骤安装:

$sudo make
$sudo make install

以上过程中没有错误输出。

 

然后就可以使用supernode 和edge命令了。

也可以ls看看是否有如下两个可执行文件:

$ls /usr/sbin/supernode
$ls /usr/sbin/edge

选择某台机器作为supernode。

这里最好别乱选,如下图,因为supernode像桥梁一样,包含中转发送包作用。

所以,如果你的p2p中,某台PC能同时连接多个Ethernet,那么无疑它就要做supernode了。

ubuntu下N2N网络搭建_第1张图片


此处我简化一下,假设所有PC都在同一局域网中。此时supernode就可以随便选了,只要能ping通其他机器就行。

以PC2作为supernode,PC1和PC3作为edge。

假设:

PC1的IP:192.168.1.173

PC3的IP:192.168.1.174

PC2两块网卡,eth0: 192.168.1.156 , eth1:172.16.2.11

 

首先在PC2上执行:

$sudo supernode -f -v -l 8899

此处-f表明前台执行方便看输出log,-v表示详细log输出,-l表示指定supernode端口。注意若当前不是root用户,要加sudo。


在PC1上:

$sudo edge -d n2n0 -c myn2n -k 123456789 -a 1.2.3.4 -l 192.168.1.174:8899

-d表示device,即虚拟网卡设备名(此命令将会创建虚拟网卡,命令执行完毕后,ifconfig可看到你创建的网卡信息),可随意。

 -c表示网络名,可随意。

 -k 表示密码,你可以想象成等下和PC3连接时,需要的暗号。

 -a 表示虚拟设备的ip地址。可随意。

 -l 你要连接到哪台supernode?因为要连接到此台机器的supernode进程,故而需要指定端口。

 

完成后,ifconfig,可以看到多了一块叫做n2n0的网卡(当然,名字是你自己指定的)。

此时查看supernode的输出信息,也能捕捉到PC1的注册请求。

 

同理,在PC3上做同PC1的操作,只是IP改变一下:

$sudo edge -d n2n0 -c myn2n -k 123456789 -a 1.2.3.5 -l 192.168.1.174:8899
注意:-c的网络名,要和上面PC1的相同。-k的密码也要相同。-a的IP地址一定 不能相同。
完成后。PC1和PC3相互ping一下:

XXX@PC1$ ping 1.2.3.5   //通。
XXX@PC3$ ping 1.2.3.4   //通。

说明就完成了!


最后,PC2有另一个网段:172.16.2.14.所以,此网段的机器,如果像PC1/3一样配置,也能通过PC2和PC1/3进行安全通信。

操作方法大同小异。大家自己研究吧。

你可能感兴趣的:(信息安全与openSSL)