Русский
Русский
English
Статистика
Реклама

Ssl

Recovery mode Улучшение параметров безопасности SSL-соединения в Zimbra Collaboration Suite Open-Source Edition

26.06.2020 14:09:33 | Автор: admin
Надежность шифрования является одним из наиболее важных показателей при использовании информационных систем для бизнеса, ведь ежедневно они участвуют в передаче огромного количества конфиденциальной информации. Общепринятым средством оценки качества SSL-соединения является независимый тест от Qualys SSL Labs. Поскольку данный тест может запустить кто угодно, для SaaS-провайдеров особенно важно, чтобы оценка в этом тесте была максимальной. О качестве SSL-соединения заботятся не только SaaS-провайдеры, но и обычные предприятия. Для них данный тест является отличной возможностью выявить потенциально уязвимые места и заблаговременно закрыть все лазейки для киберпреступников.

image

В Zimbra OSE допустимо использовать два вида SSL-сертификатов. Первый это самоподписанный сертификат, который автоматически добавляется при установке. Этот сертификат бесплатен и не ограничен по времени использования, а значит идеально подойдет для тестирования Zimbra OSE или ее использования исключительно в рамках внутренней сети. Однако при входе в веб-клиент пользователи будут видеть предупреждение от браузера, что данный сертификат ненадежен, и тест от Qualys SSL Labs ваш сервер однозначно провалит.

Второй это коммерческий SSL-сертификат, подписанный удостоверяющим центром. Такие сертификаты без проблем воспринимается браузерами и обычно используются при коммерческой эксплуатации Zimbra OSE. Сразу после корректной установки коммерческого сертификата Zimbra OSE 8.8.15 показывает оценку A в тесте от Qualys SSL Labs. Это отличный результат, но наша цель достигнуть результата A+.





Для того, чтобы достичь максимальной оценки в тесте от Qualys SSL Labs при использовании Zimbra Collaboration Suite Open-Source Edition необходимо выполнить ряд шагов:

1. Увеличение параметров протокола Диффи-Хеллмана

По умолчанию во всех компонентах Zimbra OSE 8.8.15, которые используют OpenSSL, значение параметров протокола Диффи-Хеллмана составляет 2048 бит. В принципе, этого более чем достаточно для получения оценки А+ в тесте от Qualys SSL Labs. Однако, в том случае, если вы обновляетесь с более старых версий, значение параметров может оказаться ниже. Поэтому рекомендуется после завершения обновления выполнить команду zmdhparam set -new 2048, которая повысит параметры протокола Диффи-Хеллмана до приемлемых 2048 бит, а при желании при помощи этой же команды можно повысить значение параметров до 3072 или 4096 бит, что с одной стороны приведет к увеличению времени генерации, однако с другой стороны положительно скажется на уровне безопасности почтового сервера.

2. Включение рекомендованного списка используемых шифров

По умолчанию Zimbra Collaborataion Suite Open-Source Edition поддерживает широкий спектр сильных и слабых шифров, при помощи которых шифруются данные проходящие по защищенному соединению. Однако использвоание слабых шифров является серьезным минусом при проверке безопасности SSL-соединения. Для того, чтобы этого избежать, необходимо настроить список используемых шифров.

Для этого следует воспользоваться командой zmprov mcf zimbraReverseProxySSLCiphers 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128:AES256:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4'.

В эту команду сразу включен набор рекомендованных шифров и благодаря ей команде можно сразу включить в список надежные шифры и исключить ненадежные. Теперь остается только перезагрузить узлы с обратными прокси с помощью команды zmproxyctl restart. После перезагрузки внесенные изменения вступят в силу.

В том случае, если этот список вас по тем или иным причинам не устраивает, можно удалить из него ряд слабых шифров с помощью команды zmprov mcf +zimbraSSLExcludeCipherSuites. Так, например, команда zmprov mcf +zimbraSSLExcludeCipherSuites TLS_RSA_WITH_RC4_128_MD5 +zimbraSSLExcludeCipherSuites TLS_RSA_WITH_RC4_128_SHA +zimbraSSLExcludeCipherSuites SSL_RSA_WITH_RC4_128_MD5 +zimbraSSLExcludeCipherSuites SSL_RSA_WITH_RC4_128_SHA +zimbraSSLExcludeCipherSuites TLS_ECDHE_RSA_WITH_RC4_128_SHA, которая полностью исключит использование шифров RC4. Так же можно поступить и с шифрами AES и 3DES.

3. Включение HSTS

Включенные механизмы принудительного включения шифрования соединения и восстановления сеанса TLS также являются обязательными условиями для получения высшего балла в тесте от Qualys SSL Labs. Для их включения необходимо ввести команду zmprov mcf +zimbraResponseHeader Strict-Transport-Security: max-age=31536000. Данная команда добавит необходимый заголовок в конфигурацию, а для вступления новых настроек в силу придется перезагрузить Zimbra OSE с помощью команды zmcontrol restart.

Уже на этом этапе тест от Qualys SSL Labs будет демонстрировать оценку A+, однако если вы захотите дополнительно улучшить безопасность вашего сервера, можно предпринять еще ряд мер.



Например, можно включить принудительное шифрование межпроцессных соединений, а также включить принудительное шифрование при подключении к службам Zimbra OSE. Для проверки межпроцессных соединений следует ввести следующие команды:

zmlocalconfig -e ldap_starttls_supported=1
zmlocalconfig -e zimbra_require_interprocess_security=1
zmlocalconfig -e ldap_starttls_required=true


Для включения принудительного шифрования нужно ввести:

zmprov gs `zmhostname` zimbraReverseProxyMailMode
zmprov ms `zmhostname` zimbraReverseProxyMailMode https

zmprov gs `zmhostname` zimbraMailMode
zmprov ms `zmhostname` zimbraMailMode https

zmprov gs `zmhostname` zimbraReverseProxySSLToUpstreamEnabled
zmprov ms `zmhostname` zimbraReverseProxySSLToUpstreamEnabled TRUE


Благодаря этим командам будут шифроваться все соединения с прокси-серверами и почтовыми серверами, а также будет осуществляться проксирование всех этих соединений.



Таким образом, следуя нашим рекомендациям можно не только добиться высочайшей оценки в тесте на безопасность SSL-соединения, но и значительно повысить безопасность работы всей инфраструктуры Zimbra OSE.

По всем вопросам, связанными c Zextras Suite вы можете обратиться к Представителю компании Zextras Екатерине Триандафилиди по электронной почте katerina@zextras.com
Подробнее..

Россия в десятке стран по количеству валидных SSL

01.07.2020 14:11:33 | Автор: admin
Cтарейший удостоверяющий центр, ведущий поставщик надежных решений идентификации и безопасности GlobalSign и крупнейший в России хостинг-провайдер и регистратор доменов REG.RU представили данные о лидирующих странах-пользователях SSL-сертификатов, о том, как менялся мировой рынок в момент пандемии коронавируса и о других трендах отрасли.

В последние годы компании по всему миру продолжают всё больше инвестировать в свою информационную безопасность. Наблюдается зависимость коммерческого успеха от правильного и безопасного размещения данных в сети. Переход на удалённую работу заставляет фирмы обращать внимание на используемые инструменты информационной безопасности. Естественно, что растёт и рынок SSL-безопасности: происходит количественный и качественный рост тех компаний, которые переводят свои сайты и серверы на безопасное HTTPS-соединение.

Безусловно, распространение вируса COVID-19 оказало влияние на экономику практически всех стран и отраслей. Из-за ситуации с пандемией с начала 2020 года в сравнении с тем же периодом прошлого года наблюдается небольшое отставание в росте SSL-сертификатов, которое коснулось большинства стран.

Для примера, в России в феврале этого года количество SSL-сертификатов составило 1 476 822, в марте оно упало до 1 297 920, но уже в апреле начался небольшой рост, и общее количество выросло до 1 325 999 сертификатов, что говорит если не о полном восстановлении, то по крайней мере о тенденции возвращения к нормальному функционированию.

Несмотря на сложность прогнозирования в текущей ситуации, последние 4 года продолжает прослеживаться значительная динамика роста SSL-сертификатов по всем странам.


Количество SSL-сертификатов по странам (по данным компании Netcraft). Данные приведены без учёта самоподписанных сертификатов.

Первенство по количеству сайтов продолжает удерживать США. К списку традиционных лидеров крупнейших стран Западной Европы в этом году присоединилась Япония, занявшая 3-е место. Также в этом году в топ-10 стран вошёл Китай, замыкая список лидеров. Россия продолжает занимать 9-ю строчку рейтинга, оставив позади Италию, Австрию, Швейцарию и Испанию.

Особенности российского рынка SSL-сертификатов

По данным аналитического ресурса StatOnline.ru, в апреле 2020 года в зоне .RU были активны 1 440 000 SSL-сертификатов, а в.РФ 150 000. Количество валидных SSL (т. е. выданных удостоверяющими центрами) значительно превосходит количество невалидных 1 470 000 тысяч сертификатов в сумме, выпущенных на домены в зонах .RU и.РФ. Число невалидных и самоподписанных составляет 125 000.

В топ-5 удостоверяющих центров по количеству выпущенных SSL в .RU сегодня входят: Let's Encrypt (960 000), CloudFlare Inc (110 000), DigiCert Inc (85 000), GlobalSign (75 000) и Sectigo Limited (55 000). Значительный перевес Let's Encrypt обусловлен возможностью получать в этом УЦ бесплатные SSL-сертификаты сроком до 90 дней.

В .RU больше всего сертификатов со сроком действия менее года (81%) и 1 год (18%). Наиболее популярен формат использования одного SSL-сертификата для одного домена, их число превышает 1 миллион. Но мультидоменные сертификаты (SAN) тоже востребованы. Так, в сумме количество тех, которые приходятся на 3-10 доменов, составляет около 80 тысяч.

Цифровая безопасность становится всё более актуальной в современном мире, как для обычного пользователя, так и для любой компании. Несмотря на ограничения в условиях пандемии во всём мире, мы отмечаем растущую важность онлайн-коммуникаций и, как следствие, повышенный интерес к защите информации и в частности SSL-сертификатам среди российских компаний, отмечает генеральный директор GMO GlobalSign Russia Дмитрий Рыжиков.

Количество новых SSL-сертификатов ежегодно растёт, что важно для защиты данных пользователей, и эта тенденция будет только усиливаться. Среди причин роста не только экономические условия, которые стимулируют бизнес переходить в онлайн, но и другие. Например, рост мобильного Интернета. Так, мобильные операторы используют HTTP-трафик, показывая на нём рекламу. Это дополнительно подталкивает владельцев доменов к установке SSL.

Вместе с нашим партнёром, старейшим удостоверяющим центром GlobalSign, мы и дальше будем предоставлять сертификаты всем желающим на российском рынке, в том числе SSL-сертификат на один год в комплекте с доменом и хостингом, комментирует Алексей Королюк, генеральный директор хостинг-провайдера и регистратора доменов REG.RU.
Подробнее..

Снова TOR, снова SSL Strip

11.08.2020 22:15:51 | Автор: admin
Если кто-то еще не в курсе, то 9 августа некий Nusenu, владелец выходной ноды в TOR, опубликовал пост, в котором заявил, что более 23% всех выходных нод находятся под контролем злоумышленников, которые перехватывают трафик пользователей и подменяют на лету Bitcoin кошельки в попытке увести чужие средства. Оригинал статьи находится здесь.

Особенность ситуации в том, что атакующие применяли технику sslstrip, которая почему-то считается давно умершей и утратившей актуальность. Пока т.н. специалисты твердят об HTTP Strict Transport Security (= HSTS) и прочих preloaded списках доменов, сетевые злодеи вовсю эксплуатируют старую технику, которой не чурался и Эдвард Сноуден.




Предлагаю вам ознакомиться с двумя видео роликами. В первом рассказывается история и суть атаки sslstrip.



