FISCO BCOS 实战教程(六)config.ini 配置详解之 certificate_blacklist & certificate_whitelist & storage_security

    前面几个章节,讲解了 config.ini 中 rpc, p2p 这两个重要的配置项,现在我们来讲解下剩余的配置项的作用。也可以查看 官网 了解详细信息。

1. certificate_blacklist 

    查看 nodes/127.0.0.1/node0/config.ini 文件,可以看到有一个 certificate_blacklist 配置项。我们演示下这个配置项的作用

    首先进入 nodes/127.0.0.1/node1/conf 目录,使用 cat node.nodeid 命令查看 node1 的 nodeid。 nodeid 是就是每个节点的身份证,用于唯一的区别每个节点。    

同时,我查看下 node1 的的 p2p  端口,方便进行结果查验。进入到 nodes/127.0.0.1/node1 目录,查看 config.ini 文件中的 listen_port, 这里我们看到 node1 的 listen_port 是 30301。

 这里获取到 node1 的 nodeid 和 listen_port 后,再次进入到 nodes/127.0.0.1/node0/log 目录。首先,我们查看下 node0 和 node1  的 p2p 连接。执行如下命令,首先 ls -lrt 获取最新的日志文件

    然后使用 grep 命令查看和 node0 和 node1 的连接。这里,我们看到和 30301 ( 即 node1 ) 节点的 p2p 连接正常

进入 nodes/127.0.0.1/node0 ,编辑 config.ini 文件如下。这里我们现在只添加来一条记录,如果要添加多条记录,依次增加 crl.1,  crl.2  ,  crl.3 等等。 编辑成功后,重启 node0 。重点提醒,修改配置后要记得重启节点。

    重启 node0 成功。

    进入 nodes/127.0.0.1/node0/log 目录,使用 lrt 获取最新的日志文件,然后 grep 30301 查看连接信息。这里,我们看到node0 拒绝和 node1 建立连接。所以从这里我们可以看到, certificate_blacklist 的作用就是把目标节点拉黑。这个配置可能用到的场景是,比如当前你这个节点下面有很多小弟节点 比如 (100 个 ),这些小弟节点通过你这个节点和其他的节点建立连接,但有一天,你和其中的几个小弟闹翻来,你想把他们拉黑,这时就可以通过这个     certificate_blacklist  配置项进行。

    最后,我们还原下 node0/node1/node2/node3 中的 config.ini 配置,以便为后续实验做好准备。

2. certificate_whitelist

    介绍了 certificate_blacklist ,  那么 certificate_whitelist 就很好理解了。certificate_whitelist 的作用和 certificate_blacklist 正好相反,当配置了 certificate_whitelist 时,只有 certificate_whitelist 中的节点允许和当前节点连接,其他节点请求连接时,会被拒绝。

    那么,又有另一个问题了,当 certificate_blacklist 和 certificate_whitelist 同时配置时,并且其中配置了相同的 nodeid 时,会出项什么情况呢。官网 中进行明确说明。 “黑名单与白名单混合配置:黑名单优先级高于白名单,白名单配置的基础上拒绝与node1建立连接“ 

3. group 配置项

    group 这里的配置项意义很简单,就是节点的数据目录和配置文件存放的路径。这里一般没有特殊需要,我们不用进行修改。这里有一点需要注意的时,如果节点配置的存储方式为 mysql ,那么数据就全部存储在 mysql 中, group_data_path 这个配置项就没有什么作用。在后续的文章中,会介绍 mysql 等各种存储方式        

4. network_security

    这个配置项也很简单,就是证书的存放路径,这里的配置也很少进行修改。

  5. storage_security

    这个配置项时数据存储时是否需要加密的意思。因为节点数据都是明文存储,特别时当你的节点存储模式配置为 mysql 的时候,任何人只要能登陆到 mysql ,就可以查看你其中存储的数据。这个配置项就是对存储的数据进行加密,然后存储的本地磁盘或是 mysql 中。那么具体怎么加密呢,让我们来进行实验下。 也可以参考 官方文档  查看对应说明。

5.1 重置链

    实验之前我们先还原下所有的配置和链 ( 如果已经还原,可以跳过此步骤 )

    进入 nodes/127.0.0.1 目录,执行 ./stop_all.sh 停止,所有的节点。

    删除所有节点数据。好了至此,我们的准备工作已经完成,先不启动节点,等 key-manager 启动之后,还需要进行相应的配置。

rm -rf node*/data node*/log


5.2 编译 & 启动 key-manager

