Home » Zabbix » Мониторинг срока действия ssl сертификата в zabbix

Мониторинг срока действия ssl сертификата в zabbix

У меня время от времени возникают ситуации, когда я пропускаю обновление какого-нибудь ssl сертификата. Особенно часто это стало происходить с повсеместным распространением сертификатов на 3 месяца от letsencrypt. Автоматическое продление иногда не срабатывает по различным причинам. Чтобы защитить себя от таких ситуаций, решил настроить полноценный мониторинг ssl сертификатов с помощью zabbix.

Теоретический курс по основам сетевых технологий. Позволит системным администраторам упорядочить и восполнить пробелы в знаниях. Цена очень доступная, есть бесплатный доступ. Все подробности по . Можно пройти тест на знание сетей, бесплатно и без регистрации.

Введение

Традиционно, буду использовать самые простые подручные средства, завернутые в консольные скрипты, которые будут передавать значения в zabbix с помощью UserParameter. Для уменьшения ручной работы, добавление доменов в систему мониторинга будет осуществляться с помощью автообнаружения. Сами списки доменов с сертификатами ssl для проверки будут храниться в текстовых файлах.

У нас будут 2 отдельных списка для проверки:

  1. Домены с ssl сертификатами для веб сайтов.
  2. Домены с ssl сертификатами для почтовых серверов.

Поясню, почему 2 списка. Ведь по сути, сертификаты в обоих случаях будут совершенно одинаковые. Дело в том, что у меня есть почтовые сервера, которые используют сертификаты, но при этом не имеют сайтов с таким же доменным именем. Для таких серверов заказаны отдельные сертификаты, которые установлены только на почтовом сервере и проверить их можно только по протоколам, которые используют почтовые серверы. Ниже я подробно раскрою все различия и способы проверки.

Если у вас еще нет готового сервера для мониторинга, предлагаю его настроить по моей статье — установка и настройка zabbix 3.4 на Centos 7. Если предпочитаете Debian, то вот материал на эту тему — установка и настройка zabbix 3.4 на Debian 9. В данном случае все можно сделать на одном сервере — достаточно на один сервер поставить zabbix-server и zabbix-agent.

Проверяем средства для мониторинга

Прежде чем приступим к написанию скриптов для мониторинга, предлагаю отдельно проверить технические средства, которые будем использовать. В данном случае это будет консольная утилита openssl с различными параметрами и преобразованием ее вывода.

Для начала просто запросим сертификат сайта и проверим вывод:

# openssl s_client -connect serveradmin.ru:443 -servername serveradmin.ru -tlsextdebug

Вы должны увидеть служебную информацию по ssl сертификату и сам сертификат. Обращаю внимание на параметр -servername. После него указано имя домена. У вас может быть ситуация, когда на одном ip хостятся несколько сайтов. Параметр -connect фактически указывает только на ip адрес сайта. Если не указать отдельно имя домена через -servername, то команда вернет сертификат первого домена.

Теперь посмотрим на срок действия сертификата. Для этого вывод предыдущей команды завернем на нее же, но с другими параметрами. Получится вот так:

# openssl s_client -connect serveradmin.ru:443 -servername serveradmin.ru -tlsextdebug 2>/dev/null | openssl x509 -noout -dates 2>/dev/null
notBefore=Jul 11 14:55:00 2017 GMT
notAfter=Oct 9 14:55:00 2017 GMT

На выходе должны увидеть дату создания сертификата и дату завершения его действия. Обработаем этот вывод и оставим только последнюю дату без лишних символов.

# openssl s_client -connect serveradmin.ru:443 -servername serveradmin.ru -tlsextdebug 2>/dev/null | openssl x509 -noout -dates 2>/dev/null | grep notAfter | cut -d'=' -f2
Oct 9 14:55:00 2017 GMT

Получаем то, что надо. Именно с этой датой будет работать скрипт для отправки данных в zabbix сервер.

Вот пример похожего запроса, только на smtp сервер:

# openssl s_client -starttls smtp -connect mail.zeroxzed.ru:25 | openssl x509 -noout -dates 2>/dev/null | grep notAfter | cut -d'=' -f2

Перед выводом самой даты, выходят несколько строк со служебной информацией о сертификате. Я долго пытался понять, почему они не обрезаются через grep, но так и не понял. По факту, работе скрипта этот лишний вывод не вредит.

