en
Feedback
NetworkAdmin.ru

NetworkAdmin.ru

Open in Telegram

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

Show more
4 726
Subscribers
No data24 hours
-47 days
+230 days
Posts Archive
Сразу понятно, что релиз удался #юмор 🧑‍💻 NetworkAdmin

Впервые на экранах! Онлайн-марафон «PT NGFW: исповедь инженеров» 😲 Пять дней инженерного хардкора: с 15 по 19 сентября, 11:0
Впервые на экранах! Онлайн-марафон «PT NGFW: исповедь инженеров» 😲 Пять дней инженерного хардкора: с 15 по 19 сентября, 11:00-13:00💪 Кажется, команда готова исповедоваться: за одну неделю расскажет не только, как работает PT NGFW, но и почему он работает именно так. Это будет не просто теория, а живой обмен опытом, разбор реальных кейсов и практические советы, которые можно сразу применить в работе. В спикерах — вся команда PT NGFW. 🏆Головоломки от наших экспертов и шанс выиграть собственный PT NGFW*🏆 Регистрируйтесь на сайте Информация о конкурсе

✈️ Стресс-тестирование дисков и SSD в Linux fio - один из самых популярных инструментов для тестирования производительности дисков. Он гибко настраивается и позволяет моделировать реальные нагрузки: от последовательного чтения до случайной записи мелких блоков. ▪️ Установка

apt install fio# debian/ubuntu

yum install fio# centOS
▪️ Пример теста. Последовательное чтение (1 ГБ):

fio --name=seqread --rw=read --bs=1M --size=1G --numjobs=1 --runtime=60 --group_reporting
--rw=read - режим чтения --bs=1M - размер блока (1 МБ) --size=1G - объем данных --numjobs=1 - количество потоков --runtime=60 - время теста в секундах --group_reporting - агрегированный вывод результатов
▪️ Случайная запись (имитация нагрузки на БД)

fio --name=randwrite --rw=randwrite --bs=4k --size=1G --numjobs=4 --runtime=60 --group_reporting
--rw=randwrite - случайная запись --bs=4k - размер блока (типично для БД) --numjobs=4 - 4 параллельных потока
▪️ Комбинированная нагрузка (чтение/запись 70/30)

fio --name=mixed --rw=randrw --rwmixread=70 --bs=8k --size=2G --numjobs=2 --runtime=60 --group_reporting
--rw=randrw - чтение/запись --rwmixread=70 - 70% чтения, 30% записи
🌟 Важно 📍fio перезаписывает тестируемый участок!!! Поэтому не запускайте его на проде в разделах с важными данными. 📍Для тестирования всего диска без файловой системы используйте /dev/sdX. 📍Запускайте тесты с sudo, чтобы избежать кеширования на уровне ОС. #linux #fio 🧑‍💻 NetworkAdmin

🗂️ Почему 20 МБ вложений в почте - это не всегда 20 МБ На одном из почтовых серверов попросили поднять лимит на размер вложений - якобы 10 МБ им не хватает. Но ведь по умолчанию стоит лимит на размер письма в 20 МБ, что является универсальным значением. Раздавать «безлимит» на вложения плохое дело - это быстро раздувает почтовую базу, особенно когда сотрудники начинают слать друг другу презентации и макеты по 100 раз на день. ❓ В чем подвох
Ограничение в конфигурации - это размер всего письма, а не только вложения. И тут важно помнить, что вложения передаются в письме в кодированном виде, а значит, занимают больше места. В электронной почте чаще всего используются два метода кодирования, описанные в стандарте MIME: Base64 - самый распространенный, увеличивает размер вложения примерно в 1,3 раза; Quoted-printable - встречается реже, но может раздувать файл до 3 раз.
▪️ Как это выглядит. Сохранив письмо и открыв его в текстовом редакторе, вы можете увидеть что-то вроде:

Mime-Version: 1.0
Content-Type: application/pdf; name="file.pdf"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="file.pdf"
Здесь PDF-файл закодирован и представлен в виде ASCII-символов. Если в конфиге указано ограничение на размер письма в 20 МБ, это не значит, что пользователь сможет отправить вложение на 20 МБ. Реально «пролезет» меньше, иногда заметно меньше - из-за особенностей кодирования. #email #MIME 🧑‍💻 NetworkAdmin

🌐 Кастомный DNS-сервер на dnsmasq Если нужен легкий и быстрый способ настроить локальный DNS-сервер для офиса, дома или тестовой среды - обратите внимание на dnsmasq. Это компактная и мощная утилита, которая может: 📍Резолвить домены локально (например, dev.local); 📍Кэшировать DNS-запросы; 📍Делать форвардинг к другим DNS-серверам; 📍Работать как DHCP-сервер (опционально). ▪️ Установка

sudo apt install dnsmasq
▪️ Базовая конфигурация. Файл: /etc/dnsmasq.conf. Пример минимальной настройки:

# Основной DNS, к которому будут проксироваться внешние запросы
server=8.8.8.8

# Зона для кастомных записей
domain-needed
bogus-priv
no-resolv

# Свое доменное имя
domain=local

# Файл с кастомными DNS-записями
addn-hosts=/etc/dnsmasq.hosts
Создаем файл кастомных записей:

sudo nano /etc/dnsmasq.hosts
Пример содержимого:

192.168.1.100  web.local
192.168.1.101  db.local
▪️ Запуск и автозапуск. Перезапускаем:

sudo systemctl restart dnsmasq
Убедитесь, что он включен при старте:

sudo systemctl enable dnsmasq
▪️ Проверка. Убедитесь, что DNS отвечает:

dig @127.0.0.1 web.local +short
Ответ должен быть 192.168.1.100 Чтобы система использовала ваш dnsmasq:

sudo nano /etc/resolv.conf
И указать:

nameserver 127.0.0.1
⚠️ NetworkManager может перезаписывать этот файл. В таком случае - настройте его отдельно через /etc/NetworkManager/conf.d/ #DNS #dnsmasq 🧑‍💻 NetworkAdmin

📱 Консоль через браузер за 1 минуту с помощью ttyd Если вдруг понадобилось зайти в терминал через веб или дать кому-то временный доступ - есть простой и удобный способ: ttyd. ▪️ Установка. Скачиваем и устанавливаем:

wget https://github.com/tsl0922/ttyd/releases/download/1.7.3/ttyd.i686
mv ttyd.i686 /usr/local/bin/ttyd
chmod +x /usr/local/bin/ttyd
▪️ Запуск. Запускаем веб-терминал с Bash:

ttyd bash
В консоли появится порт (по умолчанию - 7681). Переходим в браузере: http://<IP_сервера>:7681 - и вы в консоли. ▪️ Использование. Вы можете запускать любую CLI-программу:

ttyd top        # Мониторинг системы
ttyd mc         # Midnight Commander в браузере
ttyd htop       # Более наглядный top
▪️ Возможности. Запустите ttyd без параметров, чтобы увидеть все опции: 📍выбор порта и интерфейса (-p, -i); 📍basic-аутентификация (--credential); 📍режим только для чтения (--readonly); 📍автоматическое переподключение и прочее. Утилита идеальна для быстрой отладки, демонстрации или временного доступа без SSH-настройки. Например, можно повесить top в read-only режиме для удаленного мониторинга. #linux #ttyd 🧑‍💻 NetworkAdmin

🤓 #юмор 🧑‍💻 NetworkAdmin
🤓 #юмор 🧑‍💻 NetworkAdmin

👤 TOTP-авторизация в Linux: двухфакторка прямо в консоли Хотите добавить второй фактор авторизации в linux, но без заморочек с внешними порталами и веб-интерфейсами? Все можно сделать прямо в терминале с помощью PAM и TOTP. Покажу, как настроить двухфакторную авторизацию через google authenticator или oathtool. 1️⃣ Установка модуля PAM для TOTP.

sudo apt install libpam-google-authenticator # на debian/ubuntu
sudo yum install google-authenticator # на RHEL/centOS
2️⃣ Генерация секретного ключа для пользователя. Под нужным пользователем запускаем:

google-authenticator
Вы получите: 📍Секретный ключ (его нужно добавить в приложение google authenticator или аналог); 📍URL в формате otpauth://...; 📍Резервные коды на случай потери доступа; 3️⃣ Настройка PAM. Открываем PAM-конфиг sshd:

sudo nano /etc/pam.d/sshd
Добавляем в начало:

auth required pam_google_authenticator.so
Также нужно разрешить использование PAM в sshd_config:

sudo nano /etc/ssh/sshd_config
Убедитесь, что указано:

ChallengeResponseAuthentication yes
UsePAM yes
Перезапускаем SSH:

sudo systemctl restart sshd
Теперь при входе по SSH будет запрашиваться TOTP-код. 4️⃣ Использование oathtool (альтернатива телефону). Если вы хотите получать коды в консоли, используйте oathtool. Устанавливаем:

sudo apt install oathtool
Пример генерации кода (вставьте свой секретный ключ в base32):

oathtool --totp -b 'JBSWY3DPEHPK3PXP'
Можно сделать shell-функцию:

totp() {
    oathtool --totp -b "$1"
}
И использовать:

totp JBSWY3DPEHPK3PXP
🌟 Полезно знать 📍Конфигурация хранится в ~/.google_authenticator; 📍Двухфакторка включается для каждого пользователя отдельно; 📍Можно задать ограничения - например, разрешить доступ по SSH только с TOTP, но не требовать при входе локально. #linux #2FA 🧑‍💻 NetworkAdmin

📎 Понимаем атрибуты файлов в Linux: stat, mtime, ctime, atime, birth Часто путаетесь в modify и change? Я - тоже. Поэтому сделал небольшую шпаргалку по выводу stat и значению каждой метки. ▪️ Команда для просмотра полной информации о файле:

stat file.txt
Пример вывода:

File: file.txt
Size: 3          Blocks: 8          IO Block: 4096 regular file
Device: fe00h/65024d Inode: 657571  Links: 1
Access: 2025-08-22 00:31:39.446518364 +0300
Modify: 2025-08-22 00:30:55.460753550 +0300
Change: 2025-08-22 00:30:55.460753550 +0300
Birth:  2025-08-22 00:30:45.778142819 +0300
▪️ Разбор полей: 1️⃣ Birth (crtime) - время создания иноды. Показывается не на всех файловых системах. Например, ext4 и xfs поддерживают, но не гарантированно. Это именно момент физического создания файла. 2️⃣ Access (atime) - время последнего доступа к файлу (чтение, просмотр). ⚠️ Влияет параметр монтирования: noatime - метка не обновляется вовсе; relatime (по умолчанию) - обновляется, если: прошло более 24 часов с последнего доступа; atime < mtime или ctime. Проверьте сами:

cat file.txt
stat file.txt  # atime обновится
cat file.txt
stat file.txt  # atime НЕ обновится, если прошло меньше 24ч
3️⃣ Modify (mtime) - изменение содержимого файла (например, записали новые данные). 4️⃣ Change (ctime) - изменение метаданных файла: прав, владельца, ссылок и т.д. Например:

chmod 644 file.txt
# изменится только ctime, mtime останется прежним
🌟 Частая путаница: На слух change и modify кажутся синонимами, но это совершенно разные вещи в контексте файловой системы. mtime - это про СОДЕРЖИМОЕ, ctime - про ОБОЛОЧКУ (метаданные). ▪️ Когда это важно? Например, при использовании find:

# Найти файлы, измененные по содержимому за последние 2 дня
find . -mtime -2

# Найти файлы с измененными правами/владельцем за последние 2 дня
find . -ctime -2
Полезная привычка - точно понимать, какой таймштамп используется в вашей задаче: доступ, изменение содержимого или метаданных. #linux #files 🧑‍💻 NetworkAdmin

📱 Быстрый запуск PHP-приложений без веб-сервера Многие не знают, что в PHP есть встроенный веб-сервер. Он отлично подходит для тестов, разовых задач или работы с локальными утилитами - без необходимости устанавливать и настраивать Apache или Nginx. 📍 Пример - запуск phpMyAdmin без веб-сервера Предположим, вам нужно быстро подключиться к базе через phpMyAdmin, но поднимать полноценный веб-сервер не хочется. Все просто: 1️⃣ Установите PHP и модуль mysqli:

apt install php php-mysqli
2️⃣ Скачайте и распакуйте phpMyAdmin:

wget https://files.phpmyadmin.net/phpMyAdmin/5.2.1/phpMyAdmin-5.2.1-all-languages.tar.gz
tar xzvf phpMyAdmin-5.2.1-all-languages.tar.gz
3️⃣ Запустите встроенный веб-сервер:

cd phpMyAdmin-5.2.1-all-languages
php -S 172.27.50.130:8080
4️⃣ Перейдите в браузере по адресу: http://172.27.50.130:8080 Если конфигурация еще не создана - перейдите в /setup/, настройте подключение к серверу баз данных и сохраняйте конфиг. Если все уже настроено - сразу входите в интерфейс. Когда работа закончена, просто остановите сервер (Ctrl+C). Все HTTP-запросы будут видны прямо в консоли - удобно для отладки. #PHP #phpMyAdmin 🧑‍💻 NetworkAdmin

Ностальгия в глаз попала #юмор 🧑‍💻 NetworkAdmin

⚠️ Ваши приложения работают, но знаете ли вы, что происходит внутри? Проблемы часто обнаруживаются слишком поздно. Пора научи
⚠️ Ваши приложения работают, но знаете ли вы, что происходит внутри? Проблемы часто обнаруживаются слишком поздно. Пора научиться предотвращать их. ☝️ На открытом уроке «Мониторинг и алертинг приложений с помощью Prometheus и Grafana» 28 августа 20:00 МСК мы покажем, как собирать метрики и трейсы, визуализировать их в Grafana и реагировать на сбои с помощью алертов. Мы разберем шаг за шагом, как настроить Prometheus и создать триггеры, которые помогут вам оперативно решать проблемы, не дождавшись их проявления. 🧠 Вебинар проходит в преддверие старта курса «DevOps практики и инструменты». Успейте на онлайн-курс от OTUS с максимальной скидкой по промокоду DevOps_09. Группа стартует уже 29 сентября. 👉 Зарегистрируйтесь для участия: https://otus.pw/Eaa1/ Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru

👁 Проверка MTU и проблемы с фрагментацией пакетов MTU (Maximum Transmission Unit) - это максимальный размер пакета, который может быть передан без фрагментации. Неправильно настроенное значение MTU может привести к странным сетевым багам: страницы не грузятся до конца, SSH висит, API-запросы обрываются и т.д. ▪️ Как проверить MTU между двумя узлами? Один из самых надежных способов - использовать ping с флагом запрета фрагментации (в Linux - -M do):

ping -c 4 -M do -s 1472 8.8.8.8
Почему 1472? 1472 байта данных + 28 байт заголовков (IP + ICMP) = 1500 байт - стандартное MTU для Ethernet.
Если MTU меньше - вы получите ошибку:

Frag needed and DF set
Уменьшайте значение -s по шагам, пока ping не пройдет - это и будет максимальный размер без фрагментации. ▪️ Альтернатива - tracepath:

tracepath 8.8.8.8
Этот инструмент сам определяет, на каком узле в пути начинается фрагментация. ▪️ Настройка MTU: Постоянная настройка через netplan (Ubuntu):

ethernets:
  eth0:
    dhcp4: yes
    mtu: 1400
Для временного изменения:

ip link set dev eth0 mtu 1400
▪️ Проблемы с фрагментацией чаще всего появляются:
При использовании VPN и туннелей (WireGuard, IPsec, OpenVPN) В облачных сетях с Jumbo Frames При неправильно настроенном MSS (Maximum Segment Size)
Для TCP можно использовать iptables для автоматической коррекции MSS:

