Обновить
512K+

Сетевые технологии *

От Ethernet до IPv6

443,74
Рейтинг
Сначала показывать
Порог рейтинга

Открытый проект esp32-c3-adblock позволяет запустить блокировщик рекламы на плате ESP32-C3. Устройство берёт питание из USB-порта роутера, а к сети подключается по Wi-Fi. После прошивки и настройки нужно указать этот элемент как DNS-сервер, чтобы появилась возможность блокировать обращения к рекламным доменам за 10 мс. Внутри гаджета 400 КБ ОЗУ и 4 МБ флеш-памяти. Чтобы вместить список блокировок, разработчик хранит короткие цифровые отпечатки адресов, чтобы 537 тыс. доменов занимали менее 50 КБ.

Теги:
+2
Комментарии1

Представлен открытый проект netboot.xyz — универсальный установщик netboot на Jinja. Проект работает так:

  • установить программу на флешку.

  • далее установщик подключит ПК к интернету и предложит установку нужной системы.

  • на выбор есть Linux, Windows 7/8/10/11, Fedora и другие ОС

  • дальше проект скачает и установит чистую систему.

Теги:
+3
Комментарии0

Открытый проект Unofficial search plugins позволяет искать торренты прямо в qBittorrent. Это каталог поисковых плагинов, которые подключают торрент-сайты к самому клиенту. Можно выбрать нужные источники и искать по нескольким местам сразу с помощью одного запроса. В списке проекта есть Rutor, Nyaa, The Pirate Bay и даже Academic Torrents с научными данными.

Теги:
+4
Комментарии0

xk6-sip: мониторинг нагрузочного тестирования VoIP/SIP-звонков

Разобрал, как устроена observability xk6-sip — расширения k6 для нагрузочного и функционального тестирования SIP-звонков. Всё на реальном прогоне: 100 одновременных звонков, 10 минут, 2000 звонков, 6,1 млн RTP-пакетов.

Внутри: • ASR, SEER (RFC 6076), ALOC и SLA на native histograms — перцентили за окно, а не за весь тест • первый ответ на INVITE и ретрансмиссии: как увидеть перегрузку АТС до первого 503 • one-way audio, джиттер и потери RTP по плечам звонка • CPU, память и трафик самого генератора: АТС тормозит или тест упёрся в себя • почему закрытая модель нагрузки прячет потолок АТС

Дашборд Grafana и стек Prometheus лежат в репозитории, прогон повторяется двумя CLI командами.

https://habr.com/ru/articles/1087004/

Теги:
+3
Комментарии0

Как проверить, что после обновления АТС люди слышат друг друга — без двух телефонов и тестировщика

Сделал расширение для k6, где абоненты - объекты в скрипте: звонят друг другу через АТС и проверяют АОН, переводы и слышимость. Один скрипт — и регресс в CI, и нагрузка на тысячи звонков. Под картинкой - настоящий вывод: лесенка SIP сигнализации одного звонка из trace() и метрики расширения.

Подробно, со схемами звонков и разбором «под капотом» — в статье: https://habr.com/ru/articles/1086816/

Теги:
+5
Комментарии0

Cloudflare представила сервис, который позволяет захостить проект в один клик — Cloudflare Quick Tunnels превращает локальный сервер в публичную ссылку:

  • всё работает через утилиту cloudflared, где нужно указать адрес запущенного сайта — получить ссылку с HTTPS;

  • настраивать роутер и открывать входящие порты не нужно, шифрование и защиту от DDoS берёт на себя Cloudflare;

  • про ИИ‑агентов тоже подумали: адрес и состояние туннеля можно получать в JSON, чтобы ИИ-агент сам подхватывал ссылку для тестов и проверки результата;

  • ссылка временная: остановили туннель — доступ закрылся;

  • работает бесплатно, без регистрации и покупки домена.

Теги:
+8
Комментарии1

Обновлён репозиторий untidetect‑tools со списком сервисов для анти‑детекта в сети, включая:

  • анти‑детект‑браузеры, который меняют цифровой след и позволяют остаться незамеченным;

  • библиотеки для анонимного сёрфинга, что интегрируются прямо в код;

  • ПО для эмуляции реального поведения человека на сайтах и платформах;

  • системы обхода капчи и сервисы для получения e‑mail и СМС;

  • практические советы по приватному сёрфингу в сети.

