Postfix + Courier + MySQL Sallai András Egressy Gábor Kéttannyelvű Műszaki Szakközépiskola
Cél ● Postfix MySQL-ből keresi a felhasználókat ● Courier MySQL-ből azonosít ● Postfix MySQL-ből keresi azállneveket
Érintett témák Postfix keresőtáblák MySQL tábla Postfix MySQL táblánban Courier+MySQL SSL/TLS
Keresőtáblák a Postfixben ● Hozzáférés vezérlés ● Címátírás és egyeztetés ● Tartalomszűrés ● Egyéb
Keresőtáblák megadása ● /etc/postfix/main.cf alias_maps = hash:/etc/postfix/aliases header_checks = regexp: /etc/postfix/header_checks virtual_alias_maps = hash:/etc/postfix/virtual
Keresőtáblák típusai ● B tree ● Cdb ● Cidr ● dbm ● Environ ● Hash ● Ldap ● Mysql ● netinfo ● nis ● Nisplus ● Pcre ● Pgsql ● Proxy ● Regexp ● Sdbm ● Static ● tcp ● unix
cidr ● hasonlít a Classless InterDomain Routing mintákhoz (osztály nélküli körzetközi útvonalválasztás) /etc/postfix/main.cf smtpd_client_restrictions =cidr:/etc/postfix/client.cidr /etc/postfix/client.cidr OK /24REJECT
Hash ● indexelt fájl, hash alapokon Berkeley DB támogatás kell a rendszeren ● /etc/postfix/main.cf virtual_maps = /etc/postfix/virtual ● /etc/postfix/virtual valahol.hu postas valahol2.hu postas valahol.hu valahol.hu
regexp ● A kereső tábla reguláris kifejezéseket tartalmaz ● man 5 regexp_table ● /etc/postfix/main.cf header_check=regexp:/etc/postfix/headeer_check.regexp ● /etc/postfix/header_check.regexp /^Subject:.*100\% Free/ REJECT Spamnek minősítve
pcre ● Perl kompatibilis reguláris kifejezések használata ● /etc/postfix/main.cf body_checks=pcre:/etc/postfix/body_checks.pcre ● /etc/postfix/body_checks.pcre /Viagra/ REJECT Visszautasítva /Viiagra/ REJECT Visszautasítva
Támogatott keresőtáblák ● postconf -m ● De függ a forrásból való fordításkor megadott kapcsolóktól ● Egy célra többféle tábla is használható
Postfix MySQL támogatás telepítés ● Fordításkor meg kell adjuk a mysql támogatást ● Debian GNU/Linux rendszeren apt-get install postfix-mysql
MySQL „keresőtábla” előnyei ● Egyszerű karbantartás könnyen írható hozzá webes felület központosítás ● Biztonság
Álnevek MySQL-ben tárolása ● /etc/postfix/main.cf virtual_maps = mysql:/etc/postfix/mysql_aliases.cf
mysql_aliases.cf fájl ● /etc/postfix/mysql_aliases.cf user=maildb password=titok dbname=maildb table=aliases select_field=goto where_field=address hosts=localhost
Létező felhasználó ellenőrzése ● /etc/postfix/main.cf virtual_mailbox_maps= mysql:/etc/postfix/mysql_virt.cf ● /etc/postfix/mysql_virt.cf user=maildb password=titok dbname=maildb table=users select_field=maildir where_field=id host=localhost
Jogosultságok megadása ● /etc/postfix/main.cf virtual_uid_maps=mysql:/etc/postfix/uids.cf ● /etc/postfix/main.cf virtual_gid_maps=mysql:/etc/postfix/gids.cf
uid.cf – gid.cf ● /etc/postfix/uid.cf user=maildb password=titok dbname=maildb table=users select_field=uid where_field=id host=localhost ● /etc/postfix/gid.cf user=maildb password=titok dbname=maildb table=users select_field=gid where_field=id host=localhost
Courier + MySQL ● Debian GNU/Linux rendszeren apt-get install courier-authmysql
Telepítés után ● /usr/lib/courier/authlib/authdaemond.mysql ● /etc/courier/authmysqlrc ● /usr/share/courier/webadmin admin-15mysql.html admin-15mysql.pl
MySQL modul használata ● /etc/courier/authdaemonrc authmodulelist=”authpam authmysql”
MySQL szerver használata ● /etc/courier/authmysqlrc MYSQL_SERVER localhost MYSQL_USERNAME maildb MYSQL_PASSWORD titok MYSQL_PORT 3306 MYSQL_DATABASE maildb MYSQL_USERTABLE users MYSQL_CLEAR_PWFIELD password DEFAULT_DOMAIN valahol.hu
authmysqlrc tovább ● MYSQL_UID_FIELD uid MYSQL_GID_FIELD gid MYSQL_LOGIN_FIELD id MYSQL_HOME home MYSQL_NAME name MYSQL_MAILDIR maildir MYSQL_QUOTA quota
MySQL adatbázis ● apt-get install mysql-server-4.1 ● apt-get install mysql-client-4.1
Adatbázis létrehozása ● mysql -u root -p ● CREATE DATABASE maildb ● use maildb ● CREATE TABLE virtual( address varchar (128), goto varchar (128));
Felhasználó tábla ● CREATE TABLE users( id varchar(128), password varchar(128), uid smallint (10) unsigned, gid smallint (10) unsigned, home varchar (255), name varchar (128), maildir varchar (255));
MySQL felhasználó ● GRANT ALL ON maildb.* TO 'localhost' IDENTIFIED BY 'titok'; ● FLUSH PRIVILEGES;
Felhasználó felvétele ● mysql -u maildb -p ● use maildb ● INSERT INTO maildb VALUES ( 'jozsi1', 'titok', 5000, 5000, '/home/virtual-mail', 'Kiss József', '/home/virtual-mail/jozsi')
Maildir ● maildirmake /home/virtual-mail/jozsi ● chown /home/virtual-mail/joszi ● Ha nem a maildirmake parancsot használtuk a könyvtár létrehozására: chmod 0770 /home/virtual-mail/jozsi
POP3 SSL ● apt-get install courier-pop-ssl
pop3d.pem törlése ● /usr/lib/courier/pop3d.pem egy szimbolikus link
pop3d.cnf ● mcedit /etc/courier/pop3d.cnf
IMAPs ● apt-get install courier-imap-ssl ● mcedit /etc/courier/imapd.cnf ● rm /usr/lib/courier/imapd.pem ● mkimapdcert
Irodalom ● postfix.org ● man postconf ● man 5 cidr_table ●