Pull to refresh
1
0
Карпенко Юрий @KYuri

Программист

Send message

GOST: швейцарский нож для туннелирования и обхода блокировок

Level of difficultyMedium
Reading time13 min
Views94K

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

Сегодня я расскажу о замечательном инструменте под названием GOST. Не пугайтесь, он не имеет никакого отношения к ГОСТ-шифрованию или чему-то подобному, на самом деле это Go Simple Tunnel. Он действительно simple (простой) в использовании и настройке, но при этом невероятно мощный, поскольку поддерживает огромное количество протоколов и транспортов, из которых вы при желании сможете построить самые упоротые и бронебойные комбинации, а именно...

Читать далее
Total votes 180: ↑177 and ↓3+174
Comments113

OpenConnect: недетектируемый VPN, который вам понравится

Level of difficultyMedium
Reading time15 min
Views222K

Я уже написал здесь много статей на тему прокси-протоколов и прокси-клиентов, которые очень сложно детектировать и заблокировать, и которые используют пользователи в Китае, Иране, Ираке, Туркменистане, и теперь вот в России (мы здесь в отличной компании, правда?). Но довольно часто мне в комментариях писали, мол, это все отлично, но мне нужен именно VPN для целей именно VPN - доступа в частные локальные сети, либо для соединения клиентов между собой, и желательно так, чтобы его не заблокировали обезьяны с гранатой. Поэтому сегодня мы поговорим именно о VPN.

Классические OpenVPN, Wireguard и IPSec отметаем сразу - их уже давно умеют блокировать и блокировали не раз. Модифицированный Wireguard от проекта Amnezia под названием AmneziaWG — отличная задумка, но есть одно но...

Читать далее
Total votes 325: ↑324 and ↓1+323
Comments342

Реализация Graceful Shutdown в Go

Reading time17 min
Views10K

Изящное завершение работы (Graceful Shutdown) важно для любого длительного процесса, особенно для того, который обрабатывает состояние. Например, что если вы хотите завершить работу базы данных, поддерживающей ваше приложение, а процесс db не сбрасывает текущее состояние на диск, или что если вы хотите завершить работу веб-сервера с тысячами соединений, но не дожидаетесь окончания запросов. Изящное завершение работы не только положительно сказывается на пользовательском опыте, но и облегчает внутренние операции, что приводит к более счастливым инженерам и менее напряженным SRE.

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

Читать далее
Total votes 15: ↑12 and ↓3+9
Comments2

WebSocket. Краткий экскурс в пентест ping-pong протокола

Level of difficultyMedium
Reading time12 min
Views11K

"Краткость - сестра таланта" - именно так сказал Антон Павлович Чехов, и теперь говорю я. Сегодня, завтра и до конца дней habr-а речь пойдет о WebSocket-ах: "Что это?", "Как работает?" и главное - "Как это взламывать?" (в целях этичного хакинга конечно). Начнем с простого и будем идти к более сложному, пробираясь через тернии к звёздам.

Приятного чтения
Total votes 19: ↑19 and ↓0+19
Comments0

Укрепление Nginx с помощью Fail2ban: тестируем и оцениваем «профит»

Reading time10 min
Views20K

«Только запустил Nginx-приложение, а в access.log уже десятки записей с непонятными запросами, переборами паролей и другого» — типичная ситуация для незащищенного сервера. Это следствие работы «ботов» для сканирования белых сетей, поиска открытых портов, сбора информации о версиях запущенных служб и подбора паролей к сервисам.

В статье расскажу, как с помощью open source-инструмента Fail2ban укрепить Nginx и защитить сервисы от взлома. А также продемонстрирую способы блокирования DDoS-атак. Подробности под катом.
Читать дальше →
Total votes 53: ↑51 and ↓2+49
Comments47

Как защитить мобильное приложение или онлайн-сервис?

Reading time6 min
Views2.3K

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

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

Читать далее
Total votes 5: ↑3 and ↓2+1
Comments1

Центрируй, властвуй, располагай

Reading time5 min
Views14K

