🛡 Правило 3-2-1 устарело. Встречайте 3-2-1-1-0
Нас всех учили правилу бэкапов 3-2-1:
* 3 копии данных.
* 2 разных носителя.
* 1 копия офлайн (вне офиса).
В 2025 году, в эру программ-вымогателей (Ransomware), этого мало. Шифровальщики научились находить сетевые бэкапы и шифровать их тоже.
Новый стандарт — 3-2-1-1-0:
* 3 копии данных.
* 2 разных типа носителей.
* 1 копия вне офиса (Cloud/Remote).
* 1 копия Immutable (Неизменяемая) или Air-Gapped (Физически отключенная).
Immutable: Это флаг в S3 (AWS/MinIO) или Veeam Hardened Repository. Даже если хакер получит root-права, он не сможет удалить или зашифровать этот бэкап в течение заданного времени (например, 30 дней).
* 0 ошибок при проверке восстановления (SureBackup). Бэкап, который вы не тестово не развернули — это не бэкап, а надежда.
Проверьте свои репозитории. Если у вас нет Immutable-копии — вы беззащитны перед шифровальщиком.
#backup #security #ransomware #veeam #architecture #bestpractice
Нас всех учили правилу бэкапов 3-2-1:
* 3 копии данных.
* 2 разных носителя.
* 1 копия офлайн (вне офиса).
В 2025 году, в эру программ-вымогателей (Ransomware), этого мало. Шифровальщики научились находить сетевые бэкапы и шифровать их тоже.
Новый стандарт — 3-2-1-1-0:
* 3 копии данных.
* 2 разных типа носителей.
* 1 копия вне офиса (Cloud/Remote).
* 1 копия Immutable (Неизменяемая) или Air-Gapped (Физически отключенная).
Immutable: Это флаг в S3 (AWS/MinIO) или Veeam Hardened Repository. Даже если хакер получит root-права, он не сможет удалить или зашифровать этот бэкап в течение заданного времени (например, 30 дней).
* 0 ошибок при проверке восстановления (SureBackup). Бэкап, который вы не тестово не развернули — это не бэкап, а надежда.
Проверьте свои репозитории. Если у вас нет Immutable-копии — вы беззащитны перед шифровальщиком.
#backup #security #ransomware #veeam #architecture #bestpractice
🔥2
👮♂️ Linux: Настраиваем sudo как Архитектор
Давать пользователю ALL=(ALL) ALL — это лень, граничащая с преступлением. Если разработчику нужно только перезапускать Nginx, дайте ему право только на это.
Редактируем файл (ТОЛЬКО через visudo!):
1. Создаем алиас команды (чтобы не писать пути):
2. Даем права конкретной группе:
Что мы сделали:
* %web_team — группа пользователей.
* (root) — от чьего имени запускаем.
* NOPASSWD — не спрашивать пароль (удобно для скриптов).
* RESTART_NGINX — разрешили только эти команды.
Теперь, если дев попытается сделать sudo rm -rf /, система вежливо его пошлет.
#linux #security #sudo #accesscontrol #bestpractice
Давать пользователю ALL=(ALL) ALL — это лень, граничащая с преступлением. Если разработчику нужно только перезапускать Nginx, дайте ему право только на это.
Редактируем файл (ТОЛЬКО через visudo!):
1. Создаем алиас команды (чтобы не писать пути):
Cmnd_Alias RESTART_NGINX = /usr/bin/systemctl restart nginx, /usr/bin/systemctl reload nginx
2. Даем права конкретной группе:
%web_team ALL=(root) NOPASSWD: RESTART_NGINX
Что мы сделали:
* %web_team — группа пользователей.
* (root) — от чьего имени запускаем.
* NOPASSWD — не спрашивать пароль (удобно для скриптов).
* RESTART_NGINX — разрешили только эти команды.
Теперь, если дев попытается сделать sudo rm -rf /, система вежливо его пошлет.
#linux #security #sudo #accesscontrol #bestpractice
👍2
📦 Windows Sandbox: Изолятор для подозрительного софта
Ситуация: Нужно запустить странный .exe или скрипт, который прислал юзер. ❌ Плохо: Запускать на своей машине («авось пронесет»). ❌ Долго: Разворачивать виртуалку в Hyper-V/VMware. ✅ Архитектор: Запускает Windows Sandbox.
Это встроенная в Pro/Enterprise версию легковесная виртуалка. Она грузится за 5 секунд, использует ваше текущее ядро Windows, но полностью изолирована. Главная фишка: Как только вы закрываете окно — всё содержимое уничтожается. Никаких следов.
Как включить (PowerShell):
Pro Tip: Можно создать конфиг .wsb, чтобы пробрасывать внутрь папки с хоста (Read-Only) или запускать скрипты при старте.
Идеально для тестов софта и открытия подозрительных вложений.
#windows #security #sandbox #testing #bestpractice
Ситуация: Нужно запустить странный .exe или скрипт, который прислал юзер. ❌ Плохо: Запускать на своей машине («авось пронесет»). ❌ Долго: Разворачивать виртуалку в Hyper-V/VMware. ✅ Архитектор: Запускает Windows Sandbox.
Это встроенная в Pro/Enterprise версию легковесная виртуалка. Она грузится за 5 секунд, использует ваше текущее ядро Windows, но полностью изолирована. Главная фишка: Как только вы закрываете окно — всё содержимое уничтожается. Никаких следов.
Как включить (PowerShell):
Enable-WindowsOptionalFeature -FeatureName "Containers-DisposableClientVM" -All -Online
(Потребуется перезагрузка)
Pro Tip: Можно создать конфиг .wsb, чтобы пробрасывать внутрь папки с хоста (Read-Only) или запускать скрипты при старте.
Идеально для тестов софта и открытия подозрительных вложений.
#windows #security #sandbox #testing #bestpractice
🚫 IPv6: Перестаньте его отключать
Есть старая привычка эникейщиков: «Глючит сеть? Отключи IPv6 в адаптере». В 2010 году это помогало. В 2025 году это архитектурная ошибка.
Почему нельзя просто снять галочку:
Windows Server: Microsoft официально заявляет: «Мы не тестируем Windows Server без IPv6». Многие внутренние службы (Exchange, Cluster Service, Active Directory) используют его для общения между собой, даже если у вас нет внешнего v6 адреса.
Тормоза: При отключении IPv6 через GUI адаптера, система всё равно пытается резолвить AAAA-записи DNS, ждет таймаута и только потом идет по IPv4. Это добавляет задержки (latency) при открытии сайтов и подключении к БД.
Как правильно (если очень надо): Если ваш провайдер или свитч реально не дружит с v6, не отключайте протокол. Настройте приоритет (Prefer IPv4 over IPv6) через реестр:
Пусть IPv6 живет своей жизнью внутри ядра. Не мешайте механизму работать.
#network #ipv6 #windows #bestpractice #mythbusters
Есть старая привычка эникейщиков: «Глючит сеть? Отключи IPv6 в адаптере». В 2010 году это помогало. В 2025 году это архитектурная ошибка.
Почему нельзя просто снять галочку:
Windows Server: Microsoft официально заявляет: «Мы не тестируем Windows Server без IPv6». Многие внутренние службы (Exchange, Cluster Service, Active Directory) используют его для общения между собой, даже если у вас нет внешнего v6 адреса.
Тормоза: При отключении IPv6 через GUI адаптера, система всё равно пытается резолвить AAAA-записи DNS, ждет таймаута и только потом идет по IPv4. Это добавляет задержки (latency) при открытии сайтов и подключении к БД.
Как правильно (если очень надо): Если ваш провайдер или свитч реально не дружит с v6, не отключайте протокол. Настройте приоритет (Prefer IPv4 over IPv6) через реестр:
New-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\Tcpip6\Parameters" -Name "DisabledComponents" -PropertyType DWord -Value 0x20
Пусть IPv6 живет своей жизнью внутри ядра. Не мешайте механизму работать.
#network #ipv6 #windows #bestpractice #mythbusters
💀 Cron мертв. Да здравствуют Systemd Timers
Мы все привыкли писать crontab -e. Это просто, но убого: ❌ Если задача упала, вы узнаете об этом только если настроили почту. ❌ Логи надо перенаправлять вручную (>> /var/log/my.log 2>&1). ❌ Нельзя сказать: «Запусти бэкап только ПОСЛЕ того, как загрузилась база данных».
В 2025 году Архитектор использует Systemd Timers.
Как это сделать:
Создаем сервис (/etc/systemd/system/backup.service): Описываем, что делать.
Создаем таймер (/etc/systemd/system/backup.timer): Описываем, когда делать.
Активируем: systemctl enable --now backup.timer
Бонусы:
* systemctl list-timers — показывает, когда был последний запуск и когда следующий.
* journalctl -u backup.service — все логи из коробки.
* Можно добавить OnFailure=alert.service, чтобы телеграфировать об ошибках.
#linux #systemd #cron #automation #modern #bestpractice
Мы все привыкли писать crontab -e. Это просто, но убого: ❌ Если задача упала, вы узнаете об этом только если настроили почту. ❌ Логи надо перенаправлять вручную (>> /var/log/my.log 2>&1). ❌ Нельзя сказать: «Запусти бэкап только ПОСЛЕ того, как загрузилась база данных».
В 2025 году Архитектор использует Systemd Timers.
Как это сделать:
Создаем сервис (/etc/systemd/system/backup.service): Описываем, что делать.
[Service]
Type=oneshot
ExecStart=/usr/local/bin/backup.sh
Создаем таймер (/etc/systemd/system/backup.timer): Описываем, когда делать.
[Timer]
OnCalendar=*-*-* 03:00:00 # Каждый день в 3 ночи
Persistent=true # Если сервер был выключен, запустить сразу при включении!
[Install]
WantedBy=timers.target
Активируем: systemctl enable --now backup.timer
Бонусы:
* systemctl list-timers — показывает, когда был последний запуск и когда следующий.
* journalctl -u backup.service — все логи из коробки.
* Можно добавить OnFailure=alert.service, чтобы телеграфировать об ошибках.
#linux #systemd #cron #automation #modern #bestpractice
🛡 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
🚪 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
🛑 Alias: Ремень безопасности для админа (rm -i)
В пятницу вечером концентрация падает. Одно неловкое движение, и rm -rf * удаляет не временную папку, а продакшен. Сделайте так, чтобы Linux всегда спрашивал подтверждение перед удалением или перезаписью файлов.
Добавьте эти строки в свой ~/.bashrc (или .zshrc):
Как это спасет: Теперь, когда вы напишете
#linux #safety #alias #bestpractice #readonlyfriday #config
В пятницу вечером концентрация падает. Одно неловкое движение, и rm -rf * удаляет не временную папку, а продакшен. Сделайте так, чтобы Linux всегда спрашивал подтверждение перед удалением или перезаписью файлов.
Добавьте эти строки в свой ~/.bashrc (или .zshrc):
# Интерактивный режим (спрашивать "Вы уверены?")
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
Как это спасет: Теперь, когда вы напишете
rm important_file , система спросит: remove regular file 'important_file' ? У вас будет секунда, чтобы подумать: "Ой, не тот сервер!".#linux #safety #alias #bestpractice #readonlyfriday #config
🛡️ Active Directory: Группа "Protected Users"
Вы знаете, что если вы зашли Доменным Админом на компьютер пользователя (починить принтер), ваши хеши паролей остались в памяти этого ПК? Хакер запускает Mimikatz и крадет ваши права за секунду.
Есть штатное решение, про которое забывают: группа Protected Users.
Что она делает (для тех, кто в ней состоит):
1. Запрещает кэширование паролей.
2. Запрещает NTLM-аутентификацию (только Kerberos).
3. Запрещает делегирование (Constrained Delegation).
Задача на пятницу: Добавьте свою учетную запись администратора в группу
P.S. Только не добавляйте туда сервис-аккаунты, пока не протестируете — старый софт может отвалиться.
#windows #security #activedirectory #hardening #mimikatz #bestpractice
Вы знаете, что если вы зашли Доменным Админом на компьютер пользователя (починить принтер), ваши хеши паролей остались в памяти этого ПК? Хакер запускает Mimikatz и крадет ваши права за секунду.
Есть штатное решение, про которое забывают: группа Protected Users.
Что она делает (для тех, кто в ней состоит):
1. Запрещает кэширование паролей.
2. Запрещает NTLM-аутентификацию (только Kerberos).
3. Запрещает делегирование (Constrained Delegation).
Задача на пятницу: Добавьте свою учетную запись администратора в группу
Protected Users в AD. Это резко снизит риск компрометации домена, даже если вы случайно залогинитесь на зараженной машине.P.S. Только не добавляйте туда сервис-аккаунты, пока не протестируете — старый софт может отвалиться.
#windows #security #activedirectory #hardening #mimikatz #bestpractice
❤2
💾 Правило 3-2-1
В пятницу вечером самое время спросить себя: "Если завтра сгорит серверная, а облако заблокируют — я восстановлю данные?".
Существует только один стандарт надежности бэкапов. Правило 3-2-1.
Разбор:
1. 3 копии данных: Одна боевая (оригинал) + Две резервных.
* Почему: Вероятность смерти одного диска — 1/100. Трех сразу — 1/1 000 000.
2. 2 разных носителя: Не храните все копии на одном RAID-массиве или одном типе дисков.
* Пример: HDD сервера + Ленточная библиотека (или NAS другого бренда).
3. 1 копия оффсайт: Одна копия должна лежать физически в другом здании (или облаке).
* Почему: Пожар, потоп или кража в офисе уничтожат и сервер, и локальный бэкап.
Если у вас нет пункта №3 — считайте, у вас нет бэкапов.
#backup #security #theory #321rule #bestpractice #disasterrecovery #adminlife
В пятницу вечером самое время спросить себя: "Если завтра сгорит серверная, а облако заблокируют — я восстановлю данные?".
Существует только один стандарт надежности бэкапов. Правило 3-2-1.
Разбор:
1. 3 копии данных: Одна боевая (оригинал) + Две резервных.
* Почему: Вероятность смерти одного диска — 1/100. Трех сразу — 1/1 000 000.
2. 2 разных носителя: Не храните все копии на одном RAID-массиве или одном типе дисков.
* Пример: HDD сервера + Ленточная библиотека (или NAS другого бренда).
3. 1 копия оффсайт: Одна копия должна лежать физически в другом здании (или облаке).
* Почему: Пожар, потоп или кража в офисе уничтожат и сервер, и локальный бэкап.
Если у вас нет пункта №3 — считайте, у вас нет бэкапов.
#backup #security #theory #321rule #bestpractice #disasterrecovery #adminlife