networkadm | Unsorted

Telegram-канал networkadm - Network Admin

12610

Обучающий канал по сетевому и системному администрированию. Сотрудничество: @dad_admin Биржа: https://telega.in/c/networkadm РКН: https://bit.ly/4ioc61C

Subscribe to a channel

Network Admin

ICMP redirects и безопасность: что они делают и почему их стоит отключить

ICMP Redirect — это механизм, при котором маршрутизатор может сообщить хосту, что есть более короткий маршрут до назначения через другой шлюз.

Казалось бы — удобно. Но на практике чаще всего это:


• Лишнее изменение маршрутов без контроля
• Потенциальная уязвимость (перехват трафика, MITM)
• Источник багов и неожиданного поведения сетевых приложений

Пример: Хост отправляет пакеты на шлюз A, а тот видит, что правильнее идти через B. A посылает ICMP Redirect, и хост меняет маршрут — в обход системной таблицы.

Как отключить ICMP Redirect в Linux:

# Отключить приём и отправку redirect'ов:
sysctl -w net.ipv4.conf.all.accept_redirects=0
sysctl -w net.ipv4.conf.all.send_redirects=0
sysctl -w net.ipv4.conf.default.accept_redirects=0
sysctl -w net.ipv4.conf.default.send_redirects=0


Постоянно (в /etc/sysctl.conf или отдельном файле в /etc/sysctl.d/):

net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.accept_redirects = 0
net.ipv4.conf.default.send_redirects = 0


N.A. ℹ️ Help

Читать полностью…

Network Admin

Прозрачный прокси без редиректов: как работает TPROXY и policy routing

Когда хочется завернуть весь трафик через локальный прокси — но без изменения приложений и без NAT’а, обычный iptables REDIRECT не подходит: он меняет адрес назначения, и приложение (например, mitmproxy, squid) теряет оригинальный IP и порт.

Для полноценной прозрачной проксизации с сохранением IP-адресов нужна связка:
• iptables mangle + TPROXY
• ip rule + policy routing
• SO_MARK и SO_BINDTODEVICE — чтобы приложение могло принимать такой трафик

Зачем вообще TPROXY

Классические REDIRECT’ы:

iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 8080


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

А с TPROXY:

iptables -t mangle -A PREROUTING -p tcp --dport 80 \
-j TPROXY --on-port 8080 --tproxy-mark 1


Пакет остаётся направленным на свой IP/порт, и сокет может принять его как будто он “не к нему”.

Пример настройки: проксируем весь HTTP трафик

Допустим, у вас локальный HTTP-прокси на 127.0.0.1:8080.

1️⃣Включаем маршрутизацию

sysctl -w net.ipv4.ip_forward=1


2️⃣Создаём таблицу маршрутов

Добавим таблицу:

echo "100 tproxy" >> /etc/iproute2/rt_tables


И маршрут:

ip route add local 0.0.0.0/0 dev lo table tproxy


3️⃣Добавим policy rule для mark’а

ip rule add fwmark 1 lookup tproxy


4️⃣IPTables: перенаправляем трафик на TPROXY

iptables -t mangle -N DIVERT
iptables -t mangle -A PREROUTING -p tcp -m socket -j DIVERT
iptables -t mangle -A DIVERT -j MARK --set-mark 1
iptables -t mangle -A DIVERT -j ACCEPT

iptables -t mangle -A PREROUTING -p tcp --dport 80 \
-j TPROXY --on-port 8080 --tproxy-mark 1


5️⃣Прокси-сервер

Важно, чтобы ваше приложение:
• работало на SO_REUSEADDR, IP_TRANSPARENT
• было привязано к 0.0.0.0 (или нужному интерфейсу)
• имело CAP_NET_ADMIN и CAP_NET_RAW

Например, запуск mitmproxy:

setcap cap_net_bind_service,cap_net_admin=eip $(which mitmproxy)


или через systemd:

[Service]
AmbientCapabilities=CAP_NET_ADMIN CAP_NET_BIND_SERVICE


Проверка

Запустите любое приложение без настройки прокси — оно будет направляться через mitmproxy, а тот будет видеть оригинальные адреса получателей. Это важно для логов, блокировок и трассировки.

N.A. ℹ️ Help

Читать полностью…

Network Admin

SLAAC + RDNSS — автоматическая настройка IPv6 и DNS без DHCP

IPv6 позволяет полностью обойтись без DHCP-сервера — благодаря механизму SLAAC (Stateless Address Autoconfiguration).

Роутер рассылает объявления (Router Advertisement, RA) с сетевым префиксом, а устройства сами на его основе формируют свои IPv6-адреса. 


Это упрощает настройку и уменьшает количество сервисов в сети.

Но как клиенту узнать, куда отправлять DNS-запросы?

Для этого существует расширение RA — опция RDNSS (Recursive DNS Server Option).

Она позволяет в том же RA указать адреса DNS-серверов, которые клиенты будут использовать для разрешения имён. 


Таким образом, IP-адрес и DNS-серверы передаются одновременно и без дополнительного DHCPv6.

