Levelezőszerver létrehozása Küldésre Postfix, fogadásra Dovecot, webmailnek Squirrelmail. A /etc/ könyvtár alatti fájlokat root-ként szerkesztjük. A parancsokat simán az ubuntu felhasználóval is végrehajthatjuk. Amikor nem a /etc/ könyvtár alatti fájlokat szerkesztjük célszerű, hogy az ubuntu nevű felhasználó saját könyvtárában legyünk, mert ott biztosan van írási jogunk, létre tudunk hozni fájlokat. Dolgozhatunk végig root felhasználóként is, ebben az esetben az alábbi parancsoknál ne használjuk a sudo-t! Beállítjuk a szerver hosztját, hogy ő is tudja. Lehetőségünk van a /etc/hostname fájlban is megadni, de nem muszáj. Az alábbi sort tesszük inkább a /etc/hosts fájlba: 192.168.0.16 mail.alma.hu alma.hu www.alma.hu Az IP a saját IP-címünk! Cseréljük ki az utolsó részt a megfelelőre! Frissítjük az apt-get letöltési helyekhez kötött adatbázisát: sudo apt-get update Telepítjük a Postfix programot és függőségeit: sudo apt-get install postfix Mindent csak leokézunk, mert a következő parancs úgyis részletesebb beállításokat tesz lehetővé: sudo dpkg-reconfigure postfix Itt az alábbiakat kell beállítani General type of mail configuration: Internet Site System mail name: mail.alma.hu Root and postmaster mail recipient: ubuntu
Other destinations to accept mail for (blank for none): ubuntu, localhost.localdomain, localhost, alma.hu, mail.alma.hu Force synchronous updates on mail queue? Nem Local networks: 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 192.168.0.0/24 Mailbox size limit (bytes ): 0 Local address extension character: + Internet protocols to use: all Ha lefut rendben, akkor az utolsó három sorban leáll és elindul a cucc, és ezt a sorok végén jelzi is. [ OK ] Most a Dovecot SASL segítségével rávesszük a Postfixet, hogy működjék benne az SMTP-AUTH. Az alábbi sorokat a /etc/postfix/main.cf fájl utolsó sora után helyezzük el (Az „smtpd_recipient_restrictions =” után nincs sortörés!): # Configure Postfix for SMTP-AUTH using Dovecot SASL home_mailbox = Maildir/ smtpd_sasl_type = dovecot smtpd_sasl_path = private/auth smtpd_sasl_local_domain = smtpd_sasl_security_options = noanonymous broken_sasl_auth_clients = yes smtpd_sasl_auth_enable = yes smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination smtp_tls_security_level = may smtpd_tls_security_level = may smtp_tls_note_starttls_offer = yes smtpd_tls_loglevel = 1 smtpd_tls_received_header = yes
Most digitális tanúsítványt készítünk a TLS-hez. Jelszóként a szokásosat használjuk. openssl genrsa -des3 -out server.key 2048 openssl rsa -in server.key -out server.key.insecure
mv server.key server.key.secure mv server.key.insecure server.key openssl req -new -key server.key -out server.csr Itt a Country name alatt megadhatjuk, hogy HU, a két következőnél, hogy Budapest, majd az Organization name alatt egy tetszőleges cégnevet állítunk be. A többi paramétert üresen hagyhatjuk. openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt sudo cp server.crt /etc/ssl/certs sudo cp server.key /etc/ssl/private Beállítjuk a tanúsítványok útvonalát: sudo postconf -e 'smtpd_tls_key_file = /etc/ssl/private/server.key' sudo postconf -e 'smtpd_tls_cert_file = /etc/ssl/certs/server.crt' Engedélyezzük az SMTPS-t (465) és a Submission-t (587) a # karakterek törlésével a /etc/postfix/master.cf fájlban (csak ezek a sorok kellenek). submission inet n smtpd -o syslog_name=postfix/submission -o smtpd_tls_security_level=encrypt -o smtpd_sasl_auth_enable=yes -o smtpd_relay_restrictions=permit_sasl_authenticated,reject -o milter_macro_daemon_name=ORIGINATING smtps inet n n smtpd -o syslog_name=postfix/smtps -o smtpd_tls_wrappermode=yes -o smtpd_sasl_auth_enable=yes -o smtpd_relay_restrictions=permit_sasl_authenticated,reject -o milter_macro_daemon_name=ORIGINATING Telepítjük a Dovecot SASL-t. sudo apt-get install dovecot-common Az első kérdésre igennel válaszolunk, a másodiknál a mail.alma.hu-t adjuk meg.
Beállítjuk a Dovecot master konfigurációs fájljában – vagyis a /etc/dovecot/conf.d/10-master.conf-ban – a Postfix felhasználóját és csoportját, valamint a mode utolsó számjegyét 6-ról 0-ra állítjuk, így elvéve a jogokat az idegenektől. Keressük meg a # Postfix smtp-auth sort (95.) és cseréljük az érintett sorokat az alábbira: # Postfix smtp-auth unix_listener /var/spool/postfix/private/auth { mode = 0660 user = postfix group = postfix } Az auth konfigjában – /etc/dovecot/conf.d/10-auth.conf – pedig egészítsük ki a 100. sorban található paraméter plain értékét az alábbi szerint: auth_mechanisms = plain login Indítsuk újra a Postfix és a Dovecot szolgáltatásokat: sudo service postfix restart Két OK-ra végződő sort kell látnunk. sudo service dovecot restart Két információs sort kell látnunk, a második sor végén egy számmal, amely a futó process azonosítója. Teszteljük le a portokat telnet segítségével! Elsőként az SMTP-t: telnet mail.alma.hu smtp Valami ilyesmit fogunk látni: Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. 220 mail.alma.hu ESMTP Postfix (Ubuntu) Ha az utolsó sor nem ilyen, akkor valamit már sikerült elgépelni… Maradjunk a telnet-ben és gépeljük be az alábbi parancsot: ehlo mail.alma.hu
A kimenetben ilyen sorokat is kell kapnunk: 250-STARTTLS 250-AUTH PLAIN LOGIN 250-AUTH=PLAIN LOGIN Megnézhetjük, hogy az 587-es port is jól működik-e. telnet mail.alma.hu 587 Hasonlóan az előző teszthez, az ehlo parancsot is futtathatjuk. Itt az alábbi sor megléte a lényeges. 250-STARTTLS A telnet parancsot a ^] escape karakterrel lehet megszakítani. Magyar billentyűzetről ez elég körülményes, angol kiosztással viszont viszonylag egyszerű (CTRL+ú). Célszerű PuTTY vagy más SSH-kliens használata. A telnetből a close paranccsal léphetünk ki, amint van telnet-promptunk. telnet>close Connection close. ubuntu@ubuntu:~$ Ezzel a Postfix működőképes, következik a Dovecot POP3D és IMAPD telepítése. sudo apt-get install dovecot-imapd dovecot-pop3d A levelek fogadására szolgáló könyvtárat a /etc/dovecot/conf.d/10-mail.conf fájl 30. sorban található mail_location paraméter értékének lecserélésével tudjuk beállítani. Lecserélendő: mail_location = mbox:~/mail:INBOX=/var/mail/%u Új: mail_location = maildir:~/Maildir A POP3 és az SSL Dovecot által használt konfigurációs fájljában most engedélyezünk pár paramétert a sor előli komment eltávolításával.
/etc/dovecot/conf.d/20-pop3.conf (50. sor) pop3_uidl_format = %08Xu%08Xv /etc/dovecot/conf.d/10-ssl.conf (6. sor) ssl = yes Indítsuk újra a Dovecot szolgáltatást: sudo service dovecot restart Teszteljük le a POP3 és IMAP portot az SMTP-nél használt módszerrel (az ehlo nem szükséges)! telnet mail.alma.hu 110 Ilyesmi kimentet kell kapnunk: Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. +OK Dovecot (Ubuntu) ready. Ezt megismételhetjük a 995-ös, a 993-as és a 143-as portoknál is, vagy ellenőrizhetem a megnyitott portokat a netstat segítségével. netstat -nl4 A kimeneten ezeket a sorokat (is) kell látni: Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address tcp 0 0 0.0.0.0:22 0.0.0.0:* tcp 0 0 0.0.0.0:25 0.0.0.0:* tcp 0 0 0.0.0.0:993 0.0.0.0:* tcp 0 0 0.0.0.0:995 0.0.0.0:* tcp 0 0 0.0.0.0:587 0.0.0.0:* tcp 0 0 0.0.0.0:110 0.0.0.0:* tcp 0 0 0.0.0.0:143 0.0.0.0:* Tesztfelhasználó létrehozása: sudo useradd -m bela -s /sbin/nologin
State LISTEN LISTEN LISTEN LISTEN LISTEN LISTEN LISTEN
Jelszó beállítása a tesztfelhasználó számára (kétszer kell begépelni a jelszót!): sudo passwd bela És el is érkeztünk a webmail-program telepítéséhez. Az alábbi parancs az Apache és a PHP csomagokat is feltenné, ha még nem lenne fent valamelyik a gépen. sudo apt-get install squirrelmail A Squirrelmail beállítása sudo squirrelmail-configure Mivel minden be van már jól állítva, így csupán a cégnevet kell bevinnünk. Kétszer is válasszuk az 1-es menüpontot (Organization Preferences » Organization Name)! Gépeljük be a cégnevet (A [SquirrelMail]: után)! Nyomjunk S billentyűt a mentéshez, majd Q-t a kilépéshez! Állítsuk be az Apache-ot a SquirrelMail futtatásához, majd indítsuk újra! sudo cp /etc/squirrelmail/apache.conf /etc/apache2/sitesavailable/squirrelmail.conf (Ez a fenti parancs egy sor, a sites-available szó kötöjellel írandó szóköz nincs!) sudo a2ensite squirrelmail sudo service apache2 restart Elvileg készen is volnánk, de még beállítjuk az aliaszokat is… A /etc/aliases fájlban írjuk be az alábbi sorokat! Majd regisztráljuk! root: ubuntu postmaster: ubuntu sudo newaliases Állítsuk be a Windows hosts fájljában is a mail.alma.hu domain feloldását! Majd akár a Windows egyik böngészőjéből is megnyithatjuk a mail.alma.hu/squirrelmail vagy a 192.168.0.16/squirrelmail címet és beléphetünk a felhasználóinkkal (bela és ubuntu).
További programok telepítése A kéretlen levelek (SPAM) és a vírusok visszaszorítása érdekében további programokat telepítünk, amelyek ezeket a feladatokat viszonylag jól ellátják. Jelenlegi ismereteink szerint tökéletes megoldás ugyanis nem létezik. Ha nem az előző telepítési folyamattal azonos időpontban jutottunk idáig, akkor ismét érdemes lesz a telepítést megelőzően az apt adatbázisát frissíteni. sudo apt-get update Telepítjük az Amavis-new, a Spamassassin és a Clamav programot és ezek függőségeit: sudo apt-get install amavisd-new spamassassin clamav-daemon Jöjjön pár olyan csomag, amely a kéretlen levelek azonosítását fogja hatékonyabbá tenni: sudo apt-get install libnet-dns-perl libmail-spf-perl pyzor razor A víruskeresés tömörített fájlokban az alábbi csomagok telepítésével oldható meg, ezért ezeket is feltesszük: sudo apt-get install arj bzip2 cabextract cpio file gzip lha lhasa nomarch pax rar unrar unzip unzoo zip zoo (Figyelem! Ez a fenti parancs is egy sor, csak nem fért el!) Előfordulhat, hogy az általunk használt Ubuntu-változat nem tartalmazza az lha vagy az unzoo csomagokat, de ez nem okoz különösebb fennakadást, folytassuk csak a telepítést… A Clamav beállításait testre szabhatjuk a /etc/clamav alatt, erre most nem térünk ki. A Clamav esetében viszont egy fontos beállítás, hogy e program és az Amavis felhasználóit egymás csoportjába fel kell venni. (Így jutnak megfelelő jogosultságok birtokába ugyanis.) sudo adduser clamav amavis sudo adduser amavis clamav A feltelepített Spamassassin nem fog futni, mert nem szükséges. Helyette az Amavis fogja használni az általa telepített könyvtárakat a saját Spamassassinjával. A fentiek miatt a Spamassassin-t konfigurálni teljesen felesleges. Az /etc/spamassassin változtatása így értelmetlen…
A razor és pyzor engedélyezése a használatukhoz szükségszerű az alábbi módon. Konfigurálni nem szükséges a két csomagot. Az Amavis felhasználójára váltunk (root-ként érdemes futtatni): su - amavis -s /bin/bash Amavis-ként az alábbi parancsokat adjuk ki. razor-admin -create razor-admin -register pyzor discover A CTRL+d kombinációval visszalépünk az eredeti felhasználóra. Az Amavis által végzett kéretlenlevél-szűrés és vírusfelismerés aktiválásához szerkesszük meg a /etc/amavis/conf.d/15-content_filter_mode fájlt. Szerkesztés után kb. így fest a tartalom (13, 14, 24 és 25. sor): use strict; # You can modify this file to re-enable SPAM checking through spamassassin # and to re-enable antivirus checking. # # Default antivirus checking mode # Uncomment the two lines below to enable it # @bypass_virus_checks_maps = ( \%bypass_virus_checks, \@bypass_virus_checks_acl, \$bypass_virus_checks_re); # # Default SPAM checking mode # Uncomment the two lines below to enable it # @bypass_spam_checks_maps = ( \%bypass_spam_checks, \@bypass_spam_checks_acl, \$bypass_spam_checks_re); 1;
# insure a defined return
Indítsuk újra az Amavis-t! sudo /etc/init.d/amavis restart
A következőkben az Amavis-t, mint tartalomszűrő eszközt integráljuk a Postfixbe az Amavis konfigurációs fájljainak módosításával.. A /etc/postfix/main.cf fájl végére illesszük be az alábbi sorokat! # Amavis integration content_filter = smtp-amavis:[127.0.0.1]:10024 Ezt a műveletet elvégezhatjük az alábbi paranccsal is, de az nem helyezi el a megjegyzést is a fájlban, így nem lesz később olyan szépen áttekinthető az. sudo postconf -e "content_filter = smtp-amavis:[127.0.0.1]:10024" A /etc/postfix/master.cf fájl végére pedig ezek a sorok kerüljenek: # Amavis content filter smtp-amavis unix -o smtp_data_done_timeout=1200 -o smtp_send_xforward_command=yes -o disable_dns_lookups=yes -o max_use=20
-
2
smtp
127.0.0.1:10025 inet n smtpd -o content_filter= -o local_recipient_maps= -o relay_recipient_maps= -o smtpd_restriction_classes= -o smtpd_delay_reject=no -o smtpd_client_restrictions=permit_mynetworks,reject -o smtpd_helo_restrictions= -o smtpd_sender_restrictions= -o smtpd_recipient_restrictions=permit_mynetworks,reject -o smtpd_data_restrictions=reject_unauth_pipelining -o smtpd_end_of_data_restrictions= -o mynetworks=127.0.0.0/8 -o smtpd_error_sleep_time=0 -o smtpd_soft_error_limit=1001 -o smtpd_hard_error_limit=1000 -o smtpd_client_connection_count_limit=0 -o smtpd_client_connection_rate_limit=0 -o receive_override_options=no_header_body_checks,no_unknown_recipient_checks
Figyeljünk a –o kezdetű sorok behúzására! Az utolsó sort ne törjük meg, mint a fenti kódban látszik, hanem az a –o után legyen! Ugyanennek a fájlnak a pickup szolgáltatást beállító sora alá illesszük be az alábbi két sort: -o content_filter= -o receive_override_options=no_header_body_checks
Ez a hibaüzeneteket meg fogja védeni a kéretlennek való minősítéstől.
Indítsuk újra a Postfix-et: sudo /etc/init.d/postfix reload Már működik is a vírus és kéretlen levél elleni védelmünk! J Teszteljük le az Amavis SMTP portját telnet segítségével! telnet localhost 10024 Ezt kell látnunk a telnet-parancs kiadása után: Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. 220 [127.0.0.1] ESMTP amavisd-new service ready A telnetből a fent már ismertetett módon lépünk ki. (Ha az Ubuntu-t nem angol kiosztással használjuk, akkor direktben elég körülményes lesz kilépni a telnetből, mert az escape karaktert magyar billentyűzetről nem tudjuk begépelni!) A leveleink lejlécébe a szerver ezentúl egy rakat új információt helyez el, amelyek a víruskeresés és a kéretlenlevél-szűrés tényét és eredményét közlik. Valami ilyesmit látunk: X-Spam-Level: X-Virus-Scanned: Debian amavisd-new at example.com X-Spam-Status: No, hits=-2.3 tagged_above=-1000.0 required=5.0 tests=AWL, BAYES_00 X-Spam-Level: Ha hibákat akarunk keresni, akkor érdemes a leveleket nem kidobálni, hanem beengedni azokat is, amelyeket a rendszer károsnak ítélt. Erre egy mód, ha az $sa_tag_level változót -999 értékre állítjuk be a /etc/amavis/conf.d/20-debian_defaults fájlban. Ne felejtsük így! Ha újraindítanánk a szolgáltatásokat, akkor érdemes az alábbi sorrendben elvégezni a feladatot: sudo /etc/init.d/postfix restart sudo /etc/init.d/spamassassin restart sudo /etc/init.d/clamav-daemon restart sudo /etc/init.d/amavis restart
Ha csupán az Amavis-t akarjuk újraindítani, de a Postfix Amavis-szal kapcsolatos konfigurációs fájljait is megváltoztattuk, akkor az alábbi parancsokat használjuk: sudo /etc/init.d/amavis restart sudo postfix reload A működésről visszajelzéseket kapunk a /var/log/mail.log fájl elemzésével. A naplózási szint állításával az információk mennyiségét szabályozhatjuk. Óvatosan bánjuk ezzel, mert igen terebélyesre is növelhetjük a fájlt!
További információk Az alábbi hivatkozásokon főleg angol nyelvű segítséget kapunk, de azért akad néhány magyar is. Postfix dokumentáció • http://www.postfix.org/documentation.html Postfix + Amavis • https://www.ijs.si/software/amavisd/README.postfix.txt Amavis • https://www.ijs.si/software/amavisd/ • https://www.ijs.si/software/amavisd/amavisd-new-docs.html • http://www.ijs.si/software/amavisd/amavisd-new-magdeburg-20050519.pdf Ubuntu • https://help.ubuntu.com/ Postfix és linuxos levelezés egyszerűen (több, mit 10 éves cucc, de az alapokhoz tökéletes) • http://hirmagazin.sulinet.hu/hu/pedagogia/levelezzunk-exim • http://hirmagazin.sulinet.hu/hu/pedagogia/levelezzunk-ii-a-postfix • http://hirmagazin.sulinet.hu/hu/pedagogia/levelezzunk-iii-a-postfixkonfiguralasa • http://hirmagazin.sulinet.hu/hu/pedagogia/levelezzunk-iv-virusszures-apostfix-szel • http://hirmagazin.sulinet.hu/hu/pedagogia/levelezzunk-v-tartalomszures-apostfix-segitsegevel • http://hirmagazin.sulinet.hu/hu/pedagogia/kiegeszites-a-levelezzunk-vtartalomszures-a-postfix-segitsegevel-cikkhez