До сих пор не знаете о
iperf? Одном из самых популярных инструментов для измерения пропускной способности сети. Iperf - это кроссплатформенная утилита, работающая в режиме клиент-сервер. Вы можете запустить сервер на Linux и тестировать подключение с Windows, Android и наоборот. При запуске выбирается один из режимов:Сервер: принимает подключения
Клиент: инициирует тестирование
apt install iperf3
iperf3 -s
По умолчанию сервер слушает порт 5201 TCP — не забудьте открыть его в файрволле.
winget install iperf3
Для любителей графики есть GUI-приложение на основе iperf, но для оригинальной консольной версии лучше скачать архив с официального сайта.
iperf3 -c <IP-адрес сервера>
Результаты теста отобразятся прямо в консоли в удобном формате.
iperf3 -c <IP> --logfile log.txt -J
Эти данные можно потом обрабатывать через любую систему мониторинга.
iperf3 -c <IP> -t 60
iperf3 -c <IP> -n 100M
iperf3 -c <IP> -P 4
Параметры одинаково работают на всех платформах. Вы можете поднять сервер на Windows и тестировать подключение с Linux - и наоборот.
#iperf #networktools
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15
Приходит странный .exe в письме, скачали скрипт с форума, нужно проверить .bat - но лезть в боевую систему страшно? Windows уже давно предлагает удобные инструменты для таких задач: Windows Sandbox и Hyper-V.
Windows Sandbox - это изолированная среда, встроенная в Windows 10/11 Pro и Enterprise, запускаемая как обычное приложение. Каждая сессия создаёт чистую виртуальную Windows, которая полностью удаляется при закрытии. Идеально для тестирования вредоносных или сомнительных файлов.
Панель управления → Программы → Включение компонентов Windows → Windows Sandbox
– Не требует настройки
– Работает поверх Hyper-V
– Доступ к сети (опционально)
– Поддержка копипаста между хостом и Sandbox
– Можно запускать EXE, MSI, BAT, PowerShell-файлы
– Всё, что вы сделали, исчезает после выхода из песочницы
Пример: получили подозрительный .exe? Копируете его в Sandbox, запускаете и смотрите поведение - система хоста в полной безопасности.
Можно создавать .wsb-файлы для кастомных сессий. Пример конфигурации:
<Configuration>
<MappedFolders>
<MappedFolder>
<HostFolder>C:\test</HostFolder>
<ReadOnly>true</ReadOnly>
</MappedFolder>
</MappedFolders>
<Networking>Disable</Networking>
<LogonCommand>
<Command>explorer.exe</Command>
</LogonCommand>
</Configuration>
Hyper-V - полноценная система виртуализации. Позволяет запускать полноценные виртуалки с Windows или Linux, делать снапшоты, настраивать сеть, симулировать заражения. Подходит для постоянных стендов, C2-серверов, песочниц под малварь.
#windows #security
Please open Telegram to view this post
VIEW IN TELEGRAM
👍20
Локальные сети уязвимы к атакам, основанным на подмене MAC-адресов и ARP-ответов. Это позволяет злоумышленнику внедриться в трафик, перехватить сессии, пароли, или даже организовать MITM-атаку. Разберёмся, как это работает и как защититься.
MAC-спуфинг - изменение MAC-адреса устройства для подделки идентичности в сети (например, чтобы обойти фильтрацию или перехватить чужой IP).
ARP-спуфинг - атака, при которой злоумышленник отправляет поддельные ARP-ответы, перенаправляя трафик жертвы на себя.
arp -s 192.168.1.1 00:11:22:33:44:55
#networksecurity #macspoofing
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16
Network Monitor - бесплатная утилита от Microsoft для захвата сетевого трафика. Несмотря на отсутствие обновлений, инструмент отлично подходит для диагностики на серверах и рабочих станциях.
winget install Microsoft.NetMon
Или скачайте с официального сайта Microsoft.
- Запустите от администратора.
- Создайте новую сессию (New Capture → Capture Settings).
- Выберите профиль парсера Windows.
- Нажмите Start для начала захвата.
Перехват SMTP-трафика:
TCP.Port == 25 or TCP.Port == 465 or TCP.Port == 587
Трафик к определенному IP:
IPv4.Address == 192.168.1.100
Захват только HTTP-запросов:
HTTP.Request
Хороший инструмент для локального аудита сетевых соединений без сложных настроек.
#networktools
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18❤1
Please open Telegram to view this post
VIEW IN TELEGRAM
😁34👍6😱3❤1💩1
Когда нужно быстро определить маршрут до хоста, используются утилиты трассировки:
traceroute, tracert и tracepath. Все они работают схожим образом - отправляют пакеты с увеличивающимся TTL и фиксируют ответы от промежуточных узлов. Но есть важные отличия.
traceroute networkadmin.ru # UDP
traceroute -I networkadmin.ru # ICMP
UDP-пакеты могут блокироваться, и вы не получите ответ. Поэтому ICMP часто предпочтительнее в реальных условиях.
- Если нужна универсальность и вы работаете в Linux - используйте traceroute -I.
- Если нужна информация о MTU - tracepath.
- В Windows - только tracert, но ICMP чаще проходит успешно.
#networktools
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18
Пост для тех, кому необходимо интегрировать отправку уведомлений в WhatsApp прямо из скрипта. Отличным решением будет Mudslide - консольный клиент, построенный на Node.js и библиотеке Baileys, работающий через API WhatsApp Web.
npm install -g mudslide
Или загрузите готовый бинарник для Windows/Linux.
npx mudslide login
Сканируйте QR-код в WhatsApp - и вы в системе.
mudslide send 79123456789 "Привет"
mudslide send-image 79123456789 ./image.jpg
mudslide send-file me ./doc.pdf
mudslide send-location me 55.752121 37.617664
Инструмент удобно использовать в автоматизации, мониторинге и оповещениях.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12
Control Groups (или просто
cgroups) - это фича ядра Linux, позволяющая ограничивать ресурсы, выделенные для процессов: CPU, память, диск, сеть и т.д.
# Создаём cgroup
sudo cgcreate -g memory,cpu:/limitgroup
# Ограничим память до 500MB
sudo cgset -r memory.limit_in_bytes=$((500*1024*1024)) limitgroup
# Ограничим CPU (50% одного ядра)
sudo cgset -r cpu.cfs_quota_us=50000 limitgroup
sudo cgset -r cpu.cfs_period_us=100000 limitgroup
# Запускаем процесс внутри cgroup
sudo cgexec -g memory,cpu:/limitgroup stress --vm 1 --vm-bytes 700M --cpu 1
Процесс превысит лимит - будет убит OOM-килером.
Все параметры и статистику можно смотреть в
/sys/fs/cgroup/.#linux #cgroups
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15
mtr -rw -c 50 8.8.8.8
Покажет 50 запросов, каждый hop, потери (%) и задержку (ms).
Если видите 30–50% потерь на каком-то промежуточном IP - скорее всего, это и есть проблемный участок.
netstat. Помогает найти открытые порты, "зависшие" соединения и выяснить, какой процесс что слушает.
ss -tulpn
ss -ltnp | grep ':443'
ss -tan state close-wait
1. Сначала mtr до внешнего хоста - проверка трассировки и потерь.
2. Потом ss - смотрим, что на машине: может, переполнен backlog, слушающий порт не отвечает или слишком много соединений.
#mtr #ss #debug
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13❤2
Вы когда-нибудь задумывались, почему в Unix-подобных системах столько директорий для исполняемых файлов? Почему mount в /bin, а htop в /usr/bin, а свои скрипты многие кладут в /usr/local/bin?
/bin- базовые утилиты, которые нужны системе для загрузки и восстановления (например, cp, ls, mount)./sbin- то же, что /bin, но для системного администрирования (fsck, reboot, iptables)./usr/bin- всё остальное: утилиты для обычной работы пользователей (vim, git, curl)./usr/sbin- админ-инструменты, не нужные на этапе загрузки (apache2, sshd, postfix)./usr/local/binи/usr/local/sbin- то, что вы ставите вручную, не через пакетный менеджер. Сюда удобно кидать своё ПО и скрипты, чтобы не мешать системным файлам.
Иерархия стала анахронизмом, но сохраняется ради совместимости. Логичнее было бы всё централизовать, а смысловое разделение оставить только между системным (/usr) и пользовательским (/usr/local) ПО.
#linux #unix
Please open Telegram to view this post
VIEW IN TELEGRAM
👍21❤3
Скачивание ISO-образов Windows с неофициальных источников может привести к установке модифицированных версий с вредоносным ПО. Для обеспечения безопасности рекомендуется проверять контрольные суммы файлов.
Get-FileHash "C:\Path\to\your\file.iso" -Algorithm SHA256
По умолчанию используется алгоритм SHA256, но можно указать другие: SHA1, SHA384, SHA512, MD5.
certutil -hashfile "C:\Path\to\your\file.iso" SHA256
1. На сайте Visual Studio Downloads (требуется учетная запись Microsoft).
2. На ресурсе RG-Adguard, где можно искать по хешу.
$expectedHash = "c90a6df8997bf49e56b9673982f3e80745058723a707aef8f22998ae6479597d"
(Get-FileHash "C:\Path\to\your\file.iso" -Algorithm SHA256).Hash -eq $expectedHash
Если результат True, файл подлинный; если False - файл может быть поврежден или подделан.
#windows #security
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9❤2
Если напрягает громоздкость Docker и хотите более гибкий инструмент - стоит обратить внимание на Podman. Это альтернатива Docker, которая полностью совместима с его CLI, но не требует запуска отдельного демона. Да, так и есть - никаких dockerd, sudo systemctl start docker и прочего.
Podman - это инструмент для управления контейнерами и образами, разработанный Red Hat. Он использует стандарт OCI (Open Container Initiative), а значит, большинство Docker-образов и команд будут работать "из коробки".
- Без демона: каждый контейнер запускается как обычный процесс, что упрощает отладку и снижает риски.
- Rootless режим: контейнеры можно запускать от обычного пользователя, без sudo и потенциальных угроз для всей системы.
- Совместимость с Docker CLI: команды podman run, podman build, podman pull и даже alias docker=podman - работают почти идентично.
- Интеграция с systemd: можно легко генерировать systemd-юниты из контейнеров (podman generate systemd).
# Установка на Ubuntu
sudo apt install podman
# Запуск контейнера nginx
podman run -d -p 8080:80 nginx
# Список контейнеров
podman ps
# Просмотр логов
podman logs <container-id>
# Остановка и удаление
podman stop <id> && podman rm <id>
В отличие от Docker, Podman реализует концепцию Pods (как в Kubernetes), где можно запускать сразу несколько контейнеров с общей сетью и IPC. Это отличный способ протестировать Kubernetes-архитектуру локально без сложных инструментов.
podman pod create --name mypod -p 8080:80
podman run -dt --pod=mypod nginx
- Вам нужен rootless контейнерный запуск для большей безопасности.
- Вы хотите обойтись без демона и уменьшить нагрузку на систему.
- Вы планируете использовать systemd для управления контейнерами.
- Вы работаете в серверной среде, где минимализм важнее.
#podman
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6❤2🤔2🔥1
Иногда в работе с VMWare ESXi можно столкнуться с ситуацией, когда виртуальная машина зависает и не реагирует ни на выключение, ни на перезагрузку через vSphere Web Client. Но это все ещё не повод перезагружать весь хост целиком
esxcli vm process list
esxcli vm process kill --type=soft -w 12345678
Если не помогает, можно применить более жёсткие методы:
--type=hard - принудительное завершение, аналог kill -9--type=force - экстренное завершение, применяется в крайнем случаеesxtopМожно использовать и утилиту esxtop:
esxtop
Нажимаем V, чтобы отобразить список процессов виртуальных машин. Ищем нужную ВМ и при необходимости завершаем процесс.
#VMware #ESXi
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12❤4👎1
Утилиту lsof (list open files) чаще всего используют для просмотра открытых файлов в Linux - и на этом, как правило, всё. Но возможности этой команды куда шире. Давайте разберёмся.
Это частый кейс: удалили лог-файл (/var/log/nginx/access.log), не перезапустили сервис - и место продолжает быть занятым.
lsof | grep '(deleted)'
# или так, короче:
lsof +L1
lsof +D /var/log
lsof -u user
# Посчитать, сколько файлов открыто:
lsof -u user | wc -l
# Исключить пользователя:
lsof -u^user | wc -l
kill -9 $(lsof -t -u user)
lsof -p 12345
lsof -ni
lsof -ni TCP:80
lsof -ni TCP@192.168.1.10
lsof -ai -u nginx
lsof -iUDP
lsof - это инструмент не только для отладки “куда делось место”, но и для быстрого анализа сетевых соединений, отлова "висячих" файлов и поиска активных пользователей.
#linux #lsof
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16❤3
Когда вы скачиваете файл из браузера, а потом открываете его свойства, Windows может предупредить: «Файл получен с другого компьютера и может быть небезопасным». Это происходит не случайно.
Файл, скачанный на NTFS-диск, получает специальную метку в альтернативном потоке данных (Alternate Data Stream, ADS) с именем Zone.Identifier. Эта метка добавляется браузером автоматически и никак не зависит от расширения — она будет даже у mp3, .txt или .jpg.
Get-Content -Path ".\hard_rock.mp3" -Stream Zone.Identifier
Или в Блокноте:
notepad.exe hard_rock.mp3:Zone.Identifier
[ZoneTransfer]
ZoneId=3
ReferrerUrl=https://ya.ru
HostUrl=https://ya.ru/file.mp3
0 - Мой компьютер
1 - Локальная интрасеть
2 - Доверенные сайты
3 - Интернет (по умолчанию для всего, что скачано)
4 - Ограниченные сайты
Даже если вы переименуете файл или перенесёте его, метка сохраняется. Некоторые антивирусы и скрипты используют эту информацию для усиленной проверки.
1. Через свойства файла → Разблокировать
2. Через PowerShell:
Unblock-File .\hard_rock.mp3
#windows #security
Please open Telegram to view this post
VIEW IN TELEGRAM
👍25🔥7🤔3❤1
Когда речь заходит о NGINX, большинство сразу думают о HTTP-прокси. Но на самом деле он умеет работать и с TCP/UDP, начиная с версии 1.9.0 (с поддержкой модуля stream). Это отличный способ пробросить нестандартные протоколы - от MySQL до DNS.
Включаем модуль stream и прописываем в конфигурации:
# /etc/nginx/nginx.conf
stream {
upstream ssh_backend {
server 192.168.1.100:22;
}
server {
listen 2222;
proxy_pass ssh_backend;
}
}
Теперь при подключении к NGINX по порту 2222, трафик будет перенаправляться на внутренний сервер по SSH-порту 22.
stream {
upstream dns_backend {
server 192.168.1.53:53;
}
server {
listen 53 udp;
proxy_pass dns_backend;
}
}
Важно: UDP-прокси работает не со всеми типами UDP-протоколов - требуется тестирование.
📍 Load-balancing для TCP/UDP (с least_conn, round-robin)📍 Проксирование SSL, SSH, MySQL, RDP и других нестандартных протоколов📍 Поддержка access log, limit_conn, geo-блокировки📍 Возможность защиты backend-ов без дополнительного софта
proxy_timeout 10s;
proxy_connect_timeout 5s;
proxy_protocol on;
proxy_protocol - если используется PROXY protocol от клиента (например, HAProxy).
timeout - не даём соединениям висеть вечно.
#nginx #reverseproxy
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥16❤2😱1
Как понять, сколько памяти действительно использует процесс в Linux?
Многие, особенно после Windows, теряются при анализе памяти в Linux. Диспетчер задач в Win наглядно показывает, сколько ОЗУ занято, сколько свободно - всё просто. В Linux же понимание, что и сколько потребляет, требует большего погружения.
Разберемся на примере анализа потребления памяти процессом, например, nginx или php-fpm.
1️⃣ Находим PID процесса
Допустим, PID мастер-процесса - 1947.
2️⃣ Используем pmap. Эта утилита показывает, какие участки памяти использует процесс и сколько они занимают.
📍 Виртуальная память (VIRT/VSZ):
Внизу увидим итоговое значение виртуальной памяти - все, включая разделяемые библиотеки и даже то, что может быть в swap. Для многопроцессных сервисов (как nginx) эта цифра будет одинаковой у всех дочерних процессов. Поэтому она мало информативна в отрыве от контекста.
📍 Резидентная память (RES/RSS):
Это объем оперативной памяти, реально занятой процессом (без учета swap). Но и тут не всё идеально - при наличии форков каждый из них покажет одинаковую RSS, хотя они могут разделять память.
📍 Приватная память:
А вот здесь интересно: writeable/private показывает именно ту часть памяти, которую процесс использует исключительно сам. Без общих библиотек и форков. Это значение важно при планировании числа одновременно работающих процессов (например, php-fpm).
❓ Как применять эти данные?
Если планируешь запустить 50 PHP-процессов, и каждый из них использует ~30 МБ приватной памяти, нужно минимум 1.5 ГБ ОЗУ только под них. А ещё есть сама ОС, веб-сервер, БД и кэш - нужно считать с запасом, иначе словишь oom-killer.
❓ Где берёт данные pmap?
Из
Анализ потребления памяти в Linux - это не только
#linux #memory
🧑💻 NetworkAdmin
Многие, особенно после Windows, теряются при анализе памяти в Linux. Диспетчер задач в Win наглядно показывает, сколько ОЗУ занято, сколько свободно - всё просто. В Linux же понимание, что и сколько потребляет, требует большего погружения.
Разберемся на примере анализа потребления памяти процессом, например, nginx или php-fpm.
ps ax | grep nginx
Допустим, PID мастер-процесса - 1947.
pmap 1947 -p
Внизу увидим итоговое значение виртуальной памяти - все, включая разделяемые библиотеки и даже то, что может быть в swap. Для многопроцессных сервисов (как nginx) эта цифра будет одинаковой у всех дочерних процессов. Поэтому она мало информативна в отрыве от контекста.
pmap 1947 -x
Это объем оперативной памяти, реально занятой процессом (без учета swap). Но и тут не всё идеально - при наличии форков каждый из них покажет одинаковую RSS, хотя они могут разделять память.
pmap 1947 -d
А вот здесь интересно: writeable/private показывает именно ту часть памяти, которую процесс использует исключительно сам. Без общих библиотек и форков. Это значение важно при планировании числа одновременно работающих процессов (например, php-fpm).
Если планируешь запустить 50 PHP-процессов, и каждый из них использует ~30 МБ приватной памяти, нужно минимум 1.5 ГБ ОЗУ только под них. А ещё есть сама ОС, веб-сервер, БД и кэш - нужно считать с запасом, иначе словишь oom-killer.
Из
/proc/<PID>/smaps, но pmap красиво их парсит. Хочешь больше деталей - загляни туда напрямую.
cat /proc/1947/smaps
Анализ потребления памяти в Linux - это не только
top или htop. Используй pmap, чтобы понять реальное потребление и не попасть в просак при настройке сервисов.#linux #memory
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15❤2
This media is not supported in your browser
VIEW IN TELEGRAM
Сисадмин, который не умеет использовать командную строку bash – так себе специалист.
Если посетить несколько собеседований уровня от миддл, то можно убедиться, что вопросы про опыт работы в консоли появляются довольно часто.
Сходу научиться всем командам bash нереально – их очень много.
К счастью, появился канал BashMaster, в котором каждый день можно узнавать по одной небольшой связке команд и сразу же внедрять их в свою работу.
Подпишись, освоишь bash на изи 👍
Если посетить несколько собеседований уровня от миддл, то можно убедиться, что вопросы про опыт работы в консоли появляются довольно часто.
Сходу научиться всем командам bash нереально – их очень много.
К счастью, появился канал BashMaster, в котором каждый день можно узнавать по одной небольшой связке команд и сразу же внедрять их в свою работу.
Подпишись, освоишь bash на изи 👍
🫡8👍4🤡4🔥1😱1💩1