salt 通信及其安全
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,从而知道需要等待多久。
salt 通信及其安全的更多相关文章
- 搭建基于Jenkins salt-api的运维工具
1. 安装salt-master和salt-minion 安装过程不再赘述,请参考http://docs.saltstack.com/en/latest/topics/installation/ind ...
- saltstack运维工具
salt介绍 saltstack是由thomas Hatch于2011年创建的一个开源项目,设计初衷是为了实现一个快速的远程执行系统. salt强大吗 系统管理员日常会进行大量的重复性操作,例如安装软 ...
- Linux基础—saltstack运维工具学习
一.saltstack简介 1.saltstack是什么 系统管理员日常会进行大量的重复性操作,例如安装软件,修改配置文件,创建用户,批量执行命令等,如果主机数量庞大,单靠人工维护实在让人难以忍受. ...
- salt基本原理
转载自: 来自:http://tech.mainwise.cn/?p=438 说明:salt是一个异构平台基础设置管理工具(虽然我们通常只用在Linux上),使用轻量级的通讯器 ...
- salt stack 工具之一——远程命令
salt stack 远程命令 salt stack是一种自动化的运维工具,可以同时对N台服务器进行配置管理.远程命令执行等操作. salt stack分为两个部分: salt-master,部署在控 ...
- salt安装与简单使用---基于centos6.5
1.简介SaltStack 是一个服务器基础架构集中化管理平台,具备配置管理.远程执行.监控等功能,一般可以理解为简化版的puppet和加强版的func.SaltStack 基于Python语言实现, ...
- 使用SSL确保通信中的数据安全
#region Server /// <summary> /// 用于保存非对称加密(数字证书)的公钥 /// </summary> private string public ...
- 集群管理工具Salt
集群管理工具Salt 简介 系统管理员(SA)通常需要管理和维护数以百计的服务器,如果没有自动化的配置管理和命令执行工具,那么SA的工作将会变得很繁重.例如,要给集群中的每个服务器添加一个系统用户,那 ...
- Salt初识和安装
Salt Salt是一个配置管理系统,能够根据定义的状态,配置远程节点,比如保证远程节点上指定的安装包安装,运行指定的服务.Salt也是一个分布式远程执行系统,用于在远程节点上执行命令和请求数据,不论 ...
随机推荐
- nvd3基于时间轴流程图
doc http://nvd3-community.github.io/nvd3/examples/documentation.html https://github.com/mbostock/d3/ ...
- Java 开发23种设计模式
设计模式(Design Patterns) ——可复用面向对象软件的基础 设计模式(Design pattern)是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结.使用设计模式是为了 ...
- html+javascript+soap获取webservice免费天气预报信息
转自:http://blog.163.com/hubeimeiyu@126/blog/static/8004881020118303318687/ 首先,也是最重要的是互联网上免费的天气预报源:htt ...
- Linux系统如何设置开机程序自启动
在Linux系统如何让程序开机时自动启动 核心提示:系统的服务在开机时一般都可以自动启动,那在linux系统下如果想要程序在开机时自动启动怎么办?我们知道在 windows系统“开始”--& ...
- MSMQ学习笔记二——创建Message Queue队列
一.创建Message Queue队列的主要流程 1.定义MQQUEUEPROPS 结构: 2.设置消息队列属性: 3.初始化MQQUEUEPROPS 结构: 4.调用MQCreateQueue创建队 ...
- MySQL入门很简单: 7 触发器
触发器是由事件来触发某个操作,这些事件包括INSERT语句,UPDATE语句和DELETE语句 1.创建触发器 1)创建只有一个执行语句的触发器 例子:再向department表中执行INSERT操作 ...
- 141. Linked List Cycle (amazon)
Given a linked list, determine if it has a cycle in it. Follow up:Can you solve it without using ext ...
- Python 类的高级属性(可选)
1.slots实例:限制类的实例有合法的属性集,只有__slots__属性列表中的属性才可能成为实例属性. 对象的实例通常没有一个属性字典,可以在__slots__列表中包含一个属性字典__dict_ ...
- yum 源搭建
RHEL系统部署网络yum源 配置网络yum源 RHEL系统本身光盘做成的yum源所提供的软件包有限,在实际使用过程中经常会出现缺包的现象,本文中以CentOS源作为替代,CentOS的软件包和RHE ...
- java 生成12位随机数,解决The literal 9999999999999 of type int is out of range 问题
原本想这样产生一个随机数,但是你会看到,只要数字超过了9位数,就会出问题,提示“The literal 1000000000000 of type int is out of range” 解决方式是 ...