uk
Feedback
NetworkAdmin.ru

NetworkAdmin.ru

Відкрити в Telegram

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

Показати більше
4 726
Підписники
Немає даних24 години
-47 днів
+230 день
Архів дописів
🏠 Создание минималистичного образа Windows 11 Если вы хотите получить максимально легкий и чистый образ windows 11 - без мусора, предустановленных приложений и ненужных сервисов, то обратите внимание на nano11.
Это PowerShell-скрипт, который автоматизирует процесс сборки сильно урезанной версии Windows 11. Он использует встроенные средства DISM и oscdimg.exe, не требуя никаких внешних утилит. В результате получается компактный ISO-образ, идеально подходящий для тестирования, отладки или развертывания на виртуальных машинах.
▪️ Возможности nano11: Создает минимальный ISO-образ Windows 11 Удаляет все предустановленные приложения и лишние компоненты Не поддерживает обновления и добавление языков (только базовая сборка) Подходит для VM и изолированных окружений Полностью открытый исходный код, можно модифицировать под свои задачи Репозиторий проекта 😺 #windows #powershell 🧑‍💻 NetworkAdmin

😢 Скрыть содержимое bash-скрипта с помощью shc Если нужно показать работу скрипта, но не отдавать исходники - можно скомпилировать его в бинарник через shc. Инструмент преобразует .sh в C-код и собирает исполняемый файл, на выходе пользователь получит работающий бинарник, но не читаемый скрипт. ▪️ Установка (Debian/Ubuntu):
apt install shc gcc
▪️ Пример. Есть script.sh:
#!/bin/bash
v=$1
echo "Simple BASH script. Entered VARIABLE: $v"
Компилируем:
shc -f -r script.sh
Появятся script.sh.x (бинарник) и script.sh.x.c (сгенерированный C). Запуск:
./script.sh.x 123
# Simple BASH script. Entered VARIABLE: 123
▪️ Полезные опции: -e DD/MM/YYYY - срок годности; после даты бинарник не запустится. -m "msg" - сообщение при истечении срока. Пример с истечением:
shc -e 31/12/2025 -m "Срок истек" -f -r script.sh
./script.sh.x   # Выдаст сообщение о просрочке
📌 Важное замечание по безопасности shc - это обфускация, а не криптография. В конечном бинарнике содержимое может быть восстановлено (есть утилиты вроде UnSHc). Также секреты, записанные в скрипт, при выполнении будут лежать в памяти и их можно попытаться снять дампом. Это защита от случайного копирования, но не от целенаправленного анализа.
#script #security 🧑‍💻 NetworkAdmin

PT NGFW за стеклом. Этап 9. Секреты модулей безопасности Всем привет! На связи наше технологическое реалити-шоу, где мы показ
PT NGFW за стеклом. Этап 9. Секреты модулей безопасности Всем привет! На связи наше технологическое реалити-шоу, где мы показываем, как на самом деле устроена магия внутри PT NGFW. 🔥 В новом эпизоде мы заглянем в самое СЕРДЦЕ системы — ее модули безопасности. 🗓 19 НОЯБРЯ 2025 ⏰ С 14:00 до 15:00 мск Наш резидент, Евгений Кутумин, эксперт группы разработки, расскажет, как рождается та самая интеллектуальная защита, которая предвосхищает угрозы. 🎯 В фокусе этого выпуска: ▪️ Предотвращение вторжений: десятки тысяч сигнатур и проверка расшифрованного трафика 💪 ▪️ Контроль приложений: глубокое распознавание более 4000 приложений, включая уникальные для России 🕵️ ▪️ Свой антивирус — свои правила. Быстрый и вшитый в ядро для мгновенной реакции ⚡️ ▪️ Песочница: лаборатория для анализа угроз. Подозрительный файл? Мы его изолируем и посмотрим, не подвергая вашу сеть риску, что он сделает 🧪 ▪️ Анализ угроз: прямая интеграция с PT Threat Intelligence Feeds 🚀 Регистрируйтесь, чтобы узнать, как создается производительный российский NGFW!

Никто не обещал, что в жизни все будет легко #юмор 🧑‍💻 NetworkAdmin
Никто не обещал, что в жизни все будет легко #юмор 🧑‍💻 NetworkAdmin

🎥 Вебинар по DevOps: Gitlab CI как конструктор workflow 🧠 На вебинаре вы узнаете: - Быстрый обзор Gitlab CI в сравнении с д
🎥 Вебинар по DevOps: Gitlab CI как конструктор workflow 🧠 На вебинаре вы узнаете: - Быстрый обзор Gitlab CI в сравнении с другими решениями. - Как использовать особенности Gitlab для улучшения работы команды. - Антипаттерны CI: обилие ручек, сабмодули и другие. - Идеальный пайплайн деплоя инфраструктуры по мнению автора. 🚀 В результате вебинара вы: - Вы получите понимание ключевых преимуществ Gitlab CI по сравнению с другими решениями. - Научитесь использовать возможности Gitlab для повышения производительности команды. - Избежите распространенных ошибок и антипаттернов в CI/CD. - Сможете создать идеальный пайплайн деплоя инфраструктуры, соответствующий лучшим практикам. 🎁 Все участники вебинара получат специальные условия на полное обучение курса "DevOps практики и инструменты" 👉 Для участия зарегистрируйтесь: https://otus.pw/jmdR/ Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576

⁉️ IPv6 в локальной сети: нужен ли он вообще IPv6 давно перестал быть экзотикой в мире, но в локальной инфраструктуре (особенно в корпоративных и домашних сетях) его почти никто не использует. Причина простая - в локалках адреса не заканчиваются, да и пользы от IPv6 нет, если нет связи с интернетом, где он действительно нужен. А вот проблем добавить он может: требует отдельной настройки безопасности, нужно следить за совместимостью сервисов, а если забыть про firewall для IPv6, то появится открытая дыра, о которой даже не узнаете. Если протокол вам не нужен, то его стоит отключить. ▪️ Как отключить IPv6 в linux Сделать это можно тремя способами, в зависимости от ситуации. 1️⃣ Через sysctl. Добавьте строки в /etc/sysctl.conf:

net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
Примените изменения:

sysctl -p
2️⃣ Через параметры GRUB (глобально). Если система только настраивается - проще всего отключить IPv6 через загрузчик. Откройте /etc/default/grub и добавьте в строку:

GRUB_CMDLINE_LINUX="... ipv6.disable=1"
(оставшиеся параметры не удаляйте, просто добавьте через пробел) Обновите конфигурацию загрузчика:

update-grub             # Debian/Ubuntu
dpkg-reconfigure grub-pc
grub-mkconfig -o /boot/grub/grub.cfg
grub2-mkconfig -o /boot/grub2/grub.cfg   # RHEL/CentOS
После этого - перезагрузка и проверка:

ip a
ss -tulnp
Если IPv6 отключен - адресов вида ::1 или fe80:: вы больше не увидите. 3️⃣ Отключение для конкретного интерфейса. Иногда нужно отключить IPv6 не глобально, а только на одном интерфейсе. Добавьте в /etc/sysctl.conf:

net.ipv6.conf.eth0.disable_ipv6 = 1
или примените временно:

sysctl -w net.ipv6.conf.eth0.disable_ipv6=1
▪️ Примечание для Windows На windows лучше IPv6 не отключать. По словам microsoft, это может вызвать проблемы с внутренними сервисами и сетевыми компонентами системы. #IPv6 #network 🧑‍💻 NetworkAdmin

🕘 Оптимизация загрузки системы Один из частых вопросов: почему система грузится так долго? Для раскрытия этой тайны можно использовать встроенный инструмент systemd-analyze, который покажет подробную статистику загрузки и поможет найти узкие места. ▪️ Базовый анализ времени загрузки. Простейшая команда:

systemd-analyze
Пример вывода:

Startup finished in 2.351s (kernel) + 8.512s (userspace) = 10.863s
kernel - время работы ядра до запуска systemd userspace - запуск сервисов и инициализация systemd итоговое время загрузки ▪️ Кто тормоз? Чтобы узнать, какие юниты грузились дольше всего:

systemd-analyze blame
Вывод отсортирован по времени запуска. На первых строках будут виновники торжества. ▪️ Граф зависимостей. Для наглядности можно построить диаграмму загрузки:

systemd-analyze critical-chain
Она покажет цепочку сервисов, которые напрямую влияют на общее время старта. Для детального графа в SVG:

systemd-analyze plot > boot.svg
Файл можно открыть в браузере - это визуализация всех юнитов и их зависимостей. ▪️ Оптимизация 1️⃣ Отключить ненужные сервисы

systemctl disable bluetooth.service
systemctl disable cups.service
2️⃣ Использовать systemd-analyze blame для точечной оптимизации Например, если дольше всего грузится NetworkManager-wait-online.service, можно сократить или отключить ожидание сети. 3️⃣ Параллелизация загрузки. systemd умеет запускать независимые сервисы параллельно, поэтому полезно проверять зависимости в systemd-analyze critical-chain. 4️⃣ Использовать mask для блокировки ненужных юнитов

systemctl mask service_name
#systemd #boot 🧑‍💻 NetworkAdmin

🖥 Замер реальной пропускной способности сети в linux и windows iperf3 - показывает реальную пропускную способность между двумя хостами, минуя влияние дисков, приложений и прочего. Ранее уже был пост - ссылка. Здесь продолжение, с реальным примером замера и полезными флагами. ▪️ Принцип работы iperf3 работает по схеме клиент–сервер. Один узел запускается в режиме сервера, второй - в режиме клиента. Сервер принимает входящий трафик, а клиент его генерирует. ▪️ Пример замера 1️⃣ На сервере:

iperf3 -s
не забываем, что по умолчанию слушает порт 5201, он должен быть открыт. 2️⃣ На клиенте:

iperf3 -c 192.168.1.10
Результат:

[  5]   0.00-10.00  sec  1.09 GBytes  935 Mbits/sec  sender
[  5]   0.00-10.00  sec  1.09 GBytes  935 Mbits/sec  receiver
То есть реальная пропускная способность между хостами - ~935 Мбит/с. ▪️ Полезные опции 📍-R - измерение скорости в обратном направлении (reverse).

iperf3 -c 192.168.1.10 -R
📍-u - UDP-тест (по умолчанию TCP). Можно задать целевую скорость:

iperf3 -c 192.168.1.10 -u -b 500M
📍-f - единицы измерения (m для Mbits, M для MBytes):

iperf3 -c 192.168.1.10 -f m
📍 Быстрый тест "все в одном". Если у вас SSH-доступ к обеим сторонам:

iperf3 -s & ssh user@192.168.1.10 'iperf3 -c $(hostname -I | awk "{print \$1}") -P 4'
Скрипт запускает сервер локально и клиент удаленно, автоматически подключая IP. #network #iperf3 🧑‍💻 NetworkAdmin

Тикет: ЭЦП не работает #юмор 🧑‍💻 NetworkAdmin
Тикет: ЭЦП не работает #юмор 🧑‍💻 NetworkAdmin

🗓 Где искать все запланированные задания Три основных механизма, которые могут использоваться в linux: 1️⃣ Cron - классика планировщика. Cron существует с начала времен UNIX, и до сих пор активно используется. Где искать системные задания:

/etc/crontab
/etc/cron.d/
/etc/cron.hourly/
/etc/cron.daily/
/etc/cron.weekly/
/etc/cron.monthly/
Где искать пользовательские задания:

/var/spool/cron/crontabs
или просто:

crontab -u user01 -l
Каждый пользователь имеет свой отдельный список задач. 2️⃣ systemd timers - современная замена cron. Почти все современные дистрибутивы перешли на systemd timers. Они более гибкие: умеют запускать сервисы с зависимостями, работать после событий, логировать в journal и даже поддерживают случайные задержки. Посмотреть список таймеров:

systemctl list-timers
Все таймеры, включая неактивные:

systemctl list-timers --all
Подробнее о конкретном таймере:

systemctl status logrotate.timer
Примеры стандартных таймеров, установленных по умолчанию:

apt-daily.timer
fstrim.timer
logrotate.timer
anacron.timer
3️⃣ at - разовые задачи. Старый, но всё ещё полезный инструмент для единичных отложенных команд. Идеален для задач вроде: выполни через 5 минут и забудь. В Debian 11+ утилита не устанавливается по умолчанию, но в CentOS/RHEL она ещё есть:

apt install at
Проверить очередь задач:

atq
Добавить разовую задачу:

echo "shutdown -h now" | at -m 10:20
Задачи хранятся в:

/var/spool/cron/atjobs/
или /var/spool/at/
#cron 🧑‍💻 NetworkAdmin

☁️ Как проверить обращения на TCP-порт 22 от клиента с нужного IP Иногда нужно выяснить, было ли соединение на SSH-порт сервера (обычно 22) с конкретного адреса. Казалось бы, задача простая, но есть несколько подходов - как для активных соединений, так и для анализа постфактум. ▪️ Активные подключения. Если соединение активно прямо сейчас, смотрим его в списке сетевых сокетов. Современный инструмент - ss:

ss -ntu | grep ':22'
Аналог - netstat:

netstat -ntu | grep ':22'
Еще один полезный вариант - lsof:

lsof -ni TCP:22
▪️ Логирование попыток подключения. Если интересуют прошлые соединения, а не только активные, то тут уже нужны логи. SSH по умолчанию пишет в системный журнал (/var/log/auth.log или /var/log/secure), но для других сервисов можно включить логирование через firewall. Пример для iptables:

iptables -N ssh_in
iptables -A INPUT -p tcp --dport 22 -j ssh_in
iptables -A ssh_in -j LOG --log-level info --log-prefix "--IN--SSH-- "
iptables -A ssh_in -j ACCEPT
Теперь все подключения на порт 22 будут попадать в syslog. Хотите отдельный лог - добавьте правило в rsyslog. На практике часто используют отдельные цепочки (INPUT, OUTPUT, FORWARD), куда добавляют правила для логирования нужных адресов и портов. ▪️ Альтернативный способ. Можно посмотреть информацию о соединениях напрямую в conntrack:

cat /proc/net/nf_conntrack | grep 'dport=22'
По сути, ss и netstat читают данные именно отсюда. #network 🧑‍💻 NetworkAdmin

Такое точно не обойти #юмор 🧑‍💻 NetworkAdmin

👩‍💻 Всем программистам посвящается! Вот 17 авторских обучающих IT каналов по самым востребованным областям программирования
👩‍💻 Всем программистам посвящается! Вот 17 авторских обучающих IT каналов по самым востребованным областям программирования: Выбирай своё направление: 🤔 InfoSec & Хакинг — t.me/hacking_ready 👩‍💻 Python — t.me/python_ready 👩‍💻 Linux — t.me/linux_ready 🖼️ DevOpst.me/devops_ready 👩‍💻 Bash & Shell — t.me/bash_ready 🖥 Data Sciencet.me/data_ready 🖥 SQL & Базы Данных — t.me/sql_ready 🤖 Нейросетиt.me/neuro_ready 👩‍💻 C/C++ — https://t.me/cpp_ready 👩‍💻 C# & Unity — t.me/csharp_ready 📱 GameDevt.me/csharp_ready 👩‍💻 IT Новости — t.me/it_ready 👩‍💻 Java — t.me/java_ready 🐞 QA-тестирование t.me/qa_ready 📖 IT Книги — t.me/books_ready 👩‍💻 Frontend — t.me/frontend_ready 📱 JavaScript — t.me/javascript_ready 👩‍💻 Backend — t.me/backend_ready 📱 GitHub & Git — t.me/github_ready 📁 IT Факты — t.me/it_facts 🖥 Design — t.me/design_ready 📌 Гайды, шпаргалки, задачи, ресурсы и фишки для каждого языка программирования!

