Pull to refresh
42
0.3

ClickOps

Send message

База знаний для компании: история о том, как мы (наконец-то) перешли на wiki в Outline

Level of difficultyMedium
Reading time5 min
Views3.9K

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

Читать далее

XRay (с VLESS/XTLS): проброс портов, реверс-прокси, и псевдо-VPN

Level of difficultyMedium
Reading time10 min
Views151K

Я уже написал тут много статей на тему установки и настройки прокси‑серверов XRay с недетектируемыми протоколами Shadowsocks-2022, VLESS (с XTLS), и т. п. И один из очень часто поднимаемых в комментариях вопросов звучит так: можно ли с использованием XRay как‑то организовать проброс портов или получать доступ к внутренностям корпоративной сети? Можно, и сейчас я расскажу как.

Итак, что же можно сделать с помощью реверс‑проксирования?

Можно получать доступ к каким‑либо сервисам на хосте за NAT'ом или строгим фаерволом, и даже более того — можно получать доступ к сервисам на других устройствах в локальной сети, к которой имеет доступ этот самый хост за NAT'ом файерволом.

Можно маршрутизировать весь (или некоторый в зависимости от настроенных правил) трафик на хост за NAT'ом или фаерволом и выпускать его оттуда в Интернет.
Например, вы проживаете за границей, хотите оплачивать счета за ЖКХ вашей недвижимости оставшейся России, но сервис оплаты не пускает вас с забугорных IP и не пускает вас с IP‑адресов даже российских VPS‑хостеров. Тогда можно поставить у кого‑нибудь из друзей или родственников в РФ преднастроенный роутер или одноплатник типа Raspberry Pi, который подключится к вашему прокси‑серверу, а вы, в свою очередь, через прокси‑сервер сможете достучаться до этого роутера/р‑пишки и выйти через него во внешний интернет как обычный пользователь, находящийся в России — и всем ресурсам будет виден IP‑адрес российского домашнего интернет‑провайдера.

Можно выборочно пробрасывать порты, например, все подключения на 80 порт прокси‑сервера будут переадресовываться на 80 (или любой другой) порт «изолированного» хоста или еще куда‑то дальше.

Можно даже в теории соорудить псевдо‑VPN, чтобы подключенные клиенты прокси‑сервера могли достукиваться друг до друга.

Читать далее

Systemd: полное руководство для админов + примеры

Level of difficultyEasy
Reading time16 min
Views29K

Привет, Хабр! Systemd — скелет современного Linux. Он управляет не только службами, но и таймерами, монтированием, логированием... Понимать его = значительно повысить эффективность администрирования системы.

Данное руководство — исключительно технические аспекты: архитектура, юниты, cgroups, работа с журналами. Только команды и конфиги.

Читать далее

У рекрутёра есть один шанс произвести первое впечатление. Часть вторая

Reading time12 min
Views5K

Прошло полгода с момента публикации У рекрутера есть только один шанс произвести первое впечатление. Как они обычно таким шансом пользуются?

Может быть я был неправ в своих первоначальных выводах? Поэтому за прошедшее время я набрал ещё немного статистики. Подумал, что будет интересно посмотреть на некоторую динамику того, как заходят рекрутёры на 1й контакт.  

Что и как предлагают…

Zabbix: Укрощение шторма алертов. От гистерезиса до Telegram и авто-ремедиации

Level of difficultyMedium
Reading time16 min
Views7.7K

Привет, Хабр! Меня зовут Максим, я главный системный администратор. Сегодня мы поговорим о боли, знакомой каждому, кто работает с мониторингом: об усталости от алертов. О том самом звонке в 3 часа ночи из‑за службы, которая упала и сама же поднялась. О сотне писем «Host down» после падения одного магистрального коммутатора. Это не просто раздражает — это прямой путь к выгоранию команды и пропущенным реальным инцидентам.

«Шумные» алерты — это не особенность Zabbix, а симптом его неправильного использования. По умолчанию Zabbix, как и любой мощный инструмент, требует тонкой настройки. Без нее он превращается в генератор информационного мусора, который обесценивает саму идею мониторинга. Проблема в том, что постоянный поток нерелевантных уведомлений притупляет бдительность. Инженеры начинают игнорировать оповещения, что катастрофически увеличивает время реакции на настоящие сбои (MTTA/MTTR) и, как следствие, время восстановления сервиса (RTO). Это уже не операционная проблема, а прямой бизнес‑риск.

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

Укротить шторм

Патчим Chrome для работы с YouTube

Level of difficultyEasy
Reading time9 min
Views114K

Салют, Хабр! Я думаю, каждый из вас знаком или, по крайней мере, слышал о такой прекрасной утилите как NoDPI написанной на питоне (большое спасибо @Lord_of_Rings!). Сегодня я хочу представить вам (почти) свою разработку, не требующую ни питона ни прокси. Мы будем патчить прямо на диске библиотеку chrome.dll - входяющую в пакет Chrome на Windows и лежащую в директории "C:\Program Files\Google\Chrome\Application\140.0.7339.208\chrome.dll". Цифры могут меняться в зависимости от версии. Данный патч занимает всего 8 байт и после него у нас появится YouTube.

Читать далее

Вы неправильно пишете животных

Reading time5 min
Views390K
Животные – это платформы с очень ограниченной памятью, вычислительными способностями и возможностями модификаций. Разработчикам энимал-сцены приходится выдавать практически гениальные низкоуровневые алгоритмы. Правда, большое количество хардкода вызывает характерные проблемы с отсутствием проверки в экзотических условиях. Та же фильтрация входных данных делается очень и очень криво.


Уязвимость рекурсивных алгоритмов навигации муравья: спираль смерти

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

Но пойдём далее. Я не знаю, кто разрабатывал архитектуру ящериц, но они бегают в одном процессе, а дышат в другом. При этом платформа не поддерживает многозадачность, поэтому костыль с максимальной длиной бега в 4-6 секунд просто эпичен.
Читать дальше →

CTO, BTO, OEM: как не запутаться в типах сборки IT-оборудования для AI и не только

Level of difficultyEasy
Reading time3 min
Views2.3K

Привет, Хабр! Меня зовут Настя. Я операционный директор в компании Metalab. Мы интегрируем ИИ-решения и поставляем ИТ-оборудование. Каждый день наша команда сталкивается с вопросами от клиентов и закупщиков о разнице между типами сборок серверов и другого ИТ-оборудования.

В этой статье разберем, чем отличаются CTO, BTO и OEM — и почему это важно, если вы собираете железо для машинного обучения, анализа данных или просто для того, чтобы ИИ быстрее сочинял вам стихи.  

Читать далее

Разлочка некоторых функций Mattermost Team Edition

Level of difficultyMedium
Reading time17 min
Views4K

Дисклеймер: Данный туториал представлен исключительно в ознакомительных целях. Автор ни в коем случае не призывает заниматься этим в целях, которые выходят за рамки локальных экспериментов.

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

Читать далее

Как сделать видео на стриминге легче и не погрязнуть в шакалах: опыт Кинопоиска

Reading time13 min
Views7.7K

Привет! Меня зовут Михаил Мазанов, я отвечаю за технологический стек работы с медиаданными в Кинопоиске: от съёмок оригинальных проектов до доставки и просмотра видео на всех экранах. Для нашей пятой ежегодной конференции про стриминг PlayButton 2024 я готовил большой доклад про оптимизацию качества видео Кинопоиска, а для Хабра решил пересобрать его в виде статьи — для тех, кому текстовый формат предпочтительнее видео.

Кроме технических графиков, вас ждёт ещё и наглядная разница в работе алгоритмов сжатия на примере «Рика и Морти» и «Джона Уика».

Читать далее

Тест новых аккумуляторов GP ReENERGY

Level of difficultyEasy
Reading time2 min
Views5.2K

У GP обновилась линейка NiMh аккумуляторов. Теперь они называются ReENERGY. Я протестировал аккумуляторы ReENERGY 2100 формата AA и ReENERGY 1000 формата AAA.

Читать далее

Загадка внезапно умирающего процесса Oracle: как мини-дамп помог найти причину

Level of difficultyMedium
Reading time7 min
Views2.9K

Привет, Хабр! Меня зовут Павел, я ведущий архитектор в «Инфосистемы Джет», и это мой дебют на этой площадке.

Читать далее

Splunk – Установка агентов для сбора логов Windows и Linux