С теорией и подручными средствами разобрались. Переходим к настройке zabbix agent.

Настройка zabbix-agent

Создаем папку для скриптов в директории с настройками zabbix:

# mkdir /etc/zabbix/scripts

Первым делом создадим 2 текстовых файла для хранения списков доменов.

# touch /etc/zabbix/scripts/ssl_https.txt /etc/zabbix/scripts/ssl_smtp.txt

В эти файлы необходимо добавить домены по одному на каждую строку. Дальше добавляем скрипты для автообнаружения этих доменов и передачи в zabbix.

# mcedit /etc/zabbix/scripts/disc_ssl_https.sh
#!/bin/bash

JSON=$(for i in `cat /etc/zabbix/scripts/ssl_https.txt`; do printf "{\"{#DOMAIN_HTTPS}\":\"$i\"},"; done | sed 's/^\(.*\).$/\1/')
printf "{\"data\":["
printf "$JSON"
printf "]}"
# mcedit /etc/zabbix/scripts/disc_ssl_smtp.sh
#!/bin/bash

JSON=$(for i in `cat /etc/zabbix/scripts/ssl_smtp.txt`; do printf "{\"{#DOMAIN_SMTP}\":\"$i\"},"; done | sed 's/^\(.*\).$/\1/')
printf "{\"data\":["
printf "$JSON"
printf "]}"

Делаем эти файлы исполняемыми:

# cd /etc/zabbix/scripts
# chmod 0740 disc_ssl_https.sh disc_ssl_smtp.sh

Для проверки достаточно выполнить один из скриптов. На выходе должен быть вывод списка доменов в формате JSON.

{"data":[{"{#DOMAIN_HTTPS}":"serveradmin.ru"}]}

Если доменов несколько, то они перечисляются через запятую.

Пишем скрипты, которые будут определять, сколько дней осталось до окончания срока действия сертификата. За основу они будут брать ту дату, что мы выводили на предыдущем шаге.

# mcedit /etc/zabbix/scripts/check_ssl_https.sh
#!/bin/bash

SERVER=$1
TIMEOUT=25
RETVAL=0
TIMESTAMP=`echo | date`
EXPIRE_DATE=`echo | openssl s_client -connect $SERVER:443 -servername $SERVER -tlsextdebug 2>/dev/null | openssl x509 -noout -dates 2>/dev/null | grep notAfter | cut -d'=' -f2`
EXPIRE_SECS=`date -d "${EXPIRE_DATE}" +%s`
EXPIRE_TIME=$(( ${EXPIRE_SECS} - `date +%s` ))
if test $EXPIRE_TIME -lt 0
then
RETVAL=0
else
RETVAL=$(( ${EXPIRE_TIME} / 24 / 3600 ))
fi

echo ${RETVAL}
# mcedit /etc/zabbix/scripts/check_ssl_smtp.sh
#!/bin/bash

SERVER=$1
TIMEOUT=25
RETVAL=0
TIMESTAMP=`echo | date`
EXPIRE_DATE=`echo | openssl s_client -starttls smtp -connect $SERVER:25 2>/dev/null | openssl x509 -noout -dates 2>/dev/null | grep notAfter | cut -d'=' -f2`
EXPIRE_SECS=`date -d "${EXPIRE_DATE}" +%s`
EXPIRE_TIME=$(( ${EXPIRE_SECS} - `date +%s` ))
if test $EXPIRE_TIME -lt 0
then
RETVAL=0
else
RETVAL=$(( ${EXPIRE_TIME} / 24 / 3600 ))
fi

echo ${RETVAL}

Делаем скрипты исполняемыми:

# chmod 0740 check_ssl_https.sh check_ssl_smtp.sh

Проверить работу скриптов можно вот так:

# /etc/zabbix/scripts/check_ssl_https.sh serveradmin.ru
66
# /etc/zabbix/scripts/check_ssl_smtp.sh mail.zeroxzed.ru
87

Не забывайте подставлять значения своих доменов, чтобы наверняка быть уверенными в том, что они нормально отдают сертификаты. На выходе у вас должна быть только цифра с количеством дней актуальности ssl сертификата. Больше ничего. Это важно, иначе заббикс сервер будет выдавать ошибку.

Связываем все наши скрипты с самим zabbix.