🖥 Nmap - полезные сценарии Nmap - это не только сканер портов, но и инструмент для быстрой диагностики сети. Небольшая подборка команд, которые часто выручали меня в работе. ▪️ Быстрый обзор хоста

nmap -Pn -sS -T4 10.20.1.5
SYN-скан, не пингуем сначала, быстрый тайминг. ▪️ Топ-портов и сервисы

nmap -sV --top-ports 100 10.20.1.0/24
Узнаем версии сервисов по 100 самым распространенным портам в подсети. ▪️ Полный TCP-портскан

nmap -p- -T4 10.20.1.5
Сканируем все 65535 TCP-портов. ▪️ UDP-быстрый скан

sudo nmap -sU --top-ports 50 10.20.1.5
UDP требует прав root и больше времени - выбирайте топ-порты. ▪️ OS и глубокая детекция

sudo nmap -A 10.20.1.5
Включает обнаружение ОС, версий, скрипты и traceroute. ▪️ NSE-скрипты для быстрого аудита

nmap --script ssl-enum-ciphers,http-title -p 443,80 10.20.1.5
Проверяем SSL-шифры и заголовок сайта. ▪️ Массовый вывод в файлы

nmap -sV -oA scans/site_scan 10.20.1.0/24
Создаст site_scan.nmap, .gnmap и .xml - будет удобно для отчетов. ▪️ Сканирование живых хостов

nmap -sn 10.20.1.0/24
Быстрый ping-scan, покажет кто в сети сейчас. #nmap #network 🧑‍💻 NetworkAdmin

🎥 Вебинар по DevOps: Организуем CD с помощью Ansible и GitLab CI 🎁 Все участники вебинара получат специальные условия на по
🎥 Вебинар по DevOps: Организуем CD с помощью Ansible и GitLab CI 🎁 Все участники вебинара получат специальные условия на полное обучение курса "DevOps практики и инструменты" 👉 Для участия зарегистрируйтесь: https://otus.pw/FJr5/ Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576

Ограничение процессов по CPU Иногда необходимо жестко контролировать, какие ядра процесс может занимать, например, чтобы тяжелые задачи не забивали сервер или чтобы критичные сервисы не конкурировали за ресурсы. В linux это решается утилитой taskset, которая позволяет как изменять affinity уже работающих процессов, так и запускать новые с заданными ограничениями. 1️⃣ Привязка уже запущенного процесса к выбранным ядрам. Для начала найдем PID процесса. Выберите любой удобный способ:

ps aux | grep myapp
pidof myapp
pgrep -f myapp
Посмотрим CPU в системе:

lscpu | grep -E 'CPU\(s\)|NUMA'
Пример вывода:

CPU(s):              8
NUMA node0 CPU(s):   0-7
Допустим, нам нужно посадить процесс на ядра 0–2. Для этого:

taskset -pc 0-2 1574
Пример результата:

pid 1574's current affinity list: 0-7
pid 1574's new affinity list: 0,1,2
Теперь процесс гарантированно не займет остальные ядра. 2️⃣ Запуск программы с ограничением по CPU. Это более практичный вариант: мы сразу запускаем процесс с нужными ограничениями. Но тут есть нюанс: taskset требует mask (битовой маски), а не списка ядер.
Как работает маска? Каждое ядро - это один бит: Ядро Маска 0 1 1 2 2 4 3 8 … … Например: ядра 1 и 2 = 2 + 4 = 6 → маска 0x06
Пример запуска с ограничением на одно ядро. Запустить программу только на ядре 0:

taskset 1 gzip hugefile
(маска 1 = ядро 0) Пример: запуск на ядрах 2 и 3 Маска: 4 + 8 = 12 = c

taskset c gzip hugefile
3️⃣ Как быстро узнать маску для нужных ядер. Если не хочется считать вручную, то есть хитрый трюк. Назначаем список ядер любому процессу:

taskset -pc 4-5 $(pidof systemd-journald)
А теперь смотрим его маску:

taskset -p $(pidof systemd-journald)
Пример:

pid 412's current affinity mask: 30
Вот и маска. 4️⃣ Наглядный тест с помощью xz. Архиватор xz умеет использовать несколько потоков, и его хорошо видно в htop. Создаем тестовый файл:

dd if=/dev/urandom of=/tmp/testfile bs=1M count=200
Запускаем xz только на ядрах 0 и 1 (маска 3):

taskset 3 xz -T2 /tmp/testfile
Смотрим в htop и процесс будет занимать строго эти два ядра. #linux #taskset 🧑‍💻 NetworkAdmin

⚡️ Запускаем крупный розыгрыш призов, где можно выиграть iPhone 17, игровые наушники, клавиатуру и мышь! Без лишних слов, усл
⚡️ Запускаем крупный розыгрыш призов, где можно выиграть iPhone 17, игровые наушники, клавиатуру и мышь! Без лишних слов, условия: 1. Подписка на: — бизнестрендсТехнотрендыБлумберг 2. Нажать кнопку «Участвовать» снизу Итоги будут опубликованы 15 ноября в 18:00 на наших каналах, желаем удачи!

🎤 Один ввод, а команды на всех хостах Когда разворачиваешь кластер или нужно повторить одинаковые действия на нескольких серверах, очень помогает режим синхронизации панелей в tmux. С ним одна команда сразу выполняется во всех открытых панелях. ▪️ Установка

apt install tmux
▪️ Работа с панелями 1️⃣Запускаем tmux. 2️⃣Создаем несколько панелей: Ctrl+B % - вертикальное разделение Ctrl+B " - горизонтальное разделение 3️⃣Между панелями перемещаемся Ctrl+B + стрелки. 4️⃣В каждой панели подключаемся по SSH к своему хосту. ▪️ Включение синхронизации. В командной строке tmux (после Ctrl+B :) вводим:

:setw synchronize-panes
Теперь все, что вводите в активной панели, автоматически дублируется во все остальные. Отключение производится той же командой. ▪️ Автоматизация Если работаете с одним и тем же стендом регулярно, то можно написать конфиг для tmux или скрипт, который сразу запускает сессию и подключает нужные SSH-сессии. #linux #terminal 🧑‍💻 NetworkAdmin

Глубоко погрузился в проблему, детально изучил и решил ее #юмор 🧑‍💻 NetworkAdmin

✏️ Шпаргалка по journalctl journalctl - это инструмент работы с логами systemd. ▪️ Фильтрация по сервисам и юнитам. Посмотреть логи конкретной службы:

journalctl -u ssh
journalctl -u nginx -u php-fpm
Последние записи сервиса в реальном времени (аналог tail -f):

journalctl -u nginx -f
▪️ Ограничение по времени. Фильтрация по временным промежуткам:

journalctl --since "2025-10-01" --until "2025-10-15"
journalctl --since "1 hour ago"
journalctl --since yesterday
▪️ Поиск по ключевым словам. Просто используем grep:

journalctl -u ssh | grep "Failed password"
Или встроенный фильтр по приоритету (severity):

journalctl -p err -u ssh
(-p принимает диапазон: -p warning..crit) ▪️ Логи текущей загрузки

journalctl -b        # текущая загрузка
journalctl -b -1     # предыдущая загрузка
journalctl -b -2     # еще раньше
▪️ Работа с логами как с файлами Сохранить в файл:

journalctl -u nginx --since today > nginx.log
Экспорт в бинарный лог и перенос на другой сервер:

journalctl --vacuum-time=7d   # удалить старше 7 дней
journalctl --vacuum-size=1G   # ограничить объем
#systemd #journalctl 🧑‍💻 NetworkAdmin