salt 通信及其安全

模型架构

  • server-agent通信模型:
    server就是salt master; agent就是salt-minion
    salt也可以作为一个单点服务器管理工具使用,或者运行在无agent的ssh上

  • 一个salt master可以用于管理上千个salt minion

通信模型

salt 通信使用发布-订阅模式。salt minion初始化连接,不用去开其它端口,salt master使用4505和4506,来接收进来的连接。

  • Publisher port 4505 所有的salt minion 在这个port上建立一个永久性链接,用于接收master端的命令。命令通过这个端口异步传输到各个连接,使得n个系统同时执行命令。
  • Request Server port 4506 根据需要,向salt master 发送结果。master和salt之间到这个端口上的连接是1:1,不是同步的。

salt minion认证机制

salt minion第一次启动的时候,在网络上搜索名称为salt的系统,·salt·可以被其它名字取代,找到后,minion初始化一次握手,然后把公钥发送给salt master.

第一次初始化连接之后,salt master端使用·salt-key· 命令接收公钥,或者使用一些自动化机制。salt在master接收了公钥后才提供解码信息需要的安全码。

接收了minion的key之后,master发送自己的key 和一些AES key(用于编码和解码)。返回的AES key是使用salt minion发送的公钥编码,因而也只能由发送它的salt minon来解码。

安全通信

salt master 和salt minon端之间的通信都是基于AES key的。AES编码使用复杂的初始化向量和CBC 块链接算法,与最新的TLS 版本一致。

Rotating Security Keys

salt master 向salt minon发送编码job,需要使用AES key。当master重启,或者使用命令将salt minon删除之后,会生成新的AES key, 此时salt minion需要更新新的AES key。这样,AES key就可以在不中断minion连接的情况下进行。

编码通信渠道

salt master和salt minion之间的直接通信,一个session使用一个唯一的AES key。

用户访问控制

发送命令之前,salt会对执行命令的用户的权限进行检查。
salt 会返回等待执行命令的minion list,从而知道需要等待多久。

最新文章

  1. 关于JS 事件冒泡和onclick,click,on()事件触发顺序
  2. 【WP开发】如何处理溢出的文本
  3. HTML5移动Web开发(八)——避免文本字体大小重置
  4. Linux学习--------一
  5. iOS-自定义Log
  6. docker commit容器
  7. Unity3D在Windows的全屏和跨屏(双屏)方案
  8. Android版年年有鱼游戏源码
  9. Python初学者笔记(3):输出列表中的奇数/奇数项,字符串中的偶数项,字符串大小写转换
  10. Ruby on Rails vs. PHP vs. Python
  11. ☀【Grunt】插件
  12. 界面信息获取库的封装,记有爱UI助手的诞生
  13. SDN,NFV
  14. iOS手机截屏使用
  15. python中线程和进程(二)
  16. [NLP]非终结字符集&终结字符集
  17. java web 常见异常及解决办法
  18. centos安装Tesseract
  19. codeforces158D
  20. vue.js自定义组件directives

热门文章

  1. 【起航计划 018】2015 起航计划 Android APIDemo的魔鬼步伐 17 App->Alarm->Alarm Service
  2. Struts2_中文问题
  3. day002-List类、泛型
  4. FYI-django数据库操作-外键
  5. 起一个node服务
  6. centos 7jenkin+git 安装
  7. 2017.10.20 jsp用户登陆界面连接数据库
  8. maven parent version not found
  9. C#声明方法
  10. 统计文件中的URL