Всем привет, с вами Кирилл Мыльников, frontend разработчик компании Usetech.

Сегодня я хочу рассказать о вертикальном и горизонтальном центрировании CSS (Cascading Style Sheets). В сети есть много статей на эту тему, но я хочу выделить все виды горизонтального и вертикального центрирования с примерами.

Тема довольно популярная для тех, кто просто верстает или занимается полноценной frontend-разработкой (ведь нам всегда нужно что-то центрировать).

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

В этой статье я разберу следующие виды центрирования:

— Горизонтальное центрирование;
— Вертикальное центрирование;
— Горизонтальное и вертикальное центрирование.

Начнём.

Читать далее
Total votes 9: ↑7 and ↓2+5
Comments18

Go sync/singleflight: устранение дублирования идентичных запросов

Reading time17 min
Views4.9K

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

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

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

Читать далее
Total votes 6: ↑5 and ↓1+4
Comments0

Локальные репозитории пакетов

Reading time12 min
Views13K

Всем привет! Сегодня хочу поделиться нашими мыслями относительно того, как защититься от санкций палок в колёсах в современных условиях. Собственно, что мы имеем ввиду? Речь идёт о том, что в крупных проектах часто есть единые точки отказа в процессах CI/CD, это может быть как простой репозиторий кодом, так и различные конвеерные системы сборки кода и доставки его в рабочие окружения. Если мы говорим про системный софт, то его можно просто перестать обновлять, запретить ему ходить "наружу", но в данной статье мы поговорим про внешние репозитории с кодом.

Читать далее
Total votes 11: ↑10 and ↓1+9
Comments11

Сам себе РКН или родительский контроль с MikroTik (ч.3)

Reading time11 min
Views12K


В конце 2021 года был опубликован цикл статей, посвящённый родительскому контролю на оборудовании MikroTik. Ранее были подробно рассмотрены организация DNS, работа Firewall Filter и Ip Kid-control, возможности маркировки трафика посредством Firewall Mangle для решения указанной задачи. Представленные предложения базировались на факте неизменности MAC адресов детских беспроводных устройств. Это позволяло осуществить статическую привязку IP адресов. Однако современные мобильные операционные системы рандомизируют MAC, тем самым делая предложенные алгоритмы нежизнеспособными. Вследствие этого подготовлена третья часть из цикла статей, в которой к представленному ранее решению прикручен протокол Radius. Его применение нивелирует озвученную проблему.

Статья предназначена не для профессионалов, а для тех, кто решил внедрить предложенные ранее решения у себя в доме или SOHO, однако плохо знаком с оборудованием MikroTik и поэтому самостоятельно разобраться в подобной задаче не может. На этом tutorial по родительскому контролю будет завершён. Не могу не упомянуть, что в свете последних событий строгим родителям будет полезно знать, каким образом следует привести свой интернет-трафик в соответствии с интенсивно меняющимся законодательством, если по какой-то причине провайдер до этого не добрался.
Читать дальше →
Total votes 46: ↑43 and ↓3+40
Comments29

Тестирование проброса GPU на AMD Ryzen 7 5700G APU

Reading time7 min
Views16K

Проброс видеокарты с помощью VFIO может быть знаком немногим, но по факту является очень удобным способом решить ряд насущных задач и упростить рабочий процесс в целом. В этом проекте мы настроим нужную конфигурацию из под Fedora 34 и поочередно пробросим две разные видеокарты в VM, попутно оценив полученную производительность.
Читать дальше →
Total votes 47: ↑44 and ↓3+41
Comments35

Wireguard VPN, Yggdrasil, ALFIS DNS и AdGuard

Reading time5 min
Views39K

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

Во-первых, несколько слов об Yggdrasil. Это одноранговая сеть с адресами IPv6, которая по сути может считаться новым слоем сети Интернет. При установке и настройке у вас появляется новый сетевой интерфейс, который является окном в этот новый слой. Всё так же, как с обычным протоколом IPv6 - вы можете использовать его для удалённого подключения к своим устройствам без реального IPv4, для удалённого администрирования, размещения там каких-то ресурсов, например того же Nextcloud. Всё это находится как бы в глобальном пространстве общей приватной сети. Кто-то там разместил прокси-серверы для Telegram, которые нельзя заблокировать, кто-то выход в "большой" Интернет через сеть Tor. Там же есть несколько серверов для общения, вроде Mattermost, IRC и XMPP. Статей по настройке и использованию на Хабре уже достаточно.

Читать далее
Total votes 23: ↑21 and ↓2+19
Comments23

Как правильно делать уборку в доме, если кого-то стошнило

Reading time13 min
Views44K

Ультрафиолет с длиной волны 365 нм показывает следы органики в вашей квартире

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

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

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

Поэтому сегодня будем говорить про домашнюю микроживность, правильную уборку и места, куда вы наверняка забываете заглянуть. Заодно посмотрим, как правильно корректировать уборку, если кто-то заболел и по квартире внезапно оказались разлиты биологические жидкости больного человека.
Читать дальше →
Total votes 86: ↑80 and ↓6+74
Comments80

Синхронизация системных настроек

Reading time5 min
Views5.2K

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

Читать дальше →
Total votes 3: ↑2 and ↓1+1
Comments15

Мой MikroTik – моя цифровая крепость (часть 2)

Reading time7 min
Views36K

Статья является продолжением первой части, посвящённой организации практической безопасности сетей, построенных на оборудовании MikroTik. До этого уже даны общие рекомендации по настройке оборудования, а также подробно рассмотрены вопросы безопасности L1 и L2 уровней. В текущей части поговорим о настройке протокола Dot1X и работе Firewall.
Читать дальше →
Total votes 46: ↑43 and ↓3+40
Comments37

Мой MikroTik – моя цифровая крепость (часть 1)

Reading time10 min
Views115K
В статье рассмотрены различные подходы к организации практической безопасности сетей, построенных на оборудовании MikroTik, в том числе при помощи дополнительного открытого программного обеспечения, расширяющего имеющиеся штатные возможности, что в комплексе позволяет качественно администрировать сетевые средства, а также своевременно реагировать на различные угрозы информационной безопасности.
Читать дальше →
Total votes 91: ↑88 and ↓3+85
Comments101

Хранение видео в Yandex.Cloud

Reading time11 min
Views16K

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

Формат MP4 знаком, наверное, всем. Но если мы хотим показывать видео на сайте эффективно, то стоит задуматься: лучшее ли это решение для нашей задачи — просто выложить все видео одним файлом MP4?

Читать далее
Total votes 14: ↑14 and ↓0+14
Comments13

I2P mail + Thunderbird + OpenPGP

Reading time7 min
Views8.8K

Инструкция по использованию почтового клиента Thunderbird со встроенным модулем шифрования корреспонденции OpenPGP. В примере используется почтовый сервер из скрытой сети I2P.

Читать далее
Total votes 8: ↑7 and ↓1+6
Comments7

Как описать ценность вашего проекта на одной странице

Reading time6 min
Views6.9K

Думаю, все слышали, что надо давать клиенту некую «ценность», чтобы он/она купили продукт. Определений у этой «ценности» масса, но в общем и целом — это то, что получает клиент в обмен на заплаченные им деньги.

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

Читать далее
Total votes 7: ↑5 and ↓2+3
Comments0

Создаем установочные пакеты для macOS средствами системы

Reading time3 min
Views6.9K

Как-то так вышло, что раньше я довольно скептически относился к macOS, поскольку не имел возможности поработать с ней в более-менее устоявшейся корпоративной среде (т.е. не когда на всю компанию в 500-600 человек есть 2 мака, и те у генерального с его замом, да еще и с виндой в буткемпе). Но несколько лет назад мне повезло познакомиться с очень масштабной гетерогенной средой, показавшей, что в современных компаниях macOS не только успешно сосуществует с привычной Windows, но иногда и превалирует над ней в общей доле клиентских машин.

Читать далее
Total votes 8: ↑8 and ↓0+8
Comments2

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity