Проекты

Apr. 23rd, 2025 04:59 pm
vitus_wagner: My photo 2005 (Default)
[personal profile] vitus_wagner

Вот есть у меня сейчас несколько опенсурсных проектов, которыми может быть стоит заняться, пока не устроился на фулл-тайм работу

  1. переписать gost-engine на новый, появившийся в openssl 3.x интерфейс провайдеров.
  2. Если уж взялся, за провайдеров то покопаться в pkcs11 провайдере - вдруг там можно малой кровью допилить до поддержки гостовских алгоритмов. Правда плату за это надо требовать с Aktiv, потому что играться я буду с ruToken. А они вряд ли так сильно заинтересованы в этом.
  3. Посмотреть что у нас в Postgres с провайдерским интерфейсом openssl и может чего на коммитфест залить на предмет и алгоритмов, и токенов на клиенте. В 18 версию уже не успею, так хоть в 19.
  4. По-моему в собственно утилите openssl явно не хватает ключиков для работы с ключами и, особенно, сертификатами на токенах. Но не уверен что пропихнуть соответствующий патчик будет легко даже с помощью [personal profile] beldmit.
  5. Написать упрощенный CA для маленьких интранетов. Который будет ориентирован на генерацию ключа вместе с сертификатом, потому что и для внутрикорпоративных сайтов, и для openvpn это основной юз-кейс, когда администратор CA и администратор сайта/VPN - одно лицо. А то что CA.pl, что easy-rsa требуют два движения для получения сертифката - сначала создать ключ и заявку, а потом на заявку выписать сертификат. А здесь основное должен быть даже не код, а лежащий максимально близко к коду, чуть ли не в виде встроенного хелпа учебник по правильному обращению с сертифкатами и ключами. (надо [personal profile] irenedragon попытаться привлечь).
  6. Вспомнить про ctypescrypto и переписать ее под 3-е версии и python, и openssl (возможно пригодится для юнит-тестов на провайдеры. А возможно, для юнит-тестов на провайдеры надо портануть ctypescrypto на Platypus )
  7. Написать аналог calcurse но с бэкэндом пригодным для синрхронизации vdirsyncer. Под этот проект я даже когда-то репозиторий завел.
  8. Была у меня еще идея про линуксовый management interface для openvpn Правда из-за отсутствия у меня теперь необходимости ходить в конторскую openvpn оно как-то менее актуально стало.
  9. vws тоже надо бы переписать с нуля под третий питон и девятый qemu. Но может стоит подождать пока 12-й qemu выйдет.
vitus_wagner: My photo 2005 (Default)
[personal profile] vitus_wagner

Сделал коронографию в центре Бакулева. Показаний к стентированию, шунтированию или еще какому оперативному вмешательству не нашли. Выписали, правда, существенно отличный от прежнего список лекарств.

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

Вообще, конечно идеальная схема снабжения деревенского дома интернетом должна выглядеть так:

Точка доступа в режиме бриджа, висящая напротив устья печи (так она с гарантией покроет более-менее все места, где может возникнуть желание устроиться с ноутбуком или планшетом, и более того - и сама точка доступа, и источник бесперебойного питания к ней окажутся внутри отапливаемого помещения (сейчас у меня точка доступа она же LTE модем висит на стене неотапливаемой терраски, спасибо хоть на внутренней) и LTE-модем в уличном исполнении с ethernet-интерфейсом, питанием по POE и внешней антенной децибел на 25, выставленной на шесте метров на пять над крышей.

Беда в том, что такие модемы (а они в продаже есть) стоят довольно дорого. Правда, если модем торчит над крышей. то можно над ним прикрутитть имеющуюся внешнюю антенну. Она по-моему правда всего децибелл на 12. Еще при этом почти во все такие модемы встраивают свой wi-fi модуль, который в данном сетапе, вероятно лишний. Если что и может покрыть, то садовые скамейки на участке. Потому как от дома его экранирует шиферная крыша. Шифер очень хорошо глушит что wi-fi, что сотовый сигнал, неоднократно в этом убеждался. Поэтому сейчас у меня антенна висит на первом этаже, ниже шифера. Хотя подними я ее хотя бы на уровень второго эатажа, прием станет лучше. Но надо не просто на уровень второго этажа, а чтобы шифер между антенной и базовой станцией не попал.

Точку доступа вообще говоря необязательно держать в режиме бриджа. Можно в режиме роутера, будет отдельная сетка между основным роутером и модемом, примерно как бывает, если usb-свисток воткную в usb-порт обычного дешевого роутера. Тут зависит от того, что за прошивка в самом модеме, можно ли ей доверять.

Недостаток этого решения заключается в том что LTE-модемы с POE и эзернетом стоят заметнро дороже тревел-роутеров и даже устройств вроде Tlink TL MR150 или OLAX MC-60 (которому и UPS не нужен, правда POE-инжектором в отличие от 9-вольтового UPS он работать не умеет).

X-Post to LJ

Ubuntu 25.04

Apr. 19th, 2025 10:02 am
vitus_wagner: My photo 2005 (Default)
[personal profile] vitus_wagner

Вышла ubuntu 25.04. Как-то даже странно, что не надо срочно бежать настраивать сборочные среды для нее, проверять какие пакетировочные файлы нуждаются в правке, пинать QA-щиков чтобы организовали тестирование.

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

Решил тут прикрутить к openwrt-шному web-интерфейсу сертификат, которому браузер бы доверял. Выяснилгось что выученный четверть века назад способ генерации сепртифкатов с помощью скрипта CA.pl для этого не годится.

Потому что там хостнейм пишется в CN. А мозилле теперь подавай обязательно dns name в subjectAltName.

Правда, команда openssl req в 3-й версии openssl зато научилоась ключику -addext. Поэтому сгенерировать правильную заявку на сертификат (после подписания которой тем же CA.pl палучается правильный сертификат) можно безо всяких скриптовых обвязок.

 openssl req -newkey -keyout mysite.key -out mysite.req -subj "/CN=mysite.domain/C=RU/L=Moscow" \
    -addext "subkectAltName=DNS:mysite.domain"

Надо еще покопаться. может еще и вокруг openssl ca скрпитовая обвязка тоже лишняя, и можно непосредственно ей пользоватья.

Еще выяснил что в /usr/local/share/ca-certificates на десктопе у меня лежит уже два года как заэкспайрившийся сертификат моего собственного CA. Последнее время я этот CA использовал исключительно для openvpn, потому что все, что торчит во внешний интернет испольузет сертификаты с Let's Encrypt, а локальные https-сайты в своей домашней сети я как-то не очень использую.

Wi-Fi roaming

Apr. 17th, 2025 09:22 am
vitus_wagner: My photo 2005 (Default)
[personal profile] vitus_wagner

Интересную идею подкинули в комментах к предыдущему посту. Организовать таки работу нескольких точек доступа с хэндовером/роамингом.

Если повесить TL MR3020 на середине южной стены дома, то он хорошо покроет не только запечное пространство на первом, но и район изголовья кровати на втором этаже. Розетка на этой стене есть. И есть даже полочка, куда можно положить точку доступа.

Правда, придется на это дело выделить какой-нибудь повербанк - кратковременные перерывы в подаче электричества у нас там случаются. Но повербанки в хозяйстве все равно есть, (как и M3020), И можно таскаемый с собой сапгрейдить на умеющий USB-C и могущий при необхдимости подкортмить ноутбук, а предыдущий пустить на UPS для точки доступа.

Часа на два-три его хватит, а на большее не хватит холодильников. Поэтому если свет отключится более чем на 2-3 часа, все равно придется заводить генератор.

Можно было бы конечно (и с точки зрения конфигурации железа даже лучше) прикуипить точку доступа с POE, благо свободный порт POE-инжектора есть в 9v UPS питающем основной роутер. Но что-то у меня есть сомнения, что доступные по осмысленной цене точки доступа с POE договорятся с этим роутером по поводу 802.11r. Зато такие точки доступа обычно сдизайнены под крепление к стене или потолку, чего нельзя сказать о MR-3020.

Преимущества этого решения по сравнению с натыкиванием везде где нужно ethernet-розеток - через это будут работать не только ноутбуки, но и планшеты, смартфоны и Катин макбук. Недостатки - надо дотащить eltanin (Иринин ноутбук) до Савеловского рынка чтобы там пофиксили wifi. Или не до савеловского, а до какого-нибудь компетентного специалиста по Windows - есть подозрение что там проблема не в железе, а в драйверах. (впрочем где ж такого взять-то? Их и до 2022 года в России было днем с фонарем не сыскать, а теперь и те разъехались) И еще Артур будет ныть, что ему интернет медленный. Это у него чисто психологическое. Если не провод, то медленнее. А что там все равно дальше 15 км радиоканала (LTE), это из комнаты не видно.

X-Post to LJ

Провода

Apr. 16th, 2025 08:56 pm
vitus_wagner: My photo 2005 (Default)
[personal profile] vitus_wagner

Вот думаю, купить 50 метров витой пары и провести по деревенскому дому ethernet. А то там получается что несколько удобных рабочих мест отделены от точки доступа wifi русской печкой. А через два метра кирпича радиоволны проходят плохо. А в роутере все равно 4 порта есть.

В московских квартирах где ethernet по всей квартире был сделан еще давно сейчас и Ирина, и Артур, и я пользуемся преимущественно проводным соединением а не wi-fi. Правда, в Москве есть еще такой фактор, что 2.4ГГц диапазон забит нафиг соседями, а в 5ГГц сидят 2-3 станции, но уж сидят так сидят.

В деревне этой проблемы нет. Но есть печки и шифер на крышах. Так бы по идее можно было бы поставить точку доступа на чердаке, а антенну вывести над коньком крыши, там примерно полтора метра. Но эта антенна не слишком рассчитана на жесткие погодные услоивия. На окошке с внутренней стороны, где она сейчас висит, её гораздо лучше.

X-Post to LJ

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

Повесили там занавески на терраске, поменяли шины на машине на летние (они там хранятся) и собрали водопровод. О занавесках на террасе Ирина мечтала уже по-моему лет пять, года два назад их сшили, но поскольку в прошлом году мы там не жили, то и не повесили. Теперь вот повесили.

Опробовали в боевом режиме перепрошитый ТL MR3020. Работает.

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

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

Починил десктоп

Apr. 15th, 2025 03:48 pm
vitus_wagner: My photo 2005 (Default)
[personal profile] vitus_wagner

В смысле взял в охапку системный блок и свез на Савеловскй рынок, в F-1, где я обычно неленововские ноутбуки чиню. Выяснилось что всего-то надо блок питания заменить. Правда мероприятие это получилось на два часа, уж больно там много внутри проводов накручено от этого блока питания.

Заодно почистили мне там АТX-ную кнопку и продемонстрировали штатный шатдаун машины по ее нажатию.

И еще про TL MR-3020

Apr. 14th, 2025 07:05 pm
vitus_wagner: My photo 2005 (Default)
[personal profile] vitus_wagner

Перепрошить этот роутер по TFTP после вчерашнего неудачного sysupgrade удалось. Правда, почему-то openwrt 24.10 не увидел USB-модема "Мегафон М150-4". Старая версия - видела. Подозреваю что потому, что раньше девайс 05c6:f009 был в базе usb-modeswitch, а теперь нету. А может быть я неправильный ядерный модуль поставил. Но вроде модуль грузится, значит девайс своим считает. Тем не менее ethernet-интерфейс не появляется.

Более другие модемы, например ZTE - видит. Но ZTE у меня залочен на билайн. А надо мегафон. Есть еще старый PPP-шный мегафоновский модем, но он 3g.

Upd разобрался. Для этого потребовалось воткнуть модем в ноутбук, у которого стоит близкая версия ядра (в openwrt 6.6,73 в ноутбуке 6.12.12), Оказывается в 6-х ядрах сильно попилили на мелкие кусочки драйвер cdc_ether. И я сходу не тот ядерный модуль поставил. Оказыается для этого USB ID правильный драйвер rndis, который лежит в пакете kmod-usb-net-rndis. Стоило поставить этот пакет, и все заработало.

Роутеры

Apr. 14th, 2025 10:34 am
vitus_wagner: My photo 2005 (Default)
[personal profile] vitus_wagner

Собрался тут перепрошить все свои роутеры, которые на openwrt на более новую версию. А то прям невозможно что ssh при коннекте ругается на древние алгоритмы ключа хоста. У нового-то 21.10, там dropbear ed25519 поддерживает.

  • Asus RT-AC51U (ранее 19.07) прошился sysupgrade без вопросов и сохранил все настройки.
  • TP-Link Archer C5 v4 ранее прошитый какой-то неофициальной сборкой 19.07 сказал что прошивка не от той модели, но после чеканья галочки Force upgrade, прошился. Правда, настройки потерял, пришлось заново настраивать. Зато, похоже, еще активно не тестировал, заработал 5ГГц диапазон WiFi, который там ранее не работал.
  • TP-Link MR3020 v3 закирпичился. Впрочем и для того, чтобы первый раз его прошить тоже какой-то неофициальной прошивкой, пришлось идти на поклон к [livejournal.com profile] nasse и припаивать проводки к JTag.

Еще у меня есть TP-Link MR150 (он же MR6400) в котором до сих пор не openwrt, а родная, жутко неудобная прошивка. Но он в деревне, и чтобы его там перешивать, нужно иметь альтернативный роутер с 4G модемом под рукой. По крайней мере я убедился что openwrt с его встроенным 4G модемом работать умеет. Правда непонятно как с SMS-ками. А SMS-ки нужны - в личный кабинет Мегафона логиниться.

Вот теперь думаю чо с MR3020 делать. Он у меня живет для применния на даче в Бужаниново и во всяких поездках. При этом встроенного 4G модема там нет, втыкается USB-шный.

Вариант 1. Настроить на работу с USB 4G модемом модемом Archer, благо с должности основного роутера в московской квартрие я его разжаловал, вернув туда Asus AC51U, у которого wi-fi получше. зато эзернет 100Мбит. Все равно у меня все клиенты, которым нужна большая скорость по ethernet воткнуты не прямо в роутер, а в стоящий на столе 8-портовый свитч. Опять же настроенный таким образом Archer можно использовать в качестве резеревного в деревне и перешить наконец там MR150 получив нормальный dnsmasq и перестать трахаться с avahi.

недостатки Archer в качестве таскаемого с собой в поездках роутера: 1. 12-вольтовое питание. От повербанка или USB-порта ноутбука не запитаешь (а MR3020 - можно) 2. Здоровый, зараза.

Вариант 2. Плюнуть на openwrt в поездке и использовать какой-нибудь travel router с аккумулятором. У меня их два, один Huawei и 3G, другой 4G с возможностью подключения внешней антенны, не помню чей. Он лежит в ящике стола в деревне. Недостаток - нету эзернета, у MR3020 хотя бы один есть.

Вариант 3. Купить что-нибудь поновее. Вопрос в том - что, чтобы оно было совместимо с openwrt, питалось от USB имело встроенный 4G модем и хотя бы один ethernet?

Вариант 4. Раскирпичить таки MR3020. Попробую по tftp. Но если не получится...

X-Post to LJ

И еще о бекапах

Apr. 13th, 2025 10:55 am
vitus_wagner: My photo 2005 (Default)
[personal profile] vitus_wagner

Надо придумать более гибкую схему бекапа своей VPS.

До сих пор она у меня бэкапилась так - четыре раза в сутки просто rsync-алась файловая система VPS с неким каталогом на десктопе. А дальше уже на внешние диски бэкапился десктоп, rsnapshot-ом в три уровня как положено. Не каждый день, правда, но достаточно регулярно.

Засада в том, что эта схема не работает, когда десктоп выключен (или неисправен). А за последние годы, с начала пандемии ковида это случается регулярно. Уезжаю в деревню, обесточиваю квартиру и все. Некому четыре раза в сутки скачивать с VPS изменения.

Видимо, нужна схема, позволяющая бэкапить VPS сразу на внешний диск. Ппичем чтобы конфиг при этом на внешнем диске и лежал, т.е. при втыкании этого диска в любой из ноутбуков можно было забэкапить не только ноутбук, но и VPS-ку. Объемы изменений там довольно маленькие, по 4G должно справляться.

Правда там еще с ключами разобраться придется. С какими именно ключами ssh пускают на vps рутом чтобы можно было rsync-ать файловую систему. Сейчас из доступных мест эти ключи есть только на бэкапах десктопа.

X-Post to LJ

Двухчастная система

Apr. 12th, 2025 09:44 am
vitus_wagner: My photo 2005 (Default)
[personal profile] vitus_wagner

Тут Толченов в комментариях к одному из предыдущих постов предложил держать на VPS у провайдера только внешний роутер локальной сети, соединенный с ней с помощью VPN. А архивы электронной почты и прочий ценный конетент держать дома, под письменным столом.

Это решение имеет очевидные преимущества - нет проблемы с домовыми провайдерами, у которых достижимый извне IP по нынешним временам стоит дороже той VPS, да еще и реверсной зоны к нему нет.

Но имеет и очевидные недостатки - появляется лишняя point of failure, даже две - есть две машины от доступности которых критично зависит доступность коммуникаций и VPN между ними. (и физическая сеть поверх которой этот VPN ходит, которая тоже может глючить. Все же домашние провайдеры не обеспечивают такой доступности сервиса, как хостиноговые)

Исходя из этих соображений я бы по крайней мере SMTP-listener на внешнем сайте реализовывал не как проброс портов внутрь VPN, а как полноценный MTA с релеингом. Соответственно, если у нас домовая сеть лежит, то приходящая извне почта складывается в очередь на этом внешнем сайте, и ждет когда сеть поднимется. С другой стороны если письмо изнутри не отправилось сразу, оно тоже сложится там в очередь и ретрай будет делать внешний сервер, независимо от доступности внутренней сети.

Публичный web-контент тоже стоит туда сложить. Он все равно публичный и несанкционированного доступа к нему быть не может (ибо любое чтение публичного контента - доступ санкционированный). Но исходя из концепции "ничего ценного и невоспроизводимого" это должно быть зеркало внутреннего сайта, регулярно (вплоть до раз в час) синхронизируемого через тот же самый VPN. Тогда даже попытка что-то там несанкционированно изменить доживет только до следующего сеанса синхронизации.

А вот синапс матрицы надо держать внутри. Проксируя с внешнего сайта средствами http сервера. И imap внутри. Вот его можно пробрасывать средствами роутинга. Хотя можно и stunnel-ом. А вебмейл можно на внешнем хосте чтобы ходил к внутреннему imap. Ну нету канала из дома во внешний мир, значит к лежащему дома архиву почты нет доступа из внешнего мира. Если мы считаем физический контроль над этим архивом важнее его доступности из любой точки мира, значит придется с этим мириться. Хотя, конечно возможен автоматический фаллбэк на LTE-модем в случае падения домашнего канала. VPN передподключится и сразу коннект восстановися. Правда почему-то сотовые операторы не любят когда их сим-карты используют в качестве аварийного фоллбэка. А для автоматического фоллбэка явно понадобится отдельная карта.

С сервером дома есть еще одна проблема. Есть у меня привычка, когда я уезжаю из дома на месяцы, например в деревню, выключать электричество. А если дома есть сервер, который должен бать доступен всегда, уже не повыключаешь.

У меня сейчас так веб-интерфейс transmission устроен. В смысле transmisson-то крутится на домашнем десктопе, а с сервера на VPS-ке проксируется ее веб-интерфейс. Поэтому если домашний компьютер включен, я могу с работы или из деревни поставить что-нибудь на закачку.Все равно я обычно качаю через торренты что-то редкое, что будет качаться недели или месяцы, так что доехать до дома и забрать файл скорее всего сумею, качать через узкий канал не потребуется.

X-Post to LJ

C днем космонавтики

Apr. 12th, 2025 09:42 am
vitus_wagner: My photo 2005 (Default)
[personal profile] vitus_wagner

Всех для кого это праздник - с днем Космонавтики.

А моей бабушке, Валентине Георгиевне сегодня бы исполнилось 98 лет.

Единая база паролей

Apr. 11th, 2025 07:50 pm
vitus_wagner: My photo 2005 (Default)
[personal profile] vitus_wagner

Тут призадумался о том, как бы избежать хранения одних и тех же паролей одних и тех же юзеров в пяти разных местах с тремя разными способами хэширования. Это не столько к гипотетическому проекту admin-less сервера, сколько к моему собственному серверу.

Сейчас у меня там есть dovecot и postfix. Postfix за аутентификацией ходит к dovecot. Соответственно, протоколы imap, sieve и smtp используют единую базу пользователей. web-мейл, естественно, тоже так как аутентифицируется об imap.

Кроме этого у меня есть несколько областей на веб-сервере, закрытых basic authentication (среди них прокси к radicale, но radicale не использует собственной аутентификации, полагаясь на апачесвкую) и matrix-synapse.

У matrix-synapse есть систеама аутентификационные плагины. А на pypi модуль dovecot который умеет аунтинфицироваться об dovecot'овский sasl. Правда, не обновлялся лет 15. Но в дистрибутиве есть пакет python3-radicale-dovecot-sasl, откуда можно выдрать несколько более свежий код аутентификации через dovecot sasl. Всего 6-летней давности.

Для apache тоже есть mod_authn_dovecot. Тоже не шибко активно развиваемый.

Так что по идее можно пересадить всех на использование dovecot-овского sasl. Я правда, несколько не уверен что это является наилучшим решением. Учитывая, что эти клиенты к довекотовскому sasl какие-то слишком не развивающиеся. В наше время это как-то подозрительно.

Но из других разумных вариантов, которые бы поддерижвались сразу dovecot, postfix, synapse и apache наблюдается по-моему только ldap, а ldap это немножко оверкилл для единственной машины с четырьмя сервисами.

Dovecot, кстати, у меня держит пароли в sqlite. И больше в этой базе не держит ничего.

Upd Подумал, что может быть наиболее правильным решением будет всех (кроме postfix, который с dovecot уже умеет договариваться) аутентифицировать непосредвтсвенно по sqlite-базе с которой работает dovecot, Для apache это точно решается штатными средствами. Если только используемое dovecot-ом шифрование совместимо с apr. А dovecot использует стандартный crypt(3), А для синапса так и так провайдер аутентификации писать.

X-Post to LJ

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

Помнится, еще давно-давно, лет чуть ли не 30 назад хитрый Толченов шифровал бэкапы gpg (или тогда еще pgp была?) собственным отрыкрым ключом. Т.е. запуститься бэкап мог в отсутствии админа, а вот для восстановления нужен был приватный ключ и админ с пассфразой.

В наше время когда бэкапы зачастую делаются на всякие s3 и прочие cloud services криптографиеская защита бэкапа еще более актуальна.

И тут возникает мысль шифровать бэкап открытым ключом ssh. А программа восстановления из бэкапа чтобы понимала протокол ssh-agent.(естественно на самом деле бэкап шифруется случайным симметричным сессиононным ключом, а уже тот с помощью RSA или с помощью общего ключа, выработанного на открытом ключе реципиента и приватном от эфемерной ключевой пары Cм описание EnveloedData )

Т.е. получается полностью прозрачная схема - при бэкапе используется содержимое authorized_keys админа(ов). А при восстановлении, если кто-то из тех чьи ключи были использованы при шифровании, заходит выполнять команду восстановления по ssh с agent forwarding, то ему даже и задуматься не придется о том, что бэкап расшифрован. А вот любому другому - хрен.

Правда, воспользоваться форматом cms не удастся. Ибо у нас тут не сертификаты x509, а ключи ssh, которые идентифицируются в агенте немножко по-другому. Ну так формат нарисовать дело нехитрое.

X-Post to LJ

Upd*: Как отметил [personal profile] tanriol ничего не получится. Нет в протколе ssh-agent команды session key decrypt. У gpg-агента есть, но у него с форвардингом сложности.

Мониторинг

Apr. 11th, 2025 01:39 pm
vitus_wagner: My photo 2005 (Default)
[personal profile] vitus_wagner

В процессе обсуждения точки присутствия в интернете (admin-less сервера), всплыла тема мониторинга.

Как показывает мой собственный опыт, известные средства мониторинга, вроде zabbix или open telemetry, могут быть крайне мощным инструментом в руках опытного админа, но абсолютно бесполезны при отсутствии такового.

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

А для этого человек должен хотя бы некоторое представление иметь о том, что делают подвластные ему сервера. Про проблему разделения ответственности между DBA и админом сервера я слушал разные байки десять лет, работая в фирме, которая помимо всего прочего занималась поддержкой баз данных. Сам, как пользователь сборочно-тестового кластера тоже неоднократно сталкивался с тем, что админы не понимают специфику задач и пытаются оптимизировать то, что отнимает от силы единицы процентов ресурсов, в ущерб тому, что требует 90%.

В наше время (началось это в эпоху Big Data, и продолжилось нейросетями) принято полагаться на алгоритмы обучения без учителя. Мол, если мы напихаем в некую "мясорубку данных" достаточно много данных, дальше она сама сообразит, какие закономерности можно по этим данным вывести.

Как ни странно, по-моему в области мониторинга этот подход может сработать. Если сначала проанализировать систему и более-менее правильно поставить автомату задачи, дальше тот может уже сам отслеживать тренды и ловить статистические флуктуации, не слишком вдаваясь в семантику. Хотя, конечно возможны такие ситуации, что вот система мониторинга выдает алерт, мол, количество отправляемых писем по электронной почте возросло за последнюю неделю в десять раз против обычного, проверьте не спамместкий ли троян сел, а юзер ему "У нас тут конференция на носу, так что вот до такого-то числа повышенная активность это нормально".

Впрочем, подозреваю что достаточно умная система анализаа почтовой статистики поймет, что подготовка конференции это легитимная активность. Видя, что количество входящей почты возросло пропроционально исходящей, и эта входящая не от MAILER-DAEMON.

С мониторингом свободного места на диске примерно то же самое. Достаточно умная система должна отследить как именно расходуется место, и не беспокоить пользователя алертами, если занято 90-95% дисков, но рост в таких пределах, что на ближайшие пару месяцев хватит. И наоборот, начать пугаться, даже если свободна четверть диска, но раз-два в сутки бывают такие задачи, которые временно отжирают почти все свободное место.

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

X-Post to LJ

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

Page generated Apr. 23rd, 2025 02:43 pm
Powered by Dreamwidth Studios