Решил по максимуму наполнить тему почтового сервера. На очереди сбор и обработка логов в ELK, но для этого надо сначала с этим стеком обновить статью.
А пока более простой материал на тему автоматической загрузки больших вложений в свой Nextcloud для отправки получателям не самого файла, а ссылки на него:
⇨ Автоматическая загрузка почтовых вложений в Nextcloud при отправке через RoundCube и Thunderbird
Подобная связка удобна для пользователя, так как всё автоматизировано. Он в клиенте прикрепляет файл, который автоматом улетает в Nextcloud, а в письмо вставляется ссылка для загрузки.
Отдельный вопрос стоит с аутентификацией в Nextcloud, если нет общей SSO для почты и остальных сервисов. Но даже если и нет, то можно один раз настроить пользователю доступ, чтобы он потом этим пользовался.
Про плагин к RoundCube у меня уже была ранее заметка, а про Thunderbird даже не упоминал. Настройки простые, если уже есть Nextcloud. Стоит ли его поднимать только для почты - не знаю. По месту надо решать, если в принципе потребность - регулярно обмениваться файлами.
У меня на одном из серверов есть ящики по 100-150 гигабайт. Хлопотно обслуживать такой почтовый архив. Было бы проще, если бы подобная функциональность была внедрена на этапе запуска сервера.
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
———
ServerAdmin:📱 Telegram | 🌐 Сайт | 📲 MAX
#mailserver #nextcloud
А пока более простой материал на тему автоматической загрузки больших вложений в свой Nextcloud для отправки получателям не самого файла, а ссылки на него:
⇨ Автоматическая загрузка почтовых вложений в Nextcloud при отправке через RoundCube и Thunderbird
Подобная связка удобна для пользователя, так как всё автоматизировано. Он в клиенте прикрепляет файл, который автоматом улетает в Nextcloud, а в письмо вставляется ссылка для загрузки.
Отдельный вопрос стоит с аутентификацией в Nextcloud, если нет общей SSO для почты и остальных сервисов. Но даже если и нет, то можно один раз настроить пользователю доступ, чтобы он потом этим пользовался.
Про плагин к RoundCube у меня уже была ранее заметка, а про Thunderbird даже не упоминал. Настройки простые, если уже есть Nextcloud. Стоит ли его поднимать только для почты - не знаю. По месту надо решать, если в принципе потребность - регулярно обмениваться файлами.
У меня на одном из серверов есть ящики по 100-150 гигабайт. Хлопотно обслуживать такой почтовый архив. Было бы проще, если бы подобная функциональность была внедрена на этапе запуска сервера.
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
———
ServerAdmin:
#mailserver #nextcloud
Please open Telegram to view this post
VIEW IN TELEGRAM
Server Admin
Автоматическая загрузка почтовых вложений в Nextcloud при отправке...
Настройка плагинов в RoundCube и Thunderbird для автоматической загрузки больших почтовых вложений в Nextcloud.
👍64👎2
Невероятные события, от которых хочется истерически хохотать и плакать одновременно. Совсем недавно купил домой неттоп FIREBAT A8. Писал про него заметку. Хороший аппарат, очень понравился. У меня на нём сын в танки играет. Настройки средние, fps примерно 120-150. Вообще никаких проблем.
Сразу как купил, разобрал его, увидел, что там 1 планка памяти на 16 GB. Подумал, что неплохо бы купить ещё одну такую же. Судя по отзывам, это увеличивает не только непосредственно объём памяти, но и общую производительность системника.
Зашёл в магазин, подобрал подходящую память и положил в закладки. Сразу покупать не стал, думаю, при случае с другими покупками, как наберётся список, закажу. И вот перед новым годом хочу кое-что себе заказать, смотрю память и челюсть падает на стол.
Память против цены 4199 в октябре стоит 23999 сейчас. Понятное дело, я слышал, что подорожала память и диски, но особо не фокусировался на этом. Стараюсь новостной шум пропускать мимо ушей, чтобы не отвлекаться на него. Это мешает нормально жить.
И вот реальность меня настигла. Как думаете, когда всё это вернётся в нормальное русло? По таким ценам покупать память полный бред и разорение.
Хочу, кстати, себе вот эти накладные беспроводные наушники купить на НГ: Nothing Headphone (1). Нужен хороший шумодав для работы. Люблю работать в полной тишине. Бегло посмотрел отзывы, обзоры на разные подобные наушники. Вроде неплохие из среднего ценового сегмента. Остановился на них. Что-то можете посоветовать по этой теме?
И одновременно затычки с шумодавом хочу. Текущие простенькие Redmi AirDots 3 Pro честно отработали 2,5 года и вот одно ухо сломалось. Надо тоже поменять. Хорошие наушники из бюджетных, рекомендую, если они ещё продаются. Можно по идее их же и купить, но хочется как обычно, что-то новенькое попробовать.
Могу еще порекомендовать проводную мышь A4Tech X-710BK и клавиатуру A4Tech KV-300H. Я уже лет 15 их постоянно покупаю. Постоянно не потому, что они часто ломаются, а потому что рабочих мест много и я везде ставлю их.
Клавиатура только одна умерла и то, потому что дети кефиром залили. Я её разобрал, промыл, собрал, но через 2 недели она всё равно перестала работать. У неё внутри, кстати, толстая железная пластина. За счёт этого она тяжёлая и монолитная. И при этом тонкая, как ноутбучная. Мне нравится этот низкопрофильный формат.
#железо
Сразу как купил, разобрал его, увидел, что там 1 планка памяти на 16 GB. Подумал, что неплохо бы купить ещё одну такую же. Судя по отзывам, это увеличивает не только непосредственно объём памяти, но и общую производительность системника.
Зашёл в магазин, подобрал подходящую память и положил в закладки. Сразу покупать не стал, думаю, при случае с другими покупками, как наберётся список, закажу. И вот перед новым годом хочу кое-что себе заказать, смотрю память и челюсть падает на стол.
Память против цены 4199 в октябре стоит 23999 сейчас. Понятное дело, я слышал, что подорожала память и диски, но особо не фокусировался на этом. Стараюсь новостной шум пропускать мимо ушей, чтобы не отвлекаться на него. Это мешает нормально жить.
И вот реальность меня настигла. Как думаете, когда всё это вернётся в нормальное русло? По таким ценам покупать память полный бред и разорение.
Хочу, кстати, себе вот эти накладные беспроводные наушники купить на НГ: Nothing Headphone (1). Нужен хороший шумодав для работы. Люблю работать в полной тишине. Бегло посмотрел отзывы, обзоры на разные подобные наушники. Вроде неплохие из среднего ценового сегмента. Остановился на них. Что-то можете посоветовать по этой теме?
И одновременно затычки с шумодавом хочу. Текущие простенькие Redmi AirDots 3 Pro честно отработали 2,5 года и вот одно ухо сломалось. Надо тоже поменять. Хорошие наушники из бюджетных, рекомендую, если они ещё продаются. Можно по идее их же и купить, но хочется как обычно, что-то новенькое попробовать.
Могу еще порекомендовать проводную мышь A4Tech X-710BK и клавиатуру A4Tech KV-300H. Я уже лет 15 их постоянно покупаю. Постоянно не потому, что они часто ломаются, а потому что рабочих мест много и я везде ставлю их.
Клавиатура только одна умерла и то, потому что дети кефиром залили. Я её разобрал, промыл, собрал, но через 2 недели она всё равно перестала работать. У неё внутри, кстати, толстая железная пластина. За счёт этого она тяжёлая и монолитная. И при этом тонкая, как ноутбучная. Мне нравится этот низкопрофильный формат.
#железо
👍93👎1
Потихоньку обновляю статью про ELK Stack. Так как к репозиториям Elastic нет прямого доступа с IP адресов России, специально поднял именно для этой статьи простенький репозиторий на небольшом VPS в USA. Понятно, что можно этого не делать, так как есть различные зеркала. Но мне, чтобы не проверять каждый раз ссылки и не сверять версии, удобнее всё замкнуть на себя, чтобы статья была самодостаточной, актуальной и всегда воспроизводилась по написанной последовательности команд. У меня нет возможности обновлять её после каждого нового релиза.
Для этого я поднял свой репозиторий для Debian на Aptly. Это максимально простой и неприхотливый по ресурсам инструмент. Я уже рассказывал про его настройку ранее. С тех пор он так и трудится уже несколько лет (с 2022-го года) и не требует к себе никакого внимания. Достаточно только новые пакеты время от времени туда загружать и обновлять веб сервер.
В этот раз нужно было добавить репозиторий для Debian 13 Trixy. Делается это в несколько команд, если ранее всё уже было настроено для предыдущих версий:
Репозиторий со свежими пакетами, которые предварительно скачал, готов. Подключить к своей системе можно так:
Показываю просто для примера. Использовать этот репозиторий для установки продуктов elastic не надо, так как я регулярно его не обновляю, только вместе со статьёй. Есть копия всего репозитория у Яндекса: https://mirror.yandex.ru/mirrors/elastic/. Там все версии всех пакетов, то есть полная копия официального зеркала.
Aptly удобен, если вы хотите полностью контролировать обновления каких-то пакетов у себя в инфраструктуре. Создаёте свой репозиторий и обновляетесь с него. Так вы точно будете уверены в том, что установленная версия будет проверенная и утверждённая вами.
Для добавления новых пакетов написал простой скрипт, который скачивает указанные версии и добавляет во все локальные репозитории.
Достаточно указать желаемую версию в VERS и запустить скрипт.
Инструментов для создания собственных репозиториев много. Я пробовал некоторые из них. Aptly понравился больше всего за его лёгкость и простую логику работы. Он по сути формирует всё, что нужно, и отдаёт веб серверу. Никакой сервис с его стороны не нужен и постоянно не работает.
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
———
ServerAdmin:📱 Telegram | 🌐 Сайт | 📲 MAX
#aptly
Для этого я поднял свой репозиторий для Debian на Aptly. Это максимально простой и неприхотливый по ресурсам инструмент. Я уже рассказывал про его настройку ранее. С тех пор он так и трудится уже несколько лет (с 2022-го года) и не требует к себе никакого внимания. Достаточно только новые пакеты время от времени туда загружать и обновлять веб сервер.
В этот раз нужно было добавить репозиторий для Debian 13 Trixy. Делается это в несколько команд, если ранее всё уже было настроено для предыдущих версий:
# aptly repo create -comment="Elastic repo" -component="main" -distribution="trixie" -architectures="amd64" elastic-trixie# aptly repo add elastic-trixie filebeat-*-amd64.deb elasticsearch-*-amd64.deb kibana-*-amd64.deb logstash-*-amd64.deb filebeat-*-amd64.deb# aptly publish repo elastic-trixieРепозиторий со свежими пакетами, которые предварительно скачал, готов. Подключить к своей системе можно так:
# wget -qO - http://elasticrepo.serveradmin.ru/elastic.asc | gpg --dearmor -o /usr/share/keyrings/elastic.gpg# echo "deb [signed-by=/usr/share/keyrings/elastic.gpg] http://elasticrepo.serveradmin.ru trixie main" | tee /etc/apt/sources.list.d/elasticrepo.list# apt updateПоказываю просто для примера. Использовать этот репозиторий для установки продуктов elastic не надо, так как я регулярно его не обновляю, только вместе со статьёй. Есть копия всего репозитория у Яндекса: https://mirror.yandex.ru/mirrors/elastic/. Там все версии всех пакетов, то есть полная копия официального зеркала.
Aptly удобен, если вы хотите полностью контролировать обновления каких-то пакетов у себя в инфраструктуре. Создаёте свой репозиторий и обновляетесь с него. Так вы точно будете уверены в том, что установленная версия будет проверенная и утверждённая вами.
Для добавления новых пакетов написал простой скрипт, который скачивает указанные версии и добавляет во все локальные репозитории.
#!/bin/bash
VERS="9.0.8"
PACKAGES="elasticsearch kibana logstash filebeat"
DISTROS="bullseye bookworm trixie"
# Download
for pkg in $PACKAGES; do
if [ "$pkg" = "filebeat" ]; then
path="beats/filebeat"
else
path="$pkg"
fi
wget https://artifacts.elastic.co/downloads/${path}/${pkg}-${VERS}-amd64.deb
done
# Add package and publish
for distro in $DISTROS; do
for pkg in $PACKAGES; do
aptly repo add elastic-${distro} ${pkg}-${VERS}-amd64.deb
done
aptly publish update $distro
done
Достаточно указать желаемую версию в VERS и запустить скрипт.
Инструментов для создания собственных репозиториев много. Я пробовал некоторые из них. Aptly понравился больше всего за его лёгкость и простую логику работы. Он по сути формирует всё, что нужно, и отдаёт веб серверу. Никакой сервис с его стороны не нужен и постоянно не работает.
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
———
ServerAdmin:
#aptly
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍78👎3
Сервисов для доступа к консоли сервера через браузер много, ровно как и для совместного доступа. В разное время я писал про них и сейчас уже не обращаю внимания. Нужно редко и только в каких-то специфичных делах, типа обучения или менторства, помощи.
Но про sshx.io напишу. Он сделан очень красиво и удобно. Я прям оценил, понравилось. Принцип работы следующий.
1️⃣ Скачиваете бинарник на любую систему (Windows, Linux, macOS, FreeBSD):
2️⃣ Запускаете:
3️⃣ Открываете ссылку в браузере, попадаете на свой сервер.
Открываете любое количество консолей, как угодно их располагаете на экране. Зажав левую кнопку мыши, можно перемещать рабочую область и смотреть на разные открытые консоли.
Всё это выглядит аккуратно, красиво. Можно разные темы терминала выбирать. Для совместной работы есть чат. По одной и той же ссылке рабочую область сервера могут видеть несколько людей.
Подобную штуку удобно и для отладки открыть, если надо много консолей видеть на отдельном экране. Тут в браузере их удобнее, чем в другом клиенте, расположить каким-то необычным образом. Разработчики предлагают встраивать запуск в CI/CD, если нужно зайти руками и что-то отладить.
Исходный код открыт, но серверная часть публичного сервера, понятное дело, нам не видна. Так что используйте на свой страх и риск. Можно поднять свой сервер. Его исходники тоже открыты.
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
———
ServerAdmin:📱 Telegram | 🌐 Сайт | 📲 MAX
#remote
Но про sshx.io напишу. Он сделан очень красиво и удобно. Я прям оценил, понравилось. Принцип работы следующий.
# wget https://sshx.s3.amazonaws.com/sshx-x86_64-unknown-linux-musl.tar.gz
# tar xzvf sshx-x86_64-unknown-linux-musl.tar.gz
# ./sshx
sshx v0.4.1
➜ Link: https://sshx.io/s/xQNAKizOnL#03oCwWqQre8VWI
➜ Shell: /bin/bash
Открываете любое количество консолей, как угодно их располагаете на экране. Зажав левую кнопку мыши, можно перемещать рабочую область и смотреть на разные открытые консоли.
Всё это выглядит аккуратно, красиво. Можно разные темы терминала выбирать. Для совместной работы есть чат. По одной и той же ссылке рабочую область сервера могут видеть несколько людей.
Подобную штуку удобно и для отладки открыть, если надо много консолей видеть на отдельном экране. Тут в браузере их удобнее, чем в другом клиенте, расположить каким-то необычным образом. Разработчики предлагают встраивать запуск в CI/CD, если нужно зайти руками и что-то отладить.
Исходный код открыт, но серверная часть публичного сервера, понятное дело, нам не видна. Так что используйте на свой страх и риск. Можно поднять свой сервер. Его исходники тоже открыты.
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
———
ServerAdmin:
#remote
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍102👎4
Для тех, кто работает с Docker контейнерами, рассказываю про современный, удобный и простой инструмент, который позволяет выполнять некоторые операции с контейнерами и репозиториями вообще без установки Docker на хост. Плюс, он есть в стандартных репозиториях популярных систем, что упрощает установку и использование в целом.
Речь пойдёт про skopeo. Ставится так:
Для установки работы не нужен root, как и не нужна установка службы самого Docker. То есть это облегчённый консольный клиент для работы с контейнерами и репозиториями.
Смотрим информацию о контейнере и о конфигурации, по аналогии с докеровской командой inspect. Сам образ при этом не скачивается:
Увидели всю основную информацию о контейнере: версии, когда последний релиз был, слои, порты, Entrypoint и т.д. На самом деле удобно даже для нечастой работы с контейнерами. Я обычно в hub иду руками смотреть последний релиз, если надо уточнить для какого-то нового контейнера. Можно skopeo себе на рабочую машину поставить и пользоваться. Правда если контейнер с большой историей, там огромная портянка тэгов тянется.
Можно образ к себе скачать в виде архива:
Из архива можно забрать какие-то файлы образа, если они нужны, что-то изменить. Не требуется запуск контейнера. Можно образ залить обратно в свой локальный репозиторий.
🛡 Подобный трюк с выгрузкой в директорию можно использовать для передачи образов в какой-то закрытый контур без доступа к интернету, да и вообще без лишнего доступа откуда бы то ни было. Можно использовать какую-то сетевую директорию как обменник для образов между внешней средой и закрытой.
Skopeo удобно использовать в CI/CD для некоторых задач. Можно скопировать образ из одного репозитория в другой, например, с публичного в локальный перед запуском других задач:
Можно проверить наличие какой-то тэга перед дальнейшими задачами:
Так же можно подписать образ, выполнить синхронизацию двух репозиториев с набором различных версий контейнеров, пометить образы в репозитории на удаление. Skopeo поддерживает аутентификацию в registry.
Все доступные команды описаны в man:
◽️inspect, list-tags
◽️copy, delete, sync
◽️login, logout
◽️standalone-sign, standalone-verify
◽️generate-sigstore-key, manifest-digest
Там же и некоторые пояснения к формату команд. Этого будет достаточно, чтобы начать пользоваться.
Некоторые полезные ссылки по теме на другие инструменты для Docker:
▪️Sinker для синхронизации образов
▪️Nexus - локальный репозиторий docker образов
▪️Harbor - ещё один локальный registry только для образов
▪️Диагностика работы контейнеров с помощью cdebug
▪️Линтер для Dockerfile - Hadolint
📊Сtop - top для контейнеров
🛡 Проверка образов на уязвимости с помощью Trivy
🛡 Автоматическое закрытие уязвимостей с помощью Copacetic
🛡 Проверка образов с помощью Dockle
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
———
ServerAdmin:📱 Telegram | 🌐 Сайт | 📲 MAX
#docker #devops
Речь пойдёт про skopeo. Ставится так:
# apt install skopeo# dnf install skopeo# brew install skopeoДля установки работы не нужен root, как и не нужна установка службы самого Docker. То есть это облегчённый консольный клиент для работы с контейнерами и репозиториями.
Смотрим информацию о контейнере и о конфигурации, по аналогии с докеровской командой inspect. Сам образ при этом не скачивается:
# skopeo inspect docker://docker.io/twinproduction/gatus# skopeo inspect --config docker://docker.io/twinproduction/gatus# skopeo inspect docker://registry.rocket.chat/rocketchat/rocket.chat# skopeo inspect --config docker://registry.rocket.chat/rocketchat/rocket.chatУвидели всю основную информацию о контейнере: версии, когда последний релиз был, слои, порты, Entrypoint и т.д. На самом деле удобно даже для нечастой работы с контейнерами. Я обычно в hub иду руками смотреть последний релиз, если надо уточнить для какого-то нового контейнера. Можно skopeo себе на рабочую машину поставить и пользоваться. Правда если контейнер с большой историей, там огромная портянка тэгов тянется.
Можно образ к себе скачать в виде архива:
# skopeo copy docker://docker.io/nginx:latest --override-os linux docker-archive:/tmp/nginx/nginx-latest.tarИз архива можно забрать какие-то файлы образа, если они нужны, что-то изменить. Не требуется запуск контейнера. Можно образ залить обратно в свой локальный репозиторий.
# skopeo copy docker-archive:/tmp/nginx/nginx-latest.tar docker://registry.local/nginx:latest🛡 Подобный трюк с выгрузкой в директорию можно использовать для передачи образов в какой-то закрытый контур без доступа к интернету, да и вообще без лишнего доступа откуда бы то ни было. Можно использовать какую-то сетевую директорию как обменник для образов между внешней средой и закрытой.
Skopeo удобно использовать в CI/CD для некоторых задач. Можно скопировать образ из одного репозитория в другой, например, с публичного в локальный перед запуском других задач:
# skopeo copy docker://docker.io/nginx:latest docker://registry.local/nginx:latestМожно проверить наличие какой-то тэга перед дальнейшими задачами:
# skopeo list-tags docker://docker.io/twinproduction/gatusТак же можно подписать образ, выполнить синхронизацию двух репозиториев с набором различных версий контейнеров, пометить образы в репозитории на удаление. Skopeo поддерживает аутентификацию в registry.
Все доступные команды описаны в man:
◽️inspect, list-tags
◽️copy, delete, sync
◽️login, logout
◽️standalone-sign, standalone-verify
◽️generate-sigstore-key, manifest-digest
Там же и некоторые пояснения к формату команд. Этого будет достаточно, чтобы начать пользоваться.
Некоторые полезные ссылки по теме на другие инструменты для Docker:
▪️Sinker для синхронизации образов
▪️Nexus - локальный репозиторий docker образов
▪️Harbor - ещё один локальный registry только для образов
▪️Диагностика работы контейнеров с помощью cdebug
▪️Линтер для Dockerfile - Hadolint
📊Сtop - top для контейнеров
🛡 Проверка образов на уязвимости с помощью Trivy
🛡 Автоматическое закрытие уязвимостей с помощью Copacetic
🛡 Проверка образов с помощью Dockle
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
———
ServerAdmin:
#docker #devops
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍89
⇨ Отказоустойчивый кластер Angie c VRRP и KeepaliveD
Пример настройки отказоустойчивости с помощью Keepalived. Типичный и самый популярный подход для кластеризации сервисов на Linux. Подобным образом можно много чего настроить, так что рекомендую посмотреть для общего понимания самого процесса кластеризации.
⇨ How to Build a Home Server in 2026 (without going insane)
Автор выбирает, из чего собирать сервер в 2026 году. Негодует по поводу цен на память и диски. Он, кстати, из Германии. Привёл пример 2х32ГБ за $630. Это информация для тех, кто жалуется, что у нас продавцы цены задрали. К сожалению, это не их рук дело, иначе это было бы просто обойти. Его рекомендация - б.у.шный офисный комп на барахолке 😁
⇨ Proxmox Datacenter Manager — центр управления виртуальной инфраструктурой
Обзор нового продукта Proxmox - единая панель управления всеми гипервизорами, кластерами и серверами бэкапов. Я ещё не пробовал. Интересно было посмотреть. Выглядит удобно. Особенно миграция понравилась. Получается, кластер теперь, если он не HA, уже и не нужен. Миграция и между одиночными хостами работает нормально.
⇨ Как объединить серверы в кластер Proxmox VE | Пошаговая настройка узлов
Если ещё не видел, как собирать кластер из Proxmox VE, можете посмотреть. Сама по себе настройка простая. А вот дальнейшая эксплуатация и сопутствующие вопросы, например, с сетью, миграциями, было бы интересно посмотреть.
⇨ Распаковка и включение ASUS GX10. Компьютер для ИИ от NVIDIA (DGX Spark)
Распаковочка компьютера от Nvidia. Я и не знал, что подобные существуют. Их можно в кластера объединять. В Москве от 312 т.р. за них цены стартуют.
⇨ Установка XPEnology на TerrMaster F4-425 Plus
Если не знаете, что такое XPEnology, можете посмотреть. Тут очень подробно рассказано и показано, как её установить. Это ломаная версия ОС от Synology. Проект известный, у меня 10+ лет уже NAS на XPEnology крутится.
⇨ Manage your network like a PRO // Netbox Tutorial
Хорошее руководство по настройке Netbox - бесплатный и один из самых популярных продуктов для визуализации и документирования информационных систем и сетей. Поддерживает все современные подходы, имеет множество интеграций с другими системами. Это прям топчик среди систем подобного рода.
⇨ Гайд по созданию Telegram бота на Python + деплой
Если интересна эта тема, пробуйте. Не пугайтесь, если вы не программист и не умеете программировать. Я в своё время, когда захотел сделать бота, довольно быстро изучил базу и запустил бота. И это ещё до распространения ИИ. Сейчас ещё проще это сделать. Мне даже кажется, что админам или девопсам проще это сделать, так как они лучше ориентируются в инфраструктуре, которая нужна для работы. Непосредственно написание кода в контексте бота сейчас не самая сложная часть процесса.
⇨ Бекапируем Почту. Архиваторы: Mail-archiver, Open Archiver, Bichon, Piler.
Большой обзор нескольких программ для бэкапа почтовых ящиков. Mail-archiver я недавно обозревал. Нормальное решение. Про другие даже не слышал. Нужно будет пробовать. Тема актуальная. Автору больше всего понравился Open Archiver. Надо будет его попробовать.
⇨ My New Home Assistant Dashboard To Make Plex Kid-Friendly
Любопытный опыт автора по связыванию Home Assistant и Plex для просмотра ребёнком мультиков. Особенно заинтриговало начало, где он настроил запуск мультиков по разным RFID меткам. Для этого даже считыватель приобрёл. Это что-то типа видиков в прошлом получается. Жаль, не показал, как это работает. Он в итоге отказался от карточек.
#видео
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
Отказоустойчивый кластер Angie c VRRP и KeepaliveD
В этом видео мы запустим отказоустойчивый кластер из двух серверов Angie с помощью KeepaliveD и протокола VRRP.
Текстовый вариант: https://habr.com/ru/articles/976958/
Этот канал посвящён теме поддержки сайтов: от технических аспектов системного администрирования…
Текстовый вариант: https://habr.com/ru/articles/976958/
Этот канал посвящён теме поддержки сайтов: от технических аспектов системного администрирования…
👍57👎1
В комментариях к заметкам на тему доступа к серверу по SSH регулярно возникают споры о безопасности парольной аутентификации, смены стандартного порта, доступа root, о настройке fail2ban и т.д.
Иногда я специально пишу, что оставляю доступ root по паролю. Просто интересно почитать, что будут писать по этому поводу. Всегда находятся те, кто пишут, что это нубство, небезопасно, так делать нельзя, меня надо уволить и т.д. На что я всегда спрашиваю, а в чём конкретно тут проблема. Ответа не получаю, только общие слова, что так не принято, что пароль можно подобрать и т.д.
В общем случае никаких проблем с безопасностью службы SSH не будет, если вы оставите возможность подключаться root и использовать для этого сложный несловарный пароль. Менять стандартный порт 22 или ставить Fail2Ban тоже не обязательно. Достаточно поменять несколько настроек и про какой-либо перебор паролей можно забыть.
◽️MaxAuthTries - максимальное количество попыток аутентификации для одного соединения.
◽️MaxSessions - ограничение на количество активных сеансов на одно соединение. Можно сделать больше, если в реальности вам это нужно.
◽️MaxStartups - до 10-ти одновременных соединений все принимаются, при количестве соединений от 10 до 60 новые соединения отбрасываются с вероятностью 30%, при 60+ активных соединениях новые не открываются.
При таких настройках массовый перебор паролей становится нереален из-за ограничения в количестве попыток.
Теоретически есть опасность не подключиться к своему серверу, если какой-то злоумышленник вычислит эти параметры и будет постоянно держать 60+ активных соединений. Тогда есть вероятность, что вы тоже не подключитесь. Но шанс очень малый и обычно так никто не делает, потому что зайти владельцу на свой сервер в обход SSH всё равно можно.
Я показал эти параметры просто для примера, чтобы те, кто всё ещё думает, что пароли по SSH можно брутить, поняли, что это практически нереально. Даже настройки по умолчанию, более лояльные, не позволят это сделать.
В идеале доступ к серверу надо ограничивать файрволом вне зависимости от настроек. Я почти всегда это делаю. Но если вам по какой-то причине нужно оставить публичный доступ по паролю и при этом максимально защититься, то можно сделать следующим образом средствами SSH, даже без файрвола.
Запускаем одновременно две службы на разных портах. На стандартном 22 для всех и на 22555 для себя с ограничениями по IP. На 22 ставим параметры, как я показал выше. А для 22555 указываем ограничения по своим спискам IP адресов. Показываю, как это примерно выглядит.
Остальные настройки по желанию. Конфигурация приватной службы:
Создаём для приватной службы юнит systemd:
Меняем в конфигурации sshd-root.service один параметр:
Запускаем приватную службу:
Теперь у нас две службы - одна на стандартном порту без ограничений по IP, куда будут безуспешно долбиться боты, вторая с ограничением для нас. На практике вторую службу лучше ограничить файрволом:
Много написал, что на практике не особо нужно. Я бы всё закрывал через Iptables с любыми настройками. Но даже если SSH открыт для всех, для root и по паролю, то в реальности никаких проблем это не доставит, если всё настроить аккуратно и не сливать пароль. Ключ, как и пароль, тоже может утечь. Это не абсолютная защита и не панацея, в отличии от файрвола, если его случайно не выключат (а так бывает).
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
———
ServerAdmin:📱 Telegram | 🌐 Сайт | 📲 MAX
#ssh
Иногда я специально пишу, что оставляю доступ root по паролю. Просто интересно почитать, что будут писать по этому поводу. Всегда находятся те, кто пишут, что это нубство, небезопасно, так делать нельзя, меня надо уволить и т.д. На что я всегда спрашиваю, а в чём конкретно тут проблема. Ответа не получаю, только общие слова, что так не принято, что пароль можно подобрать и т.д.
В общем случае никаких проблем с безопасностью службы SSH не будет, если вы оставите возможность подключаться root и использовать для этого сложный несловарный пароль. Менять стандартный порт 22 или ставить Fail2Ban тоже не обязательно. Достаточно поменять несколько настроек и про какой-либо перебор паролей можно забыть.
MaxAuthTries 3MaxSessions 2MaxStartups 10:30:60◽️MaxAuthTries - максимальное количество попыток аутентификации для одного соединения.
◽️MaxSessions - ограничение на количество активных сеансов на одно соединение. Можно сделать больше, если в реальности вам это нужно.
◽️MaxStartups - до 10-ти одновременных соединений все принимаются, при количестве соединений от 10 до 60 новые соединения отбрасываются с вероятностью 30%, при 60+ активных соединениях новые не открываются.
При таких настройках массовый перебор паролей становится нереален из-за ограничения в количестве попыток.
Теоретически есть опасность не подключиться к своему серверу, если какой-то злоумышленник вычислит эти параметры и будет постоянно держать 60+ активных соединений. Тогда есть вероятность, что вы тоже не подключитесь. Но шанс очень малый и обычно так никто не делает, потому что зайти владельцу на свой сервер в обход SSH всё равно можно.
Я показал эти параметры просто для примера, чтобы те, кто всё ещё думает, что пароли по SSH можно брутить, поняли, что это практически нереально. Даже настройки по умолчанию, более лояльные, не позволят это сделать.
В идеале доступ к серверу надо ограничивать файрволом вне зависимости от настроек. Я почти всегда это делаю. Но если вам по какой-то причине нужно оставить публичный доступ по паролю и при этом максимально защититься, то можно сделать следующим образом средствами SSH, даже без файрвола.
Запускаем одновременно две службы на разных портах. На стандартном 22 для всех и на 22555 для себя с ограничениями по IP. На 22 ставим параметры, как я показал выше. А для 22555 указываем ограничения по своим спискам IP адресов. Показываю, как это примерно выглядит.
# cp /etc/ssh/sshd_config /etc/ssh/sshd_root.conf# cat sshd_configPort 22...MaxAuthTries 3MaxSessions 2MaxStartups 10:30:60...Остальные настройки по желанию. Конфигурация приватной службы:
# cat sshd_root.confPort 22555AllowUsers root@192.168.137.0/24 root@1.2.3.4 root@5.6.7.8...Создаём для приватной службы юнит systemd:
# cd /etc/systemd/system# cp sshd.service sshd-root.serviceМеняем в конфигурации sshd-root.service один параметр:
ExecStart=/usr/sbin/sshd -D -f /etc/ssh/sshd_root.confЗапускаем приватную службу:
# systemctl daemon-reload# systemctl enable --now sshd-rootТеперь у нас две службы - одна на стандартном порту без ограничений по IP, куда будут безуспешно долбиться боты, вторая с ограничением для нас. На практике вторую службу лучше ограничить файрволом:
# iptables -A INPUT -p tcp --dport 22555 -s 192.168.137.0/24,1.2.3.4,5.6.7.8 -j ACCEPT# iptables -A INPUT -p tcp --dport 22555 -j DROPМного написал, что на практике не особо нужно. Я бы всё закрывал через Iptables с любыми настройками. Но даже если SSH открыт для всех, для root и по паролю, то в реальности никаких проблем это не доставит, если всё настроить аккуратно и не сливать пароль. Ключ, как и пароль, тоже может утечь. Это не абсолютная защита и не панацея, в отличии от файрвола, если его случайно не выключат (а так бывает).
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
———
ServerAdmin:
#ssh
Please open Telegram to view this post
VIEW IN TELEGRAM
2👍210👎6
Продолжая утреннюю тему, разберу ещё один спорный момент насчёт использования 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 выглядит инородно.…
👍166👎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…
👍131👎2
⚠️ Хочу предупредить всех, кто использует Telegram ботов для различных задач. Вчера впервые столкнулся с ситуацией, когда к боту получил доступ кто-то посторонний. Причём, я не знаю, как. Да и в целом не знаю, что именно произошло. Просто мой бот стал присылать мне рекламу казино.
В моём случае речь идёт про бота, которого я использую для отправки событий мониторинга из различных систем. Его токен я не должен был где-то засветить сам. Все токены, что я публикую в заметках, изменённые, хоть и выглядят, как настоящие. А последние несколько недель вообще никаких настроек на тему ботов не делал.
Конечно, в идеале для каждой задачи надо создавать отдельного бота. Тогда сразу будет понятно, где он засветился. Но у меня и так полно ботов. Плюс, к ним осмысленные имена трудно придумать, так как они все заняты. В итоге если для каждой задачи создавать отдельного бота, то надо табличку вести с описанием этих ботов.
В целом, для меня всё это некритично. Я бота тут же удалил, создал нового и настроил всё через него. По идее, токен бота мог утечь только через ПО, которое его использовало. Либо через какую-то уязвимость Telegram.
Такая вот история вышла. Я раньше с этим не сталкивался и не задумывался, что бота можно внезапно потерять. Если на него что-то важное заведено, то можно получить проблемы (привет заметкам с управлением сервером через TG 😎). Имейте это ввиду и как минимум для каждой задачи или системы делайте отдельного бота. Так хоть будет понятно, с какой стороны проблемы. И не особо доверяйте им.
#разное
В моём случае речь идёт про бота, которого я использую для отправки событий мониторинга из различных систем. Его токен я не должен был где-то засветить сам. Все токены, что я публикую в заметках, изменённые, хоть и выглядят, как настоящие. А последние несколько недель вообще никаких настроек на тему ботов не делал.
Конечно, в идеале для каждой задачи надо создавать отдельного бота. Тогда сразу будет понятно, где он засветился. Но у меня и так полно ботов. Плюс, к ним осмысленные имена трудно придумать, так как они все заняты. В итоге если для каждой задачи создавать отдельного бота, то надо табличку вести с описанием этих ботов.
В целом, для меня всё это некритично. Я бота тут же удалил, создал нового и настроил всё через него. По идее, токен бота мог утечь только через ПО, которое его использовало. Либо через какую-то уязвимость Telegram.
Такая вот история вышла. Я раньше с этим не сталкивался и не задумывался, что бота можно внезапно потерять. Если на него что-то важное заведено, то можно получить проблемы (привет заметкам с управлением сервером через TG 😎). Имейте это ввиду и как минимум для каждой задачи или системы делайте отдельного бота. Так хоть будет понятно, с какой стороны проблемы. И не особо доверяйте им.
#разное
2👍167👎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👍103👎3
Расскажу, как можно быстро проанализировать трафик с любого роутера или шлюза, которые поддерживают отправку данных в формате 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👍138👎1