Linux: htop врёт. Куда на самом деле уходит память? Вскрываем pmap
Боль: Вы запускаете htop. Он показывает: VIRT: 25.0G, RES: 500M. Вопрос: Куда "делись" 24.5 ГБ? Почему VIRT (виртуальная) такой огромный, а RES (физическая) — маленький?
Реакция админа: "Наверное, это кэш. Перезагружу".
Реакция SRE: "Я посмотрю карту памяти процесса".
pmap (Process Memory Map) — это "рентген" для процесса. Он показывает каждый регион памяти, который процесс "попросил" у ядра.
Как это читать:
1. Найдите PID (например, pidof java -> 1234).
2. Запустите pmap с флагом -x (расширенный):
Bash
Что вы увидите:
*Сотни строк с .so файлами (это shared libraries — общие библиотеки).
* [ anon ]: Это "анонимная" память — то, что malloc() выделил в "куче" (heap). Если эта цифра растет — у вас 100% утечка памяти (memory leak).
* [ stack ]: Стек процесса.
"Убийца"-команда (показать итог):
Bash
Бинго! Вот ваши 25 ГБ. Это не "утечка", а 1000+ .so-библиотек, которые "раздули" виртуальное адресное пространство.
Взгляд архитектора: Вы перестаете "гадать" по htop. Вы видите корень проблемы. pmap — это ваш микроскоп для диагностики утечек памяти и "раздутых" приложений.
#linux #sre #performance #diagnostics #pmap #команды #гайд #architect
Боль: Вы запускаете htop. Он показывает: VIRT: 25.0G, RES: 500M. Вопрос: Куда "делись" 24.5 ГБ? Почему VIRT (виртуальная) такой огромный, а RES (физическая) — маленький?
Реакция админа: "Наверное, это кэш. Перезагружу".
Реакция SRE: "Я посмотрю карту памяти процесса".
pmap (Process Memory Map) — это "рентген" для процесса. Он показывает каждый регион памяти, который процесс "попросил" у ядра.
Как это читать:
1. Найдите PID (например, pidof java -> 1234).
2. Запустите pmap с флагом -x (расширенный):
Bash
pmap -x 1234
Что вы увидите:
*Сотни строк с .so файлами (это shared libraries — общие библиотеки).
* [ anon ]: Это "анонимная" память — то, что malloc() выделил в "куче" (heap). Если эта цифра растет — у вас 100% утечка памяти (memory leak).
* [ stack ]: Стек процесса.
"Убийца"-команда (показать итог):
Bash
# Показать только ИТОГО (Total)
pmap -x 1234 | tail -n 1
# Вывод: total ---- 25165824K
Бинго! Вот ваши 25 ГБ. Это не "утечка", а 1000+ .so-библиотек, которые "раздули" виртуальное адресное пространство.
Взгляд архитектора: Вы перестаете "гадать" по htop. Вы видите корень проблемы. pmap — это ваш микроскоп для диагностики утечек памяти и "раздутых" приложений.
#linux #sre #performance #diagnostics #pmap #команды #гайд #architect
Windows (Security): "Крепость" внутри AD. Внедряем Authentication Silos
Боль: Ваш Domain Admin залогинился на ноутбук HelpDesk (
Хакер, сидящий на этом ноутбуке, ворует его Kerberos-билет и через 5 минут захватывает Контроллер Домена (атака
Реакция админа: "Я больше так не буду".
Реакция архитектора: "Я сделаю так, чтобы этот билет был бесполезен".
Authentication Silos (Хранилища Аутентификации) — это ваш "ядерный бункер" внутри AD.
Это контейнер, который привязывает высокопривилегированные учетки (как
Как это работает:
1. Вы создаете "Silo" (Хранилище) и "Policy" (Политику).
2. Вы помещаете в "Silo" своих Domain Admins и свои Domain Controllers.
3. Kerberos (KDC) теперь выдает непередаваемые (non-forwardable) билеты. TGT (билет), выданный для Domain Admin'а, не может быть использован для доступа ни к чему, кроме хостов из этого же "Silo" (то есть, к другим DC).
Взгляд архитектора: Это реальное, техническое принуждение для вашей Admin Tier Model. Вы не "надеетесь", что админ не залогинится на ПК. Вы гарантируете, что если он это сделает, его украденный билет будет просто бесполезным мусором для хакера.
#windows #security #activedirectory #kerberos #zerotrust #architect #гайд #musthave
Боль: Ваш Domain Admin залогинился на ноутбук HelpDesk (
Tier 2 ), чтобы "быстро что-то поправить".Хакер, сидящий на этом ноутбуке, ворует его Kerberos-билет и через 5 минут захватывает Контроллер Домена (атака
Pass-the-Ticket ).Реакция админа: "Я больше так не буду".
Реакция архитектора: "Я сделаю так, чтобы этот билет был бесполезен".
Authentication Silos (Хранилища Аутентификации) — это ваш "ядерный бункер" внутри AD.
Это контейнер, который привязывает высокопривилегированные учетки (как
Domain Admins ) только к высокопривилегированным хостам (как Domain Controllers ).Как это работает:
1. Вы создаете "Silo" (Хранилище) и "Policy" (Политику).
2. Вы помещаете в "Silo" своих Domain Admins и свои Domain Controllers.
3. Kerberos (KDC) теперь выдает непередаваемые (non-forwardable) билеты. TGT (билет), выданный для Domain Admin'а, не может быть использован для доступа ни к чему, кроме хостов из этого же "Silo" (то есть, к другим DC).
Взгляд архитектора: Это реальное, техническое принуждение для вашей Admin Tier Model. Вы не "надеетесь", что админ не залогинится на ПК. Вы гарантируете, что если он это сделает, его украденный билет будет просто бесполезным мусором для хакера.
#windows #security #activedirectory #kerberos #zerotrust #architect #гайд #musthave
👍5
🛡️ Windows (Архитектура): "NTFS-права" мертвы. Будущее — это Dynamic Access Control (DAC)
Боль: У вас 50 файловых шар. Вам приходит задача: "Дать доступ к папке
Реакция админа: Создать еще одну AD-группу
Реакция архитектора: Использовать Dynamic Access Control (DAC).
DAC (динамический контроль доступа) — это "умные" NTFS-права. Вы даете доступ не "пользователю", а "по правилу".
Как это работает:
1. Классификация: Вы "маркируете" файлы (через FSRM): file.Confidentiality = High.
2.Атрибуты: Вы используете существующие атрибуты AD: user.Department = "Sales", user.Country = "KZ".
3. Политика (в GPO): Вы пишете одно правило для папки:
* Allow: Read
* IF: (user.Department == "Sales")
* AND: (user.Country == "KZ")
* AND: (file.Confidentiality == "High")
Взгляд архитектора: Вы переходите от "управления 1000 групп" к "управлению 10 политиками". Это Policy as Code для данных.
#windows #security #activedirectory #dac #zerotrust #architect #гайд
Боль: У вас 50 файловых шар. Вам приходит задача: "Дать доступ к папке
Finance_Reports только менеджерам из отдела Sales , которые находятся в Казахстане".Реакция админа: Создать еще одну AD-группу
KZ_Sales_Managers_Finance_Access и вручную добавить в нее 10 человек. (Через год в AD будет 5000 групп).Реакция архитектора: Использовать Dynamic Access Control (DAC).
DAC (динамический контроль доступа) — это "умные" NTFS-права. Вы даете доступ не "пользователю", а "по правилу".
Как это работает:
1. Классификация: Вы "маркируете" файлы (через FSRM): file.Confidentiality = High.
2.Атрибуты: Вы используете существующие атрибуты AD: user.Department = "Sales", user.Country = "KZ".
3. Политика (в GPO): Вы пишете одно правило для папки:
* Allow: Read
* IF: (user.Department == "Sales")
* AND: (user.Country == "KZ")
* AND: (file.Confidentiality == "High")
Взгляд архитектора: Вы переходите от "управления 1000 групп" к "управлению 10 политиками". Это Policy as Code для данных.
#windows #security #activedirectory #dac #zerotrust #architect #гайд
🔥3
🛡️ Windows: Забудь про telnet. Используем Test-NetConnection
Боль: Вам нужно проверить, открыт ли порт 443 на сервере SRV-SQL-01. Старый (плохой) способ: telnet SRV-SQL-01 443. Но telnet (клиент) не установлен по умолчанию в Windows Server 2019/2022.
Реакция админа: Искать, как установить telnet через "Компоненты Windows".
Реакция архитектора: Использовать встроенный PowerShell-командлет, который мощнее.
Test-NetConnection (TNC) — это ваш "швейцарский нож" для сети:
1. Проверить порт (замена telnet):
PowerShell
Вывод TcpTestSucceeded : True — это всё, что вам нужно.
2. "Умный" Ping (замена ping + tracert):
PowerShell
Он покажет не только PingSucceeded: True, но и InterfaceAlias (через какую сетевуху идете), SourceAddress, и результаты traceroute (TraceRoute hops).
Взгляд архитектора: Вы не "ищете" сторонние утилиты. Вы используете встроенный, мощный инструмент, который скриптуется. TNC можно "завернуть" в ForEach-Object -Parallel, чтобы опросить 100 серверов на порт 3389 (RDP) за 5 секунд.
#windows #powershell #networking #sysadmin #команды #гайд
Боль: Вам нужно проверить, открыт ли порт 443 на сервере SRV-SQL-01. Старый (плохой) способ: telnet SRV-SQL-01 443. Но telnet (клиент) не установлен по умолчанию в Windows Server 2019/2022.
Реакция админа: Искать, как установить telnet через "Компоненты Windows".
Реакция архитектора: Использовать встроенный PowerShell-командлет, который мощнее.
Test-NetConnection (TNC) — это ваш "швейцарский нож" для сети:
1. Проверить порт (замена telnet):
PowerShell
# -ComputerName: Цель
# -Port: Какой порт
Test-NetConnection SRV-SQL-01 -Port 443
Вывод TcpTestSucceeded : True — это всё, что вам нужно.
2. "Умный" Ping (замена ping + tracert):
PowerShell
# TNC без порта
Test-NetConnection habr.com
Он покажет не только PingSucceeded: True, но и InterfaceAlias (через какую сетевуху идете), SourceAddress, и результаты traceroute (TraceRoute hops).
Взгляд архитектора: Вы не "ищете" сторонние утилиты. Вы используете встроенный, мощный инструмент, который скриптуется. TNC можно "завернуть" в ForEach-Object -Parallel, чтобы опросить 100 серверов на порт 3389 (RDP) за 5 секунд.
#windows #powershell #networking #sysadmin #команды #гайд
☣️ Security (Full-Stack): "Я скачал файл. Он 'чистый'?"
Боль: Вам прислали driver_update.zip или вы скачали .iso с "зеркала". Как убедиться, что это оригинальный файл, а не malware, подсунутый хакером?
Реакция админа: "Проверю антивирусом". (Бесполезно, если это 0-day).
Реакция архитектора: "Я сверю хэш-сумму".
Хэш (SHA-256) — это "цифровой отпечаток" файла. Если хоть 1 бит в файле изменен, хэш будет совершенно другим.
Как проверить:
В Linux (или git-bash):
Bash
В Windows (PowerShell):
PowerShell
Результат (на обеих ОС): E3B0C44298FC1C149AFBF4C8996FB92427AE41E4649B934CA495991B7852B855
Сравните эту строку с той, что обязательно должна быть на сайте разработчика.
Взгляд архитектора: Это "Гигиена 0-го уровня" (Supply Chain Security 101). Вы никогда не доверяете бинарникам из интернета. Вы верифицируете их.
#security #windows #linux #powershell #bash #sysadmin #чеклисты
Боль: Вам прислали driver_update.zip или вы скачали .iso с "зеркала". Как убедиться, что это оригинальный файл, а не malware, подсунутый хакером?
Реакция админа: "Проверю антивирусом". (Бесполезно, если это 0-day).
Реакция архитектора: "Я сверю хэш-сумму".
Хэш (SHA-256) — это "цифровой отпечаток" файла. Если хоть 1 бит в файле изменен, хэш будет совершенно другим.
Как проверить:
В Linux (или git-bash):
Bash
sha256sum driver_update.zip
В Windows (PowerShell):
PowerShell
Get-FileHash driver_update.zip -Algorithm SHA256
Результат (на обеих ОС): E3B0C44298FC1C149AFBF4C8996FB92427AE41E4649B934CA495991B7852B855
Сравните эту строку с той, что обязательно должна быть на сайте разработчика.
Взгляд архитектора: Это "Гигиена 0-го уровня" (Supply Chain Security 101). Вы никогда не доверяете бинарникам из интернета. Вы верифицируете их.
#security #windows #linux #powershell #bash #sysadmin #чеклисты
🚀 Linux: "Убить" все процессы. kill — это скальпель, pkill — это "ковровая бомбардировка"
Боль: У вас "зависло" Java-приложение, которое расплодило 50 дочерних процессов java.
Реакция админа: ps aux | grep java, скопировать 50 PID'ов, kill -9 ... (потерять 10 минут).
Реакция архитектора: pkill.
pkill (process kill) и pgrep (process grep) — это ваш пульт управления процессами. Они ищут не по PID, а по атрибутам.
Как это работает:
1. Найти (pgrep):
2. Убить (pkill): Это то же самое, но вместо "найти" — "убить".
(Будьте очень осторожны с pkill -9 -u root)
Взгляд архитектора: Вы не управляете PID'ами (которые меняются). Вы управляете сущностями (пользователями, именами). Это быстрее, надежнее и идеально подходит для скриптов автоматизации (SRE).
#linux #cli #pkill #sysadmin #sre #команды #гайд
Боль: У вас "зависло" Java-приложение, которое расплодило 50 дочерних процессов java.
Реакция админа: ps aux | grep java, скопировать 50 PID'ов, kill -9 ... (потерять 10 минут).
Реакция архитектора: pkill.
pkill (process kill) и pgrep (process grep) — это ваш пульт управления процессами. Они ищут не по PID, а по атрибутам.
Как это работает:
1. Найти (pgrep):
# Найти все процессы, принадлежащие пользователю 'www-data'
pgrep -u www-data
# Найти все процессы, в команде которых есть 'nginx'
pgrep -f nginx
2. Убить (pkill): Это то же самое, но вместо "найти" — "убить".
# Мягко "попросить" все процессы 'java' завершиться
pkill java
# Жестко "убить" все, что принадлежит 'www-data'
pkill -9 -u www-data
# Убить все процессы, в команде которых есть "my_hung_script.py"
pkill -f "my_hung_script.py"
(Будьте очень осторожны с pkill -9 -u root)
Взгляд архитектора: Вы не управляете PID'ами (которые меняются). Вы управляете сущностями (пользователями, именами). Это быстрее, надежнее и идеально подходит для скриптов автоматизации (SRE).
#linux #cli #pkill #sysadmin #sre #команды #гайд
👍3
🚀 Windows (Архитектура): "Split-Brain" DNS мертв. Встречаем Политики DNS
Боль: У вас есть сервис app.local, который должен резолвиться в 10.0.0.1 для внутренних клиентов (IT) и в 192.168.0.1 для всех остальных (Users).
Реакция админа (старая): Поднять два DNS-сервера (Split-Brain DNS), управлять двумя зонами, мучиться с репликацией.
Реакция архитектора: Использовать DNS Resolution Policies (в Windows Server 2016+). Это "умный" DNS, который отдает разные A-записи в зависимости от того, кто спрашивает.
План внедрения (на пальцах):
Готово. Теперь ваш DNS-сервер сам "маршрутизирует" ответы.
Взгляд архитектора: Вы переходите от управления железом (два сервера) к управлению кодом (Policy as Code). Это централизация, упрощение и основа для Geo-DNS и балансировки нагрузки на уровне DNS.
#windows #powershell #dns #networking #architect #гайд #musthave
Боль: У вас есть сервис app.local, который должен резолвиться в 10.0.0.1 для внутренних клиентов (IT) и в 192.168.0.1 для всех остальных (Users).
Реакция админа (старая): Поднять два DNS-сервера (Split-Brain DNS), управлять двумя зонами, мучиться с репликацией.
Реакция архитектора: Использовать DNS Resolution Policies (в Windows Server 2016+). Это "умный" DNS, который отдает разные A-записи в зависимости от того, кто спрашивает.
План внедрения (на пальцах):
# 1. Определяем "зону" клиентов (например, IT-подсеть)
Add-DnsServerClientSubnet -Name "IT_Subnet" -IPv4Subnet "10.0.10.0/24"
# 2. Создаем политику: "Если запрос из IT_Subnet..."
Add-DnsServerQueryResolutionPolicy -Name "IT_Policy" -ClientSubnet "eq,IT_Subnet"
# 3. Добавляем A-запись, которая видна ТОЛЬКО этой политике
Add-DnsServerResourceRecord -ZoneName "app.local" -Name "www" -A -IPv4Address "10.0.0.1" -Policy "IT_Policy"
# 4. Добавляем A-запись "по умолчанию" (для всех остальных)
Add-DnsServerResourceRecord -ZoneName "app.local" -Name "www" -A -IPv4Address "192.168.0.1"
Готово. Теперь ваш DNS-сервер сам "маршрутизирует" ответы.
Взгляд архитектора: Вы переходите от управления железом (два сервера) к управлению кодом (Policy as Code). Это централизация, упрощение и основа для Geo-DNS и балансировки нагрузки на уровне DNS.
#windows #powershell #dns #networking #architect #гайд #musthave
👍2🔥2
🔬 Linux (SRE): `htop` не видит диски. Находим "пожирателя" I/O с `iotop`
Боль: Сервер "тормозит".
Реакция админа: Перезагрузить сервер, надеясь, что "отпустит".
Реакция SRE: Запустить iotop.
Как использовать (нужен root):
Ключевые флаги (чтобы видеть суть):
Результат: Вы мгновенно увидите, что
Взгляд архитектора: Это SRE-диагностика. Вы не "гадаете", вы видите корень зла. Вы переходите от "наверное, диски" к "процесс mysqld (PID 1234) насыщает I/O, нужно смотреть его slow_query_log".
#linux #sre #performance #iotop #diagnostics #команды #гайд
Боль: Сервер "тормозит".
ssh "залипает". Вы открываете htop — CPU 5% , RAM 20% . Но iowait (wa) — 50% . Кто-то "убивает" дисковую систему.Реакция админа: Перезагрузить сервер, надеясь, что "отпустит".
Реакция SRE: Запустить iotop.
iotop — это top для Disk I/O. Он в реальном времени показывает, какой ПРОЦЕСС и сколько читает (READ) и пишет (WRITE) на диск.Как использовать (нужен root):
# 1. Установка
sudo apt install iotop
sudo yum install iotop
# 2. Запуск
sudo iotop
Ключевые флаги (чтобы видеть суть):
# -o: Показать ТОЛЬКО процессы, которые РЕАЛЬНО что-то пишут/читают
# -P: Показать Процессы, а не Потоки (намного чище вывод)
sudo iotop -oP
Результат: Вы мгновенно увидите, что
PID 1234 (mysqld) пишет 200M/s (вероятно, "упал" индекс) или PID 5678 (jbd2/sda1-8) (журнал) сошел с ума.Взгляд архитектора: Это SRE-диагностика. Вы не "гадаете", вы видите корень зла. Вы переходите от "наверное, диски" к "процесс mysqld (PID 1234) насыщает I/O, нужно смотреть его slow_query_log".
#linux #sre #performance #iotop #diagnostics #команды #гайд
⚡️ Full-Stack (DevOps): curl — это прошлое. Встречаем httpie (http)
Боль: Вам нужно отладить API. Вы пишете в curl (и мучаетесь): curl -X POST -H "Content-Type: application/json" -H "Auth: Bearer 123" -d '{"user":"admin"}' https://api.local
Реакция админа: Открыть Postman (тяжелый GUI) или "простыню" в curl.
Реакция архитектора: Использовать httpie (http).
httpie — это curl, созданный для человека. Он "умный", цветной и интуитивный.
Сравнение "До" и "После":
* curl (Боль): curl -X POST -H "Content-Type: application/json" https://api.local/users -d '{"id": 1, "name": "admin"}'
* httpie (Решение): http POST https://api.local/users id:=1 name=admin
Почему это круто:
* Авто-JSON: Он сам понимает, что вы шлете JSON.
* Подсветка: Ответ (JSON, HTML) подсвечен, как в IDE.
* Простота: Auth:Token становится http ... "Auth:Token".
Установка:
Взгляд архитектора: DX/DevEx (Developer Experience) — это не роскошь. Это эффективность. httpie — это инструмент, который снижает "трение" (friction) и экономит часы на отладке API и микросервисов.
#devops #cli #httpie #api #tools #гайд #curl
Боль: Вам нужно отладить API. Вы пишете в curl (и мучаетесь): curl -X POST -H "Content-Type: application/json" -H "Auth: Bearer 123" -d '{"user":"admin"}' https://api.local
Реакция админа: Открыть Postman (тяжелый GUI) или "простыню" в curl.
Реакция архитектора: Использовать httpie (http).
httpie — это curl, созданный для человека. Он "умный", цветной и интуитивный.
Сравнение "До" и "После":
* curl (Боль): curl -X POST -H "Content-Type: application/json" https://api.local/users -d '{"id": 1, "name": "admin"}'
* httpie (Решение): http POST https://api.local/users id:=1 name=admin
Почему это круто:
* Авто-JSON: Он сам понимает, что вы шлете JSON.
* Подсветка: Ответ (JSON, HTML) подсвечен, как в IDE.
* Простота: Auth:Token становится http ... "Auth:Token".
Установка:
sudo apt install httpie / brew install httpie
Взгляд архитектора: DX/DevEx (Developer Experience) — это не роскошь. Это эффективность. httpie — это инструмент, который снижает "трение" (friction) и экономит часы на отладке API и микросервисов.
#devops #cli #httpie #api #tools #гайд #curl
👍2
🛡️ Windows: Скрипт-аудит "Кто удалил файл?" (NTFS Forensics)
Боль: Критический файл в \\Shares\Data исчез. Бизнес в панике. "Кто это сделал и когда?!"
Реакция админа: "Я восстановлю из бэкапа" (но не знает, почему это случилось).
Реакция архитектора: "Я настрою аудит и найду виновного за 30 секунд".
Это двухэтапный процесс: сначала "взводим ловушку", потом "ловим".
Шаг 1: "Взвести ловушку" (Включить аудит на папке): (Это нужно сделать до инцидента)
(Также включите "Audit Object Access" в GPO)
Шаг 2: Скрипт-охотник (Когда инцидент произошел): Этот скрипт найдет в логах Security событие 4663 (Попытка доступа к объекту) с Accesses: ...Delete...
Взгляд архитектора: Вы переходите от "надежды" к "доказательствам". Это основа Форензики (Digital Forensics) и Incident Response (IR).
#windows #powershell #security #audit #ntfs #скрипты #гайд
Боль: Критический файл в \\Shares\Data исчез. Бизнес в панике. "Кто это сделал и когда?!"
Реакция админа: "Я восстановлю из бэкапа" (но не знает, почему это случилось).
Реакция архитектора: "Я настрою аудит и найду виновного за 30 секунд".
Это двухэтапный процесс: сначала "взводим ловушку", потом "ловим".
Шаг 1: "Взвести ловушку" (Включить аудит на папке): (Это нужно сделать до инцидента)
# 1. Получаем ACL папки
$Acl = Get-Acl "C:\Shares\Data"
# 2. Создаем правило аудита: "Следить за 'Delete' и 'DeleteSubtree' для 'Everyone'"
$AuditRule = New-Object System.Security.AccessControl.FileSystemAuditRule(
"Everyone",
"Delete, DeleteSubtreeAndFiles",
"None",
"None",
"Success, Failure"
)
# 3. Добавляем правило в ACL и применяем
$Acl.AddAuditRule($AuditRule)
Set-Acl -Path "C:\Shares\Data" -AclObject $Acl
(Также включите "Audit Object Access" в GPO)
Шаг 2: Скрипт-охотник (Когда инцидент произошел): Этот скрипт найдет в логах Security событие 4663 (Попытка доступа к объекту) с Accesses: ...Delete...
Write-Host "--- Ищу событие удаления файла в C:\Shares\Data ---"
Get-WinEvent -FilterHashtable @{
LogName = "Security";
ID = 4663
} | ForEach-Object {
# 'Object Name' - это 6-е свойство, 'Accesses' - 9-е
$ObjectName = $_.Properties[6].Value
$Accesses = $_.Properties[9].Value
# Проверяем, что это наша папка И это было удаление
if ($ObjectName -like "*C:\Shares\Data*" -and $Accesses -match "Delete") {
[PSCustomObject]@{
Time = $_.TimeCreated
User = $_.Properties[1].Value
Process = $_.Properties[13].Value
Object = $ObjectName
}
}
}
Взгляд архитектора: Вы переходите от "надежды" к "доказательствам". Это основа Форензики (Digital Forensics) и Incident Response (IR).
#windows #powershell #security #audit #ntfs #скрипты #гайд
🔬 Linux: Скрипт "Аудит открытых портов" (Сравнение с "Эталоном")
Боль: Вы думаете, что на вашем веб-сервере открыты только порты 22, 80, 443. Но разработчик "для теста" запустил python -m http.server 8000 на 0.0.0.0 и забыл.
Реакция админа: "Я проверю ss -tuln вручную, когда будет инцидент".
Реакция архитектора: "У меня есть cron-скрипт, который автоматически сверяет 'что есть' с 'что должно быть'".
Этот Bash-скрипт — ваш аудитор безопасности.
Код скрипта:
Взгляд архитектора: Это "Compliance as Code". Вы не "проверяете", вы валидируете вашу политику безопасности. Этот скрипт — основа для автоматического алерта в Zabbix или Prometheus (Alertmanager).
#linux #bash #security #networking #audit #скрипты #sre
Боль: Вы думаете, что на вашем веб-сервере открыты только порты 22, 80, 443. Но разработчик "для теста" запустил python -m http.server 8000 на 0.0.0.0 и забыл.
Реакция админа: "Я проверю ss -tuln вручную, когда будет инцидент".
Реакция архитектора: "У меня есть cron-скрипт, который автоматически сверяет 'что есть' с 'что должно быть'".
Этот Bash-скрипт — ваш аудитор безопасности.
Код скрипта:
#!/bin/bash
# --- Скрипт аудита "лишних" TCP-портов ---
# 1. ЭТАЛОН: Порты, которые ДОЛЖНЫ быть открыты (на 0.0.0.0)
# (Используйте 'ssh' или номер '22')
ALLOWED_PORTS=(
"ssh"
"http"
"httpsA"
)
# 2. ФАКТ: Получаем все, что слушает на 0.0.0.0 (IPv4)
# `ss -tuln`: TCP, UDP, Listening, Numeric
# `awk ...`: Вытаскиваем только номер порта
CURRENT_PORTS=$(ss -tuln | grep 'LISTEN.*0.0.0.0:' | awk '{print $5}' | sed 's/.*://' | sort -u)
# 3. СРАВНЕНИЕ:
# `comm -13`: Показывает строки, которые есть только во втором файле (CURRENT_PORTS)
# (т.е. "лишние" порты)
UNAUTHORIZED_PORTS=$(comm -13 <(printf "%s\n" "${ALLOWED_PORTS[@]}" | sort -u) <(echo "$CURRENT_PORTS"))
if [ -n "$UNAUTHORIZED_PORTS" ]; then
echo "[!!!] ОБНАРУЖЕНЫ НЕСАНКЦИОНИРОВАННЫЕ ОТКРЫТЫЕ ПОРТЫ:"
echo "$UNAUTHORIZED_PORTS"
exit 1
else
echo "[OK] Все порты соответствуют эталону."
exit 0
fi
Взгляд архитектора: Это "Compliance as Code". Вы не "проверяете", вы валидируете вашу политику безопасности. Этот скрипт — основа для автоматического алерта в Zabbix или Prometheus (Alertmanager).
#linux #bash #security #networking #audit #скрипты #sre
🚀 DevOps: Скрипт "CI/CD-раннер за 60 секунд" (Docker)
Боль: Ваш docker build в общем CI/CD GitLab/GitHub "висит" в очереди 20 минут. Вы не можете работать, потому что все "раннеры" заняты.
Реакция админа: "Пойду попью кофе, подожду".
Реакция архитектора: "Я запущу свой runner на своей Home Lab (или VDS) за 60 секунд".
Эти "однострочники" — это не просто docker run, это мгновенное масштабирование вашего CI/CD.
Скрипт для GitLab Runner:
Скрипт для GitHub Actions Runner: (Процесс похож, но требует docker-compose для авто-регистрации)
Взгляд архитектора: Это "Infrastructure on-demand" (Инфраструктура по требованию). Вы не ждете ресурсы, вы создаете их. Вы строите распределенную CI/CD-систему, используя Docker как "строительный блок".
#devops #docker #cicd #gitlab #github #automation #скрипты #гайд
Боль: Ваш docker build в общем CI/CD GitLab/GitHub "висит" в очереди 20 минут. Вы не можете работать, потому что все "раннеры" заняты.
Реакция админа: "Пойду попью кофе, подожду".
Реакция архитектора: "Я запущу свой runner на своей Home Lab (или VDS) за 60 секунд".
Эти "однострочники" — это не просто docker run, это мгновенное масштабирование вашего CI/CD.
Скрипт для GitLab Runner:
# 1. Получите ваш Registration Token из GitLab (Settings -> CI/CD -> Runners)
GITLAB_TOKEN="ВАШ_ТОКЕН"
# 2. Запускаем "вечный" раннер в Docker
docker run -d --name gitlab-runner --restart always \
-v /srv/gitlab-runner/config:/etc/gitlab-runner \
-v /var/run/docker.sock:/var/run/docker.sock \
gitlab/gitlab-runner:latest
# 3. Регистрируем раннер
docker exec -it gitlab-runner \
gitlab-runner register \
--non-interactive \
--url "https://gitlab.com/" \
--registration-token "$GITLAB_TOKEN" \
--executor "docker" \
--docker-image "docker:20.10" \
--description "My-Docker-Runner"
Скрипт для GitHub Actions Runner: (Процесс похож, но требует docker-compose для авто-регистрации)
Взгляд архитектора: Это "Infrastructure on-demand" (Инфраструктура по требованию). Вы не ждете ресурсы, вы создаете их. Вы строите распределенную CI/CD-систему, используя Docker как "строительный блок".
#devops #docker #cicd #gitlab #github #automation #скрипты #гайд
🔬 Linux: Скрипт "Аудит dmesg". Ищем аппаратные ошибки
Боль: Сервер "тормозит", но htop и iotop — "зеленые". Приложение "вылетает" с Segfault.
Причина: Вы не видите аппаратных проблем. Отказ диска, "битая" RAM, проблемы с CPU — всё это логируется ядром в dmesg.
Реакция админа: "Проблемы с софтом, буду чинить приложение".
Реакция SRE: "Сначала проверю dmesg".
Этот Bash-скрипт — ваш "аппаратный аудитор". Он парсит dmesg и ищет "красные флаги".
Код скрипта:
Взгляд архитектора: Это проактивный мониторинг "железа". Вы не ждете, пока smartd (диск) или EDAC (RAM) "покраснеют". Вы валидируете здоровье сервера на уровне ядра.
#linux #sre #diagnostics #bash #dmesg #скрипты #sysadmin
Боль: Сервер "тормозит", но htop и iotop — "зеленые". Приложение "вылетает" с Segfault.
Причина: Вы не видите аппаратных проблем. Отказ диска, "битая" RAM, проблемы с CPU — всё это логируется ядром в dmesg.
Реакция админа: "Проблемы с софтом, буду чинить приложение".
Реакция SRE: "Сначала проверю dmesg".
Этот Bash-скрипт — ваш "аппаратный аудитор". Он парсит dmesg и ищет "красные флаги".
Код скрипта:
#!/bin/bash
# --- Скрипт-аудитор 'dmesg' на ошибки ---
echo "--- Ищу 'красные флаги' в логах ядра (dmesg)... ---"
# -T: (Timestamps) Показать человеческое время
# --level=err,warn: Показать ТОЛЬКО ошибки и предупреждения
# (segfault, EDAC, I/O error, memory error...)
CRITICAL_ERRORS=$(dmesg -T --level=err,warn)
if [ -n "$CRITICAL_ERRORS" ]; then
echo "[!!!] ОБНАРУЖЕНЫ КРИТИЧЕСКИЕ СОБЫТИЯ ЯДРА:"
echo "$CRITICAL_ERRORS" | tail -n 20
echo "--- Рекомендация: Немедленно проверьте I/O, EDAC (RAM) и CPU. ---"
else
echo "[OK] Критических ошибок в dmesg не найдено."
fi
Взгляд архитектора: Это проактивный мониторинг "железа". Вы не ждете, пока smartd (диск) или EDAC (RAM) "покраснеют". Вы валидируете здоровье сервера на уровне ядра.
#linux #sre #diagnostics #bash #dmesg #скрипты #sysadmin
🔒 Проект на выходные: Vaultwarden — ваш личный Bitwarden
Боль: У вас 500 паролей (RDP, SSH, Web-морды, API-ключи). Они лежат в KeePass-файле в Dropbox, в Excel-файле на "шаре" или (о ужас) в .txt.
Решение: Развернуть свой менеджер паролей. Bitwarden — топ, но его "self-hosted" версия тяжеловата (требует MSSQL).
Vaultwarden — это альтернативная реализация Bitwarden-сервера, написанная на Rust. Она 100% совместима со всеми клиентами Bitwarden (Chrome, iOS, Android), но при этом:
Легковесная: Работает в Docker, ест < 100МБ RAM.
Простая: Не требует MS SQL. Использует SQLite "из коробки".
Запускаем в Docker за 60 секунд:
Откройте http://<ip>:8080 и создайте аккаунт. Теперь это ваш Bitwarden.
Взгляд архитектора: Это "суверенитет данных" (Data Sovereignty). Вы возвращаете полный контроль над вашими самыми критическими активами — паролями.
#security #docker #selfhosted #bitwarden #vaultwarden #weekendproject #гайд
Боль: У вас 500 паролей (RDP, SSH, Web-морды, API-ключи). Они лежат в KeePass-файле в Dropbox, в Excel-файле на "шаре" или (о ужас) в .txt.
Решение: Развернуть свой менеджер паролей. Bitwarden — топ, но его "self-hosted" версия тяжеловата (требует MSSQL).
Vaultwarden — это альтернативная реализация Bitwarden-сервера, написанная на Rust. Она 100% совместима со всеми клиентами Bitwarden (Chrome, iOS, Android), но при этом:
Легковесная: Работает в Docker, ест < 100МБ RAM.
Простая: Не требует MS SQL. Использует SQLite "из коробки".
Запускаем в Docker за 60 секунд:
# 1. Создаем volume для данных (чтобы не потерять!)
docker volume create vaultwarden-data
# 2. Запускаем контейнер
docker run -d --name vaultwarden \
-v vaultwarden-data:/data \
-p 8080:80 \
--restart unless-stopped \
vaultwarden/server:latest
Откройте http://<ip>:8080 и создайте аккаунт. Теперь это ваш Bitwarden.
Взгляд архитектора: Это "суверенитет данных" (Data Sovereignty). Вы возвращаете полный контроль над вашими самыми критическими активами — паролями.
#security #docker #selfhosted #bitwarden #vaultwarden #weekendproject #гайд
✅ AI-Промпт (Чек-лист): "Напиши мне systemd unit-файл"
Боль: Вы написали крутой скрипт на Python (app.py), но запускаете его в screen или через nohup ... &. Он "падает" — и всё.
Решение: Превратить его в настоящую Linux-службу (systemd). Но писать unit-файлы вручную — это "боль" (забыть [Install], User= и т.д.).
AI — идеальный генератор "болванок".
Промпт (для ChatGPT/Gemini/Copilot):
Взгляд архитектора: AI генерирует идемпотентный, безопасный (User=) и отказоустойчивый (Restart=) unit. Вы не тратите время на "бойлерплейт", а сразу получаете best-practice.
#ai4admin #linux #systemd #sre #automation #промпты #чеклисты
Боль: Вы написали крутой скрипт на Python (app.py), но запускаете его в screen или через nohup ... &. Он "падает" — и всё.
Решение: Превратить его в настоящую Linux-службу (systemd). Но писать unit-файлы вручную — это "боль" (забыть [Install], User= и т.д.).
AI — идеальный генератор "болванок".
Промпт (для ChatGPT/Gemini/Copilot):
Выступи в роли Senior Linux SRE.
Напиши "production-ready" systemd unit-файл (`my-app.service`) для моего Python-приложения.
Чек-лист требований для AI:
1. [ ] [Unit]: Добавить `Description=` и `After=network.target` (чтобы запускался *после* сети).
2. [ ] [Service]:
* `Type=simple`
* `ExecStart=/usr/bin/python3 /opt/my-app/app.py` (путь к приложению).
* `User=www-data` (Критично! Не запускать от root!).
* `Restart=on-failure` (Критично! Авто-перезапуск при сбое).
* `RestartSec=5`
* `WorkingDirectory=/opt/my-app`
3. [ ] [Install]:
* `WantedBy=multi-user.target` (чтобы включался через `systemctl enable`).
4. [ ] Объясни каждую секцию.
Взгляд архитектора: AI генерирует идемпотентный, безопасный (User=) и отказоустойчивый (Restart=) unit. Вы не тратите время на "бойлерплейт", а сразу получаете best-practice.
#ai4admin #linux #systemd #sre #automation #промпты #чеклисты
🔥2
🖥 Security (Home Lab): Pi-hole — "Адблок" для всей вашей домашней сети
Боль: Ваш телефон, ноутбук, планшет, телевизор и даже умная колонка показывают рекламу. Это не только раздражает, но и несет реальные риски: фишинг, малварь, отслеживание. Один неудачный клик — и вся сеть под угрозой.
Решение: Блокировка рекламы и трекеров на уровне DNS для всех устройств в сети.
Pi-hole — это DNS-сервер, который работает как "черная дыра" для нежелательного трафика. Он перехватывает запросы к рекламным и вредоносным доменам и просто не отвечает на них.
Что вы получаете:
Блокировка рекламы везде: На всех устройствах, включая те, где нельзя поставить "адблок" (Smart TV, IoT).
Защита от малвари/фишинга: Большинство вредоносных сайтов используют одни и те же домены — Pi-hole их блокирует.
Контроль и Observability: Удобный веб-интерфейс показывает, какое устройство куда стучится, и что Pi-hole заблокировал.
Никаких VPN: Работает "из коробки" на роутере.
Запуск (в Docker за 5 минут):
После запуска: Перенастройте DNS-сервер на вашем роутере на IP-адрес вашего Pi-hole.
Взгляд архитектора: Вы не "блокируете рекламу". Вы перехватываете контроль над своим DNS-трафиком. Это первый шаг к построению "сегментированной" и "фильтрованной" домашней сети, как в Enterprise.
#security #homelab #pihole #dns #docker #гайд #musthave
Боль: Ваш телефон, ноутбук, планшет, телевизор и даже умная колонка показывают рекламу. Это не только раздражает, но и несет реальные риски: фишинг, малварь, отслеживание. Один неудачный клик — и вся сеть под угрозой.
Решение: Блокировка рекламы и трекеров на уровне DNS для всех устройств в сети.
Pi-hole — это DNS-сервер, который работает как "черная дыра" для нежелательного трафика. Он перехватывает запросы к рекламным и вредоносным доменам и просто не отвечает на них.
Что вы получаете:
Блокировка рекламы везде: На всех устройствах, включая те, где нельзя поставить "адблок" (Smart TV, IoT).
Защита от малвари/фишинга: Большинство вредоносных сайтов используют одни и те же домены — Pi-hole их блокирует.
Контроль и Observability: Удобный веб-интерфейс показывает, какое устройство куда стучится, и что Pi-hole заблокировал.
Никаких VPN: Работает "из коробки" на роутере.
Запуск (в Docker за 5 минут):
# Создаем папку для конфигурации
mkdir -p /opt/pihole
# Запускаем контейнер
docker run -d \
--name pihole \
-p 53:53/tcp -p 53:53/udp \
-p 80:80 \
-e PUID=1000 -e PGID=1000 \
-e TZ="Europe/Moscow" \
-v /opt/pihole:/etc/pihole \
--restart=unless-stopped \
pihole/pihole:latest
После запуска: Перенастройте DNS-сервер на вашем роутере на IP-адрес вашего Pi-hole.
Взгляд архитектора: Вы не "блокируете рекламу". Вы перехватываете контроль над своим DNS-трафиком. Это первый шаг к построению "сегментированной" и "фильтрованной" домашней сети, как в Enterprise.
#security #homelab #pihole #dns #docker #гайд #musthave
👍2
🔒 Windows (Security): "Куда бежать?" Аудит открытых сетевых шар (Open Shares)
Боль: Вы "думаете", что все ваши файловые шары защищены и доступны только "изнутри". Но где-то тихо "живет" шара \\SERVER\Docs, которая открыта "Everyone: Full Control" и светит в интернет через проброс портов.
Реакция админа: "Пролистаю Computer Management на каждом сервере". (Это тысячи шар).
Реакция архитектора: Запустить автоматический скрипт-аудит.
Этот PowerShell-скрипт найдет все открытые шары на всех ваших серверах, которые разрешают доступ группе Everyone (или Authenticated Users).
Код скрипта:
Взгляд архитектора: Это — непрерывный аудит периметра. Открытая шара — это золотой рудник для атакующего. Этот скрипт — ваш сканер безопасности, который должен запускаться регулярно.
#windows #powershell #security #audit #networking #скрипты #sysadmin
Боль: Вы "думаете", что все ваши файловые шары защищены и доступны только "изнутри". Но где-то тихо "живет" шара \\SERVER\Docs, которая открыта "Everyone: Full Control" и светит в интернет через проброс портов.
Реакция админа: "Пролистаю Computer Management на каждом сервере". (Это тысячи шар).
Реакция архитектора: Запустить автоматический скрипт-аудит.
Этот PowerShell-скрипт найдет все открытые шары на всех ваших серверах, которые разрешают доступ группе Everyone (или Authenticated Users).
Код скрипта:
Write-Host "--- Начинаю аудит открытых сетевых шар (Everyone/Auth. Users) ---" -ForegroundColor Cyan
# 1. Получаем список всех серверов в домене
$Servers = Get-ADComputer -Filter 'OperatingSystem -like "Windows Server*"' | Select-Object -ExpandProperty Name
$Report = @()
foreach ($Server in $Servers) {
Write-Host "Проверяю сервер: $Server..."
try {
# Получаем все шары на сервере
$Shares = Get-CimInstance -ClassName Win32_Share -ComputerName $Server -ErrorAction Stop
foreach ($Share in $Shares) {
# Пропускаем стандартные (ADMIN$, C$, IPC$)
if ($Share.Name -notmatch '\$') {
# Получаем ACL каждой шары
$Acl = Get-Acl "Microsoft.PowerShell.Core\FileSystem::\\$Server\$($Share.Name)" -ErrorAction SilentlyContinue
if ($Acl) {
# Ищем правила для Everyone или Authenticated Users
$OpenAcl = $Acl.Access | Where-Object {
($_.IdentityReference -eq "Everyone") -or ($_.IdentityReference -eq "Authenticated Users")
}
if ($OpenAcl) {
$Report += [PSCustomObject]@{
Server = $Server
ShareName = $Share.Name
Path = $Share.Path
Identity = $OpenAcl.IdentityReference
AccessRights = $OpenAcl.FileSystemRights
AccessType = $OpenAcl.AccessControlType
}
}
}
}
}
}
catch {
Write-Warning "Не удалось подключиться к $Server: $($_.Exception.Message)"
}
}
if ($Report) {
Write-Host "`n[!!!] ОБНАРУЖЕНЫ ОТКРЫТЫЕ СЕТЕВЫЕ ШАРЫ (EVERYONE / AUTHENTICATED USERS):" -ForegroundColor Red
$Report | Format-Table -Wrap -AutoSize
} else {
Write-Host "`n[OK] Открытых сетевых шар не найдено." -ForegroundColor Green
}
Взгляд архитектора: Это — непрерывный аудит периметра. Открытая шара — это золотой рудник для атакующего. Этот скрипт — ваш сканер безопасности, который должен запускаться регулярно.
#windows #powershell #security #audit #networking #скрипты #sysadmin
👍2
🛡️ Windows (Security): Аудит UAC. "Почему админ нажимает 'Да'?"
Боль: Вы настроили LAPS, убрали права. Но UAC (User Account Control) — это "внутренний файрвол" Windows, который останавливает 90% атак с повышением привилегий. И многие админы его отключают или ослабляют до "тихого" режима, потому что он "мешает".
Реакция админа: "Я просто нажму 'Да', я же админ".
Реакция архитектора: "Я принудительно включу безопасный UAC через GPO и буду аудировать тех, кто его отключает".
Этот PowerShell-скрипт — ваш аудитор. Он проверит критически важные ключи реестра UAC на списке машин.
Код скрипта:
Взгляд архитектора: Отключение UAC (EnableLUA = 0) — это не "удобство", это приглашение для mimikatz и шифровальщиков. Этот скрипт — ваш первый шаг к Security Baseline (базовому уровню безопасности).
#windows #powershell #security #uac #audit #скрипты #sysadmin
Боль: Вы настроили LAPS, убрали права. Но UAC (User Account Control) — это "внутренний файрвол" Windows, который останавливает 90% атак с повышением привилегий. И многие админы его отключают или ослабляют до "тихого" режима, потому что он "мешает".
Реакция админа: "Я просто нажму 'Да', я же админ".
Реакция архитектора: "Я принудительно включу безопасный UAC через GPO и буду аудировать тех, кто его отключает".
Этот PowerShell-скрипт — ваш аудитор. Он проверит критически важные ключи реестра UAC на списке машин.
Код скрипта:
[CmdletBinding()]
param (
[string[]]$ComputerNames = @("SERVER01", "WKS-01")
)
$UAC_Path = "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
$Report = @()
foreach ($Server in $ComputerNames) {
Write-Host "Проверяю UAC на $Server..."
if (-not (Test-Connection -ComputerName $Server -Count 1 -Quiet)) {
$Report += [PSCustomObject]@{ ComputerName = $Server; Status = "НЕДОСТУПЕН" }
continue
}
try {
$RegKey = Get-ItemProperty -Path $UAC_Path -ComputerName $Server -ErrorAction Stop
$Report += [PSCustomObject]@{
ComputerName = $Server
Status = "OK"
# 1 = Включен (Хорошо)
EnableLUA = $RegKey.EnableLUA
# 2 = "Prompt for consent on the secure desktop" (Лучший)
# 5 = "Prompt for consent" (Нормально)
# 0 = "Elevate without prompting" (КРИТИЧЕСКАЯ УЯЗВИМОСТЬ)
ConsentPromptBehaviorAdmin = $RegKey.ConsentPromptBehaviorAdmin
}
}
catch {
$Report += [PSCustomObject]@{ ComputerName = $Server; Status = "ОШИБКА ДОСТУПА" }
}
}
Write-Host "`n--- РЕЗУЛЬТАТ АУДИТА UAC ---"
$Report | Format-Table
Write-Host "[!] 'EnableLUA = 0' или 'ConsentPromptBehaviorAdmin = 0' — это дыра в безопасности!" -ForegroundColor Red
Взгляд архитектора: Отключение UAC (EnableLUA = 0) — это не "удобство", это приглашение для mimikatz и шифровальщиков. Этот скрипт — ваш первый шаг к Security Baseline (базовому уровню безопасности).
#windows #powershell #security #uac #audit #скрипты #sysadmin
🚀 Linux (CLI): cd — это прошлое. Встречаем zoxide — "умный" cd
Боль: Ваш pwd — /srv/docker/containers/prod/nginx/config/sites-available/. Вам нужно "прыгнуть" в /var/log/nginx.
Реакция админа: cd /var/log/nginx (набирает 20+ символов).
Реакция архитектора: z log
zoxide — это "мозг" для вашей cd. Он запоминает каталоги, в которые вы чаще всего ходите, и "ранжирует" их.
Как это работает:
1. Установка: sudo apt install zoxide / brew install zoxide
2. Добавление в .bashrc / .zshrc: eval "$(zoxide init bash)"
3. Использование:
* z nginx -> "прыгнет" в /var/log/nginx (если вы там часто бываете)
* z sites -> "прыгнет" в /srv/docker/containers/prod/nginx/config/sites-available/
* zoxide query -l -> покажет все "запомненные" пути и их "рейтинг".
Взгляд архитектора: Это оптимизация рабочего процесса. Архитектор убирает "трение" (friction) из своей ежедневной работы. zoxide (как fzf или bat) — это инструмент, который экономит вам тысячи нажатий клавиш в день.
#linux #cli #zoxide #automation #devops #sre #гайд
Боль: Ваш pwd — /srv/docker/containers/prod/nginx/config/sites-available/. Вам нужно "прыгнуть" в /var/log/nginx.
Реакция админа: cd /var/log/nginx (набирает 20+ символов).
Реакция архитектора: z log
zoxide — это "мозг" для вашей cd. Он запоминает каталоги, в которые вы чаще всего ходите, и "ранжирует" их.
Как это работает:
1. Установка: sudo apt install zoxide / brew install zoxide
2. Добавление в .bashrc / .zshrc: eval "$(zoxide init bash)"
3. Использование:
* z nginx -> "прыгнет" в /var/log/nginx (если вы там часто бываете)
* z sites -> "прыгнет" в /srv/docker/containers/prod/nginx/config/sites-available/
* zoxide query -l -> покажет все "запомненные" пути и их "рейтинг".
Взгляд архитектора: Это оптимизация рабочего процесса. Архитектор убирает "трение" (friction) из своей ежедневной работы. zoxide (как fzf или bat) — это инструмент, который экономит вам тысячи нажатий клавиш в день.
#linux #cli #zoxide #automation #devops #sre #гайд
🛡️ Windows (Security): Новое в Server 2025 — Защита LDAP по умолчанию
Боль: В 2025 году 90% AD-доменов до сих пор разрешают LDAP Simple Bind (простая привязка) — то есть, отправку паролей по LDAP (порт 389) в открытом тексте.
Реакция админа: "У меня внутренняя сеть, она доверенная". (Нет).
Реакция архитектора: "Весь трафик аутентификации должен быть зашифрован. Без исключений".
Microsoft меняет правила игры в Windows Server 2025.
Что нового:
1. LDAPS по умолчанию: LDAP-сервер больше не будет принимать Simple Bind (открытый текст), если соединение не зашифровано (через TLS/SSL, порт 636, или через StartTLS).
2. Шифрование Kerberos: Внедряется AES-SHA256/384, что делает Kerberos еще надежнее.
3. TLS 1.3: LDAP теперь поддерживает TLS 1.3 "из коробки".
Взгляд архитектора: Это "Security by Default" (Безопасность по умолчанию). Microsoft принудительно закрывает "дыры", которые админы игнорировали десятилетиями. Ваша задача — не ждать 2025 года. Запускайте LDP.exe, проверяйте свои DC на Simple Bind и внедряйте LDAPS (порт 636) уже вчера.
#windows #security #activedirectory #ldap #windowsserver #architect #гайд
Боль: В 2025 году 90% AD-доменов до сих пор разрешают LDAP Simple Bind (простая привязка) — то есть, отправку паролей по LDAP (порт 389) в открытом тексте.
Реакция админа: "У меня внутренняя сеть, она доверенная". (Нет).
Реакция архитектора: "Весь трафик аутентификации должен быть зашифрован. Без исключений".
Microsoft меняет правила игры в Windows Server 2025.
Что нового:
1. LDAPS по умолчанию: LDAP-сервер больше не будет принимать Simple Bind (открытый текст), если соединение не зашифровано (через TLS/SSL, порт 636, или через StartTLS).
2. Шифрование Kerberos: Внедряется AES-SHA256/384, что делает Kerberos еще надежнее.
3. TLS 1.3: LDAP теперь поддерживает TLS 1.3 "из коробки".
Взгляд архитектора: Это "Security by Default" (Безопасность по умолчанию). Microsoft принудительно закрывает "дыры", которые админы игнорировали десятилетиями. Ваша задача — не ждать 2025 года. Запускайте LDP.exe, проверяйте свои DC на Simple Bind и внедряйте LDAPS (порт 636) уже вчера.
#windows #security #activedirectory #ldap #windowsserver #architect #гайд
👍3