На днях проскочила новость о том, что Let's Encrypt запускает выпуск сертификатов на IP адреса. Меня это сразу заинтересовало, так как давно думал, почему этого нельзя сделать. Мне нередко хотелось выпустить сертификат на IP адрес, чтобы нормально работал запущенный на нём сервис, для которого нет необходимости делать доменное имя.
Сейчас многий софт без TLS и доверенного сертификата не хочет подключаться в принципе. Если выпускаешь самоподписанный сертификат, то надо настраивать доверие через передачу сертификата CA на целевую машину. Всё это создаёт неудобства, особенно в тестовой среде.
И вот теперь эта проблема решена. Можно взять виртуалку с внешним IP адресом и выпустить для него подтверждённый сертификат. Я сразу же решил проверить, как это работает.
Мне больше всего нравится certbot как клиент для взаимодействия с Let's Encrypt, хотя я пробовал и использовал все известные клиенты. К сожалению, у него пока не вышла стабильная версия с поддержкой этой новой функциональности. Проверял версию 4.0.0 из пакетов Debian 13, и самую свежую 5.2.2 из docker hub. Нет поддержки новых сертификатов. При запросе ошибка:
Сразу показываю рабочий вариант с использованием acme.sh. От установки, до выпуска сертификата:
Получаем набор файлов для использования по назначению:
Устанавливаем веб сервер, прописываем там в виде доменного имени IP адрес, подключаем этот сертификат. Пример для Angie/Nginx:
Рисуем примерно такую конфигурацию для доступа по IP адресу:
Заходим по HTTPS на IP адрес сервера и видим действительный сертификат. Никаких предупреждений.
Сертификат выдаётся менее чем на 7 дней, так что нужно внимательно следить за автоматическим обновлением. Описанных в заметке настроек достаточно для этого. Acme.sh добавил задание в cron пользователя, будет запускаться раз в сутки.
Удобная и функциональная возможность. Берите на вооружение. Не знаю, поддерживает ли получение таких сертификатов Angie напрямую, через свой встроенный клиент. Я не проверял. Если у кого-то есть информация, поделитесь.
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
———
ServerAdmin:📱 Telegram | 🌐 Сайт | 📲 MAX
#webserver #angie #nginx
Сейчас многий софт без 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:
#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 на рабочей машине? Опрос ниже.
👇👇👇👇👇👇👇
#опрос
В первую очередь на ум приходит Gnome. Но сколько я им пользовался, всегда не нравилось. Не знаю, в чём тут дело. Может просто непривычно, а может он реально неудобен. Постоянно на Linux в качестве рабочей станции я никогда не работал, на сервера тоже DE практически никогда не ставлю. Весь мой опыт ситуативный и очень малый.
Виндузятнику больше привычно KDE чисто визуально, но оно как-будто всё время недоделанное, то тут, то там что-то не работает, вот-вот доработают и так постоянно. На сервер если и нужно было что-то ставить, то ставил чаще всего XFCE.
Меня в основном интересует, чем лучше сейчас пользоваться, чтобы иметь минимум проблем с настройкой, поддержкой, функциональностью. У вас какая DE на рабочей машине? Опрос ниже.
👇👇👇👇👇👇👇
#опрос
Telegram
ServerAdmin.ru
1️⃣ Какая основная операционная система установлена на вашем рабочем компьютере или ноутбуке?
Windows 💻 / Linux 🐧 / MacOS 🍏 / Другая
Windows 💻 / Linux 🐧 / MacOS 🍏 / Другая
👍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, изменив только имя хостов:
Запустил, зашёл на веб интерфейс http://server-ip:5380/, собрал в кластер, настроил списки блокировки и другие настройки. Подключил нескольким пользователям. Проверил - отлично работает, никаких проблем не возникло. Выключил одну ноду, кластер продолжил работать на второй, запросы резолвил.
Продукт однозначно хорош. Я не знаю, что сейчас есть лучше для рекурсивного кэширующего DNS сервера. Если знаете - подскажите.
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
———
ServerAdmin:📱 Telegram | 🌐 Сайт | 📲 MAX
#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:
#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.
Несколько лет не пользовался песочницей. Недавно заметил, что осталось мало места на системном диске. Стал разбираться, куда оно ушло. Кстати, удивительно, что в Винде до сих пор нет удобного встроенного инструмента для этого. Заметил, что директория
занимает 80 гигов. По названию это похоже на слои контейнеров того же Docker, но я его не устанавливал на эту машину и точно не запускал контейнеры.
Если посмотреть на содержимое слоёв, то там располагаются системные файлы из директории Windows. Контейнеров, как и слоёв к ним, много - пару десятков точно, может больше.
Стал гуглить и спрашивать ИИ на тему, что тут хранится. На удивление, информации не так много. В основном везде говорится, что это хозяйство Docker, который можно установить и на Windows. Но это не мой случай.
Оказалось, что это Песочница плодит контейнеры со слоями. Зачем и почему, не нашёл подробной информации. Как и не нашёл, как всё это можно корректно почистить. В итоге песочницу просто удалил через тот же раздел с компонентами Windows. После удаления и перезагрузки, каталог с контейнерами и слоями сам очистился, место освободилось, хотя и не все 80 ГБ. Судя по всему там в том числе и ссылки были, а не только файлы.
Если у вас тоже стоит эта песочница и вы её не используете, то лучше отключить. Ну а если не знали про неё и функциональность кажется полезной, то используйте. Она на самом деле неплохо сделана. В каких-то ситуациях может быть удобно, чтобы не плодить виртуальные машины и снепшоты к ним для отката обратно. Запустил, поработал, закрыл и всё очистилось.
#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. Готовим для него
В файле
Проверим, что сервис стартовал:
Это нормальный ответ. 404 нам ответил Loki. Запустим теперь Grafana:
Указываем нужную версию в compose.yaml и запускаем:
Идём браузером по IP сервера, где запущена Grafana на порт 3000. Учётка по умолчанию - admin / admin. Заходим в Grafana, идём в раздел Connections ⇨ Data sources ⇨ Add data source. Выбираем Loki. В качестве настроек достаточно указать только url. В моём случае это http://192.168.137.30:3100/. Мотаем страничку в самый низ и нажимаем Save & Test. Ошибок быть не должно.
Стек поднят и готов к приёму логов. Отправим туда логи контейнеров Docker. Для этого у Docker существует драйвер. Его необходимо установить на хосте:
Проверяем, что он установился:
Всё в порядке. Теперь мы можем в самом демоне Docker настроить отправку всех логов в Loki через правку его конфигурации в
Это не очень удобно, если у нас нет желания собирать логи абсолютно всех контейнеров. Удобнее управлять этим для каждого контейнера отдельно. Для этого в compose файл достаточно добавить ещё одну секцию logging. Покажу сразу итоговый пример для запуска Grafana из этой публикации:
Перезапускаем проект:
Идём в Grafana, раздел Drilldown ⇨ Logs. Выбираем в выпадающем списке service имя контейнера и смотрим его логи.
Настройка простая и быстрая, легко автоматизируется. Далее я разовью эту тему и добавлю логи из других систем.
———
ServerAdmin:📱 Telegram | 🌐 Сайт | 📲 MAX
#loki #logs #devops
Проект относительно новый, стартовал в 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:3100404 page not foundЭто нормальный ответ. 404 нам ответил Loki. Запустим теперь Grafana:
# cd ../grafanaУказываем нужную версию в compose.yaml и запускаем:
# docker compose up -dИдём браузером по IP сервера, где запущена Grafana на порт 3000. Учётка по умолчанию - admin / admin. Заходим в Grafana, идём в раздел Connections ⇨ Data sources ⇨ Add 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 ls018395707e37 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, раздел Drilldown ⇨ Logs. Выбираем в выпадающем списке service имя контейнера и смотрим его логи.
Настройка простая и быстрая, легко автоматизируется. Далее я разовью эту тему и добавлю логи из других систем.
———
ServerAdmin:
#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
⇨ Proxmox VE 9 — Создание и настройка Ceph кластера | Распределённое хранилище и отказоустойчивость
⇨ Proxmox + Ceph: как заменить отказавший диск шаг за шагом
Продолжение цикла видео автора о настройке HA кластера на базе PVE. Эти два ролика про Ceph.
⇨ Я целый год использовал Proxmox и VMware одновременно (что меня больше всего удивило).
Сравнение двух платформ виртуализации. Вывод автора - для небольших инфраструктур PVE однозначно удобнее и функциональнее.
⇨ Web FileBrowser Quantum + OnlyOffice.
Обзор файлового менеджера через браузер, что лично для меня не очень интересно. А вот его связка с OnlyOffice выглядит уже интересным и функциональным решением для каких-то ситуаций.
⇨ Palmr - Simple File Sharing that keeps your files off the big guys' cloud.
Простая open source система для совместного доступа к файлам. Загружаете туда свой файл и настраиваете доступ к нему другим людям. Можно ограничить по кол-ву скачиваний, времени жизни ссылки, закрыть паролем и т.д. Это более простой аналог Seafile или полный аналог Pwndrop.
⇨ Dockhand Deep Dive: The NEW Docker Management Tool Explained
Обзор новой панельки для управления Docker контейнерами. Выглядит прикольнее Portainer. Если для вас это актуально, рекомендую посмотреть. Я привык запускать Docker контейнеры в LXC контейнерах Proxmox, каждый в отдельном контейнере, так что мне не подходит такой софт. Мне кажется, так, как у меня, удобнее, нежели собирать все контейнеры в одной виртуалке. Хотя раньше именно так делал.
⇨ Netbox как источник достоверной информации о Zabbix: статья Эндрю Нельсона / Zabbix Summit 2025
Интересное выступление, где автор рассказал, как у них Netbox выступает как источник истины для мониторинга. Всё, что туда добавляется автоматически заводится в мониторинг через интеграцию с Ansible.
⇨ Кастомизация Angie (NJS, Lua, Perl)
Расширение функциональности веб сервера с помощью модулей для поддержки различных языков программирования, используемых для написания тех или иных функций. Как обычно автор приводит конкретные наглядные примеры.
⇨ Запуск CGI-скриптов в Angie
Пример настройки CGI скриптов. Не знаю, кто и где их сейчас использует. Я уже очень давно не настраивал и не запускал их.
⇨ Звонки без блокировок - Свой мессенджер на homelab
Автор разворачивает у себя для общения Nextcloud Talk, рассказывает про него, объясняет почему его выбрал.
⇨ Self-hosted Cloudflare + VPN replacement! Pangolin Tutorial
Обзор и настройка Pangolin - необычная система на базе обратного прокси Traefik со своей системой аутентификации или IAM (Identity and Access Management). Он способен объединять разрозненные веб сервера с помощью встроенной интеграции с Wireguard.
———
ServerAdmin:
#видео
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
Proxmox VE 9 — Создание и настройка Ceph кластера | Распределённое хранилище и отказоустойчивость
В этом видео я покажу пошаговую установку и настройку **Ceph-кластера в Proxmox VE 9**. Мы разберём, что такое Ceph, какие преимущества он даёт при построении отказоустойчивого хранилища, и как правильно организовать сеть для кластера.
Вы узнаете:
* как…
Вы узнаете:
* как…
1👍48👎1
Я думал, что из Windows 11 старый Internet Explorer выпилили окончательно. И тут мне в ВК прилетает уведомление о комментарии к заметке 2023 года, где я рассказываю, как можно зайти в старое оборудование, интерфейс которого работает только в IE. Я там речь веду про расширение IE Tab.
А в комментариях человек предложил более простое решение. Создаём файл с расширением .vbs следующего содержания:
Запускаем его и получаем старый добрый Internet Explorer. От нечего делать проверил у себя на самой свежей Windows 11. Просто любопытно стало, заработает или нет. До сих пор работает, к камерам можно подключиться.
Если надо, используйте. Способ рабочий. Несмотря на то, что он давно известен, я как-то мимо ушей его пропускал и ни разу не пробовал. Какие-то другие варианты искал. Хотя это решение максимально простое. Думаю, тут сейчас найдётся немало людей, кто напишет или подумает, мол автор, ты чего, такую банальщину не знаешь. На самом деле не знал, не придумываю.
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
———
ServerAdmin:📱 Telegram | 🌐 Сайт | 📲 MAX
#windows
А в комментариях человек предложил более простое решение. Создаём файл с расширением .vbs следующего содержания:
Set objIE = CreateObject("InternetExplorer.Application")objIE.Visible = 1Запускаем его и получаем старый добрый Internet Explorer. От нечего делать проверил у себя на самой свежей Windows 11. Просто любопытно стало, заработает или нет. До сих пор работает, к камерам можно подключиться.
Если надо, используйте. Способ рабочий. Несмотря на то, что он давно известен, я как-то мимо ушей его пропускал и ни разу не пробовал. Какие-то другие варианты искал. Хотя это решение максимально простое. Думаю, тут сейчас найдётся немало людей, кто напишет или подумает, мол автор, ты чего, такую банальщину не знаешь. На самом деле не знал, не придумываю.
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
———
ServerAdmin:
#windows
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
4👍290👎1
Написал очередную статью из цикла про настройку своего почтового сервера:
⇨ Roundcube Fetchmail plugin - сбор почты с других почтовых ящиков
Я в ней настраиваю плагин для веб клиента Roundcube, с помощью которого можно собирать в свой ящик почту с других внешних серверов. И настроить этот сбор может каждый пользователь самостоятельно в своём аккаунте. Работает всё это на базе известного и популярного решения Fetchmail.
В настоящий момент цикл моих статей про почтовый сервер выглядит следующим образом:
▪️Настройка сервера на базе ОС Debian
▪️Защита от перебора учётных данных с помощью Fail2Ban
▪️Мониторинг Postfix в Zabbix
▪️Автоматическая загрузка почтовых вложений в Nextcloud при отправке через RoundCube и Thunderbird
▪️Roundcube Fetchmail plugin - сбор почты с других почтовых ящиков
Это свежие статьи, обновлённые в течении последних двух месяцев. Есть более старый, но актуальный материал:
◽️Выбор сервера для отправки в зависимости от получателя
◽️Настройка маршрута отправки в зависимости от домена
◽️Ограничение на отправку писем в единицу времени
◽️Перенос почтового сервера
◽️Как изменить тему письма и адрес отправителя через Postfix
◽️Удаление из писем заголовков с локальными IP адресами
◽️Защита почтовых алиасов с множеством получателей от спама
◽️Очистка и обслуживание почтовой базы Postfix
❓Как думаете, какой ещё темы не хватает в контексте своего почтового сервера? По идее не хватает бэкапа, но я почтовую базу формата maildir бэкаплю обычным rsync, про который было много заметок и добавить нечего. Подумываю написать ещё про сбор и анализ логов. Больше ничего в голову не приходит. По идее, всё наиболее актуальное я описал.
Не хватает материала по аутентификации через LDAP, но лично я всегда для почтового сервера использую отдельную базу данных учётных записей. Почтовые сервера всегда открыты для всего интернета, клиенты настроены на различных устройствах пользователей. Учётные данные нередко утекают. Мне не нравится идея объединять их с другими сервисами. Конкретно для почты я считаю, лучше использовать отдельную базу данных с учётными записями, хотя это и не совсем удобно. Для больших масштабов, наверное, не подойдёт, но для малых и средних компаний вполне.
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
———
ServerAdmin:📱 Telegram | 🌐 Сайт | 📲 MAX
#mailserver #postfix #подборка
⇨ Roundcube Fetchmail plugin - сбор почты с других почтовых ящиков
Я в ней настраиваю плагин для веб клиента Roundcube, с помощью которого можно собирать в свой ящик почту с других внешних серверов. И настроить этот сбор может каждый пользователь самостоятельно в своём аккаунте. Работает всё это на базе известного и популярного решения Fetchmail.
В настоящий момент цикл моих статей про почтовый сервер выглядит следующим образом:
▪️Настройка сервера на базе ОС Debian
▪️Защита от перебора учётных данных с помощью Fail2Ban
▪️Мониторинг Postfix в Zabbix
▪️Автоматическая загрузка почтовых вложений в Nextcloud при отправке через RoundCube и Thunderbird
▪️Roundcube Fetchmail plugin - сбор почты с других почтовых ящиков
Это свежие статьи, обновлённые в течении последних двух месяцев. Есть более старый, но актуальный материал:
◽️Выбор сервера для отправки в зависимости от получателя
◽️Настройка маршрута отправки в зависимости от домена
◽️Ограничение на отправку писем в единицу времени
◽️Перенос почтового сервера
◽️Как изменить тему письма и адрес отправителя через Postfix
◽️Удаление из писем заголовков с локальными IP адресами
◽️Защита почтовых алиасов с множеством получателей от спама
◽️Очистка и обслуживание почтовой базы Postfix
❓Как думаете, какой ещё темы не хватает в контексте своего почтового сервера? По идее не хватает бэкапа, но я почтовую базу формата maildir бэкаплю обычным rsync, про который было много заметок и добавить нечего. Подумываю написать ещё про сбор и анализ логов. Больше ничего в голову не приходит. По идее, всё наиболее актуальное я описал.
Не хватает материала по аутентификации через LDAP, но лично я всегда для почтового сервера использую отдельную базу данных учётных записей. Почтовые сервера всегда открыты для всего интернета, клиенты настроены на различных устройствах пользователей. Учётные данные нередко утекают. Мне не нравится идея объединять их с другими сервисами. Конкретно для почты я считаю, лучше использовать отдельную базу данных с учётными записями, хотя это и не совсем удобно. Для больших масштабов, наверное, не подойдёт, но для малых и средних компаний вполне.
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
———
ServerAdmin:
#mailserver #postfix #подборка
Please open Telegram to view this post
VIEW IN TELEGRAM
Server Admin
Roundcube Fetchmail plugin - сбор почты с других почтовых ящиков |...
Сбор почты с внешних почтовых ящиков с помощью RoundCube Fetchmail plugin на свой почтовый сервер.
1👍78👎2
Подписчик поделился интересной реализацией OTP (One Time Password) для подключений по RDP. При подключении пользователь сначала вводит свой основной пароль от учётной записи, а потом одноразовый через приложение на смартфоне. Это неплохо страхует сервер, доступный из интернета. Способ отлично подойдёт в том случае, когда по какой-то причине доступ по RDP нельзя убрать из прямого доступа через интернет.
Ничего особенного в этом нет, подобных систем много. Но обычно это отдельный сервис, который надо разворачивать, настраивать, и это не всегда просто и быстро сделать. А описанный ниже способ очень простой. Всё устанавливается локально на ОС Windows как серверных, так и десктопных редакций. Разницы в настройке нет.
Для реализации 2FA через OTP на Windows нам понадобится open source продукт под названием multiOTP, а точнее его отдельный компонент multiOTPCredentialProvider. Покажу сразу полную настройку. Я у себя всё проверил. Долго провозился, потому что разбирался, как всё это работает, собирал нужные команды, читал help. Повторить можно будет намного быстрее. ИИ не помог, тупо выдумал все команды. Вообще все.
Со страницы загрузки скачиваете свежую версию multiOTP Credential Provider. Это обычный
- локальные и удалённые входы
- локальные или удалённые разблокировки сеансов
- локальный или удалённый запуск приложений в режиме "Запустить от администратора (Run as Administrator)"
Я выбрал только один случай - remote logon, то есть удалённое подключение, в данном случае по RDP.
После установки запускаем cmd от администратора и переходим в каталог с программой:
Выбираем любого системного пользователя и задаём ему вход через TOTP:
◽️totp_user - имя пользователя
◽️34443E4948A3C06A1CFB - любой 160 битный ключ (Hexadecimal, Шестнадцатеричный ключ, 20 символов), можно создать в онлайн генераторе.
◽️6 - количество символов в одноразовом пароле
И сразу же создадим пользователю qr код для добавления в аутентификатор:
❗️Теперь важный момент. После установки multiOTP Credential Provider для всех удалённых подключений будет требоваться TOTP, даже если вы их не добавили в базу multiotp. Я попался на этом. Пришлось подключаться локально и добавлять TOTP для остальных учёток.
Только после того, как вы выполнили создание пользователя через multiotp, вы сможете отключить для отдельных пользователей использование TOTP:
Для пользователя zerox отключили одноразовые пароли. Он заходит как обычно.
Собственно, на этом настройка и окончена. Приведу список команд, которыми пользовался во время настройки.
Список пользователей в базе multiotp:
Информация о пользователе:
Настроить длину пароля по умолчанию:
Выпустить список одноразовых паролей. Могут пригодиться, если пользователь потерял смартфон или не может воспользоваться аутентификатором:
Я проверил одноразовые пароли. По ним нормально заходит.
Пользователю нужно установить на смартфон или компьютер какой-то аутентификатор. Их очень много. Я проверял Google Authenticator и FreeOTP. Последний можно через RuStore установить.
В самой программе достаточно отсканировать qr код пользователя и генератор одноразовых паролей для multiotp будет добавлен. Если нет возможности отсканировать qr код, то можно hexadecimal ключ сконвертировать в base32 и добавить вручную.
multiOTP - масштабный сервис. Может быть развёрнут в связке с AD, или по аналогии настроен в Linux для SSH.
———
ServerAdmin:📱 Telegram | 🌐 Сайт | 📲 MAX
#windows #security
Ничего особенного в этом нет, подобных систем много. Но обычно это отдельный сервис, который надо разворачивать, настраивать, и это не всегда просто и быстро сделать. А описанный ниже способ очень простой. Всё устанавливается локально на ОС Windows как серверных, так и десктопных редакций. Разницы в настройке нет.
Для реализации 2FA через OTP на Windows нам понадобится open source продукт под названием multiOTP, а точнее его отдельный компонент multiOTPCredentialProvider. Покажу сразу полную настройку. Я у себя всё проверил. Долго провозился, потому что разбирался, как всё это работает, собирал нужные команды, читал help. Повторить можно будет намного быстрее. ИИ не помог, тупо выдумал все команды. Вообще все.
Со страницы загрузки скачиваете свежую версию multiOTP Credential Provider. Это обычный
.msi пакет. Устанавливаете в системе. Во время установки ставите галочку, что не используете никакой сервис, а только локальную версию. Не запомнил, как точно настройка называлась. А на втором экране отмечаете галочками, для каких процессов будет запрашиваться одноразовый пароль. Это могут быть:- локальные и удалённые входы
- локальные или удалённые разблокировки сеансов
- локальный или удалённый запуск приложений в режиме "Запустить от администратора (Run as Administrator)"
Я выбрал только один случай - remote logon, то есть удалённое подключение, в данном случае по RDP.
После установки запускаем cmd от администратора и переходим в каталог с программой:
> cd C:\Program Files\multiOTPВыбираем любого системного пользователя и задаём ему вход через TOTP:
> multiotp.exe -debug -display-log -create totp_user TOTP 34443E4948A3C06A1CFB 6◽️totp_user - имя пользователя
◽️34443E4948A3C06A1CFB - любой 160 битный ключ (Hexadecimal, Шестнадцатеричный ключ, 20 символов), можно создать в онлайн генераторе.
◽️6 - количество символов в одноразовом пароле
И сразу же создадим пользователю qr код для добавления в аутентификатор:
> multiotp.exe -qrcode totp_user c:\multiotp\totp_user.png❗️Теперь важный момент. После установки multiOTP Credential Provider для всех удалённых подключений будет требоваться TOTP, даже если вы их не добавили в базу multiotp. Я попался на этом. Пришлось подключаться локально и добавлять TOTP для остальных учёток.
Только после того, как вы выполнили создание пользователя через multiotp, вы сможете отключить для отдельных пользователей использование TOTP:
> multiotp -iswithout2fa zeroxДля пользователя zerox отключили одноразовые пароли. Он заходит как обычно.
Собственно, на этом настройка и окончена. Приведу список команд, которыми пользовался во время настройки.
Список пользователей в базе multiotp:
> multiotp -userslistИнформация о пользователе:
> multiotp -user-info totp_userНастроить длину пароля по умолчанию:
> multiotp -config default-2fa-digits 6Выпустить список одноразовых паролей. Могут пригодиться, если пользователь потерял смартфон или не может воспользоваться аутентификатором:
> multiotp.exe -scratchlist totp_userЯ проверил одноразовые пароли. По ним нормально заходит.
Пользователю нужно установить на смартфон или компьютер какой-то аутентификатор. Их очень много. Я проверял Google Authenticator и FreeOTP. Последний можно через RuStore установить.
В самой программе достаточно отсканировать qr код пользователя и генератор одноразовых паролей для multiotp будет добавлен. Если нет возможности отсканировать qr код, то можно hexadecimal ключ сконвертировать в base32 и добавить вручную.
multiOTP - масштабный сервис. Может быть развёрнут в связке с AD, или по аналогии настроен в Linux для SSH.
———
ServerAdmin:
#windows #security
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
3👍216👎2
⚡️Серверная ОС SelectOS теперь включена в реестр российского ПО Минцифры. Её можно использовать в корпоративной инфраструктуре и при этом получать поддержку от вендора.
Из преимуществ:
🔹поддержка по SLA,
🔹предсказуемая совместимость с 500+ конфигурациями выделенных серверов,
🔹доступ к расширенной документации с помощью ИИ-ассистента в manpages
Скачайте бесплатно и протестируйте у себя: https://slc.tl/5kg3c
Реклама. АО "Селектел". erid:2W5zFJM5KXn
Из преимуществ:
🔹поддержка по SLA,
🔹предсказуемая совместимость с 500+ конфигурациями выделенных серверов,
🔹доступ к расширенной документации с помощью ИИ-ассистента в manpages
Скачайте бесплатно и протестируйте у себя: https://slc.tl/5kg3c
Реклама. АО "Селектел". erid:2W5zFJM5KXn
👎50👍27