Version1:
使用python脚本,解决上次纯shell搭建的一个缺陷,需要expect进行交互。
此次,使用subprocess库新建进程进行交互。不过,这部分也比较侥幸,
是因为,tot-gencert可以指明输入的来源,我觉得这也是一个可以使用subprocess的原因。
所以,这就产生一个问题,我需要尝试下,subprocess是不是可以替代expect
比如,可以ssh进入相应的主机。
虽然网上没有直接这样用,可能是不行,我需要验证下,并且深入把subprocess库利用好,这个
就像是linux下面的fork一样。
实验了一下,好像,不好使,不能是用subprocess进入,据说是ssh不能采用这种通道的形式。
而如果要实现python登录,paramiko库是一个可以利用的库。-------》成功
与服务器交互部分,是用的是,每次新建一个连接,进行一次交互。
主机部分开启一个socket服务端,然后通过读取及接受信息,来与客户端交互。
这里,有一个问题,当第一个主机等待服务器那边收到全部目录服务器信息时,
(实验中用了两个主机做目录服务器)第一个主机,(先延时,后继续连接)后续所要信息时并不能接收到信息。(这就很尴尬。)这也是一个需要后期手动处理的部分。
我按照搭建最小隐藏服务的拓扑,hs-min进行了搭建,实践证明不好使。感觉有地方除了问题,应该是配置的问题,并不是说的搭建的过程中有了那些疏漏。
还是配置文件读的不够准确。
特别是,我用的配置文件是用的上次搭建十个节点用的。所以可能是这里出现了问题。
看来需要我把整个脚本设计的流程好好写一下。这是有必要的。总觉得缺少了什么东西。
脚本编码的时候,也会有点没有方向的感觉。
Version2:
首先说这次搭建是成功的,可以实现利用tor网络访问网页,并且最重要的是,可以实现暗网。
这次几个不同的因素就是,拓扑变大,十个节点:三个目录服务器,五个中间节点(这里其实不应该说,中间,因为配置,后面继续说明。)
剩余两个节点分别是,客户端与隐藏服务节点。
一个因素,拓扑,多了一个目录服务器,因为,我不能确定的说,但是从日志来进行分析,上面的意思,进行投票的时候,不能达成一致,也就不能完成一个线路。(这个有待进一步分析)
另一个因素,就是中继都多了一部分,那配置文件最后,多了一个出口流量的协议。
隐藏服务节点,并没有就和一个最普通的节点一样,只是多了一个隐藏服务的选项。
另外一个,要注意,目录服务器所扮演的角色,很复杂,他承担了很多相应的功能。
注意看,那个exit=1的选项,如果没有exit=1的选项,也就没有了上面刚才说的那个最后多出来的配置文件。
Version3:12.16
不知道为何,虚拟机设置了开机自启的脚本,但是并没有效果。
所以这个问题就很尴尬。
所以最后可能还是需要写一个脚本来进行自动自动化,感觉。。跟原来用shell没什么两样。
采用python paramiko库
Version4:1/13/2017
昨天进行重新搭建的时候,莫名其妙出现了错误,而且无法知道错误信息是最他妈烦的。
**原因就是我的那些try。。expect。。语句使用错误。**
更新了删除日志的脚本,可以自动化一次性删除。