去 git 上下载 key-manager , 然后进行根据提示进行安装。首先安装一下依赖

# In Centos

sudo yum install procps-ng-devel

sudo yum install curl-devel

# In ubuntu

sudo apt-get install libprocps-dev

# In ArchLinux

sudo pacman -S procps-ng


    进行编译

git clone https://github.com/FISCO-BCOS/key-manager.git

cd key-manager && mkdir build && cd build

# For Centos

cmake3 ..

# Notice: There are ".." behind. # cmake3 .. -DBUILD_GM=On #When building "guomi" key-manager

# For ubuntu

cmake ..

# Notice: There are ".." behind. # cmake .. -DBUILD_GM=On #When building "guomi" key-manager

make

#The execution: "key-manager" generated.


    启动 key-manager。

    开启另一个命令行窗口,进入到 key-manager/scripts 目录,然后执行如下命令。然后我们就可以看到如下输出。

bash gen_data_secure_key.sh 127.0.0.1 8150 123456

5.3 加密节点私钥

进入 key-manager/scripts 目录,执行如下命令。注意,这里命令行最后一个参数就是上面的 cipher_data_key。其中 "/root/fisco/nodes/127.0.0.1/node0/conf/node.key"   为 node0 的 node.key 文件所在路径。至此我们 key-manager 的操作已经完成了。下面就可以去节点处进行相应的配置。

bash encrypt_node_key.sh 127.0.0.1 8150 /root/fisco/nodes/127.0.0.1/node0/conf/node.key ed157f4588b86d61a2e1745efe71e6ea

5.4 配置 storage_security

    进入 nodes/127.0.0.1/node0 目录,修改 config.ini 配置文件。注意这里的 config.ini 中 storage_security 需要和我们刚刚执行 gen_data_secure_key.sh  产生的配置需要保持一致。

5.5 启动节点

现在我们就可以启动我们的节点了。在 nodes/127.0.0.1 目录下,执行 start_all.sh , 我们看到 node0 启动成功了。这里感觉和普通的节点启动没有什么不一样的啊。还没有完呢。

        如果我们把 key-mananger 进程关掉,然后再此启动节点试试。进入 key-manager 的终端窗口,然后 ctrl + c 关闭 key-manager 进程。

        然后,进入到 nodes/127.0.0.1/node0 目录,重启下。我们可以看到,stop 成功后,启动节点时,节点启动失败了。那么,这里证明了我们的第一个想法,配置了落盘加密的节点,启动时必须要连接对应的 key-manager 才行。

    下面证明下我们的第二个才想,当启动的 key-manager 对应的 superkey 不匹配时,节点能否启动成功。进入到 key-manager/build 目录,然后使用如下命令启动。注意,这里我们使用的 superkey 为 123xyz111 ,而且之前启动使用的 superkey 为 123xyz 。

    之后,进入到 nodes/127.0.0.1/node0 目录,启动 node0 节点。我们看到启动还是失败了。那么这里证明了第二个猜想,key-manager 启动时,superkey 要匹配,节点才能启动成功。不然节点启动失败

5.6 总结

   落盘加密的目的时保护数据,防止数据被盗取后,他人读取节点中的数据。


5.7 还原 node0

    为了后续的实验,我们这里要还原下 node0 的配置。首先,进入到  nodes/127.0.0.1/node0 , 然后修改 config.ini 文件内容如下 ,  修改 storage_security 中的 enable 为 false。 

    然后进入到  nodes/127.0.0.1/node0/conf 执行如下命令。这里我们看到 conf 目录下有两个 node.key 文件。其中 node.key.bak.xxxx 是 key-manager 进行的备份文件,我们需要把这个 bak 文件还原。

    再次进入 nodes/127.0.0.1/node0 目录执行如下命令。注意这里我们需要 rm -rf data 即删除 node0 的数据文件,然后让 node0 去其他节点同步所有的数据过来。我会在后续的文章中讲解节点之间的数据同步。这里大家可以先不用详细了解,也可以去 FISCO 官网进行详细了解。

    当然还有一个简单的办法,就是在  fisco/nodes/127.0.0.1/ 目录下 ./stop_all.sh 停止所有进程,然后删除 nodes 目录,之后重新搭建一条链即可。


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,752评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,100评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,244评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,099评论 1 286
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,210评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,307评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,346评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,133评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,546评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,849评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,019评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,702评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,331评论 3 319
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,030评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,260评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,871评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,898评论 2 351

推荐阅读更多精彩内容