Agora
Media
Libraria Byblos



AgoraNews  





PC Magazine Ro  




NET Report   




Ginfo   




agora ON line   





PC Concrete   





Liste de discuţii   




Cartea de oaspeţi   




Mesaje   





Agora   





Clic aici
PC Magazine





Soluţii - PC Magazine Romania, August 2004

LINUX - Farul de la capătul lumii

Răzvan Sandu

Scot instrumentul din teacă şi îl ajustez încetişor, focalizându-l pe dantela de grinzi arcuite în depărtare.

Maşinăria este un binoclu enorm, de marină, pe care se mai pot citi încă, şters, însemnele militare germane şi sigla fabricantului - "Zeiss, 1939". Peste faţa argintie a fluviului, dorobanţul de bronz păzeşte, de mai bine de o sută de ani, opera lui Anghel Saligny. Sentimentul acesta neclar trebuie să-l fi avut şi ofiţerul navigant neamţ, când va fi potrivit, pentru prima dată, cu mâna înmănuşată în piele neagră, lentilele gradate mărunt asupra "obiectivului" - ultim avanpost al civilizaţiei inginereşti a Europei, în pustietatea calcaroasă de lângă Pontul Euxin…

Astăzi, prieteni, înarmat cu un router Linux pe bancheta din spate a maşinii, am pornit către Constanţa. E vară, dimineaţă, soare - şi aici, în apropierea Dunării, mă simt de parcă aş instala primul cablu de comunicaţie transatlantic…

Nepotul lui Morse

La ultima noastră întâlnire, am avut ocazia să vă prezint, mai în detaliu, modul cum mesajele de poştă electronică ajung în mailbox-urile noastre. Vă spuneam atunci că "vrăjitorul din spatele scenei", care transportă informaţia, este programul MTA (fie el sendmail, postfix, exim sau altul), iar protocolul pe care calculatoarele îl "vorbesc" este Simple Mail Transfer Protocol (SMTP). Voi adăuga acum că detaliile acestui protocol sunt precizate în documentele Request For Comments (RFC) nr. 821 şi 822 (care datează din vara lui 1982).

Rolul protocolului SMTP se "termină", însă, atunci când mesajul care vă este destinat a ajuns în mailbox. Dacă staţia voastră de lucru este o maşină (Unix?) cu conectare permanentă la Internet, atunci mesajul poate ajunge direct la voi. Dacă nu, el va "zăbovi" în căsuţa de mail pe care ISP-ul vostru v-o oferă, pe serverul său, până în momentul în care staţia voastră se va conecta la Internet şi va "lua" mesajul de acolo. Acesta este cazul utilizatorilor dial-up, majoritari încă - din păcate - în România.

Protocolul folosit pentru a descărca mesajul e-mail pe staţie este mult utilizatul POP3 (Post Office Protocol, versiunea 3). O altă alternativă o constituie folosirea protocolului IMAP (Internet Mail Administration Protocol), care permite administrarea "la distanţă" a mesajelor primite, direct pe serverul ISP-ului, fără a le mai descărca de acolo (citire, ştergere etc.). Deşi prezintă unele avantaje evidente, protocolul IMAP nu este folosit pe scară prea largă pe serverele publice - utilizatorii vor avea tendinţa să "ţină pe server" mesajele primite, supraîncărcându-l.

Pentru a se putea "ridica" poşta prin protocolul POP3 sau IMAP, este necesar ca serverul de e-mail (care "stochează" mesajele primite de utilizatori, ce sosesc prin SMTP) să ruleze programe-daemon cum ar fi imapd., Courier-imapd sau dovecot. Tradiţional, daemonul de POP3 este Courier, dar dacă rulaţi Fedora Core 2, soluţia cea mai modernă şi la îndemână se dovedeşte dovecot (POP3 şi IMAP securizate).

Prăjitorul de pâine

Până când nu am citit documentaţiile postfix si dovecot, nu am ştiut ce ascunde noţiunea de POP3 toaster J?! Voi ştiaţi, prieteni? Da, este "bătrânul" server de mail, clasic pentru utilizatorii de dial-up, care rulează atât servicii SMTP cât şi POP3… Mesajele e-mail intră şi ies din el tot timpul, ca puricii - cum sar, vesele, dimineaţa, feliile de pâine din prăjitorul meu electric de acasă…

Configurarea serverului dovecot se face cu ajutorul fişierului /etc/dovecot.conf, în care trebuie să setaţi/modificaţi cel puţin următorii parametri:

protocols = imap imaps pop3 pop3s
login = pop3
first_valid _uid =UID
last_valid_uid=UID
first_valid _gid =UID
last_valid_gid=UID
default_mail_env = maildir:/home/posta/domains/%d/%n
auth_mechanisms = plain
auth_userdb = passwd-file /home/posta/utilizatori.txt
auth_passdb = passwd-file /home/posta/utilizatori.txt

În cele de mai sus, valoarea numerică UID este un utilizator non-root (numit "posta") care deţine fişierul cu useri şi parole de e-mail /home/posta/utilizatori.txt. Parametrul default_mail_env conţine calea către mailbox-urile în care serverul postfix "depune" mesajele sosite pentru utilizatori (să zicem /home/posta/domains/example.com/prenume.nume) şi precizează că aceste mailbox-uri sunt directoare (stil maildir).

