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

Вебинар «DDoS-атаки и методы защиты от них» 16 июня

Время на прочтение1 мин
Количество просмотров763

Приглашаем на вебинар «DDoS-атаки в 2022 и методы защиты от них» 16 июня в 19:00 по мск. На вебинаре поделимся опытом и кейсами, связанными с DDoS-атаками.

Узнать про вебинар
Всего голосов 9: ↑9 и ↓0+9
Комментарии0

Запускаем Matlab внутри Docker-контейнера с поддержкой GUI в ОС GNU/Linux

Уровень сложностиСредний
Время на прочтение51 мин
Количество просмотров5K

Возникла задача запускать графические приложения в полностью изолированной среде: как от Интернета, так и от файловой системы «хозяйской» ОС. В моём случае это был Matlab. Пишут, что в последних версиях он стал шибко «умным»: сам без спроса постоянно лезет в сеть и чем-то там постоянно обменивается со своими серверами. Однако использовать для поставленной задачи виртуальную гостевую машину / аппаратную виртуализацию (наподобие VirtualBox) — это, ИМХО, «too much». Docker подошел бы гораздо лучше, т.к. он использует то же ядро ОС и не требует эмуляции / виртуализации ввода-вывода, что существенно экономит ресурсы. Однако Docker «из коробки» не предназначен для запуска GUI-приложений. Что ж, попробуем это исправить и запустить таки Matlab внутри Docker-контейнера с полной поддержкой «иксов» и GUI.

Читать далее
Всего голосов 16: ↑15 и ↓1+14
Комментарии9

Kubernetes, ищем базу

Уровень сложностиСредний
Время на прочтение11 мин
Количество просмотров5.4K

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

Читать далее
Всего голосов 12: ↑11 и ↓1+10
Комментарии0

Уходящий в историю стандарт. Запускаем базовую станцию 3G (UMTS)

Уровень сложностиСложный
Время на прочтение11 мин
Количество просмотров8.7K
Приветствую всех!

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



Итак, в сегодняшней статье разберёмся с тем, как собрать и заставить работать софт для поднятия сотовой сети типа UMTS. Узнаем, как устроены и работают такие сети. Традиционно будет много интересного.
Читать дальше →
Всего голосов 62: ↑62 и ↓0+62
Комментарии46

Балансировка входящих соединений на iptables

Время на прочтение3 мин
Количество просмотров26K
Предположим, что у вас есть некий сервис, принимающий входящие соединения и возникла задача балансировки нагрузки и/или отказоустойчивости.

В общем виде схема выглядит так:
клиент ----> балансировщик ---> бэкенд (сервис)


Готовых балансировщиков под конкретные нужды множество. Например, nginx — отличный балансировщик для веб-приложений, haproxy для tcp-соединений.

Так почему iptables?
Всего голосов 37: ↑36 и ↓1+35
Комментарии16

Оперативная реакция на DDoS-атаки

Время на прочтение4 мин
Количество просмотров51K
Один из ресурсов, за которым я присматриваю, вдруг стал неожиданно популярным как у хороших пользователей, так и у плохих. Мощное, в общем-то, железо перестало справляться с нагрузкой. Софт на сервере самый обычный — Linux,Nginx,PHP-FPM(+APC),MySQL, версии — самые последние. На сайтах крутится Drupal и phpBB. Оптимизация на уровне софта (memcached, индексы в базе, где их не хватало) чуть помогла, но кардинально проблему не решила. А проблема — большое количество запросов, к статике, динамике и особенно базе. Поставил следующие лимиты в Nginx:

на соединения
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-скрипт
Читать дальше →
Всего голосов 57: ↑50 и ↓7+43
Комментарии50

Электронное правительство, руки прочь от моих сайтов

Время на прочтение1 мин
Количество просмотров67K
Уже не в первый раз замечаю атаку на свои сервера из подсети «Ростелекома», относящейся к некоему «электронному правительству».

$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
Всего голосов 217: ↑161 и ↓56+105
Комментарии106

Suricata как IPS

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

Предисловие


Печально видеть, что статьи о предупреждении или предотвращении вторжений на хабре столь непопулярны.
Курс молодого бойца: защищаемся маршрутизатором. Продолжение: IPS5 плюсов.
SNORT как сервисная IPS25 плюсов.
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.
Читать дальше →
Всего голосов 31: ↑26 и ↓5+21
Комментарии12

Прокачка debian/ubuntu сервера для маленьких

Время на прочтение9 мин
Количество просмотров184K
Всем привет. Недавно появилась необходимость поднятие VPS на debian 7 за скромные деньги.
О плясках с бубенчиком я бы хотел описать тут в подробностях.
Всё в этом посте было собрано на просторах интернета, доработано, разжевано и скинуто в одну статью.


Выбор пал на https://account.nt-vps.ru/register/ из-за низких цен и неплохой стабильности за эти деньги(правда 2 дня были серьезные проблемы с сетью). Был взят VPS за 5 рублей в сутки(или за 150р в месяц) с небольшими конфигурациями ОЗУ 128mb и 10Гб на диске.

В автоматическом режиме был установлен Debian 7.0 x86-64 Wheezy и VPS была готова к работе.
64 битная сиcтема была выбрана лишь для моих личных нужд, а вам же советую, на этом VPS, ставить x86.

Далее
Всего голосов 159: ↑119 и ↓40+79
Комментарии95

Раздача интернета с 3G модема в локальную сеть в Linux

Время на прочтение12 мин
Количество просмотров46K
Эта статья — продолжение статьи Беспроводная точка доступа, используя Linux. Тут я опишу, что же необходимо сделать для того, чтобы раздавать интернет с 3G-модема по уже созданной по инструкции из предыдущего топика вайфай-сети.

1) Прежде всего, научить Linux работать с модемом
2) Создать NAT для раздачи интернета
3) Запихнуть всё это дело в автозагрузку
Итак, bash, wvdial и iptables под мышку — и поехали!
Читать дальше →
Всего голосов 25: ↑14 и ↓11+3
Комментарии20

Еще один способ перехвата трафика через ARP Spoofing

Время на прочтение6 мин
Количество просмотров86K
На Хабре было уже много статей на тему классического ARP спуфинга, однако все они были похожи тем, что для полноценного перехвата трафика надо было подменять ARP записи у двух машин. Как правило, это жертва и ее шлюз по умолчанию. Однако, идея спуфить шлюз не всегда хороша. Он вполне может иметь на борту детектор атак, который в два счета доложит админу что сеть ломают и халява кончится, не начавшись. В данной статье будет рассмотрен метод перехвата трафика, при котором атака производится только на хост-жертву. Как обычно в таких случаях, статья чисто для ознакомления, использование во вред карается по закону и т.д.
Под катом много букв.

Читать дальше →
Всего голосов 44: ↑42 и ↓2+40
Комментарии30

Open source UTM на защите периметра сети

Время на прочтение7 мин
Количество просмотров24K
Привет, Хабровчане!

Сегодня хотелось бы поделиться опытом создания устройства для защиты периметра сети небольшой организации, построенного на базе open source решений: стандартного линуксового межсетевого экрана NETFilter с графическим интерфейсом Firewall Builder, системы обнаружения и предотвращения вторжений Suricata с веб-интерфейсом Snorby и шлюза удаленного доступа OpenVPN на одной виртуальной машине.

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

Всех заинтересовавшихся приглашаю под кат.
Читать дальше →
Всего голосов 15: ↑14 и ↓1+13
Комментарии12

Пассивный фингерпринтинг для выявления синтетического трафика

Время на прочтение3 мин
Количество просмотров29K
imageЯ достаточно долгое время вынашивал идею рассмотреть клиентов публичного web-сервиса, браузер которых посылает заголовок User-Agent как у браузера в Windows, и которые при этом имеют все признаки сетевого стэка *nix-систем. Предположительно, в этой группе должна быть большая концентрация ботов, запущенных на недорогих хостингах для накрутки трафика или сканирования сайта.
Читать дальше →
Всего голосов 33: ↑27 и ↓6+21
Комментарии43

Debian + Postfix + Dovecot + Multidomain + SSL + IPv6 + OpenVPN + Multi-interfaces + SpamAssassin-learn + Bind

Время на прочтение28 мин
Количество просмотров29K
Данная статья о том как настроить современный почтовый сервер.
Postfix + Dovecot. SPF + DKIM + rDNS. С IPv6.
С шифрованием TLS. С поддержкой нескольких доменов — часть с настоящим SSL сертификатом.
С антиспам-защитой и высоким антиспам-рейтингом у других почтовых серверов.
С поддержкой нескольких физических интерфейсов.
С OpenVPN, подключение к которому через IPv4, и которое даёт IPv6.

Если вы не хотите изучать эти все технологии, но хотите настроить такой сервер — тогда эта статья для вас.

В статье отсутствуют попытки пояснить каждую деталь. Пояснение идёт к тому, что настроено не стандартно или важно с точки зрения потребителя.
Читать дальше →
Всего голосов 34: ↑30 и ↓4+26
Комментарии31

Разрешаем доступ к веб-серверу только через CloudFlare (iptables)

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

Cloudflare — отличная штука для защиты сайтов от разных компьютерных жуликов — хацкеров. Однако, если они всё же узнали как-то оригинальный IP веб-сервера, на котором расположен сайт, они как минимум будут пробовать атаковать его по IP, минуя прокси. Можно городить редиректы, слать NGINX-ом ресеты кодом 444 при попытке зайти на несуществующие домены, но самый железный выход из ситуации такой: открыть http/https трафик на сервер только для IP адресов нашей защитной прокси.
Читать дальше →
Всего голосов 14: ↑10 и ↓4+6
Комментарии26

Свой сервер видеоконференций Jitsi. Часть 1 (Обновлено)

Время на прочтение14 мин
Количество просмотров47K
Это первая статья, в которой я расскажу, как поднять свой собственный сервер видеоконференций Jitsi-meet. Я планирую выпустить три статьи на эту тему:

  1. Свой сервер видеоконференций Jitsi.
    Jitsi и все необходимые службы работают на одном сервере + сервис Jibri (для записи видеоконференций на отдельном сервере).
  2. Свой высоконагруженный сервис видеоконференций Jitsi.
    Jitsi и все необходимые зависимые службы работают на разных серверах для получения высокой производительности.
  3. Свой мессенджер Matrix-synapse в связке с Jitsi-meet.
    Настройка Matrix на своем сервере и объединение с Jitsi для видеозвонков.

В данной статье я расскажу, как поднять собственный сервер видеоконференций jitsi-meet. Для нормального функционирования мне пришлось собирать информацию по крупицам, общаться с разработчиками данной утилиты, перечитать всю документацию и облазить кучу форумов. Тут я собрал все в один мануал на русском.
Читать дальше →
Всего голосов 18: ↑18 и ↓0+18
Комментарии45

Централизованный фаервол Rambler Group

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

Зачем мы его создали?


Долгое время мы в Rambler Group использовали трёхуровневую архитектуру сети ЦОД, в которой каждый проект или инфраструктурный компонент жил в выделенном влане. Весь трафик – как между вланами, так и между дата-центрами – шел через оборудование edge-уровня.
Читать дальше →
Всего голосов 5: ↑3 и ↓2+1
Комментарии2

Настройка уязвимых машин через Vagrant

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

Статья расскажет о нестандартном подходе для использования системы конфигурации виртуальных сред. Будет показан процесс создания уязвимой версии виртуальной машины Linux для проведения соревнований CTF или для практики по hardening операционных систем.

Читать далее
Всего голосов 8: ↑7 и ↓1+6
Комментарии0

OpenVPN c расширенной аутентификацией и авторизацией

Время на прочтение11 мин
Количество просмотров42K
UPD 2020-07-03: Прошло несколько лет, ситуация сильно изменилась, и в первую очередь я бы сейчас смотрел на wireguard + yubikey. Но все это по-прежнему работает.


В статье рассматривается настройка OpenVPN c дополнительными фичами:

  • сертификаты на токенах для первичной аутентификации (на примере Rutoken)
  • LDAP-бекенд для вторичной аутентификации (на примере ActiveDirectory)
  • фильтрация внутренних ресурсов, доступных для пользователяx (через iptables)

Так же описана настройка клиентов под Linux, Windows и MacOS.
Читать дальше →
Всего голосов 32: ↑31 и ↓1+30
Комментарии9

Используем nftables в Red Hat Enterprise Linux 8

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

Статья подготовлена в преддверии старта курса «Администратор Linux»





В Red Hat Enterprise Linux 8 приоритетным низкоуровневым решением является nftables. В этой статье мы поговорим о том, как начать использовать nftables. Наиболее актуальной она будет для системных администраторов и DevOps-специалистов. Там, где это имеет смысл, мы поговорим о различиях между nftables и его предшественником — iptables.


Для начала необходимо отметить, что nftables – это userland-утилита, nft и подсистема ядра. Внутри ядра она строится на базе подсистемы netfilter. В этой статье мы будем говорить о взаимодействии пользователя с утилитой nft.


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

Читать дальше →
Всего голосов 20: ↑20 и ↓0+20
Комментарии0