![[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
NAS это network attached storage/ Т.е. нечно для хранениея. Для нас хранение - второстепенно. А главное - это общение. Точка входа для взаимодейсвтия с другими людьми.
no subject
разница с искомым в том, что это всё - в ЛВС смотрит, в основном.
no subject
Ну надо скаатать это у них настолько криваое... Что было дело у нас с ихней бэкапилкой админы не разобрались и когда сдох диск не смогли восстановить из вовремя сделанного бэкапа права на файлы и симлинки. Хотя синология все честно сбэкапила. Но в результате мне пришлось переустанавилвать несколько контейнеров а симлиники фиксить ad hoc скриптами. Причем не сказать чтобы админы были совсем уж неквалифицирвоанными.
В общем я предопоту считать вспе проприетарные прошивки для NAS и подобных хреней заведомоо не являющимися образцами для подражания. Если от чего-то не выложены исходники, значит авторам стыдно эти исходники показывать.
no subject
Из личного так сказать опыта:
- есть каталог в котором десятки тысяч файлов, объем где то меньше 100 Gb, структуру менять нельзя. к нему обращаются по WebDAV штатно настроенный на Synology несколько клиентов(каждый из которых использует от 1 до 20 коннектов)(если что - это синхронизация Joplin'а через WebDAV). железка начинает дико тормозить потому что WebDAV штатно там - на апаче и процессы ненужные грохаются штатно через час а памяти на мой Synology всего 6 Gb. nginx можно но тогда webdav - ручками
- MailPlus - спамфильтр может отбросить письмо за попадание в один или более DNSBL но вот просто добавить баллы спамности - не может. Ах да - МНОГО писем он тоже не любит, ставьте SSD, нет, поставить MailPlus на _внешний_ (пусть даже eSATAшный) SSD - нельзя
- DS Note/NoteStation (их аналог Evernote и прочего) - произвольные и НЕ описанные лимиты. Экспорт - непонятно как
- SSL хотите и даже с Let's Encrypt? прокидывайте 80/443 на роутере на NAS, как - у вас reverse-proxy? А это не поддерживается. Нет, есть костыль в виде https://github.com/acmesh-official/acme.sh/wiki/Synology-NAS-Guide (который кстати надо править после каждого апгрейда RouterOS)
- ну и совсем вишенка на торте - DSM это еще и поддержка и прочее (в том числу хоум-юзерам). Это даже правда, только есть один мелкий технический ньюанс. БЫЛА поддержка. https://www.synology.com/ru-ru/company/news/article/Suspending_service_in_RU_BY
вот именно поэтому - у меня Synology живет сейчас только как хранилка файлов и все (ладно - еще там minio живет - будем считать это тоже хранение файлов)