iptables -t mangle -A FORWARD -p tcp --tcp-flags SYN,RST SYN \
  -j TCPMSS --clamp-mss-to-pmtu
#ping #MTU 🧑‍💻 NetworkAdmin

🔥🔥Внимание! С 26 по 28 августа вы можете приобрести курсы для системных администраторов и программистов со скидкой 30%! 🐍
🔥🔥Внимание! С 26 по 28 августа вы можете приобрести курсы для системных администраторов и программистов со скидкой 30%! 🐍 Курс "Python": создавай уникальные проекты и приложения, стань экспертом в программировании на языке Python. ⚙️ Курс "DevOps": освой все инструменты и методологии управления жизненным циклом программного обеспечения, стань техническим лидером в своей команде. 🐧 Курс "Linux": освой настройку серверов, работу с командной строкой и автоматизацию процессов, стань экспертом в администрировании операционной системы Linux. А еще, у нас есть курс по Windows Server 🌟 🌐 Курс "Сетевой инженер": овладей всеми тонкостями настройки маршрутизаторов и коммутаторов, обеспечь безопасность сетевых инфраструктур и стань востребованным специалистом. 🎓Диплом о профпереподготовке по окончанию обучения! Готов выйти на новый уровень? Выбирай курс и достигай новых высот в карьере! 👉 Выбрать курс: https://tglink.io/0ecc9f5fa25f?erid=2W5zFHkMbLU #реклама О рекламодателе

⚙️ Управление оперативной памятью без перезагрузки Знали ли вы, что в linux можно отключать и включать оперативную память без перезагрузки? Главное условие - отключаемые блоки памяти должны быть свободны. ▪️ Для начала - полезная команда:

lsmem
Она покажет, как ядро видит вашу память - в виде блоков. Например:

RANGE                              SIZE   STATE   REMOVABLE  BLOCK
0x0000000000000000-0x00000000f7ffffff  3.9G  online  yes       0-30
0x0000000100000000-0x0000000107ffffff  128M  online  yes       32
Блоки - по 128M. Всего - 4G. ▪️ Пример: хотим временно отключить 1G памяти:

chmem -d 1G
▪️ Или выборочно - блоки с 22 по 29:

chmem -d -b 22-29
Если память занята, chmem попробует переместить данные и освободить нужные блоки. Это может занять некоторое время. ▪️ Проверяем результат:

lsmem
Теперь 1G памяти offline. Осталась активной - 3G. ▪️ Возвращаем память обратно:

chmem -e 1G
#linux #RAM 🧑‍💻 NetworkAdmin

10–11 сентября встречаемся на IT Elements — конференции, сделанной айтишниками для айтишников. Площадка в третий раз станет точкой притяжения тех, кто реально делает ИТ в России. В этом году в фокусе — критически важные направления отрасли: инфраструктура, сети, кибербезопасность, данные и AI/ML. Тематические треки: ▪️Инфраструктура: антихрупкость в архитектуре, инфраструктура для ИИ, отечественные решения, защита, стратегии, ключевые платформы (гибридные облака, БД, хранилища), контейнеры и Kubernetes. ▪️Сети: будущее сетей, сервис, ЦОДы для ИИ, VXLAN, балансировка, UC, управление. ▪️Кибербезопасность: киберустойчивость, импортозамещение NGFW, безопасная разработка, управление уязвимостями, мониторинг инцидентов, киберучения. ▪️Данные и ИИ: Data-driven-инфраструктура, миграция на LakeHouse, Big Data, автоматизация разработки, MES-оптимизация, корпоративные GPT-ассистенты и агенты, ESM-системы. Формат: офлайн в Москве или онлайн. Участие бесплатное, по предварительной регистрации.

Та самая задачка на 5 минут #юмор 🧑‍💻 NetworkAdmin
Та самая задачка на 5 минут #юмор 🧑‍💻 NetworkAdmin