В данном случае, вы можете расположить скрипты для мониторинга за сертификатами на любом сервере, где есть zabbix agent. Логичнее всего, как мне кажется, все проверки, не привязанные к конкретным хостам, располагать на самом zabbix server.

Создаем файл с расширением конфигурации заббикса:

# mcedit /etc/zabbix/zabbix_agentd.d/ssl.conf

UserParameter=ssl_https.discovery[*],/etc/zabbix/scripts/disc_ssl_https.sh
UserParameter=ssl_https.expire[*],/etc/zabbix/scripts/check_ssl_https.sh $1
UserParameter=ssl_smtp.discovery[*],/etc/zabbix/scripts/disc_ssl_smtp.sh
UserParameter=ssl_smtp.expire[*],/etc/zabbix/scripts/check_ssl_smtp.sh $1

Я еще рекомендую в основном файле /etc/zabbix/zabbix_agentd.conf увеличить параметр Timeout. По-умолчанию, он установлен в значение 3. Если вдруг внешней проверке не хватит трех секунд, чтобы получить информацию о сертификате, итем на сервере будет на некоторое время отключен. Рекомендую увеличить секунд до 10-ти. Хотя сам я обычно всегда этот параметр выставляю в максимальное значение — 30. Я очень часто сталкиваюсь с тем, что забываю про timeout, а потом трачу очень много времени на дебаг ошибок, которые возникают в связи с этим. Так что я взял за правило всегда увеличивать таймаут сразу после установки и во время первоначальной настройки агента.

Сохраняем все конфиги. Делаем пользователя zabbix владельцем всех наших скриптов. Это важно, так как если этого не сделать, то проверка в консоли будет успешно отрабатывать, а на самом сервере вы увидите ошибку item not supported и потратите какое-то время, пока не поймете, почему она появляется.

# chown -R zabbix. /etc/zabbix/scripts

Перезапускаем агента:

# systemctl restart zabbix-agent

Проверяем, как заббикс агент возвращает параметры для сервера. Важный этап перед тем, как приступать к настройке самого сервера.

# zabbix_agentd -t ssl_https.discovery
ssl_https.discovery [t|{"data":[{"{#DOMAIN_HTTPS}":"serveradmin.ru"}]}]
# zabbix_agentd -t ssl_https.expire[serveradmin.ru]
ssl_https.expire[serveradmin.ru] [t|66]

Все работает так как и должно. Теперь можно переходить на сервер.

Настройка zabbix server для мониторинга ssl сертификатов

На самом деле, тут вам ничего настраивать не придется, потому что я уже все настроил и предлагаю скачать готовый шаблон. Он создан и протестирован на версии сервера 3.2. Скорее всего он будет работать практически на всех версиях, так как разработчики следят и стараются поддерживать совместимость шаблонов между версиями, за что им большое спасибо.

Ссылка на скачивание шаблона — ssl_cert_expiration.xml

Импортируйте этот шаблон себе на сервер.

Импорт шаблона в zabbix

Прикрепляйте этот шаблон к тому хосту, где вы настраивали скрипты и zabbix-agent. Дальше вам остается только подождать примерно 5 минут. Такой интервал установлен для автообнарудения.

Список правил автообнаружения хостов с ssl сертификатами

Если вам не нужно мониторить за smtp хостами, то можете отключить smtp автообнаружение и оставить только https. После того, как отработает автообнаружение, в списке итемов вы увидите добавленные домены.

Список созданных итемов

Еще примерно через 5 минут, вы получите информацию о сроке действия сертификатов указанных доменов.

Мониторинг срока действия ssl сертификата

В шаблоне настроен триггер, который срабатывает, если время жизни сертификата становится меньше 30-ти дней. В принципе, этот параметр можно уменьшить и до 10-ти дней. Сейчас продлить сертификат не составляет каких-то проблем. Так что можете этот параметр настраивать по своему желанию.

Я рекомендую отдельно настроить повторяющиеся уведомления для триггеров из текущего шаблона. Сделать интервал раз в день или через день. Сразу скорее всего не будешь заниматься обновлением, так как не срочно. А то, что отложено на потом легко забыть, что со мной не раз случалось.

Возможные ошибки

