Точка присутствия в Интернете
Apr. 10th, 2025 11:11 am![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Тут при оченедном обсуждении мессенждеров vikarti_anantra задала вопрос: "А что сложно свой сервер поднять?".
Сложно. Для тех для кого адмнистрирование юникс-систем не является основной работой, поднять сервер и сконфигурировать на нем пяток нужных сервисов - занятие и правда не простое. Другой вопрос, что уже давно можно было бы, если бы существовал хоть какой консенсус на тему того, что на таком сервере должно быть, следать коробку "все в одном", настраивать которую было бы не сложнее, чем типичный Wi-Fi роутер. А с ними вроде народ в массе своей справляется. И чтобы можно было в течение нескольких минут накатить этот образ на виртуалку на любом VPS-хостинге.
Что собственно, нужно от точки присутствия в интернете? Предполагается что это может быть не только личная точка присутствия, но и семейная или небольшой группы единомышлинников, вроде мастерской группы LRPG.
- Сервер электронной почты на пару десятков аккаунтов. При этом чтобы почту с него принимали во всяких gmail-ах (а это, увы, moving target), и чтобы была какая-никакая защита от спама. graylisting+spamassassin вполне хватает по моему опыту.
- Веб-интерфейс к этой почте. А то вдруг придется доступаться из какого-нибдуь интернет кафе, где ничего кроме браузера не предусмотрено.
- Сервер федерированного мессенжера (matrix или jabber).
- К нему тоже web-интерфейс (element)
- turn-сервер, как совершенно необходимая вещь для голосовых и видеозвонокв через matrix/jabber
- CalDAV/CardDAV сервер
- Возможность выложить файл для последующего скачивания. Я в общем обхожусь для этого webdav. Хотя возможно web-based файл-менеджер не помешал бы. В принципе этого уже достаточно для того чтобы сделать сколь угодно навороченный статический web-сайт, благо локальных генераторов сайтов, запускаемых на ноутбуке/рабочей станции существует море. Поэтому пока вам не нужно на сайте комментирование, ничего более другого и не нужно.
- Фотогалерея. Она отдельно, потому что фотграфируют нынче в основном смартфонами и планшетами, следовательно фотографии должны попадать на сайт непосредственно с мобильного устройства, и минимально обрабатываться уже на сервере.
- Средства администрирования. Должны позволять завести нового юзера всего предыдущего, заблокировать/удалить старого, сменить пароль. Возможно стоит жестко требовать наличия единого пароля для всего перечисленного, а возможно и нет. Возможно, тот же инструмент должен менеджить authorized_keys для доступа по ssh. Тут, правда, стоит подумать о соотношении системных пользователей и пользователей веб-сервисов (по-моему не должны совпадать). Там же должна быть кнопочка для установки апдейтов.
- Автомат для обновления сертификатов Let's Encrypt
- DNS-сервер. Дело в том, для значительной части вышеприведенных сервисов нам понадобятся специальные (SRV, TXT) записи в DNS. Да, и электронной почты это тоже касается. Без TXT-записи _dmarc никто почту принимать с вашего домена не будет. Опять же openpgp-ключи так публиковать можно. Но в общем стоит исходить из того, что именно этот сервер будет первичным DNS вашего домена. Тогда все этои нетривилаьные DNS-записи можно будет автоматизировать.
Можно еще поставить туда прокси/VPN, если юрисдикция хостера не совпадает с юрисдикцией домашней машины, но мы пока этот вопрос рассматривать не будем. На худой конец можно ssh -D использовать.
В принципе, прикрутить ко всему этому хозяйству простенькую web-панель в стиле LuCI, чтобы можно было просто галочками по списку включать-выключать все сервисы, не так уж и сложно.
Для решения перечисленных задач нужно
- dovecot (в дистрибутиве)
- postfix (в дистрибутиве)
- ciderwebmail (по-моему в Debian еще не попала версия, которую я год назад патчил на предмет русских имен папок )
- matrix-synapse (надо брать из бэкпортов, там он заметно новее)
- element-web (в дистрибутиве нет, но есть отдельный репозиторий с пакетами
- coturn (в дистрибутиве)
- radicale (в дистрибутиве)
- Какой-нибудь web-сервер чтобы все вышеперчисленные интерфейсы проксировать. nginx сойдет, но apache лучше (оба в дистрибутиве)
- acme-tiny (в дистрибутиве)
- bind9 (в дистрибутиве.)
Остальное надо писать, но его довольно немного. В основном скрипты для администрирования. Учитывая что почти у всех сервисов которые нам нужны, свои заморочки насчет хранения паролей. Насчет галерей и CMS я просто не очень в курсе что нынче бывает, и как его задеплоить так, чтобы не бояться взлома при отсутствии квалифицированного администрирования.
Деплоймент этой штуки выглядит так:
- Регистрируем домен.
- Покупаем VPS-ку
- Накатываем на VPS-ку образ системы (лично я всегда rsync-ом обходился, но возможны варианты вроде загрузочного ISO-образа)
- Заходим в эту VPS-ку по HTTP. Указываем домен и IP-адрес выданный хостером. Жмем кнопку "обновить сертификаты"
- Заходим туда по HTTPS, меняем пароли, загружаем ssh-ключи и проверяем соответветсвие списка включенных сервисов требуемому.
- Правим в настройках DNS регистратора адрес первичного DNS, указывая вот на этот сервер, и настраиваем вторичный DNS.
- Пинаем хостера чтобы разрешил слать и принимать почту с этой VPS-ки
Вместо п 2 и 3 можно поставить raspberry pi, и на нее накатить аналогичный образ. Правда перспективы запинывания домашнего провайдера, чтобы разрешил слать/получать почту мне кажутся несколько менее радужными. Зато порыться в вашем почтовом ящике без вашего ведома ни одна спецслужба не сможет - они будут вынуждены прийти к вам домой и предъявить ордер на обыск.
X-Post to LJ
no subject
Date: 2025-04-10 09:08 am (UTC)свой домен: пока все эти DKIM/SPF слепишь - 100 раз в блокировку влетишь (это - раз)
многие (большинство? или уже вообще все?) провайдеров почты (мылру, нифигандекс, тот же гмыл) крайне не любят быть релеями и хотят всяких дурацких OAuth вместо классики логопассов (это - два)
no subject
Date: 2025-04-10 10:57 am (UTC)Вот ровно потому что сейчас там развели сложностей с DKIM/SPF, настройка этого хозяйства должна приходить готовой (или делаться автоматически). Чтобы люди, для кого это не является основной работой, голову над этим не ломало.
И именно потому что большинство провайдеров почты хотят дурацких Oauth, легко настраиваемый сервер на своем домене может оказаться востребованным - он-то будет пускать нормальных клиентов с удобным пользовательским интерфейсом без лишних вопросов.
(no subject)
From:no subject
Date: 2025-04-10 09:11 am (UTC)проще будет docker какой-нибудь - довольно попсово и есть, считай, подо всё.
поковырял вполне себе текстовый compose.yaml на тему какой "диск" куда приткнуть - и все дела.
ну, и собссно дистрибуция сводится к тому композу - дальше только pull & up.
есть и вариант установки самого докера для отморозков:
no subject
Date: 2025-04-10 10:58 am (UTC)На самом деле выкладвыать пачку разных вариантов не так уж и сложно. Кому надо - сразу qcow2, кому- просто tar.gz полной файловой системы, кому iso.
(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2025-04-10 09:16 am (UTC)но комменты - это для "прохожих" же.
для своих - форум.
no subject
Date: 2025-04-10 10:59 am (UTC)С моей точки зрения без разницы - комменты или форум. Важна возможность записи в веб-сайт контента посторонними людьми, не имеющими dav-доступа к DocumentRoot.
(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2025-04-10 09:18 am (UTC)убого, кондово, хватает.
no subject
Date: 2025-04-10 09:19 am (UTC)никогда не пользовался, но народ
хаваетлюбит прям взасос, аж на опенврт ставятno subject
Date: 2025-04-10 10:55 am (UTC)Но webmin - развесистее.
(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2025-04-10 09:20 am (UTC)no subject
Date: 2025-04-10 11:27 am (UTC)Когда я последний раз смотрет на различные acme-клиенты. мне acme-tiny больше понравился.
Правда все равно вокруг него потребовалась своя обвязка, потому что мало получить сертификат, надо его отдеплоить. А до того, принять решение, что вот этот сертификат менять уже пора.
(no subject)
From:no subject
Date: 2025-04-10 09:29 am (UTC)no subject
Date: 2025-04-11 04:54 pm (UTC)Последнее время добавился еще изврат что что некоторые серверы не принимают письма с не-российских IP а некоторые - наоборот только с российских (причем для gmail'ов всяких - прописаны исключения), с отправкой письме с этих разных серверов тоже так (у меня не вышло найти способ кроме как использовать _2_ MX'а один из которых определяется как не-российский)
(no subject)
From:no subject
Date: 2025-04-10 10:00 am (UTC)no subject
Date: 2025-04-10 11:07 am (UTC)(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2025-04-10 11:07 am (UTC)Вот только какой? В принципе на базе таких движков как ikiwiki можно сваять и формум, и блог с комментированием. Правда на git-бэкэнде оно у меня торомозило жутко. TWiki смотрится интереснее, но с 2018 года новых версий не выходило.
(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2025-04-10 03:13 pm (UTC)А еще существует такая штука как https://github.com/mother-of-all-self-hosting/mash-playbook которая облегчает установку достаточно много всего (недостаток - это ж читать надо + ansible/docker) (+ в дополнение к нему именно про Matrix с обвесом - https://github.com/spantaleev/matrix-docker-ansible-deploy ) .
По мне - тут вопрос скорее в удобных и обновляемых гайдах.
no subject
Date: 2025-04-11 08:41 am (UTC)Боюсь что ансибль это не для нашей целевой аудитории. Ансибль требует по крайней мере админской рабочей станции на которой можно запустить питон, который эти плейбуки проигрывать будет. (как вспомню каково это портировать ансибль на дистрибутив где его из коробмки не, так вздрогну. Пришлось этим с полгода назад заниматься)
(no subject)
From:(no subject)
From:no subject
Date: 2025-04-10 07:01 pm (UTC)Такая парадигма, когда каждый человек занимает целый домен второго уровня и у него там один e-mail и один jabber-аккаунт на целой отдельной машине, и целый постфикс с довекотом этот один ящик обслуживают, тоже по-своему изрядно извращенная.
Чтобы обозначить корень проблемы, предлагаю обратиться немного к истории, вспомнить, как было до нашествия корпораций вроде гугла. Сервисы электронной почты, хостинга веб-страниц, ftp предоставлял тогда "нормальным людям" либо провайдер, либо университет, либо хорошие люди, которые делали себе и другим хорошим людям. Делали под кроватью, на работе и где представится возможность. Нужда заставляла уметь кооперироваться.
Решения вроде тех, требования к которым вы сейчас описываете, тоже для желающих были в ассортименте: это и denwer, и fhs fileserver, и для почты было, и не одно (названия эти уже из головы вылетели). Они тогда ставились в основном прямо на домашний комп с виндой, потому что VDS были еще не в ходу, но это не суть.
Затем, когда появился gmail, я очень хорошо помню восторги: наконец-то нормальная почта! Уж всяко лучше, чем васян, который залезет в мою почту и настроит фильтры на ругательные слова о группе Тату, а еще они имеют свойство уходить в запои по праздникам и падать серверами! Наконец-то можно просто выложить файлы, а то с фтп надо возиться, надо его где-то поднимать... Раньше надо было скачивать, теперь так все есть...
То есть, проблема не техническая, проблема в том, что люди не хотят и не любят кооперироваться, прибегают к этому только от большой нужды. Они склонны доверять гуглу больше, чем знакомому живому админу (или даже, возможно, себе). От гугла они опасности не видят и не осознают, а от админа осознают совершенно конкретно, просто потому что он ближе и менее эфемерен. Это их качество успешно и эксплуатируется. Беда в том, что когда такая нужда в кооперации снова появится, это будет уже невозможно технически (а гайки до такой степени закрутят как раз тогда).
no subject
Date: 2025-04-11 05:24 am (UTC)Ну почему обязательно втрогог уровня? У меня вот доменттретьего, wagner.pp.ru и уже скоро 20 лет как он мнея вполне устраивает.
Насчет того что люди не хотят кооперирвоатся, это вы абсолютно правы. Люди доверяют заведомо вражденбным сущностям таким как корпорации и государства куда больше, чем друг другу.
Но не все. Есть люди, которые кооперироваться все же умеют, и именно на них мы оринтируемся.
(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2025-04-10 09:46 pm (UTC)Я про что-то примерно подобное подумывал, но больше в сторону массовости, чтобы было просто не технарю. Скопирую из своей вики какие решения встречал:
Существующие подходы
SelfPrivacy | F-Droid - Free and Open Source Android App Repository - тулза для автоматической конфигурации сервисов на сервере с NixOS
Здесь можно посмотреть про Unraid. Коммерческое решение вроде дистрибутива для домашнего NAS.
Существующие ОС для селфхостинга
no subject
Date: 2025-04-11 03:44 am (UTC)no subject
Date: 2025-04-11 05:20 am (UTC)NAS это network attached storage/ Т.е. нечно для хранениея. Для нас хранение - второстепенно. А главное - это общение. Точка входа для взаимодейсвтия с другими людьми.
(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2025-04-19 03:01 pm (UTC)Зачем нужна для этого PA/EC? У подавляющего количества частников нет ресурсов разместить свой сервер с правильным резервированием (как минимум 3 независимых георазнесённых ДЦ). А это значит, что когда что-то навернётся, то какое-то время (пока человек не разберётся с бэкапами/ особенностями настройки своей системы на новой площадке/обсуждёнными выше сложностями наподобие DKIM) этот частник будет без привычных ему сервисов. На какой-то раз ему просто надоест и он решит быть "как все" (по крайней мере по отношению к сервисам, подразумевающими высокую доступность, таким как email или мессенджеры).
Поэтому было бы здорово иметь немного (от 2) инстансов такой low-admin системы и связать их в единую систему, при необходимости используя то, что я называю полиморфным резервированием (например, когда лампочку из одной люстры можно временно поставить в другой светильник, пока не будет приобретена полноценная замена). Тогда в случае любых проблем можно просто начать пользоваться запасным инстансом (возможно, с определённой деградацией), имея в запасе время на приобретение более производительного/удобного.
В принципе, я уже продумывал реализацию такой системы. Как ядро у неё должна быть база инстансов и пользователей на основе CRDT и некая система оверлейной сети и реплицируемого хранилища. К сожалению, коропорациям не интересна работа в парадигме доступности (более важна консистентность), поэтому не получится воспользоваться чем-то готовым.
no subject
Date: 2025-04-22 08:12 am (UTC)
- Mox
- mailcow - dockerized mail suit
- maddy - Composable all-in-one mail server
- stalwart - all-in-one mail server
Оказывается, народ уже некоторое время как озаботился очеловечиванием ублюдочного шаманства подготовки MTA…PS. известный пример одних курсов английского языка показал, что решение проблемы спама существует, но лежит отнюдь не в криптографии, списках и прочем технопорне.