Linux & systemd: Управляем ресурсами "на лету" без перезагрузки
Представьте, один из сервисов (например, тестовое веб-приложение или скрипт аналитики) начал потреблять слишком много CPU или памяти, влияя на работу основных служб. Классическое решение — убить процесс. Архитектурное — ограничить его аппетиты.
systemd позволяет управлять ресурсами (CPU, память, I/O) для любого сервиса с помощью cgroups (Control Groups), и делать это "на лету".
Практический кейс: Ограничить сервис analytics.service максимум 20% CPU и 512MB RAM.
Проверяем текущее потребление:
systemd-cgtop — это htop для контрольных групп. Он покажет, какие сервисы и пользователи сколько ресурсов потребляют.
Bash
Устанавливаем ограничения "на лету":
Эти настройки будут действовать до перезагрузки сервиса или системы. Идеально для экстренных ситуаций.
Bash
Закрепляем настройки на постоянной основе:
Чтобы ограничения применялись при каждом запуске, нужно добавить их в unit-файл сервиса.
Bash
В открывшийся файл добавьте секцию [Service] с параметрами:
Ini, TOML
Сохраните файл и перезагрузите конфигурацию: sudo systemctl daemon-reload.
Взгляд архитектора:
Это гарантия качества обслуживания (QoS) на уровне одного сервера. Управляя ресурсами, вы предотвращаете ситуацию, когда один второстепенный процесс кладёт всю систему. Это фундаментальный подход для построения стабильной и предсказуемой инфраструктуры, особенно в средах с множеством сервисов (multi-tenant).
#linux #systemd #cgroups #sre #гайд
Представьте, один из сервисов (например, тестовое веб-приложение или скрипт аналитики) начал потреблять слишком много CPU или памяти, влияя на работу основных служб. Классическое решение — убить процесс. Архитектурное — ограничить его аппетиты.
systemd позволяет управлять ресурсами (CPU, память, I/O) для любого сервиса с помощью cgroups (Control Groups), и делать это "на лету".
Практический кейс: Ограничить сервис analytics.service максимум 20% CPU и 512MB RAM.
Проверяем текущее потребление:
systemd-cgtop — это htop для контрольных групп. Он покажет, какие сервисы и пользователи сколько ресурсов потребляют.
Bash
sudo systemd-cgtop
Устанавливаем ограничения "на лету":
Эти настройки будут действовать до перезагрузки сервиса или системы. Идеально для экстренных ситуаций.
Bash
# Ограничиваем CPU до 20%
sudo systemctl set-property analytics.service CPUQuota=20%
# Ограничиваем память до 512MB
sudo systemctl set-property analytics.service MemoryMax=512M
Закрепляем настройки на постоянной основе:
Чтобы ограничения применялись при каждом запуске, нужно добавить их в unit-файл сервиса.
Bash
# Открываем unit для редактирования
sudo systemctl edit analytics.service
В открывшийся файл добавьте секцию [Service] с параметрами:
Ini, TOML
[Service]
CPUQuota=20%
MemoryMax=512M
Сохраните файл и перезагрузите конфигурацию: sudo systemctl daemon-reload.
Взгляд архитектора:
Это гарантия качества обслуживания (QoS) на уровне одного сервера. Управляя ресурсами, вы предотвращаете ситуацию, когда один второстепенный процесс кладёт всю систему. Это фундаментальный подход для построения стабильной и предсказуемой инфраструктуры, особенно в средах с множеством сервисов (multi-tenant).
#linux #systemd #cgroups #sre #гайд
🔥4
Создай свой Runbook: Перестань быть героем, начни строить систему
Герой — это админ, который в 3 часа ночи в одиночку поднимает упавший сервер. Профессионал — это тот, кто создал Runbook (или Playbook), по которому этот сервер может поднять любой дежурный инженер за 15 минут.
Runbook — это подробная пошаговая инструкция по решению конкретной проблемы или выполнению стандартной операции.
Из чего состоит хороший Runbook:
Название: Чёткое и понятное. Пример: "Восстановление работы веб-сервера после сбоя БД".
Контекст: Когда применять эту инструкцию? Какие симптомы у проблемы? Пример: "Сайт отдаёт ошибку 503, в логах приложения ошибки подключения к PostgreSQL".
Пошаговые действия: Команды, которые нужно выполнить, скриншоты, куда нажать. Каждый шаг должен быть атомарным и проверяемым.
Проверка результата: Как убедиться, что проблема решена? Пример: "Выполнить curl -I site.com, ожидаемый ответ — HTTP/2 200".
План отката (Rollback): Что делать, если инструкция не помогла или сделала хуже?
Контакты: К кому обратиться за помощью, если ничего не помогает.
Где хранить?
Начните с простого: корпоративная Wiki (Confluence, Notion) или даже репозиторий в Markdown-файлах. Главное — чтобы это было доступно всей команде.
Взгляд архитектора:
Runbook — это способ кодификации знаний. Он снижает зависимость от конкретных людей, ускоряет решение инцидентов и является основой для дальнейшей автоматизации. Задача архитектора — не просто решать проблемы, а создавать систему, которая решает их предсказуемо и масштабируемо.
#devops #sre #runbook #architect #стратегия
Герой — это админ, который в 3 часа ночи в одиночку поднимает упавший сервер. Профессионал — это тот, кто создал Runbook (или Playbook), по которому этот сервер может поднять любой дежурный инженер за 15 минут.
Runbook — это подробная пошаговая инструкция по решению конкретной проблемы или выполнению стандартной операции.
Из чего состоит хороший Runbook:
Название: Чёткое и понятное. Пример: "Восстановление работы веб-сервера после сбоя БД".
Контекст: Когда применять эту инструкцию? Какие симптомы у проблемы? Пример: "Сайт отдаёт ошибку 503, в логах приложения ошибки подключения к PostgreSQL".
Пошаговые действия: Команды, которые нужно выполнить, скриншоты, куда нажать. Каждый шаг должен быть атомарным и проверяемым.
Проверка результата: Как убедиться, что проблема решена? Пример: "Выполнить curl -I site.com, ожидаемый ответ — HTTP/2 200".
План отката (Rollback): Что делать, если инструкция не помогла или сделала хуже?
Контакты: К кому обратиться за помощью, если ничего не помогает.
Где хранить?
Начните с простого: корпоративная Wiki (Confluence, Notion) или даже репозиторий в Markdown-файлах. Главное — чтобы это было доступно всей команде.
Взгляд архитектора:
Runbook — это способ кодификации знаний. Он снижает зависимость от конкретных людей, ускоряет решение инцидентов и является основой для дальнейшей автоматизации. Задача архитектора — не просто решать проблемы, а создавать систему, которая решает их предсказуемо и масштабируемо.
#devops #sre #runbook #architect #стратегия
🔥3❤2
Windows: Перестань быть слепым. Включаем "чёрный ящик" с помощью Sysmon
Стандартные логи Windows (Event Log) показывают, что произошло. Sysmon (System Monitor) показывает, как это произошло. Это бесплатная утилита из набора Sysinternals от Марка Руссиновича, которая превращает ваш сервер в настоящий бортовой самописец.
Sysmon — это не антивирус. Это инструмент для Threat Hunting (охоты на угрозы). Он логирует то, что обычно остаётся невидимым:
Создание процессов с хешами файлов.
Сетевые соединения для каждого процесса.
Загрузку драйверов и DLL.
Изменения в WMI и реестре.
Быстрый старт:
Скачайте Sysmon с сайта Microsoft (Sysinternals Suite).
Создайте конфигурационный файл. Начинать с нуля сложно, поэтому используйте проверенный шаблон от SwiftOnSecurity. Он отфильтровывает 95% шума и оставляет только потенциально вредоносные события.
PowerShell
Установка и запуск:
PowerShell
Где смотреть логи?
Все события Sysmon пишутся в стандартный Event Viewer по пути: Журналы приложений и служб / Microsoft / Windows / Sysmon / Operational.
Пример реального кейса:
Вы видите, что powershell.exe установил подозрительное сетевое соединение с IP-адресом в Китае (Событие ID 3). Открыв событие создания этого процесса (ID 1), вы видите его родительский процесс — winword.exe. Это классический признак фишинговой атаки через макрос в документе. Со стандартными логами вы бы этого не увидели.
Взгляд архитектора:
Sysmon — это основа для построения централизованной системы сбора и анализа логов (SIEM). Отправляя события Sysmon в ELK Stack, Splunk или Graylog, вы получаете полную картину происходящего в вашей инфраструктуре и можете выявлять сложные атаки на ранних стадиях.
#windows #security #sysmon #sysinternals #threat_hunting #architect
Стандартные логи Windows (Event Log) показывают, что произошло. Sysmon (System Monitor) показывает, как это произошло. Это бесплатная утилита из набора Sysinternals от Марка Руссиновича, которая превращает ваш сервер в настоящий бортовой самописец.
Sysmon — это не антивирус. Это инструмент для Threat Hunting (охоты на угрозы). Он логирует то, что обычно остаётся невидимым:
Создание процессов с хешами файлов.
Сетевые соединения для каждого процесса.
Загрузку драйверов и DLL.
Изменения в WMI и реестре.
Быстрый старт:
Скачайте Sysmon с сайта Microsoft (Sysinternals Suite).
Создайте конфигурационный файл. Начинать с нуля сложно, поэтому используйте проверенный шаблон от SwiftOnSecurity. Он отфильтровывает 95% шума и оставляет только потенциально вредоносные события.
PowerShell
# Скачиваем конфиг
Invoke-WebRequest -Uri "https://raw.githubusercontent.com/SwiftOnSecurity/sysmon-config/master/sysmonconfig-export.xml" -OutFile sysmonconfig.xml
Установка и запуск:
PowerShell
# Устанавливаем Sysmon как службу с нашим конфигом
.\sysmon.exe -accepteula -i sysmonconfig.xml
Где смотреть логи?
Все события Sysmon пишутся в стандартный Event Viewer по пути: Журналы приложений и служб / Microsoft / Windows / Sysmon / Operational.
Пример реального кейса:
Вы видите, что powershell.exe установил подозрительное сетевое соединение с IP-адресом в Китае (Событие ID 3). Открыв событие создания этого процесса (ID 1), вы видите его родительский процесс — winword.exe. Это классический признак фишинговой атаки через макрос в документе. Со стандартными логами вы бы этого не увидели.
Взгляд архитектора:
Sysmon — это основа для построения централизованной системы сбора и анализа логов (SIEM). Отправляя события Sysmon в ELK Stack, Splunk или Graylog, вы получаете полную картину происходящего в вашей инфраструктуре и можете выявлять сложные атаки на ранних стадиях.
#windows #security #sysmon #sysinternals #threat_hunting #architect
👍2
Linux & curl: Ты используешь его неправильно. 3 продвинутых трюка
Все знают curl https://google.com. Но curl — это не просто браузер в терминале, это швейцарский нож для работы с любым HTTP-ресурсом. Пора использовать его как профессионал.
Трюк 1: Анализ времени ответа (профилирование)
Когда сайт тормозит, где именно проблема: DNS, TCP-соединение, SSL-рукопожатие или ожидание ответа от сервера? curl может разложить всё по полочкам.
Bash
Вы получите JSON с точным временем каждого этапа соединения.
Трюк 2: Отправка JSON и заголовков (тестирование API)
Не нужно ставить Postman, чтобы протестировать API.
Bash
Трюк 3: Повтор запроса при ошибке (для скриптов)
Ваш скрипт упал, потому что сеть моргнула? curl может сам повторить запрос.
Bash
Взгляд архитектора:
curl — это не просто утилита, это универсальный кирпичик для построения систем автоматизации и мониторинга. Глубокое понимание его возможностей позволяет писать надёжные скрипты, создавать health checks для сервисов и проводить отладку сетевых взаимодействий без привлечения тяжеловесных инструментов.
#linux #curl #devops #api #networking #команды
Все знают curl https://google.com. Но curl — это не просто браузер в терминале, это швейцарский нож для работы с любым HTTP-ресурсом. Пора использовать его как профессионал.
Трюк 1: Анализ времени ответа (профилирование)
Когда сайт тормозит, где именно проблема: DNS, TCP-соединение, SSL-рукопожатие или ожидание ответа от сервера? curl может разложить всё по полочкам.
Bash
# Создаём файл curl-format.txt с нужными переменными
cat > curl-format.txt <<EOF
{
"time_namelookup": "%{time_namelookup}",
"time_connect": "%{time_connect}",
"time_appconnect": "%{time_appconnect}",
"time_pretransfer": "%{time_pretransfer}",
"time_starttransfer": "%{time_starttransfer}",
"time_total": "%{time_total}"
}
EOF
# Запускаем curl с нашим форматом вывода
curl -w "@curl-format.txt" -o /dev/null -s https://habr.com/
Вы получите JSON с точным временем каждого этапа соединения.
Трюк 2: Отправка JSON и заголовков (тестирование API)
Не нужно ставить Postman, чтобы протестировать API.
Bash
# Отправляем POST-запрос с JSON-телом и кастомным заголовком
curl -X POST \
-H "Content-Type: application/json" \
-H "Authorization: Bearer mysecrettoken" \
-d '{"username":"admin","status":"active"}' \
http://api.example.com/users
Трюк 3: Повтор запроса при ошибке (для скриптов)
Ваш скрипт упал, потому что сеть моргнула? curl может сам повторить запрос.
Bash
# Попробовать 5 раз с задержкой в 10 секунд между попытками
curl --retry 5 --retry-delay 10 https://updates.example.com/latest.zip -O
Взгляд архитектора:
curl — это не просто утилита, это универсальный кирпичик для построения систем автоматизации и мониторинга. Глубокое понимание его возможностей позволяет писать надёжные скрипты, создавать health checks для сервисов и проводить отладку сетевых взаимодействий без привлечения тяжеловесных инструментов.
#linux #curl #devops #api #networking #команды
Pets vs Cattle: Главный принцип облачной архитектуры, который должен знать каждый админ
Этот знаменитый афоризм из мира облачных вычислений меняет всё. Он разделяет серверы на два типа и определяет, как вы должны к ним относиться.
Pets (питомцы):
Это серверы, к которым вы относитесь как к домашним любимцам.
У них есть уникальные имена (db-master-01, mail-srv).
Вы их холите и лелеете, ставите обновления вручную, лечите, когда они "болеют".
Если такой сервер падает — это катастрофа, все бегут его поднимать.
Примеры: Контроллер домена, основной сервер баз данных, старый монолитный сервер приложений.
Cattle (скот):
Это серверы, к которым относятся как к стаду.
У них нет имён, только номера (web-worker-001, web-worker-002).
Их никто не лечит. Если один сервер "заболел", его просто "пристреливают" (удаляют), а на его место автоматически приходит новый, созданный из того же образа.
Потеря одного сервера — не событие. Система в целом продолжает работать.
Примеры: Веб-серверы за балансировщиком, воркеры в Kubernetes-кластере, инстансы в Auto Scaling Group.
Взгляд архитектора:
Цель современной архитектуры — превратить как можно больше "питомцев" в "стадо". Это достигается через автоматизацию (Ansible, Terraform), контейнеризацию (Docker, Kubernetes) и проектирование приложений, которые не хранят состояние локально (stateless). Такой подход позволяет строить масштабируемые, отказоустойчивые и легко управляемые системы.
Задайте себе вопрос: сколько в вашей инфраструктуре "питомцев", и что нужно сделать, чтобы их стало меньше?
#architect #cloud #devops #petsvscattle #sre #стратегия
Этот знаменитый афоризм из мира облачных вычислений меняет всё. Он разделяет серверы на два типа и определяет, как вы должны к ним относиться.
Pets (питомцы):
Это серверы, к которым вы относитесь как к домашним любимцам.
У них есть уникальные имена (db-master-01, mail-srv).
Вы их холите и лелеете, ставите обновления вручную, лечите, когда они "болеют".
Если такой сервер падает — это катастрофа, все бегут его поднимать.
Примеры: Контроллер домена, основной сервер баз данных, старый монолитный сервер приложений.
Cattle (скот):
Это серверы, к которым относятся как к стаду.
У них нет имён, только номера (web-worker-001, web-worker-002).
Их никто не лечит. Если один сервер "заболел", его просто "пристреливают" (удаляют), а на его место автоматически приходит новый, созданный из того же образа.
Потеря одного сервера — не событие. Система в целом продолжает работать.
Примеры: Веб-серверы за балансировщиком, воркеры в Kubernetes-кластере, инстансы в Auto Scaling Group.
Взгляд архитектора:
Цель современной архитектуры — превратить как можно больше "питомцев" в "стадо". Это достигается через автоматизацию (Ansible, Terraform), контейнеризацию (Docker, Kubernetes) и проектирование приложений, которые не хранят состояние локально (stateless). Такой подход позволяет строить масштабируемые, отказоустойчивые и легко управляемые системы.
Задайте себе вопрос: сколько в вашей инфраструктуре "питомцев", и что нужно сделать, чтобы их стало меньше?
#architect #cloud #devops #petsvscattle #sre #стратегия
Windows DNS: Построй свою "черную дыру". Создаем DNS Sinkhole для защиты от вредоносов
Когда пользователь кликает на фишинговую ссылку, его компьютер сначала обращается к DNS-серверу, чтобы узнать IP-адрес вредоносного домена. Что если мы можем перехватить этот запрос и отправить пользователя в безопасное место (или в никуда)?
Это и есть DNS Sinkhole (или Blackhole) — один из самых эффективных способов блокировки вредоносной активности на уровне всей сети.
Как это реализовать на Windows DNS Server:
Создаем "черную дыру":
Откройте диспетчер DNS.
Создайте новую зону прямого просмотра (Primary Zone).
Имя зоны — это вредоносный домен, который вы хотите заблокировать (например, malicious-site.com).
Создайте в этой зоне запись типа A с * (звездочка) в качестве имени.
В качестве IP-адреса укажите 127.0.0.1 (localhost) или IP-адрес внутреннего сервера с заглушкой "Доступ заблокирован".
Автоматизируем с PowerShell:
Вручную добавлять тысячи доменов — не вариант. Используем PowerShell и списки блокировки.
PowerShell
Этот скрипт можно поставить в Планировщик Задач для автоматического обновления из публичных блэклистов (например, StevenBlack/hosts).
Взгляд архитектора:
DNS Sinkhole — это первый эшелон обороны. Он не требует установки агентов на клиентские машины и защищает все устройства в сети, включая те, которые сложно контролировать (BYOD, IoT). Это проактивный подход к безопасности, который блокирует угрозу еще до того, as она достигнет своей цели.
#windows #security #dns #powershell #architect #гайд
Когда пользователь кликает на фишинговую ссылку, его компьютер сначала обращается к DNS-серверу, чтобы узнать IP-адрес вредоносного домена. Что если мы можем перехватить этот запрос и отправить пользователя в безопасное место (или в никуда)?
Это и есть DNS Sinkhole (или Blackhole) — один из самых эффективных способов блокировки вредоносной активности на уровне всей сети.
Как это реализовать на Windows DNS Server:
Создаем "черную дыру":
Откройте диспетчер DNS.
Создайте новую зону прямого просмотра (Primary Zone).
Имя зоны — это вредоносный домен, который вы хотите заблокировать (например, malicious-site.com).
Создайте в этой зоне запись типа A с * (звездочка) в качестве имени.
В качестве IP-адреса укажите 127.0.0.1 (localhost) или IP-адрес внутреннего сервера с заглушкой "Доступ заблокирован".
Автоматизируем с PowerShell:
Вручную добавлять тысячи доменов — не вариант. Используем PowerShell и списки блокировки.
PowerShell
# Список доменов для блокировки (в реальности он будет загружаться из файла или URL)
$BlockList = @(
"bad-domain-1.com",
"phishing-site-2.net",
"malware-dist-3.org"
)
# IP-адрес нашей "черной дыры"
$SinkholeIP = "127.0.0.1"
foreach ($Domain in $BlockList) {
Write-Host "Создаю зону для: $Domain"
# Создаём зону
Add-DnsServerPrimaryZone -Name $Domain -ReplicationScope "Forest" -PassThru
# Создаём wildcard A-запись, которая перенаправляет весь трафик
Add-DnsServerResourceRecordA -ZoneName $Domain -Name "*" -IPv4Address $SinkholeIP
}
Этот скрипт можно поставить в Планировщик Задач для автоматического обновления из публичных блэклистов (например, StevenBlack/hosts).
Взгляд архитектора:
DNS Sinkhole — это первый эшелон обороны. Он не требует установки агентов на клиентские машины и защищает все устройства в сети, включая те, которые сложно контролировать (BYOD, IoT). Это проактивный подход к безопасности, который блокирует угрозу еще до того, as она достигнет своей цели.
#windows #security #dns #powershell #architect #гайд
👍4
Linux: Когда top и htop бессильны. Знакомство с perf — скальпелем для анализа производительности
top показывает, какой процесс грузит CPU. perf показывает, какая функция внутри этого процесса грузит CPU. Это инструмент уровня SRE и kernel-разработчиков, но основы его использования должен знать каждый продвинутый админ.
Практический кейс: Веб-сервер Nginx начал потреблять много CPU. Почему?
Собираем данные (профилирование):
Запускаем perf на 10 секунд, чтобы собрать статистику по всей системе с частотой 99 Гц.
Bash
-a — по всей системе, -g — записывать графы вызовов.
В текущей директории будет создан файл perf.data.
Анализируем отчет:
Открываем собранные данные в интерактивном режиме.
Bash
Вы увидите псевдографический интерфейс, где сможете "проваливаться" внутрь процессов и функций. В нашем случае мы найдем процесс nginx, раскроем его и увидим, что, например, 90% времени CPU тратится на функцию, связанную со сжатием gzip или обработкой SSL.
Другие полезные команды:
sudo perf top — интерактивный режим, похожий на top, но с функциями.
sudo perf stat <command> — запускает команду и показывает детальную статистику по её выполнению (промахи кэша, ошибки страниц и т.д.).
Взгляд архитектора:
perf позволяет находить коренные причины (root cause) проблем с производительностью, а не бороться с симптомами. Умение работать с такими инструментами отличает инженера, который может оптимизировать систему на низком уровне, от админа, который в любой непонятной ситуации просто добавляет CPU.
#linux #performance #sre #perf #monitoring #команды
top показывает, какой процесс грузит CPU. perf показывает, какая функция внутри этого процесса грузит CPU. Это инструмент уровня SRE и kernel-разработчиков, но основы его использования должен знать каждый продвинутый админ.
Практический кейс: Веб-сервер Nginx начал потреблять много CPU. Почему?
Собираем данные (профилирование):
Запускаем perf на 10 секунд, чтобы собрать статистику по всей системе с частотой 99 Гц.
Bash
# perf требует прав root или специальной настройки
sudo perf record -F 99 -a -g -- sleep 10
-a — по всей системе, -g — записывать графы вызовов.
В текущей директории будет создан файл perf.data.
Анализируем отчет:
Открываем собранные данные в интерактивном режиме.
Bash
sudo perf report
Вы увидите псевдографический интерфейс, где сможете "проваливаться" внутрь процессов и функций. В нашем случае мы найдем процесс nginx, раскроем его и увидим, что, например, 90% времени CPU тратится на функцию, связанную со сжатием gzip или обработкой SSL.
Другие полезные команды:
sudo perf top — интерактивный режим, похожий на top, но с функциями.
sudo perf stat <command> — запускает команду и показывает детальную статистику по её выполнению (промахи кэша, ошибки страниц и т.д.).
Взгляд архитектора:
perf позволяет находить коренные причины (root cause) проблем с производительностью, а не бороться с симптомами. Умение работать с такими инструментами отличает инженера, который может оптимизировать систему на низком уровне, от админа, который в любой непонятной ситуации просто добавляет CPU.
#linux #performance #sre #perf #monitoring #команды
AI-промпт: "Напиши за меня PowerShell скрипт для аудита локальных администраторов"
Одна из самых частых задач ИБ-аудита — проверить, кто входит в группу локальных администраторов на всех рабочих станциях. Давайте заставим AI сгенерировать для нас готовый к работе скрипт.
Промпт (для ChatGPT/Gemini/Copilot):
Предоставь готовый к выполнению код.
Почему это работает:
Роль: Senior PowerShell-разработчик и эксперт по безопасности задают высокий стандарт качества кода и правильность подходов.
Декомпозиция: Мы разбили задачу на 6 четких шагов. AI не нужно додумывать, что мы хотим.
Исключения: Указание "игнорирует стандартных членов" делает результат сразу полезным, отсекая шум.
Формат вывода: Мы просим не просто вывести на экран, а создать CSV-файл, что характерно для реальной задачи.
Результат: Вы получите готовый скрипт на 20-30 строк, который можно сразу использовать. Архитектор не тратит время на написание рутинных скриптов, он тратит время на анализ их результатов.
#ai4admin #powershell #security #activedirectory #automation #промпты
Одна из самых частых задач ИБ-аудита — проверить, кто входит в группу локальных администраторов на всех рабочих станциях. Давайте заставим AI сгенерировать для нас готовый к работе скрипт.
Промпт (для ChatGPT/Gemini/Copilot):
Выступи в роли Senior PowerShell-разработчика и эксперта по безопасности Active Directory.
Напиши PowerShell-скрипт, который выполняет следующие действия:
1. Берёт список всех активных компьютеров из указанного Organizational Unit (OU) в Active Directory.
2. Для каждого компьютера из списка получает членов локальной группы "Администраторы" (Administrators).
3. Игнорирует стандартных членов группы (Administrator, Domain Admins).
4. Выводит результат в виде таблицы: Компьютер, Пользователь/Группа.
5. Экспортирует результат в CSV-файл для дальнейшего анализа.
6. Скрипт должен содержать комментарии, объясняющие ключевые шаги.
Предоставь готовый к выполнению код.
Почему это работает:
Роль: Senior PowerShell-разработчик и эксперт по безопасности задают высокий стандарт качества кода и правильность подходов.
Декомпозиция: Мы разбили задачу на 6 четких шагов. AI не нужно додумывать, что мы хотим.
Исключения: Указание "игнорирует стандартных членов" делает результат сразу полезным, отсекая шум.
Формат вывода: Мы просим не просто вывести на экран, а создать CSV-файл, что характерно для реальной задачи.
Результат: Вы получите готовый скрипт на 20-30 строк, который можно сразу использовать. Архитектор не тратит время на написание рутинных скриптов, он тратит время на анализ их результатов.
#ai4admin #powershell #security #activedirectory #automation #промпты
Self-Hosted: Ваша личная IT-империя. Альтернативы SaaS-сервисам
Мы привыкли платить за подписки: почта, облачное хранилище, видеозвонки, таск-трекеры. Но что, если можно запустить всё это на своём сервере, полностью контролируя данные и избавляясь от ежемесячных платежей?
Наши коллеги-энтузиасты собрали гигантскую подборку open-source приложений для запуска почти любых сервисов прямо у вас. Почта (Mailu), облачное хранилище (Nextcloud), видеоконференции (Jitsi), менеджер паролей (Vaultwarden), стриминг-платформы (Jellyfin) — всё в одном месте.
Что внутри:
Список self-hosted альтернатив для десятков популярных SaaS.
Ссылки на GitHub и документацию.
Часто — готовые docker-compose.yml для быстрого старта.
Взгляд архитектора:
Это не просто про экономию. Это про суверенитет данных и создание идеального Home Lab. Разворачивая эти сервисы, вы на практике оттачиваете ключевые навыки: работа с Docker, настройка Nginx в роли reverse proxy, конфигурация бэкапов и мониторинга.
Главный архитектурный принцип здесь — свобода в обмен на ответственность. Вы получаете полный контроль, но безопасность, обновления и аптайм — теперь ваша задача.
Забираем бесценную подборку по ссылке:
https://github.com/Atarity/deploy-your-own-saas
#selfhosted #linux #docker #devops #saas #гайд
Мы привыкли платить за подписки: почта, облачное хранилище, видеозвонки, таск-трекеры. Но что, если можно запустить всё это на своём сервере, полностью контролируя данные и избавляясь от ежемесячных платежей?
Наши коллеги-энтузиасты собрали гигантскую подборку open-source приложений для запуска почти любых сервисов прямо у вас. Почта (Mailu), облачное хранилище (Nextcloud), видеоконференции (Jitsi), менеджер паролей (Vaultwarden), стриминг-платформы (Jellyfin) — всё в одном месте.
Что внутри:
Список self-hosted альтернатив для десятков популярных SaaS.
Ссылки на GitHub и документацию.
Часто — готовые docker-compose.yml для быстрого старта.
Взгляд архитектора:
Это не просто про экономию. Это про суверенитет данных и создание идеального Home Lab. Разворачивая эти сервисы, вы на практике оттачиваете ключевые навыки: работа с Docker, настройка Nginx в роли reverse proxy, конфигурация бэкапов и мониторинга.
Главный архитектурный принцип здесь — свобода в обмен на ответственность. Вы получаете полный контроль, но безопасность, обновления и аптайм — теперь ваша задача.
Забираем бесценную подборку по ссылке:
https://github.com/Atarity/deploy-your-own-saas
#selfhosted #linux #docker #devops #saas #гайд
👍3
Windows: Не отключай Firewall! Управляй им как профи через PowerShell
Самый частый "совет" по решению проблем с сетью в Windows — "отключи брандмауэр". С точки зрения безопасности — это катастрофа. Графический интерфейс файрвола действительно неудобен, но у архитектора есть PowerShell.
Управлять правилами из командной строки — быстро, удобно и, главное, автоматизируемо.
Базовые команды, которые нужно знать:
Проверить статус всех профилей (Domain, Private, Public):
PowerShell
Создать простое правило (например, разрешить входящий SSH):
PowerShell
Найти и временно отключить правило:
PowerShell
Управлять правилами на удалённом сервере:
Используем CIM-сессии для удалённого выполнения.
PowerShell
Взгляд архитектора:
Брандмауэр — это не помеха, а критический компонент эшелонированной обороны (Defense in Depth). Использование PowerShell позволяет применять Конфигурацию как Код (CaC) к правилам безопасности. Вы можете хранить скрипты с правилами в Git, версионировать их и раскатывать на сотни серверов, гарантируя единый стандарт безопасности по всей инфраструктуре.
#windows #security #powershell #firewall #networking #гайд
Самый частый "совет" по решению проблем с сетью в Windows — "отключи брандмауэр". С точки зрения безопасности — это катастрофа. Графический интерфейс файрвола действительно неудобен, но у архитектора есть PowerShell.
Управлять правилами из командной строки — быстро, удобно и, главное, автоматизируемо.
Базовые команды, которые нужно знать:
Проверить статус всех профилей (Domain, Private, Public):
PowerShell
Get-NetFirewallProfile | Format-Table Name, Enabled
Создать простое правило (например, разрешить входящий SSH):
PowerShell
New-NetFirewallRule -DisplayName "Allow SSH In" -Direction Inbound -Protocol TCP -LocalPort 22 -Action Allow -Profile Domain, Private
Найти и временно отключить правило:
PowerShell
# Находим правило по имени
Get-NetFirewallRule -DisplayName "Allow SSH In"
# Отключаем его, не удаляя
Disable-NetFirewallRule -DisplayName "Allow SSH In"
Управлять правилами на удалённом сервере:
Используем CIM-сессии для удалённого выполнения.
PowerShell
$session = New-CimSession -ComputerName WEBSRV01
Get-NetFirewallRule -CimSession $session -DisplayName "Allow-File-And-Printer-Sharing"
Взгляд архитектора:
Брандмауэр — это не помеха, а критический компонент эшелонированной обороны (Defense in Depth). Использование PowerShell позволяет применять Конфигурацию как Код (CaC) к правилам безопасности. Вы можете хранить скрипты с правилами в Git, версионировать их и раскатывать на сотни серверов, гарантируя единый стандарт безопасности по всей инфраструктуре.
#windows #security #powershell #firewall #networking #гайд
Linux & API: Парсим JSON в терминале как боги с помощью jq
curl-нул API и получил в ответ стену текста в формате JSON? Пытаться разобрать это глазами или через grep — прошлый век. Для работы со структурированными данными в терминале есть свой sed и awk — это утилита jq.
jq — это легковесный и сверхмощный обработчик JSON для командной строки.
Установка: sudo apt install jq или brew install jq.
Практический пример с GitHub API:
Получаем и красиво форматируем JSON:
Bash
# Получаем значение ключа "name"
curl -s 'https://api.github.com/users/torvalds' | jq '.name'
# Результат: "Linus Torvalds"
curl -s 'https://api.github.com/users/torvalds' | jq '{user: .login, company: .company, location: .location}'
# Получаем список репозиториев и выводим только их имена
curl -s 'https://api.github.com/users/torvalds/repos' | jq '.[ ].name'
[ ] — итератор по массиву.
Взгляд архитектора:
jq — это клей для современной автоматизации. Он позволяет строить сложные и надёжные пайплайны в bash-скриптах, которые работают с API облачных провайдеров, системами мониторинга и любыми другими сервисами, говорящими на JSON. Это превращает нечитаемые данные в полезную информацию прямо в терминале.
#linux #jq #json #api #bash #devops #команды
curl-нул API и получил в ответ стену текста в формате JSON? Пытаться разобрать это глазами или через grep — прошлый век. Для работы со структурированными данными в терминале есть свой sed и awk — это утилита jq.
jq — это легковесный и сверхмощный обработчик JSON для командной строки.
Установка: sudo apt install jq или brew install jq.
Практический пример с GitHub API:
Получаем и красиво форматируем JSON:
Bash
# Просто передаём вывод curl в jq с фильтром '.' (точка)
curl -s 'https://api.github.com/users/torvalds' | jq '.'
``
Извлекаем одно значение:
Bash
# Получаем значение ключа "name"
curl -s 'https://api.github.com/users/torvalds' | jq '.name'
# Результат: "Linus Torvalds"
Извлекаем несколько значений и создаем свой объект:
Bash
curl -s 'https://api.github.com/users/torvalds' | jq '{user: .login, company: .company, location: .location}'
Работаем с массивами (самое мощное):
Bash
# Получаем список репозиториев и выводим только их имена
curl -s 'https://api.github.com/users/torvalds/repos' | jq '.[ ].name'
`[ ] — итератор по массиву.
Взгляд архитектора:
jq — это клей для современной автоматизации. Он позволяет строить сложные и надёжные пайплайны в bash-скриптах, которые работают с API облачных провайдеров, системами мониторинга и любыми другими сервисами, говорящими на JSON. Это превращает нечитаемые данные в полезную информацию прямо в терминале.
#linux #jq #json #api #bash #devops #команды
👍2
Проект на выходные: Nginx Proxy Manager. Управляем реверс-прокси и SSL через GUI
Редактировать конфиги Nginx вручную для каждого нового сервиса — рутина, в которой легко ошибиться. Если вы поднимаете много веб-приложений (особенно в своей Home Lab), вам нужен инструмент, который делает это красиво.
Nginx Proxy Manager — это готовое решение в Docker-контейнере, которое даёт вам удобный веб-интерфейс для управления всеми вашими сайтами и реверс-прокси.
Ключевые фичи:
Графический интерфейс: Забудьте про правку конфигов. Добавляйте хосты, настраивайте редиректы и защиту парой кликов.
Бесплатные SSL-сертификаты: Встроенная интеграция с Let's Encrypt. Он сам получит и будет автоматически продлевать сертификаты для ваших доменов.
Списки доступа (Access Lists): Ограничивайте доступ к сервисам по IP или через логин/пароль.
Простая установка: Запускается одной docker-compose командой.
Готовый docker-compose.yml для старта:
YAML
Запустите docker-compose up -d, откройте http://<ваш_ip>:81 и начните настраивать.
Взгляд архитектора:
Этот инструмент не просто экономит время. Он стандартизирует и защищает ваши точки входа. Best practice (как, например, SSL для всего) становятся настройкой по умолчанию, а не чем-то, что можно забыть. Это идеальный способ навести порядок в зоопарке ваших веб-сервисов.
#linux #docker #nginx #selfhosted #гайд #weekendproject
Редактировать конфиги Nginx вручную для каждого нового сервиса — рутина, в которой легко ошибиться. Если вы поднимаете много веб-приложений (особенно в своей Home Lab), вам нужен инструмент, который делает это красиво.
Nginx Proxy Manager — это готовое решение в Docker-контейнере, которое даёт вам удобный веб-интерфейс для управления всеми вашими сайтами и реверс-прокси.
Ключевые фичи:
Графический интерфейс: Забудьте про правку конфигов. Добавляйте хосты, настраивайте редиректы и защиту парой кликов.
Бесплатные SSL-сертификаты: Встроенная интеграция с Let's Encrypt. Он сам получит и будет автоматически продлевать сертификаты для ваших доменов.
Списки доступа (Access Lists): Ограничивайте доступ к сервисам по IP или через логин/пароль.
Простая установка: Запускается одной docker-compose командой.
Готовый docker-compose.yml для старта:
YAML
version: '3.8'
services:
app:
image: 'jc21/nginx-proxy-manager:latest'
restart: unless-stopped
ports:
# Public HTTP Port:
- '80:80'
# Public HTTPS Port:
- '443:443'
# Admin Port:
- '81:81'
volumes:
- ./data:/data
- ./letsencrypt:/etc/letsencrypt
Запустите docker-compose up -d, откройте http://<ваш_ip>:81 и начните настраивать.
Взгляд архитектора:
Этот инструмент не просто экономит время. Он стандартизирует и защищает ваши точки входа. Best practice (как, например, SSL для всего) становятся настройкой по умолчанию, а не чем-то, что можно забыть. Это идеальный способ навести порядок в зоопарке ваших веб-сервисов.
#linux #docker #nginx #selfhosted #гайд #weekendproject
👍2
Linux: Вы всё ещё просто "листаете" логи? Раскрываем всю мощь less
Пятница, конец дня. Нужно быстро найти причину сбоя в лог-файле на несколько гигабайт. Все знают less, но большинство используют только стрелки и клавишу q. А ведь это мощнейший инструмент для анализа.
5 трюков, которые ускорят вашу работу:
F (Follow mode): Нажмите Shift + F в открытом файле. less перейдет в режим tail -f и будет показывать новые строки в реальном времени. Чтобы выйти из этого режима и вернуться к поиску, нажмите Ctrl + C.
/ и ? (Поиск): /слово — ищет "слово" от текущей позиции вниз. ?слово — ищет вверх. Клавиши n и N — переход к следующему/предыдущему совпадению.
& (Фильтрация): Введите & и паттерн (например, &ERROR). less скроет все строки, которые не содержат ERROR. Чтобы сбросить фильтр, введите & и нажмите Enter. Это как grep, но без выхода из файла.
m и ' (Метки): Находясь на важной строке (например, начало транзакции), нажмите m и любую букву (например, a). Вы создали метку "a". Теперь, промотав файл на тысячу строк вниз к ошибке, вы можете мгновенно вернуться к метке, нажав ' и ту же букву ('a).
-N (Номера строк): Запускайте less -N your_log_file.log, чтобы видеть номера строк. Незаменимо, когда обсуждаете лог с коллегой.
Взгляд архитектора:
Мастерство владения базовыми инструментами — признак профессионала. Способность быстро анализировать сырые данные напрямую на сервере, без тяжеловесных GUI, — это ключевой навык для эффективного траблшутинга и основа для построения более сложных систем observability.
#linux #less #cli #logging #команды #productivity
Пятница, конец дня. Нужно быстро найти причину сбоя в лог-файле на несколько гигабайт. Все знают less, но большинство используют только стрелки и клавишу q. А ведь это мощнейший инструмент для анализа.
5 трюков, которые ускорят вашу работу:
F (Follow mode): Нажмите Shift + F в открытом файле. less перейдет в режим tail -f и будет показывать новые строки в реальном времени. Чтобы выйти из этого режима и вернуться к поиску, нажмите Ctrl + C.
/ и ? (Поиск): /слово — ищет "слово" от текущей позиции вниз. ?слово — ищет вверх. Клавиши n и N — переход к следующему/предыдущему совпадению.
& (Фильтрация): Введите & и паттерн (например, &ERROR). less скроет все строки, которые не содержат ERROR. Чтобы сбросить фильтр, введите & и нажмите Enter. Это как grep, но без выхода из файла.
m и ' (Метки): Находясь на важной строке (например, начало транзакции), нажмите m и любую букву (например, a). Вы создали метку "a". Теперь, промотав файл на тысячу строк вниз к ошибке, вы можете мгновенно вернуться к метке, нажав ' и ту же букву ('a).
-N (Номера строк): Запускайте less -N your_log_file.log, чтобы видеть номера строк. Незаменимо, когда обсуждаете лог с коллегой.
Взгляд архитектора:
Мастерство владения базовыми инструментами — признак профессионала. Способность быстро анализировать сырые данные напрямую на сервере, без тяжеловесных GUI, — это ключевой навык для эффективного траблшутинга и основа для построения более сложных систем observability.
#linux #less #cli #logging #команды #productivity
👍2
Windows & AD: Пятничная чистка. Находим неактивные учетные записи
"Мёртвые души" в Active Directory — неактивные учетные записи пользователей и компьютеров — это не только беспорядок, но и серьёзная угроза безопасности. Перед уходом на выходные — идеальное время провести быстрый аудит.
Почему это важно:
Безопасность: Устаревшие аккаунты — цель для злоумышленников.
Соответствие (Compliance): Многие стандарты требуют регулярного отключения неактивных учетных записей.
Гигиена: Чистый AD проще в управлении.
Используем PowerShell для быстрого поиска:
Командлет Search-ADAccount — ваш лучший друг для этой задачи.
Найти неактивные компьютеры (не логинились в домен > 90 дней):
PowerShell
Найти неактивных пользователей (не логинились > 90 дней):
PowerShell
Where-Object дополнительно отфильтровывает уже отключенные УЗ.
Следующий шаг: Действие
Найденные учетные записи не стоит сразу удалять. Правильный процесс:
Отключить.
Переместить в специальный OU "Disabled Accounts".
Удалить через 30-60 дней.
PowerShell
-PassThru покажет, какие именно УЗ были отключены.
Взгляд архитектора:
Эта процедура должна быть не разовой акцией, а регулярным, автоматизированным процессом. Создайте на основе этих команд запланированное задание (Scheduled Task), которое будет еженедельно присылать отчёт и, возможно, автоматически отключать учетные записи по истечении определенного срока. Это переход от ручного аудита к автоматизированному управлению жизненным циклом учетных записей.
#windows #activedirectory #powershell #security #audit #гайд
"Мёртвые души" в Active Directory — неактивные учетные записи пользователей и компьютеров — это не только беспорядок, но и серьёзная угроза безопасности. Перед уходом на выходные — идеальное время провести быстрый аудит.
Почему это важно:
Безопасность: Устаревшие аккаунты — цель для злоумышленников.
Соответствие (Compliance): Многие стандарты требуют регулярного отключения неактивных учетных записей.
Гигиена: Чистый AD проще в управлении.
Используем PowerShell для быстрого поиска:
Командлет Search-ADAccount — ваш лучший друг для этой задачи.
Найти неактивные компьютеры (не логинились в домен > 90 дней):
PowerShell
# Просто поиск для отчета
Search-ADAccount -AccountInactive -ComputersOnly -TimeSpan 90.00:00:00 | Select-Object Name, DistinguishedName
Найти неактивных пользователей (не логинились > 90 дней):
PowerShell
Search-ADAccount -AccountInactive -UsersOnly -TimeSpan 90.00:00:00 | Where-Object {$_.Enabled -eq $true} | Select-Object Name, DistinguishedName
Where-Object дополнительно отфильтровывает уже отключенные УЗ.
Следующий шаг: Действие
Найденные учетные записи не стоит сразу удалять. Правильный процесс:
Отключить.
Переместить в специальный OU "Disabled Accounts".
Удалить через 30-60 дней.
PowerShell
# Находим и сразу отключаем неактивные УЗ пользователей
Search-ADAccount -AccountInactive -UsersOnly -TimeSpan 90.00:00:00 | Where-Object {$_.Enabled -eq $true} | Disable-ADAccount -PassThru
-PassThru покажет, какие именно УЗ были отключены.
Взгляд архитектора:
Эта процедура должна быть не разовой акцией, а регулярным, автоматизированным процессом. Создайте на основе этих команд запланированное задание (Scheduled Task), которое будет еженедельно присылать отчёт и, возможно, автоматически отключать учетные записи по истечении определенного срока. Это переход от ручного аудита к автоматизированному управлению жизненным циклом учетных записей.
#windows #activedirectory #powershell #security #audit #гайд
👍2
Docker: Управляй контейнерами красиво прямо в терминале с lazydocker
Команды docker ps, docker logs, docker exec — это база. Но когда у вас запущено 10+ контейнеров, переключаться между ними, смотреть логи и проверять ресурсы становится неудобно.
lazydocker — это терминальный TUI-интерфейс для Docker, который показывает всё на одном экране и управляется мышкой или горячими клавишами. Это htop для мира контейнеров.
Что он умеет:
Интерактивный дашборд: Видите все контейнеры, их статусы, порты и потребление ресурсов в реальном времени.
Быстрый доступ к логам: Выбрали контейнер — тут же видите его логи. Не нужно писать docker logs <id>.
Удобный exec: Зайти в оболочку контейнера — дело двух кликов.
Управление всем: Перезапускайте, останавливайте, удаляйте контейнеры, образы и тома, не покидая интерфейс.
ASCII-графики: Наглядно показывает потребление CPU и памяти.
Установка и запуск:
Bash
Взгляд архитектора:
Эффективность — ключевой параметр. lazydocker — это инструмент, который минимизирует "контекстное переключение" (context switching) — вам не нужно держать в голове десяток ID контейнеров и постоянно перепечатывать команды. Он визуализирует состояние системы, позволяя быстрее диагностировать проблемы и управлять сложными docker-compose сборками.
#linux #docker #lazydocker #cli #productivity #гайд
Команды docker ps, docker logs, docker exec — это база. Но когда у вас запущено 10+ контейнеров, переключаться между ними, смотреть логи и проверять ресурсы становится неудобно.
lazydocker — это терминальный TUI-интерфейс для Docker, который показывает всё на одном экране и управляется мышкой или горячими клавишами. Это htop для мира контейнеров.
Что он умеет:
Интерактивный дашборд: Видите все контейнеры, их статусы, порты и потребление ресурсов в реальном времени.
Быстрый доступ к логам: Выбрали контейнер — тут же видите его логи. Не нужно писать docker logs <id>.
Удобный exec: Зайти в оболочку контейнера — дело двух кликов.
Управление всем: Перезапускайте, останавливайте, удаляйте контейнеры, образы и тома, не покидая интерфейс.
ASCII-графики: Наглядно показывает потребление CPU и памяти.
Установка и запуск:
Bash
# Homebrew (macOS/Linux)
brew install jesseduffield/lazydocker/lazydocker
# Бинарный релиз (Linux)
curl https://raw.githubusercontent.com/jesseduffield/lazydocker/master/scripts/install_update_linux.sh | bash
# Запуск
lazydocker
Взгляд архитектора:
Эффективность — ключевой параметр. lazydocker — это инструмент, который минимизирует "контекстное переключение" (context switching) — вам не нужно держать в голове десяток ID контейнеров и постоянно перепечатывать команды. Он визуализирует состояние системы, позволяя быстрее диагностировать проблемы и управлять сложными docker-compose сборками.
#linux #docker #lazydocker #cli #productivity #гайд
👍2
SSH: Ваш сервер — крепость или проходной двор? Аудит конфигурации с ssh-audit
Мы уже говорили о чистке authorized_keys. Но безопасность SSH — это еще и правильная конфигурация самого сервера (sshd_config). Какие алгоритмы шифрования разрешены? Используются ли устаревшие протоколы?
ssh-audit — это утилита, которая подключается к вашему SSH-серверу и проверяет его конфигурацию на соответствие современным стандартам безопасности.
Установка:
Bash
Использование:
Bash
Что вы увидите в отчете:
[INFO] — Информационные сообщения.
[WARN] — Предупреждения (например, использование CBC-шифров).
[FAIL] — Критические проблемы (например, включен протокол SSHv1 или слабые MAC-алгоритмы).
Для каждого пункта утилита даст рекомендацию, какие строки нужно добавить или изменить в /etc/ssh/sshd_config, чтобы исправить проблему. Например, так:
# Пример рекомендации
Взгляд архитектора:
Безопасность — это не разовое действие, а непрерывный процесс. ssh-audit — это инструмент для автоматизированного аудита и валидации конфигураций. Его можно встроить в CI/CD пайплайн для проверки образов VM или запускать по расписанию для мониторинга "дрифта" конфигурации на действующих серверах, гарантируя соблюдение единого стандарта безопасности.
#security #ssh #audit #linux #команды
Мы уже говорили о чистке authorized_keys. Но безопасность SSH — это еще и правильная конфигурация самого сервера (sshd_config). Какие алгоритмы шифрования разрешены? Используются ли устаревшие протоколы?
ssh-audit — это утилита, которая подключается к вашему SSH-серверу и проверяет его конфигурацию на соответствие современным стандартам безопасности.
Установка:
Bash
# pip (Python)
pip install ssh-audit
# Homebrew (macOS)
brew install ssh-audit
Использование:
Bash
# Запускаем аудит удаленного сервера
ssh-audit my-server.com
# Можно указать порт
ssh-audit -p 2222 my-server.com
Что вы увидите в отчете:
[INFO] — Информационные сообщения.
[WARN] — Предупреждения (например, использование CBC-шифров).
[FAIL] — Критические проблемы (например, включен протокол SSHv1 или слабые MAC-алгоритмы).
Для каждого пункта утилита даст рекомендацию, какие строки нужно добавить или изменить в /etc/ssh/sshd_config, чтобы исправить проблему. Например, так:
# Пример рекомендации
(fail) diffie-hellman-group1-sha1 is not recommended
(info) recommend removing the following KEX algorithm(s):
(info) diffie-hellman-group1-sha1
Взгляд архитектора:
Безопасность — это не разовое действие, а непрерывный процесс. ssh-audit — это инструмент для автоматизированного аудита и валидации конфигураций. Его можно встроить в CI/CD пайплайн для проверки образов VM или запускать по расписанию для мониторинга "дрифта" конфигурации на действующих серверах, гарантируя соблюдение единого стандарта безопасности.
#security #ssh #audit #linux #команды
Железный треугольник админа: Стоимость, Фичи, Риски (CFR)
Любое архитектурное решение, от выбора облачного провайдера до внедрения новой системы мониторинга — это компромисс. Чтобы принимать взвешенные решения, а не поддаваться эмоциям ("о, новая блестящая технология!"), используйте "железный треугольник" CFR.
1. Стоимость (Cost):
Это не только цена лицензии или сервера. Сюда входит стоимость внедрения, обучения команды, поддержки и потенциального простоя.
Вопрос: Насколько дороже будет поддерживать это решение через год?
2. Функциональность (Features):
Какие возможности даёт это решение? Насколько оно решает нашу бизнес-задачу? Покрывает ли оно наши потребности на 90% или только на 50%?
Вопрос: Какие фичи нам действительно нужны, а какие — просто "приятный бонус"?
3. Риски (Risks):
Какие угрозы несёт это решение? Это могут быть риски безопасности (новые уязвимости), риски надёжности (молодая технология), риски зависимости от одного поставщика (vendor lock-in) или риски для команды (слишком сложно в поддержке).
Вопрос: Что будет, если компания-разработчик этого ПО завтра закроется?
Как это работает:
Нельзя получить максимум фич за минимальную стоимость с нулевыми рисками. Это невозможно. Задача архитектора — найти баланс.
Дешёвое решение с кучей фич? Скорее всего, у него огромные риски безопасности и надёжности.
Супер-надёжное решение? Вероятно, оно дорогое и менее гибкое.
Прежде чем принять следующее важное техническое решение, нарисуйте этот треугольник и честно оцените все три угла. Это поможет обосновать ваш выбор перед бизнесом и командой.
#architect #strategy #devops #sre #decisionmaking
Любое архитектурное решение, от выбора облачного провайдера до внедрения новой системы мониторинга — это компромисс. Чтобы принимать взвешенные решения, а не поддаваться эмоциям ("о, новая блестящая технология!"), используйте "железный треугольник" CFR.
1. Стоимость (Cost):
Это не только цена лицензии или сервера. Сюда входит стоимость внедрения, обучения команды, поддержки и потенциального простоя.
Вопрос: Насколько дороже будет поддерживать это решение через год?
2. Функциональность (Features):
Какие возможности даёт это решение? Насколько оно решает нашу бизнес-задачу? Покрывает ли оно наши потребности на 90% или только на 50%?
Вопрос: Какие фичи нам действительно нужны, а какие — просто "приятный бонус"?
3. Риски (Risks):
Какие угрозы несёт это решение? Это могут быть риски безопасности (новые уязвимости), риски надёжности (молодая технология), риски зависимости от одного поставщика (vendor lock-in) или риски для команды (слишком сложно в поддержке).
Вопрос: Что будет, если компания-разработчик этого ПО завтра закроется?
Как это работает:
Нельзя получить максимум фич за минимальную стоимость с нулевыми рисками. Это невозможно. Задача архитектора — найти баланс.
Дешёвое решение с кучей фич? Скорее всего, у него огромные риски безопасности и надёжности.
Супер-надёжное решение? Вероятно, оно дорогое и менее гибкое.
Прежде чем принять следующее важное техническое решение, нарисуйте этот треугольник и честно оцените все три угла. Это поможет обосновать ваш выбор перед бизнесом и командой.
#architect #strategy #devops #sre #decisionmaking
Безопасность: Принцип замка. Строим эшелонированную оборону (Defense in Depth)
Почему одного хорошего файрвола недостаточно для защиты инфраструктуры? Потому что профессионалы в области безопасности мыслят не барьерами, а слоями. Этот принцип называется Defense in Depth, или эшелонированная оборона.
Представьте, что вы защищаете средневековый замок. Ваша защита состоит из множества рубежей:
• Ров (The Moat): Это ваш сетевой файрвол на границе периметра. Первая и самая очевидная линия обороны.
• Высокие стены (The Walls): Это файрволы на самих серверах и сетевая сегментация. Даже если враг перебрался через ров, он не сможет свободно гулять по всей территории.
• Стража на стенах (The Guards): Это системы обнаружения вторжений (IDS/IPS) и инструменты вроде Sysmon. Они ищут подозрительную активность и бьют тревогу.
• Замки на каждой двери (The Locks): Это аутентификация и авторизация: надёжные пароли, MFA, принцип наименьших привилегий (IAM) и решения вроде LAPS.
• Тайные ходы и сокровищница (The Vault): Это шифрование данных как в хранилище (at rest), так и при передаче (in transit).
• Система наблюдения (The Surveillance): Это аудит и централизованный сбор логов (SIEM). Вы должны знать обо всём, что происходит внутри замка.
Взгляд архитектора:
Ключевая идея — любой отдельный слой защиты может быть пробит. Задача архитектора — спроектировать систему так, чтобы взлом одного компонента не приводил к коллапсу всей обороны, а лишь замедлял атакующего и давал вам время на реагирование.
#security #architect #стратегия #cybersecurity #гайд
Почему одного хорошего файрвола недостаточно для защиты инфраструктуры? Потому что профессионалы в области безопасности мыслят не барьерами, а слоями. Этот принцип называется Defense in Depth, или эшелонированная оборона.
Представьте, что вы защищаете средневековый замок. Ваша защита состоит из множества рубежей:
• Ров (The Moat): Это ваш сетевой файрвол на границе периметра. Первая и самая очевидная линия обороны.
• Высокие стены (The Walls): Это файрволы на самих серверах и сетевая сегментация. Даже если враг перебрался через ров, он не сможет свободно гулять по всей территории.
• Стража на стенах (The Guards): Это системы обнаружения вторжений (IDS/IPS) и инструменты вроде Sysmon. Они ищут подозрительную активность и бьют тревогу.
• Замки на каждой двери (The Locks): Это аутентификация и авторизация: надёжные пароли, MFA, принцип наименьших привилегий (IAM) и решения вроде LAPS.
• Тайные ходы и сокровищница (The Vault): Это шифрование данных как в хранилище (at rest), так и при передаче (in transit).
• Система наблюдения (The Surveillance): Это аудит и централизованный сбор логов (SIEM). Вы должны знать обо всём, что происходит внутри замка.
Взгляд архитектора:
Ключевая идея — любой отдельный слой защиты может быть пробит. Задача архитектора — спроектировать систему так, чтобы взлом одного компонента не приводил к коллапсу всей обороны, а лишь замедлял атакующего и давал вам время на реагирование.
#security #architect #стратегия #cybersecurity #гайд
Linux & macOS: cat на стероидах. Знакомство с bat
Мы постоянно просматриваем файлы в терминале: скрипты, конфиги, логи. Стандартная утилита cat справляется, но выдаёт просто стену текста. bat — это её современная замена, которая делает то же самое, но красиво и удобно.
bat — это cat с подсветкой синтаксиса, нумерацией строк, интеграцией с Git и автоматическим пейджером.
Ключевые фичи:
• Подсветка синтаксиса: Просто напишите bat my_script.py или bat docker-compose.yml, и код будет подсвечен как в вашей любимой IDE.
• Интеграция с Git: bat показывает изменения в файле прямо в терминале, отмечая добавленные и изменённые строки.
• Автоматический пейджер: Если файл не помещается на один экран, bat автоматически передаст вывод в less, так что вы сразу можете использовать поиск и навигацию.
• Отображение непечатаемых символов: Помогает при отладке.
Установка:
# Ubuntu/Debian (может называться batcat)
sudo apt install bat
# macOS
brew install bat
На Ubuntu/Debian, возможно, придется использовать команду batcat или создать симлинк ln -s /usr/bin/batcat ~/.local/bin/bat.
Взгляд архитектора:
Это не просто про "красивости". Удобное представление информации снижает когнитивную нагрузку. Когда вы можете мгновенно отличить комментарий от переменной в конфиге, вы работаете быстрее и делаете меньше ошибок. bat — маленький инструмент с огромным влиянием на ежедневную продуктивность.
#linux #macos #cli #bat #productivity #команды
Мы постоянно просматриваем файлы в терминале: скрипты, конфиги, логи. Стандартная утилита cat справляется, но выдаёт просто стену текста. bat — это её современная замена, которая делает то же самое, но красиво и удобно.
bat — это cat с подсветкой синтаксиса, нумерацией строк, интеграцией с Git и автоматическим пейджером.
Ключевые фичи:
• Подсветка синтаксиса: Просто напишите bat my_script.py или bat docker-compose.yml, и код будет подсвечен как в вашей любимой IDE.
• Интеграция с Git: bat показывает изменения в файле прямо в терминале, отмечая добавленные и изменённые строки.
• Автоматический пейджер: Если файл не помещается на один экран, bat автоматически передаст вывод в less, так что вы сразу можете использовать поиск и навигацию.
• Отображение непечатаемых символов: Помогает при отладке.
Установка:
# Ubuntu/Debian (может называться batcat)
sudo apt install bat
# macOS
brew install bat
На Ubuntu/Debian, возможно, придется использовать команду batcat или создать симлинк ln -s /usr/bin/batcat ~/.local/bin/bat.
Взгляд архитектора:
Это не просто про "красивости". Удобное представление информации снижает когнитивную нагрузку. Когда вы можете мгновенно отличить комментарий от переменной в конфиге, вы работаете быстрее и делаете меньше ошибок. bat — маленький инструмент с огромным влиянием на ежедневную продуктивность.
#linux #macos #cli #bat #productivity #команды
От Админа к Архитектору: Почему soft skills важнее ваших скриптов
Технические навыки позволяют получить работу системного администратора. Но soft skills (гибкие навыки) — это то, что превращает вас в архитектора и лидера. Самый гениальный PowerShell-скрипт бесполезен, если вы не можете объяснить бизнесу, какую проблему он решает.
Три ключевых навыка, которые нужно развивать:
1. Умение документировать:
Инфраструктура, которая существует только в вашей голове, — это бомба замедленного действия. Умение писать понятную документацию, рисовать схемы и описывать процессы (Runbooks) позволяет команде работать слаженно, снижает риски и делает систему поддерживаемой.
2. Эффективная коммуникация:
Способность объяснить сложное техническое решение нетехническому менеджеру. Умение слушать и понимать бизнес-требования, прежде чем предлагать технологию. Способность убедительно аргументировать свою позицию и договариваться с коллегами.
3. Бизнес-мышление:
Админ думает о том, "как" сделать. Архитектор думает о том, "зачем" это делать. Как это решение поможет компании заработать деньги? Как оно снизит риски? Как повлияет на время выхода продукта на рынок? Понимание связи между IT и бизнес-целями — это главный признак архитектурного мышления.
Взгляд архитектора:
Сильный админ решает технические проблемы. Архитектор решает бизнес-проблемы с помощью технологий. Ваши скрипты и знания — это инструменты. Но ваша способность убеждать, объяснять и видеть большую картину — это то, что создаёт настоящую ценность.
#architect #career #softskills #leadership #стратегия
Технические навыки позволяют получить работу системного администратора. Но soft skills (гибкие навыки) — это то, что превращает вас в архитектора и лидера. Самый гениальный PowerShell-скрипт бесполезен, если вы не можете объяснить бизнесу, какую проблему он решает.
Три ключевых навыка, которые нужно развивать:
1. Умение документировать:
Инфраструктура, которая существует только в вашей голове, — это бомба замедленного действия. Умение писать понятную документацию, рисовать схемы и описывать процессы (Runbooks) позволяет команде работать слаженно, снижает риски и делает систему поддерживаемой.
2. Эффективная коммуникация:
Способность объяснить сложное техническое решение нетехническому менеджеру. Умение слушать и понимать бизнес-требования, прежде чем предлагать технологию. Способность убедительно аргументировать свою позицию и договариваться с коллегами.
3. Бизнес-мышление:
Админ думает о том, "как" сделать. Архитектор думает о том, "зачем" это делать. Как это решение поможет компании заработать деньги? Как оно снизит риски? Как повлияет на время выхода продукта на рынок? Понимание связи между IT и бизнес-целями — это главный признак архитектурного мышления.
Взгляд архитектора:
Сильный админ решает технические проблемы. Архитектор решает бизнес-проблемы с помощью технологий. Ваши скрипты и знания — это инструменты. Но ваша способность убеждать, объяснять и видеть большую картину — это то, что создаёт настоящую ценность.
#architect #career #softskills #leadership #стратегия