Jun. 27th, 2018

vitus_wagner: My photo 2005 (Default)
Тут в комментах высказались на тему хранения ряда сенситивных файлов на дропбоксе.
Поигравшись со специализированными вариантами DAV - CardDav и Caldav я понял, что эта идея не совсем бессмыслена.

Автоматическая куска файловой системы по идее позволяет решить те задачи, которые остались после того как я разобрался с контактами и календарями. (у меня есть поистине чудесное описание того, как синхронизировать адресную книгу и календарь claws mail с carddav и caldav с помощью vdirsyncer-а, но поля этого поста слишком малы, чтобы его здесь записать).

Но вот что-то подходящего решения я пока не вижу.

Что требуется:


Имеется

  1. n компьютеров с Debian и m телефонов с Android. Большую часть времени они - с серыми IP-адресами.
  2. k файлов, приложения для работы с которыми есть для всех ОС из предыдущего пункта. Файлы слишком бинарные чтобы имело смысл использовать распределенную VCS.
  3. один сервер, доступность которого достаточна для того чтобы через него синхронизироваться, а на нем apache с mod_proxy и mod_dav, rsyncd и т.д. и т.п.
  4. один юзер который в непредсказуемой последовательности пользуется n+m устройствами из первого пункта, но может соблюдать некоторую дисциплину с тем чтобы не открывать файл на одном устройстве, когда на другом открыт тот же файл и в него внесены несохраненные изменения.


Задача:


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


Правда, надо сказать что ятут недавно ухитрился с фоссилом, который решает перечисленные задачи для файлов, для которых осмысленен контроль версий, посадить та-а-кой конфликт, что разгребаться пришлось при помощи ключиков --force. Но это, увы неизбежное свойство большеносых варваров (как писал Шумил, по всему что Коре было известно Джафар был типичнейшим бледнолицым).

Рассмотренные варианты:


  • lsyncd - все хорошо с серверной частью. Не требует на сервере ничего, кроме rsync, который там и так есть. Но, насколько я понял, не умеет следить за изменениями на сервере и тащить их обратно. Версии для Android вроде бы нет, в доступных термуксовских репозитриях - нет.
  • syncthing - есть в дистрибутиве, есть на f-droid е есть в termux-овских репозиториях.
    Но какая-то она немножко слишком децентрализованная. За эту децентрализацию придется платить. Причем скорее всего траффиком. А его (в случае сотовых сетей) жалко.


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

Вчера вот я написал скрипт который по webdav заливает на сервер фотографии и дергает методом POST веб-форму, которая запускает генерацию тамбнейлов и html-ных индексов. Термукс все таки великая вещь.
vitus_wagner: My photo 2005 (Default)
https://www.eff.org/deeplinks/2018/06/announcing-starttls-everywhere-securing-hop-hop-email-delivery

EFF анонсировала инициативу starttls everywhere. В смысле "давайте зашифруем весь SMTP-траффик".

Причем сайт, через который они предлагают проверяться у них кривой. Я ожидал от них отчета в стиле который имели в свое время ssllabs
Длинный список с галочками


  • команда starttls поддерживается OK
  • список шифрсьютов современный OK
  • сертификат соответствует доменному имени тут у вас фигня какая-то
  • сертификат выписан известным нам authority фигня какая-то

А получаю "security of your mailbox is not so great" и все.
Блин, теперь, похоже все-таки придется на постфикс поставить сертификат от lets encrypt. А то начнут тут всякие проверять сертификаты у SMTP, у меня почта ходить перестанет. Хотя с моей точки зрения мой CA безопаснее lets'encrypt и starttls я там держу в основном ради своего почтового пароля. Интересно, а можно в postfix прикрутить разные сертификаты на 25 и 465 порты? Ну или хотя бы на 25 и 587?

P.S. А ssllabs говорит, что у меня категорически не хватает CAA записей в DNS.
vitus_wagner: My photo 2005 (Default)
Несколько лет назад я уполз с mutt-а на графический почтовый клиент claws-mail.

Оно такое все из себя gui-шное, умеет поддерживать работу сразу с несколькими аккаунтами, имеет плагины для кучи полезных вещей, включая скажем, vcalendar или managesieve

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

Поэтому я поставил на имеющемся у меня сервере radicale, а на всех рабочих машинках настроил vdirsyncer, чтобы иметь доступ к тому что телефон синхронизирует с помощью DAVDroid.
Везде в описаниях vdirsyncer предлагается для локальных хранилищ использвоать type="filesystem".
Claws же почему-то предполагает что все контакты или все события календаря лежат в одном файле.
Но для этого у vdirsyncer-а есть type="singlefile"

С адресной книгой на самом деле все очень просто. Claws-mail позволяет добавить в качестве дополнительной (read-only) адресной книги файл с vcard-ами. Это core функциональность

Соответственно, берем carddav сервер, и синхронизируемся с ним с локальным хранилищем типа singlefile. Поскольку оно все равно readonly, то никаких проблем нет.

Если очень хочется иметь интерфейс для редактирования контактов, ставим khard, и прописываем его базу контактов (по одному файлу на vcard) в конфиг vdirsyncer-а как еще одно локальное хранилище с типом filesystem и синхронизируемся не только с сервером, но и с ним.

Впрочем, надо выкроить пару часов и дописать свой скриптик который редактирует контакты с type="singlefile". Поскольку khard не умеет работать с фотографиями и с текстами с encoding=quoted-printable.

C календарем интереснее. Во-первых, стандарты тем хороши, что их много, и можно выбирать. Поэтому vcalendar плагин к claws поддерживает стандарт webcal, но не поддерживает caldav.

Казалось бы все плохо, но, если указать url со схемой file, указывающую на синхронизированный vdirsyncer-ом календарь с типом singlefile, claws его прекрасно читает. Правда, не пишет.
Что уже гораздо хуже, чем с контактами, потому что основной способ создания событий в рабочем календаре - это импорт аттачмента типа vcalendar из письма. И то, что не получается распространить по машинам созданное таким образом событие - неудобно.

Правда, claws позволяет экспортировать календарь в ics файл, но события из него надо еще как-то смерджить с синхронизируемым календарем. Оно ж не проверит что оно эти события уже экспортировало.

Возможно, дешевле разбирать экспортируемый файл на отдельные события по UID-ам и потом синхронизировать как type="filesystem".

Profile

vitus_wagner: My photo 2005 (Default)
vitus_wagner

May 2025

S M T W T F S
    1 2 3
4 56 7 8 9 10
11 12 131415 1617
1819202122 2324
25262728293031

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated May. 25th, 2025 04:26 pm
Powered by Dreamwidth Studios