Zabbix Documentation 4.4

3.04.04.4 (current)| In development:5.0 (devel)| Unsupported:1.82.02.22.43.23.44.2Guidelines

User Tools

Site Tools


ru:manual:encryption:using_certificates

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Last revision Both sides next revision
ru:manual:encryption:using_certificates [2018/06/11 08:47]
natalja.cernohajeva
ru:manual:encryption:using_certificates [2018/10/19 10:08]
127.0.0.1 external edit
Line 1: Line 1:
-==== - #1 Использование сертификатов ====+==== 1 Использование сертификатов ====
  
 === Обзор === === Обзор ===
  
-Zabbix может использовать RSA сертификаты в формате PEM, подписанные центром сертификации (CA). Проверка сертификата выполняется в отношении с предустановленным CA сертификатом. Самоподписанные сертификаты не поддерживаются. Опционально можно использовать списки отзывов сертификатов (CRL). Каждый компонент Zabbix может иметь только один настроенный сертификат.+Zabbix может использовать RSA сертификаты в формате PEM, подписанные ​публичным или внутренним ​центром сертификации (CA). Проверка сертификата выполняется в отношении с заранее подготовленным CA сертификатом. Опционально можно использовать списки отзывов сертификатов (CRL). Каждый компонент Zabbix может иметь только один настроенный сертификат.
  
