Запуск любой команды в одноразовой файловой системе
Нужно быстро прогнать скрипт, подозрительный бинарь или инсталлятор и не хочется разворачивать контейнер? Смонтируй tmpfs поверх каталога и работай внутри него - получится чистая, временная файловая система в оперативной памяти.
Что важно знать:
tmpfs изолирует только файловую систему в этом каталоге - это не полноценный контейнер. Процессы внутри могут по-прежнему взаимодействовать с ядром, сетью и доступными устройствами, если явно не ограничить права.
Всё, что попадёт в tmpfs, хранится в оперативной памяти и исчезнет после отмонтирования или перезагрузки.
Размер можно ограничить параметром size при монтировании.
Для монтирования и отмонтирования нужен root, поэтому в примере используются sudo-команды.
Коротко: удобно для быстрой проверки и предотвращения случайного изменения важных файлов - но не полагайся на это как на безопасность в духе "sandbox" полного уровня.
#learn
Нужно быстро прогнать скрипт, подозрительный бинарь или инсталлятор и не хочется разворачивать контейнер? Смонтируй tmpfs поверх каталога и работай внутри него - получится чистая, временная файловая система в оперативной памяти.
Что важно знать:
tmpfs изолирует только файловую систему в этом каталоге - это не полноценный контейнер. Процессы внутри могут по-прежнему взаимодействовать с ядром, сетью и доступными устройствами, если явно не ограничить права.
Всё, что попадёт в tmpfs, хранится в оперативной памяти и исчезнет после отмонтирования или перезагрузки.
Размер можно ограничить параметром size при монтировании.
Для монтирования и отмонтирования нужен root, поэтому в примере используются sudo-команды.
mkdir -p /tmp/safezone
mount -t tmpfs -o size=100M tmpfs /tmp/safezone
cd /tmp/safezone
bash suspicious_script.sh
cd /
sudo umount /tmp/safezone
Коротко: удобно для быстрой проверки и предотвращения случайного изменения важных файлов - но не полагайся на это как на безопасность в духе "sandbox" полного уровня.
#learn
Forwarded from Типичный Сисадмин
Тут из глубин ядра Linux пришла новость, от которой у многих сведет олдскулы. Помните файловую систему NILFS2? Это та самая лог-структурированная ФС с непрерывными снапшотами, которая появилась в ядре еще во времена 2.6. Так вот, после многих лет затишья у проекта появился второй мейнтейнер, Вячеслав Дубейко.
Для тех, кто не в теме за NILFS2... В отличие от Btrfs или ZFS, которые делают снапшоты по команде, NILFS2 делает это постоянно. Любое изменение данных создает новую версию файловой системы, а старые версии остаются доступными для чтения.
В последние годы проект был в анабиозе. Все внимание было приковано к Btrfs, F2FS и новомодному Bcachefs. И вот, внезапно, основной мейнтейнер NILFS2, Рюсуке Кониси, добавляет в проект нового человека и меняет статус с Orphaned (осиротевший👨🦳 ) на Maintained (поддерживается). Новые патчи в ядро будут через Вячеслава.
Ждём бенчмарки чтобы посмотреть сможет ли NILFS2 потягаться с Btrfs и ZFS...
Типичный🥸 Сисадмин
Для тех, кто не в теме за NILFS2... В отличие от Btrfs или ZFS, которые делают снапшоты по команде, NILFS2 делает это постоянно. Любое изменение данных создает новую версию файловой системы, а старые версии остаются доступными для чтения.
В последние годы проект был в анабиозе. Все внимание было приковано к Btrfs, F2FS и новомодному Bcachefs. И вот, внезапно, основной мейнтейнер NILFS2, Рюсуке Кониси, добавляет в проект нового человека и меняет статус с Orphaned (осиротевший
Ждём бенчмарки чтобы посмотреть сможет ли NILFS2 потягаться с Btrfs и ZFS...
Типичный
Please open Telegram to view this post
VIEW IN TELEGRAM
IFTOP - лёгкая утилита для отслеживания сетевых соединений на сервере в реальном времени.
Что показывает iftop:
Основные элементы интерфейса
Левая колонка - локальный IP интерфейса, на котором запущен iftop.
Правая колонка - удалённый IP, с которым идёт обмен. Это могут быть клиенты, внешние сервисы, интернет‑сервера. Правая колонка почти всегда «чужие» IP, а не ваши внутренние.
Стрелки:
=> - исходящий трафик (от сервера к удалённому IP)
<= - входящий трафик (от удалённого IP к серверу)
Скорости передачи: три колонки справа показывают среднюю скорость за последние 2, 10 и 40 секунд.
Практические команды
Запуск на интерфейсе eth0:
Показывать порты:
Не резолвить имена хостов (показывать IP):
Текстовый режим (для логирования или редиректа):
Сортировка по источнику или назначению (destination / source):
Фильтрация по подсети:
Советы для работы
Следи за строками с наибольшим трафиком, чтобы выявить «тяжёлые» соединения.
Стрелки и скорости помогут понять, кто отдаёт, кто получает.
Правая колонка обычно показывает внешние IP, так что можно быстро увидеть, с кем сервер общается в интернете.
Клавиша t в интерфейсе позволяет сортировать соединения по объёму трафика.
#learn #utlity
Что показывает iftop:
Основные элементы интерфейса
Левая колонка - локальный IP интерфейса, на котором запущен iftop.
Правая колонка - удалённый IP, с которым идёт обмен. Это могут быть клиенты, внешние сервисы, интернет‑сервера. Правая колонка почти всегда «чужие» IP, а не ваши внутренние.
Стрелки:
=> - исходящий трафик (от сервера к удалённому IP)
<= - входящий трафик (от удалённого IP к серверу)
Скорости передачи: три колонки справа показывают среднюю скорость за последние 2, 10 и 40 секунд.
Нижняя строка: суммарная статистикаcum - всего переданоpeak - пиковая скоростьrates - текущие скоростиПрактические команды
iftop -ni eth0
Запуск на интерфейсе eth0:
iftop -P -i eth0
Показывать порты:
iftop -n -i eth0
Не резолвить имена хостов (показывать IP):
iftop -t -i eth0
Текстовый режим (для логирования или редиректа):
iftop -o destination
iftop -o source
Сортировка по источнику или назначению (destination / source):
iftop -F 192.168.0.0/24 -i eth0
Фильтрация по подсети:
Советы для работы
Следи за строками с наибольшим трафиком, чтобы выявить «тяжёлые» соединения.
Стрелки и скорости помогут понять, кто отдаёт, кто получает.
Правая колонка обычно показывает внешние IP, так что можно быстро увидеть, с кем сервер общается в интернете.
Клавиша t в интерфейсе позволяет сортировать соединения по объёму трафика.
IFTOP - наглядный инструмент для контроля сети, выявления «жадных» соединений и оптимизации пропускной способности сервера.#learn #utlity
❤1
Что такое nsntrace и зачем он нужен
Системный администратор или DevOps-инженер часто сталкивается с диагностикой сетевого трафика. Но что делать, если нужно отследить именно трафик одного приложения, а не весь системный? Здесь на помощь приходит nsntrace - утилита, которая позволяет захватывать сетевой трафик процесса, запущенного в отдельном сетевом namespace.
Как работает nsntrace
Сетевые неймспейсы (network namespaces)
nsntrace использует сетевые неймспейсы Linux: приложение запускается в собственном namespace, то есть с отдельным сетевым стеком (своими интерфейсами, маршрутами, iptables).
Изоляция трафика
Благодаря этой изоляции можно наверняка захватить только тот трафик, который относится к целевому приложению - без “шума” от других процессов.
Мостовой интерфейс и iptables
Для того, чтобы трафик приложения возвращался “наверх” (в родной namespace), nsntrace создает виртуальный интерфейс и настраивает правила iptables.
Сохранение - pcap-файл
Трафик записывается в pcap-файл, который можно потом анализировать в Wireshark, tcpdump или других инструментах.
Запуск от root
Поскольку используется iptables и “сырые” (raw) сокеты, для работы nsntrace требуются права root.
Установка
Обычно имеется во всех репозиториях.
Теперь запускаем перехват трафика для обычного вызова wget, который делает запрос к сайту. По умолчанию результат сохраняется в файл с именем nsntrace.pcap:
То же самое можно выполнить и для PHP-скрипта:
Далее изучаем содержимое pcap-файла с помощью привычного инструмента, в данном случае tcpick:
GitHub проекта
#utility
Системный администратор или DevOps-инженер часто сталкивается с диагностикой сетевого трафика. Но что делать, если нужно отследить именно трафик одного приложения, а не весь системный? Здесь на помощь приходит nsntrace - утилита, которая позволяет захватывать сетевой трафик процесса, запущенного в отдельном сетевом namespace.
Как работает nsntrace
Сетевые неймспейсы (network namespaces)
nsntrace использует сетевые неймспейсы Linux: приложение запускается в собственном namespace, то есть с отдельным сетевым стеком (своими интерфейсами, маршрутами, iptables).
Изоляция трафика
Благодаря этой изоляции можно наверняка захватить только тот трафик, который относится к целевому приложению - без “шума” от других процессов.
Мостовой интерфейс и iptables
Для того, чтобы трафик приложения возвращался “наверх” (в родной namespace), nsntrace создает виртуальный интерфейс и настраивает правила iptables.
Сохранение - pcap-файл
Трафик записывается в pcap-файл, который можно потом анализировать в Wireshark, tcpdump или других инструментах.
Запуск от root
Поскольку используется iptables и “сырые” (raw) сокеты, для работы nsntrace требуются права root.
Установка
Обычно имеется во всех репозиториях.
apt install nsntrace
Теперь запускаем перехват трафика для обычного вызова wget, который делает запрос к сайту. По умолчанию результат сохраняется в файл с именем nsntrace.pcap:
# nsntrace --use-public-dns wget -q -O /dev/null https://example.com/
Starting network trace of 'wget' on interface enp1s0.
Your IP address in this trace is 172.19.28.255.
Use ctrl-c to end at any time.
Finished capturing 131 packets.
То же самое можно выполнить и для PHP-скрипта:
# nsntrace php -f index.php
Starting network trace of 'php' on interface enp1s0.
Your IP address in this trace is 172.19.213.255.
Use ctrl-c to end at any time.
Finished capturing 52 packets.
Далее изучаем содержимое pcap-файла с помощью привычного инструмента, в данном случае tcpick:
# tcpick -r nsntrace.pcap
Starting tcpick 0.2.1 at 2025-11-15 14:22 MSK
Timeout for connections is 600
tcpick: reading from nsntrace.pcap
1 SYN-SENT 172.19.28.255:40638 > 104.244.78.134:https
1 SYN-RECEIVED 172.19.28.255:40638 > 104.244.78.134:https
1 ESTABLISHED 172.19.28.255:40638 > 104.244.78.134:https
1 FIN-WAIT-1 172.19.28.255:40638 > 104.244.78.134:https
1 FIN-WAIT-2 172.19.28.255:40638 > 104.244.78.134:https
1 RESET 172.19.28.255:40638 > 104.244.78.134:https
tcpick: done reading from nsntrace.pcap
131 packets captured
1 tcp sessions detected
GitHub проекта
#utility
1👍1
Forwarded from Типичный Сисадмин
Хацкеры теперь не просто шифруют данные, а подставляют сисадминов 😔
Свежий отчет от Check Point показывает, что рынок шифровальщиков окончательно стал бизнесом. LockBit выкатил версию 5.0, заточенную под максимальный ущерб, теперь упор на ESXi, чтобы положить сразу всю виртуализацию, и динамические расширения файлов, чтобы ваш EDR даже не понял, что произошло. А новая фишка их нового продукта в психологическои давлении на IT-отдел.
Теперь они прямым текстом в записке делают крайним сисадмина... А грамотно они это придумали с точки зрения социальной инженерии... столкнуть руководство с собственными админами. Мол, это не мы такие, это ваш Вася-админ не так всё настроил. А за ошибки надо платить. Мало того, что шифруют данные, так еще и вносят раздор😱
Взламывая компанию, они оставляют записку, где находят козла отпущения:
Всё, приехали. Раньше нас обвиняли в сбоях пользователи, потом начальство, теперь к ним присоединились и хацкеры. Это какой-то новый уровень корпоративного газлайтинга, только со стороны атакующих. Что вообще происходит-то?😕
Типичный🥸 Сисадмин
Свежий отчет от Check Point показывает, что рынок шифровальщиков окончательно стал бизнесом. LockBit выкатил версию 5.0, заточенную под максимальный ущерб, теперь упор на ESXi, чтобы положить сразу всю виртуализацию, и динамические расширения файлов, чтобы ваш EDR даже не понял, что произошло. А новая фишка их нового продукта в психологическои давлении на IT-отдел.
Теперь они прямым текстом в записке делают крайним сисадмина... А грамотно они это придумали с точки зрения социальной инженерии... столкнуть руководство с собственными админами. Мол, это не мы такие, это ваш Вася-админ не так всё настроил. А за ошибки надо платить. Мало того, что шифруют данные, так еще и вносят раздор
Взламывая компанию, они оставляют записку, где находят козла отпущения:
... Отнеситесь к этой ситуации как к платной тренировке для ваших системных администраторов, потому что именно неверная конфигурация вашей корпоративной сети позволила нам атаковать вас. Наши услуги по пентесту должны оплачиваться так же, как вы платите зарплату своим сисадминам.
Всё, приехали. Раньше нас обвиняли в сбоях пользователи, потом начальство, теперь к ним присоединились и хацкеры. Это какой-то новый уровень корпоративного газлайтинга, только со стороны атакующих. Что вообще происходит-то?
Типичный
Please open Telegram to view this post
VIEW IN TELEGRAM
Полезный Linux-прием: когда требуется быстро выявить, какие объекты файловой системы недавно изменялись, используйте find с временными фильтрами.
Это упрощает диагностику, помогает обнаруживать сомнительную активность и отслеживать недавние корректировки в проектах.
файлы, обновленные за последние 10 минут
объекты, измененные в течение последнего часа
файлы, модифицированные за прошедшие 24 часа
только каталоги, измененные за последние 30 минут
вывод времени изменения вместе с результатами
#learn
Это упрощает диагностику, помогает обнаруживать сомнительную активность и отслеживать недавние корректировки в проектах.
файлы, обновленные за последние 10 минут
find . -type f -mmin -10
объекты, измененные в течение последнего часа
find /var/log -type f -mmin -60
файлы, модифицированные за прошедшие 24 часа
find . -type f -mtime -1
только каталоги, измененные за последние 30 минут
find . -type d -mmin -30
вывод времени изменения вместе с результатами
find . -type f -mmin -15 -exec ls -lh {} ;#learn
❤1
Пример Bash-скрипта, который выполняет такие операции:
1) Проверяет, доступен ли целевой веб-сервер.
2) Анализирует текущий уровень заполненности диска.
3) Создает архивную копию выбранных директорий.
4) Формирует и отправляет администратору отчет о выполненных действиях.
1) Контроль работы веб-сервера: curl выполняет запрос к сайту и по ответу определяется его доступность.
2) Оценка заполненности диска: с помощью df и awk вычисляется текущий процент использования. При превышении заданного лимита отправляется предупреждение.
3) Формирование резервной копии: tar создает сжатый архив всех путей, перечисленных в переменной TARGET_DIRS.
4) Формирование и отправка отчета: итоговая информация о выполненных шагах отправляется администратору через mail.
Как использовать:
1) Укажите необходимые значения - адрес проверяемого веб-сервера, перечень директорий для резервного копирования, допустимый порог загрузки диска и email администратора.
2) Назначьте скрипту право на выполнение:
3) Настройте выполнение скрипта по расписанию через cron, чтобы он запускался автоматически. Например каждый день в полночь.
#learn
1) Проверяет, доступен ли целевой веб-сервер.
2) Анализирует текущий уровень заполненности диска.
3) Создает архивную копию выбранных директорий.
4) Формирует и отправляет администратору отчет о выполненных действиях.
#!/bin/bash
# Основные параметры
WEB_SERVER="https://example.com"
BACKUP_DIR="/backup"
TARGET_DIRS="/var/www /etc"
DISK_USAGE_THRESHOLD=90
ADMIN_EMAIL="admin@example.com"
DATE=$(date +"%Y-%m-%d")
BACKUP_FILE="$BACKUP_DIR/backup-$DATE.tar.gz"
# Проверка, отвечает ли веб-сервер
echo "Проверка состояния веб-сервера..."
if curl -s --head $WEB_SERVER | grep "200 OK" > /dev/null; then
echo "Веб-сервер отвечает корректно."
else
echo "Проблема: веб-сервер не отвечает." | mail -s "Сбой веб-сервера" $ADMIN_EMAIL
fi
# Контроль использования диска
echo "Анализ доступного места на диске..."
DISK_USAGE=$(df / | grep / | awk '{ print $5 }' | sed 's/%//g')
if [ $DISK_USAGE -gt $DISK_USAGE_THRESHOLD ]; then
echo "Проблема: достигнут лимит использования диска ($DISK_USAGE_THRESHOLD%)." | mail -s "Недостаточно места на диске" $ADMIN_EMAIL
else
echo "Свободного места достаточно."
fi
# Формирование резервной копии
echo "Запуск создания резервной копии..."
tar -czf $BACKUP_FILE $TARGET_DIRS
if [ $? -eq 0 ]; then
echo "Резервная копия создана: $BACKUP_FILE"
else
echo "Не удалось создать резервную копию." | mail -s "Сбой резервного копирования" $ADMIN_EMAIL
fi
# Отправка итогового отчета
echo "Отправка итогового отчета на $ADMIN_EMAIL..."
REPORT="Отчет за $DATE\n\n"
REPORT+="Ответ веб-сервера: $(curl -s --head $WEB_SERVER | head -n 1)\n"
REPORT+="Уровень использования диска: $DISK_USAGE%\n"
REPORT+="Файл резервной копии: $BACKUP_FILE\n"
echo -e $REPORT | mail -s "Системный дневной отчет" $ADMIN_EMAIL
echo "Завершено."
1) Контроль работы веб-сервера: curl выполняет запрос к сайту и по ответу определяется его доступность.
2) Оценка заполненности диска: с помощью df и awk вычисляется текущий процент использования. При превышении заданного лимита отправляется предупреждение.
3) Формирование резервной копии: tar создает сжатый архив всех путей, перечисленных в переменной TARGET_DIRS.
4) Формирование и отправка отчета: итоговая информация о выполненных шагах отправляется администратору через mail.
Как использовать:
1) Укажите необходимые значения - адрес проверяемого веб-сервера, перечень директорий для резервного копирования, допустимый порог загрузки диска и email администратора.
2) Назначьте скрипту право на выполнение:
chmod +x /path/to/your/сheck+backup.sh
3) Настройте выполнение скрипта по расписанию через cron, чтобы он запускался автоматически. Например каждый день в полночь.
0 0 * * * /path/to/your/сheck+backup.sh
#learn
👍2
Forwarded from Типичный Сисадмин
Официальный бэкдор в каждом Keenetic 🤡
Владельцы Кинетиков внезапно обнаружили, что вендор массово и принудительно накатил обновление KeeneticOS (версии ветки 4.x) на устройства. Пикантность ситуации в том, что апдейт прилетел даже тем пользователям, у кого в настройках было прописано🤣
Формальным поводом для такого беспредела стала безопасность. В интернетах началась эпидемия взломов ролтонов кинетика... ботнеты сканировали сеть, находили роутеры с открытым наружу веб-интерфейсом и слабыми паролями, после чего создавали там скрытого пользователя😂
На форумах Keenetic и Netcraze начали бомбить. Что если вендор имеет техническую возможность игнорировать запрет на обновления и заливать в устройство всё что угодно через собственные бэкдоры (подозревают протоколы типа CWMP/TR-069), то о каком доверии может идти речь? Сегодня они залили патч безопасности, чтобы спасти вас от хакеров, а завтра зальют обновление, которое оптимизирует работу, удалит неугодные пакеты или сольет данные нужным людям?
Напомню, что в РФ Keenetic теперь официально мимикрировал в бренд Netcraze (Сетевое Безумие?). Облачная инфраструктура переехала из буржуйского Hetzner в родной Selectel, а в логах роутеров теперь мелькают запросы к узлам вроде
Представители Keenetic пока отмалчиваются или ссылаются на критичность уязвимости. Но осадочек остался капитальный. Получается, покупая роутер за оверпрайс, вы по факту берете в аренду терминал, которым управляет некто из техподдержки. И ваше мнение о том, какая версия прошивки должна стоять на вашем железе, никого не интересует. Добровольные бэкдоры, велком🎩
Типичный🥸 Сисадмин
Владельцы Кинетиков внезапно обнаружили, что вендор массово и принудительно накатил обновление KeeneticOS (версии ветки 4.x) на устройства. Пикантность ситуации в том, что апдейт прилетел даже тем пользователям, у кого в настройках было прописано
auto-update disable. Галочка в GUI оказалась просто декорацией Формальным поводом для такого беспредела стала безопасность. В интернетах началась эпидемия взломов ролтонов кинетика... ботнеты сканировали сеть, находили роутеры с открытым наружу веб-интерфейсом и слабыми паролями, после чего создавали там скрытого пользователя
adminr и поднимали VPN-сервер для своих темных дел. Компания решила не ждать, пока все клиенты станут частью ботнета, и бэкдорнула каждого, принудительно обновив прошивки и запретив открывать доступ извне без установки сложного пароля На форумах Keenetic и Netcraze начали бомбить. Что если вендор имеет техническую возможность игнорировать запрет на обновления и заливать в устройство всё что угодно через собственные бэкдоры (подозревают протоколы типа CWMP/TR-069), то о каком доверии может идти речь? Сегодня они залили патч безопасности, чтобы спасти вас от хакеров, а завтра зальют обновление, которое оптимизирует работу, удалит неугодные пакеты или сольет данные нужным людям?
Напомню, что в РФ Keenetic теперь официально мимикрировал в бренд Netcraze (Сетевое Безумие?). Облачная инфраструктура переехала из буржуйского Hetzner в родной Selectel, а в логах роутеров теперь мелькают запросы к узлам вроде
ndss.netcraze.ru.Представители Keenetic пока отмалчиваются или ссылаются на критичность уязвимости. Но осадочек остался капитальный. Получается, покупая роутер за оверпрайс, вы по факту берете в аренду терминал, которым управляет некто из техподдержки. И ваше мнение о том, какая версия прошивки должна стоять на вашем железе, никого не интересует. Добровольные бэкдоры, велком
Типичный
Please open Telegram to view this post
VIEW IN TELEGRAM
Ищем сомнительные сетевые активности в Linux через Bash.
В системе иногда остаются непонятные подключения - от зависших программ до потенциально вредных процессов.
Bash и стандартные инструменты позволяют быстро выявить и разобрать такие случаи.
Просмотр всех текущих сетевых подключений:
Выводит PID, порты, адреса и статусы. Подходит для обнаружения неожиданно слушающих сервисов.
Поиск соединений с конкретными адресами:
Отбирает строки по нужной сети или IP.
Показ только установленных соединений:
Отсекает слушающие порты, показывая активные сессии.
Проверка PID по имени процесса:
Помогает определить, какая программа держит связь.
Мониторинг в реальном времени:
#learn
В системе иногда остаются непонятные подключения - от зависших программ до потенциально вредных процессов.
Bash и стандартные инструменты позволяют быстро выявить и разобрать такие случаи.
Просмотр всех текущих сетевых подключений:
ss -tulpn
Выводит PID, порты, адреса и статусы. Подходит для обнаружения неожиданно слушающих сервисов.
Поиск соединений с конкретными адресами:
ss -ntp | grep "192.168."
Отбирает строки по нужной сети или IP.
Показ только установленных соединений:
ss -ntp state established
Отсекает слушающие порты, показывая активные сессии.
Проверка PID по имени процесса:
ps -fp <PID>
Помогает определить, какая программа держит связь.
Мониторинг в реальном времени:
watch -n 2 ss -tulpn
#learn
Полезный приём: как быстро извлечь все уникальные доменные имена из любых текстов или логов в Linux без использования сложных парсеров.
Из файла:
Просматриваем лог и получаем список уникальных доменов.
Из потока (например, HTTP-трафик):
Выводим домены прямо на лету, формируя уникальный список.
#learn
Из файла:
grep -oE '\b([a-zA-Z0-9-]+\.)+[a-zA-Z]{2,}\b' /var/log/syslog | sort -uПросматриваем лог и получаем список уникальных доменов.
Из потока (например, HTTP-трафик):
tcpdump -A -s 0 port 80 | grep -oE '\b([a-zA-Z0-9-]+\.)+[a-zA-Z]{2,}\b' | sort -uВыводим домены прямо на лету, формируя уникальный список.
#learn
🔥1
Трюки с SSH: это куда больше, чем обычный удалённый вход
SSH-соединения обладают куда более широкими возможностями, чем простой доступ к машине. Вот набор действительно полезных приемов:
Туннелирование к внутренним системам:
Локальный адрес localhost:8080 перенаправляет трафик на порт 80 узла internal-server через gateway.
Быстрое подключение с помощью псевдонимов:
В ~/.ssh/config
Теперь можно выполнять ssh myserver вместо ввода параметров вручную.
Авторизация без пароля за считанные секунды:
После переноса ключа вход происходит автоматически.
Мгновенные повторные подключения:
В ~/.ssh/config
Первый сеанс устанавливается обычно, следующие открываются моментально.
Передача директорий без использования scp:
Архивация выполняется потоком и сразу извлекается на удалённой стороне.
Удалённый просмотр логов с локальной обработкой:
Можно комбинировать с любыми командами на своей машине через пайпы.
Эти практики значительно упрощают сопровождение большого числа серверов.
#learn
SSH-соединения обладают куда более широкими возможностями, чем простой доступ к машине. Вот набор действительно полезных приемов:
Туннелирование к внутренним системам:
ssh -L 8080:internal-server:80 user@gateway
Локальный адрес localhost:8080 перенаправляет трафик на порт 80 узла internal-server через gateway.
Быстрое подключение с помощью псевдонимов:
В ~/.ssh/config
Host myserver
HostName 192.168.1.100
User admin
Port 2222
IdentityFile ~/.ssh/my_key
Теперь можно выполнять ssh myserver вместо ввода параметров вручную.
Авторизация без пароля за считанные секунды:
ssh-copy-id user@server
После переноса ключа вход происходит автоматически.
Мгновенные повторные подключения:
В ~/.ssh/config
Host *
ControlMaster auto
ControlPath ~/.ssh/sockets/%r@%h:%p
ControlPersist 600
Первый сеанс устанавливается обычно, следующие открываются моментально.
Передача директорий без использования scp:
tar cz folder/ | ssh server "tar xz -C /destination"
Архивация выполняется потоком и сразу извлекается на удалённой стороне.
Удалённый просмотр логов с локальной обработкой:
ssh server "tail -f /var/log/app.log" | grep -i error
Можно комбинировать с любыми командами на своей машине через пайпы.
Эти практики значительно упрощают сопровождение большого числа серверов.
#learn
👍3
Glances - это утилита мониторинга системы в реальном времени. Написана на Python, работает в терминале, по сети и через веб-интерфейс. Показывает загрузку CPU, памяти, дисков, сетевых интерфейсов, процессы, температуру, состояние файловых систем, контейнеров и других подсистем. Подходит как для локального контроля, так и для удалённого мониторинга через клиент-сервер или браузер. Может экспортировать метрики в InfluxDB, ElasticSearch, CSV и другие источники. Код открытый, расширяется плагинами.
Старт в обычном терминальном режиме.
Запуск встроенного веб-сервера (порт 61208 по умолчанию).
Запуск в режиме сервера для удалённого мониторинга.
Подключение к Glances-серверу по указанному IP.
Поиск всех Glances-серверов в сети и просмотр через TUI.
#utility
glances
Старт в обычном терминальном режиме.
glances -w
Запуск встроенного веб-сервера (порт 61208 по умолчанию).
glances -s
Запуск в режиме сервера для удалённого мониторинга.
glances -c IP
Подключение к Glances-серверу по указанному IP.
glances --browser
Поиск всех Glances-серверов в сети и просмотр через TUI.
#utility
Мониторинг активных портов: Nmap + Опорный снимок + Сравнение
Бывает необходимо не просто "проверять порты", а определить момент изменения: служба внезапно открыла порт, а firewall перекрыл прежний.
В таких ситуациях отлично работает простой метод:
Опорный снимок → Проверка → Сравнение
1. Опорный снимок
Создаём первоначальный перечень портов и сохраняем его:
Это наш "образец", с которым далее будем соотносить результаты.
2. Актуальная проверка
Через установленный промежуток времени фиксируем новое состояние:
3. Сравнение через ndiff
Пример вывода:
#learn
Бывает необходимо не просто "проверять порты", а определить момент изменения: служба внезапно открыла порт, а firewall перекрыл прежний.
В таких ситуациях отлично работает простой метод:
Опорный снимок → Проверка → Сравнение
1. Опорный снимок
Создаём первоначальный перечень портов и сохраняем его:
nmap -p- -oX baseline.xml 192.168.100.100
Это наш "образец", с которым далее будем соотносить результаты.
2. Актуальная проверка
Через установленный промежуток времени фиксируем новое состояние:
nmap -p- -oX current.xml 192.168.100.100
3. Сравнение через ndiff
ndiff baseline.xml current.xml
Пример вывода:
-Nmap 7.80 scan initiated Sat Nov 22 13:32:40 2025 as: nmap -p- -oX baseline.xml 192.168.100.100
+Nmap 7.80 scan initiated Sat Nov 22 13:34:55 2025 as: nmap -p- -oX current.xml 192.168.100.100
192.168.100.100:
-Not shown: 59995 filtered ports, 5538 closed ports
+Not shown: 59994 filtered ports, 5538 closed ports
PORT STATE SERVICE VERSION
+80/tcp open http
#learn
Редкий, но практичный совет для Linux
Когда приходится выполнять продолжительные операции в терминале (ffmpeg, tar, scp, rsync и т.п.), а случайно закрытое окно рушит весь прогресс, есть простое решение: применяй стандартные утилиты
—
—
—
После запуска можно спокойно закрывать терминал - задача продолжит выполняться.
Все сообщения будут записаны в файл
Особенно полезно при работе по SSH или с нестабильным подключением: процессы доходят до финиша независимо от состояния соединения.
#learn
Когда приходится выполнять продолжительные операции в терминале (ffmpeg, tar, scp, rsync и т.п.), а случайно закрытое окно рушит весь прогресс, есть простое решение: применяй стандартные утилиты
nohup и disown.nohup your_command & disown
—
nohup - не дает процессу завершиться при закрытии терминала.—
& - отправляет задачу в фоновый режим.—
disown - удаляет связь процесса с текущей оболочкой.После запуска можно спокойно закрывать терминал - задача продолжит выполняться.
Все сообщения будут записаны в файл
nohup.out в текущем каталоге.Особенно полезно при работе по SSH или с нестабильным подключением: процессы доходят до финиша независимо от состояния соединения.
#learn
Переименовываем множество файлов в каталоге по заранее заданному формату.
Если нужно быстро изменить имена большого числа файлов под общий вид, это можно сделать через Bash.
Сначала задаём директорию и шаблон для новых названий:
Далее запускаем обход всех элементов каталога и меняем имена:
•
•
•
•
Проверка работы:
Были файлы:
Станут:
Этот подход упрощает массовое приведение имён к структурированному виду и ускоряет организацию данных.
#learn
Если нужно быстро изменить имена большого числа файлов под общий вид, это можно сделать через Bash.
Сначала задаём директорию и шаблон для новых названий:
folder="~/Documents/photos"
prefix="img_"
Далее запускаем обход всех элементов каталога и меняем имена:
cd "$folder"
i=1
for file in *; do
ext="${file##*.}"
mv "$file" "${prefix}${i}.${ext}"
((i++))
done
•
cd "$folder" - переключаемся в требуемый каталог•
ext="${file##*.}" - извлекаем расширение исходного файла•
mv - присваиваем новое имя с префиксом и порядковым номером•
((i++)) - увеличиваем счётчик на единицуПроверка работы:
Были файлы:
IMG1234.jpg, vacation.png, photo_01.jpeg
Станут:
img_1.jpg, img_2.png, img_3.jpeg
Этот подход упрощает массовое приведение имён к структурированному виду и ускоряет организацию данных.
#learn
MTR: полезные флаги для продвинутой диагностики
mtr 0 больше, чем traceroute. Вот флаги, которые помогут точнее проверять маршруты и обходить блокировки:
-T --port
TCP вместо ICMP, тест сервисов и обход firewall.
--interval, --timeout
Настройка частоты и таймаута запросов при высоких задержках.
--report, --report-cycles
Создание итогового отчёта, удобно для логов и скриптов.
--json, --csv
Вывод в машинно-читаемом формате для парсинга.
--aslookup
Показывает номера автономных систем (AS) на пути, полезно для BGP.
--mpls
Показывает MPLS-метки, если используются.
-n, --no-dns
Вывод только IP без DNS-задержек.
Пример: трассировка через TCP 443, в JSON, без DNS:
#learn
mtr 0 больше, чем traceroute. Вот флаги, которые помогут точнее проверять маршруты и обходить блокировки:
-T --port
TCP вместо ICMP, тест сервисов и обход firewall.
mtr -T --port 443 vpn.example.com
--interval, --timeout
Настройка частоты и таймаута запросов при высоких задержках.
mtr --interval 2 --timeout 10 --report 1.1.1.1
--report, --report-cycles
Создание итогового отчёта, удобно для логов и скриптов.
mtr --report --report-cycles 20 example.com
--json, --csv
Вывод в машинно-читаемом формате для парсинга.
mtr --json 8.8.8.8 > result.json
--aslookup
Показывает номера автономных систем (AS) на пути, полезно для BGP.
mtr --aslookup --report example.com
--mpls
Показывает MPLS-метки, если используются.
mtr --mpls --report example.com
-n, --no-dns
Вывод только IP без DNS-задержек.
mtr -n --report 1.1.1.1
Пример: трассировка через TCP 443, в JSON, без DNS:
mtr -T --port 443 -n --json --report-cycles 15 1.1.1.1
#learn