DrFugazi@Work Blog

Installation of mail system on Ubuntu

I assume that you have installed system with basic configuration and SSH running. After login to system we can install dovecot-postfix package, which is described as fully functional mail server:

drfugazi@charr:~% sudo aptitude install dovecot-postfix
[sudo] password for drfugazi:
Reading extended state information
Initializing package states... Gotowe
The following NEW packages will be installed:
  dovecot-common{a} dovecot-imapd{a} dovecot-pop3d{a} dovecot-postfix
0 packages upgraded, 4 newly installed, 0 to remove and 0 not upgraded.
Need to get 7957kB of archives. After unpacking 15,1MB will be used.
Do you want to continue? [Y/n/?] y
...
Configuring dovecot-common (1:1.2.9-1ubuntu6.1) ...
Creating config file /etc/dovecot/dovecot.conf with new version
Creating config file /etc/dovecot/dovecot-ldap.conf with new version
Creating config file /etc/dovecot/dovecot-sql.conf with new version

Now we should check if Dovecot is running and we can connect to IMAP server on localhost:

Masowe snapshoty ZFS

ZFS to taki fajny filesystem, w którym szybko można zrobić migawkę (snapshot).

Na przykład mając ZFS o nazwie tank, robimy snapshot o nazwie snap1:


# zfs snapshot tank@snap1

Załatwione, operacja szybka i bezbolesna. Ale jak w systemie jest kilka zpool i na każdej kilka filesystemów ZFS to już trzeba by się trochę naklepać. Ja to załatwiam takim jednowierszowcem:


# for a in `zpool list -H -o name`; do zfs snapshot -r $a@20110109; done

Ta instrukcja spowoduje rekursywne utworzenie snapshotów dla wszystkich zpool w systemie, oczywiście ciąg 20110109 jest przykładowy i reprezentuje aktualną datę.

Masowe snapshoty ZFS

ZFS to taki fajny filesystem, w którym szybko można zrobić migawkę (snapshot). Na przykład mając ZFS o nazwie tank, robimy snapshot o nazwie snap1: # zfs snapshot tank@snap1 Załatwione, operacja szybka i bezbolesna. Ale...

Instalacja skanera AV/AS do poczty

Instalacja skanowania Antywirusowego (AV) i Antyspamowego (AS) do systemu poczty

Przełączamy się na roota i insalujemy potrzebne oprogramowanie:


sudo -i
aptitude update
aptitude install amavisd-new
aptitude install clamav-daemon
aptitude install spamassassin

SpamAssassin jest domyślnie wyłączony, o czym nas informuje przy instalacji, aby go włączyć należy wyedytować plik /etc/default/spamassassin i ustawić:


vi /etc/default/spamassassin
ENABLED=1
CRON=1

Usuwanie poczty z kolejki

Czasem trzeba wyrzucić kilka maili z kolejki albo wykonać jakąś inną operację wymagającą złożenia kilku poleceń do kupy.

Dla starych wyjadaczy to żaden problem i pewnie zrobiliby to bardziej optymalnie, ale ja właśnie postanowiłem rozpocząć cykl pod tytułem „Jednowierszowce„, gdzie będę wrzucał jednowierszowe skrypty shellowe (i inne), które mam nadzieję będą przydatne i zrozumiałe dla szerszego grona użytkowników.

Usuwanie poczty z kolejki Postfixa

Czasem trzeba wyrzucić kilka maili z kolejki albo wykonać jakąś inną operację wymagającą złożenia kilku poleceń do kupy. Dla starych wyjadaczy to żaden problem i pewnie zrobiliby to bardziej optymalnie, ale ja właśnie postanowiłem...

Konfiguracja dostarczania poczty w oparciu o LDAP

Ostatnio pisałem o konfiguracji uwierzytelniania użytkowników w katalogu LDAP aby mogli odbierać i wysyłać pocztę. Teraz czas na konfigurację Postfixa aby tę pocztę dostarczał do właściwych domen i skrzynek.

Jeśli kompilujecie/instalujecie Postfixa samodzielnie, to należy pamiętać o wkompilowaniu wsparcia dla LDAP oraz wskazaniu ścieżki do bibliotek LDAP. Ja pójdę na łatwiznę i zrobię to na Ubuntu:


$ sudo -i
# apt-get install postfix-ldap

To dołoży nam do postfixa wsparcie dla map typu ldap:

Teraz możemy zabrać się za konfigurację serwera Postfix:


# cd /etc/postfix
# vi main.cf

Konfiguracja uwierzytelniania poczty w LDAP

Zakładam, że Dovecot i Postfix już działają i można odebrać i wysłać pocztę logując się na użytkownika systemowego (patrz poprzednie wpisy). Nadszedł zatem czas na uruchomienie uwierzytelniania w naszym katalogu LDAP (patrz konfiguracja LDAP).

Wykorzystanie LDAPa do uwierzytelniania użytkowników pozwala na elastyczne zarządzanie hostingiem poczty i nie tylko. LDAP jest już przyjętym standardem w zakresie uwierzytelniania i autoryzacji, praktycznie każde szanujące się oprogramowanie wymagające uwierzytelnienia ma wsparcie dla tego protokołu.

Zaczniemy od serwera POP3/IMAP, który również dostarcza mechanizmu uwierzytelniania dla Postfixa czyli od Dovecota:


/usr/bin/sudo -i
cd /etc/dovecot
vi dovecot-ldap.conf

W tym pliku musimy zdefiniować parametry serwera lub serwerów LDAP, metodę uwierzytelnienia oraz filtry i atrybuty, wymienię te, które trzeba ustawić:


hosts = localhost
auth_bind = yes
base = o=hosting,dc=example,dc=com
scope = subtree
user_attrs = homeDirectory=home
user_filter = (&(objectClass=mailUser)(mail=%u))
pass_attrs = mail=user,userPassword=password
pass_filter = (&(objectClass=mailUser)(mail=%u))

Installation and configuration of OpenLDAP

Installation and basic configuration of LDAP directory service (OpenLDAP) on Ubuntu:

sudo aptitude install slapd ldap-utils

This description is based on HowtoForge document for Karmic Koala. I used to be to configure of OpenLDAP in slapd.conf file, but this is old method. Here we have possibility to modify LDAP configuration without restart of LDAP server.

cd /etc/ldap

At first I suggest you to add some schemas, which contains objectclasses and attributes useful later:

ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/cosine.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/inetorgperson.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/nis.ldif

If you have problem with addition of above because of insufficient permissions then switch to root with sudo su - or sudo -i

Installation and configuration of OpenLDAP

Installation and basic configuration of LDAP directory service (OpenLDAP) on Ubuntu:

sudo aptitude install slapd ldap-utils

This description is based on HowtoForge document for Karmic Koala. I used to be to configure of OpenLDAP in slapd.conf file, but this is old method. Here we have possibility to modify LDAP configuration without restart of LDAP server.

cd /etc/ldap

At first I suggest you to add some schemas, which contains objectclasses and attributes useful later:

ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/cosine.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/inetorgperson.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/nis.ldif

If you have problem with addition of above because of insufficient permissions then switch to root with sudo su - or sudo -i