LINUX.ORG.RU

Статьи «Администрирование»

ImapGoose - средство синхронизации email

Месяц назад был представлен ImapGoose - небольшой демон, который синхронизирует локальную папку email с удаленным IMAP-сервером. При этом поддерживается синхронизация в обе стороны. Стандартное название таких программ - Mail Retrieval Agent, MRA.

Преимущества по сравнению с уже существующими решениями

В отличие от OfflineIMAP и подобных программ, ImapGoose не проверяет почту раз в N минут, а поддерживает непрерывное соединение с сервером и реагирует на обновления немедленно. Кроме того, ImapGoose написан на Go с минимумом зависимостей.

В отличие от goimapnotify, ImapGoose использует не IMAP IDLE, а IMAP NOTIFY - это более новое расширение позволяет использовать одно подключение, чтобы следить за несколькими папками (вместо одного подключения на папку в случае с IDLE). Кроме того, goimapnotify не выполняет синхронизацию самостоятельно, а только запускает заданные в конфиге программы (которые надо конфигурировать отдельно) после получения IDLE-уведомлений.

Недостатки

ImapGoose требует поддержки сервером следующих IMAP-расширений:

  • UIDPLUS (rfc4315, 2005)
  • CONDSTORE (rfc4551, 2006)
  • QRESYNC (rfc5162/rfc7162, 2008/2014)
  • NOTIFY (rfc5465, 2009)

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

# imap.yandex.ru:993 (Yandex Mail)
✓ UIDPLUS: SUPPORTED
✗ NOTIFY: NOT SUPPORTED
✗ CONDSTORE: NOT SUPPORTED
✗ QRESYNC: NOT SUPPORTED

# imap.gmail.com:993 (GMail)
✓ UIDPLUS: SUPPORTED
✗ NOTIFY: NOT SUPPORTED
✓ CONDSTORE: SUPPORTED
✗ QRESYNC: NOT SUPPORTED

# imap.mail.me.com:993 (ICloud Mail)
✓ UIDPLUS: SUPPORTED
✗ NOTIFY: NOT SUPPORTED
✓ CONDSTORE: SUPPORTED
✓ QRESYNC: SUPPORTED

Например, Apple использует проприетарное расширение XAPPLEPUSHSERVICE вместо стандартного NOTIFY.

В моем случае сервер со всеми нужными расширениями неожиданно нашелся у используемого мной регистратора доменных имен (одного из самых популярных в России) в рамках услуги «почта для домена».

Сборка

Сборка ImapGoose выполняется командой make build, установка - командой make install. Утилита capcheck для проверки серверов собирается отдельно: make capcheck. Также в комплект включены примеры сервиса systemd и init-файла для OpenRC.

Конфигурация

$ cat ~/.config/imapgoose/config.scfg
account personal {
    server imap.example.com:993
    username user@example.com
    password your_password_here
    local-path ~/mail/
    post-sync-cmd notmuch new
}

Вместо password можно использовать password-cmd для получения пароля из внешней программы. Например, если вы пользуетесь KeePassXC, то можно включить в его настройках интеграцию с Secret Service и получать пароль следующим образом:

$ secret-tool lookup Path /onetime/gmail.com

Программа secret-tool обычно содержится в пакете libsecret (по крайней мере, так обстоят дела в Arch и Alpine Linux).

репозиторий проекта

Перемещено hobbit из opensource

 ,

Lrrr
()

Настраиваем DNS от PowerDNS dnsdist, скрипт автоустановки

Внезапно выяснил, что на ЛОР нет тега dnsdist, решил сразу это исправить, а заодно написать скрипт для автоустановки и ввода в работу данного DNS.

Скрипт ставит ванильный dnsdist из официального PowerDNS-репозитория (где это возможно), настраивает его как локальный резолвер по умолчанию, добавляет 8 DoH-провайдеров + DoH Яндекс, включает строгую проверку TLS-сертификатов, и принимает DNS-запросы только с localhost.


Поддержка официальных пакетов PowerDNS для dnsdist есть для Debian/Ubuntu и Enterprise Linux (RHEL/Alma/Rocky/CentOS Stream). Для openSUSE/Fedora/Arch скрипт ставит системный пакет из дистрибутива (это уже не “ваниль” от PowerDNS, но работает).

DoH endpoints: Cloudflare, Google, Quad9, AdGuard, CleanBrowsing (security filter), OpenDNS (Umbrella/FamilyShield), DNS.SB, Mullvad.

( читать дальше... )

 , dnsdist

unclestephen
()

Резервное копирование файлов из работающей виртуальной машины QEMU/KVM

Всегда хочется сократить время на резервное копирование. Это возможно, если копировать не всю виртуальную машину (ВМ) вместе с операционной системой, а только необходимые пользовательские файлы. Существует много путей это сделать (ssh, spice-vdagent, VirtioFS, ….), я напишу про два не очень распространенных.

( читать дальше... )

 , , ,

smola0609
()

Инкрементальное и дифференциальное резервное копирование виртуальной машины QEMU/KVM

Копии необходимо создавать – это знают многие. Но не всегда требуется копировать всё заново, зачастую выгоднее по времени и по использованию дискового пространства копировать только то, что изменилось. QEMU предоставляет такую возможность.

Статья является «конспектом» документации QEMU. Я потратил некоторое время на изучение этого вопроса и проверки. Выкладываю – может кому-нибудь пригодится.

( читать дальше... )

 , , ,

smola0609
()

Резервное копирование виртуальной машины QEMU/KVM с паузой и записью памяти

В интернете есть статьи, где было описано как сделать бэкап работающей виртуальной машины (ВМ) с использованием гостевого агента QEMU (см. например https://bozza.ru/art-337.html ). Что же делать, если в ВМ нельзя установить этот агент? В таком случае поможет кратковременная пауза виртуальной машины и запись её памяти. Перерыв в доступности ВМ будет только на время записи её памяти на диск и чтения обратно.

( читать дальше... )

 , , ,

smola0609
()

Настраиваем Asterisk на собственном VPS для голосовых/видео вызовов и текстовых сообщений

Ниже — руководство + полный установочный скрипт для Debian 12, собирающий Asterisk 22.5.1 из исходников, включающий TLS + SRTP, 3 абонента (1001–1003), блокировку анонимов, короткие сообщения (SIP MESSAGE) для Linphone, и видеозвонки по H.264.

Скрипт автоматически учитывает NAT: если задать локальную сеть — пропишет external_* и local_net; если не задавать — считает, что сервер не за NAT.

( читать дальше... )

 , ,

unclestephen
()

Как я управляю конфигурацией системы в Alpine Linux

В этой статье я хотел бы рассказать о том, как управляю конфигурацией системных папок (/etc, /usr, etc) на своих машинах.

Для таких целей часто советуют применять инструменты вроде stow, ansible или разнообразных Docker Swarm с Kubernetes (для этих не хочу даже ссылки давать), но я их не использую.

Я создаю свои пакеты (для пакетного менеджера дистрибутива) и публикую их в своих репозиториях. Можно конечно заливать все нужные файлы руками по ssh (раньше я так и делал), но у пакетов есть важное преимущество: с их помощью легко не только добавлять или обновлять файлы, но и удалять их, и в целом контролировать, что есть в системе. Это предотвращает её захламление. В статье описано, как это делается для Alpine Linux (которым я пользуюсь на домашнем ПК) и, кратко, для Debian/Ubuntu.

( читать дальше... )

 , ,

Lrrr
()
: Быстрый HTTPS для сайта с помощью angie (форк nginx) (20 комментариев)

Как закалялся шакал: а где можно download more ram?

Вступление

Данная статья написана с целью концентрации знаний о сжатии данных оперативной памяти.

Я использую gentoo, поэтому имена пакетов будут приводиться в формате этого дистрибутива.

Подразумевается, что читающий имеет желание и возможность (одно из):

  • произвести конфигурацию и/или сборку ядра;
  • в случае отсутствия искомой функциональности в «ванильном» - найти и использовать ядро, в котором уже всё есть.

( читать дальше... )

 , , ,

Bfgeshka
()

DNS-Over-QUIC для блокировки рекламы и не только

DNS-Over-QUIC для блокировки рекламы и не только

Протокол QUIC, в отличие от UDP поддерживает шифрование и работает быстрее чем TCP, который часто используется для шифрованных DNS-запросов. Данная инструкция актуальная, так как Google все-таки начал удаление поддержки блокировщиков рекламы из своего браузера. Кроме того, она пригодится тем, кто хочет скрыть свое пребывание в Интернете от тотальной слежки.

( читать дальше... )

 , , ,

rtxtxtrx
()

Переезжаем на Fish

Переезжаем на Fish

Fish — это современный командный интерпретатор, недавно переписанный на Rust, который не требует особой настройки, поддерживая из коробки автодополнение и подсветку синтаксиса. Является лучшим Unix SHELL по версии Slant.

( читать дальше... )

 , ,

rtxtxtrx
()

Получаем OTP-коды для авторизации через терминал

Получаем OTP-коды для авторизации через терминал

TOTP (Time-Based One-Time Password) или просто OTP — это алгоритм для генерации одноразовых паролей, который не требует сторонних сервисов. Он работает локально на основе общего секретного ключа и текущего времени. Например, GitHub с 2024 года использует двухфакторную авторизацию (ввод пароля + ввод какого-то кода) только через OTP (в России авторизация через SMS недоступна).

( читать дальше... )

 , ,

rtxtxtrx
()

Дедупликация в Btrfs

Дедупликация в Btrfs

Btrfs — это замечательная файловая система, главными фишками которой являются легковесные снапшоты, реализуемые через Copy-On-Write (COW), и сжатие. Она показала высокую надежность и стабильность, и именно поэтому она включена в ядро Linux. Однако, даже наличие COW не позволяет избежать избыточности данных на уровне блоков.

( читать дальше... )

 ,

rtxtxtrx
()

Защищенный терминал подручными средствами

Предлагаю смотреть на вопрос философски. Многие из нас работают на удаленке. Защищая свою рабочую машину для просмотра котиков, мы возможно избавим от проблем себя и свою любимую компанию. А вот откуда может прилететь, сходу сказать сложно. Будем считать против нас Бох! Ну не тот который всё создал, а тот который специализируется на атаках ИБ, ну и раз он Бох, то он конечно умеет читать мысли и бессмертен.

( читать дальше... )

 , , ,

unclestephen
()
: Обход проблемы фрагментации для gre или ipip туннеля для linux-роутера (7 комментариев)

Использование обратных туннелей для доступа к устройствам за NAT

Использование обратных туннелей для доступа к устройствам за NAT

frp — это утилита для создания обратных туннелей. Она позволяет получить доступ к локальному ресурсу за NAT через промежуточный сервер.

Многие знают про существование сервисов типа ngrok и localtunnel, которые позволяют делать нечто подобное. У них есть бесплатные тарифные планы, которые имеют ограничения по ежемесячному трафику и количеству подключений. Поэтому (и не только) в ряде случаев использование self-hosted-решений, таких как frp, оказывается более предпочтительным.

( читать дальше... )

 ,

rtxtxtrx
()

Приложения и утилиты, которые стоит попробовать

Приложения и утилиты, которые стоит попробовать

Многие пользователи Linux с большим стажем даже не подозревают о существовании этих замечательных инструментов, которые способны облегчить им жизнь…

( читать дальше... )

 , ,

rtxtxtrx
()

Используем socks для доступа к ChatGPT и ускорения YouTube

Используем socks для доступа к ChatGPT и ускорения YouTube

Эта статья не содержит описания способов обхода блокировок для доступа к противоправому контенту. Socks-прокси нужны исключительно для того чтобы смотреть YouTube и просить ChatGPT писать за тебя домашние задания!!! У первого какие-то проблемы со скоростью последнее время, говорят, что из-за отключения кеширующих серверов, а второй сам заблокировал жителей из России, Беларуси и Китая…

( читать дальше... )

 ,

rtxtxtrx
()

Настраиваем и используем ZSH вместо Bash, или превращаем терминал в раскраску

Настраиваем и используем ZSH вместо Bash, или превращаем терминал в раскраску

Я не буду расписывать преимущества ZSH над Bash, отмечу лишь то, что ZSH используется по дефолту во многих дистрибутивах Linux, а также с недавних пор и в macOS (тут должна быть шутка про Торвальдса и его макбук). Главной причиной повсеместной замены bash на zsh является встроенный механизм модулей, поверх которого было навалено такое великолепие, как Oh My Zsh.

( читать дальше... )

 , ,

rtxtxtrx
()

Настройка Apache PHP для работы от пользователя по HTTP2

Для работы Apache от пользователя можно использовать конфигурацию apache+mod_php+mpm_prefork+mpm_itk, но эта комбинация не работает по HTTP2. Поэтому настраиваем по-другому.

( читать дальше... )

 , ,

jura12
()