Message transfer agent: Postfix
Predispozicije i teorijska podloga
Mail poslužitelj koji ćemo konfigurirati sastoji se od četiri komponente:
- Message transfer agent omogućuje prijenos mailova sa jednog računala na drugo po modelu klijent-server, koristi SMTP
- Mail delivery agent vrši dostavu mailova u korisnički sandučić (engl. mailbox)
- POP3 i IMAP poslužitelj koji omogućuje klijentima dohvaćanje mailova
- Spam filter koji filtrira nepoželjne mailove po zadanim kriterijima
Postfix je, kako kažu autori, alternativa popularnom Sendmailu u pokušaju da bude brz, jednostavan za korištenje i siguran agent za prijenos e-mail poruka.
Instalacija Postfixa
Uvjerimo se za početak da MTA nije već instaliran.
$ telnet localhost 25
Tip
Telnet koristimo za pristupanje trenutnom mailserveru da bi potvrdili njegovo postojanje; pritom je localhost je oznaka domaćina, 25 je oznaka vrata na kojima očekujemo mail server -- ukoliko pogledamo popis dobro poznatih vrata primjetit ćemo da za port 25 stoji SMTP.
Ukoliko MTA, već postoji, ispis koji ćemo dobiti je oblika:
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 Ivan-debian.dummy.porta.siemens.net ESMTP Exim 4.72 Sat, 19 Jan 2013 14:22:01 +0100
U ovom slučaju u četvrtoj liniji jasno je vidljivo da je trenutno instaliran Exim
. U nastavku ćemo pretpostaviti da ne postoji instalirani MTA na sustavu.
Postfix instaliramo naredbom
# yum install postfix
Korisniku se nudi nekoliko izbornika u kojima odabiremo neke od predefiniranih konfiguracija, za potrebe ovog rada koristit ćemo predložak "local only". Također je potrebno postaviti "mail-name", odnosno domenu (dio mail adrese iza znaka @). Postavljena vrijednost koju ćemo koristiti je localhost.loc.
Provjerimo uspješnost instalacije sa:
$ telnet localhost 25
ispisuje:
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 Ivan-debian.dummy.porta.siemens.net ESMTP Postfix (Debian/GNU)
gdje sada vidimo Postfix
što govori da je instalacija prošla uspješno. Uz to moguće je provjeriti datoteke u kojima se čuvaju logovi mail servera. datoteke se nalaze u /var/log
, a one koje nas zanimaju su tipa mail.*
, specifično recimo mail.info
.
Ispišimo ju sa:
$ cat /var/log/mail.info
Jan 19 14:56:46 Ivan-debian postfix/master[4817]: daemon started -- version 2.7.1, configuration /etc/postfix
Jan 19 14:56:58 Ivan-debian postfix/smtpd[4875]: connect from localhost[127.0.0.1]
Jan 19 14:57:06 Ivan-debian postfix/smtpd[4875]: disconnect from localhost[127.0.0.1]
Pokušajmo sada poslati testni mail sljedećim slijedom naredbi i teksta. Spajanje na SMTP telnetom:
$ telnet localhost 25
Upišimo sada nekoliko naredbi primajući interaktivno odgovor:
mail from: root@localhost.loc
250 2.1.0 Ok
rcpt to: ivan@localhost.loc
250 2.1.5 Ok
data
354 End data with <CR><LF>.<CR><LF>
Nakon toga pišemo tijelo poruke. Primjerice:
To: ivan@localhost.loc
From: root@localhost.loc
Subject: Naslov
Ovo je tekst poruke
Poruku, kako je navedeno završavamo sa novim retkom i točkom (.).
.
250 2.0.0 Ok: queued as B162E2E0AF
quit
221 2.0.0 Bye
Ukoliko je sve prošlo u redu, možemo provjeriti mailbox tako da kao korisnik ivan
upišemo naredbu:
$ mail
čime bi se trebalo ispisati nešto slično sljedećem tekstu ovisno naravno o samim testnim podacima:
Mail version 8.1.2 01/15/2001. Type ? for help.
"/var/mail/ivan": 1 message 1 new
>N 1 root@localhost.lo Sat Jan 19 16:35 15/543 naslov
&
Ukucavši 1
možemo pročitati taj mail i očekivani ispis je:
Message 1:
From root@localhost.loc Sat Jan 19 16:35:33 2013
X-Original-To: ivan@localhost.loc
To: ivan@localhost.loc
From: root@localhost.loc
Subject: naslov
Date: Sat, 19 Jan 2013 16:34:49 +0100 (CET)
Ovo je tekst poruke
&
Konfiguracija
Osnovna konfiguracija podešena je automatski s obzirom da smo koristili predložak za lokalnu upotrebu. Pogledajmo sada neke od zanimljivih linija u konfiguracijskim datotekama /etc/postfix/main.cf
i /etc/postfix/master.cf
.
U datoteci /etc/postfix/main.cf
imamo redom
myhostname = Ivan-debian
može biti proizvoljno ime, zatim
alias_maps = hash:/etc/aliases
mapa aliasa (alternativnih imena), zatim
alias_database = hash:/etc/aliases
baza aliasa. Aliase koristimo da bi imali nekoliko mogućih naziva za istu mail adresu.
myorigin = /etc/mailname
domena koja se dodaje, zatim
mydestination = localhost.loc, Ivan-debian.dummy.porta.siemens.net, localhost.dummy.porta.siemens.net, localhost
predefinirana odredišta za localhost, može se definirati mnogo aliasa, svi koji su navedeni impliciraju slanje na lokalno računalo, bez prosljeđivanja na neka druga, zatim
relayhost =
autorizirane ne-lokalne domene, zatim
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
autoriziranje na osnovu IP adrese i pripadajuće maske u CIDR notaciji, zatim
mailbox_command = procmail -a "$EXTENSION"
pozivanje procmail servisa i prosljeđivanje parametra mailboxa, zatim
mailbox_size_limit = 0
ograničenje veličine mailboxa, 0 znači neograničeno, zatim
recipient_delimiter = +
znak za odvajanje primaoca.
Mail delivery agent: procmail
Pri instalaciji postfixa automatski se instalira i procmail bez ikakvih konfiguracijskih parametara. Sam sustav radi "out-of-the-box", a za modificiranje konfiguracije prvo je potrebno kreirati same konfiguracijske datoteke.
Author: Ivan Ivakić, Vedran Miletić