Самая распространенная ошибка, с которой можно столкнуться — скрипты не работают от системного пользователя zabbix. Причем вы никак не поймете, в чем реально ошибка. Просто на сервере ваши правила обнаружения или итемы с доменами будут отключены с ошибкой item not supported. Для того, чтобы убедиться, что все в порядке, проверьте, как ваши скрипты работают под нужным пользователем.

# sudo -u zabbix /etc/zabbix/scripts/disc_ssl_https.sh
# sudo -u zabbix /etc/zabbix/scripts/check_ssl_https.sh serveradmin.ru

Вторая ошибка, с которой иногда сталкиваешься — при копировании с сайта команды и скрипты не работают. Причины могут быть разные. то двойные тире теряются, то пробелы как-то ломаются. Если вроде бы все в порядке, но не работает, попробуйте скачать полный набор скриптов и файлов, которые я сохранил отдельным архивом.

Про еще одну одну ошибку я уже сказал ранее. Она связана с параметром timeout. Установите его значение выше стандартных трех секунд.

Заключение

Не понравилась статья и хочешь научить меня администрировать? Пожалуйста, я люблю учиться. Комментарии в твоем распоряжении. Расскажи, как сделать правильно!

Таким нехитрым способом можно облегчить себе жизнь. Приобретя немного навыков в работе с zabbix, можно замониторить все, что придет в голову. Собственно, так я обычно и делаю. У меня куча всяких кастомных проверок. Наиболее популярные и востребованные я описываю в своих статьях, которых накопилось уже немалое количество. Все они в соответствующем разделе — Zabbix. Статьи актуальны для всех версий, не устаревают с выходом новых релизов.

Помогла статья? Есть возможность отблагодарить автора

Дополнительные материалы по Zabbix

Онлайн курсы по Mikrotik

Если у вас есть желание научиться работать с роутерами микротик и стать специалистом в этой области, рекомендую пройти курсы по программе, основанной на информации из официального курса MikroTik Certified Network Associate. Помимо официальной программы, в курсах будут лабораторные работы, в которых вы на практике сможете проверить и закрепить полученные знания. Все подробности на сайте . Стоимость обучения весьма демократична, хорошая возможность получить новые знания в актуальной на сегодняшний день предметной области. Особенности курсов:
  • Знания, ориентированные на практику;
  • Реальные ситуации и задачи;
  • Лучшее из международных программ.
Рекомендую полезные материалы по Zabbix:
Настройки системы
  • Установка 4.0
  • Обновление 3.0 -> 3.2
  • Обновление 3.4 -> 4.0
  • Установка Zabbix Proxy
  • Работа на NGINX
Видео и подробное описание установки и настройки Zabbix 4.0, а также установка агентов на linux и windows и подключение их к мониторингу.
Подробное описание обновления системы мониторинга zabbix версии 3.4 до новой версии 4.0.
Пошаговая процедура обновления сервера мониторинга zabbix 2.4 до 3.0. Подробное описание каждого шага с пояснениями и рекомендациями.
Подробное описание установки и настройки zabbix proxy для организации распределенной системы мониторинга. Все показано на примерах.
Подробное описание установки системы мониторинга Zabbix на веб сервер на базе nginx + php-fpm.
Мониторинг служб и сервисов
 
  • Температура процессора
  • Nginx и php-fpm
  • Mysql репликация
  • Службы Linux
  • Рейд mdadm
  • Транки Asterisk
  • Synology
Мониторинг температуры процессора с помощью zabbix на Windows сервере с использованием пользовательских скриптов.
Настройка полноценного мониторинга web сервера nginx и php-fpm в zabbix с помощью скриптов и пользовательских параметров.
Мониторинг репликации mysql с помощью Zabbix. Подробный разбор методики и тестирование работы.
Описание настройки мониторинга tcp служб с помощью zabbix и его инструмента простых проверок (simple checks)
Настройка мониторинга рейда mdadm с помощью zabbix. Подробное пояснение принципа работы и пошаговая инструкция.
Подробное описание мониторинга регистраций транков (trunk) в asterisk с помощью сервера мониторинга zabbix.
Подробная инструкция со скриншотами по настройке мониторинга по snmp дискового хранилища synology с помощью сервера мониторинга zabbix.
Мониторинг различных значений
  • Мониторинг сайта
  • Мониторинг бэкапов
  • Размер бэкапа
  • Делегирование домена
  • Значения из текстового файла
  • Мониторинг логов