Особенности и преимущества:
Клиенты получают IP и DNS без лишних сервисов и протоколов.
Поддерживается большинством Linux-дистрибутивов, Android, macOS и некоторыми IoT-устройствами.
Windows пока не поддерживает RDNSS, там нужен DHCPv6.
Отличное решение для лёгких сетей, IoT, mesh-сетей и быстро меняющихся окружений.

Это простой и элегантный способ сделать сеть автономной и менее зависимой от сложных конфигураций.

N.A. ℹ️ Help

Читать полностью…

Network Admin

Ethernet OAM: Инструменты управления сетью

Что такое Ethernet OAM?
Ethernet Operations, Administration, and Maintenance (OAM) — это набор механизмов, позволяющих отслеживать состояние сети, управлять соединениями и устранять неисправности. Ethernet OAM используется провайдерами и корпоративными сетями для обеспечения стабильности и высокого качества связи.

Типы OAM в Ethernet-сетях
1️⃣Link OAM (IEEE 802.3ah):
• Отслеживает состояние физического канала связи между двумя устройствами.
• Помогает обнаруживать разрывы, деградацию линка и другие аппаратные проблемы.
2️⃣ Service OAM (IEEE 802.1ag, ITU-T Y.1731):
• Управляет соединениями на уровне сервисов.
• Обеспечивает мониторинг целостности, производительности и диагностику проблем на уровне сети.

Функции Ethernet OAM

Loopback: Удаленный узел отправляет ответ на тестовые пакеты, позволяя проверить доступность соединения.
Continuity Check Messages (CCM): Периодические пакеты, проверяющие целостность связи между двумя точками.
Performance Monitoring: Измеряет параметры качества сервиса (например, задержку, потерю пакетов, вариацию задержки).
Fault Management: Выявляет и сигнализирует об ошибках в сети.
Link Monitoring: Проверяет физическое состояние соединений (например, уровень сигнала или ошибки в кадрах).

Использование Service OAM

Допустим, клиент провайдера жалуется на низкую скорость соединения. С помощью OAM:
• Провайдер запускает тесты CCM, чтобы проверить доступность сети.
• Использует Delay Measurement для проверки задержки между узлами.
• Анализирует отчеты о потерях пакетов для выявления проблемных участков.

Результат: быстрое устранение проблемы с минимальным воздействием на других пользователей.

N.A. ℹ️ Help

Читать полностью…

Network Admin

Группы номеров портов

Разработка стандартов адресации, включая нумерацию портов, осуществляется Администрацией адресного пространства Интернета (IANA).

Порты идентифицируются 16-битными числами, что дает диапазон от 0 до 65535. IANA разделила эти порты на три группы:

1️⃣ Общеизвестные порты (0–1023):
Эти порты зарезервированы для популярных служб и приложений, таких как веб-браузеры и почтовые клиенты. Они позволяют клиентам легко идентифицировать требуемые сервисы.

2️⃣ Зарегистрированные порты (1024–49151):
Эти номера присваиваются IANA для конкретных приложений или процессов. Например, порт 1812 зарегистрирован за Cisco для использования с RADIUS-сервером.

3️⃣ Частные и динамические порты (49152–65535):
Также известные как временные порты, они назначаются клиентской ОС динамически при инициировании подключения к сервису. Эти порты используются для идентификации клиентского приложения во время обмена данными.

Общеизвестные порты и их приложения

• 20 TCP: Протокол передачи файлов (FTP) - Передача данных
• 21 TCP: Протокол передачи файлов (FTP) - Управление передачей
• 22 TCP: Secure Shell (SSH)
• 23 TCP: Telnet
• 25 TCP: Простой протокол передачи почты (SMTP)
• 53 UDP, TCP: Служба доменных имен (DNS)
• 67 UDP: Dynamic Host Configuration Protocol (DHCP) - Сервер
• 68 UDP: DHCP - Клиент
• 69 UDP: Простейший протокол передачи файлов (TFTP)
• 80 TCP: Протокол передачи гипертекста (HTTP)
• 110 TCP: Протокол почтового отделения (POP3)
• 143 TCP: Протокол доступа к сообщениям Интернета (IMAP)
• 161 UDP: Простой протокол управления сетью (SNMP)
• 443 TCP: Защищенный протокол передачи гипертекста (HTTPS)

⚡️Некоторые приложения используют как TCP, так и UDP, например, DNS. Для полного списка номеров портов и их приложений можно обратиться на веб-сайт IANA.

N.A. ℹ️ Help

Читать полностью…

Network Admin

Скрытая маршрутизация через lo: зачем отправлять трафик в себя

Интерфейс lo (loopback) — это не только 127.0.0.1 и localhost. 


При желании через него можно устроить нестандартную маршрутизацию: перенаправлять пакеты в себя, маскировать сервисы или изолировать эксперименты.

