Różnice pomiędzy wersjami 4 i 11 (Spinanie 7 wersji)
⇤ ← Wersja 4 z 2014-03-29 21:18:43 →
Rozmiar: 2627
Edytor: wtps0n
Komentarz:
← Wersja 11 z 2016-07-14 20:16:50 → ⇥
Rozmiar: 5782
Edytor: wtps0n
Komentarz: + odnośnik do dokumentacji saslauthd
Usunięcia zostały oznaczone w ten sposób. Dodatki zostały oznaczone w ten sposób.
Linia 26: Linia 26:
(!) Dotyczy konfiguracji związanej z obsługą urządzeń Apple (iPhone). Apple nie respektuje ustawień ''login+hasło'', tylko buduje dane do logowania na podstawie:
{{{
login@_serwer_poczty_przychodzacej_ hasło
}}}

Można to poprawić poprzez następujące kroki:
 1. Poprawki w [[SaslAuthd|konfiguracji saslauthd]]
 1. Poprawki w konfiguracji `imapd.conf`
{{{#!highlight ini numbers=off
allowplaintext: 1
allowapop: 0
}}}

Powyższe ustawienie wyłącza mechanizm ''APOP'' (''authentication pop''), które zawsze korzysta z bazy '''sasldb2''' zamiast z mechanizmu wskazanego w parametrach samego `saslauthd`. Wyłączenie mechanizmu ''APOP'' powoduje, że urządzenie Apple zaczyna korzystać `saslauthd` (czyli bazy [[http://www.OpenLDAP.org|OpenLDAP|target="_blank"]]).
Linia 27: Linia 42:
Jeżeli jest to partycja UFS, to po prostu tworzenie drzewa katalogów. Ale jeżeli korzystamy z ZFS, to warto stworzyć oddzielne partycje. Dzięki temu można będzie łątwo robić backupy (snapshoty), czy zrobić inne ustawienia (np. kompresja). Jeżeli jest to partycja UFS, to po prostu tworzenie drzewa katalogów. Ale jeżeli korzystamy z ZFS, to warto stworzyć oddzielne partycje. Dzięki temu można będzie łatwo robić backupy (snapshoty), czy zrobić inne ustawienia (np. kompresja).
Linia 29: Linia 44:
{{{#!shell numbers=off
mkdir -p /var/imap/sieve /var/spool/imap/ /var/imap/user
chown cyrus:cyrus /var/imap/ /var/spool/imap/ /var/imap/user
chmod 0750 /var/imap/ /var/spool/imap/
su - cyrus -c "mkimap"
}}}
{{{#!shell numbers=off
# wersja dla ZFS
=== Utworzenie partycji ZFS ===
{{{#!highlight bash numbers=off
Linia 49: Linia 57:
==== Utworzenie partycji ZFS dla beadm ====
{{{#!highlight bash numbers=off
zfs create -o mountpoint=/var/imap sys/data/v/imap
zfs create sys/data/v/spool/imap
}}}

=== Utworzenie potrzebnych katalogów ===
(Poniższe również dla partycji UFS).

{{{#!highlight bash numbers=off
mkdir -p /var/imap/sieve /var/spool/imap/ /var/imap/user
chown cyrus:cyrus /var/imap/ /var/spool/imap/ /var/imap/user /var/imap/sieve
chmod 0750 /var/imap/ /var/spool/imap/
su - cyrus -c "mkimap"
}}}
Linia 61: Linia 84:
{{{ {{{#!highlight bash numbers=off
Linia 64: Linia 87:
tar -czf _skrzynka_seen.tgz -C /var/imap/user/w/ wtp*
Linia 67: Linia 89:
{{{ {{{#!highlight bash numbers=off
Linia 71: Linia 93:
mkdir -p -C /var/imap/user/w/
tar -xzf skrzynka_seen.tgz -C /var/imap/user/w/
}}}

= Tips and tricks =
Różne sztuczki i kruczki, które wyszły przy przenoszeniu poczty pomiędzy serwerami

== Backup sasldb2 ==
Przy migracji serwera jest możliwe przeniesienie zawartości bazy `/usr/local/etc/sasldb2`:
{{{#!highlight bash numbers=off
# na bieżącym serwerze:
#
db_dump-5 -p /usr/local/etc/sasldb2 > /tmp/sasldb2.backup

# na nowym serwerze:
#
cat /tmp/sasldb2.backup | db_load-5 /usr/local/etc/sasldb2
}}}

== Sprawdzenie rozbieżności pomiędzy bazą danych, a katalogami na dysku ==
{{{#!highlight bash numbers=off
# zgodnie z dokumentacją może być "ciężkie" dla dysku
#
/usr/local/cyrus/bin/ctl_mboxlist -v
}}}

== Naprawa brakujących katalogów, plików na dysku, które są w bazie ==
{{{#!highlight bash numbers=off
su - cyrus -c "/usr/local/cyrus/bin/reconstruct -x user.tcmagda"
su - cyrus -c "/usr/local/cyrus/bin/reconstruct -r user.tcmagda"
}}}

== Kopiowanie kilku skrzynek z całego podrzewa OpenLDAP (tworzenie archiwum) ==
{{{#!highlight bash numbers=off
for m in `ldapsearch -xLLL -b 'ou=__domena__,ou=smtpd,dc=bsdserwis,dc=com' objectClass=person uid | awk '/^uid/ {print $2}'`
do
       p=`echo $m | cut -c1`
       echo -n "Archiving $m ..."
       tar -cf /opt/backups/mx/_${m}.tar -C /var/spool/imap/$p/user/$m .
       echo "Done."
done
}}}

== Kopiowanie kilku skrzynek z całego podrzewa OpenLDAP (rozpakowanie archiwum) ==
{{{#!highlight bash numbers=off
for m in `ldapsearch -xLLL -b 'ou=__domena__,ou=smtpd,dc=bsdserwis,dc=com' objectClass=person uid | awk '/^uid/ {print $2}'`
do
       p=`echo $m | cut -c1`
       echo -n "Extracting $m ..."
       tar -xf /opt/backups/mx/_${m}.tar -C /var/spool/imap/$p/user/$m
       echo "Done."
done
}}}

== Utworzenie skrzynek na podstawie poddrzewa OpenLDAP ==
Głównie dotyczy serwera typu archiwum skrzynek. Tylko oczywiście wcześniej musi działać serwer IMAP :-)
{{{#!highlight bash numbers=off
ldapsearch -xLL -b 'ou=__domena__,ou=smtpd,dc=bsdserwis,dc=com' objectClass=person uid | awk '/^uid/ {print $2}' | xargs -n1 -t /usr/local/admin/vusers/mail_useradd --mbox
Linia 76: Linia 152:
{*} Wszelkie uwagi proszę zgłaszać do administratora strony. {i} ` `<<GetVal(SlownikNewBsd,adm-podpis)>>


Konfiguracja Cyrus imapd

Dopiski do /etc/services

Sam service sieve doczekał się oficjalnego wpisu w /etc/services jako 4190/tcp. Tak więc tylko te dwa wpisy (o ile będziemy korzystać z FUD lub LMTP).

# --- added by wtp for cyrus-imapd ------------------------------------
#
lmtp            4205/tcp
fud             4201/udp

Konfiguracja cyrus.conf

Należy odkomentować poniższą linię:

notify       cmd="notifyd" listen="/var/imap/socket/notify" proto="udp" prefork=1

Konfiguracja imapd.conf

Patrz załącznik

(!) Dotyczy konfiguracji związanej z obsługą urządzeń Apple (iPhone). Apple nie respektuje ustawień login+hasło, tylko buduje dane do logowania na podstawie:

login@_serwer_poczty_przychodzacej_ hasło

Można to poprawić poprzez następujące kroki:

  1. Poprawki w konfiguracji saslauthd

  2. Poprawki w konfiguracji imapd.conf

allowplaintext:         1
allowapop:              0

Powyższe ustawienie wyłącza mechanizm APOP (authentication pop), które zawsze korzysta z bazy sasldb2 zamiast z mechanizmu wskazanego w parametrach samego saslauthd. Wyłączenie mechanizmu APOP powoduje, że urządzenie Apple zaczyna korzystać saslauthd (czyli bazy OpenLDAP).

Tworzenie drzewa katalogów

Jeżeli jest to partycja UFS, to po prostu tworzenie drzewa katalogów. Ale jeżeli korzystamy z ZFS, to warto stworzyć oddzielne partycje. Dzięki temu można będzie łatwo robić backupy (snapshoty), czy zrobić inne ustawienia (np. kompresja).

Utworzenie partycji ZFS

# partycja imap zawiera "konfigurację" skrzynek, czy skryptów sieve. Zatem można kompresję włączyć, bo nie wiele to kosztuje
#
zfs create -o compress=gzip -o mountpoint=/var/imap tank/v/imap

# partycja spool zawiera już pocztę. Kompresja? Hmm, może być zbyt wielkim obciążeniem.
# Ale zawsze zablokowanie setuid, czy exec może być pomocne (jako dziedziczone):
#
zfs create -o mountpoint=/var/spool tank/v/spool
zfs create tank/v/spool/imap

Utworzenie partycji ZFS dla beadm

zfs create -o mountpoint=/var/imap sys/data/v/imap
zfs create sys/data/v/spool/imap

Utworzenie potrzebnych katalogów

(Poniższe również dla partycji UFS).

mkdir -p /var/imap/sieve /var/spool/imap/ /var/imap/user
chown cyrus:cyrus /var/imap/ /var/spool/imap/ /var/imap/user /var/imap/sieve
chmod 0750 /var/imap/ /var/spool/imap/
su - cyrus -c "mkimap"

Dodanie podstawowych kont do bazy cyrus-sasl

saslpasswd2 postmaster@localhost.<domain>
saslpasswd2 postmaster@<hostname>
sasldblistusers2

Utworzenie konta w OpenLDAP

Z analogicznym (jak powyżej) loginem oraz hasłem należyć wykreować konto (SSO) w lokalnej bazie LDAP.

Przenoszenie konta (backup)

W celu odzyskania backupu skrzynki cyrusa, należy wykonać następujące polecenia:

tar -czf _skrzynka.tgz -C /var/spool/imap/w/user/wtp .
/usr/local/cyrus/bin/ctl_mboxlist -d | grep wtp > mbox.dump

Zaś w nowym miejscu:

/usr/local/admin/vuser/useradd_mail.pl wtp
/usr/local/cyrus/bin/ctl_mboxlist -u < mbox.dump
tar -xzf _skrzynka.tgz -C /var/spool/imap/w/user/wtp

Tips and tricks

Różne sztuczki i kruczki, które wyszły przy przenoszeniu poczty pomiędzy serwerami

Backup sasldb2

Przy migracji serwera jest możliwe przeniesienie zawartości bazy /usr/local/etc/sasldb2:

# na bieżącym serwerze:
#
db_dump-5 -p /usr/local/etc/sasldb2 > /tmp/sasldb2.backup

# na nowym serwerze:
#
cat /tmp/sasldb2.backup | db_load-5 /usr/local/etc/sasldb2

Sprawdzenie rozbieżności pomiędzy bazą danych, a katalogami na dysku

# zgodnie z dokumentacją może być "ciężkie" dla dysku
#
/usr/local/cyrus/bin/ctl_mboxlist -v

Naprawa brakujących katalogów, plików na dysku, które są w bazie

su - cyrus -c "/usr/local/cyrus/bin/reconstruct -x user.tcmagda"
su - cyrus -c "/usr/local/cyrus/bin/reconstruct -r user.tcmagda"

Kopiowanie kilku skrzynek z całego podrzewa OpenLDAP (tworzenie archiwum)

for m in `ldapsearch -xLLL -b 'ou=__domena__,ou=smtpd,dc=bsdserwis,dc=com' objectClass=person uid | awk '/^uid/ {print $2}'`
do
       p=`echo $m | cut -c1`
       echo -n "Archiving $m ..."
       tar -cf /opt/backups/mx/_${m}.tar -C /var/spool/imap/$p/user/$m .
       echo "Done."
done

Kopiowanie kilku skrzynek z całego podrzewa OpenLDAP (rozpakowanie archiwum)

for m in `ldapsearch -xLLL -b 'ou=__domena__,ou=smtpd,dc=bsdserwis,dc=com' objectClass=person uid | awk '/^uid/ {print $2}'`
do
       p=`echo $m | cut -c1`
       echo -n "Extracting $m ..."
       tar -xf /opt/backups/mx/_${m}.tar -C /var/spool/imap/$p/user/$m
       echo "Done."
done

Utworzenie skrzynek na podstawie poddrzewa OpenLDAP

Głównie dotyczy serwera typu archiwum skrzynek. Tylko oczywiście wcześniej musi działać serwer IMAP :-)

ldapsearch -xLL -b 'ou=__domena__,ou=smtpd,dc=bsdserwis,dc=com' objectClass=person uid | awk '/^uid/ {print $2}' | xargs -n1 -t /usr/local/admin/vusers/mail_useradd --mbox


{i}  (c) 2004 - 2026 BSD Serwis Krzysztof Stryjek. W przypadku błędów, poprawek proszę kontaktować się z administratorem wiki.

CyrusImapd (ostatnio edytowane 2025-10-27 21:01:47 przez wtps0n)