🧠 Задача для продвинутых Linux-админов: "Сломанный сервис, который живет вне systemd"
📌 Условие:
У вас есть продакшн‑сервер (Debian/Ubuntu), на котором внезапно начала "умирать" часть бэкенда. Логи в
🔎 Что известно:
• В
• В
• В
• При
• Cron выглядит чисто (`crontab -l`, `/etc/cron.*`)
•
•
• В
🧩 Вопросы:
1. Где может прятаться запуск
2. Как отследить, кто запускает процесс?
3. Почему процесс "исчезает" и кто его убивает?
4. Как бы вы автоматизировали его отслеживание без полной остановки сервера?
✅ Разбор и подход к решению:
Шаг 1: Кто его запускает?
Возможные подозреваемые:
-
-
-
-
- Unit мог быть удалён, но процесс остался под другим shell'ом
📌 Используй:
Шаг 2: Кто его убивает?
Варианты:
OOM-killer (dmesg | grep -i 'killed process')
Сторонняя логика (скрипт мониторинга или autorestart в user‑cron)
ulimit, timeout, или trap внутри родительского скрипта
Нечестный cronjob: проверь /etc/cron.d/, run-parts, anacron и т.д.
📌 Используй:
или
Шаг 3: Автоматизация расследования
• Поставь auditd, логируй все execve вызовы
• Используй systemtap или bpftrace для live-трассировки
• Пример:
💡 Бонус:
Спроси себя — что если процесс стартует... внутри контейнера или chroot? Или через сторонний бинарник типа supervisord, установленный в /opt?
🧩 Вывод:
Это задача не просто про systemd, а про целостное понимание всей экосистемы процессов в Linux. Уверен, вы найдёте processord. Но вот как вы его найдёте — и покажет ваш уровень.
📌 Условие:
У вас есть продакшн‑сервер (Debian/Ubuntu), на котором внезапно начала "умирать" часть бэкенда. Логи в
/var/log ничего не показывают, systemctl уверяет, что все сервисы активны. Но один внутренний микросервис processord исчезает каждые 5–10 минут и появляется снова. Пользователи жалуются на случайные 502.🔎 Что известно:
• В
ps aux вы иногда видите processord, а иногда нет • В
journalctl — тишина • В
systemctl list-units — такого юнита нет • При
netstat -tulpen видно, что processord слушает порт 9090, но ненадолго • Cron выглядит чисто (`crontab -l`, `/etc/cron.*`)
•
sshd_config, .bashrc, .profile не тронуты •
/etc/init.d/, /etc/rc.local не содержат вызовов processord • В
/tmp появляется временный скрипт с нечитаемым именем🧩 Вопросы:
1. Где может прятаться запуск
processord, если systemd его не знает? 2. Как отследить, кто запускает процесс?
3. Почему процесс "исчезает" и кто его убивает?
4. Как бы вы автоматизировали его отслеживание без полной остановки сервера?
✅ Разбор и подход к решению:
Шаг 1: Кто его запускает?
Возможные подозреваемые:
-
atd — отложенные задачи (проверь `atq`) -
watch, while true, tmux, screen, nohup, disown -
systemd --user (запуск в user-сессии, а не через root) -
~/.config/systemd/user/ или ~/.config/autostart/ - Unit мог быть удалён, но процесс остался под другим shell'ом
📌 Используй:
auditctl -a exit,always -F arch=b64 -S execve
ausearch -x /usr/bin/processord
inotifywait -mr /tmp /etc /home -e create,open,exec
Шаг 2: Кто его убивает?
Варианты:
OOM-killer (dmesg | grep -i 'killed process')
Сторонняя логика (скрипт мониторинга или autorestart в user‑cron)
ulimit, timeout, или trap внутри родительского скрипта
Нечестный cronjob: проверь /etc/cron.d/, run-parts, anacron и т.д.
📌 Используй:
strace -ff -p $(pidof processord) -o trace.log
или
ps -o ppid= -p $(pidof processord) | xargs pstree -s
Шаг 3: Автоматизация расследования
• Поставь auditd, логируй все execve вызовы
• Используй systemtap или bpftrace для live-трассировки
• Пример:
bpftrace -e 'tracepoint:syscalls:sys_enter_execve { printf("%s %s\n", comm, str(args->argv[0])); }'
💡 Бонус:
Спроси себя — что если процесс стартует... внутри контейнера или chroot? Или через сторонний бинарник типа supervisord, установленный в /opt?
🧩 Вывод:
Это задача не просто про systemd, а про целостное понимание всей экосистемы процессов в Linux. Уверен, вы найдёте processord. Но вот как вы его найдёте — и покажет ваш уровень.
👍31❤17🔥4👎3
🛠️ Как реализовать AI-инспектора активности Linux-системы — пошагово
Хочешь построить умный CLI-инструмент, который следит за процессами, сетью и файлами, а потом объясняет их поведение с помощью ИИ? Вот краткий MVP-проект, который ты можешь собрать за выходные.
🔧 1. Сканируем активные процессы
📡 2. Смотрим, кто слушает порты
🗂 3. Следим за странными изменениями в /tmp
🧠 4. Спрашиваем у ИИ — что это значит
🎨 5. Красивый вывод через rich
🏁 Как собрать всё вместе:
Запускаем scan_processes() в цикле каждые 10 секунд
Параллельно запускаем Observer на /tmp
Все события — в очередь, LLM отвечает, rich выводит
📦 Расширения для продвинутых:
• Telegram-уведомления при критических событиях
• Локальный режим с LLM через Ollama или LM Studio
• Export в JSON/CSV/Prometheus
💡 Итог: у тебя будет терминальное приложение, которое в реальном времени отслеживает поведение Linux-системы и объясняет его как человек, но при этом всё на Python.
@linuxkalii
#python #linux #sysadmin #ai #infosec #terminaltools #weekendbuild
Хочешь построить умный CLI-инструмент, который следит за процессами, сетью и файлами, а потом объясняет их поведение с помощью ИИ? Вот краткий MVP-проект, который ты можешь собрать за выходные.
🔧 1. Сканируем активные процессы
import psutil
def scan_processes():
suspicious = []
for proc in psutil.process_iter(['pid', 'name', 'exe', 'cmdline']):
try:
path = proc.info['exe'] or ''
if '/tmp' in path or 'sh' in proc.info['name']:
suspicious.append(proc.info)
except psutil.AccessDenied:
continue
return suspicious
📡 2. Смотрим, кто слушает порты
import socket
def get_open_ports():
return [conn.laddr.port for conn in psutil.net_connections() if conn.status == 'LISTEN']
🗂 3. Следим за странными изменениями в /tmp
from watchdog.observers import Observer
from watchdog.events import FileSystemEventHandler
class TmpWatcher(FileSystemEventHandler):
def on_created(self, event):
print(f"[!] Создан файл в /tmp: {event.src_path}")
🧠 4. Спрашиваем у ИИ — что это значит
import openai
def explain_event(event_text):
response = openai.ChatCompletion.create(
model="gpt-4",
messages=[{"role": "user", "content": f"Объясни, может ли это быть вредоносным:\n{event_text}"}],
temperature=0.2,
)
return response['choices'][0]['message']['content']
🎨 5. Красивый вывод через rich
from rich.console import Console
console = Console()
def report(process):
text = f"Подозрительный процесс: {process['name']} — {process['exe']}"
console.print(f"[bold red]⚠️ {text}[/bold red]")
explanation = explain_event(text)
console.print(f"[green]→ {explanation}[/green]")
🏁 Как собрать всё вместе:
Запускаем scan_processes() в цикле каждые 10 секунд
Параллельно запускаем Observer на /tmp
Все события — в очередь, LLM отвечает, rich выводит
📦 Расширения для продвинутых:
• Telegram-уведомления при критических событиях
• Локальный режим с LLM через Ollama или LM Studio
• Export в JSON/CSV/Prometheus
💡 Итог: у тебя будет терминальное приложение, которое в реальном времени отслеживает поведение Linux-системы и объясняет его как человек, но при этом всё на Python.
@linuxkalii
#python #linux #sysadmin #ai #infosec #terminaltools #weekendbuild
👍39❤22🔥18👎2
🕵️ Представлен Tails 6.17 — теперь ещё более компактный дистрибутив для анонимного пользования.
Обновлённая версия ОС для приватного серфинга стала легче благодаря оптимизации образа — разработчики удалили дублирующий микрокод процессора, сохранив при этом весь функционал. Как и прежде, дистрибутив автоматически направляет весь трафик через Tor и блокирует любые прямые соединения.
В новой версии также можно подсмотреть введённый пароль на экране блокировки, что удобно при использовании сложных комбинаций. Обновлённые Tor Browser 14.5.4 и uBlock Origin 1.62.0 обеспечивают безопасный и чистый от рекламы веб-сёрфинг.
🔗 Ссылка - *клик*
@linuxkalii
Обновлённая версия ОС для приватного серфинга стала легче благодаря оптимизации образа — разработчики удалили дублирующий микрокод процессора, сохранив при этом весь функционал. Как и прежде, дистрибутив автоматически направляет весь трафик через Tor и блокирует любые прямые соединения.
В новой версии также можно подсмотреть введённый пароль на экране блокировки, что удобно при использовании сложных комбинаций. Обновлённые Tor Browser 14.5.4 и uBlock Origin 1.62.0 обеспечивают безопасный и чистый от рекламы веб-сёрфинг.
🔗 Ссылка - *клик*
@linuxkalii
👍32❤14🔥7
This media is not supported in your browser
VIEW IN TELEGRAM
🧠 Команда Linux, о которой знают не все: `ss -npi`
Когда
А зря:
📌 Пример:
🔍 Что делает:
-
-
-
🛠 Используйте, чтобы:
- выследить висящие соединения с высоким RTT
- диагностировать сетевые затыки без tcpdump
- увидеть, почему соединение «живое», но не работает
🔥 Бонус:
Позволяет фильтровать по порту и видеть TCP-интерналы только для HTTPS.
📎 Альтернатива тяжелым снифферам вроде Wireshark и lsof в продакшене.
💡 Используйте
Когда
netstat устарел, многие перешли на ss — но используют его поверхностно. А зря:
ss может буквально показать какой процесс держит сокет, какие TCP-флаги установлены, и какие пакеты ждут в очереди.📌 Пример:
ss -npi state established
🔍 Что делает:
-
-n — не резолвит имена хостов (быстрее)-
-p — показывает, какой процесс использует соединение-
-i — выводит внутреннюю информацию о сокете: RTT, TCP-флаги, буферы и пр.🛠 Используйте, чтобы:
- выследить висящие соединения с высоким RTT
- диагностировать сетевые затыки без tcpdump
- увидеть, почему соединение «живое», но не работает
🔥 Бонус:
ss -nti '( dport = :443 )'
Позволяет фильтровать по порту и видеть TCP-интерналы только для HTTPS.
📎 Альтернатива тяжелым снифферам вроде Wireshark и lsof в продакшене.
💡 Используйте
ss -npi для быстрой диагностики проблем на уровне TCP — без лишнего шума.🔥32👍18❤11😁2
🧠 Linux: заморозка процесса без SIGSTOP
Обычно чтобы «заморозить» процесс, мы шлём ему
🔥 Процесс «замораживается» полностью: 0% CPU, не отвечает на запросы, но не убивается, не выгружается из памяти и можно *в любой момент разморозить*:
📦 Используется в Kubernetes, Docker и systemd — а теперь можешь и ты 😉
@linuxkalii
Обычно чтобы «заморозить» процесс, мы шлём ему
SIGSTOP, но есть способ *поставить его на паузу без сигнала* и без потери контроля:
# Приостановить выполнение команды, удерживая её в foreground через SIGTSTP
sleep 9999
^Z # (Ctrl+Z) — ставит в фон и останавливает
# А теперь хитрость: "fg" + "Ctrl+Z" снова — это цикл управления процессом вручную
# Но можно сделать изолированную паузу через cgroups:
cgcreate -g freezer:/pause
cgclassify -g freezer:/pause <PID>
echo FROZEN > /sys/fs/cgroup/freezer/pause/freezer.state
🔥 Процесс «замораживается» полностью: 0% CPU, не отвечает на запросы, но не убивается, не выгружается из памяти и можно *в любой момент разморозить*:
echo THAWED > /sys/fs/cgroup/freezer/pause/freezer.state
📦 Используется в Kubernetes, Docker и systemd — а теперь можешь и ты 😉
@linuxkalii
👍22❤11🔥5😁1
Что делает:
- Подключает текущее устройство к вашему Tailnet (частной сети Tailscale)
- Сразу разворачивает локальный SOCKS5-прокси на
localhost:1080 Для чего это нужно:
- Безопасный доступ к внутренним сервисам и приложениям в вашей Tailnet
- Быстрая настройка прокси без VPN-клиентов и сложных конфигов
- Удобно для разработчиков, red team-инженеров и тестирования сетевой безопасности
Как это работает:
- Один исполняемый файл без внешних зависимостей
- Использует встроенный клиент
tsnet для подключения к Tailnet - Аутентификация через токен (можно встроить в бинарник или передать при запуске)
- После закрытия процесса все следы на диске автоматически удаляются
Репозиторий: https://github.com/Yeeb1/SockTail
@linuxkalii
Please open Telegram to view this post
VIEW IN TELEGRAM
❤17👍9🔥3
⚙️ Продвинутый трюк в Linux: извлечение пароля из закрытого `sudo`
Один раз ввёл
А теперь жёстче:
🔍 А что делает `-n`?
Флаг
👾 Бонус: хочешь узнать, сколько осталось до истечения `sudo`-сессии?
⏳ Кеш по умолчанию живёт 15 минут. Зная это — ты можешь грамотно автоматизировать действия с правами суперпользователя без риска застрять на вводе пароля.
📌 @linuxkalii
Один раз ввёл
sudo — и хочешь достать пароль из кеша? Не получится. Но можно сделать почти невозможное — выполнить команду от имени `sudo`, не вводя пароль заново, *используя сокет `sudo`*:
sudo -v # обновим кеш
SUDO_ASKPASS=/bin/false sudo -A ls 2>/dev/null # 💡 обманем sudo, не вводя пароль
А теперь жёстче:
sudo -n true || echo "🔐 Sudo истек, пароль нужен"
🔍 А что делает `-n`?
Флаг
-n означает "non-interactive" — sudo не будет спрашивать пароль. Вместо этого просто выйдет с ошибкой. Это удобно в CI/CD, cron-скриптах и других автоматизациях.👾 Бонус: хочешь узнать, сколько осталось до истечения `sudo`-сессии?
sudo -n true && echo "Осталось $(($(stat -c %Y ~/.sudo_as_admin_successful)+15*60 - $(date +%s))) секунд"
⏳ Кеш по умолчанию живёт 15 минут. Зная это — ты можешь грамотно автоматизировать действия с правами суперпользователя без риска застрять на вводе пароля.
📌 @linuxkalii
🤯30❤14🔥14🥰3👍1
🛠️ Подборка для тех, кто копает глубже — Awesome Blackhat Tools
Репозиторий с сотнями инструментов, которые используют исследователи, реверс-инженеры, пентестеры и хакеры по всему миру.
🔍 Внутри:
• Снифферы, эксплойты, генераторы payload’ов
• Инструменты для социальной инженерии, сетевого анализа и обхода защиты
• Автоматизация атак, OSINT, и даже машинное обучение для offensive-задач
⚠️ Только в образовательных целях.
🔗 https://github.com/UCYBERS/Awesome-Blackhat-Tools
Изучай, чтобы защищать — или хотя бы понимать, с чем имеешь дело.
Репозиторий с сотнями инструментов, которые используют исследователи, реверс-инженеры, пентестеры и хакеры по всему миру.
🔍 Внутри:
• Снифферы, эксплойты, генераторы payload’ов
• Инструменты для социальной инженерии, сетевого анализа и обхода защиты
• Автоматизация атак, OSINT, и даже машинное обучение для offensive-задач
⚠️ Только в образовательных целях.
🔗 https://github.com/UCYBERS/Awesome-Blackhat-Tools
Изучай, чтобы защищать — или хотя бы понимать, с чем имеешь дело.
❤18👍10🔥7
This media is not supported in your browser
VIEW IN TELEGRAM
⚡️ Полезная команда: `fuser` — кто занял порт или файл?
Хочешь узнать, какой процесс держит порт или блокирует файл? Не нужен
→ покажет PID, кто занял порт 8000.
Проверка файла:
Убить все процессы, использующие
🚀 Быстро. Просто. Работает там, где
Хочешь узнать, какой процесс держит порт или блокирует файл? Не нужен
lsof, просто:
fuser -vn tcp 8000
→ покажет PID, кто занял порт 8000.
Проверка файла:
fuser /var/log/syslog
Убить все процессы, использующие
/mnt/usb:
fuser -km /mnt/usb
🚀 Быстро. Просто. Работает там, где
lsof молчит.❤43👍15🔥5🥰1
⚡️ Почему лучшие разработчики всегда на шаг впереди?
Потому что они знают, где брать настоящие инсайд!
Оставь “программирование в вакууме” в прошлом, выбирай свой стек — подпишись и погружайся в поток идей, лайфхаков и знаний, которые не найдёшь в открытом доступе.
ИИ: t.iss.one/ai_machinelearning_big_data
Python: t.iss.one/pythonl
Linux: t.iss.one/linuxacademiya
Мл собес t.iss.one/machinelearning_interview
C++ t.iss.one/cpluspluc
Docker: t.iss.one/DevopsDocker
Хакинг: t.iss.one/linux_read
МЛ: t.iss.one/machinelearning_ru
Devops: t.iss.one/DevOPSitsec
Data Science: t.iss.one/data_analysis_ml
Javascript: t.iss.one/javascriptv
C#: t.iss.one/csharp_ci
Java: t.iss.one/java_library
Базы данных: t.iss.one/sqlhub
Python собеседования: t.iss.one/python_job_interview
Мобильная разработка: t.iss.one/mobdevelop
Golang: t.iss.one/Golang_google
React: t.iss.one/react_tg
Rust: t.iss.one/rust_code
ИИ: t.iss.one/vistehno
PHP: t.iss.one/phpshka
Android: t.iss.one/android_its
Frontend: t.iss.one/front
Big Data: t.iss.one/bigdatai
МАТЕМАТИКА: t.iss.one/data_math
Kubernets: t.iss.one/kubernetc
Разработка игр: https://t.iss.one/gamedev
Физика: t.iss.one/fizmat
SQL: t.iss.one/databases_tg
Папка Go разработчика: t.iss.one/addlist/MUtJEeJSxeY2YTFi
Папка Python разработчика: t.iss.one/addlist/eEPya-HF6mkxMGIy
Папка ML: https://t.iss.one/addlist/2Ls-snqEeytkMDgy
Папка FRONTEND: https://t.iss.one/addlist/mzMMG3RPZhY2M2Iy
🎓954ГБ ОПЕНСОРС КУРСОВ: @courses
😆ИТ-Мемы: t.iss.one/memes_prog
🇬🇧Английский: t.iss.one/english_forprogrammers
🧠ИИ: t.iss.one/vistehno
🖥 Chatgpt для кода в тг: @Chatgpturbobot
📕Ит-книги: https://t.iss.one/addlist/BkskQciUW_FhNjEy
💼ИТ-вакансии t.iss.one/addlist/_zyy_jQ_QUsyM2Vi
Подпишись, чтобы всегда знать, куда двигаться дальше!
Потому что они знают, где брать настоящие инсайд!
Оставь “программирование в вакууме” в прошлом, выбирай свой стек — подпишись и погружайся в поток идей, лайфхаков и знаний, которые не найдёшь в открытом доступе.
ИИ: t.iss.one/ai_machinelearning_big_data
Python: t.iss.one/pythonl
Linux: t.iss.one/linuxacademiya
Мл собес t.iss.one/machinelearning_interview
C++ t.iss.one/cpluspluc
Docker: t.iss.one/DevopsDocker
Хакинг: t.iss.one/linux_read
МЛ: t.iss.one/machinelearning_ru
Devops: t.iss.one/DevOPSitsec
Data Science: t.iss.one/data_analysis_ml
Javascript: t.iss.one/javascriptv
C#: t.iss.one/csharp_ci
Java: t.iss.one/java_library
Базы данных: t.iss.one/sqlhub
Python собеседования: t.iss.one/python_job_interview
Мобильная разработка: t.iss.one/mobdevelop
Golang: t.iss.one/Golang_google
React: t.iss.one/react_tg
Rust: t.iss.one/rust_code
ИИ: t.iss.one/vistehno
PHP: t.iss.one/phpshka
Android: t.iss.one/android_its
Frontend: t.iss.one/front
Big Data: t.iss.one/bigdatai
МАТЕМАТИКА: t.iss.one/data_math
Kubernets: t.iss.one/kubernetc
Разработка игр: https://t.iss.one/gamedev
Физика: t.iss.one/fizmat
SQL: t.iss.one/databases_tg
Папка Go разработчика: t.iss.one/addlist/MUtJEeJSxeY2YTFi
Папка Python разработчика: t.iss.one/addlist/eEPya-HF6mkxMGIy
Папка ML: https://t.iss.one/addlist/2Ls-snqEeytkMDgy
Папка FRONTEND: https://t.iss.one/addlist/mzMMG3RPZhY2M2Iy
🎓954ГБ ОПЕНСОРС КУРСОВ: @courses
😆ИТ-Мемы: t.iss.one/memes_prog
🇬🇧Английский: t.iss.one/english_forprogrammers
🧠ИИ: t.iss.one/vistehno
📕Ит-книги: https://t.iss.one/addlist/BkskQciUW_FhNjEy
💼ИТ-вакансии t.iss.one/addlist/_zyy_jQ_QUsyM2Vi
Подпишись, чтобы всегда знать, куда двигаться дальше!
Please open Telegram to view this post
VIEW IN TELEGRAM
❤11👍5🔥3👎2🥰1
🕸️ Chat4Data — расширение, которое превращает веб-скрапинг в диалог
Вместо кода и настроек — просто говоришь, что хочешь, и AI собирает структурированные данные с сайта.
Что умеет Chat4Data:
🔹 Собирает данные “на слух”
Опиши нужную таблицу или список — AI сам найдёт, распарсит и вставит в таблицу. Не нравится результат? Переспроси. Без кода, без боли.
🔹 Обходит все страницы сам
Автоматически кликает “Следующая”, грузит подгружаемые списки и собирает всё — без твоего участия.
🔹 Запускается за 3 клика
AI сам определяет, какие данные ценные, предлагает их — тебе остаётся только подтвердить. Быстро, как в Telegram-боте.
🔹 Не тратит токены на скрапинг
Анализ страницы — на AI, но сами данные забираются без токенов. В бета-версии дают 1 миллион токенов на другие задачи.
🔹 Скоро: скрапинг подстраниц, интерактив, интеграции...
📎 https://chat4data.ai
#ai #scraping #automation #nocode #tools
Вместо кода и настроек — просто говоришь, что хочешь, и AI собирает структурированные данные с сайта.
Что умеет Chat4Data:
🔹 Собирает данные “на слух”
Опиши нужную таблицу или список — AI сам найдёт, распарсит и вставит в таблицу. Не нравится результат? Переспроси. Без кода, без боли.
🔹 Обходит все страницы сам
Автоматически кликает “Следующая”, грузит подгружаемые списки и собирает всё — без твоего участия.
🔹 Запускается за 3 клика
AI сам определяет, какие данные ценные, предлагает их — тебе остаётся только подтвердить. Быстро, как в Telegram-боте.
🔹 Не тратит токены на скрапинг
Анализ страницы — на AI, но сами данные забираются без токенов. В бета-версии дают 1 миллион токенов на другие задачи.
🔹 Скоро: скрапинг подстраниц, интерактив, интеграции...
📎 https://chat4data.ai
#ai #scraping #automation #nocode #tools
❤10🔥9👍4👎2
This media is not supported in your browser
VIEW IN TELEGRAM
🕵️♂️ Отслеживаем скрытые DNS-запросы — даже внутри контейнеров
Иногда процессы в системе делают DNS-запросы напрямую через
Особенно это актуально в контейнерах, sandbox-средах и CI/CD, где обычные инструменты вроде
Решение — использовать
Вот как это сделать:
🕵️♂️ Auditd: DNS под колпаком
Что даёт:
– Показывает PID, пользователя и бинарник, сделавший запрос
– Работает в любых namespace'ах и chroot'ах
– Независим от прокси, фаерволов и прочих слоёв
– Можно собирать статистику, логировать, триггерить алерты
Незаменимая штука, если вы ищете, кто именно "шепчется наружу", особенно в защищённых или изолированных окружениях.
https://www.youtube.com/shorts/Bl2CgMzWvvU
📌 @linuxkalii
Иногда процессы в системе делают DNS-запросы напрямую через
connect() — в обход resolv.conf, без dig, без nslookup. Особенно это актуально в контейнерах, sandbox-средах и CI/CD, где обычные инструменты вроде
tcpdump могут не помочь.Решение — использовать
auditd, чтобы отслеживать системные вызовы на уровне ядра. Вот как это сделать:
# Ловим исходящие соединения к порту 53 (DNS)
auditctl -a always,exit -F arch=b64 -S connect -F dir=out -F a2=0x35000000
🕵️♂️ Auditd: DNS под колпаком
Что даёт:
– Показывает PID, пользователя и бинарник, сделавший запрос
– Работает в любых namespace'ах и chroot'ах
– Независим от прокси, фаерволов и прочих слоёв
– Можно собирать статистику, логировать, триггерить алерты
Незаменимая штука, если вы ищете, кто именно "шепчется наружу", особенно в защищённых или изолированных окружениях.
https://www.youtube.com/shorts/Bl2CgMzWvvU
📌 @linuxkalii
👍20❤5🔥3😁2
🐚 Bash 5.3 — большое обновление любимой оболочки
Спустя 3 года после релиза Bash 5.2 представлена новая версия — GNU Bash 5.3, и в ней много интересного:
🔧 Новая командная подстановка
Теперь можно выполнить команду *внутри текущей оболочки*, сохранив результат в переменную
🧠 Поддержка стандарта C23
Код обновлён под новый стандарт C23. Это означает отказ от старых K&R-компиляторов.
🔍 Поиск без учёта регистра в Readline 8.3
Теперь можно включить опцию set completion-ignore-case on для автозаполнения и поиска в истории.
📁 GLOBSORT: управление сортировкой автодополнения
Новая переменная окружения GLOBSORT позволяет настраивать сортировку файлов при завершении (по имени, размеру, дате и др).
📜 Новые опции:
🐛 Исправления и улучшения
- Улучшены сообщения об ошибках и подсказки.
- Поддержка нескольких сопроцессов (MULTIPLE_COPROCS).
- Улучшена обработка сигналов, trap, wait, bind и др.
- Расширенные POSIX-совместимые возможности.
📥 Как установить
Скачать можно с официального gnu.org или в репозиториях большинства дистрибутивов.
🔥 Это крупнейшее обновление Bash за последние годы — особенно для тех, кто пишет сложные shell-скрипты.
📌 Подробнее
📌 @linuxkalii
Спустя 3 года после релиза Bash 5.2 представлена новая версия — GNU Bash 5.3, и в ней много интересного:
🔧 Новая командная подстановка
Теперь можно выполнить команду *внутри текущей оболочки*, сохранив результат в переменную
REPLY:
${| echo hello; } # REPLY=hello
🧠 Поддержка стандарта C23
Код обновлён под новый стандарт C23. Это означает отказ от старых K&R-компиляторов.
🔍 Поиск без учёта регистра в Readline 8.3
Теперь можно включить опцию set completion-ignore-case on для автозаполнения и поиска в истории.
📁 GLOBSORT: управление сортировкой автодополнения
Новая переменная окружения GLOBSORT позволяет настраивать сортировку файлов при завершении (по имени, размеру, дате и др).
📜 Новые опции:
read -E — подключение Readline при вводе.compgen -V myvar — сохранить список завершений в переменную.source -p ./scripts — задать путь для поиска скриптов.🐛 Исправления и улучшения
- Улучшены сообщения об ошибках и подсказки.
- Поддержка нескольких сопроцессов (MULTIPLE_COPROCS).
- Улучшена обработка сигналов, trap, wait, bind и др.
- Расширенные POSIX-совместимые возможности.
📥 Как установить
Скачать можно с официального gnu.org или в репозиториях большинства дистрибутивов.
🔥 Это крупнейшее обновление Bash за последние годы — особенно для тех, кто пишет сложные shell-скрипты.
📌 Подробнее
📌 @linuxkalii
🔥15❤13👍8🎉2👎1
This media is not supported in your browser
VIEW IN TELEGRAM
Как узнать, кто последний редактировал любой файл в Linux — даже если это не git
Оказывается, можно выяснить, какой пользователь последний модифицировал файл, даже если это обычная файловая система и никакой системы контроля версий нет.
Секрет — в
Вот как включить отслеживание изменений для конкретного файла:
🧠 Кто редактировал файл — точно и с логами
📌 Работает с любыми файлами: конфиги, скрипты, ключи
📌 Видно: кто, когда, чем, с каким PID
📌 Отлично для отладки, расследований, CI/CD и безопасных систем
Идеальный инструмент, если "что-то сломалось, но никто ничего не трогал.
Видео
@linuxkalii
Оказывается, можно выяснить, какой пользователь последний модифицировал файл, даже если это обычная файловая система и никакой системы контроля версий нет.
Секрет — в
auditd, который отслеживает события уровня ядра.Вот как включить отслеживание изменений для конкретного файла:
# Включаем слежение за изменениями файла
auditctl -w /etc/nginx/nginx.conf -p w -k nginx_watch
# Потом можно посмотреть, кто и когда его правил:
ausearch -k nginx_watch
🧠 Кто редактировал файл — точно и с логами
📌 Работает с любыми файлами: конфиги, скрипты, ключи
📌 Видно: кто, когда, чем, с каким PID
📌 Отлично для отладки, расследований, CI/CD и безопасных систем
Идеальный инструмент, если "что-то сломалось, но никто ничего не трогал.
Видео
@linuxkalii
❤30👍29🔥10😁2😱1
⚡️ Cовет дня Linux: быстрое повторное использование аргумента
В терминале Bash есть удобный трюк:
Пример:
🔁 !$ → подставит new_folder, не нужно печатать дважды.
Полезно, если:
— работаешь с длинными путями
— устанавливаешь и сразу запускаешь что-то
— копируешь, а потом переходишь в каталог
@linuxkalii
В терминале Bash есть удобный трюк:
!$ вставляет последний аргумент предыдущей команды.Пример:
mkdir new_folder
cd !$
🔁 !$ → подставит new_folder, не нужно печатать дважды.
Полезно, если:
— работаешь с длинными путями
— устанавливаешь и сразу запускаешь что-то
— копируешь, а потом переходишь в каталог
@linuxkalii
👍36🔥16❤12
🐫 Вышел новый релиз 5.42 легендарного языка Perl с экспериментальными фичами. После года разработки вышел очередной ежегодный релиз Perl, сохраняющий баланс между современными возможностями и обратной совместимостью. Главные новинки — операторы
В новой версии команда разработчиков почти отказалась от удаления устаревшего синтаксиса, вместо этого добавив явное отключение таких возможностей. А также появился возврат умного сопоставления (
🔗 Ссылка - *клик*
@linuxkalii
all/any для работы со списками и улучшенная система методов классов с автоматическими writer'ами. В новой версии команда разработчиков почти отказалась от удаления устаревшего синтаксиса, вместо этого добавив явное отключение таких возможностей. А также появился возврат умного сопоставления (
~~) и switch, которые ранее считались deprecated. 🔗 Ссылка - *клик*
@linuxkalii
🔥15❤9👍7👎1
🔓 ИИ-бот для найма в McDonald’s взломан — админы использовали пароль "123456"
Хакеры получили доступ к рекрутинговому боту Olivia от Paradox AI, который используется в системе McHire для проведения первичных интервью. Причина? Тривиальный пароль администратора —
🧾 В результате утекли данные 64 миллионов соискателей: имена, email, телефоны и даже ответы на собеседования.
🤖 Olivia — это AI-рекрутер, который общается с кандидатами и помогает автоматизировать найм в McDonald’s. Теперь же он стал примером, как не надо защищать корпоративные ИИ-системы.
📉 Урок: неважно, насколько умён ваш ИИ — если безопасность на уровне "123456", долго он не проживёт.
К — кибербезопасность. И к здравому смыслу.
@linuxkalii
Хакеры получили доступ к рекрутинговому боту Olivia от Paradox AI, который используется в системе McHire для проведения первичных интервью. Причина? Тривиальный пароль администратора —
123456.🧾 В результате утекли данные 64 миллионов соискателей: имена, email, телефоны и даже ответы на собеседования.
🤖 Olivia — это AI-рекрутер, который общается с кандидатами и помогает автоматизировать найм в McDonald’s. Теперь же он стал примером, как не надо защищать корпоративные ИИ-системы.
📉 Урок: неважно, насколько умён ваш ИИ — если безопасность на уровне "123456", долго он не проживёт.
К — кибербезопасность. И к здравому смыслу.
@linuxkalii
🔥35😁26❤9👍7🥰1
🦅 MongoDB представила Kingfisher — инструмент для оценки производительности AI-запросов к базам данных
Kingfisher — это open-source фреймворк, который помогает разработчикам анализировать, как AI-модели взаимодействуют с MongoDB или другими источниками данных.
🔍 Что умеет:
- Генерировать и запускать естественно-языковые запросы к базе через LLM
- Сравнивать разные подходы к генерации и верификации запросов
- Измерять точность, скорость и релевантность выдачи
- Поддерживает разные схемы данных и шаблоны диалогов
📦 Используется:
- Для оценки качества AI-агентов, которые обращаются к базам
- Для настройки моделей, работающих с реальными данными
🛠 Под капотом:
- Поддержка собственного DSL
- Интеграции с OpenAI, Azure, Anthropic
- Расширяемая архитектура: можно подключать свои модели и пайплайны
🔗 Репозиторий: https://github.com/mongodb/kingfisher
Если вы строите LLM-агентов, которые работают с базами — Kingfisher сэкономит вам недели на тестах и экспериментах.
@linuxkalii
Kingfisher — это open-source фреймворк, который помогает разработчикам анализировать, как AI-модели взаимодействуют с MongoDB или другими источниками данных.
🔍 Что умеет:
- Генерировать и запускать естественно-языковые запросы к базе через LLM
- Сравнивать разные подходы к генерации и верификации запросов
- Измерять точность, скорость и релевантность выдачи
- Поддерживает разные схемы данных и шаблоны диалогов
📦 Используется:
- Для оценки качества AI-агентов, которые обращаются к базам
- Для настройки моделей, работающих с реальными данными
🛠 Под капотом:
- Поддержка собственного DSL
- Интеграции с OpenAI, Azure, Anthropic
- Расширяемая архитектура: можно подключать свои модели и пайплайны
🔗 Репозиторий: https://github.com/mongodb/kingfisher
Если вы строите LLM-агентов, которые работают с базами — Kingfisher сэкономит вам недели на тестах и экспериментах.
@linuxkalii
❤16🔥8👍6🥰2
⚡️ Шпаргалка по скобкам в Bash — для тех, кто путается между `[]`, `{}`, `$( )` и остальными
На одной картинке — все популярные скобки и окружения в Bash:
Когда и зачем использовать:
- условия и проверки
- подстановки значений
- арифметика
- группировка команд
- модификация переменных
Минимум теории — максимум пользы, чтобы больше не гадать, какие скобки ставить.
@linuxkalii
На одной картинке — все популярные скобки и окружения в Bash:
$(), {}, [], $(( )), ${}, () и [[ ]].Когда и зачем использовать:
- условия и проверки
- подстановки значений
- арифметика
- группировка команд
- модификация переменных
Минимум теории — максимум пользы, чтобы больше не гадать, какие скобки ставить.
@linuxkalii
🔥32👍10❤7
🧠 Продвинутый совет по Linux: динамический контроль лимитов ulimit на лету
Когда запускаешь ресурсоёмкие процессы (например, компиляцию, docker-контейнеры или нагрузочное тестирование), может внезапно ударить лимит
🔧 Вместо перезапуска сессию, можно *временно изменить лимит* прямо из shell-скрипта или командной строки, не трогая глобальные настройки:
Или так — для конкретного процесса:
🎯 А теперь магия — чтобы повысить лимит до системного предела, проверь сначала максимальное значение:
А затем отредактируй:
🛡️ Важно: чтобы всё это сохранялось после перезагрузки — пропиши в /etc/security/limits.conf и /etc/sysctl.conf.
@linuxkalii
Когда запускаешь ресурсоёмкие процессы (например, компиляцию, docker-контейнеры или нагрузочное тестирование), может внезапно ударить лимит
ulimit на число открытых файлов.🔧 Вместо перезапуска сессию, можно *временно изменить лимит* прямо из shell-скрипта или командной строки, не трогая глобальные настройки:
ulimit -n 1048576
Или так — для конкретного процесса:
bash -c 'ulimit -n 1048576; exec your_command'
🎯 А теперь магия — чтобы повысить лимит до системного предела, проверь сначала максимальное значение:
cat /proc/sys/fs/file-max
А затем отредактируй:
sudo sysctl -w fs.file-max=2097152
🛡️ Важно: чтобы всё это сохранялось после перезагрузки — пропиши в /etc/security/limits.conf и /etc/sysctl.conf.
@linuxkalii
👍15❤8🔥5🥰1
🕵️♂️ Собрание Shodan Dorks — must-have для всех, кто занимается кибербезопасностью, ресерчем или просто любит искать уязвимые девайсы в интернете:
Этот репозиторий содержит огромное количество заранее подготовленных запросов (dorks) для — поисковика, который индексирует всё, что подключено к интернету: камеры, роутеры, сервера, SCADA-системы и даже холодильники.
Что есть в коллекции:
- камеры наблюдения с открытым доступом
- панели администрирования IoT-устройств
- Telnet, FTP, RDP, SNMP-интерфейсы
- устройства с дефолтными логинами
- принтеры, VoIP, базы данных и многое другое
🔥 Подойдёт для тестов на проникновение . Но помните: всё в образовательных целях.
👉 Репозиторий: https://github.com/dootss/shodan-dorks
@linuxkalii
Этот репозиторий содержит огромное количество заранее подготовленных запросов (dorks) для — поисковика, который индексирует всё, что подключено к интернету: камеры, роутеры, сервера, SCADA-системы и даже холодильники.
Что есть в коллекции:
- камеры наблюдения с открытым доступом
- панели администрирования IoT-устройств
- Telnet, FTP, RDP, SNMP-интерфейсы
- устройства с дефолтными логинами
- принтеры, VoIP, базы данных и многое другое
🔥 Подойдёт для тестов на проникновение . Но помните: всё в образовательных целях.
👉 Репозиторий: https://github.com/dootss/shodan-dorks
@linuxkalii
❤24👍5🤔1