dos3-and-cf-wall.png

S3 Storage и CDN - настраиваем корзинки через CloudFlare Proxy

Всем привет! Данная заметка является примером реализации задачи, возникшей в одном из проектов. Сам проект представляет собой небольшой сайт-магазин, где потребовалось ускорить загрузку статического контента (карточек и изображений). Исходя из этого, первым делом я решил двигаться в сторону CDN от Cloudflare, так как ранее уже имел с ним опыт работы. Также я отказался от хранения изображений на сервере и перенёс всё в S3 от Hetzner. Однако в процессе тестирования этой связки выяснилось, что S3-сервис, предоставляемый Hetzner, довольно сырой и не поддерживает работу с Cloudflare Proxy. Стоит отметить, что на Reddit можно встретить немало негативных отзывов об этом S3-сервисе, в том числе из-за его высокой стоимости. ...

January 26, 2025 · 8 min · 1562 words · Tony
ubuntu-suspend-wall.jpeg

Ubuntu - отправляем систему в suspend

Привет всем, Достаточно интересная задачка пришла, в которой интересно было покапаться. Имеем физический сервер с ubuntu на борту, и подключенным питанием в бесперебойник. Нам требуется настроить операционку, на отправку системы в suspend mode. И задача упрощается, так как UPS за собой имеет usb-интерфейс, который мы подключим к серверу. (схема подключения) Для решения этой задачи определил для себя два способа: Интересный способ, это написания собственного скрипта с добавлением в него уведомления; Нативный способ, это перенастройка окружения за счет встроенных функций оконного менеджера. Рассмотрим оба варианта реализации. ...

September 19, 2023 · 4 min · 730 words · Tony
nginx-basic-auth.png

Nginx - настройка BasicAuth

Решил оставить такую мелкую шпаргалку описывающую, как можн прикрутить авторизацию по логину/паролю на nginx в Centos-подобных системах. Ставим пакет: [root@prometheus01]# yum install httpd-tools Создаем файл с содержимым секретов: [root@prometheus01]# htpasswd -c /etc/nginx/.passwd admin Ключ -c /path/to/file - говорит системе, что мы хотим создать новый файл секретов. Для добавления пользователя в этот же файл секретов, используем команду: [root@prometheus01]# htpasswd /etc/nginx/.passwd grafana-user На файле с секретами, меняем овнера и группу: [root@prometheus01 ~]# chown -R nginx:nginx /etc/nginx/.passwd Остается отдерактировать nginx-config-у: ...

May 15, 2023 · 1 min · 156 words · Tony

MariaDB, Репликация master-to-master (Active/Passive)

Как я упоминал ранее, для реализации высокой доступности MFA сервиса буду поднимать несколько экземпляров PrivacyIdea серверов. PrivacyIdea все свое состояние хранит в субд. И для решение всей задачи, мне достаточно обеспечить высокую доступность на уровне баз. В документации к сервису предлагается два решения: Использование централизированной менеджмент системы СУБД (Например: Mariadb Galera, Pgpool); Использование два инстанса MySQL в режиме master-master. Разумеется в моем случаи целесобразнее будет использование второго варианта. Вообщем я взялся за изучения вопроса эсплуатации master-to-master субд. И мнения у большинства - нигативные, из основных притензий к такому подходу, это нарватся на рассихронизацию данных в обоих бд. Также при вставке уникального значения столбца в обе базы, приведет к вылету инстансов или к прерыванию репликации. Выход из подобных ситуаций это создание active/passive кластера. Мы добавляем выше какой либо балансировщик (keepalived, например) и пишем данные в одну мастер ноду вторая же нода используется как горячий бекап. В случаи падения первого мастера, мы продолжаем писать уже во второй мастер. ...

April 10, 2023 · 6 min · 1176 words · Tony
privacyidea-guide-wall.jpg

PrivacyIdea + Radius - MFA для удаленного доступа

В прошлых итерациях настраивали сервис двухфакторной авторизации, для интеграции его с Cisco ISE. На этот раз решил попробовать проинтегрировать аналогичную LinOTP прилу - PrivacyIdea. На самом деле PrivacyIdea это форк LinOTP, который активно развивается разрабами и имеет более симпотичный WebUI. Да и стоит отметить, что некоторые фичи уже добавленые в приложение из коробки. И не нужно реализовывать костели, которые я делал ранее. Стоит отметить, что стабильная версия LinOTP работает на втором python2, что на сегодня уже считаеться немного легаси =). Я пробовал собирать приложение на python3, но из-за различных проблем в процессе использования сервиса, у меня просто опустились руки. ...

April 7, 2023 · 8 min · 1652 words · Tony
linotp wall

LinOTP - Active/Passive 2fa кластер (Начало)

Возникла задача обновить сервера LinOTP, которые используются в качестве сервиса 2х факторной авторизации. В текущей конфигурации сервиса, в качестве бекенда используется pgpool+postgresql, и новой реализации решил отказаться от этого, так как жизнь с pgpool накладывает дополнительный overhead. (Схема нового кластера) Установка PostgreSQL Настройку на серверах начнем с самого нижнего слоя, установим и подготовим к использованию базу. Включаем модуль с Postgresql версией 13, и ставим пакеты: [All Servers]# yum module enable -y postgresql:13 [All Servers]# yum install postgresql -y postgresql-server Проинициализируем базу данных: ...

March 28, 2023 · 12 min · 2439 words · Tony
Wireguard-wall

Wireguard - Настройка vpn-сервера

Wireguard - отличное решение, если нужно быстро организовать доступ к закрытому скоупу. Вот и ко мне прилетела задача, организовать доступ к exsi через vpn. Сам хост стоит в дата центре и имеет прямой доступ. После реализации vpn-сети, вырубим доступ. (Схема vpn-сети) Я поднял небольшую виртуалку, на которой поднимем wireguard-сервер, далее на микроте (который используется как фаервол/роутер) прокинем порт к vpn серверу. Установка WireGuard Подключаемся к серверу и ставим репозитории epel и eprepo: ...

February 16, 2023 · 6 min · 1123 words · Tony

mongoDB - Установка и настройка кластера

Этот пост будет посвящен установке MongoDB, посмотрим на различные варианты в single-instance, replicaset. MongoDB - это документориентированная СУБД, для хранения информации в json-подобных структурах BSON (Binary json). Монга написана на C++, использует mmap и имеет javascript-like язык запросов. Установка mongoDB Процесс установки монги достаточно тривиальный, и не требует продолжительных подготовок. В этом разделе будем ставить сервис на одиночный сервер, под управлением RockyLinux 8.5. Идем на сайт монги, копируем конфиг репозитория. Подключаемся на сервер, создаем новый репозиторий.: ...

January 31, 2023 · 6 min · 1261 words · Tony