Reading time7 min
Views34K
Нам часто задают вопросы о том, как загрузить различные данные в Splunk. Одними из самых распространенных источников, представляющих интерес, оказались логи Windows и Linux, которые позволяют отслеживать неполадки операционных систем и управлять ими. Загружая данные в Splunk, Вы можете анализировать работу всех систем в одном месте, даже когда у Вас десятки или сотни различных источников.



В данной статье мы пошагово объясним Вам, как загрузить данные из Windows и Linux в Splunk, для последующей обработки и анализа.
Читать дальше →

Как работает DNS в Linux. Часть 2: все уровни DNS-кэширования

Reading time15 min
Views22K

В первой части мы разобрали, как в Linux работает процесс разрешения имен — от вызова getaddrinfo() до получения IP-адреса. Однако если бы каждый вызов требовал нового DNS-запроса, это было бы неэффективно и сильно нагружало как систему, так и сеть. Поэтому используется кэширование.

Кэширование DNS может быть везде — в glibc, в systemd-resolved, в браузерах и даже в приложениях на Go. Кэш помогает увеличить скорость работы, но создает дополнительные сложности при отладке. Например: вы меняете DNS-запись, но сервер продолжает ходить по старому IP-адресу. Или, Dig показывает правильный адрес, а curl всё равно подключается к устаревшему.

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

Читать далее

Perfect Dark: файлообменная сеть самураев

Reading time6 min
Views4.1K

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

Cети вроде eDonkey2000 (она же eDonkey или eD2k), Gnutella или Freenet до сих пор живы, хотя и не могут похвастаться значительным количеством пользователей. Ретроэнтузиасты даже сейчас поддерживают серверы Gopher, древнего протокола для распределенного поиска и передачи документов. А еще уже почти 20 лет существует P2P-сеть, которая была разработана анонимным программистом с ником «председатель». Подробнее об этом — дальше!

Читать далее

«Кем Вы видите себя через 5 лет», или HRско-русский разговорник

Level of difficultyEasy
Reading time8 min
Views82K

Вас спрашивали «Кем Вы видите себя через 5 лет»? Меня тоже. За двадцать пять лет в IT я понял, зачем они так делают. Понял – это значит, что я «привык и научился пользоваться» (С). Но «неприятно удивлять» они меня не перестали.

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

Дисклеймер:

Я не призываю врать или «играть по правилам» HR. Я делюсь практической схемой подачи опыта и скиллов, чтобы минимизировать отказы «по софтам». В моем случае она работает.

Читать далее

Как XTLS Reality обходит whitelist? Анализ исходного кода Reality

Level of difficultyMedium
Reading time20 min
Views15K

XTLS/Xray-core - инструмент для обхода цензуры с открытым исходным кодом. Он хорошо известен в Китае своими новыми и практичными концептуальными технологиями, а также создателем RPRX, который однажды исчез и, как считалось, сбежал. К таким технологиям относятся VLESS, XTLS-Vision, XUDP... О какой-то из них вы точно слышали или использовали.

С момента как в Китае началось внедрение новой системы цензурирование: белый список SNI (Server name indication), все инструменты обхода на основе TLS до появления REALITY и ShadowTLS, подключаемые напрямую или через транзит или CDN, стали недоступны.

Ранее широкое внимание привлек инструмент обхода ShadowTLS. Однако в то время ShadowTLS все еще находился в версии v1 с неполной кодовой базой и слабой устойчивостью к цензуре. Позже в Reality появилась возможность обходить цензуру на основе белого списка SNI, и он был интегрирован со зрелым инструментом обхода Xray-core.

Так как же REALITY обходит эту цензурную стратегию? Как понять ее детали с технической точки зрения? Эти два вопроса будут в центре внимания этой статьи. Интерпретируя исходный код REALITY, мы разберемся с конкретной реализацией REALITY для читателей.

Что такое белый список SNI? В чем связь между SNI и TLS?

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

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

Читать далее

Тебя точно собираются уволить

Level of difficultyEasy
Reading time4 min
Views87K

Вы приходите на работу — а вам больше не дают задач. Коллеги внезапно перестают здороваться, а начальник при всех называет вас «бесполезным балластом». Вас нагружают невыполнимым объемом работы, а потом обвиняют в «профнепригодности». Было ли у вас такое? Может вы были свидетелем таких процессов?

Это не паранойя. Это система «выдавливания» сотрудников. По данным Роструда, каждый пятый работник сталкивается с давлением перед увольнением. Но лишь 3% обращаются в суд — остальные просто уходят «по собственному», теряя деньги и репутацию.

Но зачем так делать? Это просто выгодно. Увольнение «по статье» грозит им судами и проверками, а «сокращение» требует выплат. А вот если сотрудник как бы «сам ушел» — компания может сэкономить от 2 до 12 зарплат в каждом случае.

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

Как правильно действовать

Записки оптимизатора 1С (ч.10): Как понять, что процессор — основная боль на вашем сервере СУБД MS SQL Server?

Level of difficultyMedium
Reading time12 min
Views11K

Назрел пост, связанный нагрузкой на процессор сервера СУБД MS SQL Server.

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

Когда нагрузка на процессоре 100%, огромные очереди к нему, то тут действительно всё просто и обсуждать особо нечего. Сценарий простой: либо ищем что его нагружает, либо система переросла процессор и ему пора накинуть мощностей.

А вот когда нагрузка держится на среднем уровне, но при этом есть очереди и ожидания, то здесь далеко не все так очевидно.

Читать далее

Изолируем демоны с systemd или «вам не нужен Docker для этого!»

Reading time9 min
Views52K
В последнее время я вижу, как довольно большое количество людей применяет контейнерную виртуализацию только для того, чтобы запереть потенциально небезопасное приложение внутри контейнера. Как правило, используют для этого Docker из-за его распространенности, и не знают ничего лучше. Действительно, многие демоны первоначально запускаются от имени root, а далее либо понижают свои привилегии, либо master-процесс порождает обрабатывающие процессы с пониженными привилегиями. А есть и такие, которые работают исключительно от root. Если в демоне обнаружат уязвимость, которая позволяет получить доступ с максимальными привилегиями, будет не очень приятно обнаружить злоумышленников, уже успевших скачать все данные и оставить вирусов.
Контейнеризация, предоставляемая Docker и другим подобным ПО, действительно спасает от этой проблемы, но также и привносит новые: необходимо создавать контейнер для каждого демона, заботиться о сохранности измененных файлов, обновлять базовый образ, да и сами контейнеры часто основаны на разных ОС, которые необходимо хранить на диске, хотя они вам, в общем-то, и не особо нужны. Что делать, если вам не нужны контейнеры как таковые, в Docker Hub приложение собрано не так, как нужно вам, да и версия устарела, SELinux и AppArmor кажутся вам слишком сложными, а вам бы хотелось запускать его в вашем окружении, но используя такую же изоляцию, которую использует Docker?

Capabilities

В чем отличие обычного пользователя от root? Почему root может управлять сетью, загружать модули ядра, монтировать файловые системы, убивать процессы любых пользователей, а обычный пользователь лишен таких возможностей? Все дело в capabilities — средстве для управления привилегиями. Все эти привилегии даются пользователю с UID 0 (т.е. root) по умолчанию, а у обычного пользователя нет ни одного из них. Привилегии можно как дать, так и отобрать. Так, например, привычная команда ping требует создания RAW-сокета, что невозможно сделать от имени обычного пользователя. Исторически, на ping ставили SUID-флаг, который просто запускал программу от имени суперпользователя, но сейчас все современные дистрибутивы выставляют CAP_NET_RAW capability, которая позволяет запускать ping из-под любого аккаунта.
Получить список установленных capabilities файла можно командой getcap из состава libcap.
% getcap $(which ping)
/usr/bin/ping = cap_net_raw+ep

Флаг p здесь означает permitted, т.е. у приложения есть возможность использовать заданную capability, e значит effective — приложение будет ее использовать, и есть еще флаг iinheritable, что дает возможность сохранять список capabilities при вызове функции execve().
Capabilities можно задать как на уровне ФС, так и просто у отдельного потока программы. Получить capability, которая не была доступна с момента запуска, нельзя, т.е. привилегии можно только понижать, но не повышать.
Также существуют биты безопасности (Secure Bits), их три: KEEP_CAPS позволяет сохранить capability при вызове setuid, NO_SETUID_FIXUP отключает перенастройку capability при вызове setuid, и NOROOT запрещает выдачу дополнительных привилегий при запуске suid-программ.
Читать дальше →
1
23 ...

Information

Rating
2,420-th
Location
Москва, Москва и Московская обл., Россия
Registered
Activity