Бесплатный урок по Apache Kafka⭐️ Учим работать с реальными исходными данными, а не на теоретических примерах. ✅Расскажем про
Бесплатный урок по Apache Kafka⭐️ Учим работать с реальными исходными данными, а не на теоретических примерах. ✅Расскажем про язык Кафки: топики, партиции, продюсеры-консьюмеры, кластер, ноды.  ✅Рассмотрим: как работают очереди сообщений, сколько должно быть консьюмеров для эффективной вычитки, как повысить надёжность кластера с помощью репликации данных. ✅Покажем, как развернуть кластер Кафки на своём ПК с 3 нодами, schema-registry и авторизацией. Обычно в инструкциях кластер из 1 ноды, зукипера и 1 брокера, но это не наш путь, смотрим сразу на практике. Забрать урок👉🏻в боте

📍 Анализ открытых портов и процессов в Linux Когда сервер начинает вести себя подозрительно - например, появляется неизвестный открытый порт, нестандартный трафик или система тормозит - важно быстро выяснить: что за процесс, что он слушает и какие соединения установлены. Для этого можно использовать связку: ss, lsof и каталог /proc. 1️⃣ ss - быстро и точно о сетевых соединениях. Современная замена netstat, работает быстрее и точнее:

ss -tulnp
Покажет все TCP/UDP-порты, которые слушают процессы: -tuln - TCP/UDP, слушающие, без разрешения имен -p - имя процесса и PID Пример:

LISTEN  0  128  0.0.0.0:80   0.0.0.0:*  users:(("nginx",pid=1234,fd=6))
2️⃣ lsof - подробности о дескрипторах и файлах. lsof позволяет заглянуть глубже в то, что именно открыт у процесса:

lsof -i :80
Выведет все процессы, использующие порт 80.

lsof -nP -iTCP -sTCP:LISTEN
Список всех TCP-сервисов, которые слушают порты. 3️⃣ /proc - внутренняя кухня процесса. Для изучения процесса изнутри можно обратиться к /proc/<PID>/fd - тут видны все открытые дескрипторы:

ls -l /proc/1234/fd
Покажет, какие файлы, сокеты и каналы открыт у процесса с PID 1234. Для конкретного сокета:

ls -l /proc/1234/fd | grep socket
Также можно посмотреть cmdline:

cat /proc/1234/cmdline
4️⃣ Комбинируем все вместе. Узнаем, какой процесс слушает порт:

ss -tulnp | grep :8080
Получаем его PID → проверяем, какие соединения установлены:

lsof -p 1234 -i
Лезем в /proc/1234/ за подробностями: /fd - дескрипторы /status - ресурсы и права /cmdline - команда запуска #linux #network 🧑‍💻 NetworkAdmin

Представьте, что злоумышленники сами дают вам «дружеские» рекомендации. Читайте, проверяйте себя и запоминайте, как делать НЕ
Представьте, что злоумышленники сами дают вам «дружеские» рекомендации. Читайте, проверяйте себя и запоминайте, как делать НЕ НАДО! 🤡 Смело переходить по неизвестным ссылкам «Вы выиграли миллион!» — ну это же точно правда (НЕТ). Это классический фишинг. Любая подозрительная ссылка может вести на поддельный сайт с целью похитить ваши данные. 🤡 Использовать самый простой пароль 123456 Зачем усложнять: быстро вводится, легко запоминается (НЕТ). Слабый пароль взламывается за секунды. Безопасный пароль — это длинная и уникальная комбинация букв, цифр и символов. 🤡 Верить всему, что видите в Интернете Если друг пишет, что ему срочно нужны деньги — значит нужно быстро ему помочь. Голосовые сообщения – стопроцентное доказательство, что это точно он (НЕТ). Дипфейки и взломанные аккаунты – стандартный инструмент злоумышленников. А теперь серьезно: все вышеперечисленное – прямой путь к взлому и потере данных. Будьте на шаг впереди злоумышленников, подписывайтесь на канал Индид – компании, создающей решения в области Identity Security, и прокачивайте свою цифровую безопасность. 📌Присоединяйтесь и читайте полезные материалы, которые помогут защитить ваши данные. #реклама О рекламодателе