-Для получения более подробной информации о том как настроить и управлять внутренним CA, как генерировать запросы на сертификаты и подписывать их, как отзывать сертификаты,​ всё это вы можете найти в большом количестве различных руководств в интернет, например,​ [[http://​pki-tutorial.readthedocs.org/​en/​latest/​|OpenSSL PKI Tutorial v1.1]]+Для получения более подробной информации о том как настроить и управлять внутренним CA, как генерировать запросы на сертификаты и подписывать их, как отзывать сертификаты,​ всё это вы можете найти в большом количестве различных руководств в сети, например,​ [[http://​pki-tutorial.readthedocs.org/​en/​latest/​|OpenSSL PKI Tutorial v1.1]].
- +
-=== Ограничения при использовании расширений X.509 v3 сертификатов === +
- +
-  * Расширение **Альтернативное имя темы (//​subjectAltName//​)**. \\ Альтернативные имена тем из //​subjectAltName//​ расширения (такие как IP адрес, e-mail адрес) не поддерживаются Zabbix. В Zabbix проверяется только значение поля "​Тема"​ (смотри [[ru/​manual/​encryption/​using_certificates#​ограничение_разрешенных_эмитента_и_темы_сертификата|Ограничение разрешенных Эмитента и Темы сертификата]]). \\ Если сертификат использует //​subjectAltName//​ расширение,​ тогда результат зависит от конкретной комбинации наборов инструментов криптографии с которыми скомпилированы компоненты Zabbix (это расширение может работать,​ а может и не работать,​ Zabbix может отказаться принимать такие сертификаты от узлов). +
-  * Расширение **Использование Расширенного Ключа**. \\ Если используется,​ то, как правило,​ необходимо указывать как //​clientAuth//​ (TLS WWW аутентификация клиента),​ так и  //​serverAuth//​ (TLS WWW аутентификация сервера). \\ Например,​ при пассивных проверках Zabbix агент выступает в роли TLS сервера,​ таким образом необходимо указать //​serverAuth//​ в сертификате агента. При активных проверках в сертификате агента необходимо задать //​clientAuth//​. \\ //GnuTLS// выводит предупреждение в случае нарушения использования ключа, но разрешает продолжение соединения. +
-  * Расширение **Ограничения Имени**. \\ Не все наборы инструментов криптографии поддерживают его. Это расширение может помешать Zabbix в загрузке CA сертификатов,​ где этот раздел промаркирован как //​критический//​ (зависит от конкретного набора инструментов криптографии).+
  
 +Тщательно продумывайте и тестируйте ваши расширения сертификатов - смотри [[ru:​manual:​encryption/​using_certificates#​ограничения_при_использовании_расширений_X509_v3_сертификатов|Ограничения при использовании расширений X.509 v3 сертификатов]].
 === Параметры настройки сертификатов === === Параметры настройки сертификатов ===
  
 ^Параметр^Обязателен^Описание^ ^Параметр^Обязателен^Описание^
 |//​TLSCAFile// ​ |  *  | Абсолютный путь к файлу, который содержит сертификаты верхнего уровня CA(и) для верификации сертификата узла. При наличии цепочки сертификатов с несколькими членами,​ они должны быть отсортированы:​ сначала следуют сертификаты CA низкого уровня за сертификатами более высокого уровня CA(и). Сертификаты из нескольких CA(и) можно включать в один файл. | |//​TLSCAFile// ​ |  *  | Абсолютный путь к файлу, который содержит сертификаты верхнего уровня CA(и) для верификации сертификата узла. При наличии цепочки сертификатов с несколькими членами,​ они должны быть отсортированы:​ сначала следуют сертификаты CA низкого уровня за сертификатами более высокого уровня CA(и). Сертификаты из нескольких CA(и) можно включать в один файл. |
-|//​TLSCRLFile//​ |     | Абсолютный путь к файлу, который содержит списки отозванных сертификатов. Смотрите заметки в [[ru:​manual:​encryption#​списки_отозванных_сертификатов_crl|Списки отозванных сертификатов (CRL)]]. | +|//​TLSCRLFile//​ |     | Абсолютный путь к файлу, который содержит списки отозванных сертификатов. Смотрите заметки в [[ru:​manual:​encryption/​using_certificates#​списки_отозванных_сертификатов_crl|Списки отозванных сертификатов (CRL)]]. | 
-|//​TLSCertFile//​ |  *  | Абсолютный путь к файлу, который содержит сертификат (цепочку сертификатов). |+|//​TLSCertFile//​ |  *  | Абсолютный путь к файлу, который содержит сертификат (цепочку сертификатов).\\ В случае цепочки сертификатов с несколькими членами они должны быть отсортированы:​ сначала сервер,​ прокси или агент, с последующими CA сертификатами низкого уровня и затем CA сертификаты более высокого уровня. |
 |//​TLSKeyFile// ​ |  *  | Абсолютный путь к файлу, который содержит приватный ключ. Задайте права доступа к этому файлу - он должен быть доступен для чтения только пользователю Zabbix. | |//​TLSKeyFile// ​ |  *  | Абсолютный путь к файлу, который содержит приватный ключ. Задайте права доступа к этому файлу - он должен быть доступен для чтения только пользователю Zabbix. |
 |//​TLSServerCertIssuer// ​  ​| ​    | Разрешенный эмитент сертификата сервера. ​ | |//​TLSServerCertIssuer// ​  ​| ​    | Разрешенный эмитент сертификата сервера. ​ |
-|//​TLSServerCertSubject// ​ |     | Разрешенная тема сертификата сервера. |+|//​TLSServerCertSubject// ​ |     | Разрешенный субъект сертификата сервера. |
  
 === Настройка сертификата на Zabbix сервере === === Настройка сертификата на Zabbix сервере ===
Line 148: Line 143:
   TLSAccept=cert   TLSAccept=cert
  
-3. Теперь у вас есть минимальная настройка прокси на основе сертификата. Вы возможно захотите улучшить безопасность прокси,​ указав параметры ''​TLSServerCertIssuer''​ и ''​TLSServerCertSubject''​ (смотри [[ru:​manual:​encryption:​using_certificates#​Ограничение_разрешенных_эмитента_и_темы_сертификата|Ограничение разрешенных Эмитента и Темы сертификата]]).+3. Теперь у вас есть минимальная настройка прокси на основе сертификата. Вы возможно захотите улучшить безопасность прокси,​ указав параметры ''​TLSServerCertIssuer''​ и ''​TLSServerCertSubject''​ (смотри [[ru:​manual:​encryption:​using_certificates#​Ограничение_разрешенных_эмитента_и_субъекта_сертификата|Ограничение разрешенных Эмитента и Субъекта ​сертификата]]).
  
 4. В конечном итоге параметры TLS в файле конфигурации прокси могут выглядеть следующим образом:​ 4. В конечном итоге параметры TLS в файле конфигурации прокси могут выглядеть следующим образом:​
Line 163: Line 158:
   * Выберите прокси и нажмите на вкладку **Шифрование**   * Выберите прокси и нажмите на вкладку **Шифрование**
  
-В примере ниже поля Эмитент и Тема заполнены - смотрите [[ru:​manual:​encryption:​using_certificates#​Ограничение_разрешенных_эмитента_и_темы_сертификата|Ограничение разрешенных Эмитента и Темы сертификата]] о том, как использовать эти поля.+В примере ниже поля Эмитент и Субъект заполнены - смотрите [[ru:​manual:​encryption:​using_certificates#​Ограничение_разрешенных_эмитента_и_субъекта_сертификата|Ограничение разрешенных Эмитента и Субъекта ​сертификата]] о том, как использовать эти поля.
  
 При активном прокси При активном прокси
Line 183: Line 178:
   TLSAccept=cert   TLSAccept=cert
  
-3. Теперь у вас есть минимальная настройка агента на основе сертификата. Вы возможно захотите улучшить безопасность агента,​ указав параметры ''​TLSServerCertIssuer''​ и ''​TLSServerCertSubject''​. +3. Теперь у вас есть минимальная настройка агента на основе сертификата. Вы возможно захотите улучшить безопасность агента,​ указав параметры ''​TLSServerCertIssuer''​ и ''​TLSServerCertSubject''​.(смотри [[ru:​manual:​encryption:​using_certificates#​Ограничение_разрешенных_эмитента_и_субъекта_сертификата|Ограничение разрешенных ​Эмитента и Субъекта сертификата]]).
-(смотри [[ru:​manual:​encryption:​using_certificates#​Ограничение_разрешенных_эмитента_и_темы_сертификата|Ограничение разрешенных Эмитента и Темы ​сертификата]]). +
-(смотри [[ru:​manual:​encryption:​using_certificates#​Ограничение_разрешенныхмитента_иемы_сертификата|Ограничение разрешенных Эмитента и Темы ​сертификата]]).+
  
 4. В конечном итоге параметры TLS в файле конфигурации агента могут выглядеть следующим образом:​ 4. В конечном итоге параметры TLS в файле конфигурации агента могут выглядеть следующим образом:​
Line 193: Line 186:
   TLSServerCertIssuer=CN=Signing CA,​OU=Development group,​O=Zabbix SIA,​DC=zabbix,​DC=com   TLSServerCertIssuer=CN=Signing CA,​OU=Development group,​O=Zabbix SIA,​DC=zabbix,​DC=com
   TLSServerCertSubject=CN=Zabbix proxy,​OU=Development group,​O=Zabbix SIA,​DC=zabbix,​DC=com   TLSServerCertSubject=CN=Zabbix proxy,​OU=Development group,​O=Zabbix SIA,​DC=zabbix,​DC=com
-  TLSCertFile=/​home/​zabbix/​zabbix_agent.crt +  TLSCertFile=/​home/​zabbix/​zabbix_agentd.crt 
-  TLSKeyFile=/​home/​zabbix/​zabbix_agent.key+  TLSKeyFile=/​home/​zabbix/​zabbix_agentd.key
  
-(Пример предполагает,​ что хост наблюдается через прокси,​ отсюда ​Тема сертификата прокси.)+(Пример предполагает,​ что хост наблюдается через прокси,​ отсюда ​Субъект сертификата прокси.)
  
 5. Настройте шифрование этому агенту в веб-интерфейсе Zabbix: 5. Настройте шифрование этому агенту в веб-интерфейсе Zabbix:
Line 202: Line 195:
   * Выберите узел сети и нажмите на вкладку **Шифрование**   * Выберите узел сети и нажмите на вкладку **Шифрование**
  
-В примере ниже поля Эмитент и Тема заполнены - смотрите [[ru:​manual:​encryption:​using_certificates#​Ограничение_разрешенных_эмитента_и_темы_сертификата|Ограничение разрешенных Эмитента и Темы сертификата]] о том, как использовать эти поля.+В примере ниже поля Эмитент и Субъект заполнены - смотрите [[ru:​manual:​encryption:​using_certificates#​Ограничение_разрешенных_эмитента_и_субъекта_сертификата|Ограничение разрешенных Эмитента и Субъекта ​сертификата]] о том, как использовать эти поля.
  
 {{manual:​encryption:​agent_config.png}} {{manual:​encryption:​agent_config.png}}
-=== Ограничение разрешенных Эмитента и Темы сертификата ===+=== Ограничение разрешенных Эмитента и Субъекта ​сертификата ===
  
 Когда два компонента Zabbix (например,​ сервер и агент) устанавливают TLS соединение,​ они оба проверяют сертификаты друг друга. Когда два компонента Zabbix (например,​ сервер и агент) устанавливают TLS соединение,​ они оба проверяют сертификаты друг друга.
-Если сертификат узла подписан доверенным CA (с предустановленным сертификатом верхнего уровня в ''​TLSCAFile''​),​ является действительным,​ он не истёк и проходит некоторые другие проверки,​ тогда коммуникация может продолжаться. Эмитент и тема сертификата в этом простом случае не проверяется.+Если сертификат узла подписан доверенным CA (с предварительно подготовленным сертификатом верхнего уровня в ''​TLSCAFile''​),​ является действительным,​ он не истёк и проходит некоторые другие проверки,​ тогда коммуникация может продолжаться. Эмитент и субъект сертификата в этом простом случае не проверяется.
  
 Здесь имеется риск - кто-угодно при наличии действительного сертификата может выдавать себя за другого (например,​ сертификат хоста можно использовать,​ чтобы выдавать себя за сервер). Такое поведение может быть приемлемо в небольших средах,​ где сертификаты подписываются специализированного внутреннего CA и риск действий от чужого имени является минимальным. Здесь имеется риск - кто-угодно при наличии действительного сертификата может выдавать себя за другого (например,​ сертификат хоста можно использовать,​ чтобы выдавать себя за сервер). Такое поведение может быть приемлемо в небольших средах,​ где сертификаты подписываются специализированного внутреннего CA и риск действий от чужого имени является минимальным.
  
-Если ваш CA верхнего уровня используется для выдачи других сертификатов,​ которые не должны приниматься Zabbix или вы хотите снизить риск действий от чужого имени, вы можете ограничить разрешенные сертификаты,​ указав их строки Эмитента и Темы.+Если ваш CA верхнего уровня используется для выдачи других сертификатов,​ которые не должны приниматься Zabbix или вы хотите снизить риск действий от чужого имени, вы можете ограничить разрешенные сертификаты,​ указав их строки Эмитента и Субъекта.
  
 Например,​ вы можете записать в файл конфигурации Zabbix прокси:​ Например,​ вы можете записать в файл конфигурации Zabbix прокси:​
Line 218: Line 211:
   TLSServerCertSubject=CN=Zabbix server,​OU=Development group,​O=Zabbix SIA,​DC=zabbix,​DC=com   TLSServerCertSubject=CN=Zabbix server,​OU=Development group,​O=Zabbix SIA,​DC=zabbix,​DC=com
  
-При наличии этих настроек активный прокси не будет разговаривать с Zabbix сервером с другими строками Эмитента и Темы в сертификате,​ пассивный прокси не пример запросы от такого сервера.+При наличии этих настроек активный прокси не будет разговаривать с Zabbix сервером с другими строками Эмитента и Субъекта ​в сертификате,​ пассивный прокси не пример запросы от такого сервера.
  
-Несколько заметок о соответствии строк Эмитента и Темы+Несколько заметок о соответствии строк Эмитента и Субъекта
-  - Строки Эмитента и Темы проверяются независимо. Обе строки опциональны. +  - Строки Эмитента и Субъекта ​проверяются независимо. Обе строки опциональны. 
-  - Допусттмы символы UTF-8.+  - Допустимы символы UTF-8.
   - Не указанная строка означает,​ что принимается любая строка.   - Не указанная строка означает,​ что принимается любая строка.
   - Строки сравниваются "​как-есть",​ они должны в точности быть такими же.   - Строки сравниваются "​как-есть",​ они должны в точности быть такими же.
Line 233: Line 226:
   - Требования [[http://​tools.ietf.org/​html/​rfc4517| RFC 4517 Lightweight Directory Access Protocol (LDAP): Syntaxes and Matching Rules]] и [[http://​tools.ietf.org/​html/​rfc4518|RFC 4518 Lightweight Directory Access Protocol (LDAP): Internationalized String Preparation]] не поддерживаются по причине необходимого объема работы.   - Требования [[http://​tools.ietf.org/​html/​rfc4517| RFC 4517 Lightweight Directory Access Protocol (LDAP): Syntaxes and Matching Rules]] и [[http://​tools.ietf.org/​html/​rfc4518|RFC 4518 Lightweight Directory Access Protocol (LDAP): Internationalized String Preparation]] не поддерживаются по причине необходимого объема работы.
  
-Очередность полей в Эмитента и Темы строках и форматирование очень важны! Zabbix следует [[http://​tools.ietf.org/​html/​rfc4514|RFC 4514]] рекомендации и использует "​обратный"​ порядок этих полей.+Очередность полей в Эмитента и Субъекта ​строках и форматирование очень важны! Zabbix следует [[http://​tools.ietf.org/​html/​rfc4514|RFC 4514]] рекомендации и использует "​обратный"​ порядок этих полей.
  
 Обратный порядок можно продемонстрировать в примере:​ Обратный порядок можно продемонстрировать в примере:​
   TLSServerCertIssuer=CN=Signing CA,​OU=Development group,​O=Zabbix SIA,​DC=zabbix,​DC=com   TLSServerCertIssuer=CN=Signing CA,​OU=Development group,​O=Zabbix SIA,​DC=zabbix,​DC=com
-  TLSServerCertSubject=CN=Zabbix ​server,​OU=Development group,​O=Zabbix SIA,​DC=zabbix,​DC=com+  TLSServerCertSubject=CN=Zabbix ​proxy,​OU=Development group,​O=Zabbix SIA,​DC=zabbix,​DC=com
  
 Обратите внимание,​ что он начинается с верхнего уровня (CN), переходит к среднему уровню (OU, O) и заканчивается полями верхнего уровня (DC). Обратите внимание,​ что он начинается с верхнего уровня (CN), переходит к среднему уровню (OU, O) и заканчивается полями верхнего уровня (DC).
  
-По умолчанию //OpenSSL// отображает поля Эмитента и Темы в "​нормальном"​ порядке,​ в зависимости от использованных дополнительных опций:+По умолчанию //OpenSSL// отображает поля Эмитента и Субъекта ​в "​нормальном"​ порядке,​ в зависимости от использованных дополнительных опций:
   $ openssl x509 -noout -in /​home/​zabbix/​zabbix_proxy.crt -issuer -subject   $ openssl x509 -noout -in /​home/​zabbix/​zabbix_proxy.crt -issuer -subject
   issuer= /​DC=com/​DC=zabbix/​O=Zabbix SIA/​OU=Development group/​CN=Signing CA   issuer= /​DC=com/​DC=zabbix/​O=Zabbix SIA/​OU=Development group/​CN=Signing CA
Line 253: Line 246:
           Subject: DC=com, DC=zabbix, O=Zabbix SIA, OU=Development group, CN=Zabbix proxy           Subject: DC=com, DC=zabbix, O=Zabbix SIA, OU=Development group, CN=Zabbix proxy
  
-Здесь строки Эмитента и Темы начинаются с верхнего уровня (DC) и заканчиваются полем нижнего уровня (CN), пробелы и разделители полей зависят от используемых опций. Ни одно из этих значений не будет совпадать в Zabbix полях Эмитента и Темы !+Здесь строки Эмитента и Субъекта ​начинаются с верхнего уровня (DC) и заканчиываются полем нижнего уровня (CN), пробелы и разделители полей зависят от используемых опций. Ни одно из этих значений не будет совпадать в Zabbix полях Эмитента и Субъекта!
  
 <note important>​ <note important>​
-Для получения надлежащих строк Эмитента и Темы, допустмых в Zabbix, вызовите OpenSSL со специальными опциями ​"-nameopt esc_2253,​esc_ctrl,​utf8,​dump_nostr,​dump_unknown,​dump_der,​sep_comma_plus,​dn_rev,​sname":+Для получения надлежащих строк Эмитента и Субъекта, допустмых в Zabbix, вызовите OpenSSL со специальными опциями\\ ''​-nameopt esc_2253,​esc_ctrl,​utf8,​dump_nostr,​dump_unknown,​dump_der,​sep_comma_plus,​dn_rev,​sname''​:
 </​note>​ </​note>​
   $ openssl x509 -noout -issuer -subject -nameopt esc_2253,​esc_ctrl,​utf8,​dump_nostr,​dump_unknown,​dump_der,​sep_comma_plus,​dn_rev,​sname -in /​home/​zabbix/​zabbix_proxy.crt   $ openssl x509 -noout -issuer -subject -nameopt esc_2253,​esc_ctrl,​utf8,​dump_nostr,​dump_unknown,​dump_der,​sep_comma_plus,​dn_rev,​sname -in /​home/​zabbix/​zabbix_proxy.crt
Line 262: Line 255:
   subject= CN=Zabbix proxy,​OU=Development group,​O=Zabbix SIA,​DC=zabbix,​DC=com   subject= CN=Zabbix proxy,​OU=Development group,​O=Zabbix SIA,​DC=zabbix,​DC=com
  
-Теперь строки находятся в "обратном"​ порядке", поля разделены запятой,​ строки можно использовать в файлах конфигурации Zabbix и в веб-интерфейсе.+Теперь строковые поля ​находятся в обратном"​ порядке,​ поля разделены запятой,​ строки можно использовать в файлах конфигурации Zabbix и в веб-интерфейсе
 + 
 +=== Ограничения при использовании расширений X.509 v3 сертификатов === 
 + 
 +  * Расширение **Альтернативное имя субъекта (//​subjectAltName//​)**. \\ Альтернативные имена субъектов из //​subjectAltName//​ расширения (такие как IP адрес, e-mail адрес) не поддерживаются Zabbix. В Zabbix проверяется только значение поля "​Субъект"​ (смотри [[ru/​manual/​encryption/​using_certificates#​ограничение_разрешенных_эмитента_и_субъекта_сертификата|Ограничение разрешенных Эмитента и Субъекта сертификата]]). \\ Если сертификат использует //​subjectAltName//​ расширение,​ тогда результат зависит от конкретной комбинации наборов инструментов криптографии с которыми скомпилированы компоненты Zabbix (это расширение может работать,​ а может и не работать,​ Zabbix может отказаться принимать такие сертификаты от узлов). 
 +  * Расширение **Использование Расширенного Ключа**. \\ Если используется,​ то, как правило,​ необходимо указывать как //​clientAuth//​ (TLS WWW аутентификация клиента),​ так и  //​serverAuth//​ (TLS WWW аутентификация сервера). \\ Например,​ при пассивных проверках Zabbix агент выступает в роли TLS сервера,​ таким образом необходимо указать //​serverAuth//​ в сертификате агента. При активных проверках в сертификате агента необходимо задать //​clientAuth//​. \\ //GnuTLS// выводит предупреждение в случае нарушения использования ключа, но разрешает продолжение соединения. 
 +  * Расширение **Ограничения Имени**. \\ Не все наборы инструментов криптографии поддерживают его. Это расширение может помешать Zabbix в загрузке CA сертификатов,​ где этот раздел промаркирован как //​критический//​ (зависит от конкретного набора инструментов криптографии).
  
 === Списки отозванных сертификатов (CRL) === === Списки отозванных сертификатов (CRL) ===