В этом посте собраны утилиты для эффективной обработки текстовых файлов в командной строке. Рассмотрены сортировка строк, подсчёт повторений, устранение дубликатов, а также объединение данных построчно и по ключевым полям. Полезно для анализа логов, работы со списками и построения конвейеров обработки данных.Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤12👍9🔥9🤝2
This media is not supported in your browser
VIEW IN TELEGRAM
Сайт со статьями по информационной безопасности, где подробно разбираются киберугрозы, методы защиты, требования регуляторов и практические аспекты построения защищённых систем. Материалы охватывают широкий круг тем. Подойдёт всем, кто хочет глубже понять, как защищаются данные и информационные системы на практике.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥9🤝8👍7
Как уменьшать лог-файлы без перезапуска сервиса!
В Linux файловый дескриптор привязан к
Поэтому лог корректно очищать без удаления файла:
Эта конструкция обнуляет содержимое, но сохраняет тот же
Если нужно урезать файл до конкретного размера, используется
Команда обрежет файл до 1MB. Она оставляет начало файла и удаляет хвост, то есть будут потеряны последние (самые новые) записи.
Если требуется сохранить последние записи, важно не менять
Корректный вариант, перезаписать содержимое в тот же файл:
🔥 Так сохраняются последние 1000 строк,
➡️ DevOps Ready | #совет
В Linux файловый дескриптор привязан к
inode, а не к имени файла. Если процесс уже открыл лог и пишет в него, удаление файла не освободит место сразу.Поэтому лог корректно очищать без удаления файла:
> application.log
Эта конструкция обнуляет содержимое, но сохраняет тот же
inode и открытый дескриптор.Если нужно урезать файл до конкретного размера, используется
truncate:truncate -s 1M application.log
Команда обрежет файл до 1MB. Она оставляет начало файла и удаляет хвост, то есть будут потеряны последние (самые новые) записи.
Если требуется сохранить последние записи, важно не менять
inode файла.Корректный вариант, перезаписать содержимое в тот же файл:
tail -n 1000 application.log > tmp.log && cat tmp.log > application.log && rm tmp.log
inode остаётся тем же, и сервис продолжит писать в текущий файл.Please open Telegram to view this post
VIEW IN TELEGRAM
👍10🔥10🤝7
This media is not supported in your browser
VIEW IN TELEGRAM
Здесь собраны практические заметки и техники по анализу уязвимостей, эксплуатации ошибок и защите систем: веб-приложения, мобильные приложения, контейнеры, CI/CD, облачные сервисы и Linux-среды. Также рассматриваются распространённые сценарии атак, такие как конфигурационные ошибки и проблемы безопасности инфраструктуры.
Оставляю ссылочку: GitHub📱
Please open Telegram to view this post
VIEW IN TELEGRAM
❤11👍9🔥7
Использование tmpfs для временных данных и ускорения I/O!
tmpfs — файловая система в оперативной памяти. Применяется для временных файлов, кешей, unix-сокетов и данных, которые не должны переживать перезагрузку.
Типичный сценарий — ускорить операции и убрать лишнюю нагрузку с диска, особенно на серверах с активным I/O.
Создание точки монтирования выполняется один раз:
Монтирование tmpfs в память:
Важно: параметр
Проверить, что файловая система действительно смонтирована:
или более точно:
Любые данные, созданные внутри, существуют только пока tmpfs смонтирован. После размонтирования или перезагрузки они будут утеряны — это ожидаемое поведение и ключевая особенность tmpfs.
Для постоянного использования tmpfs добавляется в
Ограничение по размеру защищает систему от неконтролируемого потребления памяти, а
После добавления запись можно активировать без перезагрузки:
(при условии, что точка монтирования уже существует)
Частый вариант — использование tmpfs вместе с systemd-сервисами. systemd умеет автоматически создавать временные директории в памяти и очищать их при остановке сервиса:
В этом случае каталог создаётся в
Контроль использования памяти:
Важно учитывать, что tmpfs использует оперативную память и может задействовать swap. При неправильно выбранных лимитах это способно повлиять на всю систему.
🔥 tmpfs — простой и надёжный инструмент для временных данных, когда важны скорость, чистота окружения и предсказуемое поведение при рестартах.
➡️ DevOps Ready | #практика
tmpfs — файловая система в оперативной памяти. Применяется для временных файлов, кешей, unix-сокетов и данных, которые не должны переживать перезагрузку.
Типичный сценарий — ускорить операции и убрать лишнюю нагрузку с диска, особенно на серверах с активным I/O.
Создание точки монтирования выполняется один раз:
mkdir -p /mnt/tmpfs
Монтирование tmpfs в память:
mount -t tmpfs -o size=1G,noatime tmpfs /mnt/tmpfs
Важно: параметр
size задаёт верхний лимит, а не резервирует память заранее. Каталог начинает использовать RAM по мере записи (и swap при необходимости). Файлы размещаются в памяти, без прямых операций записи на диск.Проверить, что файловая система действительно смонтирована:
df -hT /mnt/tmpfs
или более точно:
findmnt /mnt/tmpfs
Любые данные, созданные внутри, существуют только пока tmpfs смонтирован. После размонтирования или перезагрузки они будут утеряны — это ожидаемое поведение и ключевая особенность tmpfs.
Для постоянного использования tmpfs добавляется в
/etc/fstab:tmpfs /mnt/tmpfs tmpfs size=1G,noatime,nodev,nosuid,noexec 0 0
Ограничение по размеру защищает систему от неконтролируемого потребления памяти, а
nodev, nosuid и noexec повышают безопасность (если выполнение файлов не требуется).После добавления запись можно активировать без перезагрузки:
mount /mnt/tmpfs
(при условии, что точка монтирования уже существует)
Частый вариант — использование tmpfs вместе с systemd-сервисами. systemd умеет автоматически создавать временные директории в памяти и очищать их при остановке сервиса:
[Service]
RuntimeDirectory=myapp
В этом случае каталог создаётся в
/run/myapp (который находится в tmpfs) и живёт столько, сколько работает сервис. Поведение можно дополнительно настраивать через RuntimeDirectoryPreserve=.Контроль использования памяти:
df -h | grep tmpfs
Важно учитывать, что tmpfs использует оперативную память и может задействовать swap. При неправильно выбранных лимитах это способно повлиять на всю систему.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9❤8🔥6
ACL — это расширение обычных прав доступа в Linux. Если стандартные права (owner / group / other) позволяют управлять доступом только на базовом уровне, то ACL дает возможность назначать права конкретным пользователям и группам.
На картинке — базовые принципы работы ACL.
Сохрани, чтобы не забыть!
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12❤8🔥8
Проверяем, каким маршрутом ядро отправит пакет с помощью ip route get!
Когда на сервере несколько интерфейсов, VPN, policy routing или просто странное сетевое поведение, читать таблицы маршрутов бывает недостаточно. В таких случаях проще напрямую спросить у ядра, какой маршрут оно выберет для пакета до конкретного адреса.
Для этого есть
Проверить маршрут до конкретного IP:
В выводе обычно видно
Пример:
Здесь видно, что пакет будет отправлен через
Понять, какой маршрут выберется для конкретного исходного IP:
Это полезно на серверах с несколькими IP-адресами, когда нужно проверить выбор маршрута для конкретного исходного адреса.
Проверить поиск маршрута с указанием интерфейса:
Опция
Можно также выполнить lookup так, как если бы пакет пришёл на определённый интерфейс:
Опция
Если нужно посмотреть таблицы маршрутизации:
Если используется policy-маршрутизация, полезно также проверить правила:
А чтобы увидеть маршруты во всех таблицах:
🔥 Особенно полезно на серверах с несколькими интерфейсами, VPN-узлах и в сложных сетевых конфигурациях.
➡️ DevOps Ready | #практика
Когда на сервере несколько интерфейсов, VPN, policy routing или просто странное сетевое поведение, читать таблицы маршрутов бывает недостаточно. В таких случаях проще напрямую спросить у ядра, какой маршрут оно выберет для пакета до конкретного адреса.
Для этого есть
ip route get. Команда показывает, какой маршрут будет выбран при поиске маршрута (route lookup), а также исходный адрес и интерфейс, через который пакет будет отправлен.Проверить маршрут до конкретного IP:
ip route get 8.8.8.8
В выводе обычно видно
via, dev и src — через какой следующий узел пойдёт трафик, через какой интерфейс и с какого исходного адреса он будет отправлен.Пример:
8.8.8.8 via 192.168.1.1 dev eth0 src 192.168.1.10
Здесь видно, что пакет будет отправлен через
eth0, следующий узел — 192.168.1.1, а исходным адресом будет 192.168.1.10.Понять, какой маршрут выберется для конкретного исходного IP:
ip route get 8.8.8.8 from 192.168.1.10
Это полезно на серверах с несколькими IP-адресами, когда нужно проверить выбор маршрута для конкретного исходного адреса.
Проверить поиск маршрута с указанием интерфейса:
ip route get 8.8.8.8 oif eth0
Опция
oif позволяет выполнить поиск маршрута с учётом указанного выходного интерфейса.Можно также выполнить lookup так, как если бы пакет пришёл на определённый интерфейс:
ip route get 1.1.1.1 iif eth1
Опция
iif указывает входной интерфейс и позволяет посмотреть, какой маршрут выберет ядро для форвардинга такого пакета. Это полезно при разборе асимметричной маршрутизации (asymmetric routing), policy-маршрутизации (policy routing) и правил, завязанных на интерфейсы.Если нужно посмотреть таблицы маршрутизации:
ip route
Если используется policy-маршрутизация, полезно также проверить правила:
ip rule
А чтобы увидеть маршруты во всех таблицах:
ip route show table all
ip route показывает записи в таблицах маршрутизации, а ip route get — какой маршрут ядро реально выберет для конкретного пакета при route lookup.Please open Telegram to view this post
VIEW IN TELEGRAM
❤12👍9🔥8
This media is not supported in your browser
VIEW IN TELEGRAM
Репозиторий представляет собой сборник материалов и инструментов для изучения хакинга. Здесь собраны гайды для начинающих, ресурсы, практические лаборатории, CTF-платформы, инструменты для анализа уязвимостей. Также включены подборки блогов, форумов, обучающих видео и сообществ, связанных с безопасностью.
Оставляю ссылочку: GitHub📱
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10🔥8❤7🤝1
Как ускорить работу с директориями?
В повседневной работе часто приходится создавать директории и переходить в них. Обычно это делается двумя командами подряд.
Функция
Директория создаётся и вы сразу оказываетесь внутри неё. Это удобно при создании новых проектов, тестовых каталогов или рабочих папок.
Создание временной рабочей директории. Это удобно, когда нужно быстро распаковать архив, протестировать скрипт или поэкспериментировать с файлами:
После работы её можно удалить вручную, либо она может исчезнуть позже при очистке временных каталогов системой.
🔥 Чтобы пользоваться ими постоянно, достаточно добавить функции в файл конфигурации вашей оболочки (
➡️ DevOps Ready | #совет
В повседневной работе часто приходится создавать директории и переходить в них. Обычно это делается двумя командами подряд.
Функция
mkcd объединяет эти действия в одну команду:mkcd() { mkdir -p -- "$1" && cd -- "$1"; }
mkcd projectДиректория создаётся и вы сразу оказываетесь внутри неё. Это удобно при создании новых проектов, тестовых каталогов или рабочих папок.
Создание временной рабочей директории. Это удобно, когда нужно быстро распаковать архив, протестировать скрипт или поэкспериментировать с файлами:
tmpcd() { cd -- "$(mktemp -d)"; }
tmpcdПосле работы её можно удалить вручную, либо она может исчезнуть позже при очистке временных каталогов системой.
~/.bashrc, ~/.zshrc).Please open Telegram to view this post
VIEW IN TELEGRAM
🔥9🤝7👍6❤3
This media is not supported in your browser
VIEW IN TELEGRAM
Это ресурс с подборкой шпаргалок по Linux, где собраны самые важные команды и инструменты для работы в терминале. Материал особенно полезен тем, кто работает с серверами через SSH или постоянно взаимодействует с системой из командной строки, где важно быстро вспомнить нужную команду или параметр. Всё подано в формате компактных таблиц и коротких подсказок.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥9🤝8👍7❤1
В этом посте — набор утилит для потоковой обработки и анализа больших файлов без загрузки их в память. Эти инструменты используются при работе с логами, CSV/TSV-данными и текстовыми дампами. С их помощью можно извлекать колонки, фильтровать строки, сортировать данные и отслеживать прогресс обработки.Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥12👍8🤝8
Например,
код 200 означает, что всё прошло успешно, а 404 сообщает, что страница не найдена.Очень полезно держать под рукой, когда работаешь с API или отлаживаешь backend.
На картинке показаны самые часто используемые статусы от 100 до 599.
Сохрани, чтобы не забыть!
Please open Telegram to view this post
VIEW IN TELEGRAM
❤16👍10🔥9
Уверены, что ваши системные утилиты не подменены хакерами?
Руткиты часто заменяют стандартные бинарники (вроде
Для систем на базе
Команда сравнит текущие файлы с метаданными из базы данных пакетов и выведет список измененных файлов.
Если нужно проверить конкретный важный файл вручную и сравнить его с эталоном:
Генерирует уникальный отпечаток файла для сверки с чистой системой.
🔥 Мини-совет: используйте утилиту
➡️ DevOps Ready | #совет
Руткиты часто заменяют стандартные бинарники (вроде
ls, ps или netstat), чтобы скрывать вредоносные процессы и соединения. Проверка контрольных сумм позволяет мгновенно обнаружить изменения в файлах, которые должны оставаться неизменными с момента установки.Для систем на базе
RPM (CentOS, Fedora, RHEL) используйте встроенную проверку:rpm -Va
Команда сравнит текущие файлы с метаданными из базы данных пакетов и выведет список измененных файлов.
Если нужно проверить конкретный важный файл вручную и сравнить его с эталоном:
sha256sum /bin/ls
Генерирует уникальный отпечаток файла для сверки с чистой системой.
debsums в Debian-системах для автоматического поиска бинарников, не соответствующих своим оригинальным контрольным суммам.Please open Telegram to view this post
VIEW IN TELEGRAM
👍9🔥5❤4
This media is not supported in your browser
VIEW IN TELEGRAM
В репозитории собраны материалы по основам Linux для разработчиков: работа с shell, управление пакетами, права доступа, процессы, SSH и сетевые утилиты. Всё оформлено в виде наглядных схем, таблиц и кратких объяснений. Материал разбит на небольшие блоки: шпаргалки, краткое пояснения ключевых терминов и ссылки на источники для углубленного изучения.
Оставляю ссылочку: GitHub📱
Please open Telegram to view this post
VIEW IN TELEGRAM
❤9🔥9🤝6👍3
Поиск опасных параметров в URL через утилиту Waybackurls.
Мы научимся быстро собирать все исторические ссылки целевого домена из веб-архивов для анализа параметров. Это необходимо для поиска скрытых векторов атак, таких как
Для начала необходимо установить инструмент, который выкачивает архивные
Утилита готова к работе и доступна в системе как команда
Запускаем сбор всех когда-либо индексированных ссылок и фильтруем их, оставляя только те, что содержат параметры запроса:
Результат будет сохранен в файл
Используем регулярные выражения, чтобы выделить наиболее подозрительные параметры вроде
Для проверки количества найденных уникальных путей используйте стандартный счетчик строк:
🔥 Данная техника позволяет обнаружить забытые параметры, которые разработчики могли оставить без должной фильтрации.
➡️ DevOps Ready | #практика
Мы научимся быстро собирать все исторические ссылки целевого домена из веб-архивов для анализа параметров. Это необходимо для поиска скрытых векторов атак, таких как
SQL-инъекции, XSS или открытые редиректы. Автоматизация этого процесса позволяет за секунды получить список эндпоинтов, которые больше не отображаются на главной странице.Для начала необходимо установить инструмент, который выкачивает архивные
URL из Wayback Machine и других открытых баз:# Установка утилиты на Go (требуется установленный golang)
go install github.com/tomnomnom/waybackurls@latest
sudo cp ~/go/bin/waybackurls /usr/local/bin/
Утилита готова к работе и доступна в системе как команда
waybackurls.Запускаем сбор всех когда-либо индексированных ссылок и фильтруем их, оставляя только те, что содержат параметры запроса:
waybackurls example.com | grep '=' | sort -u > params.txt
Результат будет сохранен в файл
params.txt для дальнейшего изучения.Используем регулярные выражения, чтобы выделить наиболее подозрительные параметры вроде
id, redirect, url или file.# Поиск потенциально уязвимых параметров для атак типа LFI/Redirect
grep -E "(id=|url=|path=|dest=|file=|page=)" params.txt
Для проверки количества найденных уникальных путей используйте стандартный счетчик строк:
wc -l params.txt
🔥 Данная техника позволяет обнаружить забытые параметры, которые разработчики могли оставить без должной фильтрации.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤7👍6🔥5🤝2
Например, порт 22 используется для SSH-подключений, а 443 — для защищённого HTTPS-трафика. Порты — основа любого взаимодействия между клиентом и сервером.
На картинке — 18 основных портов.
Сохрани, чтобы не забыть!
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥21👍12🤝10