Приглашаем на вебинар «DDoS-атаки в 2022 и методы защиты от них» 16 июня в 19:00 по мск. На вебинаре поделимся опытом и кейсами, связанными с DDoS-атаками.
Запускаем Matlab внутри Docker-контейнера с поддержкой GUI в ОС GNU/Linux
Возникла задача запускать графические приложения в полностью изолированной среде: как от Интернета, так и от файловой системы «хозяйской» ОС. В моём случае это был Matlab. Пишут, что в последних версиях он стал шибко «умным»: сам без спроса постоянно лезет в сеть и чем-то там постоянно обменивается со своими серверами. Однако использовать для поставленной задачи виртуальную гостевую машину / аппаратную виртуализацию (наподобие VirtualBox) — это, ИМХО, «too much». Docker подошел бы гораздо лучше, т.к. он использует то же ядро ОС и не требует эмуляции / виртуализации ввода-вывода, что существенно экономит ресурсы. Однако Docker «из коробки» не предназначен для запуска GUI-приложений. Что ж, попробуем это исправить и запустить таки Matlab внутри Docker-контейнера с полной поддержкой «иксов» и GUI.
Kubernetes, ищем базу
В этой статье я хочу показать, что меняется в состоянии кластера kubernetes при создании базовых ресурсов. В качестве кластерной платформы был выбран minikube чтобы каждый мог повторить проделанные мной шаги безо всяких проблем.
Уходящий в историю стандарт. Запускаем базовую станцию 3G (UMTS)
2023 год стал началом массового отключения ныне уже устаревших сетей третьего поколения. Многие операторы по всему миру уже вывели из эксплуатации эти сети или запланировали это на ближайшие годы. Самое время для того, чтобы поднять такую базовую станцию у себя. И, как выяснилось в процессе, это не так просто, как может показаться.
Итак, в сегодняшней статье разберёмся с тем, как собрать и заставить работать софт для поднятия сотовой сети типа UMTS. Узнаем, как устроены и работают такие сети. Традиционно будет много интересного.
Балансировка входящих соединений на iptables
В общем виде схема выглядит так:
клиент ----> балансировщик ---> бэкенд (сервис)
Готовых балансировщиков под конкретные нужды множество. Например, nginx — отличный балансировщик для веб-приложений, haproxy для tcp-соединений.
Оперативная реакция на DDoS-атаки
на соединения
limit_conn_zone $binary_remote_addr zone=perip:10m;
limit_conn perip 100;
и скорость запросов на динамику (fastcgi_pass на php-fpm)
limit_req_zone $binary_remote_addr zone=dynamic:10m rate=2r/s;
limit_req zone=dynamic burst=10 nodelay;
Сильно полегчало, по логам видно, что в первую зону никто не попадает, зато вторая отрабатывает по полной.
Но плохиши продолжали долбить, и захотелось их отбрасывать раньше — на уровне фаервола, и надолго.
Сначала сам парсил логи, и особо настырных добавлял через iptables в баню. Потом парсил уже по крону каждые 5 минут. Пробовал fail2ban. Когда понял, что плохишей стало очень много, перенёс их в ipset ip hash.
Почти всё хорошо стало, но есть неприятные моменты:
— парсинг/сортировка логов тоже приличное (процессорное) время отнимает
— сервер тупит, если началась новая волна между соседними разборками (логов)
Нужно было придумать как быстро добавлять нарушителей в черный список. Сначала была идея написать/дописать модуль к Nginx + демон, который будет ipset-ы обновлять. Можно и без демона, но тогда придётся запускать Nginx от рута, что не есть красиво. Написать это реально, но понял, что нет столько времени. Ничего похожего не нашёл (может плохо искал?), и придумал вот такой алгоритм.
При привышении лимита, Nginx выбрасывает 503-юю ошибку Service Temporarily Unavailable. Вот я решил на неё и прицепиться!
Для каждого location создаём свою страничку с ошибкой
error_page 503 =429 @blacklist;
И соответствующий именованный location
location @blacklist {
fastcgi_pass localhost:1234;
fastcgi_param SCRIPT_FILENAME /data/web/cgi/blacklist.sh;
include fastcgi_params;
}
Дальше интересней.
Нам нужна поддержка CGI-скриптов. Ставим, настраиваем, запускаем spawn-fcgi и fcgiwrap. У меня уже было готовое для collectd.
Сам CGI-скрипт
Электронное правительство, руки прочь от моих сайтов
$whois 109.207.13.1
...
inetnum: 109.207.0.0 - 109.207.15.255
netname: Electronic-government
descr: OJSC Rostelecom
descr: Electronic government of the Russian Federation
...
Спрашивается, что им надо от моих сайтов? — впрочем не важно, не умеете себя вести (игнорируете robots.txt), и наверняка ничего хорошего мне не сулите, тогда отправляйтесь в бездну:
#iptables -A INPUT -s 109.207.13.0/24 -p tcp -j DROP
Suricata как IPS
Предисловие
Печально видеть, что статьи о предупреждении или предотвращении вторжений на хабре столь непопулярны.
Курс молодого бойца: защищаемся маршрутизатором. Продолжение: IPS — 5 плюсов.
SNORT как сервисная IPS — 25 плюсов.
OSSEC: Большой Брат наблюдает за тобой — 13 плюсов.
Однако, огромной популярностью пользуются статьи по разбору последствий проникновения. Попробую вбросить очередную популяризацию информационной безопасности.
Описание Suricata
Система предотвращения вторжений (англ. Intrusion Prevention System) — программная или аппаратная система сетевой и компьютерной безопасности, обнаруживающая вторжения или нарушения безопасности и автоматически защищающая от них.
Системы IPS можно рассматривать как расширение Систем обнаружения вторжений (IDS), так как задача отслеживания атак остается одинаковой. Однако, они отличаются в том, что IPS должна отслеживать активность в реальном времени и быстро реализовывать действия по предотвращению атак. Возможные меры — блокировка потоков трафика в сети, сброс соединений, выдача сигналов оператору. Также IPS могут выполнять дефрагментацию пакетов, переупорядочивание пакетов TCP для защиты от пакетов с измененными SEQ и ACK номерами.
wiki
Suricata — open source IPS/IDS система. Основана разработчиками, которые трудились над IPS версией Snort. Основное отличие Suricata от Snort — возможность использования GPU в режиме IDS, более продвинутая система IPS, многозадачность, как следствие высокая производительность, позволяющая обрабатывать трафик до 10Gbit на обычном оборудовании, и многое другое, в том числе полная поддержка формата правил Snort. Лучше почитать обо всём на официальном сайте. Cегодня погорим об IPS.
Прокачка debian/ubuntu сервера для маленьких
О плясках с бубенчиком я бы хотел описать тут в подробностях.
Всё в этом посте было собрано на просторах интернета, доработано, разжевано и скинуто в одну статью.
Выбор пал на https://account.nt-vps.ru/register/ из-за низких цен и неплохой стабильности за эти деньги(правда 2 дня были серьезные проблемы с сетью). Был взят VPS за 5 рублей в сутки(или за 150р в месяц) с небольшими конфигурациями ОЗУ 128mb и 10Гб на диске.
В автоматическом режиме был установлен Debian 7.0 x86-64 Wheezy и VPS была готова к работе.
64 битная сиcтема была выбрана лишь для моих личных нужд, а вам же советую, на этом VPS, ставить x86.
Раздача интернета с 3G модема в локальную сеть в Linux
1) Прежде всего, научить Linux работать с модемом
2) Создать NAT для раздачи интернета
3) Запихнуть всё это дело в автозагрузку
Итак, bash, wvdial и iptables под мышку — и поехали!
Еще один способ перехвата трафика через ARP Spoofing
Под катом много букв.
Open source UTM на защите периметра сети
Сегодня хотелось бы поделиться опытом создания устройства для защиты периметра сети небольшой организации, построенного на базе open source решений: стандартного линуксового межсетевого экрана NETFilter с графическим интерфейсом Firewall Builder, системы обнаружения и предотвращения вторжений Suricata с веб-интерфейсом Snorby и шлюза удаленного доступа OpenVPN на одной виртуальной машине.
Надеюсь, статья поможет молодым администраторам в решении возможных проблем, которые могут возникнуть при установке open source решений по безопасности сети.
Всех заинтересовавшихся приглашаю под кат.
Пассивный фингерпринтинг для выявления синтетического трафика
Debian + Postfix + Dovecot + Multidomain + SSL + IPv6 + OpenVPN + Multi-interfaces + SpamAssassin-learn + Bind
Postfix + Dovecot. SPF + DKIM + rDNS. С IPv6.
С шифрованием TLS. С поддержкой нескольких доменов — часть с настоящим SSL сертификатом.
С антиспам-защитой и высоким антиспам-рейтингом у других почтовых серверов.
С поддержкой нескольких физических интерфейсов.
С OpenVPN, подключение к которому через IPv4, и которое даёт IPv6.
Если вы не хотите изучать эти все технологии, но хотите настроить такой сервер — тогда эта статья для вас.
В статье отсутствуют попытки пояснить каждую деталь. Пояснение идёт к тому, что настроено не стандартно или важно с точки зрения потребителя.
Разрешаем доступ к веб-серверу только через CloudFlare (iptables)
Cloudflare — отличная штука для защиты сайтов от разных компьютерных жуликов — хацкеров. Однако, если они всё же узнали как-то оригинальный IP веб-сервера, на котором расположен сайт, они как минимум будут пробовать атаковать его по IP, минуя прокси. Можно городить редиректы, слать NGINX-ом ресеты кодом 444 при попытке зайти на несуществующие домены, но самый железный выход из ситуации такой: открыть http/https трафик на сервер только для IP адресов нашей защитной прокси.
Свой сервер видеоконференций Jitsi. Часть 1 (Обновлено)
- Свой сервер видеоконференций Jitsi.
Jitsi и все необходимые службы работают на одном сервере + сервис Jibri (для записи видеоконференций на отдельном сервере). - Свой высоконагруженный сервис видеоконференций Jitsi.
Jitsi и все необходимые зависимые службы работают на разных серверах для получения высокой производительности. - Свой мессенджер Matrix-synapse в связке с Jitsi-meet.
Настройка Matrix на своем сервере и объединение с Jitsi для видеозвонков.
В данной статье я расскажу, как поднять собственный сервер видеоконференций jitsi-meet. Для нормального функционирования мне пришлось собирать информацию по крупицам, общаться с разработчиками данной утилиты, перечитать всю документацию и облазить кучу форумов. Тут я собрал все в один мануал на русском.
Централизованный фаервол Rambler Group
Зачем мы его создали?
Долгое время мы в Rambler Group использовали трёхуровневую архитектуру сети ЦОД, в которой каждый проект или инфраструктурный компонент жил в выделенном влане. Весь трафик – как между вланами, так и между дата-центрами – шел через оборудование edge-уровня.
Настройка уязвимых машин через Vagrant
Статья расскажет о нестандартном подходе для использования системы конфигурации виртуальных сред. Будет показан процесс создания уязвимой версии виртуальной машины Linux для проведения соревнований CTF или для практики по hardening операционных систем.
OpenVPN c расширенной аутентификацией и авторизацией
В статье рассматривается настройка OpenVPN c дополнительными фичами:
- сертификаты на токенах для первичной аутентификации (на примере Rutoken)
- LDAP-бекенд для вторичной аутентификации (на примере ActiveDirectory)
- фильтрация внутренних ресурсов, доступных для пользователяx (через iptables)
Так же описана настройка клиентов под Linux, Windows и MacOS.
Используем nftables в Red Hat Enterprise Linux 8
Статья подготовлена в преддверии старта курса «Администратор Linux»
В Red Hat Enterprise Linux 8 приоритетным низкоуровневым решением является nftables. В этой статье мы поговорим о том, как начать использовать nftables. Наиболее актуальной она будет для системных администраторов и DevOps-специалистов. Там, где это имеет смысл, мы поговорим о различиях между nftables и его предшественником — iptables.
Для начала необходимо отметить, что nftables – это userland-утилита, nft и подсистема ядра. Внутри ядра она строится на базе подсистемы netfilter. В этой статье мы будем говорить о взаимодействии пользователя с утилитой nft.
Здесь вы найдете примеры команд, которые сможете протестировать на машине. Они будут полезны для лучшего понимания содержания.