Зачем вообще направлять трафик в lo?
• Тестировать поведение роутинга без выхода в сеть
• Маскировать сервисы: они слушают lo, а доступ к ним — через DNAT
• Использовать как «черную дыру» с возможностью логирования
• Делать локальный hairpin NAT для контейнеров и VM
• Собирать трафик для анализа, не выпуская его наружу

Маршрут через lo, но не в 127.0.0.1

Допустим, у нас есть внутренний IP: 10.10.10.10, который нигде не настроен на интерфейсе. Добавим маршрут:

ip route add 10.10.10.10 dev lo


Теперь любой пакет к 10.10.10.10 пойдёт в loopback. Если вы запустите сервер, слушающий этот IP, он будет получать такие пакеты:

ip addr add 10.10.10.10/32 dev lo
nc -l 10.10.10.10 1234


DNAT + lo = локальный сервис, доступный извне

iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 8080 \
-j DNAT --to-destination 10.10.10.10:1234


Приложение всё ещё слушает lo:1234, но доступно на внешнем порту eth0:8080.

Blackhole с логами

Вместо ip route add blackhole — направим всё на lo и логируем:

ip route add 198.51.100.0/24 dev lo
iptables -A INPUT -d 198.51.100.0/24 -j LOG --log-prefix "lo-drop: "
iptables -A INPUT -d 198.51.100.0/24 -j DROP


Обработка трафика через lo + NFQUEUE

Нужен перехват в userspace? Пропустим пакеты через lo, даже если они не для 127.0.0.1:

ip route add 172.16.99.99 dev lo
iptables -A INPUT -d 172.16.99.99 -j NFQUEUE --queue-num 0


Теперь можно обрабатывать их в своём скрипте через nfqueue.

N.A. ℹ️ Help

Читать полностью…

Network Admin

TTL как инструмент контроля: зачем ограничивать зону действия пакета

TTL (Time To Live) и его аналог в IPv6 — Hop Limit — это не просто счётчик “до рутера и обратно”. В правильных руках это способ управлять маршрутом, делать L3-фильтрацию и ограничивать область видимости трафика.

TTL уменьшается на каждом маршрутизаторе. Когда TTL достигает 0, пакет отбрасывается. Это можно использовать:
чтобы не дать пакету уйти за пределы локальной сети
чтобы ограничить жизненный цикл служебного трафика (например, в overlay-сетях или тестах)
чтобы ловить loop’ы маршрутизации

Пример 1: TTL = 1, чтобы оставить пакет внутри одного хоста или сети

ping -t 1 192.168.1.10     # Windows
ping -m 1 192.168.1.10 # Linux/macOS


Пакет не пройдёт через маршрутизатор. Подходит, например, если вы хотите проверить, что сервис слушает именно в этой подсети.

Пример 2: ограничиваем исходящий TTL iptables-ом

Чтобы все пакеты в сеть уходили с TTL=1:

iptables -t mangle -A POSTROUTING -o eth0 -j TTL --ttl-set 1


IPv6:

ip6tables -t mangle -A POSTROUTING -o eth0 -j HL --hl-set 1


Теперь маршрутизаторы будут отбрасывать такие пакеты. Это можно использовать, например, чтобы не позволить сервису “вылезать” наружу.

Пример 3: фильтрация по TTL — только локальный трафик

iptables -A INPUT -i eth0 -m ttl ! --ttl-eq 64 -j DROP


Многие системы отправляют пакеты с TTL=64. Если TTL отличается — скорее всего, пакет прошёл через минимум один маршрутизатор. Такой подход можно использовать в DMZ или на honeypot’ах.

Multicast и TTL

В multicast-сетях TTL — ключ к определению области рассылки:
• TTL = 1 — только локальная сеть
• TTL = 2..15 — ограниченные зоны (например, кампус, филиал)
• TTL > 15 — глобальное распространение

Пример настройки TTL в ffmpeg при стриме:

ffmpeg -re -i video.mp4 -f mpegts "udp://239.0.0.1:1234?ttl=2"


Mesh-сети и TTL

В mesh’ах (например, BATMAN, OLSR) TTL помогает управлять маршрутом и областью, куда доходит маршрутизируемый broadcast. Пакет “умирает”, не дойдя до всей сети. Это снижает шум.

N.A. ℹ️ Help

Читать полностью…

Network Admin

Маршрутизация по fwmark: когда IP уже не хватает

Если ip rule from ... не справляется (например, для приложений с динамическими IP), можно использовать fwmark — метку, проставляемую через iptables или cgroup.

Перенаправим часть трафика в другую таблицу

Допустим, мы хотим весь трафик, идущий на порт 8080, отправлять через VPN-интерфейс.

Добавим таблицу:

echo "200 vpn" >> /etc/iproute2/rt_tables


Пропишем маршрут туда:

ip route add default via 10.10.10.1 dev tun0 table vpn


Создаём ip rule с fwmark:

ip rule add fwmark 0x66 table vpn


Добавляем iptables-маркировку:

iptables -t mangle -A OUTPUT -p tcp --dport 8080 -j MARK --set-mark 0x66


Теперь весь исходящий трафик на 8080 будет идти через таблицу vpn — даже если у него другой source IP.

Это удобно при split routing, обходе фильтрации, перехвате трафика из приложений.

N.A. ℹ️ Help

Читать полностью…

Network Admin

⚙️ Инструменты для сисадминов и специалистов ИБ

Шпаргалки
— работа восьми популярных протоколов, как работает Linux, протоколы TCP/IP и др.

Рецепты чистого кода
— cборник практических приёмов для улучшения качества программного кода.

rakkess
— плагин для быстрой проверки прав в Kubernetes.

Миграция в облако
— 5 самых частых ошибок.

Всё об ИБ за час
— подборка статей, которые помогут вам еще лучше разобраться в теме персональных данных.

Ещё больше полезного в канале CORTEL

➡️ Подписаться

Реклама ООО "Кортэл"
ИНН: 7816246925

Читать полностью…

Network Admin

Внутрисетевой MITM через netfilter queue

Иногда нужно изучить или модифицировать сетевой трафик в реальном времени — например, при исследовании IoT, тестировании безопасности или создании proxy-инструмента.

Linux позволяет это сделать через NFQUEUE.

Пример: перехватим HTTP-запросы в 192.168.1.0/24.

Устанавливаем нужные пакеты:

apt install python3-scapy python3-netfilterqueue


Настраиваем iptables:

iptables -I FORWARD -p tcp --dport 80 -j NFQUEUE --queue-num 0


Простой перехватчик:

from netfilterqueue import NetfilterQueue
from scapy.all import *

def callback(pkt):
payload = pkt.get_payload()
scapy_pkt = IP(payload)
if scapy_pkt.haslayer(Raw):
print(">>>", scapy_pkt[Raw].load)
pkt.accept()

nfqueue = NetfilterQueue()
nfqueue.bind(0, callback)
nfqueue.run()


Перехватываем, логируем, можно модифицировать (но не забудьте про корректные TCP-поля, если редактируете).

Такой MITM отлично подходит для локального тестирования, особенно если совмещать с ARP-spoofing или bridge-интерфейсом.

N.A. ℹ️ Help

Читать полностью…

Network Admin

Когда ip route не хватает: policy-based routing на практике

У сервера два интерфейса — один в интернет, другой во внутреннюю сеть. Нужно, чтобы трафик с одного IP всегда шёл через нужный шлюз.

Классическая таблица маршрутов тут не спасает — нужен PBR.

Проверяем интерфейсы и IP

ip addr


Допустим:
• eth0 — внешний (IP: 203.0.113.10)
• eth1 — внутренний (IP: 192.168.100.10)

Хотим, чтобы всё от 192.168.100.10 шло через eth1 и шлюз 192.168.100.1.

Создаём новую таблицу маршрутов

Редактируем /etc/iproute2/rt_tables, добавляем:

100 internal


Прописываем маршрут в эту таблицу

ip route add default via 192.168.100.1 dev eth1 table internal


Можно добавить конкретные маршруты, если нужен не default.

Добавляем правило по источнику

ip rule add from 192.168.100.10/32 table internal


Это правило говорит: если источник — 192.168.100.10, использовать таблицу internal.

Проверяем

ip rule
ip route show table internal


И можно трассировку проверить:

traceroute -s 192.168.100.10 8.8.8.8


Сохраняем правила

В systemd-системах создаём networkd-unit или используем скрипты /etc/network/if-up.d/.

Пример:

#!/bin/sh
ip route add default via 192.168.100.1 dev eth1 table internal
ip rule add from 192.168.100.10/32 table internal


N.A. ℹ️ Help

Читать полностью…

Network Admin

Саппорт, который всегда на связи и готов вам помочь.
Квалифицированная поддержка VPS-решений 24/7. Ваши данные в надежных руках
Виртуальные серверы на мощных процессорах. С нами ваши личные проекты будут в безопасности.
Надежный и защищенный интернет-канал для Вашего бизнеса.
Подпишитесь на канал, чтобы узнать больше о наших предложениях.

#реклама
О рекламодателе

Читать полностью…

Network Admin

7 популярных мифов о Service mesh, которые мешают вам его освоить 🚫

Service mesh окружен заблуждениями, из-за которых многие его боятся внедрять или считают бесполезным:

➖ «У него огромный оверхед из-за нагрузки на систему»
➖ «Для разработчика это лишнее, пусть DevOps разбираются»
➖ «Зачем он нужен, если есть API Gateway?
И многое другое.

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

📌 Забирайте полезный материал у бота-помощника в один клик.

erid: 2W5zFFxhUpY

Читать полностью…

Network Admin

Unicast flooding в Linux-сетях: почему хост получает весь трафик и как это фиксить

В некоторых сценариях Linux-машина, подключённая к коммутатору, неожиданно начинает получать не только свой трафик, но и чужой — например, трафик других контейнеров или виртуалок.

Это называется Unicast Flooding, и причина часто кроется в работе коммутатора и ARP-таблицы ядра.

Как это происходит

Unicast Flooding — это поведение L2-коммутатора, при котором он не знает, на каком порту находится MAC-адрес назначения. 


В этом случае он флудит unicast-пакет на все порты. Причина: либо MAC-таблица «протухла», либо MAC-адреса не обновляются вовремя.

На Linux это может случиться, если:
контейнеры неактивны и их MAC не «светится» в сети;
используется виртуальный мост (bridge), и ядро не отправляет gratuitous ARP;
используются namespaces без проброса трафика наружу.

Как проверить

ip neigh show
bridge fdb show


Если ARP или FDB-память неактуальна, начнётся флуда.

Как решить

1️⃣Настроить Gratuitous ARP вручную или через cron:

arping -c 1 -A -I eth0 192.168.1.100


Отправляет “я здесь!” и обновляет ARP-таблицы у соседей.

2️⃣Использовать системный таймер/скрипт:

while true; do arping -c 1 -A -I eth0 192.168.1.100; sleep 60; done


3️⃣Включить стабильный MAC в виртуалках или контейнерах:
Для LXC/Docker:

macvlan:
driver: macvlan
options:
parent: eth0


4️⃣ Включить proxy_arp и arp_notify:

sysctl -w net.ipv4.conf.eth0.arp_notify=1
sysctl -w net.ipv4.conf.all.proxy_arp=1


N.A. ℹ️ Help

Читать полностью…

Network Admin

eBPF-мониторинг: зеркалируем трафик с интерфейса без SPAN и veth

Когда tcpdump не хватает, а iptables мешают работе, на помощь приходит eBPF.

Он позволяет перехватывать трафик на лету и передавать его в пространство пользователя — с минимальным оверхедом и без модификации ядра.


eBPF (extended Berkeley Packet Filter) — технология в ядре Linux, позволяющая писать мини-программы, которые встраиваются в сетевой стек, точки трассировки и syscalls.

Это делает eBPF идеальным для мониторинга и анализа сетевых событий, зеркалирования пакетов и фильтрации с аудитом.

Для зеркалирования чаще всего используют:
XDP (eXpress Data Path) — супербыстрый перехват трафика до IP-стека
TC (Traffic Control) BPF — перехват на ingress/egress интерфейса

Перехват трафика через TC BPF

Установка нужных тулов:

sudo apt install clang llvm libbpf-dev iproute2 bpftool


Скомпилируем простую eBPF-программу (пример на C):

// mirror.c
SEC("classifier")
int mirror_prog(struct __sk_buff *skb) {
bpf_clone_redirect(skb, 5 /* ifindex */, 0);
return TC_ACT_OK;
}


Здесь 5 — индекс интерфейса, куда будем зеркалить. Получаем через:

ip link show


Компиляция:

clang -O2 -target bpf -c mirror.c -o mirror.o


Загрузка:

tc qdisc add dev eth0 clsact
tc filter add dev eth0 ingress bpf da obj mirror.o sec classifier


Теперь каждый входящий пакет на eth0 будет дублироваться на нужный интерфейс.

N.A. ℹ️ Help

Читать полностью…

Network Admin

Микросервисы и VIP: как реализовать HA с использованием ipvs

Когда вам нужно распределение трафика, отказоустойчивость и стабильный VIP (Virtual IP) — не обязательно тянуть полноценный балансировщик вроде HAProxy или Keepalived.

Можно использовать встроенный в ядро Linux IPVS (IP Virtual Server) — мощный L4-балансировщик.

Работает в ядре, настраивается через ipvsadm или ipvsctl, и подходит для lightweight-сценариев с микросервисами или edge-нодами.


Представим, у нас есть 3 бэкенда (на localhost:8001, 8002, 8003) и мы хотим выдать один VIP на 10.10.10.100:80, который будет балансировать между ними.

Включаем ipvs-модуль и ip forwarding

modprobe ip_vs_rr
sysctl -w net.ipv4.ip_forward=1


Добавляем виртуальный IP

ip addr add 10.10.10.100/32 dev lo


Важно: lo — чтобы VIP считался локальным, но не анонсировался.

Создаём IPVS-службу

ipvsadm -A -t 10.10.10.100:80 -s rr


• -A — добавить сервис
• -t — TCP
• -s rr — алгоритм Round-Robin (можно lc, dh, wlc и т.д.)

Добавляем real-серверы

ipvsadm -a -t 10.10.10.100:80 -r 127.0.0.1:8001 -m
ipvsadm -a -t 10.10.10.100:80 -r 127.0.0.1:8002 -m
ipvsadm -a -t 10.10.10.100:80 -r 127.0.0.1:8003 -m


-m — NAT-режим (можно использовать -g — Direct Routing)

Проверяем

ipvsadm -L -n


И отправляем запрос:

curl http://10.10.10.100


Вы будете получать ответы по очереди от всех трёх сервисов.

Дополнительно: Health-check и failover

Для проверки живости бэкендов:
• Используйте keepalived с vrrp_instance и встроенными health-check’ами.
• Или скрипты, которые динамически обновляют ipvsadm на основе мониторинга (через cron или systemd timer).
• Альтернатива — ipvsadm-save и ipvsadm-restore для быстрой смены конфигурации.

N.A. ℹ️ Help

Читать полностью…

Network Admin

Настроим RDNSS в radvd для автоматической раздачи DNS по IPv6

Продолжаем тему SLAAC и RDNSS. Теперь — конкретный пример настройки на Linux-роутере с помощью демона radvd.

1. Установка radvd:

sudo apt install radvd


2. Конфигурация /etc/radvd.conf:

interface eth0 {
AdvSendAdvert on;
prefix 2001:db8:1::/64 {
AdvOnLink on;
AdvAutonomous on;
};
RDNSS 2001:4860:4860::8888 {
AdvRDNSSLifetime 600;
};
};


Здесь 2001:db8:1::/64 — ваш IPv6-префикс.
2001:4860:4860::8888 — адрес публичного DNS Google.
AdvRDNSSLifetime — время жизни (в секундах) объявления DNS.

3. Включаем IPv6-форвардинг (если роутер):

sudo sysctl -w net.ipv6.conf.all.forwarding=1


Для постоянного включения добавьте в /etc/sysctl.conf:

net.ipv6.conf.all.forwarding=1


4. Запускаем или перезапускаем radvd:

sudo systemctl restart radvd


5. Проверяем на клиенте (Linux):

resolvectl status


В выводе вы увидите DNS-сервер 2001:4860:4860::8888, полученный через RDNSS.

Теперь у вас настроена сеть, где IP-адреса и DNS-серверы раздаются клиентам без DHCPv6, только с помощью Router Advertisement.

N.A. ℹ️ Help

Читать полностью…

Network Admin

Нужно выкатить новую фичу, но нет уверенности, что всё пойдет как надо?

А еще…

🔻 Слабый мониторинг или его нет совсем.
🔻 Непонятно, почему система тормозит.
🔻 Клиенты жалуются на ошибки и долгое время ответа.

Знакомо? Приглашаем на онлайн-интенсив по Service mesh от Слёрм, на котором вы:

👉 решите реальные бизнес-кейсы;
👉 поймёте принцип работы и в будущем сможете применить знания на любом решении;
👉 научитесь искать причины проблем.

Даты проведения: 27-29 июня.

Спикеры:
– Александр Лукьянченко, руководитель юнита PaaS в Авито
– Виталий Лихачев, SRE в крупном голландском тревелтехе
– Георг Гаал, CTO AEnix

Специальные условия группам от 3-х человек.

👉 Программа и запись на интенсив по ссылке.

Читать полностью…

Network Admin

Как повысить сетевую безопасность облака?

18 июня | 12:00

Приходите на вебинар от Selectel для системных администраторов, сетевых и DevOps- инженеров.

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

Посмотреть программу и зарегистрироваться: https://slc.tl/dty7u

Чтобы не пропустить вебинар и узнавать о других мероприятиях, воркшопах и бесплатных курсах Selectel, подписывайтесь на @selectel_events

Реклама. АО «Селектел», ИНН 7810962785, ERID: 2VtzqvE9sjL

Читать полностью…

Network Admin

😒 ZeroDay — всё, что нужно хакеру

— Пентесты Wi-Fi, камер, сайтов
— OSINT и социальная инженерия
— Техники анонимности и обход слежки
— Сливы и разборы реальных утечек
— Инструменты: Metasploit, Nmap, Kali Linux

/channel/+HGYMHDvAef41YTAy

Читать полностью…

Network Admin

🔎 Ищете надёжное оборудование для мониторинга серверных комнат?

✔️ Обратите внимание на устройства NetPing

Компания с 2005 года разрабатывает и производит устройства для мониторинга и удаленного управления энергопитанием серверного оборудования.

🤝 Устройства NetPing будут полезны компаниям, которые используют IT-оборудование, инженерам и системным администраторам, сервисным компаниям и провайдерам, а также компаниям-интеграторам проектов IT-инфраструктуры.

Почему стоит обратить внимание на устройства NetPing?

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

⭐️ NetPing помогает IT-инфраструктуре работать стабильно и безопасно. 💪💻

#удаленноеуправление #серверныекомнаты #ITоборудование #системныеадминистраторы

Читать полностью…

Network Admin

🚀⭐️ Разберётесь, как работают стандартные потоки в Linux и научитесь управлять вводом, выводом и ошибками в терминале

👉 Приглашаем на вебинар: Управление потоками ввода и вывода в Linux

На вебинаре вы узнаете:
- Что такое стандартные потоки ввода, вывода и ошибок
- Как перенаправлять потоки с помощью >, >>, <, 2>, | и других операторов
- Как использовать пайпы (конвейеры) для обработки данных в командной строке
- Как комбинировать команды, управлять выводом и создавать эффективные цепочки

В результате вебинара вы:
- Научитесь различать и использовать stdin, stdout и stderr
- Сможете перенаправлять потоки и использовать их в сценариях автоматизации
- Попробуете строить пайплайны и обрабатывать данные без создания временных файлов
- Поймёте, как вывод ошибок и данных влияет на поведение скриптов и программ.

🎁 Урок пройдет в преддверие старта курса «Administrator Linux. Basic». Все участники вебинара получат скидку на обучение.

👉 Для участия зарегистрируйтесь: https://otus.pw/SCNt/

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576

Читать полностью…

Network Admin

Dummy-интерфейсы: зачем они нужны и как использовать

Интерфейс dummy — это виртуальный интерфейс, не связанный с железом.

Он не передаёт пакеты, но может иметь IP, участвовать в маршрутизации и BGP-анонсе.

Создание dummy-интерфейса:

ip link add dummy0 type dummy
ip link set dummy0 up
ip addr add 192.0.2.1/32 dev dummy0


Теперь на dummy0 «висит» IP, который можно использовать как исходный адрес, next-hop в маршрутах или для рекламы в BGP.

Зачем это:

— Привязка сервисов к стабильному IP, не зависящему от физических интерфейсов
— Роутинг через VRF или namespaces, даже если нет «реального» интерфейса
— BGP-анонсы через loopback-like интерфейс
— Прокси или HA-инфраструктура, где IP «мигрирует» между хостами (например, через VRRP)

Пример использования с маршрутом:

ip route add 198.51.100.0/24 via 192.0.2.1 dev dummy0


Это работает, даже если 192.0.2.1 — не пингуется, потому что dummy всегда up. Но благодаря этому можно сделать локальную маршрутизацию или симулировать upstream.

N.A. ℹ️ Help

Читать полностью…

Network Admin

Тестируем нестабильный интернет через tc netem: эмулируем дропы и лаги

Ваше приложение должно работать при плохом интернете? Симулируем ситуацию прямо на staging-машине.


Пример: эмуляция 10% потерь пакетов и задержки 300ms ± 100ms.

Настраиваем на интерфейсе:

tc qdisc add dev eth0 root netem delay 300ms 100ms distribution normal loss 10%


Проверяем:

tc qdisc show dev eth0


Убираем:

tc qdisc del dev eth0 root


Можно задать параметры отдельно:
• loss — потери пакетов
• delay — задержка
• corrupt — искажение пакетов
• duplicate — дублирование

N.A. ℹ️ Help

Читать полностью…

Network Admin

ip rule + UID: ограничиваем выход в интернет только для одного пользователя

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

Это можно сделать через policy-based routing и UID-based правила.

К примеру: пользователь vpnuser должен иметь доступ наружу, все остальные — нет.

Добавляем новую таблицу маршрутов:

echo "200 toinet" >> /etc/iproute2/rt_tables
ip route add default via 192.168.1.1 dev eth0 table toinet


Получаем UID:

id -u vpnuser
# допустим, UID = 1001


Добавляем правило маршрутизации:

ip rule add uidrange 1001-1001 lookup toinet


Проверяем:

ip rule
ip route show table toinet


Теперь любой процесс от имени vpnuser сможет выйти в интернет, а остальным вернёт unreachable.

Чтобы полностью изолировать других, можно ещё в main таблице оставить blackhole default.


Используется, например, при запуске proxychains или tor от ограниченного пользователя, чтобы всё остальное трафик даже не пытался уйти наружу.

N.A. ℹ️ Help

Читать полностью…

Network Admin

Когда brute-force не даёт покоя: быстрая настройка fail2ban для SSH

SSH-сервер завален попытками входа от ботов? Пароли отключены, но логи полны мусора? Настроим fail2ban — он будет банить нарушителей автоматически.

1️⃣Устанавливаем fail2ban

sudo apt install fail2ban  # для Debian/Ubuntu  
sudo dnf install fail2ban # для RHEL/AlmaLinux/Fedora


2️⃣Создаём конфиг

Не редактируйте /etc/fail2ban/jail.conf, скопируйте его:

sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local


Или создайте /etc/fail2ban/jail.d/sshd.local — этого достаточно.

Пример конфига:

[sshd]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log # для Debian/Ubuntu
# logpath = /var/log/secure # для RHEL/AlmaLinux
maxretry = 3
findtime = 600
bantime = 3600


3️⃣Запускаем и включаем автозагрузку

sudo systemctl enable --now fail2ban


4️⃣Проверяем статус

sudo fail2ban-client status sshd


Видно, сколько IP заблокировано.

5️⃣Проверяем, что бан работает

Сымитируйте неверный вход — через 3 ошибки IP попадёт в бан.

6️⃣Разблокировка IP вручную

sudo fail2ban-client unban <IP>


N.A. ℹ️ Help

Читать полностью…

Network Admin

BGP в деталях: расширенные сообщества и автоматическая фильтрация маршрутов

Extended Communities в BGP

Расширенные сообщества (extended communities) — это более гибкий тип BGP communities, который состоит из 8 байт вместо стандартных 4.

Они позволяют передавать больше информации и поддерживают разные типы меток: например, route target, route origin, VPN-информацию и др.


Почему это важно?
Стандартные communities ограничены, а extended communities используют, например, в MPLS VPN для маркировки маршрутов по tenant (арендатору), разделения трафика и управления более сложными политиками.

Пример использования:

В MPLS VPN маршруты маркируются extended community типа route target:
RT:65000:100
Это помогает маршрутизаторам понять, к какому VPN принадлежит маршрут.

Настройка на Cisco:

ip community-list expanded VPN_RT permit 65000:100
route-map SET_RT permit 10
set extcommunity rt 65000:100
router bgp 65000
neighbor 10.0.0.1 route-map SET_RT out


ORF — Outgoing Route Filter

ORF — это механизм, который позволяет автоматически фильтровать маршруты на стороне соседа, уменьшая объем передаваемых маршрутов.

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


Например: Роутер А хочет получать только определённые префиксы от роутера Б. Вместо фильтрации на стороне А, он отправляет ORF-правила Б, и тот не рассылает лишние маршруты.

N.A. ℹ️ Help

Читать полностью…

Network Admin

XDP (eXpress Data Path) в Linux: ускорение сети и защита от атак

XDP — это механизм, который позволяет перехватывать и обрабатывать сетевые пакеты на самом низком уровне — прямо в драйвере сетевой карты, до того, как они попадут в сетевой стек Linux.

Это открывает большие возможности для ускорения обработки трафика и защиты от атак.


Как работает XDP?
XDP загружается в сетевой драйвер и обрабатывает пакеты сразу после их получения от сетевой карты.
Программы XDP пишутся на C или eBPF и загружаются в ядро.
Можно быстро принимать решения: пропустить, отбросить, изменить или перенаправить пакет.
Это снижает нагрузку на остальной сетевой стек и ускоряет обработку.

Как начать использовать XDP?
1️⃣Установите инструменты для разработки
• clang, llvm, iproute2 с поддержкой XDP
• bpfcc-tools или libbpf для удобной работы с eBPF

2️⃣Напишите простую программу на C с eBPF-API: Например, программа, которая отбрасывает все пакеты (xdp_drop.c):

SEC("xdp_drop")
int xdp_drop_func(struct xdp_md *ctx) {
return XDP_DROP;
}


3️⃣Соберите программу в объектный файл:

clang -O2 -target bpf -c xdp_drop.c -o xdp_drop.o


4️⃣Загрузите программу на интерфейс:

ip link set dev eth0 xdp obj xdp_drop.o sec xdp_drop


5️⃣Проверьте состояние:

ip -details link show dev eth0


N.A. ℹ️ Help

Читать полностью…

Network Admin

Хотите освоить C++ с нуля и стать востребованным разработчиком?

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

⚡️ Этот курс идеально подходит для начинающих и тех, кто хочет углубить свои знания. С нуля до уровня Middle Developer — вы освоите создание собственных типов данных, работу с многопоточностью и современными стандартами C++. Изучите лучшие практики проектирования, работу с памятью и сетью, а также освоите принцип работы с базами данных и CI/CD.

🔥 На обучении вы разработаете 2 реальных проекта для портфолио, а диплом OTUS поможет вам уверенно проходить собеседования в крупнейших компаниях. Станьте частью индустрии с актуальными знаниями!

👉 Оставьте заявку: https://otus.pw/NLjQI/

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru

Читать полностью…

Network Admin

Silent Drop: как blackhole-маршруты помогают обезвредить вредный трафик

В сетях часто приходится блокировать нежелательный трафик — ботов, сканеров, подозрительные IP.

Самый распространённый способ — firewall (iptables, nftables). 


Но иногда этот метод слишком «шумный»: при блокировке отправляется ответ ICMP или TCP RST, что позволяет злоумышленнику понять, что его трафик заблокирован.

Чтобы избежать этого, используют blackhole-маршруты — специальные маршруты в ядре Linux, которые просто «поглощают» пакеты.

Пакеты с указанного IP или подсети просто исчезают — ни ответа, ни ошибок. Это как будто таких адресов и нет.

Как это работает?

В Linux можно добавить маршрут с типом blackhole, prohibit или unreachable. Они отличаются по типу возвращаемых ICMP-сообщений или их отсутствию:
blackhole — пакеты просто отбрасываются без ответа
prohibit — отправляет ICMP “Communication administratively prohibited”
unreachable — отправляет ICMP “Network unreachable” или “Host unreachable”

Выбирая между ними, можно регулировать степень «тихого» блокирования.

Настройка blackhole-маршрута

Чтобы «поглотить» трафик к подсети 203.0.113.0/24, выполним:

sudo ip route add blackhole 203.0.113.0/24


Теперь любой пакет с хоста, который пытается достучаться до этой подсети, просто исчезнет — ни ответа, ни ошибок.

Если нужно, чтобы был ответ с ICMP запрещено, используйте:

sudo ip route add prohibit 203.0.113.0/24


Проверить настройки можно командой:

ip route show table main | grep 203.0.113


Для удаления маршрута:

sudo ip route del blackhole 203.0.113.0/24


N.A. ℹ️ Help

Читать полностью…
Subscribe to a channel