Теги:
0
Комментарии0

TLS без секретов

Добавили в маркетплейс дополнений для Kubernetes аддон cert-manager CSI Driver — он выдает TLS-сертификаты подам напрямую, без Certificate и Secret.

Классическая схема с Secret имеет слабое место: секреты лежат в etcd и доступны любому с правами на namespace. CSI Driver убирает посредника:

1️⃣ У каждого пода своя пара ключей — приватный ключ генерируется прямо на ноде и не передается по сети.

2️⃣ Ключ удаляется вместе с подом — не остается зависших секретов, которые нужно чистить

3️⃣ Сертификаты обновляются автоматически — без ручных перевыпусков и просроченных TLS

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

Как установить: откройте кластер → Дополнения → cert-manager CSI Driver. Понадобится cert-manager — он тоже есть в маркетплейсе. 

Подключить аддон к кластеру →

Теги:
Всего голосов 12: ↑12 и ↓0+20
Комментарии0

io_uring против epoll в KVM: сервер с большим числом соединений

Тест io_uring против epoll в KVM проводят на одной кодовой базе. Бенчмарк io_uring при множестве соединений корректен, если меняется только бэкенд событий. Итог зависит от ядра, цикла событий, протокола, режима io_uring и offload.

Когда io_uring обгоняет epoll на сетевом сервере?

io_uring обгоняет epoll, когда сервер пакетно отправляет операции и обрабатывает завершения, сокращая число переходов в ядро. Такой выигрыш обычно виден при множестве одновременных соединений и малом объёме работы на запрос. Простая замена epoll-уведомлений на io_uring poll может не окупить сложность.

Что обязано остаться неизменным между epoll и io_uring

Чтобы бенчмарк io_uring при множестве соединений был честным, обе ветки используют общий парсер, обработчик, TLS-режим, keep-alive и формат ответа. Сверяют чтения, записи и аллокации на запрос. Поэтому демонстрационный пример не сравнивают со зрелым сервером.

Готовность fd против очередей submission и completion

epoll сообщает о готовности fd, а приложение выполняет I/O. В io_uring приложение отправляет SQE в submission queue, а ядро записывает CQE. Пакетная отправка сокращает переходы в ядро, но неудачный цикл событий сводит выигрыш к нулю. Поэтому масштабирование epoll в KVM проверяют на том же профиле нагрузки.

Где KVM и virtio могут скрыть разницу бэкендов

Пакет идёт через сетевой стек гостя, очереди vhost-net и тракт хоста. До теста фиксируют число очередей, offload, привязку vCPU и IRQ. Иначе задержка сетевого сервера io_uring объясняется хостом, а не бэкендом.

Какой тест позволяет честно сравнить эти модели?

Используйте один код сервера, протокол, объём работы на запрос и правила соединений, меняя только бэкенд событий. После прогрева запускайте серии с одинаковым CPU-бюджетом на каждой ступени concurrency. Публикуйте пропускную способность, p99, число системных вызовов, ошибки и загрузку гостя и хоста отдельно.

Соединения, запросы и backpressure без скрытых различий

Задайте размеры запросов и ответов, долю новых соединений и keep-alive. Повышайте concurrency до насыщения, следя за ошибками, таймаутами и очередью. Накладные расходы цикла событий оценивайте по CPU на запрос и числу системных вызовов, сопоставляя их с p99 и пропускной способностью.

Syscalls, переключения контекста и CPU на запрос

Счётчики cycles, instructions и context-switches делят на число запросов. Отдельно измеряют расход CPU рабочими и vhost-потоками. Многократный accept в io_uring снижает число постановок accept, но каждый CQE нужно обработать. К отчёту прикладывают коммит, конфиги бэкендов, генератор и сырой CSV.

Где преимущество появляется и где исчезает

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

Какие накладные расходы добавляет KVM?

  1. Часть ожидания vCPU отражается в %steal, остальные паузы видны только на хосте.

  2. Очереди гостя, vhost и NIC хоста могут накапливать пакеты независимо от бэкенда.

  3. IRQ, softirq и offload влияют на расход CPU, поэтому настройки фиксируют до теста.

Как найти источник p99 внутри ring или цикла событий

При росте p99 трассируют SQ/CQ, обработку CQE и паузы рабочих потоков. Проверяют переполнение ring, незавершённые операции и backpressure. Если хвостовая латентность растёт вместе с паузами vCPU, сначала проверяют хост.

Когда выигрыш оправдывает новый бэкенд

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

io_uring против epoll в KVM выбирают не по новизне API. Переход оправдан, если серии дают выигрыш по p99, пропускной способности или CPU на запрос, а поведение при перегрузке и fallback предсказуемо. Иначе epoll остаётся более простым бэкендом.

Теги:
Всего голосов 5: ↑4 и ↓1+5
Комментарии0

Представлен открытый сетевой проект Tailcat — как netcat, но поверх плоскости данных Tailscale. Также доступна экспериментальная веб‑демонстрация в браузере (tailcat, скомпилированный в WebAssembly), которая может отправлять и получать файлы или текст, взаимодействуя с CLI. Трафик браузера передаётся только через DERP, без прямых соединений до появления поддержки WebRTC

Теги:
Всего голосов 2: ↑2 и ↓0+4
Комментарии0

Этот Open Source-сервис может заменить вам облако для передачи файлов

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

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

Поддерживаются Windows, macOS, Linux, iOS и Android. Свои устройства можно связать один раз, чтобы в дальнейшем не вводить код подключения повторно.

Есть и удобный вариант для отправки другому человеку: получателю достаточно открыть ссылку в браузере — устанавливать AlterSend необязательно.

Проект полностью бесплатный и с открытым исходным кодом под лицензией Apache-2.0. Код и инструкции доступны в репозитории AlterSend на GitHub.

КОД — журнал о технологиях

💻 Новости и обзоры из мира технологий, полезные материалы, интересные факты и всё, что связано с современными цифровыми решениями.

😎 Подписывайтесь на наш Telegram-канал: https://t.me/kodjournal

Теги:
Всего голосов 2: ↑0 и ↓2-2
Комментарии0

12 уроков по системному администрированию: от nftables до RAID

Пока всё работает, инфраструктура редко требует пристального внимания. Настоящая проверка начинается в момент сбоя: L2-петля кладёт сеть, изменение firewall грозит потерей SSH‑доступа, место на диске заканчивается не вовремя, а по логам сложно понять, где именно возникла проблема.

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

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

Linux: безопасность, сервисы и хранение

  • 20 августа, 20:00. «Средства защиты в ядре Linux». Записаться

  • 26 августа, 19:00. «Nftables без потери SSH: безопасно настраиваем firewall на удаленном сервере». Записаться

  • 3 сентября, 19:00. «Первый веб‑сервер на Linux: Nginx, Apache и проверка доступности». Записаться

  • 8 сентября, 20:00. «LVM без простоя: расширение тома, перенос данных и аварийный откат через snapshot». Записаться

  • 17 сентября, 20:00. «Где Linux хранит настройки и логи: разбираем файловую структуру на практике». Записаться

  • 21 сентября, 20:00. «Типовые задачи с RAID‑массивами: создание, эксплуатация, перенос данных и восстановление». Записаться

Сети

  • 24 августа, 20:00. «Защита от петель L2: что выбрать, если STP уже не устраивает». Записаться

Windows‑инфраструктура

  • 7 сентября, 20:00. «Linux для Windows администратора за 60 минут». Записаться

  • 22 сентября, 20:00. «Топ GPO, которые помогут тебе». Записаться

Автоматизация, диагностика и высокая доступность

  • 10 сентября, 20:00. «Настройка GitLab Runners». Записаться

  • 23 сентября, 20:00. «eBPF: рентгеновское зрение для production». Записаться

  • 23 сентября, 20:00. «Узнайте, как использовать Patroni для управления высокодоступными кластерами PostgreSQL». Записаться

ЧТО ПОЧИТАТЬ ПО ТЕМЕ:

  • «Прощай, Fail2Ban: усиливаем защиту Netbird и Caddy с CrowdSec» — практический разбор защиты сервера: работа с логами, блокировка нежелательного трафика и настройка nftables. Читать на Хабре

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

  • «Ищем петли и шторма в L2 сети» — как диагностировать L2-петли, broadcast‑штормы и MAC flapping, найти проблемный порт и восстановить работу сети. Читать на Хабре

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

Теги:
Всего голосов 4: ↑3 и ↓1+5
Комментарии0

ФСТЭК опубликовала методику оценки уровня зрелости в области технической защиты информации, которая затрагивает в том числе значимые объекты КИИ. Документ вводит пять уровней зрелости (от «нулевого» до «верифицируемого») и 21 направление оценки — от управления защитой до применения ИИ. Эксперты отмечают, что методика призвана бороться с недобросовестными подрядчиками и перевести ИБ из разрозненных задач в стратегию, однако её реализацию могут осложнить неясность с проведением оценки и отсутствие должного контроля со стороны регулятора.

Теги:
Всего голосов 1: ↑1 и ↓0+3
Комментарии0

Ближайшие события

«Bad Apple!! Но это же traceroute! В продолжение моего поста о том, как заставить инструменты traceroute отображать произвольное содержимое, и вдохновлённый выходом на днях ещё одной кавер‑версии Bad Apple, я просто не мог не сделать это», — пояснил Йонас Шефер.

Используя функцию numgen из библиотеки nftables, мы можем изменять количество переходов каждый раз при генерации пакета ICMPv6. Функция numgen возвращает либо случайные числа, либо монотонный счетчик. С помощью счётчика мы можем легко настроить каждый переход так, чтобы он возвращал разный IPv6-адрес при генерации ответного пакета.

Для этого потребовалось ещё две вещи. Во-первых, необходимо отключить ограничение скорости ядра (по умолчанию 1/с) для исходящего трафика ICMPv6 с помощью команды sysctl net.ipv6.icmp.ratelimit=0, иначе всё закончится очень быстро. Вторая проблема заключается в том, что mtr обычно показывает несколько адресов для каждого узла, поскольку это указывает на использование нескольких разных путей для пакета, и это обычно полезная информация.

После всего этого я использовал ffmpeg для передискретизации видео до 8 кадров в секунду (что соответствует интервалу в 125 мс между кадрами) и экспорта уменьшенных (до 30x11 пикселей) отдельных кадров в файлы PNG. Затем я написал скрипт на Python для чтения файлов изображений и преобразования их в набор правил nftables для генерации соответствующих ответов ICMPv6. В результате получается чуть более мегабайта правил nftables, но это определённо того стоит.

Теги:
Всего голосов 5: ↑5 и ↓0+9
Комментарии1

С днём системного администратора!

Стабильного коннекта, низкого пинга, работающего резервного копирования!

Теги:
Всего голосов 4: ↑4 и ↓0+6
Комментарии0

Представлен открытый SSH‑менеджер Termix, который работает без подписок или рекламы. Проект включает в себя как стандартные функции, так и расширенные:

  • 2FA для защиты доступа к серверам;

  • удобный интерфейс, разработанный на React и Tailwind CSS;

  • терминал SSH с разделением экрана, управлением SSH‑туннелями;

  • удалённый редактор файлов с подсветкой синтаксиса;

  • мониторинг вообще всех ресурсов серверов;

  • менеджер Docker и Podman‑контейнеров.

Теги:
Всего голосов 2: ↑2 и ↓0+4
Комментарии0

Как связать контейнеры Nginx и PHP в Docker Compose, чтобы Nginx мог проксировать запросы?

Допустим, вы пытаетесь развернуть связку из веб-сервера и PHP. Контейнеры поднимаются, но веб-сервер выдает ошибку сети и не может достучаться до PHP-бэкенда. Разберемся, что нужно прописать в конфиге Nginx, чтобы они увидели друг друга.

Чаще всего подобная проблема возникает из-за того, что контейнеры изолированы друг от друга на сетевом уровне, либо в конфигурационном файле веб-сервера некорректно указан адрес целевого хоста. В экосистеме Docker Compose встроенный DNS-сервер автоматически сопоставляет имена сервисов с их внутренними IP-адресами. Поэтому не нужно прописывать статические IP — достаточно правильно использовать имена, заданные в манифесте. 

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

Чтобы Nginx мог передавать запросы PHP-FPM, необходимо:

  • убедиться, что оба контейнера находятся в одной сети (app_network),

  • указать в конфигурации Nginx правильный адрес PHP-контейнера (в нашем примере это php:9000, где php — имя сервиса в docker-compose.yml).

Шаг 1: Проверка манифеста docker-compose.yml

Убедитесь, что для обоих сервисов явно выделена одна общая сеть. Пример корректной структуры:

version: '3.8'
services:
  nginx:
    image: nginx:latest
    container_name: nginx
    ports:
      - "80:80"
    volumes:
      - ./nginx/nginx.conf:/etc/nginx/nginx.conf
      - ./nginx/html:/var/www/html
    depends_on:
      - php
    networks:
      - app_network

  php:
    image: php:8.2-fpm
    container_name: php
    volumes:
      - ./php:/var/www/html
    networks:
      - app_network

networks:
  app_network:
    driver: bridge

Шаг 2: Настройка конфигурации Nginx

В блоке location, отвечающем за обработку PHP-скриптов, в директиве fastcgi_pass вместо 127.0.0.1 или localhost необходимо подставить имя сервиса PHP из файла конфигурации:

server {
    listen 80;
    server_name localhost;

    root /var/www/html;
    index index.php index.html;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location ~ \.php$ {
        fastcgi_pass php:9000;  # Связь с PHP-контейнером
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }
}

Директива depends_on в блоке Nginx гарантирует, что веб-сервер не начнет стартовать раньше, чем поднимется контейнер с PHP. Это предотвратит падение Nginx при первичном запуске окружения, если он не сможет сразу разрешить DNS-имя php.

Если вы хотите глубже разобраться в сетевых механизмах, управлении volumes и оркестрации контейнеров, читайте наш полный материал: Docker Compose и основы работы с контейнерами.

Теги:
Всего голосов 6: ↑6 и ↓0+11
Комментарии0

Как VPN может украсть вашу криптовалюту

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

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

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

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

Поэтому опасен не VPN как протокол, а приложение и инфраструктура, которым пользователь передаёт слишком много доверия. Особенно рискованны клиенты из рекламы, Telegram-архивов, неизвестных GitHub-репозиториев и сайтов-клонов. Перед установкой стоит проверить разработчика, цифровую подпись, источник загрузки, запрашиваемые разрешения и наличие открытого кода. А устройство, с которого проводятся крупные криптооперации, лучше вообще не превращать в полигон для случайных VPN-клиентов. Защищая IP-адрес, легко случайно отдать злоумышленнику куда более ценную часть своей цифровой жизни.

Теги:
Всего голосов 13: ↑2 и ↓11-6
Комментарии1

Представлен открытый проект Send it, with PairDrop (веб-версия проекта) — AirDrop для всех. Это универсальный способ передачи файлов на ПК и мобильных устройствах в браузере между Windows, Linux, Android, iOS, macOS и другими ОС:

  • работает без скачиваний драйверов и утилит и дополнительного ПО;

  • просто открываем сайт на обоих устройствах в браузере и начинаем передачу;

  • если используете одну сеть Wi‑Fi — устройства сразу увидят друг друга;

  • если используете разные сети — нужно один раз ввести шестизначный код, создать пару устройств, и дальше устройства будут находить друг друга автоматом;

  • передача файлов идем напрямую между устройствами;

  • можно передавать большие объёмы данных без ограничений.

Теги:
Всего голосов 4: ↑4 и ↓0+6
Комментарии0

ICL Services выпустила новый эпизод подкаста «Сервисные хроники», посвященный эволюции технологии SD-WAN. Главным гостем нашего выпуска стал Максим Каминский, менеджер по развитию бизнеса «Лаборатории Касперского», давнего партнера ICL Services в области информационной безопасности.

Участники разобрали технологию SD-WAN глазами тех, кто ее разрабатывает, и тех, кто ежедневно внедряет в инфраструктуру бизнеса. Отдельный блок был посвящен кибербезопасности — в ее рамках мы вместе с «Лабораторией Касперского» регулярно реализуем совместные проекты для российских компаний. Герои обсудили, как привязать к SD-WAN полноценную защиту с помощью сервисных цепочек, межсетевых экранов и умной оркестрации.

Теги:
Всего голосов 2: ↑2 и ↓0+4
Комментарии0
1
23 ...