🔒 Linux: Как защитить файл от rm -rf (Даже от Root)
Вы думаете, что пользователь root может всё? Ошибаетесь. Есть уровень файловой системы, где права rwx (777) не имеют значения. Это атрибуты ext4/xfs.
Если вы хотите защитить критический конфиг (например, /etc/resolv.conf, который вечно перезаписывается NetworkManager-ом) или логи от хакера — используйте Immutable bit.
1. Делаем файл бессмертным:
Теперь попробуйте rm, mv или echo "test" > .... Вы получите: Operation not permitted. Даже под sudo. Даже под root.
2. Как проверить, почему файл не удаляется: Если ls -l показывает, что права есть, а удалить нельзя — смотрите атрибуты:
Видите букву i? Это оно.
3. Как вернуть всё назад:
Где применять: Защита скриптов автозагрузки, критических конфигов и бинарников от изменения вирусами-шифровальщиками.
#linux #security #chattr #filesystem #hacks #root
Вы думаете, что пользователь root может всё? Ошибаетесь. Есть уровень файловой системы, где права rwx (777) не имеют значения. Это атрибуты ext4/xfs.
Если вы хотите защитить критический конфиг (например, /etc/resolv.conf, который вечно перезаписывается NetworkManager-ом) или логи от хакера — используйте Immutable bit.
1. Делаем файл бессмертным:
sudo chattr +i /etc/critical_config.conf
Теперь попробуйте rm, mv или echo "test" > .... Вы получите: Operation not permitted. Даже под sudo. Даже под root.
2. Как проверить, почему файл не удаляется: Если ls -l показывает, что права есть, а удалить нельзя — смотрите атрибуты:
lsattr /etc/critical_config.conf
# Вывод: ----i---------e---- /etc/critical_config.conf
Видите букву i? Это оно.
3. Как вернуть всё назад:
sudo chattr -i /etc/critical_config.conf
Где применять: Защита скриптов автозагрузки, критических конфигов и бинарников от изменения вирусами-шифровальщиками.
#linux #security #chattr #filesystem #hacks #root
🚀 Linux: Хватит ждать netstat. Используй ss
Когда на сервере 10,000 соединений (DDoS или HighLoad), команда netstat -tunlap может зависнуть на минуту, съедая 100% CPU. Почему? Потому что она читает /proc файловой системы для каждого сокета. Это медленно.
В 2025 году используйте ss (Socket Statistics). Она берет данные напрямую из ядра через Netlink API.
Маст-хэв команды:
Общая сводка (идеально для проверки на DDoS):
Покажет мгновенно: "TCP: 50000 established".
Кто слушает порты (аналог netstat):
Киллер-фича: Показать самые "тяжелые" соединения по памяти:
Если вы все еще пишете netstat, вы теряете время.
#linux #network #performance #ss #netstat #troubleshooting
Когда на сервере 10,000 соединений (DDoS или HighLoad), команда netstat -tunlap может зависнуть на минуту, съедая 100% CPU. Почему? Потому что она читает /proc файловой системы для каждого сокета. Это медленно.
В 2025 году используйте ss (Socket Statistics). Она берет данные напрямую из ядра через Netlink API.
Маст-хэв команды:
Общая сводка (идеально для проверки на DDoS):
ss -s
Покажет мгновенно: "TCP: 50000 established".
Кто слушает порты (аналог netstat):
ss -tulpn
Киллер-фича: Показать самые "тяжелые" соединения по памяти:
ss -tm
Если вы все еще пишете netstat, вы теряете время.
#linux #network #performance #ss #netstat #troubleshooting
🧹 PowerShell: Чистим AD от "мертвых" компьютеров
Конец года — лучшее время для инвентаризации. В Active Directory часто копятся записи компьютеров, которые уже год как на свалке. Это дыра в безопасности и мусор в отчетах.
Найдем компьютеры, которые не входили в сеть более 180 дней.
Нюанс: Мы используем свойство LastLogonDate. Оно реплицируется между контроллерами (в отличие от LastLogon), но с задержкой в 14 дней. Для поиска "старья" (180+ дней) эта погрешность неважна.
Скрипт:
Задача: Запустите в режиме "только чтение". Вы удивитесь, сколько у вас в домене машин с Windows 7, которых физически уже не существует.
#windows #activedirectory #powershell #cleanup #security #scripting
Конец года — лучшее время для инвентаризации. В Active Directory часто копятся записи компьютеров, которые уже год как на свалке. Это дыра в безопасности и мусор в отчетах.
Найдем компьютеры, которые не входили в сеть более 180 дней.
Нюанс: Мы используем свойство LastLogonDate. Оно реплицируется между контроллерами (в отличие от LastLogon), но с задержкой в 14 дней. Для поиска "старья" (180+ дней) эта погрешность неважна.
Скрипт:
$DaysInactive = 180
$TimeLimit = (Get-Date).AddDays(-$DaysInactive)
Get-ADComputer -Filter {LastLogonDate -lt $TimeLimit -and Enabled -eq $true} -Properties LastLogonDate, OperatingSystem |
Select-Object Name, LastLogonDate, OperatingSystem |
Sort-Object LastLogonDate |
Format-Table -AutoSize
# Хотите сразу отключить их? Раскомментируйте:
# | Disable-ADAccount -WhatIf
Задача: Запустите в режиме "только чтение". Вы удивитесь, сколько у вас в домене машин с Windows 7, которых физически уже не существует.
#windows #activedirectory #powershell #cleanup #security #scripting
👍3
❄️ Read-Only Friday: Входим в "Зону смерти"
19 декабря — это рубеж. Начиная с сегодняшнего дня и до 12 января мы входим в зону повышенного риска.
Почему нельзя деплоить (даже "маленькие фиксы"):
1. Внимание рассеяно: Половина команды мыслями уже выбирает подарки или планирует отпуск. Вероятность человеческой ошибки (Human Error) возрастает на 200%.
2. Закон подлости: Если баг вылезет, он вылезет 31 декабря в 18:00.
3. Саппорт недоступен: Если ваш апдейт положит базу, вендор Oracle/Microsoft может отвечать на тикет 48 часов.
Манифест на сегодня: ✅ Читаем логи. ✅ Пишем документацию. ✅ Делаем бэкапы (и проверяем их!). ❌ Не обновляем ядра. ❌ Не меняем правила Firewall.
Ваше спокойствие на каникулах куется сегодня. Ничего не трогайте.
#readonlyfriday #codefreeze #adminlife #devops #newyear #safety
19 декабря — это рубеж. Начиная с сегодняшнего дня и до 12 января мы входим в зону повышенного риска.
Почему нельзя деплоить (даже "маленькие фиксы"):
1. Внимание рассеяно: Половина команды мыслями уже выбирает подарки или планирует отпуск. Вероятность человеческой ошибки (Human Error) возрастает на 200%.
2. Закон подлости: Если баг вылезет, он вылезет 31 декабря в 18:00.
3. Саппорт недоступен: Если ваш апдейт положит базу, вендор Oracle/Microsoft может отвечать на тикет 48 часов.
Манифест на сегодня: ✅ Читаем логи. ✅ Пишем документацию. ✅ Делаем бэкапы (и проверяем их!). ❌ Не обновляем ядра. ❌ Не меняем правила Firewall.
Ваше спокойствие на каникулах куется сегодня. Ничего не трогайте.
#readonlyfriday #codefreeze #adminlife #devops #newyear #safety
❤2✍2💯2
🐠 Linux: Превращаем сервер в аквариум
Если вы все сделали правильно (см. Пост 1), то работы у вас мало. Самое время расслабиться и помедитировать, глядя в терминал.
Встречайте asciiquarium. Это анимация аквариума в ASCII-графике. Рыбки плавают, водоросли колышутся, иногда проплывает утка или лебедь.
Установка (для релакса):
Запускаем: asciiquarium Нажимаем F11 (Full Screen). Всё. Вы заняты. Вы "мониторите".
#linux #fun #cli #asciiquarium #friday #relax
Если вы все сделали правильно (см. Пост 1), то работы у вас мало. Самое время расслабиться и помедитировать, глядя в терминал.
Встречайте asciiquarium. Это анимация аквариума в ASCII-графике. Рыбки плавают, водоросли колышутся, иногда проплывает утка или лебедь.
Установка (для релакса):
# Ubuntu/Debian (через Snap проще всего)
sudo snap install asciiquarium
# Или классика (требует perl-curses)
sudo apt install asciiquarium
Запускаем: asciiquarium Нажимаем F11 (Full Screen). Всё. Вы заняты. Вы "мониторите".
#linux #fun #cli #asciiquarium #friday #relax
📝 Git: "Что я вообще делал на этой неделе?"
Пятница — время писать отчеты (Status Report). Но память подводит: кажется, что всю неделю только пили кофе и чинили принтеры. Давайте спросим у Git, чем мы реально занимались.
Алиас "git standup": Покажет список ваших коммитов за последние 7 дней во всех репозиториях текущей папки.
Сделаем красиво (добавьте в .gitconfig):
Теперь просто пишем git standup — и отчет для менеджера готов за 1 секунду.
#git #productivity #alias #cli #devops #reporting
Пятница — время писать отчеты (Status Report). Но память подводит: кажется, что всю неделю только пили кофе и чинили принтеры. Давайте спросим у Git, чем мы реально занимались.
Алиас "git standup": Покажет список ваших коммитов за последние 7 дней во всех репозиториях текущей папки.
git log --all --since='7 days ago' --author="$(git config user.name)" --oneline --no-merges --date=short --pretty=format:"%ad: %s"
Сделаем красиво (добавьте в .gitconfig):
[alias]
standup = !git log --all --since='7 days ago' --author=\"$(git config user.name)\" --oneline --no-merges --date=short --pretty=format:\"%ad: %s\"
Теперь просто пишем git standup — и отчет для менеджера готов за 1 секунду.
#git #productivity #alias #cli #devops #reporting
🎭 Синдром самозванца: Ты не один
Конец года — время подведения итогов. И часто в голову лезет мысль:
"Я ничего не знаю. Вокруг все пишут на Go, деплоят в K8s и тюнят eBPF, а я тут скрипты на Bash ковыряю. Меня скоро разоблачат."
Коллеги, это Синдром самозванца. Им страдают 70% сеньоров.
Факты, которые лечат:
1. IT бесконечно: Никто не знает всего. Тот парень, который крут в Kubernetes, скорее всего, плавает в базах данных.
2. Google — это нормально: Сеньор отличается от джуна не тем, что помнит все флаги tar, а тем, что быстрее находит решение.
3. Ваша ценность — стабильность: Бизнесу плевать на то, какой модный стек вы знаете. Бизнесу важно, чтобы сервер работал. Если вы это обеспечиваете — вы профи.
Выдохните. Вы проделали отличную работу в этом году.
#career #psychology #impostersyndrome #motivation #adminlife #softskills
Конец года — время подведения итогов. И часто в голову лезет мысль:
"Я ничего не знаю. Вокруг все пишут на Go, деплоят в K8s и тюнят eBPF, а я тут скрипты на Bash ковыряю. Меня скоро разоблачат."
Коллеги, это Синдром самозванца. Им страдают 70% сеньоров.
Факты, которые лечат:
1. IT бесконечно: Никто не знает всего. Тот парень, который крут в Kubernetes, скорее всего, плавает в базах данных.
2. Google — это нормально: Сеньор отличается от джуна не тем, что помнит все флаги tar, а тем, что быстрее находит решение.
3. Ваша ценность — стабильность: Бизнесу плевать на то, какой модный стек вы знаете. Бизнесу важно, чтобы сервер работал. Если вы это обеспечиваете — вы профи.
Выдохните. Вы проделали отличную работу в этом году.
#career #psychology #impostersyndrome #motivation #adminlife #softskills
❤5👍1
🗺 NextTrace: Трассировка, на которую приятно смотреть
Мы привыкли к traceroute или mtr. Это сухие строки с IP-адресами и задержками. Но в 2025 году мы хотим видеть, как именно пакет летит из Москвы в Амстердам, а оттуда в Нью-Йорк.
Встречайте NextTrace. Это traceroute нового поколения на Go.
Что он делает:
Геолокация: Сразу показывает страну, город и провайдера (AS) для каждого хопа.
Визуализация: Умеет рисовать маршрут прямо на ASCII-карте в терминале или генерировать ссылку на 3D-карту в браузере.
Параллельность: Работает быстрее классических утилит.
Запуск:
Вы увидите, как ваши пакеты пересекают океан. Залипательное зрелище для субботнего вечера.
#network #tools #nexttrace #visualization #cli #routing
Мы привыкли к traceroute или mtr. Это сухие строки с IP-адресами и задержками. Но в 2025 году мы хотим видеть, как именно пакет летит из Москвы в Амстердам, а оттуда в Нью-Йорк.
Встречайте NextTrace. Это traceroute нового поколения на Go.
Что он делает:
Геолокация: Сразу показывает страну, город и провайдера (AS) для каждого хопа.
Визуализация: Умеет рисовать маршрут прямо на ASCII-карте в терминале или генерировать ссылку на 3D-карту в браузере.
Параллельность: Работает быстрее классических утилит.
Запуск:
# Установка одной строкой (Linux/MacOS)
curl nxtrace.org/nt | bash
# Запуск с картой
nexttrace --map google.com
Вы увидите, как ваши пакеты пересекают океан. Залипательное зрелище для субботнего вечера.
#network #tools #nexttrace #visualization #cli #routing
👍2
🤯 Load Average: Почему 1.0 — это не всегда 100% CPU?
Мы видим в htop параметр Load Average: 4.0 (на 4 ядрах). Новички думают: "Ага, процессор загружен на 100%!". Сеньоры знают: "Не факт. Возможно, это диск умирает".
В чем подвох: В Linux в расчет Load Average (LA) попадают процессы в двух состояниях:
R (Running/Runnable): Реально считают на CPU или стоят в очереди к нему.
D (Uninterruptible Sleep): Ждут ввода-вывода (Disk I/O, Network NFS).
Аналогия с кассой:
Состояние R: Очередь людей к кассе. Кассир (CPU) работает на износ.
Состояние 😧 Кассир свободен, но покупатель ушел взвешивать бананы и не возвращается. Очередь стоит и ждет его. CPU простаивает (iowait), но LA растет!
Как отличить? Смотрите в vmstat 1.
Колонка r (run): Высокая? Проблема в CPU (код).
Колонка b (blocked): Высокая? Проблема в Диске/IO.
Не меняйте процессор, если у вас тормозит жесткий диск.
#linux #kernel #loadaverage #performance #theory #interview
Мы видим в htop параметр Load Average: 4.0 (на 4 ядрах). Новички думают: "Ага, процессор загружен на 100%!". Сеньоры знают: "Не факт. Возможно, это диск умирает".
В чем подвох: В Linux в расчет Load Average (LA) попадают процессы в двух состояниях:
R (Running/Runnable): Реально считают на CPU или стоят в очереди к нему.
D (Uninterruptible Sleep): Ждут ввода-вывода (Disk I/O, Network NFS).
Аналогия с кассой:
Состояние R: Очередь людей к кассе. Кассир (CPU) работает на износ.
Состояние 😧 Кассир свободен, но покупатель ушел взвешивать бананы и не возвращается. Очередь стоит и ждет его. CPU простаивает (iowait), но LA растет!
Как отличить? Смотрите в vmstat 1.
Колонка r (run): Высокая? Проблема в CPU (код).
Колонка b (blocked): Высокая? Проблема в Диске/IO.
Не меняйте процессор, если у вас тормозит жесткий диск.
#linux #kernel #loadaverage #performance #theory #interview
🐻 Uptime Kuma: Твой личный Status Page
У тебя дома крутится Home Assistant, Plex, NAS и VPN. Как узнать, что VPN упал, пока ты в кафе? Zabbix для дома — это оверхед. Поставь Uptime Kuma.
Это невероятно красивый и простой инструмент для мониторинга, который выглядит как профессиональные статус-страницы (StatusPage.io).
Что умеет: ✅ Пинговать HTTP(s), TCP, Ping, DNS. ✅ Проверять срок действия SSL-сертификатов (напомнит заранее!). ✅ Слать уведомления в Telegram, Discord, Slack. ✅ Рисовать красивые графики аптайма ("сердечный ритм").
Запуск в Docker (одной командой):
Заходи на http://localhost:3001, настрой за 5 минут и чувствуй себя спокойным.
#homelab #monitoring #uptimekuma #docker #selfhosted #tools
У тебя дома крутится Home Assistant, Plex, NAS и VPN. Как узнать, что VPN упал, пока ты в кафе? Zabbix для дома — это оверхед. Поставь Uptime Kuma.
Это невероятно красивый и простой инструмент для мониторинга, который выглядит как профессиональные статус-страницы (StatusPage.io).
Что умеет: ✅ Пинговать HTTP(s), TCP, Ping, DNS. ✅ Проверять срок действия SSL-сертификатов (напомнит заранее!). ✅ Слать уведомления в Telegram, Discord, Slack. ✅ Рисовать красивые графики аптайма ("сердечный ритм").
Запуск в Docker (одной командой):
docker run -d --restart=always -p 3001:3001 -v uptime-kuma:/app/data --name uptime-kuma louislam/uptime-kuma:1
Заходи на http://localhost:3001, настрой за 5 минут и чувствуй себя спокойным.
#homelab #monitoring #uptimekuma #docker #selfhosted #tools
🐊 Croc: Передача файлов сквозь NAT и Firewalls
Ситуация: Нужно перекинуть файл с ноутбука на домашний сервер (или другу).
* scp? Нужен белый IP и SSH-доступ.
* Облако? Долго, и файл приватный.
* USB-флешка? Мы в 2025 году.
Используйте croc. Это утилита на Go, которая создает прямой зашифрованный туннель (P2P) между двумя компьютерами через Relay-сервер. Пробивает любой NAT.
Как это работает:
На отправителе:
На получателе (где угодно в мире):
✅ Работает быстрее облака (использует всю ширину канала).
✅ End-to-End шифрование (PAKE).
✅ Возобновление прерванной закачки.
Поставьте один раз, и вы забудете про WeTransfer и мучения с FTP.
#tools #croc #filetransfer #p2p #security #musthave
Ситуация: Нужно перекинуть файл с ноутбука на домашний сервер (или другу).
* scp? Нужен белый IP и SSH-доступ.
* Облако? Долго, и файл приватный.
* USB-флешка? Мы в 2025 году.
Используйте croc. Это утилита на Go, которая создает прямой зашифрованный туннель (P2P) между двумя компьютерами через Relay-сервер. Пробивает любой NAT.
Как это работает:
На отправителе:
croc send secret-file.zip
# Вывод: Code is: 1234-abcd-xyz
На получателе (где угодно в мире):
croc 1234-abcd-xyz
✅ Работает быстрее облака (использует всю ширину канала).
✅ End-to-End шифрование (PAKE).
✅ Возобновление прерванной закачки.
Поставьте один раз, и вы забудете про WeTransfer и мучения с FTP.
#tools #croc #filetransfer #p2p #security #musthave
👍2
🛡 Tmux: Искусство "Бессмертной сессии"
Вы запустили долгий скрипт (обновление базы, компиляция) по SSH. Мигнул интернет. VPN отвалился. Итог: SSH-сессия разорвана, скрипт убит, данные в базе повреждены.
Архитектор никогда не работает в "голом" SSH. Он работает в tmux (Terminal Multiplexer).
Суть: tmux запускает виртуальный терминал на сервере, который не зависит от вашего подключения.
Шпаргалка за 30 секунд:
1. Запуск: tmux (вы внутри).
2. Запускаем скрипт: ./long-script.sh.
3. Отключаемся (Detach): Нажимаем Ctrl+B, отпускаем, жмем D.
Вы вышли в обычную консоль. Можно закрыть ноутбук, уйти домой.
Возвращаемся (Attach):
Магия! Скрипт всё еще бежит, курсор там же, где вы его оставили.
Сделайте привычкой: зашли на сервер — сразу набрали tmux. Это ваша страховка от разрывов связи.
#linux #tmux #ssh #productivity #skill #terminal
Вы запустили долгий скрипт (обновление базы, компиляция) по SSH. Мигнул интернет. VPN отвалился. Итог: SSH-сессия разорвана, скрипт убит, данные в базе повреждены.
Архитектор никогда не работает в "голом" SSH. Он работает в tmux (Terminal Multiplexer).
Суть: tmux запускает виртуальный терминал на сервере, который не зависит от вашего подключения.
Шпаргалка за 30 секунд:
1. Запуск: tmux (вы внутри).
2. Запускаем скрипт: ./long-script.sh.
3. Отключаемся (Detach): Нажимаем Ctrl+B, отпускаем, жмем D.
Вы вышли в обычную консоль. Можно закрыть ноутбук, уйти домой.
Возвращаемся (Attach):
tmux attach
Магия! Скрипт всё еще бежит, курсор там же, где вы его оставили.
Сделайте привычкой: зашли на сервер — сразу набрали tmux. Это ваша страховка от разрывов связи.
#linux #tmux #ssh #productivity #skill #terminal
👍2
🚌 Bus Factor: Почему быть "незаменимым" — это ловушка
Многие админы стремятся стать единственными, кто знает, как работает сеть или как деплоится бэкенд. Им кажется, что это гарантия безопасности: "Меня не уволят, потому что без меня всё рухнет".
Это карьерный тупик. Если ваш Bus Factor = 1 (если вас собьет автобус, проект умрет), то:
Вы не уйдете в отпуск. Вас будут дергать в горах и на пляже.
Вас не повысят. Руководство не может перевести вас на позицию Архитектора или CTO, потому что на текущем месте вас некем заменить. Вы становитесь заложником своей рутины.
Что делает Архитектор: Он стремится стать ненужным.
Автоматизирует всё, что можно.
Пишет документацию так, чтобы справился джун.
Делится знаниями.
Парадокс: Чем проще вас заменить в текущих задачах, тем ценнее вы становитесь для компании как инженер, способный строить новые системы, а не чинить старые.
#career #management #busfactor #softskills #growth #philosophy
Многие админы стремятся стать единственными, кто знает, как работает сеть или как деплоится бэкенд. Им кажется, что это гарантия безопасности: "Меня не уволят, потому что без меня всё рухнет".
Это карьерный тупик. Если ваш Bus Factor = 1 (если вас собьет автобус, проект умрет), то:
Вы не уйдете в отпуск. Вас будут дергать в горах и на пляже.
Вас не повысят. Руководство не может перевести вас на позицию Архитектора или CTO, потому что на текущем месте вас некем заменить. Вы становитесь заложником своей рутины.
Что делает Архитектор: Он стремится стать ненужным.
Автоматизирует всё, что можно.
Пишет документацию так, чтобы справился джун.
Делится знаниями.
Парадокс: Чем проще вас заменить в текущих задачах, тем ценнее вы становитесь для компании как инженер, способный строить новые системы, а не чинить старые.
#career #management #busfactor #softskills #growth #philosophy
📍 DNS: Зачем нужна точка в конце (google.com.)?
Вы наверняка видели в конфигах BIND или в старых учебниках домены с точкой на конце: example.com. Зачем она?
Это FQDN (Fully Qualified Domain Name) — полностью определенное имя домена.
Как это работает: Когда вы пишете в браузере google.com (без точки), ваш компьютер на самом деле пытается быть умным. Если вы находитесь в корпоративной сети corp.local, резолвер может сначала попробовать найти:
google.com.corp.local (А вдруг это внутренний сервер?)
И только потом google.com. (Корень интернета).
Точка в конце говорит системе жестко:
"Не пытайся подставить локальные суффиксы. Иди сразу в корневой DNS (Root Zone)."
Практика: В критических скриптах и конфигах серверов (особенно Nginx/Postfix) использование точки в конце (proxy_pass http://backend.local.;) ускоряет резолвинг и защищает от атак с подменой локальных доменов.
#network #dns #theory #fqdn #internet #basics
Вы наверняка видели в конфигах BIND или в старых учебниках домены с точкой на конце: example.com. Зачем она?
Это FQDN (Fully Qualified Domain Name) — полностью определенное имя домена.
Как это работает: Когда вы пишете в браузере google.com (без точки), ваш компьютер на самом деле пытается быть умным. Если вы находитесь в корпоративной сети corp.local, резолвер может сначала попробовать найти:
google.com.corp.local (А вдруг это внутренний сервер?)
И только потом google.com. (Корень интернета).
Точка в конце говорит системе жестко:
"Не пытайся подставить локальные суффиксы. Иди сразу в корневой DNS (Root Zone)."
Практика: В критических скриптах и конфигах серверов (особенно Nginx/Postfix) использование точки в конце (proxy_pass http://backend.local.;) ускоряет резолвинг и защищает от атак с подменой локальных доменов.
#network #dns #theory #fqdn #internet #basics
👍2
🐤 Canary Tokens: Ловушка для любопытного хакера
Как узнать, что злоумышленник (или любопытный инсайдер) проник в вашу сеть и шарится по папкам? Логи Windows Security читать сложно. SIEM стоит дорого.
Используйте Canary Tokens (Канарейку).
Суть: Вы создаете "фейковый" файл или ссылку, которая выглядит очень аппетитно. Например:
* Файл bitcoin_wallet_passwords.docx на рабочем столе.
* Запись в DNS.
* Ссылку в корпоративной Wiki "Зарплаты руководства".
Как только кто-то откроет этот файл, он "стукнет" на сервер, и вам придет письмо: "Кто-то с IP 192.168.1.55 открыл ловушку!".
Как попробовать бесплатно: Зайдите на canarytokens.org. Сгенерируйте токен (например, документ Word). Положите его в папку "Secrets". Ждите. Это лучшая сигнализация от скрытых угроз.
#security #canarytokens #hacking #defense #honeypot #tools
Как узнать, что злоумышленник (или любопытный инсайдер) проник в вашу сеть и шарится по папкам? Логи Windows Security читать сложно. SIEM стоит дорого.
Используйте Canary Tokens (Канарейку).
Суть: Вы создаете "фейковый" файл или ссылку, которая выглядит очень аппетитно. Например:
* Файл bitcoin_wallet_passwords.docx на рабочем столе.
* Запись в DNS.
* Ссылку в корпоративной Wiki "Зарплаты руководства".
Как только кто-то откроет этот файл, он "стукнет" на сервер, и вам придет письмо: "Кто-то с IP 192.168.1.55 открыл ловушку!".
Как попробовать бесплатно: Зайдите на canarytokens.org. Сгенерируйте токен (например, документ Word). Положите его в папку "Secrets". Ждите. Это лучшая сигнализация от скрытых угроз.
#security #canarytokens #hacking #defense #honeypot #tools
❤2
🛡 Linux: Как запретить системе убивать твою Базу Данных (OOM Killer)
Ситуация: На сервере кончилась память (RAM). Ядро Linux включает механизм OOM Killer (Out Of Memory Killer), который, как санитар леса, начинает убивать самые "жирные" процессы, чтобы спасти систему. Чаще всего под нож попадает MySQL, PostgreSQL или Java-приложение. И сервер падает.
Вы можете сказать ядру: "Не трогай этот процесс, убей лучше что-нибудь другое".
Как это сделать: У каждого процесса есть файл /proc/[PID]/oom_score_adj. Значения в нем: от -1000 (бессмертный) до 1000 (убить первым).
Защищаем процесс (например, SSH или БД):
Как сделать это вечным (через Systemd): Добавьте в unit-файл сервиса (/etc/systemd/system/mysql.service.d/override.conf):
Теперь, даже если память кончится полностью, Linux убьет Apache, агенты мониторинга, cron, но Базу Данных будет держать до последнего байта.
#linux #kernel #oom #stability #systemd #bestpractice
Ситуация: На сервере кончилась память (RAM). Ядро Linux включает механизм OOM Killer (Out Of Memory Killer), который, как санитар леса, начинает убивать самые "жирные" процессы, чтобы спасти систему. Чаще всего под нож попадает MySQL, PostgreSQL или Java-приложение. И сервер падает.
Вы можете сказать ядру: "Не трогай этот процесс, убей лучше что-нибудь другое".
Как это сделать: У каждого процесса есть файл /proc/[PID]/oom_score_adj. Значения в нем: от -1000 (бессмертный) до 1000 (убить первым).
Защищаем процесс (например, SSH или БД):
# Находим PID (например, 1234)
# Записываем -1000 в score_adj
echo -1000 > /proc/1234/oom_score_adj
Как сделать это вечным (через Systemd): Добавьте в unit-файл сервиса (/etc/systemd/system/mysql.service.d/override.conf):
[Service]
OOMScoreAdjust=-1000
Теперь, даже если память кончится полностью, Linux убьет Apache, агенты мониторинга, cron, но Базу Данных будет держать до последнего байта.
#linux #kernel #oom #stability #systemd #bestpractice
🚑 Windows: Святая троица восстановления (DISM + SFC)
Когда Windows начинает глючить (ошибки обновлений, синие экраны, битые файлы), эникейщик переустанавливает систему. Сеньор запускает Repair Pipeline. Но важно делать это в правильном порядке.
Шаг 1. Проверяем хранилище компонентов (Component Store) Нет смысла проверять системные файлы (sfc), если сам "эталон" (образ восстановления) поврежден. Сначала чиним его.
Что делает: Скачивает целые версии системных файлов из Windows Update и кладет их в локальное хранилище.
Шаг 2. Чиним системные файлы Только теперь, когда эталон исправен, запускаем сверку:
Что делает: Сравнивает текущие файлы Windows (dll, exe) с эталоном из Шага 1 и заменяет битые.
Шаг 3. Проверяем диск (опционально, если есть подозрения)
Запомните: Сначала
#windows #troubleshooting #repair #dism #sfc #cmd
Когда Windows начинает глючить (ошибки обновлений, синие экраны, битые файлы), эникейщик переустанавливает систему. Сеньор запускает Repair Pipeline. Но важно делать это в правильном порядке.
Шаг 1. Проверяем хранилище компонентов (Component Store) Нет смысла проверять системные файлы (sfc), если сам "эталон" (образ восстановления) поврежден. Сначала чиним его.
DISM /Online /Cleanup-Image /RestoreHealth
Что делает: Скачивает целые версии системных файлов из Windows Update и кладет их в локальное хранилище.
Шаг 2. Чиним системные файлы Только теперь, когда эталон исправен, запускаем сверку:
sfc /scannow
Что делает: Сравнивает текущие файлы Windows (dll, exe) с эталоном из Шага 1 и заменяет битые.
Шаг 3. Проверяем диск (опционально, если есть подозрения)
chkdsk C: /f /r
Запомните: Сначала
DISM , потом SFC . Наоборот — бессмысленно.#windows #troubleshooting #repair #dism #sfc #cmd
🕵️♂️ Linux: stat — Вся правда о файле
Мы привыкли смотреть на файлы через
Команда:
Что смотреть в выводе:
1. Access (atime): Когда файл читали последний раз (полезно для поиска неиспользуемых конфигов).
2. Modify (mtime): Когда менялось содержимое файла.
3. Change (ctime): Когда менялись метананые (права, владелец).
* Нюанс: Если хакер подменил файл и скрутил
Форматированный вывод (для скриптов):
Используйте
#linux #forensics #stat #security #cli #audit
Мы привыкли смотреть на файлы через
ls -l . Но она показывает только время последней модификации ( mtime ). Когда нужно понять, действительно ли файл меняли, или просто поменяли права доступа ( chmod ), или когда к нему последний раз обращались — нужна команда stat .Команда:
stat /etc/passwd
Что смотреть в выводе:
1. Access (atime): Когда файл читали последний раз (полезно для поиска неиспользуемых конфигов).
2. Modify (mtime): Когда менялось содержимое файла.
3. Change (ctime): Когда менялись метананые (права, владелец).
* Нюанс: Если хакер подменил файл и скрутил
mtime назад (чтобы скрыть следы), ctime все равно выдаст время изменения!Форматированный вывод (для скриптов):
# Вывести только права в цифрах (например, 644)
stat -c "%a" filename
Используйте
stat при разборе инцидентов. ls часто врет (или недоговаривает).#linux #forensics #stat #security #cli #audit
💾 PowerShell: Бэкап драйверов одной командой
Ситуация: Нужно переустановить Windows на ноутбуке директора или специфическом промышленном ПК. Страх: "А вдруг после переустановки не встанет драйвер на этот редкий RAID-контроллер или Wi-Fi, и я не найду его в интернете?"
Сделайте резервную копию всех установленных драйверов до сноса системы. Сторонний софт не нужен.
Команда (от Админа):
Результат: Windows аккуратно разложит все драйверы (
Как восстановить: При установке новой Windows укажите эту папку, или потом в Диспетчере устройств: "Обновить драйвер -> Искать на этом компьютере".
#windows #powershell #drivers #backup #maintenance #lifehack
Ситуация: Нужно переустановить Windows на ноутбуке директора или специфическом промышленном ПК. Страх: "А вдруг после переустановки не встанет драйвер на этот редкий RAID-контроллер или Wi-Fi, и я не найду его в интернете?"
Сделайте резервную копию всех установленных драйверов до сноса системы. Сторонний софт не нужен.
Команда (от Админа):
# Создаем папку и выгружаем туда всё
MD C:\MyDrivers
Export-WindowsDriver -Online -Destination C:\MyDrivers
Результат: Windows аккуратно разложит все драйверы (
.inf , .sys , .dll ) по папочкам. Сохраните папку на флешку.Как восстановить: При установке новой Windows укажите эту папку, или потом в Диспетчере устройств: "Обновить драйвер -> Искать на этом компьютере".
#windows #powershell #drivers #backup #maintenance #lifehack
✍2🔥2
🚪 SSH: Не пускай никого, кроме избранных (AllowUsers)
Все знают: надо отключать вход по паролю (
Допустим, у вас на сервере 50 пользователей (разработчики, сервис-аккаунты). Если у одного из них утечет ключ или пароль — хакер зайдет.
Сделайте так, чтобы по SSH могли заходить только админы.
Настройка
Фрагмент кода
Фишки:
1. Можно указать конкретные логины.
2. Можно привязать логин к IP (manager@IP).
3. Все остальные пользователи (даже если у них есть правильный пароль/ключ) получат "Permission denied".
Это железобетонная защита от случайных дыр в забытых аккаунтах.
#linux #ssh #security #hardening #bestpractice #config
Все знают: надо отключать вход по паролю (
PasswordAuthentication no ) и вход рута ( PermitRootLogin no ). Но есть еще один слой защиты, который часто игнорируют — Белый список пользователей.Допустим, у вас на сервере 50 пользователей (разработчики, сервис-аккаунты). Если у одного из них утечет ключ или пароль — хакер зайдет.
Сделайте так, чтобы по SSH могли заходить только админы.
Настройка
/etc/ssh/sshd_config : В конец файла добавьте:Фрагмент кода
# Разрешить вход ТОЛЬКО этим пользователям
AllowUsers admin deploy_bot manager@192.168.1.*
Фишки:
1. Можно указать конкретные логины.
2. Можно привязать логин к IP (manager@IP).
3. Все остальные пользователи (даже если у них есть правильный пароль/ключ) получат "Permission denied".
Это железобетонная защита от случайных дыр в забытых аккаунтах.
#linux #ssh #security #hardening #bestpractice #config
🔥2👍1