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

Iptables и фильтрация трафика от бедных и ленивых инакомыслящих

Время на прочтение5 мин
Количество просмотров21K
Актуальность блокировки посещений запрещенных ресурсов затрагивает любого админа, которому могут официально предъявить невыполнение закона или распоряжения соответствующих органов.



Зачем изобретать велосипед тогда, когда есть специализированные программы и дистрибутивы для наших задач, например: Zeroshell, pfSense, ClearOS.

Еще один вопрос оказался у начальства: А есть ли у используемого продукта сертификат безопасности нашего государства?
Читать дальше →
Всего голосов 15: ↑9 и ↓6+3
Комментарии18

Заворачиваем весь трафик ОС в Tor

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


Все описанное в статье реализовано в виде инструмента Toroxy, доступного на GitHub
В последнее время анонимность в сети является предметом горячих споров. Ни для кого не секрет, что данные о посещениях Интернет-ресурсов с локального устройства могут собираться на разных уровнях с целью построения «модели» пользователя, которая позже против него же и может быть использована (или могла бы). Поэтому не удивительно, что все большее количество активных пользователей Интернета становятся уверены в необходимости механизмов проксирования и анонимизации. В связи с этим появляется все больше новых VPN-клиентов, но, как показывает практика, далеко не всем из них по-настоящему можно доверять: то не все работает из коробки, то анонимизируется только HTTP-трафик, то качество реализации хромает, а то и вовсе разработчики грешат сливанием данных о своих пользователях.

В этой статье мы попробуем собрать из ряда программных компонентов собственный инструмент с UI, который бы позволил полностью анонимизировать трафик локальной системы и не допустить утечек по «прослушиваемым» каналам ни на одном из этапов работы.
Читать дальше →
Всего голосов 20: ↑17 и ↓3+14
Комментарии16

Пользовательские правила iptables для docker на примере zabbix

Время на прочтение3 мин
Количество просмотров30K
Задача: Закрыть все входящие соединение, кроме определенных ip адресов.

Имеется тестовая среда, состоящий из linux и трех windows c статическими ip адресами. На linux установлен docker образами zabbix, redmine. А на двух windows машинах установлены и настроены агенты от zabbix, на третьем нужно организовать возможность просмотра zabbix. Нужно ограничить других пользователей от zabbix сервера, но не ограничивая от redmine.
Читать дальше →
Всего голосов 12: ↑12 и ↓0+12
Комментарии3

Имитируем сетевые проблемы в Linux

Время на прочтение15 мин
Количество просмотров31K
Всем привет, меня зовут Саша, я руковожу тестированием бэкенда. У нас, как и у многих, реализована сервис-ориентированная архитектура. С одной стороны, это упрощает работу, т.к. каждый сервис проще тестировать по отдельности, но с другой — появляется необходимость тестировать взаимодействие сервисов между собой, которое часто происходит по сети.

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


Читать дальше →
Всего голосов 68: ↑67 и ↓1+66
Комментарии17

Consul + iptables = :3

Время на прочтение14 мин
Количество просмотров14K
В 2010 году у компании Wargaming было 50 серверов и простая сетевая модель: бэкенд, фронтенд и файрвол. Количество серверов росло, модель усложнялась: стейджинги, изолированные VLAN с ACL, потом VPN с VRF, VLAN c ACL на L2, VRF с ACL на L3. Закружилась голова? Дальше будет веселее.

Когда серверов стало 16 000 работать без слез с таким количеством разнородных сегментов стало невозможно. Поэтому придумали другое решение. Взяли стек Netfilter, добавили к нему Consul как источник данных, получился быстрый распределенный файрвол. Им заменили ACL на роутерах и использовали как внешний и внутренний файрвол. Для динамического управления инструментом разработали систему BEFW, которую применили везде: от управления доступом пользователей в продуктовую сеть до изоляции сегментов сети друг от друга.



Как это все работает и почему вам стоит присмотреться к этой системе, расскажет Иван Агарков (annmuor) — руководитель группы инфраструктурной безопасности подразделения Maintenance в Минском центре разработки компании. Иван — фанат SELinux, любит Perl, пишет код. Как руководитель группы ИБ, регулярно работает с логами, бэкапами и R&D, чтобы защищать Wargaming от хакеров и обеспечивать работу всех игровых серверов в компании.
Всего голосов 36: ↑36 и ↓0+36
Комментарии5

Установка VestaCP на VPS, использование docker для понижения версии PHP

Время на прочтение7 мин
Количество просмотров7.6K
Доброго времени!

Оставлю тут решение для своего хостинга на VPS за 5 евро, в основном с целью сохранить реализацию решения по своей проблеме.

Несколько лет назад я арендовал выделенный сервер под 20+ сайтов, файлообменник, базу даных на PostgreSQL для 1С, почтовый сервер IMAP. В качестве панели управления использовал ISPmanager с «вечной» лицензией, в качестве ОС был использован изначально CentOS 7 (или даже 6), который я не очень уважаю, больше нравится Debian/Ubuntu. В дальнейшем проекты уходили в соцсети, сайты переставали быть необходимыми, доменные имена освобождались.

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



Что делать, если один сайт на хостинге не работает с PHP выше 5.4
Читать дальше →
Всего голосов 11: ↑7 и ↓4+3
Комментарии20

Балансировка нагрузки и масштабирование долгоживущих соединений в Kubernetes

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

Эта статья, которая поможет разобраться в том, как устроена балансировка нагрузки в Kubernetes, что происходит при масштабировании долгоживущих соединений и почему стоит рассматривать балансировку на стороне клиента, если вы используете HTTP/2, gRPC, RSockets, AMQP или другие долгоживущие протоколы. 
Читать дальше →
Всего голосов 30: ↑30 и ↓0+30
Комментарии4

BPF для самых маленьких, часть нулевая: classic BPF

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

Berkeley Packet Filters (BPF) — это технология ядра Linux, которая не сходит с первых полос англоязычных технических изданий вот уже несколько лет подряд. Конференции забиты докладами про использование и разработку BPF. David Miller, мантейнер сетевой подсистемы Linux, называет свой доклад на Linux Plumbers 2018 «This talk is not about XDP» (XDP – это один из вариантов использования BPF). Brendan Gregg читает доклады под названием Linux BPF Superpowers. Toke Høiland-Jørgensen смеется, что ядро это теперь microkernel. Thomas Graf рекламирует идею о том, что BPF — это javascript для ядра.


На Хабре до сих пор нет систематического описания BPF, и поэтому я в серии статей постараюсь рассказать про историю технологии, описать архитектуру и средства разработки, очертить области применения и практики использования BPF. В этой, нулевой, статье цикла рассказывается история и архитектура классического BPF, а также раскрываются тайны принципов работы tcpdump, seccomp, strace, и многое другое.


Разработка BPF контролируется сетевым сообществом Linux, основные существующие применения BPF связаны с сетями и поэтому, с позволения @eucariot, я назвал серию "BPF для самых маленьких", в честь великой серии "Сети для самых маленьких".

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

Переход с iptables на nftables. Краткий справочник

Время на прочтение18 мин
Количество просмотров107K
image

В Debian теперь нет iptables. Во всяком случае, по умолчанию.

Узнал я об этом, когда на Debian 11 ввёл команду iptables и получил “command not found”. Сильно удивился и стал читать документацию. Оказалось, теперь нужно использовать nftables.

Хорошие новости: одна утилита nft заменяет четыре прежних — iptables, ip6tables, ebtables и arptables.

Плохие новости: документация (man nft) содержит больше 3 тысяч строк.

Чтобы вам не пришлось всё это читать, я написал небольшое руководство по переходу с iptables на nftables. Точнее, краткое практическое пособие по основам nftables. Без углубления в теорию и сложные места. С примерами.
Читать дальше →
Всего голосов 126: ↑126 и ↓0+126
Комментарии46

Боремся с майнером Kinsing на зараженных серверах Linux

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

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

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

Как определить, что ваш сервер используется для майнинга малварью Kinsing?

Определите процессы, которые используют ресурсы процессора с помощью диспечера задач top или htop. В результате вы увидете, например, такие процессы: kdevtmpfsikinsing или dbused, которые максимально используют все ресурсы процессора.

Убить процессы отправкой сигнала KILL вы не сможете, так как со временем они запустятся снова.

Можно попытаться найти задания в запланировщике задач пользователей:

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

Как распутать уроборос роутинга в Linux

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

Описание проблемы


Ситуация: у нас имеется один интерфейс eth0, «смотрящий» в интернет, с IP-адресом 192.168.11.11/24 и шлюзом 192.168.11.1. Нам нужно организовать интерфейс vpn0, который будет через VPN соединяться с неким сервером, и весь исходящий с этой машины трафик должен идти через этот интерфейс vpn0.

Примечание: я оставляю за скобками детали работы с IPv6, поскольку там хватает своих особенностей. Рассматривается только ситуация с IPv4.

Итак, мы берём в руки программу для подключения в VPN-у — она соединяется с неким VPN-сервером по адресу 10.10.10.10 и поднимает нам интерфейс vpn0 например с таким адресом: 192.168.120.10/24, шлюз 192.168.120.1. Казалось бы, всё хорошо, пинги через vpn0 ходят, коннект есть, он стабильный, осталось только прописать нечто вроде

ip route add default dev vpn0 metric 1000

чтобы перенаправить все соединения через новый интерфейс и…

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

Что случилось?
Всего голосов 22: ↑22 и ↓0+22
Комментарии15

Поднимаем Graylog сервер на AlmaLinux 8.5

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

Всем привет! Данное руководство поможет вам установить централизованное логирование событий на основе Graylog версии 4.2.1 (на момент написания статьи). Использовать мы будем операционную систему AlmaLinux 8.5 (альтернатива CentOS 8 от Red Hat). В процессе установки Graylog, мы рассмотрим первоначальную настройку сервера, настройку правил файрвола, а также использование NGINX в качестве обратного прокси серверу Graylog’а.

Вводные данные:

1. Свежеустановленный сервер на базе AlmaLinux release 8.5 (Arctic Sphynx);

2. 8 CPUs, 15 GB RAM и раздел подкачки размером 4 GB;

3. Graylog будет доступен по адресу https://logs.example.com

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

Напишем небольшой скрипт для этого:

Читать далее
Всего голосов 10: ↑6 и ↓4+2
Комментарии7

Почему сообщество разработчиков ядра заменяет iptables на BPF?

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

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

Читать далее
Всего голосов 24: ↑18 и ↓6+12
Комментарии23

Как защититься от dos/ddos, или Как я начал вновь высыпаться по ночам

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

Приветствую тебя, дорогой читатель. Скорее всего, если ты это читаешь, то уже очень устал получать кучу алертов о том, что твоя площадка загибается от регулярных набегов печенегов ботов или других нежелательных посетителей контента. Я надеюсь, что эта статья поможет тебе спать спокойно и оградит тебя от недугов, а также внесет больше ясности в твое понимание теории и практики защиты от dos и ddos. Приятного чтения!

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

Port knocking и не только

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

Прочитав по диагонали статью гражданина @Winseven«ICMP открывашка портов для сервера», я сдержался. Все-таки велосипединг — это весело. Но вчитавшись, я опешил. Зачем запускать отдельное приложение для отслеживания нужных пакетов? Правильно ли, что достаточно один раз попасть пальцем в небо, чтобы порт был открыт? По мне, как-то не по фэншую.

Душа все это не вынесла, и я решился на статью.

А как надо было?
Всего голосов 35: ↑33 и ↓2+31
Комментарии27

Простейший обход И-нет блокировок с обеих сторон

Время на прочтение3 мин
Количество просмотров16K
C некоторых пор к задачам по обходу блокировок по IP страны добавились проблемы работы специализированного лицензионного софта. Последние не всегда решаются с помощью VPN (в переводе виртуальной частной сети [предприятия]). Кроме того, на провайдеров VPN, особенно предоставляющих бесплатный сервис, сложно полагаться в вопросах конфиденциальности. Поэтому разумно рассмотреть ручное решение с помощью удаленной виртуальной машины (VPS), которая имеет доступ в Интернет из страны её физического расположения.

Автор в свое время перебрал несколько вариантов и остановился на создании локальной сети из трех машин. Здесь будет изложен наипростейший вариант решения наглядным способом. Нужно собрать и сконфигурить локальную сеть в простейшей конфигурации, например, такую:
         +-----------+              +-------------+      +-----------------+
И-нет <->| VPS(Linux)|<-ssh tунель->| Mocт(Linux) |<-ЛС->| клиент(Windows) |
         +-----------+              +-------------+      +-----------------+
Читать дальше →
Всего голосов 15: ↑6 и ↓9-3
Комментарии20

Как защититься от сканирования портов и Shodan?

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

Серверы в опасности!

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

Это может быть перебор портов с целью найти открытые от какой-то компании, которая позиционирует себя борцом за безопасность, но которая собирает статистику открытых портов на будущее по всем доступным IP (например Censys).

Может быть Shodan, который тоже собирает базу о том, где какие порты открыты, и отдаёт эту информацию любому заплатившему. И могут быть менее известные компании, которые работают в тени. Представьте, кто-то ходит по всем домам и переписывает модели замков входных дверей, дергает за дверь и выкладывает это в публичный доступ. Дичь! Но тоже самое происходит в интернете тысячи раз в секунду.
Кроме компаний могут быть бот-сети, перебирающие порты для поиска чего-то конкретного или для подготовки к целевым атакам.

Ну и собственно целевые атаки, во время которых ваши серверы в первую очередь тестируются на наличие открытых портов, а затем производятся атаки на найденные сервисы. Это может быть подбор эксплоитов для использования известных дыр или пока неизвестных 0-day, как и обычный DDoS.

Во всех этих сценариях используется предварительный перебор открытых портов. Скорее всего применение nmap или подобных утилит в каких-то скриптах.
Как защитить сервер от сканирования портов без CloudFlare и подобных прослоек?

Как стать невидимым для Shodan, Censys?
Всего голосов 13: ↑8 и ↓5+3
Комментарии24

Безопасность в Linux

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

В новой статье говорим про безопасность в Linux: как настроить и что важно учитывать в процессе. Дополнительно разбираем PAM и модули аутентификации, рассматриваем iptables. 

За основу взят один из уроков нашего практического курса «Администрирование Linux Мега».

Читать далее
Всего голосов 24: ↑14 и ↓10+4
Комментарии19

IQ-Openvpn или Openvpn с распределенной маршрутизацией

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

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

Ну давай посмотрим, что там
Всего голосов 7: ↑6 и ↓1+5
Комментарии16

Сломать контроль ресурсов в контрольных группах Linux. Часть 2

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

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

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