NetworkAdmin.ru
Open in Telegram
Авторский блог про сетевое и системное администрирование. Сайт: networkadmin.ru Реклама: @dad_admin Биржа: https://telega.in/c/networkadminru
Show more4 726
Subscribers
No data24 hours
-47 days
+230 days
Posts Archive
4 725
Впервые на экранах! Онлайн-марафон «PT NGFW: исповедь инженеров» 😲
Пять дней инженерного хардкора: с 15 по 19 сентября, 11:00-13:00💪
Кажется, команда готова исповедоваться: за одну неделю расскажет не только, как работает PT NGFW, но и почему он работает именно так. Это будет не просто теория, а живой обмен опытом, разбор реальных кейсов и практические советы, которые можно сразу применить в работе.
В спикерах — вся команда PT NGFW.
🏆Головоломки от наших экспертов и шанс выиграть собственный PT NGFW*🏆
Регистрируйтесь на сайте
Информация о конкурсе
4 725
✈️ Стресс-тестирование дисков и 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
4 725
🗂️ Почему 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
🧑💻 NetworkAdmin4 725
🌐 Кастомный 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
🧑💻 NetworkAdmin4 725
📱 Консоль через браузер за 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
🧑💻 NetworkAdmin4 725
👤 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
🧑💻 NetworkAdmin4 725
📎 Понимаем атрибуты файлов в 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
🧑💻 NetworkAdmin4 725
📱 Быстрый запуск 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
🧑💻 NetworkAdmin4 725
⚠️ Ваши приложения работают, но знаете ли вы, что происходит внутри? Проблемы часто обнаруживаются слишком поздно. Пора научиться предотвращать их.
☝️ На открытом уроке «Мониторинг и алертинг приложений с помощью Prometheus и Grafana» 28 августа 20:00 МСК мы покажем, как собирать метрики и трейсы, визуализировать их в Grafana и реагировать на сбои с помощью алертов. Мы разберем шаг за шагом, как настроить Prometheus и создать триггеры, которые помогут вам оперативно решать проблемы, не дождавшись их проявления.
🧠 Вебинар проходит в преддверие старта курса «DevOps практики и инструменты». Успейте на онлайн-курс от OTUS с максимальной скидкой по промокоду DevOps_09. Группа стартует уже 29 сентября.
👉 Зарегистрируйтесь для участия: https://otus.pw/Eaa1/
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
4 725
👁 Проверка 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
🧑💻 NetworkAdmin4 725
🔥🔥Внимание! С 26 по 28 августа вы можете приобрести курсы для системных администраторов и программистов со скидкой 30%!
🐍 Курс "Python": создавай уникальные проекты и приложения, стань экспертом в программировании на языке Python.
⚙️ Курс "DevOps": освой все инструменты и методологии управления жизненным циклом программного обеспечения, стань техническим лидером в своей команде.
🐧 Курс "Linux": освой настройку серверов, работу с командной строкой и автоматизацию процессов, стань экспертом в администрировании операционной системы Linux. А еще, у нас есть курс по Windows Server 🌟
🌐 Курс "Сетевой инженер": овладей всеми тонкостями настройки маршрутизаторов и коммутаторов, обеспечь безопасность сетевых инфраструктур и стань востребованным специалистом.
🎓Диплом о профпереподготовке по окончанию обучения!
Готов выйти на новый уровень? Выбирай курс и достигай новых высот в карьере!
👉 Выбрать курс: https://tglink.io/0ecc9f5fa25f?erid=2W5zFHkMbLU
#реклама
О рекламодателе
4 725
⚙️ Управление оперативной памятью без перезагрузки
Знали ли вы, что в 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
🧑💻 NetworkAdmin4 725
10–11 сентября встречаемся на IT Elements — конференции, сделанной айтишниками для айтишников.
Площадка в третий раз станет точкой притяжения тех, кто реально делает ИТ в России. В этом году в фокусе — критически важные направления отрасли: инфраструктура, сети, кибербезопасность, данные и AI/ML.
Тематические треки:
▪️Инфраструктура: антихрупкость в архитектуре, инфраструктура для ИИ, отечественные решения, защита, стратегии, ключевые платформы (гибридные облака, БД, хранилища), контейнеры и Kubernetes.
▪️Сети: будущее сетей, сервис, ЦОДы для ИИ, VXLAN, балансировка, UC, управление.
▪️Кибербезопасность: киберустойчивость, импортозамещение NGFW, безопасная разработка, управление уязвимостями, мониторинг инцидентов, киберучения.
▪️Данные и ИИ: Data-driven-инфраструктура, миграция на LakeHouse, Big Data, автоматизация разработки, MES-оптимизация, корпоративные GPT-ассистенты и агенты, ESM-системы.
Формат: офлайн в Москве или онлайн.
Участие бесплатное, по предварительной регистрации.
4 725
Бесплатный урок по Apache Kafka⭐️
Учим работать с реальными исходными данными, а не на теоретических примерах.
✅Расскажем про язык Кафки: топики, партиции, продюсеры-консьюмеры, кластер, ноды.
✅Рассмотрим: как работают очереди сообщений, сколько должно быть консьюмеров для эффективной вычитки, как повысить надёжность кластера с помощью репликации данных.
✅Покажем, как развернуть кластер Кафки на своём ПК с 3 нодами, schema-registry и авторизацией.
Обычно в инструкциях кластер из 1 ноды, зукипера и 1 брокера, но это не наш путь, смотрим сразу на практике.
Забрать урок👉🏻в боте
4 725
📍 Анализ открытых портов и процессов в 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
🧑💻 NetworkAdmin4 725
Представьте, что злоумышленники сами дают вам «дружеские» рекомендации. Читайте, проверяйте себя и запоминайте, как делать НЕ НАДО!
🤡 Смело переходить по неизвестным ссылкам
«Вы выиграли миллион!» — ну это же точно правда (НЕТ).
Это классический фишинг. Любая подозрительная ссылка может вести на поддельный сайт с целью похитить ваши данные.
🤡 Использовать самый простой пароль 123456
Зачем усложнять: быстро вводится, легко запоминается (НЕТ).
Слабый пароль взламывается за секунды. Безопасный пароль — это длинная и уникальная комбинация букв, цифр и символов.
🤡 Верить всему, что видите в Интернете
Если друг пишет, что ему срочно нужны деньги — значит нужно быстро ему помочь. Голосовые сообщения – стопроцентное доказательство, что это точно он (НЕТ).
Дипфейки и взломанные аккаунты – стандартный инструмент злоумышленников.
А теперь серьезно: все вышеперечисленное – прямой путь к взлому и потере данных. Будьте на шаг впереди злоумышленников, подписывайтесь на канал Индид – компании, создающей решения в области Identity Security, и прокачивайте свою цифровую безопасность.
📌Присоединяйтесь и читайте полезные материалы, которые помогут защитить ваши данные.
#реклама
О рекламодателе
Available now! Telegram Research 2025 — the year's key insights 
