Idea wirtualnych kont w Postfiksie polega na umożliwieniu dostarczania poczty do kont użytkowników, którzy nie są systemowymi użytkownikami (nie posiadają wpisu do /etc/passwd, nie posiadają katalogu domowego itp.). Dzięki takiemu rozwiązaniu możemy zwiększyć bezpieczeństwo systemu ale również w przypadku obsługi ogromnej ilości kont pocztowych zwiększyć wydajność. Oczywiście osobny problem to odebranie poczty od takich użytkowników. 😉
Do działania kont wirtualnych konieczne jest stworzenie katalogu w którym będzie ona zapisywana (co jest oczywiste). Należy jednak określić kto do tego katalogu może pisać a kto nie. Najlepiej stworzyć specjalnego użytkownika, na prawach którego będzie to obsługiwane.
debian:/var/log# addgroup --system --gid 1005 vmail Adding group `vmail' (1005)... Done.
debian:/var/log# adduser --disabled-password --uid 1005 --gid 1005 --disabled-login --gecos "Mail user" vmail Adding user `vmail'... Adding new user `vmail' (1005) with group `vmail'. Creating home directory `/home/vmail'. Copying files from `/etc/skel' debian:/var/log#
Wygląd map
Wygląd map w formacie dla skrzynek mbox:
Nazwa domeny #nazwa domeny krzysztof.jozwiak@linuxexpert.pl ziutus22 krzysztofjozwiak@linuxexpert.pl ziutus22
Wygląd map w formacie dla skrzynek Maildir
Nazwa domeny #nazwa domeny krzysztof.jozwiak@linuxexpert.pl ziutus22/ krzysztofjozwiak@linuxexpert.pl ziutus22/
Jak widać o formacie skrzynek decyduje koncowy slash przy nazwie użytkownika, gdy go nie ma jest to mailbox, gdy jest oznacza Maildir. Postfix samodzielnie utworzy skrzynki w formacie mailbox lub Maildir.
Mapy z bazy danych MySQL
Włączenie obsługi kont virtualnych ogranicza się do zdefiniowania następujących zmiennych:
virtual_mailbox_domains = mysql:/etc/postfix/mysql-virtual_domains.cf virtual_mailbox_maps = mysql:/etc/postfix/mysql-virtual_mailboxes.cf virtual_mailbox_base = /home/vmail/ virtual_uid_maps = static:1005 # [VMAIL-UID] virtual_gid_maps = static:1005 # [VMAIL-GID]
Zmienne virtual_uid_maps i virtual_gid_map określają właśnie użytkowników, na prawach których wiadomości będą zapisywane do określonych plików lub katalogów (u nas jest to sztywno zdefiniowany użytkownik vmail)
Różnica między virtual_alias_maps a virtual_mailbox_maps
Różnica między virtual_alias_maps a virtual_mailbox_maps (i oczywiście virtual_alias_domains i virtual_mailbox_domains) jest taka, że pierwsza oznacza mapowanie użytkownika istniejącągo w systemie a drugie wskazuje plik lub katalog, do którego poczta powinna być zapisana. .