|
Rozmiar: 2479
Komentarz: +zfs
|
Rozmiar: 5782
Komentarz: + odnośnik do dokumentacji saslauthd
|
| Usunięcia zostały oznaczone w ten sposób. | Dodatki zostały oznaczone w ten sposób. |
| Linia 4: | Linia 4: |
| <<TableOfContents()>><<BR>> |
|
| Linia 6: | Linia 8: |
| === Dopiski do /etc/services === | == 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). |
| Linia 10: | Linia 13: |
| sieve 4203/tcp | |
| Linia 15: | Linia 17: |
| === Konfiguracja cyrus.conf === | == Konfiguracja cyrus.conf == |
| Linia 21: | Linia 23: |
| === Konfiguracja imapd.conf === | == Konfiguracja imapd.conf == |
| Linia 24: | Linia 26: |
| === 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 łątwo robić backupy (snapshoty), czy zrobić inne ustawienia (np. kompresja). |
(!) 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 }}} |
| Linia 27: | Linia 31: |
| {{{#!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" |
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 |
| Linia 33: | Linia 38: |
| {{{#!shell numbers=off # wersja dla ZFS |
|
| Linia 36: | Linia 39: |
| 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"]]). == 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 === {{{#!highlight bash numbers=off |
|
| Linia 47: | Linia 57: |
| === Dodanie podstawowych kont do bazy cyrus-sasl === | ==== 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" }}} == Dodanie podstawowych kont do bazy cyrus-sasl == |
| Linia 54: | Linia 79: |
| === Utworzenie konta w OpenLDAP === | == Utworzenie konta w OpenLDAP == |
| Linia 57: | Linia 82: |
| === Przenoszenie konta (backup) === | == Przenoszenie konta (backup) == |
| Linia 59: | Linia 84: |
| {{{ | {{{#!highlight bash numbers=off |
| Linia 62: | Linia 87: |
| tar -czf _skrzynka_seen.tgz -C /var/imap/user/w/ wtp* | |
| Linia 65: | Linia 89: |
| {{{ | {{{#!highlight bash numbers=off |
| Linia 69: | 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 74: | Linia 152: |
| {*} Wszelkie uwagi proszę zgłaszać do administratora strony. | {i} ` `<<GetVal(SlownikNewBsd,adm-podpis)>> |
Spis Treści
- Konfiguracja Cyrus imapd
-
Tips and tricks
- Backup sasldb2
- Sprawdzenie rozbieżności pomiędzy bazą danych, a katalogami na dysku
- Naprawa brakujących katalogów, plików na dysku, które są w bazie
- Kopiowanie kilku skrzynek z całego podrzewa OpenLDAP (tworzenie archiwum)
- Kopiowanie kilku skrzynek z całego podrzewa OpenLDAP (rozpakowanie archiwum)
- Utworzenie skrzynek na podstawie poddrzewa OpenLDAP
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
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:
Poprawki w konfiguracji saslauthd
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
(c) 2004 - 2026 BSD Serwis Krzysztof Stryjek. W przypadku błędów, poprawek proszę kontaktować się z administratorem wiki.
