Серверная Админа | Компьютерные сети
26.8K subscribers
1.2K photos
7 videos
7 files
1.29K links
Я действующий сетевой инженер, расскажу вам о сетях в доступной форме.

Реклама - @bashmak_media
Мы на бирже: https://telega.in/c/school_network

РКН: https://vk.cc/cHYqt5
Download Telegram
👋 Привет, сетевой друг!

Сегодня разберу YANG - язык моделирования данных, без которого современная сетевая автоматизация не работает.

🟣Что делает YANG: описывает структуру конфигурации и состояния сетевых устройств. Это как схема базы данных, только для роутеров и свитчей. NETCONF и RESTCONF используют YANG-модели чтобы знать, какие данные можно читать и изменять и в каком формате.

🟣Без YANG каждый вендор придумывает свою структуру данных. С YANG есть стандартные модели - openconfig и ietf, которые одинаково работают на Cisco, Juniper и Huawei. Один скрипт автоматизации для всего зоопарка.

🟣Как выглядит YANG-модель:

module ietf-interfaces {
container interfaces {
list interface {
key "name";
leaf name {
type string;
}
leaf description {
type string;
}
leaf enabled {
type boolean;
default true;
}
}
}
}


🟣Смотрим какие модели поддерживает устройство через NETCONF:

from ncclient import manager

with manager.connect(host="10.0.0.1", port=830,
username="admin", password="pass",
hostkey_verify=False) as m:
caps = m.server_capabilities
for cap in caps:
if "yang" in cap:
print(cap)


🟣Инструменты для работы с моделями: pyang валидирует и конвертирует YANG-файлы, yangsuite от Cisco позволяет визуально исследовать модели и сразу строить NETCONF-запросы.

pyang -f tree ietf-interfaces.yang


Серверная Админа | Zeroday | #Yang
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6👾1
QoS настроен, но маркировка DSCP слетает на границе провайдера. Решение:
Anonymous Quiz
47%
Remarking на входящем интерфейсе PE
22%
Перемаркировать на источнике
17%
Увеличить bandwidth
15%
Настроить WRED
👍6😱2
Model Context Protocol (MCP): как ИИ-агенты «разговаривают» с внешним миром

В статье разбирается механика MCP: как через OpenAI-совместимый API модель получает список tools, как она вместо ответа возвращает tool_calls, почему content = null и finish_reason = "tool_calls" - это сигнал выполнить действие. Показано, что LLM не вызывает инструменты напрямую, а делегирует это хосту, который через JSON-RPC общается с MCP-сервером (stdio или HTTP), получает результат и возвращает его в диалог с ролью tool.

Серверная Админа | Zeroday | #Статья
3👍2
👋 Привет, сетевой друг!

Сегодня про Advanced PortChecker - GUI-утилита для проверки портов, которую реально удобно иметь под рукой.

🟣Что это: десктоп-приложение на Tauri, проверяет открыт ли порт на любом хосте. Можно скидывать сразу несколько портов, результаты экспортируются в TXT, CSV или JSON.

🟣Когда пригождается: не хочется каждый раз вспоминать флаги nc или nmap, нужно быстро проверить пару портов и отдать результат в читаемом виде коллеге или в тикет.

🟣Сборка:

git clone https://github.com/CodeDead/Advanced-PortChecker
cd Advanced-PortChecker
yarn tdev # запустить в dev-режиме
yarn tbuild # собрать под свою платформу


Собирается под Windows, Linux и macOS - один и тот же yarn tbuild, разный результат в зависимости от хоста.

🟣Если GUI не нужен, те же задачи в терминале:

nc -zv host 443
nc -zv host 80 443 8080


Но экспорта тут не будет, так что для отчётов Advanced PortChecker удобнее.

Серверная Админа | Zeroday | #Инструмент
Please open Telegram to view this post
VIEW IN TELEGRAM
👍94👾1
📝 JWT: три строки, которые заменяют сессию

🟣Как работает авторизация через JWT: клиент отправляет логин и пароль, сервер проверяет и выдаёт токен. Дальше клиент при каждом запросе кладёт его в заголовок Authorization, сервер проверяет подпись и отдаёт ресурс. Никакой сессии на сервере, никакой базы с токенами.

Authorization: Bearer eyJhbGciOiJIUzI1NiJ9...


🟣Что внутри токена: три части, разделённые точкой, каждая в Base64-URL.

1️⃣Header - тип токена и алгоритм подписи:

{"alg": "HS256", "typ": "JWT"}


2️⃣Payload - claims, данные о пользователе и метаданные:

{"sub": "1234567", "role": "admin", "exp": 1714000000}


3️⃣Signature - подпись, которая гарантирует целостность:

HMACSHA256(base64(header) + "." + base64(payload), secret)


🟣Почему подпись важна: payload читается без ключа, он просто Base64. Но изменить его и сохранить валидную подпись без секретного ключа нельзя. Именно поэтому JWT не шифрует данные, а только подписывает их.

🟣Что важно не забыть: exp - время истечения токена, без него токен живёт вечно. Алгоритм none в header - классическая атака, сервер обязан его отвергать. Чувствительные данные в payload лучше не класть, любой может его прочитать.

Серверная Админа | Zeroday | #JWT
Please open Telegram to view this post
VIEW IN TELEGRAM
👾8
This media is not supported in your browser
VIEW IN TELEGRAM
👋 Привет, сетевой друг!

Расскажу еще о 3 способах прокачать защиту Mikrotik.

🟣Netwatch с автовосстановлением: встроенный мониторинг хостов, который умеет не просто сигналить, а делать что-то при падении. Например, переключать маршрут или перезапускать туннель:

/tool netwatch
add host=8.8.8.8 interval=10s timeout=2s \
up-script="/ip route set [find comment=backup] disabled=yes" \
down-script="/ip route set [find comment=backup] disabled=no"


Основной канал упал - резервный маршрут включается автоматически. А если поднялся, значит отключается обратно. Без сторонних скриптов и cron.

🟣Fetch для мониторинга внешних ресурсов прямо из роутера: Mikrotik умеет делать HTTP-запросы из скриптов. Удобно для получения динамических списков блокировок или обновления address-list с внешнего сервера:

/tool fetch url="https://example.com/blocklist.txt" dst-path=blocklist.txt

/ip firewall address-list remove [find list=dynamic-block]
:local data [/file get blocklist.txt contents]
:foreach line in=[:toarray $data] do={
/ip firewall address-list add list=dynamic-block address=$line
}


Запускается по расписанию, address-list всегда актуален.

🟣VRRP preemption delay для стабильного переключения: при стандартных настройках мастер восстановился и сразу забрал роль обратно - даже если каналы ещё не подняты. Добавляем задержку:

/interface vrrp
set [find name=vrrp1] preemption-mode=yes preempt-delay=30


30 секунд после восстановления мастер ждёт, пока всё стабилизируется, и только потом забирает роль.

Серверная Админа | Бункер Хакера | #Mikrotik
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18
📝 Винт Серф: человек, который придумал язык интернета

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

🟣В начале 70-х ARPANET уже существовал, но соединял только несколько университетов и работал по одному протоколу. Проблема была в другом: как заставить разные сети с разным железом и разными протоколами общаться между собой. Никто не знал ответа.

🟣Винт Серф вместе с Бобом Каном сели решать именно эту задачу. В 1974 году они опубликовали статью с описанием TCP, протокола который разбивает данные на пакеты, отправляет их любым маршрутом и собирает обратно на другом конце. Позже TCP разделили на два: TCP отвечал за надёжную доставку, IP за адресацию и маршрутизацию.

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

🟣1 января 1983 года ARPANET официально переключился на TCP/IP. Этот день называют днём рождения интернета. Серфу тогда было 40 лет.

🟣Позже он работал в DARPA, MCI, Google. Продвигал IPv6 когда адреса IPv4 заканчивались. Выступал за открытость сети когда корпорации начали строить закрытые экосистемы.