Во втором рассказывается о механизме HSTS и демонстрируется способ его обхода при помощи инструмента Intercepter-NG.



Также рекомендую ознакомиться со следующим интервью, в котором затрагиваются вопросы MiTM атак и возможные способы защиты от них.

Подробнее..

Четверть выходных нод TOR под контролем злоумышленников

12.08.2020 02:23:19 | Автор: admin

9 августа некий Nusenu, владелец выходной ноды в TOR, опубликовал пост, в котором заявил, что более 23% всех выходных нод находятся под контролем злоумышленников, которые перехватывают трафик пользователей и подменяют на лету Bitcoin кошельки в попытке увести чужие средства. Оригинал статьи находится здесь.

Истинный масштаб операций этой группы неизвестен, но их главной целью является получение прибыли. Злоумышленники осуществляют атаки man-in-the-middle на пользователей Tor и манипулируют трафиком, проходящим через подконтрольные им выходные узлы. Особенность ситуации в том, что атакующие применяли технику sslstrip, которая почему-то считается давно умершей и утратившей актуальность. Пока т.н. специалисты твердят об HTTP Strict Transport Security (= HSTS) и прочих preloaded списках доменов, сетевые злодеи вовсю эксплуатируют старую технику. В свое время Эдвард Сноуден использовал такие-же приемы в своей деятельности.

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

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


Во втором рассказывается о механизме HSTS, который призван предотвратить использование техники sslstrip. Кроме этого в ролике демонстрируется способ обхода HSTS при помощи инструмента Intercepter-NG и объясняется принцип действия.


Также рекомендую ознакомиться со следующим интервью, в котором затрагиваются вопросы MiTM атак и возможные способы защиты от них.

Подробнее..

Новое применение Captive Portal для проведения MiTM атак

03.09.2020 22:12:42 | Автор: admin

Тема проведения Man in the Middle атаки в контексте Captive Portal стара как мир.
Как правило ведется речь о поднятии фейковой беспроводной точки доступа с собственным Captive порталом. Сегодня я покажу совершенно другой вектор атаки, выходящий за грани WiFi и применимый в том числе и в проводных Ethernet сетях.


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

Являясь непосредственным регулятором доступа в интернет, данный сетевой сервис обладает возможностями блокировать или пропускать соединения клиента. Попав в изолированную порталом сеть клиент должен каким-то образом понять, что для доступа в интернет требуется предварительная авторизация. Со стороны Captive Portal'а могут применяться следующие шаги:

1. Слать HTTP редиректы на все открытые веб запросы клиента.
2. Отвечать IP адресом портала на все DNS запросы.
3. Грубо редиректить весь веб траффик на страницу портала.

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

Для Windows Vista\7\8 это проверка www.msftncsi.com/ncsi.txt
Для Windows 10 www.msftconnecttest.com/connecttest.txt
Для iOS www.apple.com/library/test/success.html
Android и Chrome делают запрос /generate_204 на один из своих доменов.

Ключевым моментом здесь является использование голого HTTP. Это сделано для того, чтобы Captive Portal имел возможность послать редирект клиенту на страницу авторизации.

Теперь я опишу как можно создать Captive Portal используя один лишь Intercepter-NG и провести MiTM атаку.

Будем применять ARP Spoofing против выбранной для тестов цели, пусть это будет Windows 10. Затем нам нужно изолировать цель от интернета, как это делает настоящий портал-ловушка. В данном случае достаточно будет включить SSL MiTM и интернет в виде браузера и всех служб, использующих HTTPS в своей работе, перестанет функционировать, т.к. возникнут проблемы доверия к SSL сертификату.

Столкнувшись с недоступностью HTTPS у цели будут запущены описанные ранее механизмы проверки соединения. Специально для реализации Captive Portal'а в Intercepter был добавлен обработчик таких проверок, в итоге он отправит цели редирект на свой же IP адрес. В режиме FATE интерцептера используется простенький web сервер и там же можно выбрать шаблон со страницей портала. В итоге цель попадёт на созданный нами портал.

Вот несколько интересных моментов:

1. У Windows в фоне осуществляется множество различных процессов, использующих сеть. Если при их выполнении произойдет неудачное подключение, то может запуститься механизм определения состояния сети. Находясь под атакой Windows поймает редирект Intercepter'а и откроет браузер с нашим порталом. Представьте ситуацию: заблокирована пользовательская сессия, пользователь возвращается на рабочее место, авторизуется и тут же на экране всплывает веб страница атакующего.

2. Происходит атака, цель открывает Chrome и пытается зайти в Google. Выявляется ошибка SSL, т.к. включен MiTM, затем Chrome посылает запрос /generate_204 Intercepter отвечает ему редиректом и Chrome открывает в новой вкладке страницу портала.

Эта техника работает и в беспроводных и в проводных сетях, в любой момент времени, а не только после подключения к сети. Проведено несколько тестов на Android смартфонах полёт нормальный. С Apple пока непонятно, на iOS версий 12 и 13 при блокировке HTTPS не обнаружены никакие диагностические HTTP запросы, возможно удастся решить этот вопрос в будущем.

Область применения данного MiTM портала ограничена только фантазией. Чуть больше деталей и полноценная демонстрация представлена в следующем видео ролике. В нем показан перехват вводимых пользователем данных, авторизации Twitter с помощь SSL Strip и HSTS Spoofing, а так же перехват SSL авторизации Vkontakte.



Обновленную сборку можно скачать на Github

Информация дана для ознакомления, используйте для добрых дел. Доступен чат в телеграмме t.me/cepter_chat
Подробнее..

Американский суд признал массовую слежку за гражданами незаконной с опозданием на 7 лет

07.09.2020 22:10:18 | Автор: admin


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

В 59-страничном постановлении суд заявил, что массовый сбор и анализ метаданных о телефонных переговорах граждан нарушает Акт о негласном наблюдении за иностранными разведками (Foreign Intelligence Surveillance Act, FISA) и вполне может быть нарушать Конституцию.

Тем временем Эдвард Сноуден вынужден семь лет скрываться в России, а американские власти до сих пор не сняли с него обвинение в шпионаже.

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


В 2013 году Сноуден передал в СМИ сверхсекретные документы о глобальных программах слежки, осуществляемых американскими и британскими разведывательными агентствами. За эти статьи издания The Guardian и The Washington Post получили Пулитцеровскую премию.

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

До этого момента высшие чины разведки публично настаивали, что АНБ никогда сознательно не собирало информацию об американцах. После разоблачения программы американские официальные лица вернулись к аргументу, что шпионаж якобы сыграл решающую роль в борьбе с экстремизмом внутри США, ссылаясь, в частности, на дело четырёх жителей Сан-Диего, которые обвинялись в оказании помощи религиозным фанатикам в Сомали.

Американские официальные лица настаивали, что эти четверо были осуждены в 2013 году благодаря программе массовой слежки АНБ за телефонными разговорами. Но Апелляционный суд девятого округа США постановил в среду, что эти утверждения несовместимы с содержанием секретных документов. То есть они противоречат документам и по сути тоже являются ложью.



Наблюдательные группы, включая Американский союз гражданских свобод (ACLU), который помог подать апелляцию по делу экстремистов, приветствовали вердикт судей о шпионской программе АНБ: Сегодняшнее решение является победой наших прав на неприкосновенность частной жизни, говорится в заявлении ACLU, Очевидно, что массовый сбор АНБ телефонных записей американцев нарушает Конституцию.

Программа по отслеживанию звонков началась без разрешения суда при президенте Джордже Буше-младшем после терактов 11 сентября 2001 года. Аналогичная программа была одобрена секретным судом FISA в начале 2006 года и неоднократно возобновлялась, но суд 9-го округа заявил, что эти решения были юридически ошибочными.

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

АНБ собирало телефонные метаданные миллионов американцев на постоянной, ежедневной основе в течение многих лет, написала судья Марша Берзон в своём особом мнении. У Моалина (один из подсудимых по делу об экстремизме) могли быть разумные ожидания конфиденциальности относительно метаданных своих звонков.

Суд 9-го округа по сути одобрил постановление Нью-Йоркского суда 2-го округа от 2015 года, что массовая слежка недостаточно тесно связана с каким-либо конкретным расследованием, то есть судебное постановление в рамках конкретного расследования не может легализовать массовую обработку данных.

В России тоже действуют программы массовой слежки за населением, как у АНБ.



7 июля 2016 года президент Путин подписал принятый парламентом и Советом Федерации пакет Яровой-Озерова с поправками в российское законодательство, в том числе поправками в закон О связи. Операторы связи и организаторы распространения информации в интернете обязаны хранить до шести месяцев весь трафик пользователей текстовые сообщения, голосовую информацию, изображения, звуки, видео-, иные электронные сообщения. Операторы связи обязаны в течение трёх лет хранить метаданные информацию о фактах приёма, передачи, доставки сообщений и звонков. Интернет-провайдеры обязаны хранить такую информацию в течение одного года.

ФСБ настаивает на дешифровке TLS/SSL-трафика в режиме реального времени перед записью в хранилище. Для этого планируется развернуть российский УЦ для выдачи правильных SSL-сертификатов.

Поправки Яровой вступили в силу 1 июля 2018 года, но де-факто закон ещё не работает. В данный момент российские операторы завершают модернизацию технической инфраструктуры для массового хранения данных.
Подробнее..

Приглашение к обсуждению методики составления индекса HTTPS-защищенности сайтов

15.10.2020 16:12:34 | Автор: admin
Мы выпустили уже несколько обзоров поддержки HTTPS на сайтах российских органов власти и столкнулись с неизбежной необходимостью четче формализовать критерии, по которым она оценивается. Понятно, что если сервер подтверждает защищенность соединения чужим TLS-сертификатом, то это шляпа и высокого места в рейтинге соответствующему сайту не занять.

Но дальше возникают менее однозначные вопросы, например: поддержка TLS_RSA_EXPORT_WITH_RC4_40_MD5 это полная шляпа или просто недостаток? А если этот шифронабор из 60-х 90-х первым предлагается клиенту для согласования? А если все остальные не сильно лучше? А что такое сильно лучше? Скажем, TLS_PSK_DHE_WITH_AES_128_CCM_8 лучше или нет?

В результате родилась методика составления индекса, позволяющая формально оценивать степень надежности HTTPS-соединения по 31 пункту с разбивкой на 5 групп, от это вообще не HTTPS до так держать!

Чем точно не является индекс, так это российским ответом NIST/HIPAA/PCI DSS и т.п. по двум причинам.

Первая индекс учитывает только надежность HTTPS-соединения. Производительность веб-сервера (NPN/ALPN/session resumption) и т.п. материи индекс не рассматривает, не для того он придумывался.

Вторая NIST.SP.800 и прочие стандарты индустрии ориентируются на эллиптические кривые NIST, доверия к которым чуть более, чем никакого, зато есть вопросы с точки зрения ECDLP/ECC (задорную ремарку про шапочку из фольги можно невозбранно оставить в комментах).

Хотя кто знает, может со временем из индекса и вырастет суверенный стандарт с духовностью и скрепами Кузнечиком и Магмой (но не раньше, чем IETF признает их частью стандартных шифронаборов для TLS).

Основная идея индекса: в 2020 году настоящим HTTPS можно считать лишь TLS 1.2 и выше с соответствующим комплектом шифронаборов и эллиптических кривых. Старым шифронаборам, даже если они не имеют известных уязвимостей, пора на свалку истории. Рассуждения про необходимость поддержки legacy-клиетов в пользу бедных: Windows XP до сих пор популярен, но его пользователи не шастают сегодня по Интернету через Internet Explorer 8 с его доисторическим Schannel, а используют для этих целей браузеры на основе Chromium/Firefox, использующими NSS. То же самое относится к пользователям старых версий Android они либо поставили альтернативный браузер, не полагающийся на системную криптобиблиотеку, либо не могут пользоваться большинством современных сайтов даже через HTTP (без поддержки CSS3 и прочих современных свистоперделок).

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

