💥 MySQL Multi-Source Replication: как построить мультимастер-БД, которая не падает
23 декабря в 20:00 мск — бесплатный урок курса «Инфраструктура высоконагруженных систем»
Устали от падения мастера? Переходите от Master-Slave к мультимастеру, где запись идёт на несколько нод одновременно, а система переключается при сбое за секунды.
📌 Что будет:
— Эволюция репликации: от Master-Slave к Multi-Master
— Пошаговая настройка Multi-Source Replication
— Автоматический failover через Keepalived (с демо!)
— Стратегии для highload: горизонтальное масштабирование записи
🎯 После вебинара сможете:
— Развернуть Multi-Source/Multi-Master MySQL
— Настроить автоматическое переключение мастеров
— Избегать конфликтов записи
— Проектировать отказоустойчивые БД
Особенно полезно админам Linux, DevOps и архитекторам.
👉 Регистрация открыта: https://clck.ru/3Qwh8H
Вебинар приурочен к старту курса «Инфраструктура высоконагруженных систем».
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
23 декабря в 20:00 мск — бесплатный урок курса «Инфраструктура высоконагруженных систем»
Устали от падения мастера? Переходите от Master-Slave к мультимастеру, где запись идёт на несколько нод одновременно, а система переключается при сбое за секунды.
📌 Что будет:
— Эволюция репликации: от Master-Slave к Multi-Master
— Пошаговая настройка Multi-Source Replication
— Автоматический failover через Keepalived (с демо!)
— Стратегии для highload: горизонтальное масштабирование записи
🎯 После вебинара сможете:
— Развернуть Multi-Source/Multi-Master MySQL
— Настроить автоматическое переключение мастеров
— Избегать конфликтов записи
— Проектировать отказоустойчивые БД
Особенно полезно админам Linux, DevOps и архитекторам.
👉 Регистрация открыта: https://clck.ru/3Qwh8H
Вебинар приурочен к старту курса «Инфраструктура высоконагруженных систем».
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
👍12👎4
Продолжая утреннюю тему, разберу ещё один спорный момент насчёт использования sudo на серверах. В своих статьях и заметках я sudo никогда не пишу, да и не использую. И нередко получаю на этот счёт замечания, что автор советует плохое, использует небезопасные практики и сидит на сервере под root. Якобы это не безопасно.
А я на самом деле сижу на сервере под root и не вижу в этом ничего зазорного. Сервер - не рабочая машина. Я туда не захожу просто так. Обычно я захожу на сервер для выполнения административных действий, для которых требуются права root. Без этих прав мне там и делать особо нечего.
Человек, который безапелляционно заявляет, что работать без sudo небезопасно, скорее всего до конца не понимает, что это за инструмент и для чего он нужен. Просто где-то прочитал об этом и бездумно повторяет.
Допустим, я единственный пользователь сервера, настроил его и администрирую единолично. Других людей там нет. Я не использую sudo. И какие это должно вызывать проблемы безопасности?
Другое дело, когда появляются разные пользователи. И здесь уже нужно sudo для аудита выполняемых действий и разграничения прав. Тем более, если работает большой отдел с единой системой хранения учётных записей и разграничения прав доступа. Хотя и это уже не панацея. Есть и другие модели многопользовательского доступа к серверам без использования sudo для логирования и разграничения прав.
Далее у нас появляются какие-то скрипты или другие инструменты, которые заходят удалённо на наш сервер для выполнения каких-то конкретных действий. Тут опять нужно sudo для того, чтобы их ограничить только теми действиями, которые им разрешены. Сюда же относятся и локальные службы с ограниченными правами, которые через sudo выполняют какие-то конкретно разрешённые действия с повышением прав. Например, это очень актуально для Zabbix Agent, который может что-то автоматически выполнять на сервере.
С помощью sudo удобно настраивать шаблоны систем для каких-то узких задач. Например, есть веб сервер, на который нужен почти полный доступ разработчиков, чтобы они могли смотреть логи Nginx, Php-fpm, перезапускать сервисы, менять их конфигурации и т.д. Но при этом за самой системой, её обновлением, закрытием уязвимостей следит другая служба, которая сама всё обновляет, перезагружает и следит за стабильной работой системы в целом. Через sudo разработчикам даётся доступ к нужным им службам, а всё остальное им недоступно, чтобы ненароком чего не сломали, не нарушили общие правила безопасности. В данном случае можно сказать, что дать полный доступ разработчикам к серверу без sudo небезопасно.
☝️К чему я всё это пишу? Специалист он на то и специалист, что разбирается в теме и в каждом конкретном случае думает, как ему сделать удобнее и безопаснее, а не просто повторяет заученные или случайно увиденные примеры. Подходы к настройке и управлению инфраструктурой на 3 сервера и на 100 будут разные. В одном случае от sudo никакого толка не будет, а в другом без него никуда, хотя и это не точно. По умолчанию никакой безопасности sudo не добавляет. Её и в системе то нет в базовой установке. Надо отдельно устанавливать там, где это действительно нужно.
Например, можно запретить подключение по SSH для root, настроить аутентификацию по ключам, и каждый раз при входе на сервер делать что-то типа sudo su и вводить пароль или перед каждой командой писать sudo. А можно разрешить подключение сразу под root, настроить аутентификацию по ключу и закрыть ключ паролем. Его тоже придётся один раз ввести, но попадаешь на сервер сразу под root. Какая схема безопаснее? А какая удобнее?
Кстати, для тех, кто ещё не знает, напомню, что sudo появилась и в Windows. Я уже пользуюсь, удобно.
———
ServerAdmin:📱 Telegram | 🌐 Сайт | 📲 MAX
#security
А я на самом деле сижу на сервере под root и не вижу в этом ничего зазорного. Сервер - не рабочая машина. Я туда не захожу просто так. Обычно я захожу на сервер для выполнения административных действий, для которых требуются права root. Без этих прав мне там и делать особо нечего.
Человек, который безапелляционно заявляет, что работать без sudo небезопасно, скорее всего до конца не понимает, что это за инструмент и для чего он нужен. Просто где-то прочитал об этом и бездумно повторяет.
Допустим, я единственный пользователь сервера, настроил его и администрирую единолично. Других людей там нет. Я не использую sudo. И какие это должно вызывать проблемы безопасности?
Другое дело, когда появляются разные пользователи. И здесь уже нужно sudo для аудита выполняемых действий и разграничения прав. Тем более, если работает большой отдел с единой системой хранения учётных записей и разграничения прав доступа. Хотя и это уже не панацея. Есть и другие модели многопользовательского доступа к серверам без использования sudo для логирования и разграничения прав.
Далее у нас появляются какие-то скрипты или другие инструменты, которые заходят удалённо на наш сервер для выполнения каких-то конкретных действий. Тут опять нужно sudo для того, чтобы их ограничить только теми действиями, которые им разрешены. Сюда же относятся и локальные службы с ограниченными правами, которые через sudo выполняют какие-то конкретно разрешённые действия с повышением прав. Например, это очень актуально для Zabbix Agent, который может что-то автоматически выполнять на сервере.
С помощью sudo удобно настраивать шаблоны систем для каких-то узких задач. Например, есть веб сервер, на который нужен почти полный доступ разработчиков, чтобы они могли смотреть логи Nginx, Php-fpm, перезапускать сервисы, менять их конфигурации и т.д. Но при этом за самой системой, её обновлением, закрытием уязвимостей следит другая служба, которая сама всё обновляет, перезагружает и следит за стабильной работой системы в целом. Через sudo разработчикам даётся доступ к нужным им службам, а всё остальное им недоступно, чтобы ненароком чего не сломали, не нарушили общие правила безопасности. В данном случае можно сказать, что дать полный доступ разработчикам к серверу без sudo небезопасно.
☝️К чему я всё это пишу? Специалист он на то и специалист, что разбирается в теме и в каждом конкретном случае думает, как ему сделать удобнее и безопаснее, а не просто повторяет заученные или случайно увиденные примеры. Подходы к настройке и управлению инфраструктурой на 3 сервера и на 100 будут разные. В одном случае от sudo никакого толка не будет, а в другом без него никуда, хотя и это не точно. По умолчанию никакой безопасности sudo не добавляет. Её и в системе то нет в базовой установке. Надо отдельно устанавливать там, где это действительно нужно.
Например, можно запретить подключение по SSH для root, настроить аутентификацию по ключам, и каждый раз при входе на сервер делать что-то типа sudo su и вводить пароль или перед каждой командой писать sudo. А можно разрешить подключение сразу под root, настроить аутентификацию по ключу и закрыть ключ паролем. Его тоже придётся один раз ввести, но попадаешь на сервер сразу под root. Какая схема безопаснее? А какая удобнее?
Кстати, для тех, кто ещё не знает, напомню, что sudo появилась и в Windows. Я уже пользуюсь, удобно.
———
ServerAdmin:
#security
Please open Telegram to view this post
VIEW IN TELEGRAM
Telegram
ServerAdmin.ru
На днях увидел новость, что в Windows появилась утилита sudo 😳, как в Linux, для повышения пользовательских привилегий до административных. Было очень удивительно это увидеть и организационно, и по идентичному названию, которое в Windows выглядит инородно.…
👍160👎6
Существует простая, эффективная и немного маргинальная технология по ограничению доступа через интернет к своим сервисам - port knocking. Думаю, она многим известна. Я сам не раз про неё делал заметки. Там смысл в том, что нужно послать определённую последовательность сетевых пакетов на файрвол, и он откроется для твоего IP. Пример того, как это настраивается в Mikrotik.
В Linux это можно реализовать специальным софтом knockd или сделать вручную правила для iptables примерно так же, как в Mikrotik. Там под капотом тот же iptables. Настраивается очень просто. Ниже набор правил для открытия доступа на 30 секунд при отправке 1 icmp пакета размером ровно 116 байт. Во всех примерах в интернете в основном не пингуют, а стучат в разные TCP порты. Мне реализация на базе icmp кажется проще и удобнее, главное, чтобы icmp не был заблокирован:
Теперь пингуем на винде:
или в линуксе:
и нам открывается 22-й порт.
Выше очень простое решение с 1-м пакетом. По идее надо посложнее, но там тогда правил заметно больше будет и надо жонглировать списками. Мне кажется, и такого подхода достаточно. Мы же не прямой доступ к чему-то открываем, а к какой-то службе, где далее будет аутентификация пользователя. Даже в таком виде вычислить со стороны, что у нас там открывается и как очень сложно.
На практике я очень редко этим пользуюсь, хотя настраиваю. На всех своих Микротиках с доступом извне port knocking на всякий случай настроен. Метод неудобен тем, что нужно куда-то записать ключи для ping, либо сохранить в скрипте. Если надо подключиться, то начинаешь вспоминать, как настроено, где записано. В этом плане VPN удобнее и функциональнее. Подключился один раз по настроенному соединению и пользуешься. Всё стандартно для всех подобных случаев.
Но сейчас настали такие времена, когда port knocking имеет смысл настраивать. VPN запросто может не работать. Софт типа Anydesk тоже работает через раз, особенно через мобильную связь. Нет 100% уверенности, что удастся подключиться здесь и сейчас.
Port knocking в этом плане очень прост и надёжен. Открывается конкретно для тебя на короткий срок прямой доступ. При этом установленное соединение уже не ограничено по времени. Пинганул свой внешний файрвол, он открыл для тебя доступ на 1 минуту. Ты подключился и работаешь, пока связь не оборвётся. Потом ещё раз можно пингануть для нового соединения. Этот подход нормально работает для SSH или RDP.
Есть развитие этого подхода в виде HTTP запросов для открытия доступа. С ними чуть проще в плане удобства, так как можно сохранить нужную ссылку и потом просто переходить по ней для открытия доступа. Но это не очень безопасно, так как ссылку могут где-то по почте или мессенджерах передавать, больше шансов что она куда-то на сторону уйдёт. Реализовать подобное можно в таких бесплатных проектах, как:
▪️Labean
▪️Updater
▪️webhook
Делается обычный вебхук, который создаёт правило в файрволе на основе клиентского IP адреса.
Настраиваете у себя что-то подобное? Может есть ещё какие-то инструменты для этого, чтобы в одно действие и пингануть сразу как нужно, и запустить клиент с подключением, чтобы это можно было кому-то отдать, как готовое решение, куда надо только пароль потом ввести. Я вроде что-то подобное видел, но сейчас не могу вспомнить.
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
———
ServerAdmin:📱 Telegram | 🌐 Сайт | 📲 MAX
#gateway
В Linux это можно реализовать специальным софтом knockd или сделать вручную правила для iptables примерно так же, как в Mikrotik. Там под капотом тот же iptables. Настраивается очень просто. Ниже набор правил для открытия доступа на 30 секунд при отправке 1 icmp пакета размером ровно 116 байт. Во всех примерах в интернете в основном не пингуют, а стучат в разные TCP порты. Мне реализация на базе icmp кажется проще и удобнее, главное, чтобы icmp не был заблокирован:
iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p icmp --icmp-type echo-request -m length --length 144 -m recent --name SSH_KNOCK --set
iptables -A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW -m recent --name SSH_KNOCK --rcheck --seconds 30 -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j DROP
Теперь пингуем на винде:
> ping 192.168.137.38 -n 1 -l 116или в линуксе:
# ping 192.168.137.38 -c 1 -s 116 и нам открывается 22-й порт.
Выше очень простое решение с 1-м пакетом. По идее надо посложнее, но там тогда правил заметно больше будет и надо жонглировать списками. Мне кажется, и такого подхода достаточно. Мы же не прямой доступ к чему-то открываем, а к какой-то службе, где далее будет аутентификация пользователя. Даже в таком виде вычислить со стороны, что у нас там открывается и как очень сложно.
На практике я очень редко этим пользуюсь, хотя настраиваю. На всех своих Микротиках с доступом извне port knocking на всякий случай настроен. Метод неудобен тем, что нужно куда-то записать ключи для ping, либо сохранить в скрипте. Если надо подключиться, то начинаешь вспоминать, как настроено, где записано. В этом плане VPN удобнее и функциональнее. Подключился один раз по настроенному соединению и пользуешься. Всё стандартно для всех подобных случаев.
Но сейчас настали такие времена, когда port knocking имеет смысл настраивать. VPN запросто может не работать. Софт типа Anydesk тоже работает через раз, особенно через мобильную связь. Нет 100% уверенности, что удастся подключиться здесь и сейчас.
Port knocking в этом плане очень прост и надёжен. Открывается конкретно для тебя на короткий срок прямой доступ. При этом установленное соединение уже не ограничено по времени. Пинганул свой внешний файрвол, он открыл для тебя доступ на 1 минуту. Ты подключился и работаешь, пока связь не оборвётся. Потом ещё раз можно пингануть для нового соединения. Этот подход нормально работает для SSH или RDP.
Есть развитие этого подхода в виде HTTP запросов для открытия доступа. С ними чуть проще в плане удобства, так как можно сохранить нужную ссылку и потом просто переходить по ней для открытия доступа. Но это не очень безопасно, так как ссылку могут где-то по почте или мессенджерах передавать, больше шансов что она куда-то на сторону уйдёт. Реализовать подобное можно в таких бесплатных проектах, как:
▪️Labean
▪️Updater
▪️webhook
Делается обычный вебхук, который создаёт правило в файрволе на основе клиентского IP адреса.
Настраиваете у себя что-то подобное? Может есть ещё какие-то инструменты для этого, чтобы в одно действие и пингануть сразу как нужно, и запустить клиент с подключением, чтобы это можно было кому-то отдать, как готовое решение, куда надо только пароль потом ввести. Я вроде что-то подобное видел, но сейчас не могу вспомнить.
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
———
ServerAdmin:
#gateway
Please open Telegram to view this post
VIEW IN TELEGRAM
Telegram
ServerAdmin.ru
Расскажу про технологию, которую возможно не все знают. Речь пойдёт про port knocking, который я иногда использую. Это очень простой способ защитить подключение к какому-то сервису через интернет.
Суть метода в том, что разрешающее правило на firewall…
Суть метода в том, что разрешающее правило на firewall…
👍129👎2
⚡️ Храните бэкапы и логи выгодно:
в S3 Selectel появился новый класс хранилища — ледяное.
📦Минимальная стоимость хранения и Erasure Coding — оптимально для редко используемых файлов.
Протестируйте хранилище и перенесите данные в S3 Selectel по акции «миграционные каникулы»: у вас будет 30 дней бесплатного использования входящих запросов и хранилища.
Создавайте заявку и пользуйтесь: https://slc.tl/ck0bl
Реклама. АО "Селектел". erid:2W5zFK4JVm2
в S3 Selectel появился новый класс хранилища — ледяное.
📦Минимальная стоимость хранения и Erasure Coding — оптимально для редко используемых файлов.
Протестируйте хранилище и перенесите данные в S3 Selectel по акции «миграционные каникулы»: у вас будет 30 дней бесплатного использования входящих запросов и хранилища.
Создавайте заявку и пользуйтесь: https://slc.tl/ck0bl
Реклама. АО "Селектел". erid:2W5zFK4JVm2
👍12👎7
⚠️ Хочу предупредить всех, кто использует Telegram ботов для различных задач. Вчера впервые столкнулся с ситуацией, когда к боту получил доступ кто-то посторонний. Причём, я не знаю, как. Да и в целом не знаю, что именно произошло. Просто мой бот стал присылать мне рекламу казино.
В моём случае речь идёт про бота, которого я использую для отправки событий мониторинга из различных систем. Его токен я не должен был где-то засветить сам. Все токены, что я публикую в заметках, изменённые, хоть и выглядят, как настоящие. А последние несколько недель вообще никаких настроек на тему ботов не делал.
Конечно, в идеале для каждой задачи надо создавать отдельного бота. Тогда сразу будет понятно, где он засветился. Но у меня и так полно ботов. Плюс, к ним осмысленные имена трудно придумать, так как они все заняты. В итоге если для каждой задачи создавать отдельного бота, то надо табличку вести с описанием этих ботов.
В целом, для меня всё это некритично. Я бота тут же удалил, создал нового и настроил всё через него. По идее, токен бота мог утечь только через ПО, которое его использовало. Либо через какую-то уязвимость Telegram.
Такая вот история вышла. Я раньше с этим не сталкивался и не задумывался, что бота можно внезапно потерять. Если на него что-то важное заведено, то можно получить проблемы (привет заметкам с управлением сервером через TG 😎). Имейте это ввиду и как минимум для каждой задачи или системы делайте отдельного бота. Так хоть будет понятно, с какой стороны проблемы. И не особо доверяйте им.
#разное
В моём случае речь идёт про бота, которого я использую для отправки событий мониторинга из различных систем. Его токен я не должен был где-то засветить сам. Все токены, что я публикую в заметках, изменённые, хоть и выглядят, как настоящие. А последние несколько недель вообще никаких настроек на тему ботов не делал.
Конечно, в идеале для каждой задачи надо создавать отдельного бота. Тогда сразу будет понятно, где он засветился. Но у меня и так полно ботов. Плюс, к ним осмысленные имена трудно придумать, так как они все заняты. В итоге если для каждой задачи создавать отдельного бота, то надо табличку вести с описанием этих ботов.
В целом, для меня всё это некритично. Я бота тут же удалил, создал нового и настроил всё через него. По идее, токен бота мог утечь только через ПО, которое его использовало. Либо через какую-то уязвимость Telegram.
Такая вот история вышла. Я раньше с этим не сталкивался и не задумывался, что бота можно внезапно потерять. Если на него что-то важное заведено, то можно получить проблемы (привет заметкам с управлением сервером через TG 😎). Имейте это ввиду и как минимум для каждой задачи или системы делайте отдельного бота. Так хоть будет понятно, с какой стороны проблемы. И не особо доверяйте им.
#разное
2👍165👎1
По какой-то причине практически отсутствует как класс программное обеспечение для архивирования почты и последующей работы с архивами. По крайней мере мне ничего такого на ум не приходит, кроме некоторых небольших проектов. Про один из них я недавно писал - Mail-Archiver.
Сегодня рассмотрю другое бесплатное ПО по этой же теме - Open Archiver. По сравнению с Mail-Archiver он выглядит более функциональным и технологичным. Внешне тоже больше понравился. Но сразу скажу, что проект не очень зрелый, появился недавно. Есть некоторые баги, скупая документация. Я немного повозился, прежде чем развернул его. Но в итоге всё получилось.
📌 Возможности и особенности Open Archiver:
▪️Сбор почты по IMAP, в том числе с Google Workspace и Microsoft 365, импорт из PST и Mbox файлов.
▪️Почта хранится в виде .eml файлов с зашифрованным содержимым.
▪️Для хранения может использоваться локальная директория или S3 хранилище.
▪️Развитый поиск по телу письма и вложениям, в том числе с распознаванием PDF, DOCX, XLSX, архивов и др., в том числе картинок. В бэкенде распознавания там Apache Tika, а поисковой движок Meilisearch. Сразу скажу, что поиск работает хорошо и быстро. По крайней мере на моих тестах.
▪️Проверка и сравнение хэшей писем и вложений на оригинальном сервере и архиве.
▪️RBAC модель доступа пользователей, то есть можно создавать роли с разными правами и назначать пользователям. Кто-то может только читать, кто-то и удалять, кто-то добавлять новые ящики и т.д. Можно глобально запретить любое удаление писем или ящиков из Open Archiver.
▪️Все действия с системой можно выполнять через API.
Я недавно раздумывал над задачей, как разгрузить хранилище большого почтового сервера, где куча ящиков уволенных людей. Всё это занимает много места, не особо надо, но удалить нельзя. Вдруг ещё понадобится. Причём это не домыслы. Иногда реально старая почта нужна. Как-то раз я помогал найти письма давно уволившегося сотрудника для заверения у нотариуса, так как начались судебные разбирательства по одному старому делу.
Весь этот объём постоянно тянется от основного хранилища по цепочке бэкапов и занимает место. У меня была идея сделать отдельный почтовый сервер для таких ящиков, переносить их туда и там с ними работать. Навскидку Open Archiver выглядит удобнее для этой задачи. Думаю, что буду пробовать его в этой роли.
Установить Open Archiver нетрудно, так как он упакован в Docker контейнеры, но есть нюансы, которые я не сразу узнал. Рассказываю, как быстро установить.
Клонируем репозиторий:
Правим переменные окружения:
В файле
Ключевыми являются параметры ORIGIN и ENCRYPTION_KEY. По умолчанию ORIGIN=$APP_URL, а надо явно прописать. Если не указать ENCRYPTION_KEY, то после установки не запустится начальная настройка, невозможно будет создать администратора. При этом по умолчанию ENCRYPTION_KEY не задан, просто пустое значение. Если не указать STORAGE_ENCRYPTION_KEY, то хранилище писем не будет шифроваться. По умолчанию ENABLE_DELETION=false. Невозможно будет удалить добавленные ящики. Я не сразу понял, почему они не удаляются, потом разобрался. JWT_SECRET и MEILI_MASTER_KEY можно оставить по умолчанию на тестовой установке. На работу они не влияют.
После того, как заполните .env, запускаем:
Я сначала в консольном режиме запускаю, чтобы смотреть логи. Некоторые проблемы увидел как раз по логу. Потом можно запустить в режиме службы.
В целом, у меня всё получилось. Добавил 3 ящика, один старый от mail ru. Всё заработало. Синхронизация работает значительно быстрее, чем в Mail-Archiver.
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
———
ServerAdmin:📱 Telegram | 🌐 Сайт | 📲 MAX
#mailserver #backup
Сегодня рассмотрю другое бесплатное ПО по этой же теме - Open Archiver. По сравнению с Mail-Archiver он выглядит более функциональным и технологичным. Внешне тоже больше понравился. Но сразу скажу, что проект не очень зрелый, появился недавно. Есть некоторые баги, скупая документация. Я немного повозился, прежде чем развернул его. Но в итоге всё получилось.
▪️Сбор почты по IMAP, в том числе с Google Workspace и Microsoft 365, импорт из PST и Mbox файлов.
▪️Почта хранится в виде .eml файлов с зашифрованным содержимым.
▪️Для хранения может использоваться локальная директория или S3 хранилище.
▪️Развитый поиск по телу письма и вложениям, в том числе с распознаванием PDF, DOCX, XLSX, архивов и др., в том числе картинок. В бэкенде распознавания там Apache Tika, а поисковой движок Meilisearch. Сразу скажу, что поиск работает хорошо и быстро. По крайней мере на моих тестах.
▪️Проверка и сравнение хэшей писем и вложений на оригинальном сервере и архиве.
▪️RBAC модель доступа пользователей, то есть можно создавать роли с разными правами и назначать пользователям. Кто-то может только читать, кто-то и удалять, кто-то добавлять новые ящики и т.д. Можно глобально запретить любое удаление писем или ящиков из Open Archiver.
▪️Все действия с системой можно выполнять через API.
Я недавно раздумывал над задачей, как разгрузить хранилище большого почтового сервера, где куча ящиков уволенных людей. Всё это занимает много места, не особо надо, но удалить нельзя. Вдруг ещё понадобится. Причём это не домыслы. Иногда реально старая почта нужна. Как-то раз я помогал найти письма давно уволившегося сотрудника для заверения у нотариуса, так как начались судебные разбирательства по одному старому делу.
Весь этот объём постоянно тянется от основного хранилища по цепочке бэкапов и занимает место. У меня была идея сделать отдельный почтовый сервер для таких ящиков, переносить их туда и там с ними работать. Навскидку Open Archiver выглядит удобнее для этой задачи. Думаю, что буду пробовать его в этой роли.
Установить Open Archiver нетрудно, так как он упакован в Docker контейнеры, но есть нюансы, которые я не сразу узнал. Рассказываю, как быстро установить.
Клонируем репозиторий:
# git clone https://github.com/LogicLabs-OU/OpenArchiver.git# cd OpenArchiverПравим переменные окружения:
# cp .env.example .envВ файле
.env нужно обязательно указать несколько параметров, для запуска на IP адресе, а не реальном домене:APP_URL=http://192.168.137.38:3000ORIGIN=http://192.168.137.38:3000ENCRYPTION_KEY=952e40feca16JWT_SECRET=9VRzbD56aYpFSTORAGE_ENCRYPTION_KEY=50348f31f0281MEILI_MASTER_KEY=abk3pAhzgk6NENABLE_DELETION=trueКлючевыми являются параметры ORIGIN и ENCRYPTION_KEY. По умолчанию ORIGIN=$APP_URL, а надо явно прописать. Если не указать ENCRYPTION_KEY, то после установки не запустится начальная настройка, невозможно будет создать администратора. При этом по умолчанию ENCRYPTION_KEY не задан, просто пустое значение. Если не указать STORAGE_ENCRYPTION_KEY, то хранилище писем не будет шифроваться. По умолчанию ENABLE_DELETION=false. Невозможно будет удалить добавленные ящики. Я не сразу понял, почему они не удаляются, потом разобрался. JWT_SECRET и MEILI_MASTER_KEY можно оставить по умолчанию на тестовой установке. На работу они не влияют.
После того, как заполните .env, запускаем:
# docker compose upЯ сначала в консольном режиме запускаю, чтобы смотреть логи. Некоторые проблемы увидел как раз по логу. Потом можно запустить в режиме службы.
В целом, у меня всё получилось. Добавил 3 ящика, один старый от mail ru. Всё заработало. Синхронизация работает значительно быстрее, чем в Mail-Archiver.
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
———
ServerAdmin:
#mailserver #backup
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍97👎3
💥 Фениксы и снежинки: как строить инфраструктуру, которая не ломается
🔥 25 декабря в 20:00 мск — бесплатный вебинар в OTUS
Почему одни инфраструктуры падают от малейшего чиха и восстанавливаются только «волшебником Васей», а другие перезапускаются за минуты даже после полного апокалипсиса?
Разберём, как превратить хрупкую «снежинку» в инфраструктуру-феникс: полностью воспроизводимую, декларативную и самовосстанавливающуюся.
📌 Что будет:
— Как распознать «снежинку» и почему она смертельно опасна
— Принципы «феникса»: самовосстановление и предсказуемость
— Ключевые инструменты: Terraform, Ansible, GitOps — смерть ручным настройкам
— Процессы, которые спасают: код-ревью, тесты, автоматизация
🎯 После вебинара вы сможете:
— Мгновенно находить снежинки и уничтожать их
— Создавать окружения одной командой
— Сделать инфраструктуру независимой от людей
— Спать спокойно, даже если сгорит весь дата-центр
👉 Регистрация открыта: https://clck.ru/3Qzm4t
Вебинар приурочен к старту курса «DevOps-инженер: практики и инструменты»: за 5 месяцев — полный боевой стек Docker → Kubernetes → Terraform → Ansible → CI/CD → мониторинг.
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
🔥 25 декабря в 20:00 мск — бесплатный вебинар в OTUS
Почему одни инфраструктуры падают от малейшего чиха и восстанавливаются только «волшебником Васей», а другие перезапускаются за минуты даже после полного апокалипсиса?
Разберём, как превратить хрупкую «снежинку» в инфраструктуру-феникс: полностью воспроизводимую, декларативную и самовосстанавливающуюся.
📌 Что будет:
— Как распознать «снежинку» и почему она смертельно опасна
— Принципы «феникса»: самовосстановление и предсказуемость
— Ключевые инструменты: Terraform, Ansible, GitOps — смерть ручным настройкам
— Процессы, которые спасают: код-ревью, тесты, автоматизация
🎯 После вебинара вы сможете:
— Мгновенно находить снежинки и уничтожать их
— Создавать окружения одной командой
— Сделать инфраструктуру независимой от людей
— Спать спокойно, даже если сгорит весь дата-центр
👉 Регистрация открыта: https://clck.ru/3Qzm4t
Вебинар приурочен к старту курса «DevOps-инженер: практики и инструменты»: за 5 месяцев — полный боевой стек Docker → Kubernetes → Terraform → Ansible → CI/CD → мониторинг.
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
👍10👎4
Расскажу, как можно быстро проанализировать трафик с любого роутера или шлюза, которые поддерживают отправку данных в формате Netflow. Как самый наглядный пример возьмём Mikrotik.
Ранее я уже рассказывал, как его трафик можно смотреть в режиме реального времени в Wireshark. Для этого его туда надо направить через Packet Sniffer и его возможность Streaming. Сегодня расскажу про более универсальный способ через отправку и анализ Netflow.
Допустим, вам надо быстро посмотреть, к каким DNS серверам у вас обращается оборудование в локальной сети. Для этого можно пытаться что-то разглядеть в IP ⇨ Firewall ⇨ Connections или в Torch сетевого интерфейса, но это неудобно.
Возьмём любую машину на базе Linux и поставим туда nfdump. Это консольная утилита для анализа NetFlow. В Debian/Ubuntu она есть в базовых репозитория:
В составе этого пакета также присутствует утилита nfcapd. Она работает в роли netflow collector, собирает и хранит данные о трафике, а nfdump в консоли анализирует. Так что запускаем сначала сборщик:
-z - сжимать данные
-l - директория, где храним дампы
-t - каждые 60 секунд записываем данные в файл
-p - сборщик работает на порту UDP 23456
-D - этот ключ запустит сборщика в режиме службы
Теперь идём в Mikrotik, открываем раздел IP ⇨ Traffic Flow ⇨ Enables. Открываем здесь же раздел Targets и добавляем наш сборщик:
◽️Src. Address: IP адрес МИкротика
◽️Dst. Address: IP адрес сборщика
◽️Port: 23456
Остальные параметры оставляем по умолчанию. Сохраняем. Как только польются данные о трафике, на сборщике в директории
Запускаем анализатор трафика nfdump:
Увидим в консоли информацию по всему собранному трафику. Её может быть много. Тут простой и интуитивный синтаксис для поиска нужных данных. Выводим только DNS запросы:
Можем агрегировать вывод для простоты восприятия. Объединим одинаковые потоки и отобразим только адрес источника и назначения:
Можем сузить поиск и дополнительно показать пакеты с конкретного IP адреса:
Таким образом можно быстро находить какие-то проблемные хосты. Например, которые пытаются что-то отправить по 25-му во вне, хотя у вас локальный почтовый сервер или его вообще нет. Можно быстро найти тех, кто сознательно или нет пытается использовать какой-то внешний DNS сервер и т.д.
Вообще, nfdump и его инструменты - популярная и известная программа. Вокруг неё много различной обвязки для долгосрочного хранения и визуализации данных. Например, можно запустить сборщик для долгосрочного хранения:
Если у вас несколько шлюзов и вы хотите разделить их трафик, то можно сделать это через ключ -n, добавив название источника, его IP адрес и директорию, где будут храниться данные:
В таком режиме он будет собирать данные и автоматически раскладывать их по директориям в формате %Y/%m/%d/%H, то есть year/month/day/hour. Потом можно легко вернуться к нужному интервалу и посмотреть трафик, проанализировать его каким-то софтом. Например, nfsen-ng.
Nfdump наиболее простой и дешёвый по ресурсам инструмент для работы с NetFlow. Подходит и для анализа в режиме реального времени, и для долгосрочного хранения.
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
———
ServerAdmin:📱 Telegram | 🌐 Сайт | 📲 MAX
#netflow #mikrotik #network
Ранее я уже рассказывал, как его трафик можно смотреть в режиме реального времени в Wireshark. Для этого его туда надо направить через Packet Sniffer и его возможность Streaming. Сегодня расскажу про более универсальный способ через отправку и анализ Netflow.
Допустим, вам надо быстро посмотреть, к каким DNS серверам у вас обращается оборудование в локальной сети. Для этого можно пытаться что-то разглядеть в IP ⇨ Firewall ⇨ Connections или в Torch сетевого интерфейса, но это неудобно.
Возьмём любую машину на базе Linux и поставим туда nfdump. Это консольная утилита для анализа NetFlow. В Debian/Ubuntu она есть в базовых репозитория:
# apt install nfdumpВ составе этого пакета также присутствует утилита nfcapd. Она работает в роли netflow collector, собирает и хранит данные о трафике, а nfdump в консоли анализирует. Так что запускаем сначала сборщик:
# nfcapd -z -l /mnt/mikrotik -t 60 -p 23456-z - сжимать данные
-l - директория, где храним дампы
-t - каждые 60 секунд записываем данные в файл
-p - сборщик работает на порту UDP 23456
-D - этот ключ запустит сборщика в режиме службы
Теперь идём в Mikrotik, открываем раздел IP ⇨ Traffic Flow ⇨ Enables. Открываем здесь же раздел Targets и добавляем наш сборщик:
◽️Src. Address: IP адрес МИкротика
◽️Dst. Address: IP адрес сборщика
◽️Port: 23456
Остальные параметры оставляем по умолчанию. Сохраняем. Как только польются данные о трафике, на сборщике в директории
/mnt/mikrotik начнут появляться файлы вида nfcapd.202512250054 nfcapd.202512250056 и т.д. Они нам и нужны.Запускаем анализатор трафика nfdump:
# nfdump -R /mnt/mikrotikУвидим в консоли информацию по всему собранному трафику. Её может быть много. Тут простой и интуитивный синтаксис для поиска нужных данных. Выводим только DNS запросы:
# nfdump -R /mnt/mikrotik 'dst port 53'Можем агрегировать вывод для простоты восприятия. Объединим одинаковые потоки и отобразим только адрес источника и назначения:
# nfdump -R /mnt/mikrotik 'dst port 53' -A srcip,dstipМожем сузить поиск и дополнительно показать пакеты с конкретного IP адреса:
# nfdump -R /mnt/mikrotik 'src ip 192.168.137.10 and dst port 53' -A srcip,dstipТаким образом можно быстро находить какие-то проблемные хосты. Например, которые пытаются что-то отправить по 25-му во вне, хотя у вас локальный почтовый сервер или его вообще нет. Можно быстро найти тех, кто сознательно или нет пытается использовать какой-то внешний DNS сервер и т.д.
Вообще, nfdump и его инструменты - популярная и известная программа. Вокруг неё много различной обвязки для долгосрочного хранения и визуализации данных. Например, можно запустить сборщик для долгосрочного хранения:
# nfcapd -D -S 2 -w /mnt/netflow -p 23456Если у вас несколько шлюзов и вы хотите разделить их трафик, то можно сделать это через ключ -n, добавив название источника, его IP адрес и директорию, где будут храниться данные:
# nfcapd -z -t 60 -D -S 2 -p 23456 -n r01,192.168.137.1,/mnt/r01 -n r02,192.168.161.1,/mnt/r02В таком режиме он будет собирать данные и автоматически раскладывать их по директориям в формате %Y/%m/%d/%H, то есть year/month/day/hour. Потом можно легко вернуться к нужному интервалу и посмотреть трафик, проанализировать его каким-то софтом. Например, nfsen-ng.
Nfdump наиболее простой и дешёвый по ресурсам инструмент для работы с NetFlow. Подходит и для анализа в режиме реального времени, и для долгосрочного хранения.
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
———
ServerAdmin:
#netflow #mikrotik #network
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍129👎1
Накануне нового года, да ещё и в пятницу, уже не хочется о работе думать и рассказывать. Расскажу вам лучше про наушники, которые я недавно купил. Для меня это давно уже неотъемлемая часть рабочего места. Я почти всегда последние лет 7-8 работаю в наушниках с шумоподавлением, с тех пор как первые такие попробовал.
Обновил и затычки, и накладные. В качестве затычек взял Realme Buds Air 7 Pro. На 100% оправдали все ожидания. Не особо дорогие, но звук и шумоподавление намного лучше, чем у моих прошлых Redmi AirDots 3 Pro. И заряд держат дольше сами уши, и кейс чуть помассивнее, аккум побольше. Короче, доволен. Их больше всего рекомендовали в комментариях и, судя по всему, не зря. Если кто выбирает себе обычные затычки, это хороший выбор.
Накладные взял Nothing Headphone (1). Для меня это дорогая покупка, так как я не ценитель дорогой техники, которая носится и изнашивается, как расходник. Считаю, что их лучше почаще менять, так как очень активно всё развивается. У меня все смартфоны покупаются стабильно дешевле этих наушников, в бюджетном ценовом сегменте, как и все предыдущие наушники.
С этими чуда не произошло. Наушники, как наушники. Я не знаю, чем они лучше каких-нибудь других за 5-10 т.р. Уши у меня так же устают через час-два, как и в любых других. Шумоподавление хорошее, звук тоже, заряд держат очень долго. Я как купил их неделю назад, зарядил, так и не разрядились. Показывают 45% сейчас. Хотя каждый день в них сижу по несколько часов.
Мне бы что-то попроще подошло бы точно так же. Хорошо, что не взял ещё дороже Sony, о которых задумывался. Да и в комментариях много писали, что Sony лучше. Разницу бы всё равно не заметил, только деньги зря бы потратил.
Развлеку вас показом своего текущего рабочего места. По идее оно временное, но ничто не бывает таким постоянным, как временное. Сделал рядом второе рабочее место, чтобы с сыном удобнее было вечером играть в игры, но стало тесновато на столе. Мне нравится, когда мы рядом сидим и играем. А так здесь должен быть либо стол с подъёмным механизмом для работы стоя, либо комбинированное рабочее место для полулежачего положения.
А сейчас обычный стол и домашнее кресло, от которого устаёт спина и попа. Надо менять. Я примерялся к дорогим креслам со всякими крутилками и подпорками, но мне не понравилось ничего. Так и не подобрал себе. Если кто-то посоветует удобное рабочее кресло с поддержкой головы, то буду благодарен. Желательно, чтобы его можно было бы купить где-то с примеркой. Такие вещи наугад покупать точно не буду.
#железо
Обновил и затычки, и накладные. В качестве затычек взял Realme Buds Air 7 Pro. На 100% оправдали все ожидания. Не особо дорогие, но звук и шумоподавление намного лучше, чем у моих прошлых Redmi AirDots 3 Pro. И заряд держат дольше сами уши, и кейс чуть помассивнее, аккум побольше. Короче, доволен. Их больше всего рекомендовали в комментариях и, судя по всему, не зря. Если кто выбирает себе обычные затычки, это хороший выбор.
Накладные взял Nothing Headphone (1). Для меня это дорогая покупка, так как я не ценитель дорогой техники, которая носится и изнашивается, как расходник. Считаю, что их лучше почаще менять, так как очень активно всё развивается. У меня все смартфоны покупаются стабильно дешевле этих наушников, в бюджетном ценовом сегменте, как и все предыдущие наушники.
С этими чуда не произошло. Наушники, как наушники. Я не знаю, чем они лучше каких-нибудь других за 5-10 т.р. Уши у меня так же устают через час-два, как и в любых других. Шумоподавление хорошее, звук тоже, заряд держат очень долго. Я как купил их неделю назад, зарядил, так и не разрядились. Показывают 45% сейчас. Хотя каждый день в них сижу по несколько часов.
Мне бы что-то попроще подошло бы точно так же. Хорошо, что не взял ещё дороже Sony, о которых задумывался. Да и в комментариях много писали, что Sony лучше. Разницу бы всё равно не заметил, только деньги зря бы потратил.
Развлеку вас показом своего текущего рабочего места. По идее оно временное, но ничто не бывает таким постоянным, как временное. Сделал рядом второе рабочее место, чтобы с сыном удобнее было вечером играть в игры, но стало тесновато на столе. Мне нравится, когда мы рядом сидим и играем. А так здесь должен быть либо стол с подъёмным механизмом для работы стоя, либо комбинированное рабочее место для полулежачего положения.
А сейчас обычный стол и домашнее кресло, от которого устаёт спина и попа. Надо менять. Я примерялся к дорогим креслам со всякими крутилками и подпорками, но мне не понравилось ничего. Так и не подобрал себе. Если кто-то посоветует удобное рабочее кресло с поддержкой головы, то буду благодарен. Желательно, чтобы его можно было бы купить где-то с примеркой. Такие вещи наугад покупать точно не буду.
#железо
3👍113👎3
Разверните свою облачную среду за несколько минут: виртуальные машины, S3-совместимое хранилище, Managed Kubernetes, базы данных.
▪️Быстрый старт, прозрачный биллинг, российские дата-центры.
▪️Удобные интерфейсы управления: веб-консоль, CLI, API, Terraform.
▪️Собственная разработка: развиваем облако так, как нужно пользователям, а не ждём решений от вендоров.
Развивайте свои IT-продукты. Об инфраструктуре позаботится облако.
Попробуйте MWS Cloud Platform бесплатно с грантом для новых пользователей.
▪️Быстрый старт, прозрачный биллинг, российские дата-центры.
▪️Удобные интерфейсы управления: веб-консоль, CLI, API, Terraform.
▪️Собственная разработка: развиваем облако так, как нужно пользователям, а не ждём решений от вендоров.
Развивайте свои IT-продукты. Об инфраструктуре позаботится облако.
Попробуйте MWS Cloud Platform бесплатно с грантом для новых пользователей.
👍7👎6
К прошлой заметке с музыкой в комментариях читатель поделился ссылкой на альбом Офисный шансон. Впервые его послушал, как и в целом этого исполнителя. У автора явный талант. Надеюсь, это не ИИ сочинял тексты, иначе скоро смысла в музыкантах и юмористах не будет. Это как-то пугает. Не очень представляю, как ИИ сам придумает смысл той же песни Интимбилдинг 😄
Я последнюю неделю постоянно включаю этот альбом. Даже супруга (от этого слова представил у себя на голове шапку из 90-х) оценила, хоть половину слов и не поняла.
Юмор и музыка специфические. Думаю, оценят только те, кому 35+, потому что это пародии на популярные песни конца 90-х, начала 2000-х. Они прям греют душу ностальгией. А в текстах сочетание иронии, лирики и высмеивание современной корпоративной лексики и травоядности офисных сотрудников.
Слушал остальные его альбомы. Кое-что тоже понравилось, особенно Остывший бабл-ти. А в этом альбоме прям все песни как на подбор, не переметываю.
Слушать 👇👇👇👇👇👇👇👇👇👇
#музыка #юмор
Я последнюю неделю постоянно включаю этот альбом. Даже супруга (от этого слова представил у себя на голове шапку из 90-х) оценила, хоть половину слов и не поняла.
Юмор и музыка специфические. Думаю, оценят только те, кому 35+, потому что это пародии на популярные песни конца 90-х, начала 2000-х. Они прям греют душу ностальгией. А в текстах сочетание иронии, лирики и высмеивание современной корпоративной лексики и травоядности офисных сотрудников.
Слушал остальные его альбомы. Кое-что тоже понравилось, особенно Остывший бабл-ти. А в этом альбоме прям все песни как на подбор, не переметываю.
Слушать 👇👇👇👇👇👇👇👇👇👇
#музыка #юмор
Please open Telegram to view this post
VIEW IN TELEGRAM
👍56👎14