Как стать автором
Обновить
45
0.3

DevOps/SRE

Отправить сообщение

Жизнь и работа в Нидерландах

Время на прочтение16 мин
Количество просмотров79K

Наконец-то руки дошли до продолжения статьи "Истории о моей работе в Нидерландах" — а именно, пришла пора рассказать о деталях переезда и поделиться практическими советами с будущими трактористами. Прошу прощения у всех, кто ждал этого продолжения гораздо раньше. Не буду распространяться о причинах задержки, но поверьте, это были очень напряженные для меня месяцы, и я вряд ли мог взяться за эту статью в тот срок, который озвучивал раньше. Кстати, дорогие мои вопрошающие в личке! Вы, на самом деле, являетесь полноправными соавторами этой статьи, потому что некоторые из ваших умных и иногда неожиданных вопросов мне самому в голову не пришли бы, а другие сделали мою задачу гораздо проще. Вместо того, чтобы обдумывать план статьи, подачу и прочая, прочая, бери формат вопрос-ответ, и дело в шляпе. Уважаемые nightstalker, ATmegAdriVeR, Flem_1, dmtrr, ChingizKhalafov, Carduelis, artem2511, gri_mih, Ommonick, это ваши вопросы, вам от меня огромная благодарность. Надеюсь, от всех читателей тоже.


Ну а начну я все же с краткого рассказа о том, как я дошел до жизни в Нидерландах.

Читать дальше →
Всего голосов 100: ↑97 и ↓3+127
Комментарии459

Ломаем простую «крякми» при помощи Ghidra — Часть 1

Время на прочтение9 мин
Количество просмотров88K
О том, что это за зверь такой — Ghidra («Гидра») — и с чем его едят она ест программки, многие уже, наверняка, знают не понаслышке, хотя в открытый доступ сей инструмент попал совсем недавно — в марте этого года. Не буду докучать читателям описанием Гидры, ее функциональности и т.д. Те, кто в теме, уже, уверен, всё это сами изучили, а кто еще не в теме — могут это сделать в любое время, благо на просторах веба сейчас найти подробную информацию не составит труда. Кстати, один из аспектов Гидры (разработку плагинов к ней) уже освещался на Хабре (отличная статья!) Я же дам только основные ссылки:


Итак, Гидра — это бесплатный кроссплатформенный интерактивный дизассемблер и декомпилятор с модульной структурой, с поддержкой почти всех основных архитектур ЦПУ и гибким графическим интерфейсом для работы с дизассемблированным кодом, памятью, восстановленным (декомпилированным) кодом, отладочными символами и многое-многое другое.

Давайте попробуем уже что-нибудь сломать этой Гидрой!
Читать дальше →
Всего голосов 58: ↑57 и ↓1+56
Комментарии32

Основы Ansible, без которых ваши плейбуки — комок слипшихся макарон

Время на прочтение12 мин
Количество просмотров142K

Я делаю много ревью для чужого кода на Ансибл и много пишу сам. В ходе анализа ошибок (как чужих, так и своих), а так же некоторого количества собеседований, я понял основную ошибку, которую допускают пользователи Ансибла — они лезут в сложное, не освоив базового.


Для исправления этой вселенской несправедливости я решил написать введение в Ансибл для тех, кто его уже знает. Предупреждаю, это не пересказ манов, это лонгрид в котором много букв и нет картинок.


Ожидаемый уровень читателя — уже написано несколько тысяч строк ямла, уже что-то в продакшене, но "как-то всё криво".

Читать дальше →
Всего голосов 88: ↑86 и ↓2+108
Комментарии67

Проверяем уровень защищённости Linux с помощью утилиты Lynis

Время на прочтение8 мин
Количество просмотров44K
Разбираемся, как использовать одну из самых мощных свободно распространяемых утилит для аудита Linux-систем.


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

Чтобы получить информацию о системе, то есть проверить общее состояние программного обеспечения, сети и служб, работающих на вашем компьютере с установленной ОС Linux, достаточно выполнить несколько команд. Но что теперь делать с полученной информацией? Как в ней разобраться? Ведь объём данных, которые вам нужно проанализировать, огромен.
Читать дальше →
Всего голосов 45: ↑45 и ↓0+45
Комментарии5

Практическое руководство по разработке бэкенд-сервиса на Python

