ServerAdmin.ru
31.9K subscribers
943 photos
56 videos
27 files
3.05K links
Авторская информация о системном администрировании.

Информация о рекламе: @srv_admin_reklama_bot
Автор: @zeroxzed

Второй канал: @srv_admin_live
Сайт: serveradmin.ru

Ресурс включён в перечень Роскомнадзора
Download Telegram
Для тех, кто работал с OpenVPN, привычен метод аутентификации на основе клиентских сертификатов, который используется там по умолчанию. В веб сервере Angie ровно эти же сертификаты можно использовать для аутентификации клиентов при доступе к закрытым сервисам.

Мне никогда на глаза не попадалась подобная реализация. Я примерно представлял, что так можно, но когда увидел в недавнем видео, как это легко и быстро настраивается, решил проверить и сделать краткую инструкцию, чтобы можно было повторить в случае необходимости. Мне видится это удобным методом, когда есть возможность установить клиентский сертификат в браузер. Это и безопасно, и удобно для пользователя, если он сумеет один раз настроить доступ.

Для реализации подобного метода понадобится свой CA для выпуска сертификатов, сертификат сервера, сертификаты клиентов. Подойдёт любая инструкция для OpenVPN, где делается всё то же самое. В качестве программы для работы с сертификатами можно использовать:

◽️Easy-RSA - популярный набор скриптов на базе openssl.
◽️Step-CA - своя локальная служба для управления CA с простой автоматизацией перевыпуска.
◽️CFSSL - современная одиночная утилита от CloudFlare с конфигами в формате json.
◽️XCA - кроссплатформенное приложение с GUI, в отличие от предыдущих вариантов консольных команд.

Для простоты и краткости команд я возьму Easy-RSA. Но если вы хотите в графическом интерфейсе всё делать, то берите XCA. Принцип там такой же.

Ставим Easy-RSA:

# apt install easy-rsa

Создаём свой CA:

# make-cadir /etc/angie/easy-rsa
# cd /etc/angie/easy-rsa
# ./easyrsa init-pki
# ./easyrsa build-ca

По умолчанию сертификат для CA выпускается на 10 лет, остальные - на 825 дней. Сделаем остальные тоже 10-ти летними. Добавляем в файл vars параметр:

set_var EASYRSA_CERT_EXPIRE 3650

Заодно увеличим время жизни списка отозванных сертификатов до года. Я не знаю, как ведёт себя Angie, но OpenVPN перестаёт принимать новые аутентификации, когда файл отзывов протухает.

set_var EASYRSA_CRL_DAYS 365

Остальные параметры меняйте по своему усмотрению. Они некритичны. Выпускаем сертификаты и ключи для сервера и первого клиента:

# ./easyrsa build-server-full server nopass
# cp /etc/angie/easy-rsa/pki/issued/server.crt /etc/angie
# cp /etc/angie/easy-rsa/pki/private/server.key /etc/angie
# ./easyrsa build-client-full client01 nopass

Для передачи клиенту сертификат и ключ от него надо упаковать в один контейнер формата PKCS12:

# openssl pkcs12 -export -in /etc/angie/easy-rsa/pki/issued/client01.crt -inkey /etc/angie/easy-rsa/pki/private/client01.key -out client01.p12

Передаём client01.p12 клиенту. Готовим конфигурацию виртуального сервера Angie. Показываю на примере конфигурации default.conf с доступом по IP:

server {
  listen    443 ssl;
  server_name localhost;

  access_log /var/log/angie/host.access.log main;

  ssl_certificate   /etc/angie/server.crt;
  ssl_certificate_key /etc/angie/server.key;
  ssl_client_certificate /etc/angie/easy-rsa/pki/ca.crt;
  ssl_crl /etc/angie/easy-rsa/pki/crl.pem;
  ssl_verify_client on;

  location / {
    root  /usr/share/angie/html;
    index index.html index.htm;
  }
}

Перезапускаю веб сервер:

# angie -t
# angie -s reload

Захожу на веб сервер по IP - получаю ошибку: "400 Bad Request
No required SSL certificate was sent".

Надо добавить сертификат в браузер. В Яндекс.Браузере это делается в разделе Настройки ⇨ Системные ⇨ Сеть ⇨ Управление сертификатами ⇨ Импорт ⇨ Выбираем скопированный файл client01.p12.

Теперь мы попадаем на стандартную страницу веб сервера. Если нужно запретить доступ пользователю - отзываем его сертификат:

# ./easyrsa --batch revoke client01
# ./easyrsa gen-crl
# angie -s reload

Эти команды обновят файл отзывов crl.pem, который проверяет веб сервер. Последний надо обязательно заставить перечитать конфигурацию, иначе он не примет изменения. Теперь client01 получит ошибку доступа: "The SSL certificate error".

Простая и удобная аутентификация. Берите на вооружение.

❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.

———
ServerAdmin: 📱 Telegram | 🌐 Сайт | 📲 MAX

#angie
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍144👎4
Надвигающиеся выходные - не повод расслабляться, тем более только недавно отдыхали почти две недели. Попалась в Steam игра для сетевых инженеров и сисадминов с подозрительно хорошими отзывами.

Называется Tower Networking Inc. - симулятор интернет провайдера, где нужно управлять сетевой инфраструктурой в жилом комплексе. Вам предстоит прокладывать кабели (👹🙈), настраивать свитчи и роутеры, устранять неисправности и многое другое, что сопровождает подобную деятельность.

Игра выглядит аутентично и атмосферно. Вот некоторые отзывы о ней:

Шедевральная игра. Она просто обязана быть у всех ценителей. Парадоксально, что её абсолютно не хочется пройти до конца. Ты просто не хочешь, чтобы она заканчивалась. Один единственный минус-как только ты сел играть-ты попал в ловушку времени.


Подойдет любому инженеру, который не умеет отдыхать после реальной галеры.


За 12 часов игры узнал больше чем за пять лет университета.


Слава Омниссии, теперь я могу админить пользователей и поддерживать вечно отказывающую сетку не только на работе, но и дома! Нет, не так, я же на удалёнке, я и так из дома её админю... Я могу ОДНОВРЕМЕННО админить сетку и там, и там! Дурка, ♥️♥️♥️♥️♥️! Будучи системным администратором, я одобряю! Лучшее наглядное, пусть и крайне упрощённое, пособие о работе сисадмина.


Хоть где-то в жизни пригодились знания о настройке циски, которые я получил ещё лет 10 назад.


Думаю, по комментариям идею вы поняли 😄. Вот ещё по этой теме, кому мало работы и хочется добрать сисадминства дома:

ServiceIT: You can do IT
SysAdmin Odyssey - Back to the office
IT Specialist Simulator

Интересно, в какой-нибудь другой профессии есть игры, связанные с рабочей деятельностью? Ну там у проктологов игра на тему профессиональной деятельности, в которую только проктологи играют. Или у спортсменов, которая будет интересна только им? В представленные выше игры вряд ли будет играть кто-то, не связанный с информационными технологиями.

🎮 Steam / ▶️ Игровой процесс

———
ServerAdmin: 📱 Telegram | 🌐 Сайт | 📲 MAX

#игра
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
2👍96👎6
Послушал недавно одно из выступлений с Zabbix Summit 2025 на тему того, за чем нужно следить в самом Zabbix, чтобы системе мониторинга не стало плохо. Выступающий представляет компанию, которая продаёт услугу по аудиту Zabbix, написав для этого свой софт.

В выступлении он рассказал в основном теорию, которая мне показалась интересной в формате списка пунктов, по которым стоит пройтись, чтобы навести порядок у себя, поэтому я решил кратко законспектировать выступление и для себя, и для вас. Какие-то очевидные вещи, типа проверки версии Zabbix и просмотр лога сервера я опустил.

1️⃣ Проверяем все хосты, которые давно недоступны. Либо исправляем проблему с доступом к хосту, либо удаляем его из мониторинга, если больше не нужен.

2️⃣ То же самое относится к неподдерживаемым айтемам. С ними надо разобраться - либо починить, либо отключить, если уже неактуально.

3️⃣ Обратить внимание на все айтемы, где стоят слишком частые проверки, например, чаще 30 секунд. Это может создавать очень серьёзные нагрузки. В выступлении не сказано, но я добавлю, что для некоторых проверок имеет смысл добавить предобработку, которая будет отбрасывать неизменившиеся значения. Для некоторых данных это может серьёзно экономить место в базе. Например тогда, когда вы часто следите за неизменным состоянием айтема, чтобы сразу заметить изменение. Нет смысла хранить результаты всех проверок.

4️⃣ Проверяем триггеры в статусе UNKNOWN. Часто они связаны с неактивными айтемами, но не всегда. Могут быть и другие ошибки.

5️⃣ Проводим аудит стандартных шаблонов и по возможности обновляем устаревшие. Это на самом деле серьёзная и объёмная задача. В последних релизах её стараются упростить и облегчить, но всё равно работы с ней много и часто ручной. Но следить тем не менее надо. Новые шаблоны зачастую удобнее и информативнее. Хотя если вас устраивают старые, то особых проблем не будет, если не обновите. Отдельно напомню, что с обновлением сервера шаблоны автоматически не обновляются.

6️⃣ Если есть возможность запустить мониторинг каких-то хостов через Zabbix Proxy, сделайте это. Это и основной сервер разгружает, и для сильно удалённых хостов делает мониторинг более точным.

7️⃣ Проверьте количество запущенных Pollers, чтобы хватало с запасом. По моему опыту чаще всего по мере роста сервера начинает не хватать стандартных параметров поллера для пингов.

8️⃣ Проверьте размер кэшей в настройке сервера. По мере роста нагрузки кэш надо тоже увеличивать от стандартных значений. Если что, его нехватка будет отражаться в логе сервера.

9️⃣ Проверить настройку шифрования между хостами и сервером. Желательно, чтобы она была настроена, особенно при передаче данных по незащищённым сетям, типа интернета.

От себя я бы добавил ещё несколько моментов, которые опустил выступающий, потому что это будут скорее всего ручные проверки, а у них работает ПО с автоматическими:

▪️Провести аудит того, что пишется в базу данных и что там занимает место. Возможно почистить её, если есть такая потребность. У меня была статья по этой теме - Что занимает место в базе данных Zabbix.

▪️Проверка бэкапов, и технически, и логически. Иногда бэкапят только базу данных, так как основное там. Но если не бэкапить конфигурацию сервера, и тем более внешние скрипты, которые используются, то потом будет очень хлопотно всё это восстанавливать. Я сам не раз на это натыкался. Думаю, зачем бэкапить, и так все скрипты либо на сайте, либо в гите, либо тут в заметках. Но на деле потом всё это собирать и снова запускать очень хлопотно. Лучше все забэкапить и положить рядом с дампом базы.

▪️Аудит оповещений. В них может быть реализована сложная система уведомлений, в которой можно напутать и часть уведомлений потерять или отправить в неработающие каналы. В этом желательно периодически вручную разбираться, удалять лишнее или упрощать. Тем более если вы принимаете в управление настроенную не вами систему.

❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.

———
ServerAdmin: 📱 Telegram | 🌐 Сайт | 📲 MAX

#zabbix
Please open Telegram to view this post
VIEW IN TELEGRAM
3👍83👎6
Очередная подборка статей авторов, которые согласились в ней участвовать. Кто не понимает, о чём идёт речь, может прочитать прошлые публикации по этой теме (раз, два).

RustDesk. Удаленный доступ через ретранслятор на собственном сервере
Настройка популярного open source сервера RustDesk для организации удалённого доступа к управляемым машинам.

Как настроить двухфакторную аутентификацию (2FA) в Zabbix 7.0
Подробная статья про настройку двухфакторной аутентификации в Zabbix, которая появилась не так давно. Для второго фактора используется TOTP и приложение на смартфоне.
Как создавать отчёты в Zabbix 7.0
Пример настройки автоматических отчётов Zabbix, которые он будет отправлять на почту. Реализация у них, конечно, так себе, но я пользуюсь. Не хватает отчёта не из прошлого, а по текущему состоянию. Не знаю, почему такой возможности не сделали. Наиболее близкий период для отчёта сейчас - прошлый день.
Как использовать TimescaleDB в Zabbix
Теория и практика по включению TimescaleDB в базе для Zabbix. Если вы только начинаете изучать Zabbix и пока не планируются большие нагрузки и объёмы, рекомендую не торопиться включать TimescaleDB. Это усложняет эксплуатацию системы, а для небольших серверов мониторинга не имеет принципиального значения. Можно спокойно и без TimescaleDB обойтись. Когда реально поймёте, что надо, установите.
Как увеличить системные лимиты в Zabbix 7.0
Увеличение системного лимита на файловые дескрипторы.

Создание собственных образов Docker
Продолжение цикла статей про Docker с примером написания своего образа и публикацией в Docker Hub.
Проброс каталогов и томов в Docker
Продолжение базы про свои образы в Docker.
Docker — Оптимизация ваших образов
Теория и практика про слои в Docker. Дополню от себя эту тему парой полезных инструментов: Hadolint и Dockle. Они в том числе дают советы по организации слоёв в контейнере.

Создание шаблона ВМ с cloud-init в Proxmox
Подготовка шаблона для cloud-init с помощью команд с гипервизора, изменяющих параметры VM и выполняющие команды внутри настраиваемой системы через преобразование qcow2 файла. То есть мы готовим систему и шаблон для cloud-init вообще без запуска настраиваемой виртуальной машины.

Создание инфраструктуры в Proxmox с помощью Terraform или OpenTofu
Большой материал по управлению Proxmox с помощью Terraform. Terraform сейчас - база для управления инфраструктурой. ❗️Если не знакомы с ним, обязательно изучайте.

Почему многие IT специалисты так любят Vim?
Рассуждения автора на тему Vim.

Crowdsec BGP Bouncer (Crowdsec -> Bird -> Mikrotik)
Интересный материал по интеграции Mikrotik c Crowdsec. Автор сделал публикацию на форуме и поделился со мной ссылкой. Мне материал понравился, поэтому добавил его в подборку.

Не запускается Zabbix Agent Win2019
Проблема совместимости Zabbix Agent и OpenVPN-ГОСТ. Пример статьи, на которых учатся ИИ решать проблемы вопрошающих. Интересно, как в будущем будут обходиться без них? Сама ИИ не догадается до решения.

Linux. Утилиты. Нестандартные. auditd, auditctl, ausearch
Пример настройки популярного инструмента для аудита в Linux - auditd. Иногда использую его для разных задач.

Лучшие self-hosted приложения, появившиеся в 2025 году
Подборка автора, в которую вошли: Pangolin, Papra, TinyAuth, Zerobyte. Последняя заинтересовала. Это обёртка с веб интерфейсом над Restic. Надо будет попробовать.

Лучший менеджер закладок: Linkwarden или Karakeep
Сравнение self-hosted менеджеров закладок. Я настраивал и пытался пользоваться подобными сервисами, про какие-то писал тут, но всё время бросал их. Мне хватает встроенных в браузер.

Безопасная передача файлов с помощью Nginx
Решение специфичной задачи по передаче файлов с множества серверов из закрытого контура на внешний сервер для дальнейшей обработки.

Как обойти ограничение на загрузку Microsoft Office
Обход ограничения на загрузку Microsoft Office с помощью онлайн установщика. Там, оказывается, есть нюансы и просто включить VPN не поможет.

#статьи
2👍67👎1
На днях проскочила новость о том, что Let's Encrypt запускает выпуск сертификатов на IP адреса. Меня это сразу заинтересовало, так как давно думал, почему этого нельзя сделать. Мне нередко хотелось выпустить сертификат на IP адрес, чтобы нормально работал запущенный на нём сервис, для которого нет необходимости делать доменное имя.

Сейчас многий софт без TLS и доверенного сертификата не хочет подключаться в принципе. Если выпускаешь самоподписанный сертификат, то надо настраивать доверие через передачу сертификата CA на целевую машину. Всё это создаёт неудобства, особенно в тестовой среде.

И вот теперь эта проблема решена. Можно взять виртуалку с внешним IP адресом и выпустить для него подтверждённый сертификат. Я сразу же решил проверить, как это работает.

Мне больше всего нравится certbot как клиент для взаимодействия с Let's Encrypt, хотя я пробовал и использовал все известные клиенты. К сожалению, у него пока не вышла стабильная версия с поддержкой этой новой функциональности. Проверял версию 4.0.0 из пакетов Debian 13, и самую свежую 5.2.2 из docker hub. Нет поддержки новых сертификатов. При запросе ошибка:

The Let's Encrypt certificate authority will not issue certificates for a bare IP address.


Сразу показываю рабочий вариант с использованием acme.sh. От установки, до выпуска сертификата:

# git clone https://github.com/acmesh-official/acme.sh.git
# cd ./acme.sh
# ./acme.sh --install -m zeroxzed@gmail.com
# ./acme.sh --issue -d 85.143.175.116 --standalone --server letsencrypt --certificate-profile shortlived

Получаем набор файлов для использования по назначению:

◽️ ~/.acme.sh/85.143.175.116_ecc/85.143.175.116.cer
◽️ ~/.acme.sh/85.143.175.116_ecc/85.143.175.116.key
◽️ ~/.acme.sh/85.143.175.116_ecc/fullchain.cer

Устанавливаем веб сервер, прописываем там в виде доменного имени IP адрес, подключаем этот сертификат. Пример для Angie/Nginx:

# mkdir -p /etc/nginx/tls
# ./acme.sh --install-cert -d 85.143.175.116 --key-file /etc/nginx/tls/85.143.175.116.key --fullchain-file /etc/nginx/tls/85.143.175.116.cer --reloadcmd "systemctl reload nginx"

Рисуем примерно такую конфигурацию для доступа по IP адресу:

server {
  listen 80 default_server;
  listen 443 ssl default_server;

  ssl_certificate /etc/nginx/tls/85.143.175.116.cer;
  ssl_certificate_key /etc/nginx/tls/85.143.175.116.key;

  root /var/www/html;
  index index.html index.htm index.nginx-debian.html;

  server_name _;

  location / {
    try_files $uri $uri/ =404;
  }
}


Заходим по HTTPS на IP адрес сервера и видим действительный сертификат. Никаких предупреждений.

Сертификат выдаётся менее чем на 7 дней, так что нужно внимательно следить за автоматическим обновлением. Описанных в заметке настроек достаточно для этого. Acme.sh добавил задание в cron пользователя, будет запускаться раз в сутки.

Удобная и функциональная возможность. Берите на вооружение. Не знаю, поддерживает ли получение таких сертификатов Angie напрямую, через свой встроенный клиент. Я не проверял. Если у кого-то есть информация, поделитесь.

❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.

———
ServerAdmin: 📱 Telegram | 🌐 Сайт | 📲 MAX

#webserver #angie #nginx
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍215👎1
Судя по прошедшему в этом году опросу на тему ОС на рабочей машине, у 24% ответивших это Linux, что в целом немало. Мне лично интересно узнать, какое окружение рабочего стола (DE, Desktop Environment) на сегодняшний день наиболее развито, популярно.

В первую очередь на ум приходит Gnome. Но сколько я им пользовался, всегда не нравилось. Не знаю, в чём тут дело. Может просто непривычно, а может он реально неудобен. Постоянно на Linux в качестве рабочей станции я никогда не работал, на сервера тоже DE практически никогда не ставлю. Весь мой опыт ситуативный и очень малый.

Виндузятнику больше привычно KDE чисто визуально, но оно как-будто всё время недоделанное, то тут, то там что-то не работает, вот-вот доработают и так постоянно. На сервер если и нужно было что-то ставить, то ставил чаще всего XFCE.

Меня в основном интересует, чем лучше сейчас пользоваться, чтобы иметь минимум проблем с настройкой, поддержкой, функциональностью. У вас какая DE на рабочей машине? Опрос ниже.

👇👇👇👇👇👇👇

#опрос
👍21👎1
Какое DE (Desktop Environment, окружение рабочего стола) вы используете на рабочей машине с Linux?
Anonymous Poll
29%
GNOME
30%
KDE Plasma
14%
Cinnamon
8%
MATE
0%
Deepin DE
16%
XFCE
2%
LXQt
0%
Budgie
7%
Fly (Astra Linux)
15%
Другое
👍44👎3
Одним из ключевых сервисов в инфраструктуре является DNS. Он же и наиболее простой в настройке, особенно если речь идёт о локальном кэширующем и рекурсивном DNS сервере. При этом его отказ может в один момент парализовать всю работу.

Мне один раз досталась в наследство компания, где периодически падал локальный DNS сервер. Когда это случилось первый раз, было стрёмно. Я ещё только изучал инфраструктуру. Там и кластер виртуализации был, и DRBD диски, и домен на Samba. Разом всё сломалось, мониторинг спамит, пользователи жалуются техподдержке, она теребит меня. Быстро догадался зайти по IP на сервер и перезапустить тогда ещё использовавшийся Bind, если не ошибаюсь. Потом уже всё перенастроил, но Bind успел упасть ещё пару раз. На серваке, где он работал, как потом выяснилось, банально кончалась память.

Сам я потом тоже использовал какое-то время Bind, потом перешёл на DNSmasq, если в инфре была винда, то использовал её DNS сервер, если есть железный роутер, то DNS сервер обычно на нём. На базе DNSmasq собран небезызвестный Pi-hole. Я немного пользовался им, даже запускал его в контейнере на Mikrotik. В итоге отказался, так как всё это ненадёжно работало на моём железе.

Длинная подводка получилась. Рассказать хотел о новом для меня DNS сервере - Technitium DNS. Впервые увидел его в недавнем обзоре. По описанию понравилось, поэтому решил попробовать. Особенно привлекла простая возможность собрать полноценный (но однонаправленный) кластер. Я всё это развернул у себя, в том числе и кластер, и протестировал. DNS сервер понравился. Думаю, что при необходимости буду использовать именно его, если нужен будет сервер с веб панелью управления, статистикой, разграничением доступа, блокировками по готовым спискам и т.д.

Technitium DNS - современный сервер, который поддерживает всевозможные технологии и настройки:

▪️DNS-over-TLS, DNS-over-HTTPS, and DNS-over-QUIC, DNSSEC.
▪️Блокировки по готовым спискам доменов.
▪️Быстрый запуск через готовый Docker контейнер (есть и другие способы).
▪️Расширение функциональности через встроенный магазин приложений (может, к примеру, логи запросов писать в MySQL).
▪️Встроенный DHCP сервер.
▪️Управление доступом на основе ролей (RBAC).
▪️API с доступом по токенам.
▪️Поддержка работы через HTTP и SOCKS5 прокси.

В этом сервере есть всё, что можно только придумать и желать от современного программного продукта. Я пробежался по огромному списку возможностей и не придумал, чего там не хватает.

При этом, всё это настраивается очень просто, особенно в базовой функциональности. Я развернул на двух нодах и собрал сервер в кластер. Использовал следующий docker-compose.yml, изменив только имя хостов:

services:
 dns-server:
  container_name: technitium-01
  hostname: technitium-01
  image: technitium/dns-server:latest
  ports:
   - "5380:5380/tcp" # Web console (HTTP)
   - "53:53/udp"   # DNS service
   - "53:53/tcp"   # DNS service
   - "53443:53443/tcp" # Web console (HTTPS)
   # - "853:853/udp"   # DNS-over-QUIC
   # - "853:853/tcp"   # DNS-over-TLS
   # - "443:443/udp"   # DNS-over-HTTPS (HTTP/3)
   # - "443:443/tcp"   # DNS-over-HTTPS (HTTP/1.1, HTTP/2)
   # - "67:67/udp"    # DHCP service
  environment:
   - DNS_SERVER_DOMAIN=home.local
   - DNS_SERVER_ADMIN_PASSWORD=your_password
   - DNS_SERVER_PREFER_IPV6=false
   - DNS_SERVER_RECURSION=AllowOnlyForPrivateNetworks
   - DNS_SERVER_FORWARDERS=62.76.76.62,77.88.8.1,62.76.62.76,77.88.8.8
  volumes:
   - ./config:/etc/dns
  restart: unless-stopped
  sysctls:
   - net.ipv4.ip_local_port_range=1024 65000


Запустил, зашёл на веб интерфейс http://server-ip:5380/, собрал в кластер, настроил списки блокировки и другие настройки. Подключил нескольким пользователям. Проверил - отлично работает, никаких проблем не возникло. Выключил одну ноду, кластер продолжил работать на второй, запросы резолвил.

Продукт однозначно хорош. Я не знаю, что сейчас есть лучше для рекурсивного кэширующего DNS сервера. Если знаете - подскажите.

❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.

———
ServerAdmin: 📱 Telegram | 🌐 Сайт | 📲 MAX

#dns
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍154👎6
У Windows в какой-то момент появилось интересное техническое решение под названием Песочница (Windows Sandbox). Она сделана на базе Hyper-V. Можно запустить любой исполняемый файл в этой песочнице. На практике будет создана временная виртуальная машина с Windows, где вы сможете проверить работу приложения. А после закрытия виртуальной машины, она удаляется со всеми сделанными изменениями.

Реализовано, в принципе, удобно. Правой кнопкой мыши нажимаешь на файле и выбираешь Запустить в песочнице. Я первое время пользовался, потом перестал. У меня и так полно тестовых виртуальных машин. Нет нужды что-то у себя локально запускать. К тому же у меня есть постоянные локальные виртуальные машины. Установить песочницу можно через Панель управления, в разделе компонентов Windows. Он так и называет - Песочница Windows.

Несколько лет не пользовался песочницей. Недавно заметил, что осталось мало места на системном диске. Стал разбираться, куда оно ушло. Кстати, удивительно, что в Винде до сих пор нет удобного встроенного инструмента для этого. Заметил, что директория

C:\ProgramData\Microsoft\Windows\Containers\Layers


занимает 80 гигов. По названию это похоже на слои контейнеров того же Docker, но я его не устанавливал на эту машину и точно не запускал контейнеры.

Если посмотреть на содержимое слоёв, то там располагаются системные файлы из директории Windows. Контейнеров, как и слоёв к ним, много - пару десятков точно, может больше.

Стал гуглить и спрашивать ИИ на тему, что тут хранится. На удивление, информации не так много. В основном везде говорится, что это хозяйство Docker, который можно установить и на Windows. Но это не мой случай.

Оказалось, что это Песочница плодит контейнеры со слоями. Зачем и почему, не нашёл подробной информации. Как и не нашёл, как всё это можно корректно почистить. В итоге песочницу просто удалил через тот же раздел с компонентами Windows. После удаления и перезагрузки, каталог с контейнерами и слоями сам очистился, место освободилось, хотя и не все 80 ГБ. Судя по всему там в том числе и ссылки были, а не только файлы.

Если у вас тоже стоит эта песочница и вы её не используете, то лучше отключить. Ну а если не знали про неё и функциональность кажется полезной, то используйте. Она на самом деле неплохо сделана. В каких-то ситуациях может быть удобно, чтобы не плодить виртуальные машины и снепшоты к ним для отката обратно. Запустил, поработал, закрыл и всё очистилось.

#windows
8👍112👎3
Я часто упоминал в различных заметках систему по сбору логов Loki. Например, вот в этой подборке подобных систем (там сразу можете посмотреть аналоги). При этом у меня нет ни одной заметки на тему того, как её быстро развернуть. Решил написать краткое руководство по этой теме.

Проект относительно новый, стартовал в 2018 году в противовес стеку ELK. Grafana решила сделать более простой и легковесный вариант хранения логов немного с другой моделью анализа, без полной индексации текстов логов, используя вместо этого метки для потоков. На деле получился хороший продукт, интегрированный в стек Grafana + Prometheus с похожей идеологией хранения и поиска (язык запросов LogQL по аналогии с PromQL).

Для начала выполню базовые действия для запуска Loki и Grafana и настрою отправку логов в Loki от различных Docker контейнеров. Большее в одну заметку не уместить. Думаю, что далее я эту тему разовью.

Я не буду запускать Loki и Grafana в одном Docker Compose файле, так как им не обязательно быть установленными вместе. Grafana поддерживает весь стек своих продуктов, так что нет особого смысла поднимать её рядом со сборщиком логов.

Сначала запустим Loki. Готовим для него compose.yaml и конфигурацию в config.yaml. Не буду приводить здесь содержимое. Оно будет отправлено следующим сообщением в архиве со всеми остальными конфигурациями. Для удобства скопировал её же в gitflic.

# curl https://get.docker.com | bash -
# git clone https://gitflic.ru/project/serveradmin/grafana-loki.git
# cd grafana-loki/loki/

В файле compose.yaml укажите актуальную версию image на момент установки. Запускаем проект:

# docker compose up -d

Проверим, что сервис стартовал:

# curl http://192.168.137.29:3100
404 page not found

Это нормальный ответ. 404 нам ответил Loki. Запустим теперь Grafana:

# cd ../grafana

Указываем нужную версию в compose.yaml и запускаем:

# docker compose up -d

Идём браузером по IP сервера, где запущена Grafana на порт 3000. Учётка по умолчанию - admin / admin. Заходим в Grafana, идём в раздел ConnectionsData sourcesAdd data source. Выбираем Loki. В качестве настроек достаточно указать только url. В моём случае это http://192.168.137.30:3100/. Мотаем страничку в самый низ и нажимаем Save & Test. Ошибок быть не должно.

Стек поднят и готов к приёму логов. Отправим туда логи контейнеров Docker. Для этого у Docker существует драйвер. Его необходимо установить на хосте:

# docker plugin install grafana/loki-docker-driver:3.6.0-amd64 --alias loki --grant-all-permissions

Проверяем, что он установился:

# docker plugin ls
018395707e37  loki:latest  Loki Logging Driver  true

Всё в порядке. Теперь мы можем в самом демоне Docker настроить отправку всех логов в Loki через правку его конфигурации в /etc/docker/daemon.json. Для этого туда надо добавить:

{
"debug": true,
"log-driver": "loki",
"log-opts": {
"loki-url": "http://192.168.137.30:3100//loki/api/v1/push",
"loki-batch-size": "400"
}
}


Это не очень удобно, если у нас нет желания собирать логи абсолютно всех контейнеров. Удобнее управлять этим для каждого контейнера отдельно. Для этого в compose файл достаточно добавить ещё одну секцию logging. Покажу сразу итоговый пример для запуска Grafana из этой публикации:

services:
 grafana:
  image: docker.io/grafana/grafana-oss:12.3.1
  container_name: grafana
  logging:
   driver: loki
   options:
    loki-url: "http://192.168.137.30:3100/loki/api/v1/push"
    loki-retries: 2
    loki-max-backoff: 800ms
    loki-timeout: 1s
    keep-file: "true"
    mode: "non-blocking"
  ports:
   - "3000:3000"
  volumes:
   - grafana-data:/var/lib/grafana
  restart: unless-stopped
volumes:
 grafana-data:
  driver: local


Перезапускаем проект:

# docker compose stop
# docker compose up -d

Идём в Grafana, раздел DrilldownLogs. Выбираем в выпадающем списке service имя контейнера и смотрим его логи.

Настройка простая и быстрая, легко автоматизируется. Далее я разовью эту тему и добавлю логи из других систем.

———
ServerAdmin: 📱 Telegram | 🌐 Сайт | 📲 MAX

#loki #logs #devops
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍95👎5
grafana-loki.zip
1.8 KB
Конфигурации к предыдущей заметке про Grafana Loki 👆👆👆👆👆👆
👍55👎2
Освойте UserGate и повысьте уровень защиты своей ИТ-инфраструктуры!

Бесплатный онлайн-курс поможет вам шаг за шагом освоить внедрение и настройку UserGate — без лишней теории, с упором на практику.

В программе курса:
Настройка сетевых зон, NAT, VPN, кластеров, фильтрации на уровне приложений и правил межсетевого экрана
Интеграция с LDAP и Active Directory, фильтрация контента, системы обнаружения вторжений и обратный прокси
Пошаговые видеоуроки, практические упражнения и итоговое тестирование

По завершении курса Вы получите:
⭐️ именной сертификат
📕 PDF-инструкции
📋 чек-листы и готовые конфигурации, которые помогут в дальнейшей работе

Пройдите курс в удобное время — запись уже доступна.
👎37👍17