Cât despre fişierul utilizatori.txt, el conţine parolele utilizatorilor de mail, în linii de forma:

prenume.nume.petre@example.com:
{PLAIN}supersecret:UID:UID:Prenume
Nume:/home/vpopmail/domains/
example.com/prenume.nume:/sbin/nologin

Aici "supersecret" este parola în clar, iar UID este userid-ul utilizatorului "posta". Desigur, pe nici un server de e-mail "serios" nu vă recomand stocarea "în clar" a parolelor utilizatorilor, din motive de securitate, dar am procedat aşa de dragul simplificării exemplului.

După modificarea fişierelor /home/posta/utilizatori.txt sau /etc/dovecot.conf trebuie să reporniţi serviciul dovecot:

[root@mail root]#service dovecot restart

Bineînţeles, acesta trebuie să fie permanent pornit, la bootarea calculatorului (verificaţi cu utilitarul ntsysv).

Culegătorul

Aşa cum spuneam mai sus, pentru maşinile care nu au conectare permanentă la Internet, trebuie să existe un program care să "culeagă" periodic mesajele de pe serverul ISP-ului, folosind POP3. Acest program, aproape universal folosit, este fetchmail.

Fetchmail este controlat de un fişier de configurare propriu utilizatorului, anume .fetchmailrc, aflat în home-directory-ul acestuia (vă reamintesc că în Unix fişierele a căror denumire încep cu punct sunt fişiere ascunse, adică fişiere care nu sunt listate la comanda ls).

Cred că cel mai bine puteţi înţelege structura unui fişier .fetchmailrc folosind un exemplu:

set daemon 600;
poll mail.example.com proto pop3
user razvan.popescu@example.com
there is rpopescu here password
crocodile;
poll mail.example.net proto pop3
user rpopescu there is rpopescu here;
user test there is rpopescu here;
user freecomputers there is rpopescu here;
poll mail.dot.net proto pop3
user rpopescu there is otheruser here;

Prima linie arată că staţia mea interoghează serverul de mail al ISP-ului la fiecare 10 minute. Mai jos sunt listate toate serverele de e-mail pe care le "întreb", pe rând, împreună cu numele de utilizator pe care le folosesc pe fiecare server în parte. Observaţi că în acest fişier se realizează şi corespondenţa între numele meu de utilizator local (pe staţia mea de lucru) şi numele folosite pe diversele servere (construcţiile there/here).

Ar mai fi de observat şi faptul că în linia a treia am folosit o opţiune imprudentă din punct de vedere al securităţii: parola "crocodile" apare "în clar" în fişierul .fetchmailrc. În toate celelalte cazuri, parolele îmi vor fi cerute la fiecare reiniţializare a programului fetchmail.

O soluţie industrială

Pentru a completa tabloul serverului de mail, de care ne ocupăm de două numere încoace, mai lipseşte un singur element: o soluţie scalabilă pentru administrarea userilor virtuali definiţi pe server (creare, ştergere, modificare parole, limitarea cotei de disc, etc).

Dacă folosiţi serverul de mail qmail, o asemenea soluţie există şi se numeşte vpopmail (http://www.inter7/vpopmail). Din păcate, pentru serverul de mail Postfix şi pentru dovecot nu am reuşit să identific încă programe la fel de "mature" de gestiune a utilizatorilor. O soluţie ar fi interfaţa Web propusă de PostfixAdmin (http://high5.net/postfixadmin) sau modulul (limitat) existent în WebMin (http://www.webmin.com), dar eu devin irascibil, când sunt obligat să încarc interfaţa grafică X numai pentru a defini un utilizator… J! În plus, sunt necesare Perl, php şi alte "bunătăţi", iar baza de date cu utilizatori trebuie să se găsească sub forma unei tabele Mysql şi nu sub forma unui simplu fişier text. Din nou, eu devin nervos…

De curând, am văzut şi soluţia propusă de PostfixManager (http://genco.gen.tc/postfix_virtual.php) dar, din câte înţeleg, sunt obligat să folosesc Courier şi nu dovecot. E adevărat, nu am avut timp să o testez. Poate unul dintre voi să mă ajute?

În loc de încheiere

Sper că, în sfârşit, am reuşit să vă creionez tabloul complet al unui server e-mail Linux, bazat pe Postfix. Aceasta mi s-a părut, la ora actuală, soluţia practică cea mai simplă pentru a crea o asemenea maşină. Vă cer scuze, trebuie să plec chiar acum J - dar aştept părerile şi întrebările voastre cu mare plăcere, cât e vacanţa de lungă… Mă găsiţi, ca de obicei, la www.linuxwill.go.ro şi linuxwill@go.ro !


PC Magazine Ro | CD ROM | Redactia | Abonamente | CautareArhive

Copyright © 1999-2004 Agora Media.

webmaster@pcmagazine.ro

LG - Life´s Good

www.agora.ro

deltafri

www.agora.ro

www.agora.ro

www.agora.ro