Complete Virtual Mail Server/Admin Support Systems
Adminisztrációs felület
Ez a dokumentum nem támaszkodik az ebben a fejezetben említett alkalmazások egyikére sem. Telepíthetők és felhasználhatók, de az érvényes rendszernek ezek bármelyike nélkül működniük kell. Van azonban egy kivétel, a www-apps/postfixadmin programcsomag. A kivétel azért létezik, hogy a postfixadmin-t a kezdeti táblázatok létrehozásához lehessen használni. Ennek oka egyszerű: A postfixadmin felhasználható az adatbázis kezelésére, és ha ő maga nem teljesen örül az táblázat elrendezésének, akkor a dolgok elromolhatnak. Így hagyva, hogy a postfixadmin hozza létre a táblákat, akkor boldog marad, ha valaha is úgy dönt, hogy használja majd azt.
Apache, PHP and PostgreSQL
Az Apache, a PHP és a PostgreSQL kiterjedt csomagok. Olvassa el az Apache cikket az Apache beállításáról. A PHP-nek van egy wiki oldala is, amely a PHP telepítésére szolgál. Gondoskodni kell arról, hogy a PHP-től és az Apache-től várható összes szolgáltatás működjön a folytatás előtt, mivel ezek fontosak lesznek a webmail és a statisztikai bemutatás használatához.
A beállítás egyik alapvető eleme a PostgreSQL. Folytatás előtt feltétlenül olvassa el és kövesse a Wiki-cikket a PostgreSQL infrastruktúra beállításához. Alternatív megoldásként van MySQL vagy LDAP is.
A PostgreSQL és az Apache (és mások) összekapcsolása többféle módon történhet meg, például a hálózaton vagy egy UNIX aljzaton (socket-en) keresztül. Míg a UNIX aljzatok (socket-ek) a leggyorsabbak és némileg biztonságosabbak, addig a TCP/IP kapcsolatra szükség lehet, ha több (virtuális) szerverhez csatlakozik.
A UNIX aljzatok (socket-ek) használatakor azonban fontos, hogy a szokásos fájlrendszer-jogosultságok legyenek használva, és így az Apache-nak és a Postfix-nek a postgres csoportban kell lennie.
root #
gpasswd -a apache postgres
Postfixadmin
Ahogy a bevezetőben is említettük, a postfixadmin segítségével készítjük el a táblákat. Ezzel megbizonyosodhatunk arról, hogy ha a postfixadmin-t valaha is használnánk a levelezési fiókok stb. adminisztrálására, akkor megérti a táblázat formátumát.
Ha még nem tette meg, akkor hozza létre és telepítse a www-apps/postfixadmin programcsomagot az emerge segítségével:
root #
emerge --ask postfixadmin
Mivel a postfixadmin egy webes alkalmazás, a webapp-config a postfixadmin telepítésére szolgál a localhost/postfixadmin-hez. Ha egy külső tartományt előnyben van részesítve és szükséges, akkor az Apache-t a megfelelő módon, lehetőleg csak a https-nél kell beállítani.
root #
webapp-config -h localhost -d postfixadmin -I postfixadmin 2.3.8
A postfixadmin-nek szüksége van a saját adatainak a tárolásához egy adatbázisra, és szükség van egy felhasználóra is az adatbázis eléréséhez. A postfixadmin felhasználót a postfixadmin számára hozzák létre az adatbázishoz való hozzáférés érdekében. Később egy másik felhasználót hoznak létre, aki olvassa majd az adatbázis tartalmát. Ilyen módon az adminisztráció és az sima olvasás logikusan lesz szétválasztva egymástól.
root #
createuser -U postgres --pwprompt postfixadmin
Enter password for new role: $password Enter it again: $password
ehhez a felhasználóhoz adatbázisra is szükség lesz. a postfixadmin tulajdona lesz:
root #
createdb -U postgres --owner=postfixadmin postfix
Ezután a postfixadmin konfigurációs fájlt szerkeszteni kell, többek között azért is, hogy erre az adatbázisra mutasson.
A postfixadmin egy hash által védett jelszót kér a konfigurációs fájlba. Ezt a jelszó létre lesz hozva azáltal, hogy Ön meglátogatja a http://localhost/postfixadmin/setup.php weboldalt. A jelszó tényleges megszerzéséhez azonban a konfigurációs fájlt előre be kell állítani. Mint ilyen, a config.inc.php jelszó betöltése csak a megfelelő szerkesztés után végezhető el.
/var/www/localhost/htdocs/postfixadmin/config.inc.php
A postfixadmin konfiguráció diff-je-$CONF['configured'] = false;
+$CONF['configured'] = true;
-$CONF['postfix_admin_url'] = '';
+$CONF['postfix_admin_url'] = 'http://localhost/postfixadmin';
-$CONF['database_type'] = 'mysql';
+$CONF['database_type'] = 'pgsql';
$CONF['database_host'] = 'localhost';
-$CONF['database_user'] = 'postfix';
-$CONF['database_password'] = 'postfixadmin';
+$CONF['database_user'] = 'postfixadmin';
+$CONF['database_password'] = '$password';
$CONF['database_name'] = 'postfix';
$CONF['database_prefix'] = '';
-$CONF['admin_email'] = 'postmaster@change-this-to-your.domain.tld';
+$CONF['admin_email'] = 'postmaster@example.com';
- 'abuse' => 'abuse@change-this-to-your.domain.tld',
- 'hostmaster' => 'hostmaster@change-this-to-your.domain.tld',
- 'postmaster' => 'postmaster@change-this-to-your.domain.tld',
- 'webmaster' => 'webmaster@change-this-to-your.domain.tld'
+ 'abuse' => 'abuse@example.com',
+ 'hostmaster' => 'hostmaster@example.com',
+ 'postmaster' => 'postmaster@example.com',
+ 'webmaster' => 'webmaster@example.com'
-$CONF['domain_path'] = 'NO';
+$CONF['domain_path'] = 'YES';
-$CONF['domain_in_mailbox'] = 'YES';
+$CONF['domain_in_mailbox'] = 'NO';
-$CONF['transport'] = 'NO';
+$CONF['transport'] = 'YES';
-$CONF['vacation_domain'] = 'autoreply.change-this-to-your.domain.tld';
+$CONF['vacation_domain'] = 'autoreply.example.com';
-$CONF['user_footer_link'] = "http://change-this-to-your.domain.tld/main";
+$CONF['user_footer_link'] = "http://example.com/";
-$CONF['footer_text'] = 'Return to change-this-to-your.domain.tld';
-$CONF['footer_link'] = 'http://change-this-to-your.domain.tld';
+$CONF['footer_text'] = 'Return to http://example.com/';
+$CONF['footer_link'] = 'http://example.com/';
-// $CONF['mailbox_postcreation_script']='sudo -u courier /usr/local/bin/postfixadmin-mailbox-postcreation.sh';
+$CONF['mailbox_postcreation_script']='sudo -u vmail /usr/local/bin/postfixadmin-mailbox-postcreation.sh';
-// $CONF['mailbox_postdeletion_script']='sudo -u courier /usr/local/bin/postfixadmin-mailbox-postdeletion.sh';
+$CONF['mailbox_postdeletion_script']='sudo -u vmail /usr/local/bin/postfixadmin-mailbox-postdeletion.sh';
-// $CONF['domain_postdeletion_script']='sudo -u courier /usr/local/bin/postfixadmin-domain-postdeletion.sh';
+$CONF['domain_postdeletion_script']='sudo -u vmail /usr/local/bin/postfixadmin-domain-postdeletion.sh';
Az utolsó három bejegyzés teljesen opcionális, de lehetővé teszi a levélfiókok és tartományok hozzáadását és törlését. Ha nem használja a postfixadmin-t, akkor ezek kihagyhatóak. Ellenkező esetben a megjegyzéseket tartalmazó szkriptek másolhatók az /usr/share/doc/postfixadmin-2.3.7/ADDITIONS könyvtárból. Azért, hogy a szkriptek működhesenek, a sudo telepítésére és konfigurálására van szükség. Ne felejtse el végrehajthatóvá tenni a használt szkripteket (chmod +x), és ne feledje el a szkriptek tetején lévő
basedir
és a trashbase
változók cseréjét a tárhely számára.
root #
visudo
apache ALL=(vmail) NOPASSWD: /usr/local/bin/postfixadmin-domain-postdeletion.sh apache ALL=(vmail) NOPASSWD: /usr/local/bin/postfixadmin-mailbox-postcreation.sh apache ALL=(vmail) NOPASSWD: /usr/local/bin/postfixadmin-mailbox-postdeletion.sh
Azt követően, hogy a postfixadmin létrehozza a szükséges táblákat, lépjen a http://localhost/postfixadmin/setup.php weblapra, és kövesse a ott lévő utasításokat. Az esetleges konfigurációs hibák, vagy a hiányzó programcsomagok azon az oldalon is jelezve lesznek. Ezen a ponton egy hash által védett jelszó is létrejön amit bele lehet innentől rakni a konfigurációs fájlba. Ezt követően a szuper-admin felhasználók hozzáadhatók az adatbázishoz ezen a weblapon. Az adminisztrációs weblapra való bejelentkezés érdekében lépjen a http://localhost/postfixadmin/ weblapra.
A levelezőrendszernek teljes mértékben postfixadmin kompatibilisnek kell lennie. Nem számít, ha a felhasználókat/doméneket manuálisan vagy a postfixadmin grafikus felhasználói interfészen keresztül adják hozzá. Vegye figyelembe azonban, hogy van néhány felhasználó -> domain függőség.
Ha a postfixadmin nem kívánatos a rendszeren, akkor az adattáblázatok létrehozása után eltávolítható. Egy másik lehetőség az, hogy a postfixadmin létrehozza az adattáblázatokat más tesztrendszeren, és ezt követően exportálja/importálja azokat a adattáblázatokat a saját rendszerbe.