Új szerver: levelezés

Új vas, új telepítés

Az új vashoz egy újratelepítés is dukált. Immáron Software RAID1-ben mennek a HDD-k, frissebb lett a rendszer is.

Az első és legfontosabb szolgáltatás, ami kellett a levelezés volt. A régi rendszeren egy Exim végezte az SMTP kezelését. Egy napig az is maradt, de utána átálltunk Postfix-re. Így most elég egyszerűen adminisztrálhatóak a virtuális postafiókok, szabályozható az SMTP és a POP3/IMAP elérés, mivel egy MySQL adatbázis dolgozik a rendszer alá. Ez nagyon megkönnyíti a userek kezelését, hiszen egy adatbázisban tárolható, hogy kinek milyen virtuális domain+postafiók jár, kinek van FTP elérése, mekkora a kvótája stb., ráadásul csak egy helyen kell megváltoztatni a felhasználó jelszavát, ha elvesztené.

De térjünk vissza a Postfix-re. Remek tulajdonsága, hogy SQL adatbázisokból képes beszerezni az információkat a levelek továbbításához.

Ha virtuális mailbox-okat akarunk kezelni, akkor ezekkel a beállításokkal érdemes foglalkoznunk:

  • virtual_mailbox_domains: Megadja, hogy mely domaineknek a végső célja a szerverünk (tehát nem kell továbbküldeni sehova az ezen domainekre kapott leveleket)
  • virtual_uid_maps: Megadja, hogy a virtuális transzport szolgáltatás milyen UID-dal írja a file-okat
  • virtual_gid_maps: Megadja, hogy a virtuális transzport szolgáltatás milyen GID-del írja a file-okat
  • virtual_mailbox_maps: Megadja a cím->mailbox hozzárendeléseket
  • virtual_alias_maps: Megadja a virtuális postafiókok alias adatait, vagyi hogy hová kell tovább küldeni az erre a címre érkező leveleket
  • virtual_transport: Az általunk kezelendő virtuális címekhez tartozozó kézbesítést végző szolgáltatás

Hogy ezeket a beállításokat honnan tudja lekérni a Postfix, megtudhatjuk a postconf -m paranccsal.

Ha ezeket a beállításokat MySQL-ből szeretnénk lekérdeztetni, akkor így kell megadni pl. egy opciót:
virtual_mailbox_domains = mysql:/etc/postfix/mysql-virtual-mailbox-domains.cf

A /etc/postfix/mysql-virtual-mailbox-domains.cf tartalma ilyesmi lesz:
user = sqlfelhasznalo
password = jelszo
hosts = 127.0.0.1
dbname = adatbazisnev
query = SELECT 1 FROM virtual_domains WHERE name='%s'

Tehát az autentikációs adatokon kívül egy query-t is meg kell adnunk értelemszerűen. Ebben az eseteben 1-eseket ad vissza a lekérdezés, mivel csak azt a cált szolgálja, hogy a Postfix el tudja dönteni, hogy a kapott mail domain nevének mi vagyunk a végső célja. A teljes címet majd csak a virtual_mailbox_map-nál fogja vizsgálni.

A legjobb ebben az egészben, hogy az adatbázisunk gyakorlatilag bármit tartalmazhat, ha megfelelő lekérdezésekkel csak azt kérjük le, amire a Postfix-nek szüksége van.

A többi beállítás kezelését az Olvasóra bízom, a legjobb segítség itt található: http://www.postfix.org/postconf.5.html