vitus_wagner: My photo 2005 (Default)
[personal profile] vitus_wagner

Тут при оченедном обсуждении мессенждеров [personal profile] vikarti_anantra задала вопрос: "А что сложно свой сервер поднять?".

Сложно. Для тех для кого адмнистрирование юникс-систем не является основной работой, поднять сервер и сконфигурировать на нем пяток нужных сервисов - занятие и правда не простое. Другой вопрос, что уже давно можно было бы, если бы существовал хоть какой консенсус на тему того, что на таком сервере должно быть, следать коробку "все в одном", настраивать которую было бы не сложнее, чем типичный Wi-Fi роутер. А с ними вроде народ в массе своей справляется. И чтобы можно было в течение нескольких минут накатить этот образ на виртуалку на любом VPS-хостинге.

Что собственно, нужно от точки присутствия в интернете? Предполагается что это может быть не только личная точка присутствия, но и семейная или небольшой группы единомышлинников, вроде мастерской группы LRPG.

  1. Сервер электронной почты на пару десятков аккаунтов. При этом чтобы почту с него принимали во всяких gmail-ах (а это, увы, moving target), и чтобы была какая-никакая защита от спама. graylisting+spamassassin вполне хватает по моему опыту.
  2. Веб-интерфейс к этой почте. А то вдруг придется доступаться из какого-нибдуь интернет кафе, где ничего кроме браузера не предусмотрено.
  3. Сервер федерированного мессенжера (matrix или jabber).
  4. К нему тоже web-интерфейс (element)
  5. turn-сервер, как совершенно необходимая вещь для голосовых и видеозвонокв через matrix/jabber
  6. CalDAV/CardDAV сервер
  7. Возможность выложить файл для последующего скачивания. Я в общем обхожусь для этого webdav. Хотя возможно web-based файл-менеджер не помешал бы. В принципе этого уже достаточно для того чтобы сделать сколь угодно навороченный статический web-сайт, благо локальных генераторов сайтов, запускаемых на ноутбуке/рабочей станции существует море. Поэтому пока вам не нужно на сайте комментирование, ничего более другого и не нужно.
  8. Фотогалерея. Она отдельно, потому что фотграфируют нынче в основном смартфонами и планшетами, следовательно фотографии должны попадать на сайт непосредственно с мобильного устройства, и минимально обрабатываться уже на сервере.
  9. Средства администрирования. Должны позволять завести нового юзера всего предыдущего, заблокировать/удалить старого, сменить пароль. Возможно стоит жестко требовать наличия единого пароля для всего перечисленного, а возможно и нет. Возможно, тот же инструмент должен менеджить authorized_keys для доступа по ssh. Тут, правда, стоит подумать о соотношении системных пользователей и пользователей веб-сервисов (по-моему не должны совпадать). Там же должна быть кнопочка для установки апдейтов.
  10. Автомат для обновления сертификатов Let's Encrypt
  11. DNS-сервер. Дело в том, для значительной части вышеприведенных сервисов нам понадобятся специальные (SRV, TXT) записи в DNS. Да, и электронной почты это тоже касается. Без TXT-записи _dmarc никто почту принимать с вашего домена не будет. Опять же openpgp-ключи так публиковать можно. Но в общем стоит исходить из того, что именно этот сервер будет первичным DNS вашего домена. Тогда все этои нетривилаьные DNS-записи можно будет автоматизировать.

Можно еще поставить туда прокси/VPN, если юрисдикция хостера не совпадает с юрисдикцией домашней машины, но мы пока этот вопрос рассматривать не будем. На худой конец можно ssh -D использовать.

В принципе, прикрутить ко всему этому хозяйству простенькую web-панель в стиле LuCI, чтобы можно было просто галочками по списку включать-выключать все сервисы, не так уж и сложно.

Для решения перечисленных задач нужно

  1. dovecot (в дистрибутиве)
  2. postfix (в дистрибутиве)
  3. ciderwebmail (по-моему в Debian еще не попала версия, которую я год назад патчил на предмет русских имен папок )
  4. matrix-synapse (надо брать из бэкпортов, там он заметно новее)
  5. element-web (в дистрибутиве нет, но есть отдельный репозиторий с пакетами
  6. coturn (в дистрибутиве)
  7. radicale (в дистрибутиве)
  8. Какой-нибудь web-сервер чтобы все вышеперчисленные интерфейсы проксировать. nginx сойдет, но apache лучше (оба в дистрибутиве)
  9. acme-tiny (в дистрибутиве)
  10. bind9 (в дистрибутиве.)

Остальное надо писать, но его довольно немного. В основном скрипты для администрирования. Учитывая что почти у всех сервисов которые нам нужны, свои заморочки насчет хранения паролей. Насчет галерей и CMS я просто не очень в курсе что нынче бывает, и как его задеплоить так, чтобы не бояться взлома при отсутствии квалифицированного администрирования.

Деплоймент этой штуки выглядит так:

  1. Регистрируем домен.
  2. Покупаем VPS-ку
  3. Накатываем на VPS-ку образ системы (лично я всегда rsync-ом обходился, но возможны варианты вроде загрузочного ISO-образа)
  4. Заходим в эту VPS-ку по HTTP. Указываем домен и IP-адрес выданный хостером. Жмем кнопку "обновить сертификаты"
  5. Заходим туда по HTTPS, меняем пароли, загружаем ssh-ключи и проверяем соответветсвие списка включенных сервисов требуемому.
  6. Правим в настройках DNS регистратора адрес первичного DNS, указывая вот на этот сервер, и настраиваем вторичный DNS.
  7. Пинаем хостера чтобы разрешил слать и принимать почту с этой VPS-ки

Вместо п 2 и 3 можно поставить raspberry pi, и на нее накатить аналогичный образ. Правда перспективы запинывания домашнего провайдера, чтобы разрешил слать/получать почту мне кажутся несколько менее радужными. Зато порыться в вашем почтовом ящике без вашего ведома ни одна спецслужба не сможет - они будут вынуждены прийти к вам домой и предъявить ордер на обыск.

X-Post to LJ

Date: 2025-04-10 09:08 am (UTC)
jno: (Default)
From: [personal profile] jno
с почтой - *па, да

чтобы почту с него принимали во всяких gmail-ах


свой домен: пока все эти DKIM/SPF слепишь - 100 раз в блокировку влетишь (это - раз)

многие (большинство? или уже вообще все?) провайдеров почты (мылру, нифигандекс, тот же гмыл) крайне не любят быть релеями и хотят всяких дурацких OAuth вместо классики логопассов (это - два)

(no subject)

From: [personal profile] jno - Date: 2025-04-10 11:02 am (UTC) - Expand

Date: 2025-04-10 09:11 am (UTC)
jno: (Default)
From: [personal profile] jno
для VPS/VDS лучше не образ VM (у них там у всех кишки разные: openvz, novell, proxmox/qemu, ораклятина, форточные)

проще будет docker какой-нибудь - довольно попсово и есть, считай, подо всё.
поковырял вполне себе текстовый compose.yaml на тему какой "диск" куда приткнуть - и все дела.

ну, и собссно дистрибуция сводится к тому композу - дальше только pull & up.

есть и вариант установки самого докера для отморозков:
curl https://get.docker.com | sudo bash
Edited Date: 2025-04-10 09:33 am (UTC)

(no subject)

From: [personal profile] jno - Date: 2025-04-10 11:04 am (UTC) - Expand

(no subject)

From: [personal profile] vikarti_anantra - Date: 2025-04-11 04:50 pm (UTC) - Expand

(no subject)

From: [personal profile] jno - Date: 2025-04-11 07:12 pm (UTC) - Expand

Date: 2025-04-10 09:16 am (UTC)
jno: (Default)
From: [personal profile] jno
комментирование на таком сайте решается через тот же disqus - ну, сторонее, да.
но комменты - это для "прохожих" же.
для своих - форум.

(no subject)

From: [personal profile] jno - Date: 2025-04-10 11:05 am (UTC) - Expand

(no subject)

From: [personal profile] jno - Date: 2025-04-10 11:18 am (UTC) - Expand

(no subject)

From: [personal profile] jno - Date: 2025-04-10 11:22 am (UTC) - Expand

Date: 2025-04-10 09:18 am (UTC)
jno: (Default)
From: [personal profile] jno
у меня - самопальный генератор статики из маркдауна с галереей
убого, кондово, хватает.

Date: 2025-04-10 09:19 am (UTC)
jno: (Default)
From: [personal profile] jno
администрилка называется webmin

никогда не пользовался, но народ хавает любит прям взасос, аж на опенврт ставят

Date: 2025-04-10 10:55 am (UTC)
From: [personal profile] fhunter
Пользовался очень давно. На фоне этого LuCI у openwrt удобнее, имхо.

Но webmin - развесистее.

(no subject)

From: [personal profile] jno - Date: 2025-04-10 11:06 am (UTC) - Expand

(no subject)

From: [personal profile] jno - Date: 2025-04-10 11:13 am (UTC) - Expand

(no subject)

From: [personal profile] jno - Date: 2025-04-10 11:23 am (UTC) - Expand

(no subject)

From: [personal profile] fhunter - Date: 2025-04-10 02:34 pm (UTC) - Expand

(no subject)

From: [personal profile] fhunter - Date: 2025-04-10 02:50 pm (UTC) - Expand

Date: 2025-04-10 09:20 am (UTC)
jno: (Default)
From: [personal profile] jno
приличный автомат для LE называется dehydrated

(no subject)

From: [personal profile] jno - Date: 2025-04-10 11:29 am (UTC) - Expand

Date: 2025-04-10 09:29 am (UTC)
jno: (Default)
From: [personal profile] jno
на пчелином наземном домашнем интернете фильтры выключаются в ЛК - никого пинать не надо (но надо их там найти, да)

Date: 2025-04-11 04:54 pm (UTC)
From: [personal profile] vikarti_anantra
К сожалению проблема в том что есть фильтры у других мейл-серверов. И там может проверятся например реверс-зона (что не типичная для домашних провайдеров по маске - насколько помню пчелайн не дает ее менять).

Последнее время добавился еще изврат что что некоторые серверы не принимают письма с не-российских IP а некоторые - наоборот только с российских (причем для gmail'ов всяких - прописаны исключения), с отправкой письме с этих разных серверов тоже так (у меня не вышло найти способ кроме как использовать _2_ MX'а один из которых определяется как не-российский)

Date: 2025-04-10 10:00 am (UTC)
From: [personal profile] justuser
Какой нибудь wiki для местного использования стоит добавит

Date: 2025-04-10 11:07 am (UTC)
jno: (Default)
From: [personal profile] jno
dokuwiki жеж - всё в текстиках...

(no subject)

From: [personal profile] jno - Date: 2025-04-10 11:10 am (UTC) - Expand

(no subject)

From: [personal profile] jno - Date: 2025-04-10 11:19 am (UTC) - Expand

(no subject)

From: [personal profile] jno - Date: 2025-04-10 11:25 am (UTC) - Expand

(no subject)

From: [personal profile] jno - Date: 2025-04-10 11:35 am (UTC) - Expand

(no subject)

From: [personal profile] jno - Date: 2025-04-10 11:42 am (UTC) - Expand

(no subject)

From: [personal profile] yurikhan - Date: 2025-04-10 03:51 pm (UTC) - Expand

(no subject)

From: [personal profile] yurikhan - Date: 2025-04-11 05:49 am (UTC) - Expand

(no subject)

From: [personal profile] yurikhan - Date: 2025-04-11 10:02 am (UTC) - Expand

(no subject)

From: [personal profile] jno - Date: 2025-04-10 11:16 am (UTC) - Expand

(no subject)

From: [personal profile] jno - Date: 2025-04-10 11:26 am (UTC) - Expand

(no subject)

From: [personal profile] jno - Date: 2025-04-10 11:38 am (UTC) - Expand

(no subject)

From: [personal profile] jno - Date: 2025-04-10 11:55 am (UTC) - Expand

(no subject)

From: [personal profile] vikarti_anantra - Date: 2025-04-10 03:15 pm (UTC) - Expand

(no subject)

From: [personal profile] vikarti_anantra - Date: 2025-04-10 03:22 pm (UTC) - Expand

(no subject)

From: [personal profile] fhunter - Date: 2025-04-10 12:47 pm (UTC) - Expand

(no subject)

From: [personal profile] fau74 - Date: 2025-04-10 01:14 pm (UTC) - Expand

(no subject)

From: [personal profile] vikarti_anantra - Date: 2025-04-10 03:16 pm (UTC) - Expand

(no subject)

From: [personal profile] fau74 - Date: 2025-04-10 07:32 pm (UTC) - Expand

Date: 2025-04-10 03:13 pm (UTC)
From: [personal profile] vikarti_anantra
Теоретически есть вариант с аутсорсом за (относительно) вменяемые деньги.
А еще существует такая штука как https://github.com/mother-of-all-self-hosting/mash-playbook которая облегчает установку достаточно много всего (недостаток - это ж читать надо + ansible/docker) (+ в дополнение к нему именно про Matrix с обвесом - https://github.com/spantaleev/matrix-docker-ansible-deploy ) .

По мне - тут вопрос скорее в удобных и обновляемых гайдах.

(no subject)

From: [personal profile] yurikhan - Date: 2025-04-11 04:09 pm (UTC) - Expand

Date: 2025-04-10 07:01 pm (UTC)
From: [identity profile] v3625.net
Нормальный человек не будет этим всем заниматься и это нормально. Так же, как не каждый будет сам строить себе дом, копать колодец или изготавливать мебель. Кто хочет, будет, но таких немного.

Такая парадигма, когда каждый человек занимает целый домен второго уровня и у него там один e-mail и один jabber-аккаунт на целой отдельной машине, и целый постфикс с довекотом этот один ящик обслуживают, тоже по-своему изрядно извращенная.

Чтобы обозначить корень проблемы, предлагаю обратиться немного к истории, вспомнить, как было до нашествия корпораций вроде гугла. Сервисы электронной почты, хостинга веб-страниц, ftp предоставлял тогда "нормальным людям" либо провайдер, либо университет, либо хорошие люди, которые делали себе и другим хорошим людям. Делали под кроватью, на работе и где представится возможность. Нужда заставляла уметь кооперироваться.

Решения вроде тех, требования к которым вы сейчас описываете, тоже для желающих были в ассортименте: это и denwer, и fhs fileserver, и для почты было, и не одно (названия эти уже из головы вылетели). Они тогда ставились в основном прямо на домашний комп с виндой, потому что VDS были еще не в ходу, но это не суть.

Затем, когда появился gmail, я очень хорошо помню восторги: наконец-то нормальная почта! Уж всяко лучше, чем васян, который залезет в мою почту и настроит фильтры на ругательные слова о группе Тату, а еще они имеют свойство уходить в запои по праздникам и падать серверами! Наконец-то можно просто выложить файлы, а то с фтп надо возиться, надо его где-то поднимать... Раньше надо было скачивать, теперь так все есть...

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

(no subject)

From: [identity profile] v3625.net - Date: 2025-04-11 06:26 am (UTC) - Expand

(no subject)

From: [identity profile] v3625.net - Date: 2025-04-11 09:24 am (UTC) - Expand

(no subject)

From: [identity profile] v3625.net - Date: 2025-04-11 12:46 pm (UTC) - Expand

(no subject)

From: [identity profile] v3625.net - Date: 2025-04-11 05:06 pm (UTC) - Expand

Date: 2025-04-10 09:46 pm (UTC)
self_perfection_lj: (Default)
From: [personal profile] self_perfection_lj

Я про что-то примерно подобное подумывал, но больше в сторону массовости, чтобы было просто не технарю. Скопирую из своей вики какие решения встречал:

Существующие подходы

Существующие ОС для селфхостинга

Date: 2025-04-11 03:44 am (UTC)
From: [personal profile] niksite
Большинство описанных функций для домашнего пользователя решает обычный Synology (или, полагаю, любой другой) NAS.

(no subject)

From: [personal profile] jno - Date: 2025-04-11 03:15 pm (UTC) - Expand

(no subject)

From: [personal profile] vikarti_anantra - Date: 2025-04-11 05:10 pm (UTC) - Expand

Date: 2025-04-19 03:01 pm (UTC)
allter: (Default)
From: [personal profile] allter
Тоже думал о подобном решении задачи "держать всё под своей рукой". Пришёл к выводу, что для того, что бы такую систему воплотить в жизнь, нужно всего-то сделать некий аналог Kubernetes с PA/EC конфигурационной базой данных вместо etcd. Т.е. реализовать механизм описывания в отвязанном от конкретного железа виде, как запускать те или иные сервисы с определёнными настройками.

Зачем нужна для этого PA/EC? У подавляющего количества частников нет ресурсов разместить свой сервер с правильным резервированием (как минимум 3 независимых георазнесённых ДЦ). А это значит, что когда что-то навернётся, то какое-то время (пока человек не разберётся с бэкапами/ особенностями настройки своей системы на новой площадке/обсуждёнными выше сложностями наподобие DKIM) этот частник будет без привычных ему сервисов. На какой-то раз ему просто надоест и он решит быть "как все" (по крайней мере по отношению к сервисам, подразумевающими высокую доступность, таким как email или мессенджеры).

Поэтому было бы здорово иметь немного (от 2) инстансов такой low-admin системы и связать их в единую систему, при необходимости используя то, что я называю полиморфным резервированием (например, когда лампочку из одной люстры можно временно поставить в другой светильник, пока не будет приобретена полноценная замена). Тогда в случае любых проблем можно просто начать пользоваться запасным инстансом (возможно, с определённой деградацией), имея в запасе время на приобретение более производительного/удобного.

В принципе, я уже продумывал реализацию такой системы. Как ядро у неё должна быть база инстансов и пользователей на основе CRDT и некая система оверлейной сети и реплицируемого хранилища. К сожалению, коропорациям не интересна работа в парадигме доступности (более важна консистентность), поэтому не получится воспользоваться чем-то готовым.
Edited Date: 2025-04-19 03:01 pm (UTC)

Date: 2025-04-22 08:12 am (UTC)
jno: (Default)
From: [personal profile] jno
Попалось тут случайно...

  • Mox
    Mox даёт возможность за 10 минут настроить защищённый почтовый сервер для своих доменов

  • mailcow - dockerized mail suit

  • maddy - Composable all-in-one mail server

  • stalwart - all-in-one mail server

Оказывается, народ уже некоторое время как озаботился очеловечиванием ублюдочного шаманства подготовки MTA…

PS. известный пример одних курсов английского языка показал, что решение проблемы спама существует, но лежит отнюдь не в криптографии, списках и прочем технопорне.
Edited Date: 2025-04-22 09:28 am (UTC)

Profile

vitus_wagner: My photo 2005 (Default)
vitus_wagner

June 2025

S M T W T F S
1 23 4 56 7
89 1011 12 13 14
15161718192021
22232425262728
2930     

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jun. 15th, 2025 07:55 am
Powered by Dreamwidth Studios