1. Минимальные критерии

1.1. Поддерживается соединение по протоколу HTTP с шифрованием (HTTPS), обеспечиваемым использованием криптографического протокола TLS. HTTPS-соединение устанавливается с идентификатором протокола (схема URI) https по TCP-порту 443.

1.2. Шифрование соединения подтверждается действительным, не самоподписанным и не пустым TLS-сертификатом сайта стандарта X.509 версии 3, выданным авторитетным центром сертификации (CA).

2. Дополнительные критерии

2.1. Сервер не подвержен известным уязвимостям в реализации поддержки защищенного соединения (BEAST, POODLE, GOLDENDOODLE и т.п.)

2.2. TLS-компрессия не поддерживается.

2.3. Поддерживается только безопасное пересогласование (secure renegotiation) по инициативе сервера; пересогласование по инициативе клиента не поддерживается.

3. Рекомендуемые критерии

3.1. Соединение по протоколу HTTP автоматически (принудительно) переключается на HTTPS.

3.2. Публичный ключ TLS-сертификата сайта имеют длину 2048 бит. Сертификат подписан цифровой подписью по алгоритму SHA256 с шифрованием по алгоритму RSA или ECDSA.

3.3. Поддерживается протокол TLS версии 1.2.

3.4. Протоколы SSL и TLS версии 1.1 не поддерживаются.

3.5. Поддерживаются стандартные шифронаборы на основе стойких алгоритмов.

3.6. Слабые, неподходящие и уязвимые шифронаборы не поддерживаются.

3.7. Поддерживаются ECDLP/ECC-безопасные эллиптические кривые.

3.8. Задан порядок согласования шифронаборов.

3.9. Используются устойчивые параметры алгоритмов согласования ключей на основе протокола Диффи-Хеллмана (DH).

3.10. Поддерживаются важные расширения TLS.

3.11. Поддерживается Server Name Indication (SNI).

4. Расширенные критерии

4.1. Опубликована полная и не избыточная цепочка TLS-сертификатов с их верной последовательностью в цепочке.

4.2. TLS-сертификат сайта поддерживает Certificate Transparency.

4.3. TLS-сертификат сайта поддерживает Certificate Revocation List (CRL) и Online Certificate Status Protocol (OCSP).

4.4. TLS-сертификаты в альтернативных цепочках соответствуют Критериям 1.2, 4.1.

4.5. ECDLP/ECC-небезопасные эллиптические кривые не поддерживаются.

4.6. Задан порядок согласования эллиптических кривых.

4.7. Заголовки ответа сервера (HTTP response headers) содержат заголовок HTTP Strict Transport Security с директивой includeSubDomains.

5. Бонусные критерии

5.1. TLS-сертификат сайта поддерживает OCSP Stapling.

5.2. TLS-сертификат сайта выдан с использованием процедуры проверки организации (OV) или расширенной проверки (EV).

5.3. Поддерживается протокол TLS версии 1.3.

5.4. Задан порядок согласования устойчивых шифронаборов от более устойчивых к менее устойчивым (по сопоставимым параметрам).

5.5. Ресурсные записи DNS для доменного имени сайта включают запись CAA (Certification Authority Authorization).

5.6. Ресурсные записи DNS для доменного имени сайта включают записи DS и TLSA (поддерживаются DNSSEC и DANE).

5.7. Поддерживается Encrypted Server Name Indication (ESNI).

5.8. Заголовки ответа сервера (HTTP response headers) содержат заголовок Content-Security-Policy с директивой upgrade-insecure-requests.
Подробнее..

GlobalSign выпустила первый в мире кроссплатформенный агент для управления сертификатами под Windows, macOS и Linux

28.01.2021 02:19:40 | Автор: admin


19 января 2021 года компания GlobalSign объявила о выходе AEG 6.4 новой версии шлюза автоматической регистрации Auto Enrollment Gateway, вместе с которым представлена маленькая, но уникальная программка: кроссплатформенный агент для автоматической выдачи и управления сертификатами под Windows, Mac OS и Linux. Компания заявляет, что это первое такое предложение от любого удостоверяющего центра в мире.

Агент регистрации


Кроссплатформенный агент регистрации небольшая программа, которая устанавливается на устройстве и использует протокол ACME или SCEP для связи с AEG. Во многих случаях агент также обеспечивает соблюдение определённых отраслевых правил или национальных нормативных актов. Кроме того, агент устраняет барьеры для S/MIME, поскольку работает на любой платформе и операционной системе, что также повышает масштабируемость. Например, если из компании увольняется сотрудник, то его ключи автоматически архивируются.

Агент регистрации легко устанавливается на любом клиенте или сервере Windows, macOS и Linux. Утилита помогает устанавливать политики управления сертификатами и управлять с помощью интуитивно понятной панели мониторинга AEG.



Кроме того, агент автоматически выдаёт и контролирует сертификаты. Это великолепно масштабируемый метод развёртывания сертификатов на устройствах, машинах, клиентах S/MIME и серверах организации.

Установка агентов на своих конечных точках даёт организации больший охват и контроль над всей своей сетью, говорит Лила Ки, генеральный директор отдела операций в Северной и Южной Америке GlobalSign. Это также означает, что пользователям и администраторам больше не нужно полагаться на сложные методы регистрации сертификатов, что в конечном итоге улучшает управление сертификатами. Мы действительно ставим последнюю точку в автоматизации этого процесса. AEG 6.4 идеально подходит для организаций, которые хотят начать или оптимизировать удалённую работу, обеспечить безопасность сетей BYOD и автоматизировать функции PKI, которые потребляют время и ресурсы в ручном управлении.

Что такое Auto Enrollment Gateway


Auto Enrollment Gateway это полностью автоматизированное PKI-решение, которое интегрирует PKI непосредственно с Active Directory, поэтому в среде Windows можно автоматизировать выпуск сертификатов и управление ими без необходимости поддерживать собственный удостоверяющий центр. Поддержка протоколов SCEP и ACME v2 расширяет использование сертификатов за пределы домена Windows, позволяя автоматизировать сертификацию для серверов Linux, а также мобильных, сетевых и других устройств.



Передавая услуги по шифрованию и управлению сертификатами доверенному удостоверяющему центру, компания снижает риски, связанные с управлением и поддержанием работы собственной инфраструктуры PKI.

Если требуются публичные доверенные сертификаты (например, для отправки за пределы компании зашифрованных или скреплённых электронной подписью электронных писем), можно получить такой сертификат не через приватный корневой удостоверяющий центр, а через публичный доверенный корневой удостоверяющий центр GlobalSign.

При подаче заявки на сертификат закрытый ключ защищённым образом отправляется на выделенный локальный сервер и архивируется на нём. Архивация и восстановление ключа принципиально важны при использовании протокола S/MIME и помогают избежать безвозвратной потери зашифрованных данных в случае, если оригинальный ключ шифрования более не доступен.

В целом для многих компаний AEG более безопасное и удобное решение, чем управлять собственным удостоверяющим центром. Собственный УЦ в конечном счёте очень дорого обходится, если учесть зарплаты специалистов и обслуживание серверов. В то же время AEG автоматизирует выдачу и обслуживание сертификатов любых типов, в том числе:

  • Вход в систему с помощью смарт-карт
  • Электронные подписи в документах Microsoft Office,
  • Подпись кода
  • Защита электронных сообщений
  • SSL/TLS
  • Система шифрования данных Encrypted File System (EFS) на уровне файлов в операционных системах
  • Аутентификация пользователей
  • Аутентификация устройств
  • Мобильная аутентификация
  • и т.д.

Шлюз AEG идеально подходит для любой компании с более чем 500 сотрудниками и/или устройствами, а также для тех, кто использует Microsoft Active Directory. Управление PKI и автоматизация особенно востребованы в нынешних условиях, которые требуют от сотрудников удалённой работы.

AEG 6.4 также реализует опции безопасности, в которых сейчас нуждаются компании: S/MIME для безопасной электронной почты, удалённая сетевая аутентификация и инструменты для управления всем этим. Это снижает нагрузку на IT-отдел, экономит время и деньги ресурсов, а также значительно повышает уровень безопасности компании.
Подробнее..

Перевод Как я угнал национальный домен Демократической Республики Конго

25.02.2021 16:13:17 | Автор: admin
Примечание: проблема решена. Сейчас национальный домен .cd уже не делегирует полномочия скомпрометированному нейм-серверу

TL;DR Представьте, что может произойти, если национальный домен верхнего уровня (ccTLD) суверенного государства попадет в чужие руки. Однако я (@Almroot) купил доменное имя, которое указано для делегирования NS в национальном домене Демократической Республики Конго (.cd), и временно принял более 50% всего DNS-трафика для этой TLD. На моём месте мог оказаться злоумышленник, который использовал бы эту возможность для MITM или других злоупотреблений.



Вступление


За неделю до Рождества я решил провести анализ всех записей NS для всех TLD в мире. И моё внимание привлекло одно обстоятельство. У домена scpt-network.com был указан код статуса EPP redemptionPeriod. Это означает, что владелец не перечислил деньги за продление домена. Если владелец продолжит игнорировать оплату, то у него отберут собственность и домен поступит в свободную продажу.

Довольно проблематичная ситуация, поскольку он входит в список NS-серверов, управляющих зоной .cd:

almroot@x:~$ dig NS +trace cd | grep "cd."cd.172800INNSns-root-5.scpt-network.com.cd.172800INNSigubu.saix.net.cd.172800INNSsangoma.saix.net.cd.172800INNSns-root-2.scpt-network.com.cd.172800INNSsabela.saix.net.cd.172800INNSns-root-1.scpt-network.com.

Я решил на всякий случай написать bash-скрипт, который уведомит меня при любом изменении EPP-статуса.

К моему удивлению, примерно через неделю пришло уведомление, что домен перешёл в статус pendingDelete.

Я осознавал всю серьёзность ситуации. Доменное имя вскоре выставят на продажу для всех желающих, то есть любой человек может элементарно завладеть нейм-сервером .cd.

Я изменил скрипт и начал поминутно пинговать регистратора на предмет дальнейших изменений статуса.

Вечером 30 декабря пришло уведомление. Я открыл ноутбук и купил доменное имя, чтобы оно не попало в чужие руки.



Поскольку оставались ещё три записи делегирования на SAIX (South African Internet eXchange, Южноафриканская точка обмена трафиком), национальный домен сохранил работоспособность (хотя скорость резолвинга любых доменов немного уменьшилась).

Завладев scpt-network.com, я мог настроить любой поддомен на своё усмотрение. Например, если создать новый поддомен ns-root-1 с A-записью, которая указывает на IP-адрес 1.3.3.7, то на этот адрес 1.3.3.7 пойдут DNS-запросы для зоны .cd. Любой DNS-ответ на эти запросы будет принят как легитимный.



Если не ответить на запрос, то абонент словит таймаут с кодом состояния SERVFAIL. Это хорошо, потому что при получении такого кода он попытается связаться с любым другим сервером имён (NS record) для этой зоны. Так он в конечном итоге попадёт в одну из нормальных записей SAIX и будет соответствующим образом перенаправлен в нужное место назначения.

Потенциальное влияние


Захват национального домена верхнего уровня суверенного государства имеет серьёзные негативные последствия, особенно если этот домен попадёт в руки киберпреступников или иностранного противника. Демократическая Республика Конго (ДРК) немаленькая страна. Это примерно 90 миллионов человек, не говоря о многочисленных международных компаниях и организациях, работающих в этой доменной зоне.

Угон DNS-записи TLD целой страны явление редкое, но не новое. Например, десять лет назад киберпреступники захватили домен бывшего Советского Союза (.su), а в 2015 году вьетнамские сайты Lenovo и Google (.vn) также стали жертвами угона DNS. Перенаправление DNS-трафика с легальных сайтов .cd на фишинговый сайт одна из очевидных возможностей для злоупотреблений, но есть и другие:

  • Пассивный перехват DNS-трафика
    для слежки или эксфильтрации данных
  • Создание новых доменных имён из воздуха
    представьте себе возможности для быстрой генерации новых доменных имён с переключением ботнета на новые командные серверы каждые несколько минут, так что их никто не успевает заблокировать (техника fast flux)
  • Атаки с удалённым выполнением кода (RCE) в локальных сетях
    жертвами станут компании, которые используют протокол WPAD (протокол автоматической настройки прокси)
  • Поддельные DNS-ответы на законные DNS-запросы
    полный захват корневых доменов в зоне .cd или проведение DDoS-атаки.

Например, я мог написать эксплоит для захвата конкретного домена в зоне .cd. Представьте, что для любых NS-запросов к google.cd я всегда возвращаю ответы ns-root-1.scpt-network.com (вместо этих четырёх: [ns1,ns2,n3,ns4].google.com). Абонент получит такой ответ, и отправит любые последующие DNS-запросы к ns-root-1.scpt-network.com.

Это также заставило меня задуматься: а что, если отвечать на все NS-запросы ссылкой на себя. Тогда для любого запроса, на который ответит 1.3.3.7, все поиски домена в конечном итоге пойдут по этой ссылке. И весь последующий сетевой трафик будет перенаправлен на 1.3.3.7, что может привести к DDoS-атаке.

На самом деле это также повлияет на доступность всей TLD, ведь 50% DNS-ответов станут неправильными. Силу (обеих) DoS-атак можно увеличить путём установки высокого TTL в ответах DNS.

Сделаем ещё один шаг вперёд. Скажем, я конкретно подделываю TXT-записи для сервера google.cd. С помощью поддельных текстовых файлов я обманываю
систему проверки DNS-01 у регистратора Lets Encrypt и получаю действительный сертификат для google.cd, после чего эффективно взламываю зашифрованный канал SSL/TLS.

Поскольку я могу контролировать делегирование NS-серверов для любого домена .cd и получить валидные сертификаты, то могу провести MITM-атаку даже если жертва использует SSL/TLS.

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

В то время как Google применяет различные контрмеры против таких злоупотреблений, можно с уверенностью сказать, что это не относится ко всем корневым доменам в зоне .cd. Дополнительную информацию о том, как удостоверяющие центры проверяют право собственности на домены, см. в BR 1.7.3.

И последнее, но не менее важное: имея привилегированный доступ на вышестоящий хост с контролем DNS, я могу проникнуть в локальные сети компаний (пример на скриншоте ниже), которые отправляют DNS-запросы для WPAD можно отслеживать их запросы, подделать ответы и перенаправить жертву для загрузки и выполнения вредоносной конфигурации прокси-сервера на JS. У протокола WPAD своя куча проблем, включая уязвимости RCE, как рассказывали хакеры из команды Project Zero в Google.



Исправление проблемы


7 января 2021 года я связался с административными и техническими контактами, указанными для зоны .cd на странице IANA. Первоначально я хотел передать домен оператору .cd.

Хотя один из контактов ответил и направил меня к коллеге, на момент написания этой статьи я не получил письменного подтверждения, что они устранили проблему. Но вскоре DNS-трафик перенаправили на scpt-network.net.

8 января я также отправил отчёт по программе Internet Bug Bounty в HackerOne, которая предлагает вознаграждение за ответственный взлом инфраструктуры интернета.

Заключение


Угон DNS-сервера несёт крайне негативные последствия, особенно если у злоумышленника плохие намерения. Эта уязвимость затрагивает не только один сайт, поддомен или один корневой домен. Жертвой фишинга, MITM или DDoS может стать абсолютно любой сайт .cd, включая сайты крупных международных компаний, финансовых учреждений и других организаций. А это вторая по численности страна Африки и популярная доменная зона.

На момент написания этой статьи я всё ещё владею доменным именем scpt-network.com хотя делегирование NS-запросов из зоны .cd прекратились примерно 8 января 2021 года после того, как я с ними связался. Эту операцию я провёл для того, чтобы предотвратить захват злоумышленниками доменной зоны Демократической Республики Конго, когда любой желающий мог угнать доменное имя одного из серверов, управляющих ccTLD. К счастью, в этом случае всё обошлось.
Подробнее..

IETF официально прекратил поддержку протоколов TLS 1.0 и 1.1

25.03.2021 00:06:26 | Автор: admin

CC-BY-CA Vadim Rybalko, на основе мема

Рабочая группа инженеров Интернета IETF признала устаревшими протоколы шифрования TLS 1.0 и 1.1. Соответствующие стандарты RFC официально получили исторический статус с пометкой deprecated.

Пометка deprecated означает, что IETF настоятельно не рекомендует использовать эти протоколы. В целях безопасности требуется отключить поддержку TLS 1.0 и 1.1 везде, где это возможно. Об этом говорится в опубликованном RFC 8996. Почему нельзя поддерживать протоколы TLS 1.0 и 1.1 подробно объясняется в пунктах 3, 4 и 5 этого документа.



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

Одновременно со старыми версиями TLS также признаётся устаревшим протокол Datagram TLS (DTLS) версии 1.0 (RFC 4347), и только он, поскольку версия 1.1 не выходила.

Стандарту TLS 1.0 в этом году исполнилось 22 года. С момента его принятия стало лучше понятно, как следует проектировать протоколы шифрования. Выросли требования к надёжности шифров. К сожалению, TLS 1.0 и 1.1 не соответствуют этим требованиям.

Самое плохое, что TLS 1.0 и 1.1 не поддерживают работу с современными криптографическими шифрами. Например, при рукопожатии в них обязательно применяется алгоритм хэширования SHA-1. В этих версиях TLS невозможно установить более сильный алгоритм хэширования для подписей ServerKeyExchange или CertificateVerify.

Черновик данного RFC 8996 был опубликован 14 сентября 2018 года. В числе прочего, там упоминается, что алгоритм SHA-1 с криптостойкостью 2^77 нельзя считать безопасным по современным меркам: 2^77 операций [для атаки] это ниже допустимой границы безопасности.



Речь идёт об атаке BEAST (Browser Exploit Against SSL/TLS) на TLS 1.0 и 1.1, а точнее на блочные шифры, где в качестве вектора инициализации для сообщения n используется последний блок шифрования предыдущего сообщения (n-1).

Разработчики всех ведущих браузеров сразу согласились выполнить рекомендации IETF.

Браузер Chrome первым отказался от поддержки старых версий TLS в январе 2019 года. Начиная версии 79 для устаревших протоколов выводилось предупреждение в консоли DevTools, а полное отключение запланировали на версию Chrome 81 в марте 2020 года (предварительные версии с января 2020 года). Одновременно отказ от TLS 1.0 и 1.1 анонсировали Microsoft, Mozilla и Apple.

Правда, всё пошло не по плану. В марте 2020 года Firefox временно отказался удалять поддержку TLS 1.0 и 1.1. Формально это было сделано из-за коронавируса (см. скриншот ниже), но фактически разработчики Mozilla побоялись, что коллеги из Google пойдут на попятную и оставят поддержку TLS 1.0 и 1.1, так что Firefox станет единственным браузером без этой поддержки.



Но в итоге поддержку старых протоколов в браузерах всё-таки отключили. В случае необходимости в Firefox можно изменить настройку security.tls.version.enable-deprecated.

Постепенно TLS 1.0 и 1.1 удаляют из приложений и сервисов. Это сделали Amazon, CloudFlare, GitHub, KeyCDN, PayPal и другие веб-сервисы. С 15 января 2020 года поддержка старых протоколов отключена на ресурсах Хабра.
Подробнее..

Как установить SSL сертификат на Onlyoffice docker сборки

14.01.2021 14:20:31 | Автор: admin

Поставив и настроив комьюнити версию этого пакета я столкнулся с тем что нет официальных рекомендаций как сгенерировать и запустить работу этого комплекса по защищенному протоколу используя сертификат от Letsencrypt. Этот короткий туториал поможет вам получить сертификат в течении 5-10 минут без сложных телодвижений.

Итак, поехали по шагам.

Я все делал на системе Ubuntu 18.04 запущенной в режиме ВМ на хост машине Proxmox. Данная ВМ была не единой в пуле этого хоста потому, если кому то понадобится, могу дать свой конфиг работающего решения для реверс прокси HAPROXY

Остановим все контейнеры одной командой docker stop $(docker ps -a -q)

Удалим из системы certbot (если он у вас есть, хотя если вы ставите Onlyoffice на чистую систему его там быть не должно в принципе)

Зайдем на официальный сайт https://certbot.eff.org/ и в выпадающем меню выставим нужные параметры как на скриншоте:

3.1 Кому лень или он не разобрался переходим сразу на готовый линк https://certbot.eff.org/lets-encrypt/ubuntubionic-other Выполняем инструкции с шага 1 по шаг 7 на этой странице. Напомню, в процессе по ссылке - вы должны будете установить пакет snapd, без него не заработает. Просто сделайте и все будет работать без лишних слов.

Запустим в консоли от рута certbot certonly standalone sitename.ru (вместо sitename.ru укажите тот домен на котором будет виден из интернета ваш офисный сервер)

4.1 Если все пройдет Ок - вы получите сообщение что сертификаты сгенерированы и лежат на вашем сервере по адресу: /etc/letsencrypt/live/sitename.ru/fullchain.pem /etc/letsencrypt/live/sitename.ru/privkey.pem

4.2 Далее, переименуем и перенесем в нужный каталог полученные сертификаты

cp /etc/letsencrypt/live/sitename.ru/fullchain.pem app/onlyoffice/CommunityServer/data/certs/onlyoffice.crt

cp /etc/letsencrypt/live/sitename.ru/privkey.pem /app/onlyoffice/CommunityServer/data/certs/onlyoffice.key

Перезагрузим сервер с офисом командой shutdown -r now Так будет надежней и наверняка все сервисы запустятся сами, т.к. сам пакет весьма большой и завязан на связанные между собой сервисы лучше его перезапустить целиком а не стартовать докер контейнеры по одному, так меньше шансов что какой то не запустился.

В принципе всё. Теперь зайдя по адресу sitename.ru вы должны попасть на корректно работающий портал документооборота.

На последок крайне желательно зайти в админку офиса и проверить:

Система подцепила ваш домен:

В настройках вы прописали доменное имя sitename.ru - в противном случае в письмах этого пакета будет некорректный адрес типа https://iuyhgi8798ygiknqwq - такой адрес или вымышленный или присваивается по имени докер контейнера - таким образом ни зайти на сайт, ни скачать документов - ничего. Вот такой вот капризный пакет.

Из пока не решенных проблем: а как собственно продлевать сертификаты? Как продлевать я знаю - на эту тему написано куча материала в интернете - но как автоматизировать их переименование и перенос в глубины каталогов на сервере пока не придумал. Если сообщество поможет дельным советом то прошу в комменты или в личку, добавлю в текст основной статьи.

На этом всё, позвольте откланяться.

Подробнее..

Acme.sh Ansible Alias mode Автоматизируем получение и распространение TLS сертификатов

09.06.2021 20:16:20 | Автор: admin

Acme.sh - скрипт, позволяющий без особых проблем получать let's encrypt сертификаты очень разными способами. В данной статье я разберу как получать сертификаты через DNS api, но этим уже никого не удивишь, поэтому расскажу про метод DNS alias, он свежий (всего 3 года) и интересный. А так же про автоматизацию на Ansible и немного про мониторинг сертификатов.

Видеоверсия

Режимы acme.sh получения сертификатов прямо на целевом сервере

  • Webroot

  • Nginx\Apache

  • Stanalone

Режимы хорошие и удобные, когда у вас один - два сервера и можно просто на каждый установить acme.sh. Когда количество серверов, которым нужно TLS, переваливает за десяток, удобнее начать использовать wilcard сертификаты и выделить отдельный сервер для получения и распространения сертификата\ов. Получить wildcard сертификат можно только через подтверждение владения DNS зоной. DNS режимов несколько:

  • DNS manual

  • DNS API

  • DNS alias

Все примеры буду показывать на моём личном домене и установленном локально acme.sh.

DNS manual mode

Manual режим работает супер просто. Запускаем acme.sh с флагом --dns

acme.sh --issue --dns -d *.itdog.info --yes-I-know-dns-manual-mode-enough-go-ahead-please

koala@x220:~$ acme.sh --issue --dns -d *.itdog.info --yes-I-know-dns-manual-mode-enough-go-ahead-please[Ср мая  5 14:52:29 MSK 2021] Using CA: https://acme-v02.api.letsencrypt.org/directory[Ср мая  5 14:52:29 MSK 2021] Creating domain key[Ср мая  5 14:52:29 MSK 2021] The domain key is here: /home/koala/.acme.sh/*.itdog.info/*.itdog.info.key[Ср мая  5 14:52:29 MSK 2021] Single domain='*.itdog.info'[Ср мая  5 14:52:29 MSK 2021] Getting domain auth token for each domain[Ср мая  5 14:52:32 MSK 2021] Getting webroot for domain='*.itdog.info'[Ср мая  5 14:52:32 MSK 2021] Add the following TXT record:[Ср мая  5 14:52:32 MSK 2021] Domain: '_acme-challenge.itdog.info'[Ср мая  5 14:52:32 MSK 2021] TXT value: 'QXRgFOfVOZGOBC1qxAToMNOf7Xsv9gjM8hYG6akRoJ8'[Ср мая  5 14:52:32 MSK 2021] Please be aware that you prepend _acme-challenge. before your domain[Ср мая  5 14:52:32 MSK 2021] so the resulting subdomain will be: _acme-challenge.itdog.info[Ср мая  5 14:52:32 MSK 2021] Please add the TXT records to the domains, and re-run with --renew.[Ср мая  5 14:52:32 MSK 2021] Please add '--debug' or '--log' to check more details.[Ср мая  5 14:52:32 MSK 2021] See: https://github.com/acmesh-official/acme.sh/wiki/How-to-debug-acme.sh

--issue - запрос на получение

--dns без аргумента - режим ручного DNS

--yes-I-know-dns-manual-mode-enough-go-ahead-please - интересное решение проблемы, когда люди не понимают что такое ручной режим

Он выдаёт TXT запись, которую нам необходимо добавить в наш dns хостинг, в данном случае это _acme-challenge.itdog.info TXT QXRgFOfVOZGOBC1qxAToMNOf7Xsv9gjM8hYG6akRoJ8

Ручной он потому что, мы вручную добавляем эту запись.

Анимация manual modeАнимация manual mode

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

После добавления записи проверяем начала ли она резолвится на гугловом dns

koala@x220:~$ dig -t txt _acme-challenge.itdog.info @8.8.8.8; <<>> DiG 9.11.3-1ubuntu1.15-Ubuntu <<>> -t txt _acme-challenge.itdog.info @8.8.8.8;; ANSWER SECTION:_acme-challenge.itdog.info. 1798 IN    TXT    "QXRgFOfVOZGOBC1qxAToMNOf7Xsv9gjM8hYG6akRoJ8"

Она резолвится, а значит можно получать сертификат

koala@x220:~$ acme.sh --renew --dns -d *.itdog.info --yes-I-know-dns-manual-mode-enough-go-ahead-please[Ср мая  5 14:58:08 MSK 2021] Renew: '*.itdog.info'[Ср мая  5 14:58:09 MSK 2021] Using CA: https://acme-v02.api.letsencrypt.org/directory[Ср мая  5 14:58:09 MSK 2021] Single domain='*.itdog.info'[Ср мая  5 14:58:09 MSK 2021] Getting domain auth token for each domain[Ср мая  5 14:58:09 MSK 2021] Verifying: *.itdog.info[Ср мая  5 14:58:13 MSK 2021] Success[Ср мая  5 14:58:13 MSK 2021] Verify finished, start to sign.[Ср мая  5 14:58:13 MSK 2021] Lets finalize the order.[Ср мая  5 14:58:13 MSK 2021] Le_OrderFinalize='https://acme-v02.api.letsencrypt.org/acme/finalize/121...'[Ср мая  5 14:58:15 MSK 2021] Downloading cert.[Ср мая  5 14:58:15 MSK 2021] Le_LinkCert='https://acme-v02.api.letsencrypt.org/acme/cert/042...'[Ср мая  5 14:58:16 MSK 2021] Cert success.-----BEGIN CERTIFICATE-----certificate-----END CERTIFICATE-----[Ср мая  5 14:58:16 MSK 2021] Your cert is in  /home/koala/.acme.sh/*.itdog.info/*.itdog.info.cer [Ср мая  5 14:58:16 MSK 2021] Your cert key is in  /home/koala/.acme.sh/*.itdog.info/*.itdog.info.key [Ср мая  5 14:58:16 MSK 2021] The intermediate CA cert is in  /home/koala/.acme.sh/*.itdog.info/ca.cer [Ср мая  5 14:58:16 MSK 2021] And the full chain certs is there:  /home/koala/.acme.sh/*.itdog.info/fullchain.cer 

После этого TXT запись можно удалить.

Теперь есть ключ и сертификат, который будет действителен 3 месяца. Обновить сертификат можно будет через 2 месяца, let's enctypt даёт запас времени и если у вас вдруг что-то сломается, будет целый месяц чтобы починить и обновить сертификат.

И да, обновляется только сертификат, ключ остаётся таким, какой был выдан в первый раз. Обратите внимание на даты создания файлов, особенно *.example.com.key

# ls -l --time-style=+%Y-%m-%d \*.example.com/total 28-rw-r--r-- 1 root root 1587 2021-04-15 ca.cer-rw-r--r-- 1 root root 3433 2021-04-15 fullchain.cer-rw-r--r-- 1 root root 1846 2021-04-15 *.example.com.cer-rw-r--r-- 1 root root  719 2021-04-15 *.example.com.conf-rw-r--r-- 1 root root  980 2021-04-15 *.example.com.csr-rw-r--r-- 1 root root  211 2021-04-15 *.example.com.csr.conf-rw-r--r-- 1 root root 1675 2019-04-10 *.example.com.key

Хороший режим для одного раза или для понимания как работает подтверждение, но на постоянке каждые 2 месяца вручную обновлять TXT записи не серьёзно, поэтому рассматриваем следующий режим.

DNS API mode

Как это работает? Принцип действия тот же самый что у manual, только acme.sh сам вносит и удаляет TXT запись с помощью API вашего dns провайдера.

Анимация API modeАнимация API mode

Под DNS хостингом и DNS провайдером я буду иметь в виду сервис, в который вносятся DNS записи. Это может быть и DNS хостинг, который есть почти у каждой компании, торгующей доменами (namecheap, beget итд) или как отдельный сервис за деньги (Amazon Route 53, ClouDNS итд), или же ваш собственный сервис развернутый с помощью BIND, PowerDNS итд.

У каждого DNS провайдера свой не стандартизированный API и их поддержка в acme.sh реализована отдельными скриптами. Список всех поддерживаемых провайдеров находится тут https://github.com/acmesh-official/acme.sh/wiki/dnsapi

Для каждого написано как пользоваться и пример. Если вашего провайдера или сервиса нет в списке, можно написать свой скрипт, но не спешите открывать vim, дождитесь третьего способа.

Работу этого режима покажу на примере хостинга DNS у namecheap.

Для каждого DNS провайдера свои настройки, где-то нужно просто включить API и сгенерировать токен, где-то бывает посложнее, например для namecheap нужно ещё внести IP в allow list. Включаем API и сразу генерируется token, добавляем IP в список.

Теперь на локальной машине нужно настроить доступ к API

export NAMECHEAP_USERNAME="USERNAME"export NAMECHEAP_API_KEY="TOKEN"export NAMECHEAP_SOURCEIP="MY-IP"

Отступление про дополнительные флаги force и test. Будем использовать флаг -f (--force), что бы наши сертификаты генерировались заново, т.к. acme.sh видит уже сгенерированные сертификаты при их наличии не будет заново получать. Можно конечно просто сделать rm -rf ~/.acme.sh/domain/ вместо этого. Так же будем использовать флаг --test, что бы лишний раз не нагружать продакшн сервера let's encrypt. Вот такое сообщение мы получим, если после подтверждения в manual режиме попробуем другой режим.

[Ср мая 5 16:39:31 MSK 2021] *.itdog.info is already verified, skip dns-01.

Команда получения через API выглядит таким образом

acme.sh --issue --dns dns_namecheap -d *.itdog.info --test

Здесь после --dns мы добавляем имя провайдера.

Запускаем acme.sh

Раскрыть
koala@x220:~$ acme.sh --issue --dns dns_namecheap -d *.itdog.info --test[Ср мая  5 16:48:05 MSK 2021] Using ACME_DIRECTORY: https://acme-staging-v02.api.letsencrypt.org/directory[Ср мая  5 16:48:06 MSK 2021] Using CA: https://acme-staging-v02.api.letsencrypt.org/directory[Ср мая  5 16:48:06 MSK 2021] Creating domain key[Ср мая  5 16:48:07 MSK 2021] The domain key is here: /home/koala/.acme.sh/*.itdog.info/*.itdog.info.key[Ср мая  5 16:48:07 MSK 2021] Single domain='*.itdog.info'[Ср мая  5 16:48:07 MSK 2021] Getting domain auth token for each domain[Ср мая  5 16:48:09 MSK 2021] Getting webroot for domain='*.itdog.info'[Ср мая  5 16:48:10 MSK 2021] Adding txt value: nCH4tBWCkSVn76301f2SdJqCAzmtXvzQAB_Ag8hURLo for domain:  _acme-challenge.itdog.info[Ср мая  5 16:48:15 MSK 2021] The txt record is added: Success.[Ср мая  5 16:48:15 MSK 2021] Let's check each DNS record now. Sleep 20 seconds first.[Ср мая  5 16:48:36 MSK 2021] You can use '--dnssleep' to disable public dns checks.[Ср мая  5 16:48:36 MSK 2021] See: https://github.com/acmesh-official/acme.sh/wiki/dnscheck[Ср мая  5 16:48:36 MSK 2021] Checking itdog.info for _acme-challenge.itdog.info[Ср мая  5 16:48:37 MSK 2021] Domain itdog.info '_acme-challenge.itdog.info' success.[Ср мая  5 16:48:37 MSK 2021] All success, let's return[Ср мая  5 16:48:37 MSK 2021] Verifying: *.itdog.info[Ср мая  5 16:48:41 MSK 2021] Success[Ср мая  5 16:48:41 MSK 2021] Removing DNS records.[Ср мая  5 16:48:41 MSK 2021] Removing txt: nCH4tBWCkSVn76301f2SdJqCAzmtXvzQAB_Ag8hURLo for domain: _acme-challenge.itdog.info[Ср мая  5 16:48:46 MSK 2021] Removed: Success[Ср мая  5 16:48:46 MSK 2021] Verify finished, start to sign.[Ср мая  5 16:48:46 MSK 2021] Lets finalize the order.[Ср мая  5 16:48:46 MSK 2021] Le_OrderFinalize='https://acme-staging-v02.api.letsencrypt.org/acme/finalize/193...'[Ср мая  5 16:48:48 MSK 2021] Downloading cert.[Ср мая  5 16:48:48 MSK 2021] Le_LinkCert='https://acme-staging-v02.api.letsencrypt.org/acme/cert/fa62...'[Ср мая  5 16:48:49 MSK 2021] Cert success.-----BEGIN CERTIFICATE-----certificate-----END CERTIFICATE-----[Ср мая  5 16:48:49 MSK 2021] Your cert is in  /home/koala/.acme.sh/*.itdog.info/*.itdog.info.cer [Ср мая  5 16:48:49 MSK 2021] Your cert key is in  /home/koala/.acme.sh/*.itdog.info/*.itdog.info.key [Ср мая  5 16:48:49 MSK 2021] The intermediate CA cert is in  /home/koala/.acme.sh/*.itdog.info/ca.cer [Ср мая  5 16:48:49 MSK 2021] And the full chain certs is there:  /home/koala/.acme.sh/*.itdog.info/fullchain.cer

В логе прям видно, что acme.sh добавляет TXT запись, ждёт немного, проверяет запись через доверенные DNS сервера, удаляет запись и скачивает сертификаты с ключом.

После первого запуска через API, acme.sh заносит env переменные c доступами к API себе в файл ~/.acme.sh/account.conf и вам не нужно каждый раз их экспортировать.

Отлично, получение автоматизировали, всё вроде классно. Но у этого метода есть свои недостатки:

  • Если никто не написал скрипта для вашего провайдера\сервиса, то нужно либо писать, либо переезжать на другой провайдер

  • А есть ли у вашего провайдера API?

  • Поразмышляем немного об безопасности. Вот у меня в "открытую" лежит полный доступ к редактированию моего домена, если он каким-то образом попадёт в чужие руки, эти руки могут сделать что угодно. Эту проблему можно решить ограничим доступа в API, например по токену можно только добавлять\удалять txt записи _acme-challenge. Есть ли такая возможность у вашего провайдера? Я не встречал такого, наверное есть у какого-нибудь AWS конечно. Обычно уже хорошо если есть API, а токен один и даёт полный доступ

  • У вас несколько доменов на разных провайдерах (сочувствую). Тут конечно можно настроить каждое API и сделать для каждого провайдера отдельный запуск acme.sh со своими переменными, но мне кажется это не очень удобным. Тем более если у одного из них отсутствует API или скрипт

  • Кто-то просто не любит, что бы в DNS постоянно лазил какой-то скрипт и что-то добавлял\удалял

DNS aliase mode

Это модернизированный режим DNS API.

Идея такая: Есть технический домен, через добавления TXT записей на котором мы подтверждаем владение основным доменом. т.е. acme.sh смотрит CNAME запись у основного домена, видит "перенаправление" на технический домен и идёт к нему проверять TXT запись. А дальше всё как в режиме DNS API.

Анимация alias modeАнимация alias mode

Разберём последовательно. Для демонстрации я купил домен tech-domain.club, он выступает в качестве технического домена. В моём примере основной домен itdog.info располагается на namecheap, а техничский tech-domain.club я делегирую на Hetzner DNS, таким образом операции с записями будут производиться через API Hetzner'a.

В записях основного домена мы добавляем CNAME запись, которая указывает на технический домен

_acme-challenge CNAME _acme-challenge.tech-domain.club

Для провайдера с техническим доменом мы настраиваем доступ к API.

Экспортируем токен Hetzner export HETZNER_Token="TOKEN"

Команда выглядит так (-f и --test опять же для примера)

acme.sh --issue -d *.itdog.info --challenge-alias tech-domain.club --dns dns_hetzner -f --test
Раскрыть
koala@x220:~$ acme.sh --issue -d *.itdog.info -d itdog.info --challenge-alias tech-domain.club --dns dns_hetzner -f --test[Пт мая  7 13:40:11 MSK 2021] Domains have changed.[Пт мая  7 13:40:11 MSK 2021] Using CA: https://acme-v02.api.letsencrypt.org/directory[Пт мая  7 13:40:11 MSK 2021] Multi domain='DNS:*.itdog.info,DNS:itdog.info'[Пт мая  7 13:40:11 MSK 2021] Getting domain auth token for each domain[Пт мая  7 13:40:15 MSK 2021] Getting webroot for domain='*.itdog.info'[Пт мая  7 13:40:15 MSK 2021] Getting webroot for domain='itdog.info'[Пт мая  7 13:40:15 MSK 2021] Adding txt value: Zlrij9n4y5QXfH6yx_PBn45bgmIcT70-JuW2rIUa6lc for domain:  _acme-challenge.tech-domain.club[Пт мая  7 13:40:16 MSK 2021] Adding record[Пт мая  7 13:40:17 MSK 2021] Record added, OK[Пт мая  7 13:40:20 MSK 2021] The txt record is added: Success.[Пт мая  7 13:40:20 MSK 2021] Let's check each DNS record now. Sleep 20 seconds first.[Пт мая  7 13:40:41 MSK 2021] You can use '--dnssleep' to disable public dns checks.[Пт мая  7 13:40:41 MSK 2021] See: https://github.com/acmesh-official/acme.sh/wiki/dnscheck[Пт мая  7 13:40:41 MSK 2021] Checking itdog.info for _acme-challenge.tech-domain.club[Пт мая  7 13:40:42 MSK 2021] Domain itdog.info '_acme-challenge.tech-domain.club' success.[Пт мая  7 13:40:42 MSK 2021] All success, let's return[Пт мая  7 13:40:42 MSK 2021] *.itdog.info is already verified, skip dns-01.[Пт мая  7 13:40:42 MSK 2021] Verifying: itdog.info[Пт мая  7 13:40:46 MSK 2021] Success[Пт мая  7 13:40:46 MSK 2021] Removing DNS records.[Пт мая  7 13:40:46 MSK 2021] Removing txt: Zlrij9n4y5QXfH6yx_PBn45bgmIcT70-JuW2rIUa6lc for domain: _acme-challenge.tech-domain.club[Пт мая  7 13:40:50 MSK 2021] Record deleted[Пт мая  7 13:40:50 MSK 2021] Removed: Success[Пт мая  7 13:40:50 MSK 2021] Verify finished, start to sign.[Пт мая  7 13:40:50 MSK 2021] Lets finalize the order.[Пт мая  7 13:40:50 MSK 2021] Le_OrderFinalize='https://acme-v02.api.letsencrypt.org/acme/finalize/121...'[Пт мая  7 13:40:52 MSK 2021] Downloading cert.[Пт мая  7 13:40:52 MSK 2021] Le_LinkCert='https://acme-v02.api.letsencrypt.org/acme/cert/04e...'[Пт мая  7 13:40:53 MSK 2021] Cert success.-----BEGIN CERTIFICATE-----certificate-----END CERTIFICATE-----[Пт мая  7 13:40:53 MSK 2021] Your cert is in  /home/koala/.acme.sh/*.itdog.info/*.itdog.info.cer [Пт мая  7 13:40:53 MSK 2021] Your cert key is in  /home/koala/.acme.sh/*.itdog.info/*.itdog.info.key [Пт мая  7 13:40:53 MSK 2021] The intermediate CA cert is in  /home/koala/.acme.sh/*.itdog.info/ca.cer [Пт мая  7 13:40:53 MSK 2021] And the full chain certs is there:  /home/koala/.acme.sh/*.itdog.info/fullchain.cer 

CNAME запись удалять не нужно, она будет использоваться при каждом обновлении сертификата. Таким образом, вы можете иметь несколько доменов с настроенной CNAME записью на один технический домен и с его помощью получать сертификаты для всех.

Кстати, если вам нужно в одном файле иметь несколько сертификатов, например и itdog.info и wildcard *.itdog.info, то просто перечислите их с -d, например

acme.sh --issue --challenge-alias tech-domain.club --dns hetzner -d *.itdog.info -d itdog.info

Это правило действует и для других методов.

И так, что даёт нам этот режим:

  • Если у вашего провайдера нет API или лень писать скрипт, возьмите технический домен, делегируйте его на сервис, который поддерживает acme.sh

  • Если у вашего провайдера нет настройки прав для доступа через API, то технический домен тоже выручает. В случае, если наш token утечёт, у злоумышленника будет доступ только к вашему техническому домену, и если вы его используете только для acme.sh, то максимум что сможет сделать злоумышленник - получить ключ и сертификат для вашего домена. Это тоже неприятно и можно использовать, но это совершенно другой уровень угрозы, по сравнению с полным доступом к доменной зоне

  • В ситуации с кучей доменов на одном или нескольких провайдерах, жизнь так же становится проще, когда все они просто имеют CNAME запись

Есть так же режим domain-alias, он даёт возможность использовать не _acme-challenge запись, а кастомную, подробности можно прочитать в документации

Автоматизация получения и распространения сертификатов

Мы получили сертификаты, лежат они у нас красиво в ~/.acme.sh и никак не используются. Надо каким-то образом их распространять на сервера. Далее расскажу, как я это делаю с помощью ansible. Ansible используется и для получения\обновления и для распространения. Сразу предупреждаю, мои плейбуки простые как три копейки и заточены под определенную инфраструктуру. Playbooks, hosts на github.

Мой сервер с ansible, уже имеет доступ ко всем необходимым серверам, на нём установлен acme.sh и реализовано два плейбука, на получение и распространение. Кстати, не забудьте закомментировать acme.sh в crontab, что бы не было лишних запросов и путаницы.

Playbook для получения сертификатов

В vars указывается только технический домен, эта переменная используется несколько раз. Токен от API вынесен в отдельный vars файл, что бы хранить его в зашифрованном виде в git. Task "Date and time" нужен для логирования, что бы понимать когда именно что-то пошло не так. Следующие два плейбука это простой shell, отличаются друг от друга количеством доменов в одном файле сертификата. Всем доменам, которым не нужно сочетать в себе обычный и wildcard домен, идут списком в loop.

Домены, которые должны подходить как для обычного, так и для wildcard идут по втором taks, тоже с помощью loop. Если вам нужно например wilcard вида *.*.itdog.info, то просто добавьте ещё один -d и ещё один subkey в item. Опция ignore_errors необходима, потому что exit code 0 будет только 6 раз за год при обновлении сертификата, в остальное время будут сообщения о том, что сертификат не нужно обновлять, для ansible это ошибка на которой он будет останавливаться.

Для чего плейбук на получение? Ведь в acme.sh и так уже всё настроено!

В одном плейбуке мы собираем всю нашу конфигурацию, доступы и все домены, которым необходим TLS, как минимум, это удобно - не надо копаться конфигах acme.sh. В случае изменения, например, токена, мы просто редактируем его в vars_files, а если нужно добавить ещё один домен\подомен, мы просто добавляем его в loop. Ну и в случае переноса сервера, не нужно переносить ~/.acme.sh, только плейбуки с vars_files взять из git.

Playbook для распространения сертификатов

Здесь нужно писать конечно под вашу инфраструктуру, поэтому повторюсь, показываю это для примера.

Три типа серверов из моей инфраструктуры:

  • tls-hosts - Обычный nginx установленный как пакет из стандартного репозитория

  • tls-hosts-docker - Веб проект с тем же nginx, но уже в docker

  • tls-hosts-docker-rename - Сторонний продукт, в который надо подкладывать сертификат и ключ с определённым именем в определённую директорию (например Harbor, Zabbix)

Первый кейс самый простой, мы сами пишем конфигурацию nginx и можем куда угодно положить сертификаты и как угодно назвать их. При обновлении сертификата, требуется сделать nginx -s reload

Во втором случае всё плюс-минус так же, но уже нужно сделать docker exec project-nginx -s reolad, т.е. уже другой handler.

В третьем случае у нас помимо handler в контейнере, ещё нужно дать сертификату с ключом определённое имя, потому что оно прописано в их конфигурации, которую лучше не трогать, чтоб не было проблем при обновлении.

В моём случае доменов много, пути, по которым сертификаты с ключами хранятся, различаются. Так же есть случаи когда у одного сервера несколько доменов. Что бы была возможность настроить для каждого хоста свой путь и необходимый домен, в hosts для каждого хоста заданы переменные пути и домена.

nginx.itdog.info tls_path=/etc/letsencrypt/*.itdog.info/ DOMAIN=*.itdog.info

Для случаев, когда доменов на сервере несколько, делается два хоста с разными именами и одинаковым ansible_host (Совет, как сделать лучше, приветствуется).

nginx.example.com-1 ansible_host=nginx.example.com tls_path=/etc/letsencrypt/*.example.com/ DOMAIN=example.comnginx.example.com-2 ansible_host=nginx.example.com tls_path=/etc/letsencrypt/*.example.org/ DOMAIN=example.org

Для каждого типа серверов создана своя группа в hosts. Для каждой группы свои немного отличающиеся друг от друга tasks. Для tls-hosts-docker так же добавлена переменная с именем контейнера nginx. А для tls-hosts-docker-rename добавлена переменная, в которой задаётся конечное имя сертификата и ключа.

docker-zabbix.itdog.info tls_path=/root/docker-zabbix/zbx_env/etc/ssl/nginx/ DOMAIN=*.itdog.info CONTAINER=docker-zabbix_zabbix-web-nginx-pgsql_1 cert_name=ssl.crt key_name=ssl.key

Для nginx нужен fullchain и domain.key - копируются только они. Если файлы различаются, происходит копирование и срабатывает handler nginx -s reload. Так же есть проверка, перед тем как зарелоудить nginx, что это файл. У меня один раз был случай, в самом начале пользования acme.sh, скрипт вместо файла с сертификатом создал директорию. Прямо как traefik 1.7 создаёт acme.json директорию, вместо файла. Поэтому я сделал простую проверку. В идеале нужно делать проверку, что сертификат валидный и не просроченный, но для этого требуется иметь на каждом хосте python-pyOpenSSL.

Crontab

23 3 * * * /usr/bin/ansible-playbook /etc/ansible/playbook-get-tls.yml -v >> /var/log/get-tls.log23 4 * * * /usr/bin/ansible-playbook /etc/ansible/playbook-copy-tls.yml -v >> /var/log/copy-tls.log

Можно без проблем вызывать их каждый день, let's encrypt будет вежливо говорить, что пока не нужно обновляться. А когда придёт срок, сертификаты будут обновлены.

Мониторинг сертификатов

Надо следить за тем, что бы сертификаты на доменах обновлялись. Можно мониторить логи получения и распространения, и когда что-то идёт не так - кидать warning в системе мониторинга. Но мы пойдём с одной стороны на минималках, с другой более основательно и ещё помимо этого захватим другие исталяции, например с traefik, который живёт там сам по себе.

Я использую zabbix и скрипт от @selivanov_pavel

Проверим с его помощью мой домен локально

koala@x220 ~/t/acme.sh-test> ./ssl_cert_check.sh expire itdog.info 44341

41 день сертификат на itdog.info будет актуален. Сертификат в let's encrypt обновляется за 30 дней до протухания. А значит, например, если ему осталось жить 10 дней, значит что-то пошло не так и надо идти смотреть.

Темплейт состоит из одного item и одного trigger. Теплейт есть так же на github

ssl_cert_check.sh["expire","{HOST.NAME}","{$TLS_PORT}"]

В item две переменных, первая HOST.NAME берёт имя хоста, предполагается что у нас хост назван по доменному имени. Переменная $TLS_PORT по дефолту 443, но если нужно проверять на нестандартном порту, то записываем значение порта в macros.

Триггер тоже супер простой

{Check tls expire:ssl_cert_check.sh["expire","{HOST.NAME}","{$TLS_PORT}"].last()}<=10

Если полученное значение меньше 10ти - аллерт. Таким образом, мы узнаем если у нас начнут протухать сертификаты и будет 10 дней на починку.

Нормально работает?

Да, acme.sh + DNS API + ansible у меня крутится два года. acme.sh + DNS Alias + ansible крутится пол года. Проблемы возникали только, когда при тестировании доменов забыл отключить crontab и он принёс staging сертификат на прод. Такая проблема решается проверкой на валидность.

Да, в идеале, ansible должен проверять перед копированием, что сертификат валидный и не просроченный. А система мониторинга проверять, помимо expire, валидность сертификатов.

Подробнее..

Запуск Django сайта на nginx Gunicorn SSL

12.03.2021 20:06:18 | Автор: admin

Предисловие

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

Подготовка

У нас есть обычный VPS c ОС Ubuntu, и мы уже написали в PyCharm или в блокноте свой сайт на Django и его осталось всего лишь опубликовать, привязать домен, установить сертификат и в путь.

Первым делом необходимо обновить список репозиториев и установить сразу же пакет nginx:

apt get updateapt get-install nginx

Я решил хранить файлы сайта в каталоге: /var/www/. В данном случае перемещаемся в каталогcd /var/www/и создаем новый каталогmkdir geekheroи получаем такой путь: /var/www/geekhero/

Переходим в новый каталог geekhero:cd geekheroи создаем виртуальное окружение:python3 -m venv geekhero_env

Активируем виртуальное окружение:source geekhero_env/bin/activateи устанавливаем в него Django: pip install Django и сразу же ставим pip install gunicorn

Создаем проект:django-admin startproject ghproj

Далее нужно произвести все первичные миграции; для этого прописываем:python manage.py makemigrations , затемpython manage.py migrate .

После этого создаем административную учетную запись: python manage.py createsuperuser и следуем инструкции.

Далее уже создаем applications, но так как вы читаете данную статью, то вы уже умеете все это делать.

Заходим в Settings.py и прописываем, если отсутствует:
import os в заголовке, остальное в самом низу текстового файла:

STATIC_URL = '/static/'STATIC_ROOT = os.path.join(BASE_DIR, 'static/')

НастройкаGunicorn

Идем в каталог /etc/systemd/system/ и создаем два файла: gunicorn.service и gunicon.socket:

Содержимое файла gunicorn.service:

[Unit]Description=gunicorn daemonRequires=gunicorn.socketAfter=network.target[Service]User=rootWorkingDirectory=/var/www/geekhero #путь до каталога с файлом manage.pyExecStart=/var/www/geekhero/geekhero_env/bin/gunicorn --workers 5 --bind unix:/run/gunicorn.sock ghproj.wsgi:application#путь до файла gunicorn в виртуальном окружении[Install]WantedBy=multi-user.target

Содержимое файла gunicorn.socket:

[Unit]Description=gunicorn socket[Socket]ListenStream=/run/gunicorn.sock[Install]WantedBy=sockets.target

Для проверки файла gunicorn.service на наличие ошибок:

systemd-analyze verify gunicorn.service

Настройка NGINX

Далее идем в каталог: /etc/nginx/sites-available/ и создаем файл geekhero (название вашего сайта) без расширения:

server {    listen 80;    server_name example.com;        location = /favicon.ico { access_log off; log_not_found off; }    location /static/ {        root /var/www/geekhero;           #путь до static каталога    }        location /media/ {        root /var/www/geekhero;           #путь до media каталога    }        location / {        include proxy_params;        proxy_pass http://unix:/run/gunicorn.sock;    }}

Для того, чтобы создать символическую ссылку на файл в каталоге/etc/nginx/site-enabled/необходимо ввести следующую команду:

sudo ln -s /etc/nginx/sites-available/geekhero /etc/nginx/sites-enabled/

При любых изменениях оригинального файла, ярлык из sites-enabled нужно удалять и пересоздавать заново командой выше или выполнять команду:sudo systemctl restart nginx

Финальный этап

Для проверки конфигурации nginx нужно ввести команду:

sudo nginx -t

sudo nginx -tДалее запускаем службу gunicorn и создаем socket:

sudo systemctl enable gunicornsudo systemctl start gunicorn

Для отключения выполняем команды:

sudo systemctl disable gunicorn
sudo systemctl stop gunicorn

Также, эти обе команды пригодятся, если вы будете вносить какие-либо изменения в HTML или python файлы, чтобы обновить свой сайт, но помните, что, если вносите изменения в модели, то обязательно нужно сделать python manage.pymakemigrations <app> и migrate <app> из каталога с проектом.

Для первичного запуска / полной остановки сервиса Gunicorn:
service gunicorn start / service gunicorn stop

Чтобы посмотреть статус запущенного сервиса нужно ввести:

sudo systemctl status gunicornилиsudo journalctl -u gunicorn.socket(с последней командой правильный вывод такой: мар 05 16:40:19 byfe systemd[1]: Listening on gunicorn socket. )

Для проверки создания сокета, необходимо ввести команду:

file /run/gunicorn.sock

Такой вывод считается правильным:/run/gunicorn.sock: socket

Если внес какие-либо изменения в файл gunicorn.service или .socket, необходимо выполнить команду:

systemctl daemon-reload

Если все нормально сработало, то можем запустить nginx:

sudo service nginx start

Получаем сертификат SSL для домена

Установим certbot от Let's Encrypt:sudo apt-get install certbot python-certbot-nginx

Произведем первичную настройку certbot:sudo certbot certonly --nginx

И наконец-то автоматически поправим конфигурацию nginx:sudo certbot install --nginx

Осталось только перезапустить сервис nginx:sudo systemctl restart nginx

Итог

В рамках этой статьи мы разобрали как вывести наш сайт в production, установив Django, Gunicorn, nginx и даже certbot от Let's Encrypt.

Подробнее..

Обходим проверку сертификата SSL

13.12.2020 00:13:26 | Автор: admin

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





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


Всем известно, что при посещении сайта у которого временно что-то случилось c сертификатом вы обнаружите предупреждение, которое показывается, если сертификат безопасности не является доверенным net::ERR_CERT_AUTHORITY_INVALID?


Привет онлайн-кинотеатрам

Все современные браузеры показывают сообщение об ошибке HSTS


Что такое HSTS
HSTS (HTTP Strict Transport Security) это механизм защиты от даунгрейд-атак на TLS, указывающий браузеру всегда использовать TLS для сайтов с соответствующими политиками.

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



Но не во всех браузерах как оказывается, есть данная возможность. Так я столкнулся с данной проблемой в Chrome на Mac OS


Разработчики данной операционной системы настолько обеспокоены безопасностью пользователей, что даже убрали доступ в Небезопасном режиме к сайту, несмотря на то, что это сайт владельца устройства.


Ну что ж, поскольку, вести разработку в других, более сговорчивых браузерах было не комфортно, вот способы как обойти эту проблему:


Все хромоподобные браузеры (Chrome, Opera, Edge ) могут открыть небезопасную веб страницу, если на английской раскладке клавиатуры набрать фразу:


thisisunsafe


прямо на данной веб странице. Это даст возможность работать с сайтом без оповещение об ошибке на момент текущей сессии браузера, пока вы не закроете вкладку Chrome.


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


Для Windows


C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --ignore-certificate-errors




Для Mac OS


/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --ignore-certificate-errors --ignore-urlfetcher-cert-requests &> /dev/null


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


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


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



*Так же есть метод с добавлением сертификатов тестируемого сайта в конфиги браузера Настройки->Безопасность->Настроить сертификаты->Импорт но мне он показался не продуктивным и очень муторным, поэтому не привожу


Надеюсь моя краткая статья кому-то пригодится при разработке и тестировании сайтов =)

Подробнее..

Эффективные менеджеры, или как я ходил до тех. поддержки

01.04.2021 08:15:50 | Автор: admin

Так получилось, что я оказался в некой группе лиц с некими общими идеями и желаниями. Так получилось, что живем мы в 21-ом веке и учитывая наше географическое положение мы обзавелись какими-то серверами, на них какие-то сайтики, ну скажем так, все для личного пользования. Время не стоит на месте и современные браузеры (там всякие хромы, эджи и с логотипом в виде жопы в стрингах) как-то очень критично относятся к сертификатам SSL выпущенными центром сертификации AD. И тут, как назло, при продлении DNS мне впарили SSL сертификат от известного бренда, и в какой-то день я решил его прикрутить

Как я докатился до тех.поддержки.

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

Ну дальше по инструкции:

Консоль IIS -> Сертификаты-> Импорт-> Тыкаем в файлик-> Сертификат в списке-> Привязки сайтика-> Выбор сертификата

Твою мышь а где сертификат??? Ну был же возвращаемся в раздел сертификатов web-сервера А нету Хорошо Повторяем процесс:

Консоль IIS -> Сертификаты-> Импорт-> Тыкаем в файлик-> Сертификат в списке-> Привязки сайтика-> Выбор сертификата

...

<% Длинная, нецензурная, не переводимая на другие языки, брань, включая угрозы сексуального насилия в извращенной форме в сторону прабабушки Била %>

Да где ОН??? Хорошо, пойдем другим путем :

mmc-> Добавляем оснастку Сертификаты -> Локальный компьютер -> Раздел Личные

Ох ты-ж!!!! вот и наш сертификатик Опять консоль IIS ну нету в списке этого сертификата НЕТУ!!!!

Ладно пропустим период принятия что я все-таки дебил, и руки не совсем ровные и не из того места

ОК, пойдем в гугл, он же вумный, подскажет че ни будь спустя минут 15-20 приходит осознание что писать запросы гуглу я тоже не научился

Шо делать???? О!!! я же за это деньгу платил, там целый сайт, там вумные, там же поддержка есть, прям кнопочка с вопросиком на каждой странице

Экшен

В общем тыкаем кнопочку с вопросиком, да матерь божья!!! там целое меню о чатик!!! тыкаем и тут же заходим в атаку:

Тук тук, это мы... тупые парни... есть кто живой?

Видно, бота тренировали, и он сразу ретировался, вроде как девочка появилась (ну имя женское плюс аватарка с огромной и дикой кошкой, пума кажется, ну в общем то пофигу, я уже старый), ну объясняю ситуацию, мол импортируем, а сертификат пропадает из IIS, хотя в личных он есть даже скриншотики закинул

Ну в общем, через пару минут, девица заряжает

это не в моей компетенции, обратитесь к старшим товарищам, через заявку помощи

Ну ОК, ага, значит вопрос не тупой, значит я не совсем дебил радует

Кнопочка с вопросиком -> кнопочка Написать заявку -> Излагаем проблему, прилепляем скриншотики -> ждем 

Через пару литров кофе приходит ответ:

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

Вы можете заказать хостинг у нас, и мы сами установим SSL-сертификат, и настроим переадресацию на HTTPS, чтобы ваш сайт всегда открывался по защищенному протоколу. А также бесплатно перенесем ваш сайт со стороннего хостинга.

Ну в общем как-то ниже эмоции, но читать их можно только лицам 18+

Какого хрена??? Это вы называете ответом??? Вы пытаетесь мне впарить говно белок за звонкую монету!!! @@@@, ;;;;;;@@@@, вы не можете ответить на достаточно простой вопрос и вы имеете право утверждать что сможете тянуть хостинг? Где гарантии вонючие у@ки??? Т.е. я вам должен заплатить денюжку за хостинг, а потом вы так же разведете руки а не получилось, а давайте вы еще заплатите мы вам с нуля все зафигачим!!!, потом опять разведете ручки со словами а не получилось, я буду ругаться но деньги то заплачены и вам станет пофигу, как там говорят в таких случаях не нравится наш сервис валите в перуанскую деревню, там таких много Вы реально решили, что я решил прикрутить SSL к гавно сайтику визитке, нонеймовской конторки с посещаемостью полтора бота в год??? Вы реально издеваетесь у@ки???

Подтягиваем тяжелую артиллерию

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

Тук тук это мы тупые парни, есть минутка?

Получаем отклик установки соединения че надо?, дальше копипастю описание ситуации, добрасываю скриншотики Спустя 30 секунд надписи *** печатает получаю сообщение:

Ты @лан!!! Ты прикручиваешь *.crt в котором нет приватного ключа, как ты надеешься работать??? Учи мат.часть, ключевое слово OpenSSL.exe тебе в помощь.

В общем послал так послал, но путь указан. Открываем яндекс (ну на гугл я еще обижен), вбиваем вопрос OpenSSL.exe как пользоваться, и понимаем что расхожая фраза чем больше в армии дубов тем крепче наша оборона возникла не на пустом месте(судя по яндексу нас тайга) в общем дополняем инструкцию полученную в начале этого пути инфой об OpenSSL радостно получаем файлик *.PFX который прикручиваем до IIS, и О ЧУДО!!!!!!!!!! все заработало.

Заключение

Картинка в начале смешная, а ситуация страшная Да и аффтор картинок молодец, я хрен знает кто это, но жгет от души

Да и я понимаю, что за такие тексты, и выпады в сторону известных конторок банят навсегда, вину осознал и готов понести наказание.

Подробнее..

Актуальные методы расшифрования TLSSSL

10.02.2021 16:11:31 | Автор: admin

Привет, Хабр. В рамках курса Network engineer подготовили авторскую статью.

Также приглашаем всех желающих смотреть
открытый вебинар на тему NAT не Firewall. На нем участники вместе с экспертом рассмотрят NAT и его использование, разберут, почему NAT != firewall. Дополнительно рассмотрят различные виды конфигураций для разных ситуаций.


Шифрование это наиболее популярный способ для защиты сетевого взаимодействия. Статья расскажет об актуальных методах расшифровки данных, которые передаются во время взаимодействия с web-приложениями. Будут рассмотрены примеры расшифровки в зависимости от стартовых условий (наличие ключей шифрования, сертификатов и уязвимостей в схеме передачи информации).

Проблематика и история

Разберемся немного с проблематикой и терминологией. На сегодняшний день наиболее популярными технологиями, которые применяются для шифрования данных, передаваемых по сети, являются SSL и TLS. Последняя сейчас является стандартом дефакто для взаимодействия по протоколу HTTPS. Кстати, именно в расшифровке этого протокола и будет заключаться практическая часть данной статьи. Для понимания процесса расшифровки данных мы должны знать такие понятия как:

  • Симметричная криптография

  • Ассиметричная криптография

  • Сертификат

  • Хранилище сертификатов

  • HSTS или Strict Transport Security технология, которая включена в современных браузерах для контроля над обязательным использованием HTTPS для взаимодействия с сервером.

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

Практика

Практику будем проводить с использованием виртуальной лаборатории. Состав лаборатории:

  • Virtual Box;

  • Windows 8.1;

  • Ubuntu Server 20.04

Также для тестирования способов расшифровки трафика будем использовать устройство iPhonе SE.

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

Расшифровка трафика с использованием SQUID

Squid программное обеспечение, которая эмулирует функцию кэширующего сервера. Может быть использована для распределения нагрузки и логирования действий пользователей по протоколу HTTP в сети, кстати, и с HTTPS это ПО работать тоже умеет. Воспользуемся этой его функцией. К сожалению, использовать squid из репозитория не получится, необходимо собрать его самостоятельно:

```sh wget http://www.squid-cache.org/Versions/v4/squid-4.5.tar.gztar -xvzf squid-4.5.tar.gzcd squid-4.5./configure --with-openssl --enable-ssl-crtd --prefix=/usr/local/squidmakemake allmake install```

Самый действенный способ расшифровки взаимодействия между сервером и клиентом на сегодня это добавление доверенного корневого сертификата, поэтому перед началом расшифровки нужно его сгенерировать:

```sh cd /etc/squidmkdir ssl_certchown squid:squid -R ssl_certchmod 700 ssl_certcd ssl_certopenssl req -new -newkey rsa:2048 -sha256 -days 365 -nodes -x509 -extensions v3_ca -keyout myCA.pem  -out myCA.pemopenssl x509 -in myCA.pem -outform DER -out myCA.der```

Файл сертификата myCA.der можно использовать для браузера. Устанавливаем его в локальное хранилище и прописываем в качестве прокси сервер squid.

Настроим ссылку на вновь скомпилированный файл squid:

```shln -s /usr/local/squid/sbin/squid /usr/local/bin/squid```

Проинициализируем директорию для кэша:

```/usr/local/squid/libexec/security_file_certgen -c -s /var/lib/ssl_db -M 4MBchown squid:squid -R /var/lib/ssl_db```

Модифицируем конфиг:

```shnano /usr/local/squid/etc/squid.conf```

Должен получить следующий листинг:

```shacl SSL_ports port 443acl CONNECT method CONNECTacl manager proto cache_objecthttp_access deny !Safe_portshttp_access deny CONNECT !SSL_portshttp_access allow localhost managerhttp_access deny managerhttp_access allow localnethttp_access allow localhosthttp_access deny allhttp_port 3128cache_dir ufs /usr/local/squid/var/cache/squid 100 16 256coredump_dir /usr/local/squid/var/cache/squidrefresh_pattern ^ftp:144020%10080refresh_pattern ^gopher:14400%1440refresh_pattern -i (/cgi-bin/|\?) 00%0refresh_pattern -i \.(gif|png|jpg|jpeg|ico)$ 10080 90% 43200 override-expire ignore-no-cache ignore-no-store ignore-privaterefresh_pattern -i \.(iso|avi|wav|mp3|mp4|mpeg|swf|flv|x-flv)$ 43200 90% 432000 override-expire ignore-no-cache ignore-no-store ignore-privaterefresh_pattern -i \.(deb|rpm|exe|zip|tar|tgz|ram|rar|bin|ppt|doc|tiff)$ 10080 90% 43200 override-expire ignore-no-cache ignore-no-store ignore-privaterefresh_pattern -i \.index.(html|htm)$ 0 40% 10080refresh_pattern -i \.(html|htm|css|js)$ 1440 40% 40320refresh_pattern -i youtube.com/.* 10080 90% 43200refresh_pattern (/cgi-bin/|\?) 0 0% 0refresh_pattern .020%4320http_port 3128 ssl-bump \  cert=/etc/squid/ssl_cert/myCA.pem \  generate-host-certificates=on dynamic_cert_mem_cache_size=4MBsslcrtd_program /usr/local/squid/libexec/security_file_certgen -s /var/lib/ssl_db -M 4MBacl step1 at_step SslBump1ssl_bump peek allssl_bump stare allssl_bump bump allcache allow allaccess_log stdio:/usr/local/squid/var/logs/access.log combinedcache_store_log stdio:/usr/local/squid/var/logs/store.logcache_log stdio:/usr/local/squid/var/logs/cache.log```

Запускаем squid:

```shsquid -d 10 && tail -f /usr/local/squid/var/logs/access.log```

Результат проксирования:

Расшифровка взаимодействия с использованием CharlesProxy

В этом эксперименте будем использовать настоящую WiFi сеть с подключенным к нему устройством iPhone SE. Для расшифровки сетевого взаимодействия будем использовать специализированные программные продукты. Например charlesProxy. Продукт платный, но предоставляет бесплатный период использования. После запуска нужно выбрать опцию "Proxy > Start SSL Proxying":

После этого станет доступна ссылка на корневой сертификат для браузера или другого сетевого устройства. Установим сертификат на устройство:

После установки в в качестве доверенного в браузере или на устройстве, можно увидеть следующий результат:

Вывод

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


Узнать подробнее о курсе Network engineer.

Смотреть открытый вебинар на тему NAT не Firewall.

Подробнее..

Категории

Последние комментарии

  • Имя: Макс
    24.08.2022 | 11:28
    Я разраб в IT компании, работаю на арбитражную команду. Мы работаем с приламы и сайтами, при работе замечаются постоянные баны и лаги. Пацаны посоветовали сервис по анализу исходного кода,https://app Подробнее..
  • Имя: 9055410337
    20.08.2022 | 17:41
    поможем пишите в телеграм Подробнее..
  • Имя: sabbat
    17.08.2022 | 20:42
    Охренеть.. это просто шикарная статья, феноменально круто. Большое спасибо за разбор! Надеюсь как-нибудь с тобой связаться для обсуждений чего-либо) Подробнее..
  • Имя: Мария
    09.08.2022 | 14:44
    Добрый день. Если обладаете такой информацией, то подскажите, пожалуйста, где можно найти много-много материала по Yggdrasil и его уязвимостях для написания диплома? Благодарю. Подробнее..
© 2006-2024, personeltest.ru