Настройка мониторинга web сайта в zabbix. Параметры для наблюдения - доступность сайта, время отклика, скорость доступа к сайту.
Один из способов мониторинга бэкапов с помощью zabbix через проверку даты последнего изменения файла из архивной копии с помощью vfs.file.time.
Подробное описание настройки мониторинга размера бэкапов в Zabbix с помощью внешних скриптов.
Пример настройки мониторинга за временем делегирования домена с помощью Zabbix и внешнего скрипта. Все скрипты и готовый шаблон представлены.
Описание мониторинга лог файлов в zabbix на примере анализа лога программы apcupsd. Отправка оповещений по событиям из лога.

Автор Zerox

Zerox
Владимир, системный администратор, автор сайта. Люблю настраивать сервера, изучать что-то новое, делиться знаниями, писать интересные и полезные статьи. Открыт к диалогу и сотрудничеству.

31 комментарий

  1. Аватар

    Имеется ли возможность мониторинга сертификата сайта с нестандартным портом?

    • Аватар

      Сам разобрался. В скрипте /etc/zabbix/scripts/check_ssl_https.sh удаляем «:443». И в файле с перечислениями доменов указываем их в формате serveradmin.ru:443

      • Аватар

        Хотя поторопился. Скрипт на самом агент отрабатывает нормально и выдает корректные значения, но сервер zabbix такие значения забирать не хочет. Может быть Вы посоветует, что еще требуется изменить?

        • Zerox

          Zabbix забирает то, что возвращает скрипт в консоль. А автодискавери забирает имена доменов из файла с доменами. Проблема могла возникнуть из-за : в названии, которое появилось при добавлении номера порта.

          Думаю, для нестандартных портов имеет смысл сделать отдельный скрипт и шаблон и там все отлаживать. Сейчас уже не помню нюансов реализации, надо заново вникать.

  2. Аватар

    Добрый день, задумываюсь о том чтобы перевести мониторинг с нагиос на заббикс. (около 200 машин)
    Имеется ли у вас опыт по мониторингу Microsoft Exchange Server и постфикс?
    Также небольшой вопрос, сечас пару машин миниторятся заббиксом версии 3.2(настраивал предшественник моего предшественника), на сколько болезненно может быть обновление?
    Или лучше настроить сервер с нуля?

    Спасибо!

  3. Аватар

    Большое спасибо за ваш сайт! Очень многие статьи помогают в работе и для развития в целом, использую как эталон.

    Но вот возник нюанс при настройке мониторинга ssl-сертификата: агент у меня дефолтом неактивный, ServerActive закомментирован, а в правиле автообнаружения шаблона стоит активный агент, поэтому и не получал никаких данных в latest data. Изменил тип на «Zabbix агент» и автообнаружение добавило нужный элемент. Не могли бы вы уточнить этот момент в статье, чтобы больше не возникало вопрос у тех, кто с этим столкнётся? Спасибо!

    • Zerox

      Это слишком индивидуальный случай, чтобы упоминать в статье. Не буду же я во всех статьях писать о том, что надо следить за типом агента в конфигурации агента и шаблона. Это и так подразумевается. Это все равно, что в агенте обозвать userparameter одним именем, а в шаблоне другим, а потом думать, почему не работает. Очевидно, что такие настройки должны совпадать.

  4. Аватар

    Здравствуйте! Прежде всего спасибо за интсрукцию. Я всё сделал как показано…

    НО!!

    В разделе Monitoring— Latest Data я никакой информацию не получаю почемуто. Можете назвать причины пожалуйста?

    • Zerox

      Как же я назову причины, если нет никакой информации. Каков вопрос, таков ответ. Вы где-то ошиблись. Причина в этом. Я достаточно подробно все расписал, как проверять, настраивать и т.д. Нужно по этапам все аккуратно проверить от агента до сервера.

    • Аватар
      Алексей

      Такая же проблема… проверил все возможное но не работает, данных в «Последние данные» нет. Положил скрипты локально на сервер забикса, прикрепил шаблон к этом же серверу. В логах чисто, подскажите куда смотреть??

      • Zerox

        Проверки через zabbix_agentd на сервере с агентом выдают корректные данные?

        • Аватар
          Алексей

          с консоли все отлично проходит:
          zabbix_agentd -t ssl_https.discovery
          ssl_https.discovery [t|{«data»:[{«{#DOMAIN_HTTPS}»:»test1.domain.ru»},
          {«{#DOMAIN_HTTPS}»:»test2.domain.ru»}]}]

          в элементах данных пишет: ZBX_NOTSUPPORTED
          от zabbix все отрабатывает нормально

  5. Аватар
    Алексей

    Добрый день!
    подскажите пожалуйста можно настроить zabbix для проверке ssl сертификатов из папки так как хочется использовать zabbiz для мониторинга ГОСТвых сертификатов?

  6. Аватар

    Добрый день!
    А вы пробовали мониторить локальные сертификаты на серверах? Я вот настроил, но только тригеры не срабатывают(

    • Zerox

      Локальные ничем не отличаются от остальных. Тем более триггеры не имеют отношения к самому мониторингу. Если данные корректно собираются, то надо проверять триггеры на ошибки.

      • Аватар

        У вас тут мониторятся же только web сертификаты? Или я таким методом могу и локальные компа в папке личные получить сертификаты:

        • Zerox

          Это не веб сертификаты. Это просто сертификаты, которые используются на сайтах. С таким же успехом, их можно использовать в почтовом сервере для протоколов imap и smtp.

          Локальные сертификаты, лежащие в виде файлов, тоже можно мониторить. Но очевидно, что для этого нужны другие проверки.

  7. Аватар

    Для получения сертификата с сервера желательно на вход openssl что-то отправить, чтобы долго не висело ожидание
    Например так
    openssl s_client -showcerts -connect serveradmin.ru:443 -servername serveradmin.ru </dev/null

  8. Аватар

    Столкнулся с другой проблемой, какие-то сертификаты проверяются просто адово долго, запустил скрипт с параметром проверяемого сертификата, ждал ответа минуты 2.
    В конфиге Timout 30 сек это максимальный показатель и как следствие айтемы по которым такая большая задержа не получают инфу и висят с инфой «Timeout while executing a shell script.»

    Может есть какие-то адекватные варианты решения проблемы?

    Что в голову приходит так это шедуллер внутри сервера, на выполнение скрипта с необходимыми проверками сертификата и записью результата в файл, а с забикса уже получение информации из этого файла.

  9. Аватар

    Спасибо за статью, очень полезная и легко осваиваемая.
    Добавил шаблон, изначально все ок добавилось и элемент появился.
    Но данные никакие не собрались и через пару минут элемент отключился с комментарием «Unsupported item key.» и в закладке «Правила обнаружения» так же Инфо пишет «Unsupported item key.»
    Из консоли запуск от имени пользователя Zabbix проверил все работаеь, не могу понять в чем проблема.
    Просьба помочь.

    • Zerox

      Когда итем имеет статус Unsupported, можно нажать на восклицательный знак и посмотреть, какая там ошибка. Либо заглянуть в лог сервера, возможно там будет подсказка.

      • Аватар

        Дискавери сейчас отображается нормально, работает и в логах есть правда всего один запрос и больше нету.
        А вот запросов по сбору данных элемента в логах нету.
        Элемент с ифнормацией «Unsupported item key» показывается.

      • Аватар

        Какая-то у меня проблема с активными проверками, хотя на первый взгляд все настроено корректно.
        В общем переключил на пасивные проверки, все заработало.
        Спасибо за статью еще раз, очень удобно и просто.

  10. Аватар

    Обращу внимание на один, может банальный, момент: агент должен быть в активном режиме. Иначе данные не будут передаваться.

  11. Аватар

    Доброго времени суток.
    Спасибо ! Очень помогла Ваша статья.
    Настроил , отображает сколько дней осталось. По триггеру приходит уведомление по почте.

    По после продления сертификата не сбрасывается событие. Не приходит письмо что сертификат продлен, хотя в уведомления указал чтоб приходило уведомление.

    Подскажите где что нужно поправить чтоб событие после продления сертификата изменилось ?

    • Zerox

      По идее, ничего особенного делать не надо. Как только условие триггера не выполняется, он сам отключается и присылает уведомление, что все в порядке. Вы посмотрите в Последних данных, после продления сертификата, новые числа стали поступать о новом сроке? Триггер именно на них реагирует.

Добавить комментарий

Ваш e-mail не будет опубликован.

Нажимая кнопку "Отправить комментарий" Я даю согласие на обработку персональных данных.