Время на прочтение57 мин
Количество просмотров179K
Привет, меня зовут Александр Васин, я бэкенд-разработчик в Едадиле. Идея этого материала началась с того, что я хотел разобрать вступительное задание (Я.Диск) в Школу бэкенд-разработки Яндекса. Я начал описывать все тонкости выбора тех или иных технологий, методику тестирования… Получался совсем не разбор, а очень подробный гайд по тому, как писать бэкенды на Python. От первоначальной идеи остались только требования к сервису, на примере которых удобно разбирать инструменты и технологии. В итоге я очнулся на сотне тысяч символов. Ровно столько потребовалось, чтобы рассмотреть всё в мельчайших подробностях. Итак, программа на следующие 100 килобайт: как строить бэкенд сервиса, начиная от выбора инструментов и заканчивая деплоем.



TL;DR: Вот репка на GitHub с приложением, а кто любит (настоящие) лонгриды — прошу под кат.
Читать дальше →
Всего голосов 57: ↑55 и ↓2+66
Комментарии48

Как создать современную CI/CD-цепочку с помощью бесплатных облачных сервисов

Время на прочтение10 мин
Количество просмотров68K



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


Такой способ создания программного обеспечения используется в процессах Непрерывной интеграции (Continuous Integration) и Непрерывного развертывания (Continuous Deployment), или CI/CD-цепочке. В этой статье мы пройдем по всем шагам настройки такой цепочки, используя для ее построения бесплатные облачные сервисы.

Читать дальше →
Всего голосов 41: ↑38 и ↓3+35
Комментарии18

В ядро Linux 5.6 включили VPN WireGuard

Время на прочтение4 мин
Количество просмотров33K
Сегодня Линус перенёс к себе ветку net-next с VPN-интерфейсами WireGuard. Об этом событии сообщили в списке рассылки WireGuard.



В данный момент продолжается сбор кода для нового ядра Linux 5.6. WireGuard — быстрый VPN нового поколения, в котором реализована современная криптография. Он изначально разрабатывался как более простая и удобная альтернатива существующим VPN. Автор — канадский специалист по информационной безопасности Джейсон Доненфилд (Jason A. Donenfeld). В августе 2018 года WireGuard удостоился похвалы от Линуса Торвальдса. Примерно в то время началась работа по включению VPN в ядро Linux. Процесс немного затянулся.
Читать дальше →
Всего голосов 61: ↑61 и ↓0+61
Комментарии49

Создание CI/CD-цепочки и автоматизация работы с Docker

Время на прочтение15 мин
Количество просмотров53K
Я написала мои первые сайты в конце 90-х. Тогда приводить их в рабочее состояние было очень просто. Был Apache-сервер на каком-нибудь общем хостинге, на этот сервер можно было войти по FTP, написав в браузерной строке нечто вроде ftp://ftp.example.com. Потом надо было ввести имя и пароль и выгрузить файлы на сервер. Другие были времена, всё тогда было проще, чем сейчас.



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

Для моего персонального проекта у меня была особая конфигурация. И я знала, что мне нужна возможность разворачивать сайт в продакшне, выполняя всего одно действие: запись кода в ветку master на GitHub. Я, кроме того, знала, что мне, для обеспечения работы моего маленького веб-приложения, не хочется заниматься управлением огромным кластером Kubernetes, или пользоваться технологией Docker Swarm, или поддерживать парк серверов с подами, агентами и всякими другими сложностями. Для того чтобы достичь цели по максимальному упрощению работы, мне понадобилось познакомиться с CI/CD.

Если у вас имеется маленький проект (в нашем случае речь идёт о Node.js-проекте) и вам хотелось бы узнать о том, как автоматизировать развёртывание этого проекта, сделав при этом так, чтобы то, что хранится в репозитории, в точности соответствовало бы тому, что работает в продакшне, то, полагаю, вас может заинтересовать эта статья.
Читать дальше →
Всего голосов 31: ↑31 и ↓0+31
Комментарии4

Wireshark — приручение акулы

Время на прочтение10 мин
Количество просмотров1.1M


Wireshark — это достаточно известный инструмент для захвата и анализа сетевого трафика, фактически стандарт как для образования, так и для траблшутинга.
Wireshark работает с подавляющим большинством известных протоколов, имеет понятный и логичный графический интерфейс на основе GTK+ и мощнейшую систему фильтров.
Кроссплатформенный, работает в таких ОС как Linux, Solaris, FreeBSD, NetBSD, OpenBSD, Mac OS X, и, естественно, Windows. Распространяется под лицензией GNU GPL v2. Доступен бесплатно на сайте wireshark.org.
Установка в системе Windows тривиальна — next, next, next.
Самая свежая на момент написания статьи версия – 1.10.3, она и будет участвовать в обзоре.

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

Начинаем плаванье


Для начала захвата достаточно выбрать свой сетевой интерфейс и нажать Start.
Читать дальше →
Всего голосов 207: ↑202 и ↓5+197
Комментарии60

Packet crafting как он есть

Время на прочтение14 мин
Количество просмотров117K


Создание пакетов или packet crafting — это техника, которая позволяет сетевым инженерам или пентестерам исследовать сети, проверять правила фаерволлов и находить уязвимые места.
Делается это обычно вручную, отправляя пакеты на различные устройства в сети.
В качестве цели может быть брандмауэр, системы обнаружения вторжений (IDS), маршрутизаторы и любые другие участники сети.
Создание пакетов вручную не означает, что нужно писать код на каком-либо высокоуровневом языке программирования, можно воспользоваться готовым инструментом, например, Scapy.

Scapy — это один из лучших, если не самый лучший, инструмент для создания пакетов вручную.
Утилита написана с использованием языка Python, автором является Philippe Biondi.
Возможности утилиты практически безграничны — это и сборка пакетов с последующей отправкой их в сеть, и захват пакетов, и чтение их из сохраненного ранее дампа, и исследование сети, и многое другое.
Всё это можно делать как в интерактивном режиме, так и создавая скрипты.
С помощью Scapy можно проводить сканирование, трассировку, исследования, атаки и обнаружение хостов в сети.
Scapy предоставляет среду или даже фреймворк, чем-то похожий на Wireshark, только без красивой графической оболочки.
Утилита разрабатывается под UNIX-подобные операционные системы, но тем не менее, некоторым удается запустить ее и в среде Windows.
Эта утилита так же может взаимодействовать и с другими программами: для наглядного декодирования пакетов можно подключать тот же Wireshark, для рисования графиков — GnuPlot и Vpython.
Для работы потребуется права суперпользователя (root, UID 0), так как это достаточно низкоуровневая утилита и работает напрямую с сетевой картой.
И что важно, для работы с этой утилитой не потребуются глубокие знания программирования на Python.
Читать дальше →
Всего голосов 91: ↑91 и ↓0+91
Комментарии11

Rutracker включил eSNI. Конец эпохи DPI и конец блокировок

Время на прочтение4 мин
Количество просмотров202K


Несмотря на желтый заголовок, дальше будет не желтая статья. Всех нас (я надеюсь именно здесь я наконец-таки смогу сказать от всего сообщества) уже достали действия Роскомнадзора. А также его постоянное появление в рекомендованном на хабре. Поэтому эта новость вам понравится. Хоть что-то важное. Новость кстати еще от декабря 2018.
Читать дальше →
Всего голосов 205: ↑196 и ↓9+187
Комментарии361

Автономный способ обхода DPI и эффективный способ обхода блокировок сайтов по IP-адресу

Время на прочтение7 мин
Количество просмотров740K
Провайдеры Российской Федерации, в большинстве своем, применяют системы глубокого анализа трафика (DPI, Deep Packet Inspection) для блокировки сайтов, внесенных в реестр запрещенных. Не существует единого стандарта на DPI, есть большое количество реализации от разных поставщиков DPI-решений, отличающихся по типу подключения и типу работы.

Существует два распространенных типа подключения DPI: пассивный и активный.

Пассивный DPI

Пассивный DPI — DPI, подключенный в провайдерскую сеть параллельно (не в разрез) либо через пассивный оптический сплиттер, либо с использованием зеркалирования исходящего от пользователей трафика. Такое подключение не замедляет скорость работы сети провайдера в случае недостаточной производительности DPI, из-за чего применяется у крупных провайдеров. DPI с таким типом подключения технически может только выявлять попытку запроса запрещенного контента, но не пресекать ее. Чтобы обойти это ограничение и заблокировать доступ на запрещенный сайт, DPI отправляет пользователю, запрашивающему заблокированный URL, специально сформированный HTTP-пакет с перенаправлением на страницу-заглушку провайдера, словно такой ответ прислал сам запрашиваемый ресурс (подделывается IP-адрес отправителя и TCP sequence). Из-за того, что DPI физически расположен ближе к пользователю, чем запрашиваемый сайт, подделанный ответ доходит до устройства пользователя быстрее, чем настоящий ответ от сайта.
Читать дальше →
Всего голосов 212: ↑212 и ↓0+212
Комментарии352

Бесшовная (почти) миграция между мажорными релизами PostgreSQL с помощью логической репликации

Время на прочтение9 мин
Количество просмотров19K
У нас в True Engineering на одном проекте назрела необходимость в смене версии PostgreSQL с 9.6 на 11.1.

Зачем? База данных на проекте уже объемом 1,5 Tb и растет. Перформанс – одно из основных требований к системе. А сама структура данных эволюционирует: добавляются новые колонки, меняются существующие. Новая версия Postgres научилась эффективно работать с добавлением новых колонок с дефолтным значением, так что не нужно городить кастомных костылей на уровне приложения. Ещё в новой версии добавили несколько новых способов партиционирования таблиц, что тоже крайне полезно в условиях большого объема данных.

Итак, решено, мигрируем. Конечно, можно поднять параллельно со старой новую версию сервера PostgreSQL, остановить приложение, через dump/restore (или pg_upgrade) переместить базу и снова запустить приложение. Нам это решение не подошло из-за большого размера базы, к тому же, приложение работает в боевом режиме, и на даунтайм есть считанные минуты.

Поэтому мы решили попробовать миграцию с помощью логической репликации в PostgreSQL с использованием стороннего плагина под названием pglogical.

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



TL;DR

  • Всё получилось (не без костылей, о них и статья).
  • Мигрировать можно в рамках PostgreSQL версии от 9.4 до 11.x, с любой версии на любую, вниз или вверх.
  • Даунтайм равен времени, которое требуется вашему приложению, чтобы переподключиться к новому серверу БД (в нашем случае это был перезапуск всего приложения, но в дикой природе, очевидно, «возможны варианты»).
Читать дальше →
Всего голосов 38: ↑38 и ↓0+38
Комментарии30

Полное практическое руководство по Docker: с нуля до кластера на AWS

Время на прочтение39 мин
Количество просмотров1.7M



Содержание



Вопросы и ответы


Что такое Докер?


Определение Докера в Википедии звучит так:


программное обеспечение для автоматизации развёртывания и управления приложениями в среде виртуализации на уровне операционной системы; позволяет «упаковать» приложение со всем его окружением и зависимостями в контейнер, а также предоставляет среду по управлению контейнерами.



Ого! Как много информации.

Читать дальше →
Всего голосов 125: ↑124 и ↓1+123
Комментарии44

SoftEther VPN — продвинутый мультипротокольный VPN-сервер и клиент

Время на прочтение3 мин
Количество просмотров396K
Как скоро я смогу вас заинтересовать, если скажу, что в этой статье речь пойдет о VPN-сервере, который может поднимать L2TP/IPsec, OpenVPN, MS-SSTP, L2TPv3, EtherIP-серверы, а также имеет свой собственный протокол «SSL-VPN», который неотличим от обычного HTTPS-трафика (чего не скажешь про OpenVPN handshake, например), может работать не только через TCP/UDP, но и через ICMP (подобно pingtunnel, hanstunnel) и DNS (подобно iodine), работает быстрее (по заверению разработчиков) текущих имплементаций, строит L2 и L3 туннели, имеет встроенный DHCP-сервер, поддерживает как kernel-mode, так и user-mode NAT, IPv6, шейпинг, QoS, кластеризацию, load balancing и fault tolerance, может быть запущен под Windows, Linux, Mac OS, FreeBSD и Solaris и является Open-Source проектом под GPLv2?

То-то и оно. Такое пропустить нельзя.
Читать дальше →
Всего голосов 125: ↑120 и ↓5+115
Комментарии45

Инновации по-русски

Время на прочтение9 мин
Количество просмотров171K
Я — профессиональный участник инновационной индустрии. Вместе с коллегами последние 10 лет мы участвуем в создании новых технологий.

И я должен сказать о причине, по которой не стоит заниматься инновациями в России. Здесь можно порассуждать о плохом инвестиционном климате, неэффективности государственных программ, размере внутреннего рынка, смещенных мотивациях участников. Но кроме этого есть и плохо контролируемый риск, который заключается в возможности оказаться за решеткой. И об этом не принято говорить вслух, а нужно. Под катом топ-5 инновационных компаний по версии следственного комитета, известных мне, а их злоключения не были ранее упомянуты на хабре.
Читать дальше →
Всего голосов 513: ↑480 и ↓33+447
Комментарии249

Люди на Луне. Источники

Время на прочтение3 мин
Количество просмотров38K


50 лет назад впервые человек шагнул в лунный реголит. Это стало результатом фантастического прогресса науки и техники, космической гонки, политического противостояния двух стран: США и СССР. Полет человека на Луну стал настолько невероятным событием, что сегодня немало людей отрицает сам факт такого полета. К счастью, благодаря интернету мы имеем доступ к огромному объему материалов и научных данных, которые открывают возможность самостоятельно выяснить подробности этой сложнейшей программы.
Читать дальше →
Всего голосов 96: ↑94 и ↓2+92
Комментарии264

Как Protonmail блокируется в России

Время на прочтение11 мин
Количество просмотров133K

English version of the post


Совершенно рутинный трабл-тикет в нашу техподдержку вскрыл очередную странную блокировку довольно значимого для уважающего свои интернет-свободы сообщества сервиса Protonmail в некоторых сетях России. Не хотелось бы эксплуатировать «жёлтый заголовок», но история странная и несколько возмутительная.


TL;DR


Важное замечание: разбор продолжается и пока всё в процессе. Может «мальчика и нет», но скорее всего есть. Будет дополняться по мере появления новой информации.


Крупнейшие российские операторы связи МТС и Ростелеком внереестрово блокируют трафик на SMTP-сервера сервиса защищённой электронной почты Protonmail по письму из ФСБ. Судя по всему, уже достаточно долго, но никто особого внимания пока не обращал. А мы вот обратили.


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


UPD: МТС предоставили скан письма ФСБ, по которому производится блокировка. Мотивировка: Универсиада и «телефонный терроризм». Чтобы письма с ProtonMail не попадали на тревожные адреса спацслужб и школ.


UPD: Protonmail удивились методам борьбы с фродом у «этих странных русских» и посоветовали более эффективный вид борьбы через abuse mailbox.


UPD: Бравая концепция борьбы ФСБ с ложными обращениями не выдержала критики: письмом поломали входящую почту на ProtonMail, а не исходящую.


UPD: Protonmail пожали плечами и сменили IP-адреса своих MX, таким образом уведя их из под блокировки по этому конкретному письму. Вопрос, что будет дальше открыт.


UPD: Судя по всему, такое письмо не одно и есть ещё набор IP-адресов VOIP-сервисов, которые внереестрово блокируются.


UPD: Так как история стала распространяться за пределы Рунета, подготовили перевод на английский язык, ссылка вверху.

Всего голосов 425: ↑418 и ↓7+411
Комментарии397

Развёрнутый ответ на комментарий, а также немного о жизни провайдеров в РФ

Время на прочтение7 мин
Количество просмотров82K
Сподвиг меня на этот пост вот этот вот комментарий.

Привожу его здесь:
kaleman сегодня в 18:53

Меня сегодня порадовал провайдер. Вместе с обновление системы блокирования сайтов, у него под бан попал почтовик mail.ru. С утра дергаю техподдержку, ничего сделать не могут. Провайдер маленький, и блокируют видимо вышестоящие провайдеры. Еще заметил замедление открытие всех сайтов, может какое-то кривое DLP навесили? Раньше никаких проблем с доступом не было. Уничтожение рунета идет прямо на моих глазах…
Дело в том, что, похоже, мы и есть тот самый провайдер :(

И действительно, kaleman почти угадал с причиной проблем с mail.ru (хотя мы долго отказывались верить в подобное).

Дальнейшее будет разделено на две части:

  1. причины наших сегодняшних проблем с mail.ru и увлекательный квест по их поиску
  2. существование ISP в сегодняшних реалиях, стабильность суверенного рунета.
Читать дальше →
Всего голосов 291: ↑290 и ↓1+289
Комментарии387

«Статья про минет»: ученые обработали 109 часов орального секса, чтобы разработать ИИ, который сосет член

Время на прочтение6 мин
Количество просмотров330K
Привет, Хабр! Представляю вашему вниманию перевод статьи Саманты Коул (Samantha Cole) c motherboard.vice.com.

Анонимные специалисты по машинному обучению написали «статью про минет», чтобы сделать эту машинку для отсоса более реалистичной.


Autoblow AI, секс-игрушка для пользователей с пенисом, состоит из резинового рукава и расположенного внутри корпуса электродвигателя, и пытается имитировать оральный секс. Ее кампания на Indiegogo была запущена на прошлой неделе и быстро достигла своей цели в 50 000 $. Ее главное преимущество над предыдущей моделью, Autoblow 2, выпущенной в 2014 — это алгоритм машинного обучения, который «постоянно меняет технику», чтобы удовлетворить пользователя новыми способами.

Вместо повторяющихся, механических движений, этот «режим искусственного интеллекта» обещает воспроизвести сложные и непредсказуемые движения настоящего, человеческого минета. Чтобы сделать это, компания попросила команду из шести человек просмотреть и аннотировать 109 часов порно и наняла специалистов по машинному обучению, чтобы создать модель, обрабатывающую эти данные и транслирующую их в то, что делает игрушка. Вся работа заняла три года.
Читать дальше →
Всего голосов 321: ↑252 и ↓69+183
Комментарии395

Информация

В рейтинге
2 101-й
Зарегистрирован
Активность

Специализация

DevOps, Site Reliability Engineer (SRE)
Linux
Kubernetes
Bash
Docker
CI/CD
Git
Ansible
Terraform