|
Rozmiar: 3914
Komentarz: + skrypty dla tar-ów
|
Rozmiar: 8312
Komentarz: + konfiguracja dla 3.0.x, parsery dla konfiguracji
|
| Usunięcia zostały oznaczone w ten sposób. | Dodatki zostały oznaczone w ten sposób. |
| Linia 4: | Linia 4: |
| <<Action(print, Wydrukuj tę dokumentację)>>` `<<Action(SlideShow, Pokaż jako slajdy)>><<BR>> <<Navigation(children)>> |
|
| Linia 17: | Linia 19: |
| A następnie wykonać przebudowę bazy serwisów: {{{#!highlight bash numbers=off /usr/sbin/services_mkdb -q -o /var/db/services.db /etc/services }}} |
|
| Linia 18: | Linia 25: |
| Należy odkomentować poniższą linię: {{{ |
Należy zapewnić, aby poniższe linie były aktywne oraz zawierały wartości: {{{#!highlight ini numbers=off idled cmd="idled lmtp cmd="lmtpd" listen="localhost:lmtp" prefork=0 |
| Linia 26: | Linia 37: |
| (!) 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 json 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 53: |
| 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). {{{#!shell numbers=off |
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 # 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 ==== {{{#!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 |
| Linia 31: | Linia 79: |
| chown cyrus:cyrus /var/imap/ /var/spool/imap/ /var/imap/user | chown cyrus:cyrus /var/imap/ /var/spool/imap/ /var/imap/user /var/imap/sieve |
| Linia 35: | Linia 83: |
| {{{#!shell numbers=off # wersja dla 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 }}} |
|
| Linia 61: | Linia 95: |
| {{{#!shell numbers=off | {{{#!highlight bash numbers=off |
| Linia 66: | Linia 100: |
| {{{#!shell numbers=off | {{{#!highlight bash numbers=off |
| Linia 75: | Linia 109: |
| == 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 }}} |
|
| Linia 76: | Linia 122: |
| {{{#!shell numbers=off | {{{#!highlight bash numbers=off |
| Linia 83: | Linia 129: |
| {{{#!shell numbers=off | {{{#!highlight bash numbers=off |
| Linia 89: | Linia 135: |
| {{{#!shell numbers=off | {{{#!highlight bash numbers=off |
| Linia 100: | Linia 146: |
| {{{#!shell numbers=off | {{{#!highlight bash numbers=off |
| Linia 110: | Linia 156: |
| == 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 }}} == Sprawdzenie duplikatów dla bazy delivery == {{{#!highlight bash numbers=off /usr/local/cyrus/bin/ctl_deliver -d | grep __Message_ID__ }}} == Usunięcie duplikatów z bazy delivery (aby móc ponownie wykonać program delivery) == {{{#!highlight bash numbers=off /usr/local/cyrus/bin/cyr_expire -v -E __okres_czasu__ -p user.userid }}} gdzie __okres_czasu__ jest domyślnie liczony w dniach. Szczegóły można znaleźć w manualu: {{{#!highlight bash numbers=off man -m /usr/local/cyrus/man cyr_expire }}} = Migracja poczty w ramach serwera Cyrus-IMAPd = Chodzi o przeniesienie maili z jednej skrzynki (dowolny użytkownik) do drugiej skrzynki (lub folderu). Teoretycznie powinno zadziałać: {{{#!highlight bash numbers=off cat _plik_z_mailem | /usr/local/cyrus/bin/deliver -m folder userid }}} Ale to domyślnie nie zadziała, a po drugie ponowne próby nie dają pozytywnego rezultatu. A wszystko z powodu ochrony przed duplikatami. == Ustawienie poprawnie uprawnień do danego folderu == Domyślnie program `deliver` jest uruchamiany z uprawnieniami anonymous. Tak więc poprzez `cyradm` należy dać użytkownikowi ''anonymous'' uprawnienia '''p''' (raczej cała ''ścieżka'' w dla danego ''userid''). == Migracja wiadomości jako użytkownik cyrus == Albo uruchomić program `deliver` z odpowiednimi opcjami: {{{#!highlight bash numbers=off cat _plik_z_mailem | /usr/local/cyrus/bin/deliver -a cyrus -m folder userid }}} = Cyrus IMAP v 3.0.x = == Zmiany w konfiguracji w stosunku do starszych wersji == {{{#!highlight json numbers=off autocreate_quota: 100000 autocreate_post: 1 autocreate_inbox_folders: Draft|Sent|Trash|Spam|Nonspam }}} == Sprawdzenie poprawności konfiguracji == {{{#!highlight bash numbers=off su -l cyrus -c "/usr/local/cyrus/sbin/cyr_info conf-lint -C /etc/imapd.conf -M /etc/cyrus.conf" }}} = Źródła w sieci internet = 1. [[http://cyrusimap.org/|strona domowa Cyrus IMAP|target+"_blank]] 1. [[http://cyrusimap.org/imap/download/upgrade.html|Upgrade do 3.0-stable|target+"_blank]] |
|
| Linia 111: | Linia 213: |
| {*} Wszelkie uwagi proszę zgłaszać do administratora strony. | {i} ` `<<GetVal(SlownikNewBsd,adm-podpis)>> |
Wydrukuj tę dokumentację Pokaż jako slajdy
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
- Sprawdzenie duplikatów dla bazy delivery
- Usunięcie duplikatów z bazy delivery (aby móc ponownie wykonać program delivery)
- Migracja poczty w ramach serwera Cyrus-IMAPd
- Cyrus IMAP v 3.0.x
- Źródła w sieci internet
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
A następnie wykonać przebudowę bazy serwisów:
/usr/sbin/services_mkdb -q -o /var/db/services.db /etc/services
Konfiguracja cyrus.conf
Należy zapewnić, aby poniższe linie były aktywne oraz zawierały wartości:
idled cmd="idled
lmtp cmd="lmtpd" listen="localhost:lmtp" prefork=0
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
Sprawdzenie duplikatów dla bazy delivery
/usr/local/cyrus/bin/ctl_deliver -d | grep __Message_ID__
Usunięcie duplikatów z bazy delivery (aby móc ponownie wykonać program delivery)
/usr/local/cyrus/bin/cyr_expire -v -E __okres_czasu__ -p user.userid
gdzie okres_czasu jest domyślnie liczony w dniach. Szczegóły można znaleźć w manualu:
man -m /usr/local/cyrus/man cyr_expire
Migracja poczty w ramach serwera Cyrus-IMAPd
Chodzi o przeniesienie maili z jednej skrzynki (dowolny użytkownik) do drugiej skrzynki (lub folderu). Teoretycznie powinno zadziałać:
cat _plik_z_mailem | /usr/local/cyrus/bin/deliver -m folder userid
Ale to domyślnie nie zadziała, a po drugie ponowne próby nie dają pozytywnego rezultatu. A wszystko z powodu ochrony przed duplikatami.
Ustawienie poprawnie uprawnień do danego folderu
Domyślnie program deliver jest uruchamiany z uprawnieniami anonymous. Tak więc poprzez cyradm należy dać użytkownikowi anonymous uprawnienia p (raczej cała ścieżka w dla danego userid).
Migracja wiadomości jako użytkownik cyrus
Albo uruchomić program deliver z odpowiednimi opcjami:
cat _plik_z_mailem | /usr/local/cyrus/bin/deliver -a cyrus -m folder userid
Cyrus IMAP v 3.0.x
Zmiany w konfiguracji w stosunku do starszych wersji
autocreate_quota: 100000
autocreate_post: 1
autocreate_inbox_folders: Draft|Sent|Trash|Spam|Nonspam
Sprawdzenie poprawności konfiguracji
su -l cyrus -c "/usr/local/cyrus/sbin/cyr_info conf-lint -C /etc/imapd.conf -M /etc/cyrus.conf"
Źródła w sieci internet
(c) 2004 - 2026 BSD Serwis Krzysztof Stryjek. W przypadku błędów, poprawek proszę kontaktować się z administratorem wiki.
