ru
Feedback
NetworkAdmin.ru

NetworkAdmin.ru

Открыть в Telegram

Авторский блог про сетевое и системное администрирование. Сайт: networkadmin.ru Реклама: @dad_admin Биржа: https://telega.in/c/networkadminru

Больше
4 711
Подписчики
-124 часа
-127 дней
-630 день
Архив постов
На Stepik добавили курс «Linux с нуля» Этот курс закрывает всю обязательную Linux-базу для работы в IT. Подойдёт для: - разра
+4
На Stepik добавили курс «Linux с нуля» Этот курс закрывает всю обязательную Linux-базу для работы в IT. Подойдёт для:
- разработчиков - девопсов и админов - специалистов по данным и ML - специалистов поддержки и сопровождения - тестировщиков и безопасников
Внутри 20+ модулей: от установки Linux и работы с файлами до сетей, прав, дисков, процессов, автоматизации на Bash и многого другого. Всё сразу закрепляется на практике (200+ заданий с автопроверкой) Материал подаётся понятным языком, шаг за шагом, на реальных примерах и с наглядными схемами После прохождения вы получите сертификат, который можно добавить в резюме. В ближайшие 48ч курс доступен со скидкой 30% по промокоду «NETWORK30»: открыть курс на Stepik

🔒 trusted и encrypted keys: защита секретов с помощью TPM В linux есть малоизвестный, но крутой механизм хранения секретов прямо на уровне ядра - trusted и encrypted keys. Это специальные типы ключей из подсистемы linux keyrings, которые позволяют защищать данные без хранения их в открытом виде на диске. ▪️ Encrypted keys. Используются для хранения секретов (паролей, ключей, токенов), которые шифруются мастер-ключом ядра. Сам ключ может храниться на диске, но без загруженной системы он бесполезен. Пример создания:

keyctl add encrypted dbkey "new user:passphrase 32" @s
Ключ автоматически расшифровывается ядром при использовании, но в файловой системе его содержимое не светится. ▪️ Trusted keys. Более высокий уровень защиты. Такие ключи генерируются и хранятся внутри TPM (Trusted Platform Module) и никогда не покидают его в открытом виде. Ядро получает только дескриптор, а все криптооперации выполняет TPM. Пример:

keyctl add trusted tpmkey "new 32" @s
Даже root не сможет извлечь значение ключа, только использовать его. ▪️ Где это применяется защита LUKS (через systemd-cryptenroll); хранение ключей для dm-crypt; secrets для сервисов без plaintext-файлов; привязка данных к конкретному железу. #linux #security 🧑‍💻 NetworkAdmin

Админ отлично знает как устроена эта сеть #юмор 🧑‍💻 NetworkAdmin
Админ отлично знает как устроена эта сеть #юмор 🧑‍💻 NetworkAdmin

🟣 pv - контроль скорости и прогресса pv (Pipe Viewer) - небольшая, но крайне полезная утилита для работы с pipe в Linux/Unix. Она позволяет видеть скорость передачи данных, объем, время работы, а при необходимости ограничивать пропускную способность. Есть почти во всех дистрибутивах:

apt install pv
dnf install pv
▪️ Прогресс-бар там, где его обычно нет. Например, при копировании файла:

pv testfile > testfile_copy
Вы сразу видите скорость, объем и процент выполнения. Аналогично работает при сжатии:

pv testfile | gzip > testfile.gz
▪️ Ограничение скорости через -L. Это спасает SSD, хранилища и гипервизоры от перегрузки:

pv -L 50m testfile > testfile_copy
Тем же способом удобно душить дампы БД:

mysqldump db01 | pv -L 20m > db01.sql
Для каталогов можно передать размер вручную и получить корректный ETA:

tar -czf - /usr | pv -s $(du -sb /usr | grep -o '[0-9]*') > usr.tgz
▪️ Мониторинг файловых дескрипторов процесса:

pv -d <PID>
Показывает, какие файлы реально читаются/пишутся и с какой скоростью. ▪️ Использование через ssh - для лимита канала или замера пропускной способности:

pv /dev/zero | ssh user@host 'cat > /dev/null'
#linux #pv 🧑‍💻 NetworkAdmin

🌐 Network Engineer - DevOps: один из самых быстрых карьерных переходов в IT. Сети, автоматизация, понимание инфраструктуры -
🌐 Network Engineer - DevOps: один из самых быстрых карьерных переходов в IT. Сети, автоматизация, понимание инфраструктуры - всё уже есть. Но резюме нужно переупаковать. "Настройка OSPF и BGP" ничего не скажет рекрутеру, который ищет DevOps-инженера. А ATS-фильтр просто не найдёт нужных ключевых слов. 🎯 26 февраля команда GigaDevOps проводит практикум "Собираем DevOps-резюме с AI". Разберём: • как переупаковать сетевой опыт под DevOps-вакансии • как пройти ATS-фильтры • как использовать AI, чтобы собрать резюме за час 👉 РЕГИСТРАЦИЯ

💚 Как быстро прибить процесс, который слушает порт Иногда нужно срочно освободить порт: сервис завис, не перезапускается, новый экземпляр не стартует, а разбираться почему будем потом. Задача простая: найти процесс по порту и завершить его. ▪️ Классический способ. Смотрим, кто слушает порт, через ss, находим PID и убиваем процесс:

ss -tulnp | grep 8080
tcp LISTEN 0 5 0.0.0.0:8080 0.0.0.0:* users:(("python3",pid=5152,fd=3))

kill 5152
Рабочий вариант, но требует двух шагов. ▪️ Быстрее через lsof. Гораздо удобнее использовать lsof, который отлично работает не только с файлами, но и с сетевыми соединениями:

lsof -i:8080
Пример вывода:

COMMAND  PID  USER  FD  TYPE DEVICE SIZE/OFF NODE NAME
python3 5156 root  3u  IPv4  41738   0t0  TCP *:http-alt (LISTEN)
И сразу завершаем процесс:

kill 5156
А если хочется вообще в одно действие:

lsof -i:8080 -t | xargs kill
▪️ Почему lsof? Со временем начинаешь использовать lsof всё чаще:

lsof -i
lsof -i TCP:25
lsof -i TCP@1.2.3.4
Очень наглядно показывает, кто, куда и по какому протоколу подключен. ▪️ Совсем ленивый вариант - killport. Есть утилита killport, которая делает все то же самое одной командой:

killport 8080
В стандартных репозиториях ее обычно нет, придется скачать готовый бинарник. На Linux без нее легко обойтись, а вот на Windows такая утилита особенно полезна. Можно сначала проверить, что именно будет завершено:

killport 445 --dry-run
Would kill process 'System' listening on port 445
Сначала смотрим, потом убиваем - все как надо. #linux #network 🧑‍💻 NetworkAdmin

Новые рекорды ирбиса PT NGFW 🐆❄️Наш ирбис — прирожденный спринтер-чемпион. Но чтобы сохранить титул быстрой кошки, нужно пос
Новые рекорды ирбиса PT NGFW 🐆❄️Наш ирбис — прирожденный спринтер-чемпион. Но чтобы сохранить титул быстрой кошки, нужно постоянно бить свои же рекорды. Новый вызов поступил от ЦОД: покорить высоты производительности и обработать сотни миллионов микроскопических 📈 В гонку вступил новый чемпион — модель 3050. В зачете «пропускная способность с включенным IPS» он установил новый рекорд 🥇🚀 Мы приглашаем вас за кулисы рекорда — на вебинар 5 марта в 11:00. Это будет не скучная презентация, а технический разбор победы 🔧🎥 Программа: 🏁 Конструкция чемпиона: как спроектирована платформа, чтобы сохранять устойчивость на «марафонских дистанциях» (elephant flows) и не сбивать дыхание на «скоростном спринте» (UDP 64b). 🏁Гонка за эффективностью: 100 Гбит/с — экстремальная нагрузка. Покажем «боевую машину» 3050 и расскажем, зачем нам понадобился 3D-принтер. 🏁Новая дисциплина: remote access VPN. 🏁Обновление экипировки: возможности релизов 1.10 и 1.11 — инструменты для будущих побед. 👉Зарегистрироваться

🤩 tcpdump: фильтры, которые реально нужны tcpdump знают все. Но часто его используют как tcpdump -i any и тонут в потоке пакетов. Ниже будут написаны фильтры, которые действительно спасают. ▪️ Фильтрация по хосту и сети. Трафик к конкретному IP:

tcpdump -i eth0 host 10.10.10.5
Только исходящий:

tcpdump -i eth0 src 10.10.10.5
Подсеть:

tcpdump net 192.168.1.0/24
▪️ Порты и сервисы. HTTP:

tcpdump tcp port 80
Несколько портов:

tcpdump 'tcp port 80 or tcp port 443'
Исключить SSH:

tcpdump 'not port 22'
▪️ Поиск конкретных TCP-флагов. Только SYN (поиск сканирования):

tcpdump 'tcp[tcpflags] & tcp-syn != 0'
RST-пакеты (поиск проблем с соединением):

tcpdump 'tcp[tcpflags] & tcp-rst != 0'
▪️ Поиск по содержимому. Найти строку в HTTP:

tcpdump -A -s 0 'tcp port 80' | grep "POST"
Фильтр по размеру пакета:

tcpdump 'greater 1000'
▪️ Анализ проблем с соединением. Только неустановленные соединения:

tcpdump 'tcp[tcpflags] & (tcp-syn|tcp-ack) == tcp-syn'
Повторные передачи:

tcpdump 'tcp[tcpflags] & tcp-ack != 0'
▪️ Захват в файл для анализа. Лучше всегда писать в pcap:

tcpdump -i eth0 -s 0 -w dump.pcap
Анализировать потом можно в Wireshark, так удобнее разбирать сложные кейсы. #linux #tcpdump 🧑‍💻 NetworkAdmin

IP-форвардинг в L2 и L3 сегментах IP-пакеты «почему-то» не доходят, хотя линк поднят, VLAN настроен и маршруты вроде есть. В
IP-форвардинг в L2 и L3 сегментах IP-пакеты «почему-то» не доходят, хотя линк поднят, VLAN настроен и маршруты вроде есть. В 90% случаев проблема в том, что вы путаете, что именно происходит на L2 и что на L3, и где сеть реально принимает решение «форвардить или нет». 📅 На открытом уроке 24 февраля в 20:00: — Разберём, как передаются IP-пакеты внутри L2-сегмента и как меняется логика в L3-сегменте. — Соберём L2 и L3 сегменты на практике и посмотрим, где именно возникают типовые ошибки в коммутации и маршрутизации. Урок не для тех, кто ждёт «волшебные команды», не хочет разбираться в логике прохождения трафика и считает, что сети — это только «настроить VLAN и забыть». 👉 Записаться: https://otus.pw/H9Hp/ Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru

Ты не ты, когда голоден #юмор 🧑‍💻 NetworkAdmin

😭 Когда на Linux внезапно закончилось место В ext4 есть полезная особенность: при создании файловой системы резервируется 5% пространства. Обычно это место доступно только root и нужно, чтобы система не умерла, когда диск заполнен под завязку. В критических ситуациях этот резерв реально спасает, без него многие сервисы просто перестают работать (привет ZFS и lvm-thin). 1️⃣ При необходимости размер резерва можно уменьшить и быстро освободить место:

tune2fs -m 3 /dev/mapper/root
# или
tune2fs -m 3 /dev/sda3
Вместо 5% оставляем 3%, а разница становится доступной системе. На больших разделах это могут быть десятки гигабайт. Теоретически можно поставить и 0%:

tune2fs -m 0 /dev/sda3
Но так делать не советую. Минимум 1% лучше оставить, а оптимальный компромисс те же 3%. 2️⃣ полезный прием - swap в виде обычного файла, а не отдельного раздела. Потому что файл можно быстро увеличить или удалить, если внезапно закончилось место. Создаем swap-файл на 1 ГБ:

dd if=/dev/zero of=/swap bs=1024 count=1000000
mkswap /swap
chmod 0600 /swap
swapon /swap
Отключить и удалить его так же просто:

swapoff -a
rm /swap
3️⃣ вариант страховки - заранее созданный пустой файл большого размера:

fallocate -l 10G /big_file
В экстренной ситуации его можно удалить и мгновенно получить несколько гигабайт свободного места, чтобы система ожила. #linux #ext4 🧑‍💻 NetworkAdmin

📱 Запись терминала asciinema записывает не видео, а последовательность команд и вывода терминала с таймингами. В результате получается легкий файл, который можно: воспроизводить в браузере; встраивать в документацию; использовать в обучающих материалах; пересматривать прямо в терминале. ▪️ Установка. В большинстве дистрибутивов asciinema есть в репозиториях:

apt install asciinema
▪️ Запись сессии. Начать запись можно одной командой:

asciinema rec
▪️ Завершение - Ctrl+D или exit. По умолчанию создается файл формата .cast, в котором хранится вся запись. ▪️ Воспроизведение. Записанную сессию можно воспроизвести локально:

asciinema play demo.cast
Либо загрузить на сайт asciinema:

asciinema upload demo.cast
После загрузки вы получите ссылку и HTML-код для встраивания записи в сайт или wiki. ▪️ Почему это удобно минимальный размер файлов; идеальная читаемость текста; можно копировать команды прямо из записи; легко автоматизировать; отлично подходит для документации. #linux #terminal 🧑‍💻 NetworkAdmin

Первое cобеседование в DevOps: этапы, сложные моменты и профессиональные секреты IT-рекрутера Этот эфир — для тех, кто только
Первое cобеседование в DevOps: этапы, сложные моменты и профессиональные секреты IT-рекрутера Этот эфир — для тех, кто только заходит в профессию. Только живой разговор на понятном языке и рабочие фишки от рекрутера, который каждый день смотрит резюме и проводит интервью. О чём поговорим: 🕒 6 секунд на резюме — как ATS-системы отсеивают кандидатов ещё до того, как их увидел человек. 🛠 Техническое собеседование — что реально спрашивают у новичков? 📉 Поведенческие вопросы — разбираем психологию интервьюера и учимся говорить о себе без вранья. 💰 Зарплатные ожидания: почему не стоит бояться называть цифру первым. ✍️ Тестовое задание: как не попасть в ловушку, решая реальные бизнес-задачи под видом тестового. 📅 Когда: 26 февраля в 19:00 мск 📍 Формат: Онлайн 👉🏻Регистрация на вебинар

⭐️ Windows Storage Spaces: зеркалирование и RAID без стороннего ПО В Windows есть встроенный механизм программного хранения данных - Storage Spaces. По сути, это аналог Linux LVM + software RAID, который позволяет объединять диски в пул и создавать на их основе отказоустойчивые тома без стороннего ПО и RAID-контроллеров. ▪️ Как это работает. Архитектура состоит из трех уровней: 1. Physical disks - физические диски (HDD/SSD, SATA/NVMe, USB тоже поддерживаются). 2. Storage Pool - пул хранения, в который объединяются диски. 3. Virtual Disk (Space) - логический диск с заданным уровнем отказоустойчивости. На уровне Virtual Disk выбирается тип защиты данных. ▪️ Основные режимы Simple - без отказоустойчивости (аналог RAID0). Максимальная скорость и объем. Two-way mirror - зеркалирование данных на два диска (аналог RAID1). Three-way mirror - зеркалирование на три диска (для критичных данных). Parity - распределенная четность (аналог RAID5/6, зависит от конфигурации). ▪️ Плюсы Storage Spaces встроено в Windows (Server и Pro-версии); не требует перезагрузки при добавлении дисков; поддерживает hot-swap; можно расширять пул на ходу; работает поверх обычных дисков без контроллера. ▪️ Практические моменты - Зеркала отлично подходят для VM, файловых серверов и рабочих станций. - Parity экономит место, но хуже по записи, особенно на мелких I/O. - Для системных дисков чаще используют зеркало, а не parity. - Управлять можно через GUI или PowerShell (Get-StoragePool, New-VirtualDisk). ▪️ Когда это хорошее решение небольшой сервер или NAS на Windows; тестовые и офисные инфраструктуры; когда нет аппаратного RAID, но нужна отказоустойчивость. #storage #raid 🧑‍💻 NetworkAdmin

Cloud-Init в Proxmox: автоматическое создание виртуальных машин Если вы часто вручную создаете виртуальные машины в Proxmox, эту рутину легко автоматизировать с помощью Cloud-Init, который поддерживается в Proxmox из коробки. Cloud-Init позволяет при создании ВМ автоматически задать: ▪️ пользователей, пароли и SSH-ключи ▪️ hostname ▪️ сетевые настройки и DNS ▪️ первичное обновление пакетов Без Cloud-Init все это пришлось бы настраивать вручную в каждой новой виртуалке. ▪️ Как это работает 1️⃣ Подготавливаем базовую ВМ. Устанавливаем ОС и нужные пакеты, обязательно ставим cloud-init:

apt install cloud-init
Можно использовать готовые cloud-образы: Debian - cloud.debian.org Ubuntu - cloud-images.ubuntu.com Astra Linux - dl.astralinux.ru Proxmox отлично поддерживает образы, подготовленные под OpenStack. 2️⃣ Делаем шаблон. Готовую ВМ переводим в шаблон через Convert to template. 3️⃣ Создаем новую ВМ из шаблона. Добавляем к ней диск CloudInit Drive. 4️⃣ Настраиваем Cloud-Init. В параметрах ВМ появляется раздел Cloud-Init, где можно индивидуально указать пользователя, ключи, сеть и DNS. При первом запуске настройки применяются автоматически. Инструкция в Wiki Proxmox: 🔗 Cloud-Init Support 🔗 Cloud-Init FAQ #proxmox #cloudinit 🧑‍💻 NetworkAdmin

💚 Шпаргалка по Nmap Сканеров сети хватает, но на практике почти всегда в итоге используется Nmap. Проблема одна - запомнить все ключи и режимы нереально. ▪️ Базовое сканирование (порты 1–1024). Быстрое сканирование без лишних деталей:

nmap 192.168.1.1
nmap 192.168.1.1 192.168.2.1
nmap 192.168.1.1-254
nmap 192.168.1.0/24
▪️ Сканирование всех портов

nmap 192.168.1.1 -p-
Ключ -p задает диапазон портов: -p 22, -p 21-100, -p http,https. Полный диапазон заметно увеличивает время проверки. ▪️ Хост не отвечает на ping. По умолчанию Nmap игнорирует такие хосты. Чтобы сканировать принудительно:

nmap 192.168.1.1 -Pn
▪️ Основные техники сканирования

nmap 192.168.1.1 -sS   # TCP SYN (по умолчанию)
nmap 192.168.1.1 -sT   # TCP connect
nmap 192.168.1.1 -sU   # UDP
Полный TCP + UDP (очень долго):

nmap 192.168.1.1 -sS -sU -p-
▪️ Поиск живых хостов без портов

nmap 192.168.1.0/24 -sn
Часто использую для быстрого списка хостов в сети. Просто вывести список IP:

nmap 192.168.1.1-15 -sL
▪️ ARP-сканирование в локалке

nmap 192.168.1.0/24 -PR
В локальных сетях работает быстрее пинга. Используется автоматически, даже если указан другой метод. ▪️ Определение сервисов и версий

nmap 192.168.1.1 -sV
Комплексная проверка (ОС, сервисы, скрипты, traceroute):

nmap 192.168.1.1 -A
Полезный прием: 1) сначала найти открытые порты 2) потом запускать -A только по ним

#!/bin/bash
ports=$(nmap -p- --min-rate=500 $1 | grep ^[0-9] | cut -d/ -f1 | tr '\n' ',' | sed 's/,$//')
nmap -p$ports -A $1
Запуск:

./nmap.sh 192.168.1.1
▪️ Скорость и агрессивность
-T0 paranoid -T1 sneaky -T2 polite -T3 normal (по умолчанию) -T4 aggressive -T5 insane
В локалке обычно используют -T4. Чем ниже режим - тем медленнее и менее заметен скан. #nmap #network 🧑‍💻 NetworkAdmin

Ленивый монтаж заказывали? #юмор 🧑‍💻 NetworkAdmin

👁 Мониторинг сети у провайдеров и в датацентрах Когда речь заходит о мониторинге сети на уровне провайдера или датацентра, обычных SNMP-графиков недостаточно. Нужно понимать кто, куда и сколько трафика гоняет. Для этого используют NetFlow и sFlow - технологии экспорта сетевых потоков. Статья больше ознакомительная, чем практичная. Для понимания как все устроено.
Что такое NetFlow NetFlow - технология Cisco, которая собирает статистику по каждому сетевому потоку: IP-адреса, порты, протокол, объём трафика, время жизни сессии.
Особенности: высокая детализация; хорош для биллинга, расследований, анализа атак; поддерживается большинством маршрутизаторов (NetFlow v5/v9, IPFIX); 🙅‍♂️ Минус - нагрузка на оборудование при больших объемах трафика.
Что такое sFlow sFlow работает по другому принципу - семплирование. Устройство отправляет не все потоки, а только выборку пакетов + счётчики интерфейсов.
Особенности: минимальная нагрузка на свитчи; отлично масштабируется; идеально для высоконагруженных сетей и DC; 🙅‍♂️ Минус - нет полной картины каждого соединения, только статистическая модель. На практике у провайдеров часто используются оба подхода. ▪️ Прием и анализ данных Flow-данные отправляются на коллекторы: nfdump / nfsen; pmacct; ElastiFlow (Elastic + NetFlow/sFlow); Zabbix / Grafana (через плагины). Типовые задачи: поиск топ-N потребителей трафика; обнаружение DDoS; анализ межсегментного трафика; контроль договорных лимитов. #networking #netflow 🧑‍💻 NetworkAdmin

Релизы тормозят из-за постоянных багов, несмотря на то, что команда работает на износ? Проблема, скорее всего, не в людях, а
+5
Релизы тормозят из-за постоянных багов, несмотря на то, что команда работает на износ? Проблема, скорее всего, не в людях, а в системе. Мы проведём QA‑аудит и покажем: 📍где теряются деньги; 📍сколько часов разработки уходят впустую; 📍почему баги попадают в продакшен; 📍какие решения дадут эффект. По итогу дадим дорожную карту улучшений с конкретными метриками. Поможем с внедрением. Результат: предсказуемые релизы, понятные KPI и контроль качества без ручного управления. От 60 000 ₽, от 3 недель. Запишись на бесплатную консультацию в нашем телеграм‑боте. #реклама О рекламодателе erid: 2W5zFJbaPqa

🤝 Автологин, автозагрузка и unit override в systemd ▪️ Автологин в консоль (getty) - иногда нужно, чтобы система автоматически логинилась в tty (например, для тестового стенда). Делается это через override для getty:
systemctl edit getty@tty1
Добавляем:
[Service]
ExecStart=
ExecStart=-/sbin/agetty --autologin user --noclear %I $TERM
Перезагружаем:
systemctl restart getty@tty1
▪️ Автозагрузка сервисов. В systemd нет автозапуска в классическом смысле - есть юниты и таргеты. Включить сервис при загрузке:
systemctl enable nginx
Проверить состояние:
systemctl is-enabled nginx
systemctl status nginx
Отключить автозапуск:
systemctl disable nginx
Фактически enable создает симлинк юнита в нужный *.target. ▪️ Unit override: меняем поведение безопасно. Править файлы в /lib/systemd/system - плохая идея. Обновления их перезапишут. Вместо этого используют override-файлы. Для этого создаем override:
systemctl edit nginx
Пример: увеличим лимит открытых файлов:
[Service]
LimitNOFILE=65536
Применяем изменения:
systemctl daemon-reexec
systemctl restart nginx
Посмотреть итоговую конфигурацию:
systemctl cat nginx
Systemd покажет базовый unit + все override. #systemd #linux 🧑‍💻 NetworkAdmin