🟣Каждый раз когда браузер открывает страницу, почта доходит до адресата или видеозвонок не рассыпается, это работает протокол, придуманный им полвека назад в университетском кабинете.

Серверная Админа | Бункер Хакера | #network
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥134👍2
Пора начинать использовать интернет как в конце 90-х

В статье интернет разбирают без привычного фасада - не как TikTok-ленту и рекомендации, а как набор протоколов, где всё ещё можно управлять потоком данных самому. Идея простая: современный веб перегружен алгоритмами, трекингом, AI-слопом, поэтому вместо борьбы с этим шумом проще выйти из него, вернуться к RSS вместо лент, IRC/XMPP вместо «умных» мессенджеров, точечному поиску вместо «гуглить как все», локальному архивированию вместо доверия ссылкам.

Серверная Админа | Zeroday | #Статья
👍28🤡21🤔1👾1
👋 Привет, сетевой друг!

Сегодня про python3-nmap - библиотеку, которая превращает nmap в нормальный Python API.

🟣Что это: обёртка над nmap, где каждая команда становится вызовом функции. Не нужно помнить флаги, парсить текстовый вывод или городить subprocess. Запустил метод - получил JSON с результатами.

🟣Зачем это нужно: nmap мощный, но встраивать его в скрипты неудобно. Парсить вывод хрупко - формат может отличаться в зависимости от версии и флагов. python3-nmap убирает эту боль и возвращает структурированные данные сразу.

🟣Что умеет: сканирование топ-портов, определение версий сервисов, детекция ОС, DNS-брут для поддоменов, техники сканирования (SYN, FIN, UDP, idle), обнаружение хостов через ARP. Каждая техника - отдельный метод, не нужно держать в голове синтаксис.

🟣Установка простая:

pip3 install python3-nmap
apt-get install nmap


nmap должен быть установлен на системе - библиотека вызывает его под капотом.

🟣Важный момент: часть сканов требует root. Определение ОС, SYN-сканирование, сканирование подсетей, всё это нужно запускать через sudo. Без прав получишь ошибку ещё до начала сканирования.

Делаем вторую часть уже о том, как использовать этот тул?

Серверная Админа | Zeroday | #Инструмент
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥18👍3💯1
👋 Привет, сетевой друг!

Продолжаем разбирать python3-nmap, и теперь расскажу как это реально юзать в скриптах.

🟣Базовый скан топ-портов:

import nmap3
nmap = nmap3.Nmap()
results = nmap.scan_top_ports("target.com")


Возвращает JSON с портами, протоколами и статусами. Удобно когда нужно быстро проверить хост и сразу обработать результат в коде.

🟣Определение версий сервисов:

results = nmap.nmap_version_detection("target.com")


На выходе структура с портом, сервисом, версией и CPE. Не нужно парсить строки, всё уже разложено по полям.

🟣Поиск поддоменов через DNS-брут:

results = nmap.nmap_dns_brute_script("target.com")


Возвращает список найденных поддоменов с IP. Быстро встраивается в разведку без отдельных инструментов.

🟣Поиск CVE через vulners прямо из Python:

results = nmap.nmap_version_detection(
"target.com",
args="--script vulners --script-args mincvss+5.0"
)


Сначала определяет версии сервисов, потом матчит по CVE-базе. Минимальный CVSS настраивается - удобно фильтровать шум.

🟣Где это реально нужны: автоматизация периодических проверок инфраструктуры, встраивание сканирования в CI/CD или собственные security-тулзы, когда нужен не отчёт nmap, а данные для дальнейшей обработки.

Серверная Админа | Zeroday | #Инструмент
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11🔥3
👋 Привет, сетевой друг!

Сегодня разберём OSPF route redistribution, как правильно перегонять маршруты между разными протоколами маршрутизации.

🟣Зачем это вообще: в реальных сетях редко бывает один протокол. Часть сети на OSPF, часть на BGP, где-то остался старый EIGRP. Redistribution позволяет маршрутам из одного протокола появиться в другом без ручного прописывания.

🟣Базовый редистрибьют из BGP в OSPF:

router ospf 1
redistribute bgp 65000 subnets metric 20 metric-type 2


metric-type 2 - внешний маршрут, метрика не накапливается при прохождении через OSPF-зону. Тип 1 накапливает, что честнее, но реже используется.

🟣Фильтруем что именно редистрибьютим через route-map:

ip prefix-list ALLOW_BGP seq 10 permit 10.0.0.0/8 le 24

route-map BGP_TO_OSPF permit 10
match ip address prefix-list ALLOW_BGP
set metric 50

router ospf 1
redistribute bgp 65000 subnets route-map BGP_TO_OSPF


Без фильтра в OSPF улетит вся BGP-таблица, на больших сетях это катастрофа.

🟣Обратный редистрибьют из connected и static в BGP:

router bgp 65000
redistribute connected route-map CONNECTED_FILTER
redistribute static route-map STATIC_FILTER


🟣Смотрим что реально попало в таблицу:

show ip ospf database external
show ip bgp | include ^r


Маршруты с тегом E2 в OSPF - внешние, пришли через redistribution. Если их слишком много, фильтр настроен неправильно.

Серверная Админа | Zeroday | #OSPF
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥2
This media is not supported in your browser
VIEW IN TELEGRAM
👋 Привет, сетевой друг!

Теперь расскажу про 5 полезных фишек уже для Cisco SD-WAN, которые реально супер полезны.

🟣Application-Aware Routing - трафик идёт туда где канал лучше прямо сейчас: SD-WAN постоянно меряет latency, jitter и потери на каждом туннеле и переключает приложения на лучший путь без вмешательства администратора:

policy
app-route-policy CRITICAL_APPS
vpn-list VPN_10
sequence 10
match
app-list VOICE_APPS
action
sla-class VOICE_SLA
backup-sla-preferred-color biz-internet


Голос идёт по MPLS пока он соответствует SLA, при деградации автоматически уходит на резервный канал.

🟣vAnalytics для предсказания проблем до того как они стали проблемами: платформа собирает телеметрию со всех устройств и показывает тренды деградации канала, аномалии в трафике и прогноз утилизации полосы. Видно что канал начинает деградировать за несколько часов до реального падения.

🟣Zero Touch Provisioning - новое устройство поднимается само: подключил vEdge в офисе, он сам нашёл vBond, получил конфиг и встал в сеть без единого SSH-сеанса:

vBond discovery → vSmart policy → vManage config push


Особенно ценно когда филиалов много и гонять инженера на каждое подключение нереально.

🟣On-Demand Tunnel - туннели между филиалами поднимаются только когда нужны: по умолчанию spoke-spoke трафик идёт через hub и создаёт лишнюю нагрузку. При появлении трафика между двумя филиалами vSmart сигнализирует им поднять прямой туннель, после окончания сессии туннель падает сам:

bfd app-route multiplier 6
bfd app-route poll-interval 600000

policy
control-policy SPOKE_DIRECT
sequence 10
match tloc
color biz-internet
action accept
set
preference 100


Экономит полосу на hub-роутере и снижает latency между филиалами без постоянных туннелей на каждую пару.

🟣Cloud OnRamp для оптимального выхода в SaaS: SD-WAN сам меряет качество до Office 365, Salesforce и других сервисов с каждого филиала и выбирает оптимальную точку выхода в интернет, не обязательно через центральный офис:

policy
cloud-saas-policy OFFICE365
sequence 10
match
app-list MS_OFFICE365
action
cloud-saas-app office365


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

Серверная Админа | Zeroday | #Cisco
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6👍2👾21
Ваш Telegram-бот на базе LLM уязвим. Я написал сканер, чтобы доказать это на популярном Open Source проекте

В статье разбирают, насколько легко ломаются Telegram-боты на базе LLM, если разработчик не продумал системный промпт. Автор написал open source-сканер BarkingDog и прогнал через него популярного AI-бота, после чего тот спокойно начал генерировать кейлоггеры, повторять SQL-инъекции и обходить фильтры через Base64. Самое интересное, что для фикса не пришлось менять модель или код - хватило нескольких жёстких security-директив в system prompt.

Серверная Админа | Zeroday | #Статья
👍51
👋 Привет, сетевой друг!

Помнишь, рассказывал про GetNet — ту самую конференцию для сетевиков и сисадминов среднего бизнеса?

Она уже совсем скоро, 15 мая, очно в Москве и онлайн.

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

🟣Почему формат необычный: это не огромная конференция на тысячи человек, а камерная история примерно на 200 участников. Здесь можно подходить к спикерам, спорить, обсуждать свои кейсы прямо в кулуарах. Нет дистанции «звезда на сцене — зал в темноте», есть разговор равных.

🟣Что в программе сейчас: там и про импортозамещение без иллюзий (методология тестирования до закупки), и анатомия DDoS-атак образца 2026, и разбор NGFW без маркетинговых цифр, и кейсы по кибербезопасности eCommerce, и предотвращение сбоев в ИТ-системах, и HA-сети для небольших компаний на MikroTik, и контейнеры в RouterOS, и Traffic Mirroring в OVN, и ещё много практических тем. Как обычно — без детского сада.

🟣Для кого: для тех, кто каждый день держит сеть руками, а не просто рисует архитектуру в Visio. Сетевые инженеры, сисадмины, специалисты по кибербезу — все, кому важно не «послушать и забыть», а забрать работающие инструменты.

🟣Презентация с деталями — можно открыть и сразу понять, на какие доклады идти.
📍Очно в Москве или онлайн-трансляция.
Подробности и регистрация
1
👋 Привет, сетевой друг!

Сегодня про Nerva - инструмент для фингерпринтинга сервисов, который понимает 170+ протоколов и сразу говорит что именно там крутится.

🟣Что это: CLI на Go от Praetorian, который берёт host:port и определяет протокол, версию и конфигурацию сервиса. Не просто «порт открыт», а «это Redis 7.2 без аутентификации» или «это SSH с слабыми алгоритмами шифрования».

🟣Как работает фингерпринтинг: Nerva отправляет на порт зондирующие пакеты, характерные для конкретного протокола, и анализирует ответ. Каждый протокол имеет свой баннер, хендшейк или структуру ответа - по этим признакам инструмент определяет что именно там живёт. В отличие от nmap, который сначала сканирует порты, Nerva заточен именно под идентификацию сервисов и делает это быстрее за счёт приоритизации наиболее вероятного протокола для каждого порта.

🟣Установка:

go install github.com/praetorian-inc/nerva/cmd/nerva@latest


🟣Базовое использование: скормил хост с портом, получил что там живёт:

nerva -t example.com:22
nerva -t example.com:22 --json


Удобно пайпить из naabu или nmap - отдаёшь список открытых портов, Nerva определяет сервисы:

naabu -host example.com -silent | nerva


🟣Детект мисконфигураций - отдельная фича которую стоит знать:

nerva -t example.com:2375 --misconfigs --json


Находит Docker API без аутентификации, X11 с открытым доступом, SMB без подписи, Telnet и FTP с передачей кредов в открытом виде. На пентесте экономит время на ручные проверки.

🟣Поддержка UDP и SCTP: промышленные протоколы, телеком, VoIP - всё это тоже покрыто:

sudo nerva -t example.com:53 -U
nerva -t telecom-server:3868 -S


Серверная Админа | Zeroday | #Инструмент
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12👾2
📝 HTTP-коды: что сервер пытается тебе сказать

👋 Привет, сетевой друг!

Разбираем по классам HTTP коды. Ведь каждый раз, когда браузер или клиент получает ответ, первое что читается - трёхзначный код. По нему уже понятно, что произошло.

🟣1xx: в реальной жизни почти не видны, но 101 встречается часто при работе с WebSocket. Клиент отправляет обычный HTTP-запрос с заголовком Upgrade, сервер соглашается и соединение переключается в двусторонний режим. Потом HTTP уже не используется.

🟣2xx: всё хорошо, запрос выполнен. 200 это базовый успех с телом ответа. 201 возвращают когда ресурс создан, обычно сюда же кладут сам объект. 204 говорит что выполнили но отдавать нечего, типичный ответ на DELETE. 206 используется при скачивании файлов по частям, именно так работают докачка и стриминг видео.

🟣3xx: ресурс не здесь. 301 означает переехал навсегда, браузер закэширует новый адрес и старый больше дёргать не будет. 304 говорит что у клиента уже актуальная версия в кэше, гнать данные повторно смысла нет. 307 и 308 работают как временный и постоянный редирект, но с гарантией что метод запроса не изменится, это важно для POST.

🟣4xx: ошибка на стороне клиента. Важно не путать 401 и 403: первый про аутентификацию (нет токена или невалидный), второй про авторизацию (токен есть, прав нет). 409 возникает при конфликте состояния, например когда пользователь с таким email уже существует.

🟣5xx: что-то сломалось на сервере. 500 - необработанное исключение. 502 обычно говорит о проблемах за nginx, апстрим вернул что-то невалидное. 503 - сервис недоступен. 504 - апстрим не ответил вовремя.

Серверная Админа | Zeroday | #HTTP
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13
Стикер-пак для сетевиков и сисадминов — бесплатно по заявке

К конференции GetNet разработали стикер-пак для тех, кто живёт в сетях, конфигах, мониторинге.

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

А ещё сейчас идёт прямая трансляция GetNet — конференции для сетевиков и системных администраторов среднего бизнеса.

Заказать стикер-пак и посмотреть трансляцию https://live.getnet.pro/
🔥5😁1
This media is not supported in your browser
VIEW IN TELEGRAM
👋 Привет, сетевой друг!

Расскажу еще о 3 способах прокачать защиту Mikrotik.

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

/caps-man manager
set enabled=yes

/caps-man configuration
add name=main-cfg ssid="Office" security.authentication-types=wpa2-psk security.passphrase="password" channel.frequency=2437 channel.width=20

/caps-man provisioning
add action=create-dynamic-enabled master-configuration=main-cfg


Добавили новую точку в сеть, она сама получила конфиг и поднялась. Менять SSID или пароль теперь в одном месте.

🟣L2TP/IPSec с сертификатами вместо PSK: pre-shared key это удобно, но если утёк, то все туннели скомпрометированы. С сертификатами каждый клиент имеет свой ключ:

/certificate
add name=ca-cert common-name=CA days-valid=3650 key-size=2048
sign ca-cert ca-crl-host=10.0.0.1

add name=server-cert common-name=vpn.company.com days-valid=3650
sign server-cert ca=ca-cert

/ip ipsec proposal
set default auth-algorithms=sha256 enc-algorithms=aes-256-cbc

/ip ipsec policy group
add name=l2tp-clients

/ip ipsec peer
add address=0.0.0.0/0 auth-method=rsa-signature certificate=server-cert \
generate-policy=port-strict policy-group=l2tp-clients


Отозвать доступ одному клиенту - просто отзываем его сертификат. PSK при этом не меняется, остальные туннели продолжают работать.​​​​​​​​​​​​​​​​

🟣Hotspot с кастомной страницей авторизации: стандартная страница Mikrotik выглядит как из 2005 года, но её легко заменить. Кидаем свои HTML-файлы в hotspot-директорию и редактируем login.html:

/ip hotspot
add name=hotspot1 interface=ether3 address-pool=hotspot-pool \
profile=hsprof1

/ip hotspot user
add name=guest password=guest123 profile=default


Страница авторизации берётся из /flash/hotspot/, там же лежат CSS и картинки. Можно сделать брендированный портал с логотипом и условиями использования.

Серверная Админа | Бункер Хакера | #Mikrotik
Please open Telegram to view this post
VIEW IN TELEGRAM
👍61👾1
Please open Telegram to view this post
VIEW IN TELEGRAM
2🔥2🆒1