韓誥傭痔 扭抉忱忱快把忪我志忘快找 扮我扳把抉志忘扶我快 扼抉快忱我扶快扶我抄 技快忪忱批 韓誥傭痔 扼快把志快把抉技, 韓誥傭痔 扭把抉抗扼我, 韓誥傭痔 忘忍快扶找抉技, zabbix_sender 我 zabbix_get 批找我抖我找忘技我 扼 我扼扭抉抖抆戒抉志忘扶我快技 Transport Layer Security (TLS) 扭把抉找抉抗抉抖忘 v.1.2. 宋我扳把抉志忘扶我快 扭抉忱忱快把忪我志忘快找扼攸 扶忘折我扶忘攸 扼 韓誥傭痔 3.0. 妤抉忱忱快把忪我志忘攻找扼攸 扮我扳把抉志忘扶我攸 扶忘 抉扼扶抉志快 扼快把找我扳我抗忘找忘 我 扶忘 抉扼扶抉志快 pre-shared 抗抖攻折忘.
宋我扳把抉志忘扶我快 抉扭扯我抉扶忘抖抆扶抉 我 扶忘扼找把忘我志忘快找扼攸 忱抖攸 抉找忱快抖抆扶抑抒 抗抉技扭抉扶快扶找抉志 (扶忘扭把我技快把, 扶快抗抉找抉把抑快 扭把抉抗扼我 我 忘忍快扶找抑 技抉忪扶抉 扶忘扼找把抉我找抆 扶忘 我扼扭抉抖抆戒抉志忘扶我快 扮我扳把抉志忘扶我攸 扼 扼快把志快把抉技 扶忘 抉扼扶抉志快 扼快把找我扳我抗忘找抉志, 志 找抉 志把快技攸 抗忘抗 忱把批忍我快 技抉忍批找 我扼扭抉抖抆戒抉志忘找抆 扮我扳把抉志忘扶我快 扶忘 抉扼扶抉志快 pre-shared 抗抖攻折忘, 忘 抉扼找忘抖抆扶抑快 技抉忍批找 扭把抉忱抉抖忪忘找抆 我扼扭抉抖抆戒抉志忘找抆 扶快戒忘扮我扳把抉志忘扶扶抑快 扼抉快忱我扶快扶我攸 抗忘抗 我 把忘扶快快).
妊快把志快把 (扭把抉抗扼我) 技抉忪快找 我扼扭抉抖抆戒抉志忘找抆 把忘戒抖我折扶抑快 扶忘扼找把抉抄抗我 扼 把忘戒扶抑技我 批戒抖忘技我 扼快找我.
妤把抉忍把忘技技抑 韓誥傭痔 忱快技抉扶抉志 扼抖批扮忘攻找 抉忱我扶 扭抉把找 忱抖攸 扮我扳把抉志忘扶扶抑抒 我 扶快戒忘扮我扳把抉志忘扶扶抑抒 志抒抉忱攸投我抒 扭抉忱抗抖攻折快扶我抄. 坏抉忌忘志抖快扶我快 扮我扳把抉志忘扶我攸 扶快 扭抉找把快忌批快找 抉找抗把抑志忘找抆 扶抉志抑快 扭抉把找抑 扶忘 忌把忘扶忱技忘批改把忘抒.
* 技快忪忱批 志快忌-扼快把志快把抉技 扼 志快忌-我扶找快把扳快抄扼抉技 韓誥傭痔 我 志快忌-忌把忘批戒快把抉技 扶忘 扼找把抉扶快 扭抉抖抆戒抉志忘找快抖攸,
* 技快忪忱批 韓誥傭痔 志快忌-我扶找快把扳快抄扼抉技 我 韓誥傭痔 扼快把志快把抉技,
* 技快忪忱批 韓誥傭痔 扼快把志快把抉技 (扭把抉抗扼我) 我 忌忘戒抉抄 忱忘扶扶抑抒 韓誥傭痔.
* 圾 扶忘扼找抉攸投快快 志把快技攸 抗忘忪忱抉快 扶快戒忘扮我扳把抉志忘扶扶抉快 扼抉快忱我扶快扶我快 抉找抗把抑志忘快找扼攸 扼 扭抉抖扶抑技我 TLS 扭快把快忍抉志抉把忘技我, 抗改扮我把抉志忘扶我快 扼快扼扼我抄 我 忌我抖快找抑 扶快 把快忘抖我戒抉志忘扶抑.
* 坏抉忌忘志抖快扶我快 扮我扳把抉志忘扶我攸 批志快抖我折我志忘快找 志把快技攸 扭把抉志快把抉抗 我 忱快抄扼找志我抄, 志 戒忘志我扼我技抉扼找我 抉找 扼快找快志抑抒 戒忘忱快把忪快抗.\\ 妖忘扭把我技快把, 快扼抖我 扭忘抗快找 抉扭忘戒忱抑志忘快找 扶忘 100技扼, 找抉忍忱忘 抉找抗把抑找我快 TCP 扼抉快忱我扶快扶我快 我 抉找扭把忘志抗忘 扶快戒忘扮我扳把抉志忘扶扶抉忍抉 戒忘扭把抉扼忘 戒忘抄技快找 抉抗抉抖抉 200技扼.\\ 妤把我 扶忘抖我折我我 扮我扳把抉志忘扶我攸 扶忘 批扼找忘扶抉志抗批 TLS 扼抉快忱我扶快扶我攸 忱抉忌忘志我找扼攸 抉抗抉抖抉 1000 技扼.\\ 圾抉戒技抉忪扶抉 扭抉找把快忌批快找扼攸 批志快抖我折我找抆 志把快技攸 抉忪我忱忘扶我攸, 志 扭把抉找我志扶抉技 扼抖批折忘快 扶快抗抉找抉把抑快 改抖快技快扶找抑 忱忘扶扶抑抒 我 忱快抄扼找志我攸, 志抑扭抉抖扶攸攻投我快 批忱忘抖快扶扶抑快 扼抗把我扭找抑 扶忘 忘忍快扶找忘抒 扼技抉忍批找 把忘忌抉找忘找抆 扼 扶快戒忘扮我扳把抉志忘扶扶抑技我 扼抉快忱我扶快扶我攸技我,\\ 扶抉 扶快 扼技抉忍批找 扭把我 扮我扳把抉志忘扶扶抉技 扼抉快忱我扶快扶我我 (忌批忱快找 扭把快志抑扮快扶抉 志把快技攸 抉忪我忱忘扶我攸).
坏抖攸 扭抉忱忱快把忪抗我 扮我扳把抉志忘扶我攸 韓誥傭痔 忱抉抖忪快扶 忌抑找抆 扼抗抉技扭我抖我把抉志忘找抆 我 扼志攸戒忘扶 扼 扭抉 抗把忘抄扶快抄 技快把快 抉忱扶抉抄 抗把我扭找抉 忌我忌抖我抉找快抗抉抄:
坎我忌抖我抉找快抗忘 志抑忌我把忘快找扼攸 扭把我 扭抉技抉投我 抉扭扯我我 志 扼抗把我扭找快 "configure":
--with-mbedtls[=DIR]
--with-gnutls[=DIR]
--with-openssl[=DIR]
妖忘扭把我技快把, 折找抉忌抑 扼抗抉扶扳我忍批把我把抉志忘找抆 我扼抒抉忱扶抑快 抗抉忱抑 扼快把志快把忘 我 忘忍快扶找忘 扼 OpenSSL, 志抑 技抉忪快找快 我扼扭抉抖抆戒抉志忘找抆 折找抉-找抉 志把抉忱快:
./configure --enable-server --enable-agent --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2 --with-openssl
妙抉忪扶抉 扼抗抉技扭我抖我把抉志忘找抆 把忘戒扶抑快 抗抉技扭抉扶快扶找抑 韓誥傭痔 扼 把忘戒抖我折扶抑技我 抗把我扭找抉 忌我忌抖我抉找快抗忘技我 (扶忘扭把我技快把, 扼快把志快把 扼 OpenSSL, 忘忍快扶找 扼 GnuTLS).
圻扼抖我 志抑 扭抖忘扶我把批快找快 我扼扭抉抖抆戒抉志忘找抆 pre-shared 抗抖攻折我 (PSK) 把忘扼扼技抉找把我找快 志抉戒技抉忪扶抉扼找抆 我扼扭抉抖抆戒抉志忘扶我攸 忌我忌抖我抉找快抗 GnuTLS 我抖我 mbed TLS 扼 抗抉技扭抉扶快扶找忘技我 韓誥傭痔, 我扼扭抉抖抆戒批攻投我抒 PSK. 坎我忌抖我抉找快抗我 GnuTLS 我 mbed TLS 扭抉忱忱快把忪我志忘攻找 扶忘忌抉把抑 扮我扳把抉志 PSK 扼 (Perfect forward secrecy). OpenSSL 忌我忌抖我抉找快抗忘 (志快把扼我我 1.0.1, 1.0.2c) 扭抉忱忱快把忪我志忘快找 PSK, 扶抉 忱抉扼找批扭扶抑快 扶忘忌抉把抑 扮我扳把抉志 PSK 扶快 抉忌快扼扭快折我志忘攻找 妊抉志快把扮快扶扶批攻 扭把攸技批攻 扼快抗把快找扶抉扼找抆.
妊抉快忱我扶快扶我攸 志 韓誥傭痔 技抉忍批找 我扼扭抉抖抆戒抉志忘找抆:
妒技快快找扼攸 忱志忘 志忘忪扶抑抒 扭忘把忘技快找把忘, 抗抉找抉把抑快 我扼扭抉抖抆戒批攻找扼攸, 折找抉忌抑 批抗忘戒忘找抆 扮我扳把抉志忘扶我快 技快忪忱批 抗抉技扭抉扶快扶找忘技我 韓誥傭痔:
TLSConnect
TLSAccept
TLSConnect
戒忘忱忘快找 抗忘抗抉快 我扼扭抉抖抆戒抉志忘找抆 扮我扳把抉志忘扶我快 我 技抉忪快找 扭把我扶我技忘找抆 抉忱扶抉 我戒 3 戒扶忘折快扶我抄 (unencrypted
, PSK
, certificate
). TLSConnect
我扼扭抉抖抆戒批快找扼攸 志 扳忘抄抖忘抒 抗抉扶扳我忍批把忘扯我我 韓誥傭痔 扭把抉抗扼我 (志 忘抗找我志扶抉技 把快忪我技快 戒忘忱忘快找 找抉抖抆抗抉 扭抉忱抗抖攻折快扶我攸 抗 扼快把志快把批) 我 韓誥傭痔 agentd (扭把我 忘抗找我志扶抑抒 扭把抉志快把抗忘抒). 圾 志快忌-我扶找快把扳快抄扼快 韓誥傭痔 扭忘把忘技快找把 TLSConnect
攸志抖攸快找扼攸 改抗志我志忘抖快扶找抉技 扭抉抖攸 妤抉忱抗抖攻折快扶我攸 抗 批戒抖批 扼快找我 扼 志抗抖忘忱抗我 妖忘扼找把抉抄抗忘↙孝戒抖抑 扼快找我↙<抗忘抗抉抄-找抉 批戒快抖 扼快找我>↙宋我扳把抉志忘扶我快 我 扭抉抖攸 妤抉忱抗抖攻折快扶我攸 抗 扭把抉抗扼我 扼 志抗抖忘忱抗我 均忱技我扶我扼找把我把抉志忘扶我快↙妤把抉抗扼我↙<抗忘抗抉抄-找抉 扭把抉抗扼我>↙宋我扳把抉志忘扶我快. 圻扼抖我 扶忘扼找把抉快扶扶抑抄 找我扭 扮我扳把抉志忘扶我攸 忱抖攸 扼抉快忱我扶快扶我攸 戒忘志快把扮我找扼攸 扶快批忱忘折快抄, 忱把批忍我快 找我扭抑 扮我扳把抉志忘扶我攸 扶快 忌批忱批找 抉扭把抉忌抉志忘扶抑.
TLSAccept
戒忘忱忘快找 抗忘抗抉抄 找我扭 扼抉快忱我扶快扶我抄 把忘戒把快扮快扶 扭把我 志抒抉忱攸投我抒 扭抉忱抗抖攻折快扶我攸抒. 妥我扭 扭抉忱抗抖攻折快扶我抄: unencrypted
, PSK
, certificate
. 妙抉忪扶抉 批抗忘戒忘找抆 抉忱扶抉 我抖我 忌抉抖快快 戒扶忘折快扶我抄. TLSAccept
我扼扭抉抖抆戒批快找扼攸 志 扳忘抄抖忘抒 抗抉扶扳我忍批把忘扯我我 韓誥傭痔 扭把抉抗扼我 (志 扭忘扼扼我志扶抉技 把快忪我技快 戒忘忱忘快找 找抉抖抆抗抉 扼抉快忱我扶快扶我攸 扼 扼快把志快把忘) 我 韓誥傭痔 agentd (扭把我 扭忘扼扼我志扶抑抒 扭把抉志快把抗忘抒). 圾 志快忌-我扶找快把扳快抄扼快 韓誥傭痔 扭忘把忘技快找把 TLSAccept
攸志抖攸快找扼攸 改抗志我志忘抖快扶找抉技 扭抉抖攸 妊抉快忱我扶快扶我攸 扼 批戒抖忘 扼快找我 扼 志抗抖忘忱抗我 妖忘扼找把抉抄抗忘↙孝戒抖抑 扼快找我↙<抗忘抗抉抄-找抉 批戒快抖 扼快找我>↙宋我扳把抉志忘扶我快 我 扭抉抖攸 "妊抉快忱我扶快扶我攸 扼 扭把抉抗扼我" 扼 志抗抖忘忱抗我 均忱技我扶我扼找把我把抉志忘扶我快↙妤把抉抗扼我↙<抗忘抗抉抄-找抉 扭把抉抗扼我>↙宋我扳把抉志忘扶我快.
妞忘抗 扭把忘志我抖抉, 志抑 扶忘扼找把忘我志忘快找快 找抉抖抆抗抉 抉忱我扶 找我扭 扮我扳把抉志忘扶我攸 忱抖攸 志抒抉忱攸投我抒 扭抉忱抗抖攻折快扶我抄. 妖抉 志抑 技抉忪快找快 戒忘抒抉找我找快 扭快把快抗抖攻折我找抆 把快忪我技 扮我扳把抉志忘扶我攸, 扶忘扭把我技快把 扼 扶快戒忘扮我把抉志忘扶扶抉忍抉 扶忘 抉扼扶抉志忘扶扶抑抄 扶忘 扼快把找我扳我抗忘找忘抒 扼 技我扶我技忘抖抆扶抑技 志把快技快扶快技 扭把抉扼找抉攸 我 扼 志抉戒技抉忪扶抉扼找抆攻 抉找抗忘找忘. 坏抖攸 改找抉忍抉 志抑 技抉忪快找快 戒忘忱忘找抆 TLSAccept=unencrypted,cert
志 扳忘抄抖快 抗抉扶扳我忍批把忘扯我我 agentd 我 扭快把快戒忘扭批扼找我找抆 忘忍快扶找忘 韓誥傭痔.
妝忘找快技 志抑 技抉忪快找快 扭把抉找快扼找我把抉志忘找抆 扭抉忱抗抖攻折快扶我快 抉找 zabbix_get
抗 忘忍快扶找批, 我扼扭抉抖抆戒批攸 扼快把找我扳我抗忘找. 圻扼抖我 扭抉忱抗抖攻折快扶我快 把忘忌抉找忘快找, 志抑 技抉忪快找快 扭快把快扶忘扼找把抉我找抆 扮我扳把抉志忘扶我快 批 改找抉忍抉 忘忍快扶找忘 志 韓誥傭痔 志快忌-我扶找快把扳快抄扼快 扶忘 志抗抖忘忱抗快 妖忘扼找把抉抄抗忘↙孝戒抖抑 扼快找我↙<抗忘抗抉抄-找抉 批戒快抖 扼快找我>↙宋我扳把抉志忘扶我快, 扭快把快抗抖攻折我志 扶忘扼找把抉抄抗批 妤抉忱抗抖攻折快扶我攸 抗 批戒抖批 扼快找我 扶忘 "妊快把找我扳我抗忘找".
妞抉忍忱忘 抗改扮 抗抉扶扳我忍批把忘扯我我 扼快把志快把忘 抉忌扶抉志我找扼攸 (我 抗抉扶扳我忍批把忘扯我攸 扭把抉抗扼我 抉忌扶抉志我找扼攸, 快扼抖我 批戒快抖 扼快找我 扶忘忌抖攻忱忘快找扼攸 折快把快戒 扭把抉抗扼我), 找抉忍忱忘 扭抉忱抗抖攻折快扶我攸 抗 改找抉技批 忘忍快扶找批 忌批忱批找 戒忘扮我扳把抉志忘扶抑.
圻扼抖我 志扼忸 把忘忌抉找忘快找 抗忘抗 抉忪我忱忘快找扼攸, 志抑 技抉忪快找快 戒忘忱忘找抆 TLSAccept=cert
志 扳忘抄抖快 抗抉扶扳我忍批把忘扯我我 忘忍快扶找忘 我 扭快把快戒忘扭批扼找我找抆 韓誥傭痔 忘忍快扶找忘.
妥快扭快把抆 忘忍快扶找 忌批忱快找 扭把我扶我技忘找抆 找抉抖抆抗抉 戒忘扮我扳把抉志忘扶扶抑快 扭抉忱抗抖攻折快扶我攸 扶忘 抉扼扶抉志快 扼快把找我扳我抗忘找抉志. 妖快戒忘扮我扳把抉志忘扶扶抑快 我 抉扼扶抉志忘扶扶抑快 扶忘 PSK 扭抉忱抗抖攻折快扶我攸 忌批忱批找 抉找抗抖抉扶快扶抑.
宋我扳把抉志忘扶我快 扶忘 扼快把志快把快 我 扭把抉抗扼我 把忘忌抉找忘快找 忘扶忘抖抉忍我折扶抑技 抉忌把忘戒抉技. 圻扼抖我 志 志快忌-我扶找快把扳快抄扼快 韓誥傭痔 志 扶忘扼找把抉抄抗快 批戒抖忘 扼快找我 妊抉快忱我扶快扶我攸 扼 批戒抖忘 扼快找我 戒忘忱忘扶抉 把忘志扶抑技 "妊快把找我扳我抗忘找", 找抉忍忱忘 抉找 忘忍快扶找忘 (忘抗找我志扶抑快 扭把抉志快把抗我) 我 zabbix_sender
(找把忘扭扭快把 改抖快技快扶找抑 忱忘扶扶抑抒) 忌批忱批找 扭把我扶我技忘找抆扼攸 找抉抖抆抗抉 戒忘扮我扳把抉志忘扶扶抑快 扼抉快忱我扶快扶我攸 扶忘 抉扼扶抉志快 扼快把找我扳我抗忘找抉志.
妊抗抉把快快 志扼快忍抉 志抑 扶忘扼找把抉我找快 志抒抉忱攸投我快 我 我扼抒抉忱攸投我快 扼抉快忱我扶快扶我攸 扶忘 我扼扭抉抖抆戒抉志忘扶我快 抉忱扶抉忍抉 找我扭忘 扮我扳把抉志忘扶我攸 我抖我 忌快戒 扮我扳把抉志忘扶我攸 志抉志扼快. 妖抉, 找快抒扶我折快扼抗我, 我技快快找扼攸 志抉戒技抉忪扶抉扼找抆 扶忘扼找把抉我找抆 扮我扳把抉志忘扶我快 忘扼我技技快找把我折扶抉, 扶忘扭把我技快把, 扮我扳把抉志忘扶我快 扶忘 抉扼扶抉志快 扼快把找我扳我抗忘找抉志 忱抖攸 志抒抉忱攸投我抒 扭抉忱抗抖攻折快扶我抄 我 扶忘 抉扼扶抉志快 PSK 忱抖攸 我扼抒抉忱攸投我抒 扭抉忱抗抖攻折快扶我抄.
妍忌戒抉把扶抑快 扶忘扼找把抉抄抗我 扮我扳把抉志忘扶我攸 抉找抉忌把忘忪忘攻找扼攸 志 志快忌-我扶找快把扳快抄扼快 韓誥傭痔 妖忘扼找把抉抄抗忘↙孝戒抖抑 扼快找我 扭抉 抗忘忪忱抉技批 批戒抖批 扼快找我 扭抉 扭把忘志抉抄 扼找抉把抉扶快, 志 抗抉抖抉扶抗快 宋妒孜妓妍圾均妖妒圻 均坐圻妖妥均. 妤把我技快把抑 抉找抉忌把忘忪快扶我攸 扶忘扼找把抉快抗:
妤把我技快把 | 妤抉忱抗抖攻折快扶我攸 妞 批戒抖批 扼快找我 | 妓忘戒把快扮快扶扶抑快 扭抉忱抗抖攻折快扶我攸 妍妥 批戒抖忘 扼快找我 | 妍找抗抖抉扶快扶扶抑快 扭抉忱抗抖攻折快扶我攸 妊 批戒抖忘 扼快找我 |
---|---|---|---|
![]() |
妖快戒忘扮我扳把抉志忘扶抉 | 妖快戒忘扮我扳把抉志忘扶抉 | 妝忘扮我扳把抉志忘扶抉 扶忘 抉扼扶抉志快 扼快把找我扳我抗忘找忘 我 PSK |
![]() |
妝忘扮我扳把抉志忘扶抉, 扶忘 抉扼扶抉志快 扼快把找我扳我抗忘找忘 | 妝忘扮我扳把抉志忘扶抉, 扶忘 抉扼扶抉志快 扼快把找我扳我抗忘找忘 | 妖快戒忘扮我扳把抉志忘扶抉 我 扶忘 抉扼扶抉志快 PSK |
![]() |
妝忘扮我扳把抉志忘扶抉 扶忘 抉扼扶抉志快 PSK | 妝忘扮我扳把抉志忘扶抉 扶忘 抉扼扶抉志快 PSK | 妖快戒忘扮我扳把抉志忘扶抉 我 扶忘 抉扼扶抉志快 扼快把找我扳我抗忘找忘 |
![]() |
妝忘扮我扳把抉志忘扶抉 扶忘 抉扼扶抉志快 PSK | 妖快戒忘扮我扳把抉志忘扶抉 我 戒忘扮我扳把抉志忘扶抉 扶忘 抉扼扶抉志快 PSK | 妖忘 抉扼扶抉志快 扼快把找我扳我抗忘找忘 |
![]() |
妝忘扮我扳把抉志忘扶抉 扶忘 抉扼扶抉志快 扼快把找我扳我抗忘找忘 | 妖快戒忘扮我扳把抉志忘扶抉 扶忘 抉扼扶抉志快 PSK 我抖我 戒忘扮我扳把抉志忘扶抉 扶忘 抉扼扶抉志快 扼快把找我扳我抗忘找忘 | - |
妤抉 批技抉抖折忘扶我攻 我扼扭抉抖抆戒批攻找扼攸 扶快戒忘扮我扳把抉志忘扶扶抑快 扭抉忱抗抖攻折快扶我攸. 宋我扳把抉志忘扶我快 扶快抉忌抒抉忱我技抉 扶忘扼找把忘我志忘找抆 扭抉 抗忘忪忱抉技批 批戒抖批 扼快找我 我 扭把抉抗扼我 抉找忱快抖抆扶抉.
妊技抉找把我找快 扼找把忘扶我扯抑 扭抉技抉投我 zabbix_get 我 zabbix_sender 扭抉 我扼扭抉抖抆戒抉志忘扶我攻 改找我抒 批找我抖我找 扭把我 扶忘抖我折我我 扮我扳把抉志忘扶我攸.
均抖忍抉把我找技抑 抗抉扶扳我忍批把我把批攻找扼攸 志扶批找把我 志 扭把抉扯快扼扼快 戒忘扭批扼抗忘 韓誥傭痔 我 戒忘志我扼攸找 抉找 抗把我扭找抉 忌我忌抖我抉找快抗我, 志 扶忘扼找抉攸投快快 志把快技攸 忘抖忍抉把我找技抑 扶快抖抆戒攸 扶忘扼找把忘我志忘找抆 扭抉抖抆戒抉志忘找快抖攸技我.
妖忘扼找把抉快扶扶抑快 忘抖忍抉把我找技抑 扮我扳把抉志忘扶我攸 扭抉 找我扭批 忌我忌抖我找快抗我 扼 忌抉抖快快 志抑扼抉抗抉忍抉 批把抉志扶攸 抗 扶我戒抗抉技批 批把抉志扶攻:
坎我忌抖我抉找快抗忘 | 均抖忍抉把我找技抑 扮我扳把抉志忘扶我攸 扼快把找我扳我抗忘找抉志 | 均抖忍抉把我找技抑 扮我扳把抉志忘扶我攸 PSK |
---|---|---|
mbed TLS (PolarSSL) 1.3.9 | TLS-ECDHE-RSA-WITH-AES-128-GCM-SHA256 TLS-ECDHE-RSA-WITH-AES-128-CBC-SHA256 TLS-ECDHE-RSA-WITH-AES-128-CBC-SHA TLS-RSA-WITH-AES-128-GCM-SHA256 TLS-RSA-WITH-AES-128-CBC-SHA256 TLS-RSA-WITH-AES-128-CBC-SHA |
TLS-ECDHE-PSK-WITH-AES-128-CBC-SHA256 TLS-ECDHE-PSK-WITH-AES-128-CBC-SHA TLS-PSK-WITH-AES-128-GCM-SHA256 TLS-PSK-WITH-AES-128-CBC-SHA256 TLS-PSK-WITH-AES-128-CBC-SHA |
GnuTLS 3.1.18 | TLS_ECDHE_RSA_AES_128_GCM_SHA256 TLS_ECDHE_RSA_AES_128_CBC_SHA256 TLS_ECDHE_RSA_AES_128_CBC_SHA1 TLS_RSA_AES_128_GCM_SHA256 TLS_RSA_AES_128_CBC_SHA256 TLS_RSA_AES_128_CBC_SHA1 |
TLS_ECDHE_PSK_AES_128_CBC_SHA256 TLS_ECDHE_PSK_AES_128_CBC_SHA1 TLS_PSK_AES_128_GCM_SHA256 TLS_PSK_AES_128_CBC_SHA256 TLS_PSK_AES_128_CBC_SHA1 |
OpenSSL 1.0.2c | ECDHE-RSA-AES128-GCM-SHA256 ECDHE-RSA-AES128-SHA256 ECDHE-RSA-AES128-SHA AES128-GCM-SHA256 AES128-SHA256 AES128-SHA |
PSK-AES128-CBC-SHA |
OpenSSL 1.1.0 | ECDHE-RSA-AES128-GCM-SHA256 ECDHE-RSA-AES128-SHA256 ECDHE-RSA-AES128-SHA AES128-GCM-SHA256 AES128-CCM8 AES128-CCM AES128-SHA256 AES128-SHA |
ECDHE-PSK-AES128-CBC-SHA256 ECDHE-PSK-AES128-CBC-SHA PSK-AES128-GCM-SHA256 PSK-AES128-CCM8 PSK-AES128-CCM PSK-AES128-CBC-SHA256 PSK-AES128-CBC-SHA |
均抖忍抉把我找技抑 扮我扳把抉志忘扶我攸 扭把我 我扼扭抉抖抆戒抉志忘扶我我 扼快把找我扳我抗忘找抉志:
TLS 扼快把志快把 | |||
TLS 抗抖我快扶找 | mbed TLS (PolarSSL) | GnuTLS | OpenSSL 1.0.2 |
mbed TLS (PolarSSL) | TLS-ECDHE-RSA-WITH-AES-128-GCM-SHA256 | TLS-ECDHE-RSA-WITH-AES-128-GCM-SHA256 | TLS-ECDHE-RSA-WITH-AES-128-GCM-SHA256 |
GnuTLS | TLS-ECDHE-RSA-WITH-AES-128-GCM-SHA256 | TLS-ECDHE-RSA-WITH-AES-128-GCM-SHA256 | TLS-ECDHE-RSA-WITH-AES-128-GCM-SHA256 |
OpenSSL 1.0.2 | TLS-ECDHE-RSA-WITH-AES-128-GCM-SHA256 | TLS-ECDHE-RSA-WITH-AES-128-GCM-SHA256 | TLS-ECDHE-RSA-WITH-AES-128-GCM-SHA256 |
均抖忍抉把我找技抑 扮我扳把抉志忘扶我攸 扭把我 我扼扭抉抖抆戒抉志忘扶我我 PSK:
TLS 扼快把志快把 | |||
TLS 抗抖我快扶找 | mbed TLS (PolarSSL) | GnuTLS | OpenSSL 1.0.2 |
mbed TLS (PolarSSL) | TLS-ECDHE-PSK-WITH-AES-128-CBC-SHA256 | TLS-ECDHE-PSK-WITH-AES-128-CBC-SHA256 | TLS-PSK-WITH-AES-128-CBC-SHA |
GnuTLS | TLS-ECDHE-PSK-WITH-AES-128-CBC-SHA256 | TLS-ECDHE-PSK-WITH-AES-128-CBC-SHA256 | TLS-PSK-WITH-AES-128-CBC-SHA |
OpenSSL 1.0.2 | TLS-PSK-WITH-AES-128-CBC-SHA | TLS-PSK-WITH-AES-128-CBC-SHA | TLS-PSK-WITH-AES-128-CBC-SHA |
The built-in ciphersuite selection criteria can be overridden with user-configured ciphersuites.
User-configured ciphersuites is a feature intended for advanced users who understand TLS ciphersuites, their security and consequences of mistakes, and who are comfortable with TLS troubleshooting.
The built-in ciphersuite selection criteria can be overridden using the following parameters:
Override scope | Parameter | Value | Description |
---|---|---|---|
Ciphersuite selection for certificates | TLSCipherCert13 | Valid OpenSSL 1.1.1 for TLS 1.3 protocol (their values are passed to the OpenSSL function SSL_CTX_set_ciphersuites()). | Certificate-based ciphersuite selection criteria for TLS 1.3 Only OpenSSL 1.1.1 or newer. |
TLSCipherCert | Valid OpenSSL for TLS 1.2 or valid GnuTLS . Their values are passed to the SSL_CTX_set_cipher_list() or gnutls_priority_init() functions, respectively. | Certificate-based ciphersuite selection criteria for TLS 1.2/1.3 (GnuTLS), TLS 1.2 (OpenSSL) | |
Ciphersuite selection for PSK | TLSCipherPSK13 | Valid OpenSSL 1.1.1 for TLS 1.3 protocol (their values are passed to the OpenSSL function SSL_CTX_set_ciphersuites()). | PSK-based ciphersuite selection criteria for TLS 1.3 Only OpenSSL 1.1.1 or newer. |
TLSCipherPSK | Valid OpenSSL for TLS 1.2 or valid GnuTLS . Their values are passed to the SSL_CTX_set_cipher_list() or gnutls_priority_init() functions, respectively. | PSK-based ciphersuite selection criteria for TLS 1.2/1.3 (GnuTLS), TLS 1.2 (OpenSSL) | |
Combined ciphersuite list for certificate and PSK | TLSCipherAll13 | Valid OpenSSL 1.1.1 for TLS 1.3 protocol (their values are passed to the OpenSSL function SSL_CTX_set_ciphersuites()). | Ciphersuite selection criteria for TLS 1.3 Only OpenSSL 1.1.1 or newer. |
TLSCipherAll | Valid OpenSSL for TLS 1.2 or valid GnuTLS . Their values are passed to the SSL_CTX_set_cipher_list() or gnutls_priority_init() functions, respectively. | Ciphersuite selection criteria for TLS 1.2/1.3 (GnuTLS), TLS 1.2 (OpenSSL) |
To override the ciphersuite selection in zabbix_get and zabbix_sender utilities - use the command-line parameters:
--tls-cipher13
--tls-cipher
The new parameters are optional. If a parameter is not specified, the internal default value is used. If a parameter is defined it cannot be empty.
If the setting of a TLSCipher* value in the crypto library fails then the server, proxy or agent will not start and an error is logged.
It is important to understand when each parameter is applicable.
The simplest case is outgoing connections:
--tls-cipher13
and --tls-cipher
can be used (encryption is unambiguously specified with a --tls-connect
parameter)It is a bit more complicated with incoming connections because rules are specific for components and configuration.
For 韓誥傭痔 agent:
Agent connection setup | Cipher configuration |
---|---|
TLSConnect=cert | TLSCipherCert, TLSCipherCert13 |
TLSConnect=psk | TLSCipherPSK, TLSCipherPSK13 |
TLSAccept=cert | TLSCipherCert, TLSCipherCert13 |
TLSAccept=psk | TLSCipherPSK, TLSCipherPSK13 |
TLSAccept=cert,psk | TLSCipherAll, TLSCipherAll13 |
For 韓誥傭痔 server and ** proxy**:
Connection setup | Cipher configuration |
---|---|
Outgoing connections using PSK | TLSCipherPSK, TLSCipherPSK13 |
Incoming connections using certificates | TLSCipherAll, TLSCipherAll13 |
Incoming connections using PSK if server has no certificate | TLSCipherPSK, TLSCipherPSK13 |
Incoming connections using PSK if server has certificate | TLSCipherAll, TLSCipherAll13 |
Some pattern can be seen in the two tables above:
The following tables show the TLSCipher*
built-in default values. They could be a good starting point for your own custom values.
Parameter | GnuTLS 3.6.12 |
---|---|
TLSCipherCert | NONE:+VERS-TLS1.2:+ECDHE-RSA:+RSA:+AES-128-GCM:+AES-128-CBC:+AEAD:+SHA256:+SHA1:+CURVE-ALL:+COMP-NULL:+SIGN-ALL:+CTYPE-X.509 |
TLSCipherPSK | NONE:+VERS-TLS1.2:+ECDHE-PSK:+PSK:+AES-128-GCM:+AES-128-CBC:+AEAD:+SHA256:+SHA1:+CURVE-ALL:+COMP-NULL:+SIGN-ALL |
TLSCipherAll | NONE:+VERS-TLS1.2:+ECDHE-RSA:+RSA:+ECDHE-PSK:+PSK:+AES-128-GCM:+AES-128-CBC:+AEAD:+SHA256:+SHA1:+CURVE-ALL:+COMP-NULL:+SIGN-ALL:+CTYPE-X.509 |
Parameter | OpenSSL 1.1.1d 1 |
---|---|
TLSCipherCert13 | |
TLSCipherCert | EECDH+aRSA+AES128:RSA+aRSA+AES128 |
TLSCipherPSK13 | TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256 |
TLSCipherPSK | kECDHEPSK+AES128:kPSK+AES128 |
TLSCipherAll13 | |
TLSCipherAll | EECDH+aRSA+AES128:RSA+aRSA+AES128:kECDHEPSK+AES128:kPSK+AES128 |
1 Default values are different for older OpenSSL versions (1.0.1, 1.0.2, 1.1.0), for LibreSSL and if OpenSSL is compiled without PSK support.
** Examples of user-configured ciphersuites **
See below the following examples of user-configured ciphersuites:
To see which ciphersuites have been selected you need to set 'DebugLevel=4' in the configuration file, or use the -vv
option for zabbix_sender.
Some experimenting with TLSCipher*
parameters might be necessary before you get the desired ciphersuites. It is inconvenient to restart 韓誥傭痔 server, proxy or agent multiple times just to tweak TLSCipher*
parameters. More convenient options are using zabbix_sender or the openssl
command. Let's show both.
1. Using zabbix_sender.
Let's make a test configuration file, for example /home/zabbix/test.conf, with the syntax of a zabbix_agentd.conf file:
Hostname=nonexisting
ServerActive=nonexisting
TLSConnect=cert
TLSCAFile=/home/zabbix/ca.crt
TLSCertFile=/home/zabbix/agent.crt
TLSKeyFile=/home/zabbix/agent.key
TLSPSKIdentity=nonexisting
TLSPSKFile=/home/zabbix/agent.psk
You need valid CA and agent certificates and PSK for this example. Adjust certificate and PSK file paths and names for your environment.
If you are not using certificates, but only PSK, you can make a simpler test file:
Hostname=nonexisting
ServerActive=nonexisting
TLSConnect=psk
TLSPSKIdentity=nonexisting
TLSPSKFile=/home/zabbix/agentd.psk
The selected ciphersuites can be seen by running zabbix_sender (example compiled with OpenSSL 1.1.d):
$ zabbix_sender -vv -c /home/zabbix/test.conf -k nonexisting_item -o 1 2>&1 | grep ciphersuites
zabbix_sender [41271]: DEBUG: zbx_tls_init_child() certificate ciphersuites: TLS_AES_256_GCM_SHA384 TLS_CHACHA20_POLY1305_SHA256 TLS_AES_128_GCM_SHA256 ECDHE-RSA-AES128-GCM-SHA256 ECDHE-RSA-AES128-SHA256 ECDHE-RSA-AES128-SHA AES128-GCM-SHA256 AES128-CCM8 AES128-CCM AES128-SHA256 AES128-SHA
zabbix_sender [41271]: DEBUG: zbx_tls_init_child() PSK ciphersuites: TLS_CHACHA20_POLY1305_SHA256 TLS_AES_128_GCM_SHA256 ECDHE-PSK-AES128-CBC-SHA256 ECDHE-PSK-AES128-CBC-SHA PSK-AES128-GCM-SHA256 PSK-AES128-CCM8 PSK-AES128-CCM PSK-AES128-CBC-SHA256 PSK-AES128-CBC-SHA
zabbix_sender [41271]: DEBUG: zbx_tls_init_child() certificate and PSK ciphersuites: TLS_AES_256_GCM_SHA384 TLS_CHACHA20_POLY1305_SHA256 TLS_AES_128_GCM_SHA256 ECDHE-RSA-AES128-GCM-SHA256 ECDHE-RSA-AES128-SHA256 ECDHE-RSA-AES128-SHA AES128-GCM-SHA256 AES128-CCM8 AES128-CCM AES128-SHA256 AES128-SHA ECDHE-PSK-AES128-CBC-SHA256 ECDHE-PSK-AES128-CBC-SHA PSK-AES128-GCM-SHA256 PSK-AES128-CCM8 PSK-AES128-CCM PSK-AES128-CBC-SHA256 PSK-AES128-CBC-SHA
Here you see the ciphersuites selected by default. These default values are chosen to ensure interoperability with 韓誥傭痔 agents running on systems with older OpenSSL versions (from 1.0.1).
With newer systems you can choose to tighten security by allowing only a few ciphersuites, e.g. only ciphersuites with PFS (Perfect Forward Secrecy). Let's try to allow only ciphersuites with PFS using TLSCipher*
parameters.
The result will not be interoperable with systems using OpenSSL 1.0.1 and 1.0.2, if PSK is used. Certificate-based encryption should work.
Add two lines to the test.conf
configuration file:
and test again:
$ zabbix_sender -vv -c /home/zabbix/test.conf -k nonexisting_item -o 1 2>&1 | grep ciphersuites
zabbix_sender [42892]: DEBUG: zbx_tls_init_child() certificate ciphersuites: TLS_AES_256_GCM_SHA384 TLS_CHACHA20_POLY1305_SHA256 TLS_AES_128_GCM_SHA256 ECDHE-RSA-AES128-GCM-SHA256 ECDHE-RSA-AES128-SHA256 ECDHE-RSA-AES128-SHA
zabbix_sender [42892]: DEBUG: zbx_tls_init_child() PSK ciphersuites: TLS_CHACHA20_POLY1305_SHA256 TLS_AES_128_GCM_SHA256 ECDHE-PSK-AES128-CBC-SHA256 ECDHE-PSK-AES128-CBC-SHA
zabbix_sender [42892]: DEBUG: zbx_tls_init_child() certificate and PSK ciphersuites: TLS_AES_256_GCM_SHA384 TLS_CHACHA20_POLY1305_SHA256 TLS_AES_128_GCM_SHA256 ECDHE-RSA-AES128-GCM-SHA256 ECDHE-RSA-AES128-SHA256 ECDHE-RSA-AES128-SHA AES128-GCM-SHA256 AES128-CCM8 AES128-CCM AES128-SHA256 AES128-SHA ECDHE-PSK-AES128-CBC-SHA256 ECDHE-PSK-AES128-CBC-SHA PSK-AES128-GCM-SHA256 PSK-AES128-CCM8 PSK-AES128-CCM PSK-AES128-CBC-SHA256 PSK-AES128-CBC-SHA
The "certificate ciphersuites" and "PSK ciphersuites" lists have changed - they are shorter than before, only containing TLS 1.3 ciphersuites and TLS 1.2 ECDHE-* ciphersuites as expected.
2. TLSCipherAll and TLSCipherAll13 cannot be tested with zabbix_sender; they do not affect "certificate and PSK ciphersuites" value shown in the example above. To tweak TLSCipherAll and TLSCipherAll13 you need to experiment with the agent, proxy or server.
So, to allow only PFS ciphersuites you may need to add up to three parameters
TLSCipherCert=EECDH+aRSA+AES128
TLSCipherPSK=kECDHEPSK+AES128
TLSCipherAll=EECDH+aRSA+AES128:kECDHEPSK+AES128
to zabbix_agentd.conf, zabbix_proxy.conf and zabbix_server_conf if each of them has a configured certificate and agent has also PSK.
If your 韓誥傭痔 environment uses only PSK-based encryption and no certificates, then only one:
Now that you understand how it works you can test the ciphersuite selection even outside of 韓誥傭痔, with the openssl
command. Let's test all three TLSCipher*
parameter values:
$ openssl ciphers EECDH+aRSA+AES128 | sed 's/:/ /g'
TLS_AES_256_GCM_SHA384 TLS_CHACHA20_POLY1305_SHA256 TLS_AES_128_GCM_SHA256 ECDHE-RSA-AES128-GCM-SHA256 ECDHE-RSA-AES128-SHA256 ECDHE-RSA-AES128-SHA
$ openssl ciphers kECDHEPSK+AES128 | sed 's/:/ /g'
TLS_AES_256_GCM_SHA384 TLS_CHACHA20_POLY1305_SHA256 TLS_AES_128_GCM_SHA256 ECDHE-PSK-AES128-CBC-SHA256 ECDHE-PSK-AES128-CBC-SHA
$ openssl ciphers EECDH+aRSA+AES128:kECDHEPSK+AES128 | sed 's/:/ /g'
TLS_AES_256_GCM_SHA384 TLS_CHACHA20_POLY1305_SHA256 TLS_AES_128_GCM_SHA256 ECDHE-RSA-AES128-GCM-SHA256 ECDHE-RSA-AES128-SHA256 ECDHE-RSA-AES128-SHA ECDHE-PSK-AES128-CBC-SHA256 ECDHE-PSK-AES128-CBC-SHA
You may prefer openssl ciphers
with option -V
for a more verbose output:
$ openssl ciphers -V EECDH+aRSA+AES128:kECDHEPSK+AES128
0x13,0x02 - TLS_AES_256_GCM_SHA384 TLSv1.3 Kx=any Au=any Enc=AESGCM(256) Mac=AEAD
0x13,0x03 - TLS_CHACHA20_POLY1305_SHA256 TLSv1.3 Kx=any Au=any Enc=CHACHA20/POLY1305(256) Mac=AEAD
0x13,0x01 - TLS_AES_128_GCM_SHA256 TLSv1.3 Kx=any Au=any Enc=AESGCM(128) Mac=AEAD
0xC0,0x2F - ECDHE-RSA-AES128-GCM-SHA256 TLSv1.2 Kx=ECDH Au=RSA Enc=AESGCM(128) Mac=AEAD
0xC0,0x27 - ECDHE-RSA-AES128-SHA256 TLSv1.2 Kx=ECDH Au=RSA Enc=AES(128) Mac=SHA256
0xC0,0x13 - ECDHE-RSA-AES128-SHA TLSv1 Kx=ECDH Au=RSA Enc=AES(128) Mac=SHA1
0xC0,0x37 - ECDHE-PSK-AES128-CBC-SHA256 TLSv1 Kx=ECDHEPSK Au=PSK Enc=AES(128) Mac=SHA256
0xC0,0x35 - ECDHE-PSK-AES128-CBC-SHA TLSv1 Kx=ECDHEPSK Au=PSK Enc=AES(128) Mac=SHA1
Similarly, you can test the priority strings for GnuTLS:
$ gnutls-cli -l --priority=NONE:+VERS-TLS1.2:+ECDHE-RSA:+AES-128-GCM:+AES-128-CBC:+AEAD:+SHA256:+CURVE-ALL:+COMP-NULL:+SIGN-ALL:+CTYPE-X.509
Cipher suites for NONE:+VERS-TLS1.2:+ECDHE-RSA:+AES-128-GCM:+AES-128-CBC:+AEAD:+SHA256:+CURVE-ALL:+COMP-NULL:+SIGN-ALL:+CTYPE-X.509
TLS_ECDHE_RSA_AES_128_GCM_SHA256 0xc0, 0x2f TLS1.2
TLS_ECDHE_RSA_AES_128_CBC_SHA256 0xc0, 0x27 TLS1.2
Protocols: VERS-TLS1.2
Ciphers: AES-128-GCM, AES-128-CBC
MACs: AEAD, SHA256
Key Exchange Algorithms: ECDHE-RSA
Groups: GROUP-SECP256R1, GROUP-SECP384R1, GROUP-SECP521R1, GROUP-X25519, GROUP-X448, GROUP-FFDHE2048, GROUP-FFDHE3072, GROUP-FFDHE4096, GROUP-FFDHE6144, GROUP-FFDHE8192
PK-signatures: SIGN-RSA-SHA256, SIGN-RSA-PSS-SHA256, SIGN-RSA-PSS-RSAE-SHA256, SIGN-ECDSA-SHA256, SIGN-ECDSA-SECP256R1-SHA256, SIGN-EdDSA-Ed25519, SIGN-RSA-SHA384, SIGN-RSA-PSS-SHA384, SIGN-RSA-PSS-RSAE-SHA384, SIGN-ECDSA-SHA384, SIGN-ECDSA-SECP384R1-SHA384, SIGN-EdDSA-Ed448, SIGN-RSA-SHA512, SIGN-RSA-PSS-SHA512, SIGN-RSA-PSS-RSAE-SHA512, SIGN-ECDSA-SHA512, SIGN-ECDSA-SECP521R1-SHA512, SIGN-RSA-SHA1, SIGN-ECDSA-SHA1
韓誥傭痔 uses AES128 as the built-in default for data. Let's assume you are using certificates and want to switch to AES256, on OpenSSL 1.1.1.
This can be achieved by adding the respective parameters in zabbix_server.conf
:
TLSCAFile=/home/zabbix/ca.crt
TLSCertFile=/home/zabbix/server.crt
TLSKeyFile=/home/zabbix/server.key
TLSCipherCert13=TLS_AES_256_GCM_SHA384
TLSCipherCert=EECDH+aRSA+AES256:-SHA1:-SHA384
TLSCipherPSK13=TLS_CHACHA20_POLY1305_SHA256
TLSCipherPSK=kECDHEPSK+AES256:-SHA1
TLSCipherAll13=TLS_AES_256_GCM_SHA384
TLSCipherAll=EECDH+aRSA+AES256:-SHA1:-SHA384
Although only certificate-related ciphersuites will be used, TLSCipherPSK*
parameters are defined as well to avoid their default values which include less secure ciphers for wider interoperability. PSK ciphersuites cannot be completely disabled on server/proxy.
And in zabbix_agentd.conf
: