Cyrus POP3

Механизми за удостоверяване (използва се библиотека Cyrus SASL):

  • анонимен потребител (опция за инсталационен файл allowanonymouslogin): текстово базиран механизъм за удостоверяване с анонимно потребителско име и произволна парола и всеки механизъм за удостоверяване на Cyrus SASL, който позволява анонимно влизане
  • текстовата парола се изпраща чрез IMAP LOGIN или SASL PLAIN (TLS) и се проверява с PAM, Kerberos v4, /etc/passwd и /etc/shadow (sasl_auto_transition) от библиотеката Cyrus SASL (sasl_pwcheck_method)
  • KERBEROS_V4
  • споделена тайна (CRAM-MD5, DIGEST-MD5), трябва да посочите източника на тези тайни (sasldb)

Механизмът за ограничаване на размера на пощенската кутия взема предвид само сумата от размера на имейл съобщенията (в килобайти), но не взема предвид размера на служебната информация. Ограничението може да бъде наложено на всяко поддърво на йерархията на кутията, с изключение на под-поддърветата, които имат свои собствени ограничения. Разширението IMAP има команда за задаване на ограничение (setquota), но няма команди за премахването му. При вмъкване на съобщение (разрешения "i") оставащото място се проверява преди вмъкване, при изпращане на съобщение (разрешения "p") се проверява дали ограничението не е надвишено. При превишаване на лимита, доставката се прекъсва със съобщение за временен проблем. Базата данни с пощенски съобщения може да бъде разделена на няколко секции, разположени в различни файлови системи. Администраторът може да посочи име на дял, когато създава пощенска кутия (дялът е наследен или взет от дяла по подразбиране). Секцията може да се промени при преименуване на пощенската кутия (името не може да се промени). Cyrus IMAP може да експортира Usenet чрез IMAP или IMAP чрез NNTP. Cyrus IMAP предоставя основна услугапотребителски пощенски кутии, използващи POP3 протокол (само един клиент на пощенска кутия наведнъж, включително IMAP клиенти). Съобщения за syslog:

За всяка пощенска кутия се създава отделна директория, в която всяко пощенско съобщение се съхранява в отделен файл с име, състоящо се от UID и точка в края. Сервизните файлове се съхраняват в същата директория: cyrus.header, cyrus.index, cyrus.cache, cyrus.seen. Файлът mailboxes.db съхранява списък на всички пощенски кутии с техните ограничения и ACL. Поддиректорията квота съдържа файл за всяко ограничено поддърво на йерархията: име, текущ размер, ограничение. За да премахнете ограничението, просто изтрийте този файл и направете "квота -f". Поддиректорията на потребителя съдържа за всеки потребител файл (името се състои от името на потребителя, последвано от суфикса ".sub"), съдържащ сортиран списък от пощенски кутии, за които потребителят е абониран. Поддиректорията на журнала може да съхранява журнала на конкретен потребител. Достатъчно е да създадете поддиректория в него с името на този потребител. Поддиректорията proc съхранява по един файл за активен процес: клиентско име на хост, потребителско име, избрано име на пощенска кутия. Поддиректорията msg може да съдържа файлове:

  • изключване - връзката се отхвърля със съобщение
  • motd - първият ред, изпратен на клиента при свързване

Главната програма е хибрид на xinetd и cron. Изпълнява останалите програми в пакета, когато възникне определено събитие (мрежова връзка или момент от време). Инициализира базата данни. При получаване на сигнал SIGTERM, той убива подчинените процеси, след това себе си. Файлът cyrus-master.pid не се изтрива, заключващите файлове не се изтриват. Когато подчинен процес се срине, той го стартира отново за същата връзка, след това отново и отново. Когато се получи сигнал SIGHUP, той се препрочитаконфигурационен файл, подчинените процеси не знаят за него, така че се препоръчва рестартиране. Променливата на средата CYRUS_VERBOSE ви позволява да увеличите нивото на регистриране (по подразбиране е 1). Настроики:

  • -C imapd.conf-config-file-name (/etc/imapd.conf; не засяга работещите процеси!)
  • -M cyrus.conf-config-file-name (/etc/cyrus.conf)
  • -d (отидете на фонов дял и освободете терминала)
  • -D (режим на отстраняване на грешки)
  • -l размер на опашка за слушане (32)
  • -j rps (1; колко пъти в секунда за изчистване на таблицата със заредени процеси)
  • -p pid-име на файл (/var/run/cyrus-master.pid)

  • START - определя кои програми да се стартират в началото на работа преди стартирането на първата услуга; аргументът е: cmd="име-на-програма-с-параметри"
  • УСЛУГИ - определя кои портове и сокети да се слушат и кои програми да се изпълняват при свързване; аргументи на елемента
  • listen="socket-name [host-name-or-IP:] port-number-or-service-name"
  • cmd="име-на-програма с параметри"
  • proto=tcp (tcp4, udp4, tcp6, udp6, tcp, udp)
  • prefork=0 (колко процеса да са предварително заредени, за да се ускори времето за реакция)
  • maxchild=-1 (максимален брой едновременно изпълнявани задачи)
  • maxfds=256 (ограничение за броя на файловите дескриптори за работещи процеси; мастерът ще има ли достатъчно права за това?)
  • СЪБИТИЯ - стартиране на процеси на определени интервали или в определен момент от време; аргументи на елемента:
  • cmd="име-на-програма с параметри"
  • период=0 (интервал в минути)
  • в=ЧЧММ
  • -C име на конфигурационен файл
  • -U брой клиенти за обслужване (250; тогаватрябва да рестартирате процеса)
  • -T секунди (60; изчакайте следващата връзка)
  • -s (разрешаване на SSL)
  • -p защитен фактор (знак за наличието на външен слой на защита; 1 - осигуряване на целостта, 2 и по-високо - криптиране)
  • -C име на конфигурационен файл
  • -U брой клиенти за обслужване (250; процесът трябва да се рестартира по-късно)
  • -T секунди (60; изчакайте следващата връзка)
  • -s (разрешаване на SSL)
  • -k (използване на KPOP)
  • Споделя конфигурационен файл с imapd. Специфични опции:

    lmptd сървър lmptd е LMPT сървър. Комуникира с клиента чрез стандартен вход/изход, т.е. трябва да се стартира с master. Изисква се удостоверяване на администратор. Ключове:

  • -C име на конфигурационен файл
  • -U брой клиенти за обслужване (250; процесът трябва да се рестартира по-късно)
  • -T секунди (60; изчакайте следващата връзка)
  • -a (не изисква LMTP AUTH)
  • Споделя конфигурационен файл с imapd. Специфични опции

  • lmtp_downcase_rcpt (0; lmtpd преобразува ID на получателя в малки букви)
  • lmtp_over_quota_perm_failure (0; връща постоянно съобщение за грешка (5xx) вместо временно съобщение за грешка (4xx) при препълване на пощенската кутия)
  • lmtpsocket (base-dir/socket/lmtp; сокетът за услугата lmtpd, използван от deliverb, трябва да съвпада с посочения в cyrus.conf)
  • максимален размер на съобщенията (0)
  • reject8bit (0; отхвърлете съобщения с 8-битови знаци в заглавките или просто заменете такива знаци с 'X')
  • singleinstancestore (1; съобщението до множество получатели се съхранява в един екземпляр)
  • soft_noauth (1; връща временен код за грешка (4xx) при невалидно удостоверяване)
  • доставяне - сортиране на пощенска кутия Помощната програма за доставка може да се използва от пощенски сървър за изпращане на входяща поща в пощенска кутия (за предпочитане с помощта на lmtpd). Комуникира с клиента чрез стандартен вход/изход, идентификаторите на получателите са посочени като параметри. Ключове:

    Споделя конфигурационен файл с imapd. Подходящ за възстановяване на имейл съобщения от резервно копие (временно активиране на интерфейса на unix socket). cyradm admin shell cyradm е обвивка за perl модула за администриране на сървър Cyrus::IMAP::Shell. Може да се използва директно в интерактивен режим (може да се наложи да зададете променливата на средата PERL5LIB на /usr/local/lib/perl5/site_perl/5.8.0) или в perl скриптове: perl -MCyrus::IMAP::Shell -e 'run("script-name")' Командите в интерактивен режим могат да бъдат разделени на ред със знаци ';'. I/O командите могат да бъдат пренасочени подобно на /bin/sh (тръбата не е внедрена). Редактирането на редове се осъществява чрез readline (история и др.). Отбори:

    Инструменти за тестване Комплектът се доставя с инструменти за тестване и ще ви трябват. imtest ви позволява не само да тествате посочения сървър (IMAP протокол), но и да го администрирате вместо cyradm (прости команди). Ключове:

  • -d (отпечатване на съдържание като текст към stdout); -f db-име на файл (mailboxes.db); -p дял (ограничение до дял); -x (изтриване на отпечатаните полета)
  • -u (зареждане от stdin; приема резултата от предишен дъмп); -f име на db-файл (mailboxes.db)
  • -m (синхронизиране на списъка с mupdate); -f име на db-файл (mailboxes.db)
  • mbpath - определя името във файловата система от името на кутията. Опции: -C име на конфигурационен файл (/etc/imapd.conf); -q (недокладвай грешки) -s (спиране на обработката при грешка). cvt_cyrusdb - Конвертиране на сървърна база данни от един формат в друг. Трябва да посочите стария файл, стария файлов формат, нов файл, нов файлов формат. Параметър: -C име на конфигурационен файл (/etc/imapd.conf). Ако се извика без аргументи, той показва списък с формати (berkeley, berkeley-nosync, flat, skiplist, quotalegacy). Инсталиране на версия 2.2.12 на CentOS 4.0

      първо трябва да има

    • Cyrus SASLv2
    • Berkeley DB на същата версия, използвана за изграждане на Cyrus SASL
    • Perl 5 (за инсталационни скриптове и cyradm)
    • OpenSSL, 0.9.4 (STARTTLS и imaps:, pop3s:)
    • libwrap
    • Net-SNMP (за наблюдение на сървъра)
    • MTA с поддръжка на LMTP (и AUTH).
  • копирайте и разопаковайте архива с изходните текстове, получени на
  • сайт за разработчици; влизаме вътре
  • Основни IMAP команди на Cyrus

  • парола за имейл име за влизане
  • излез от профила си
  • създайте user.mailname
  • setquota user.mail-name (размер на паметта в KB)
  • преименуване на старо име ново име
  • работи само за подс
  • getquota user.mail-име
  • Премахване:
  • setacl user.mailname adminname c
  • изтриване на user.mail-name
  • imapsync - синхронизиране на пощенска кутия imapsync - помощна програма за синхронизиране на пощенска кутия (perl). Инсталация: