生成RFC3414中描述的适合与ESXi和其他SNMP守护进程一起使用的snmpv3散列
SNMPv3-Hash-Generator的Python项目详细描述
生成snmpv3密钥的脚本,如rfc3414所述(密码短语 用kdf展开,然后用引擎id散列)。全密钥生成 是使用新的加密安全的secrets库完成的。
在我写这篇文章的时候,考虑到esxi,它还发出了一个适合 通过esxcli/powercli配置snmp守护进程,但是散列是 与其他snmpv3实现标准且兼容。
如果没有参数,它将生成身份验证和隐私 文本形式的带有关联随机引擎ID的密码短语。–json将 将输出格式化为json。
脚本是完全等幂的;如果采用它生成的参数 随机地重新输入它们,您将再次获得相同的输出。
依赖关系
运行时:Python3.6或更高版本。
样本输出
标准
User: observium Auth: gaYA82XVtNaf3WLwRgoIs544ghP6f80S / f78359764ca382922fa382cf884e588031de575a Priv: H5XEtRpxXVaGzXU5i2rFwPnYGr8SEzTp / 31a001a56a225fdfc1916bd60190405a1aa22ff0 Engine: 7ae1b0ff0aa2f3950566d3de2274d05a ESXi USM String: observium/f78359764ca382922fa382cf884e588031de575a/31a001a56a225fdfc1916bd60190405a1aa22ff0/authpriv
json
{ "user": "observium", "engine": "b2a50167b7c8512ddfc9d5765a3490af", "phrases": { "auth": "71rOhjfj6QVSy2mw5tBo7PueZ8KWSv60", "priv": "xwsvzht8NEcuwAlEpUKzMxKFWeH72sK9" }, "hashes": { "auth": "fa0d5249293404502f9953b9514d0636a96c2cbc", "priv": "cccbdcfa603817df340514ecc22dfae8c4c412e8" }, "esxi": "observium/fa0d5249293404502f9953b9514d0636a96c2cbc/cccbdcfa603817df340514ecc22dfae8c4c412e8/authpriv"}
应该不用说,但是不要使用引擎id或 示例中的密码短语。
用法
usage: snmpv3-hashgen [-h] [--auth AUTH] [--priv PRIV] [--engine ENGINE] [--user USER] [--mode {authpriv,auth,priv,none}] [--hash {md5,sha1}] [--json] Convert an SNMPv3 auth or priv passphrase to sha1 or md5 hashes optional arguments: -h, --help show this help message and exit --auth AUTH Authentication passphrase to be derived as a string --priv PRIV Privacy passphrase to be derived as a string --engine ENGINE Engine ID as hex string --user USER SNMPv3 USM username (default "observium") --mode {authpriv,auth,priv,none} SNMPv3 mode (default "authpriv") --hash {md5,sha1} Hash algorithm to use (default "sha1") --json Emit output as json