mail_posluzitelj

29
Mail poslužitelji U ovom poglavlju opisana je instalacija i konfiguracija Postfix mail poslužitelja, koji se zbog jednostavnosti instalacije i konfiguracije pokazao kao najbolji izbor za SOHO korisnike. Postfix je potpuno kompatibilan sa popularnim Sendmail poslužiteljem, pa će svi programi koji za svoj rad zahtijevaju Sendmail raditi bez problema. Kao dodatak opisan je i program za management mailing lista pod nazivom Sympa, koji dolazi kao standardan paket u obje testirane distribucije (Debian i Mandrake) i za konfiguraciju koristi web sučelje, što olakšava kreiranje mailing lista i održavanje samog programa. 1. Sendmail 1.1. Uvod Kada se u današnje vrijeme govori o mail poslužiteljima (ili kako se oni čće nazivaju MTA agentima - Message Transfer Agent) za Linux i Unix operativne sustave, prvo mjesto definitivno je rezervirano za Sendmail programski paket (www.sendmail.org ). Naime, radi se o vrlo moćnom, fleksibilnom i konfigurabilnom programu s kojim je moguće napraviti konfiguraciju za veliku većinu svih potreba za e-mailom. O Sendmailu se šire glasine da je težak za konfiguraciju i nesiguran. Premda je u prošlosti imao niz sigurnosnih propusta, budući da se radi o programu sa vrlo starim korijenima iz doba kada je Internet bio skoro isključivo povlastica akademskih sredina u Americi i Europi, te je u povjerljivoj atmosferi sigurnost u današnjem smislu bila gotovo nepotrebna, danas su ti propusti u velikoj mjeri uklonjeni. Bilo kako bilo, Internet se proširio i postao globalna atrakcija, pa se i Sendmail kao takav morao mijenjati. Moderne verzije Sendmaila su prilagođene sigurnosti i vrlo su moćne u obradi velikog broja e-mailova u kratkom vremenu. Njegov konfiguracijski sistem je također postao nešto jednostavniji i sastoji se od m4 makroa koji generiraju njegov kompleksni konfiguracijski file /etc/mail/sendmail.cf. (biti će opisano u nastavku). Na samom početku potrebno je odmah naglasiti razliku između MTA (Message Transfer Agent) programa kao što je Sendmail, te klijent programa pomoću kojih korisnici dolaze do svojih e-mail poruka (npr. Eudora ili Outlook). Zadatak Sendmail poslužitelja je (između brojnih drugih) da putem SMTP ili ESMTP protokola razgovara sa drugim mail poslužiteljima (preko TCP 25 porta), te da na temelju primljenih poruka njih usmjerava drugom poslužitelju ili da ih proslijedi lokalnom LDA (Local Delivery Agent) agentu, koji će primljenu poruku pohraniti u korisnikov mailbox. Ovisno o tome za koga je poruka namijenjena Sendmail će obaviti potrebne radnje, kako bi se omogućilo uspješno slanje poruke. Sendmail bi se u tom kontekstu mogao opisati kao mrežni usmjerivač e-mail prometa (engl. router) Ovdje treba uočiti da sam Sendmail ne dostavlja e-mail poruke direktno u korisnikov mailbox već u tu svrhu poziva LDA (Local Delivery Agent) agent program, koji će obaviti tu zadaću ukoliko je e-mail poruka namijenjena za

Upload: api-3759825

Post on 07-Jun-2015

79 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: mail_posluzitelj

Mail poslužitelji U ovom poglavlju opisana je instalacija i konfiguracija Postfix mail poslužitelja,koji se zbog jednostavnosti instalacije i konfiguracije pokazao kao najbolji izbor za SOHO korisnike. Postfix je potpuno kompatibilan sa popularnim Sendmail poslužiteljem, pa će svi programi koji za svoj rad zahtijevaju Sendmail raditi bez problema. Kao dodatak opisan je i program za management mailing lista pod nazivom Sympa, koji dolazi kao standardan paket u obje testirane distribucije (Debian i Mandrake) i za konfiguraciju koristi web sučelje, što olakšava kreiranje mailing lista i održavanje samog programa.

1. Sendmail

1.1. Uvod

Kada se u današnje vrijeme govori o mail poslužiteljima (ili kako se oni češće nazivaju MTA agentima - Message Transfer Agent) za Linux i Unix operativne sustave, prvo mjesto definitivno je rezervirano za Sendmail programski paket (www.sendmail.org). Naime, radi se o vrlo moćnom, fleksibilnom i konfigurabilnom programu s kojim je moguće napraviti konfiguraciju za veliku većinu svih potreba za e-mailom. O Sendmailu se šire glasine da je težak za konfiguraciju i nesiguran. Premda je u prošlosti imao niz sigurnosnih propusta, budući da se radi o programu sa vrlo starim korijenima iz doba kada je Internet bio skoro isključivo povlastica akademskih sredina u Americi i Europi, te je u povjerljivoj atmosferi sigurnost u današnjem smislu bila gotovo nepotrebna, danas su ti propusti u velikoj mjeri uklonjeni. Bilo kako bilo, Internet se proširio i postao globalna atrakcija, pa se i Sendmail kao takav morao mijenjati. Moderne verzije Sendmaila su prilagođene sigurnosti i vrlo su moćne u obradi velikog broja e-mailova u kratkom vremenu. Njegov konfiguracijski sistem je također postao nešto jednostavniji i sastoji se od m4 makroa koji generiraju njegov kompleksni konfiguracijski file /etc/mail/sendmail.cf. (biti će opisano u nastavku). Na samom početku potrebno je odmah naglasiti razliku između MTA (Message Transfer Agent) programa kao što je Sendmail, te klijent programa pomoću kojih korisnici dolaze do svojih e-mail poruka (npr. Eudora ili Outlook). Zadatak Sendmail poslužitelja je (između brojnih drugih) da putem SMTP ili ESMTP protokola razgovara sa drugim mail poslužiteljima (preko TCP 25 porta), te da na temelju primljenih poruka njih usmjerava drugom poslužitelju ili da ih proslijedi lokalnom LDA (Local Delivery Agent) agentu, koji će primljenu poruku pohraniti u korisnikov mailbox. Ovisno o tome za koga je poruka namijenjena Sendmail će obaviti potrebne radnje, kako bi se omogućilo uspješno slanje poruke. Sendmail bi se u tom kontekstu mogao opisati kao mrežni usmjerivač e-mail prometa (engl. router) Ovdje treba uočiti da sam Sendmail ne dostavlja e-mail poruke direktno u korisnikov mailbox već u tu svrhu poziva LDA (Local Delivery Agent) agent program, koji će obaviti tu zadaću ukoliko je e-mail poruka namijenjena za

Page 2: mail_posluzitelj

lokalnog korisnika. Neki poznatiji LDA agenti za Linux su bin-mail, procmail, mail.local, deliver programski paketi. Dobavljanje e-mail poruke i njezino prikazivanje korisniku zadaća je mail klijent programa, koji će putem IMAP4 ili POP3 protokola obaviti taj zadatak. Sendmail posjeduje i brojne dodatne mogućnosti kao što su razna filtriranja pomoću zaglavlja poruke, vrste i izvora konekcije te drugih podataka. No, možda najvažnije dodatno svojstvo ovog programa je tzv. prepisivanje adrese ili engl. address rewriting. Radi se o generičkom procesu pomoću kojega je moguće mijenjati pošiljateljevu ili primateljevu adresu u značenje ili oblik kojije prikladan i poželjan za neku Internet stranicu, LDA, ili osobu.

1.2. Prevođenje Sendmaila

Prevođenje Sendmail programa kako ćemo vidjeti nije toliko jednostavan proces, kao što je to sa većinom ostalih Linux programskih paketa, te se stoga preporučuje određeno iskustvo osobe koja obavlja sam postupak instalacije. Naime, razlog tomu je kompleksnost i mnoštvo opcija koje ovaj program nudi, te se upravo iz tog razloga preporučuje dodatno informiranje o ovom postupku prije nego što se sa njim započne. Nakon što je dobavljen programski kod sendmail.8.12.0.tar.gz programskog paketa (najnovija inačica), isti je potrebno otpakirati u neki od direktorija, npr. /usr/src. Postupak je slijedeći:

Nakon toga trebali biste dobiti direktorij sendmail-8.12.0. Potrebno je uči u njega te odmah pročitati sendmail/README i devtools/README datoteke. One posjeduju vrijedne informacije o opcijama koje možete upotrijebiti prilikom kompilacije, i mogu uštedjeti brojne probleme koje mogu nastati tijekom prevođenja i instalacije ovog programskog paketa. Ukratko potrebno je kreirati datoteku site.config.m4 u pod direktoriju devtools/Site. Ovdje je dan primjer site.config.m4 datoteke koju će proces prevođenja Sendmail programskog paketa čitati:

gzip -dc sendmail.8.12.0.tar.gz | tar xf -

dnl define(`confBLDVARIANT', `OPTIMIZED') define(`confCC', `gcc') define(`confOPTIMIZE', `-O2 -march=i686 -mcpu=i686 -ffast-math -fforce-mem -fthread-jumps -funroll-loops -fno-strength-reduce') define(`confINCDIRS', `-I/usr/cyrus/include -I/usr/local/include') define(`confLIBDIR',`/usr/local/lib/sendmail') define(`confLIBDIRS',`-L/usr/cyrus/lib -L/usr/local/lib') define(`confLDOPTS', `-Wl,-rpath /usr/cyrus/lib') define(`conf_sendmail_LIBS',`-lresolv -lsasl -lldap -llber -lwrap -lssl -lcrypto -ldb -lhesiod') define(`conf_libsm_LIBS', `-lldap -llber') define(`conf_libsm_ENVDEF', `-D_LDAP_EXAMPLE_') define(`conf_libsmdb_LIBS', `-ldb') define(`confLIBGRP',`wheel') define(`confLIBMODE',`444') define(`confLIBOWN',`root')

Page 3: mail_posluzitelj

Nakon toga potrebno je pomoću adduser i adgroup komandi dodati novo korisničko ime smmsp, te novu korisničku grupu smmsp sa ograničenim ovlastima (moguće je i dodavanje iz grafičkog sučelja). Korisničku ljusku dodanih korisnika (engl. shell) poželjno je staviti /bin/false, a home direktorij /dev/null. Nakon toga potrebno je pokrenuti skriptu ./Build nakon što se nalazite u vršnom direktoriju sendmail-8.12.0 programskog paketa. Na kraju procesa postojat će pod direktorij obj-Linux-2.4.X.iX86 u kojemu ćese nalaziti binarna verzija sendmail programa, te prateći manji programi i biblioteke. Nema potrebe ulaziti u taj direktorij, već je potrebno pokrenuti Build skriptu sa argumentom :

To će instalirati program na pravilna mjesta ovisno o tipu operacijskog sustava (sendmail će biti u /usr/sbin na Linuxu). Potrebno je još prekopirati direktorij doc i cf sa cijelim sadržajem u recimo /usr/share/sendmail, naredbom

Ovdje je opisan osnovni instalacijski postupak u slučaju da se sendmail pokušava instalirati iz paketa koji ne dolazi u samoj distribuciji. Može se primjetiti da ovaj postupak nije nimalo jednostavan. Ukoliko Sendmail instalirate iz .deb paketa u Debian distribuciji, ovaj postupak je jednostavniji zato što vas tokom instalacije program sam vodi kroz ovaj inačeprilično kompleksan konfiguracijski postupak. Slično je i sa Mandrake distribucijom (RPM paketi) gdje se tokom instalacije generiraju inicijalne

define(`confINCGRP', `wheel') define(`confINCMODE',`444') define(`confINCOWN',`root') define(`confINSTALL_RAWMAN', `True') define(`confMANGRP',`wheel') define(`confMANMODE',`444') define(`confMANOWN',`root') define(`confINSTALL_RAWMAN', `True') define(`confMAPDEF',`-DNEWDB -DMAP_REGEX') define(`confNO_STATISTICS_INSTALL', `True') APPENDDEF(`conf_libsm_ENVDEF', `-DLDAPMAP -DSM_CONF_SHM') APPENDDEF(`conf_sendmail_ENVDEF', `-DSASL -DLDAPMAP -DNIS -D_FFR_DAEMON_NETUNIX=1 -DMILTER -DNISPLUS -DTCPWRAPPERS') APPENDDEF(`conf_sendmail_ENVDEF', `-D_FFR_CONTROL_MSTAT= -D_LDAP_EXAMPLE_ -DSTARTTLS -DDNSMAP -DSM_CONF_SHM -DIP_SRCROUTE -DNETINET6') APPENDDEF(`conf_sendmail_ENVDEF', `-D_FFR_REDIRECTEMPTY=1 -D_FFR_DAEMON_NETUNIX -D_FFR_SMTP_SSL') APPENDDEF(`confENVDEF', `-DSM_OMIT_BOGUS_WARNINGS')

install - `./Build install'

mkdir /usr/share/sendmail cp -a cf doc /usr/share/sendmail

Page 4: mail_posluzitelj

postavke. Naravno, tu je neizbježni Linuxconf koji postoji u obje distribucije i koji poprilično olakšava konfiguraciju Sendmail-a (sekcija Networking->Server Tasks->Mail Transfer Agent). Naravno, treba napomenuti da se ovakvim postupkom instalacije ne mogu iskoristiti sve mogućnosti koje ovaj program inače nudi, što može u određenoj mjeri umanjiti njegov značaj.

1.3. Konfiguracija Sendmaila

Kako bi se omogućilo funkcioniranje sendmail programskog paketa, potrebno jekao i kod većine drugih programa editirati njegovu konfiguracijsku datoteku /etc/sendmail.cf. No, s obzirom na količinu parametara koje sendmail čita prilikom pokretanja ta datoteka je prilagođena računalu, a prilično nerazumljiva čovjeku. Stoga zlatno pravilo glasi :

NEMOJTE RUČNO UREĐIVATI sendmail.cf DATOTEKU!

To je namijenjeno samo za iskusne stručnjake i one koji znaju što rade. Konfiguracija sendmail.cf datoteke se radi pomoću programa m4 koji standardno dolazi sa velikom većinom UNIX instalacija, a pogotovo na Linuxu. U tu svrhu potrebno je uči u direktorij /usr/share/sendmail/cf/cf te načiniti svoj "mc" file sa m4 makroima koji će generirati odgovarajuću sendmail.cf datoteku. Ovdje je dan primjer jedne takve prosječno složene konfiguracijske datoteke, kako bi se uočilo mnoštvo opcija, te njihova kompleksnost:

----------------------------------------------------------------------------------------------- dnl divert(-1) # # Copyright (c) 1998, 1999 Sendmail, Inc. and its suppliers. # All rights reserved. # Copyright (c) 1983 Eric P. Allman. All rights reserved. # Copyright (c) 1988, 1993 # The Regents of the University of California. All rights reserved.# # By using this file, you agree to the terms and conditions set # forth in the LICENSE file which can be found at the top level of # the sendmail distribution. # # divert(0) include(`../m4/cf.m4')dnl VERSIONID(`$Id: point.mc,v 7.0.4 2001/05/08 21:02:14 mvz Exp $')dnlOSTYPE(`linux')dnl undefine(`confCR_FILE')dnl define(`CLASS_DB', `MAIL_SETTINGS_DIR`'classes')dnl define(`CERT_DIR', `MAIL_SETTINGS_DIR`'Cert')dnl

Page 5: mail_posluzitelj

define(`QUEUE_DIR', `/var/spool/mqueue')dnl define(`confSERVICE_SWITCH_FILE', `MAIL_SETTINGS_DIR`'service.switchdefine(`confCW_FILE', `localhostnames@hash:CLASS_DB')dnl define(`confCT_FILE', `trustedusers@hash:CLASS_DB')dnl define(`confHOST_STATUS_DIRECTORY', `.hoststat')dnl define(`confMCI_CACHE_SIZE', `2')dnl define(`confMAX_MESSAGE_SIZE', `26214400')dnl define(`confLOG_LEVEL', `15')dnl define(`confDEF_USER_ID',``8:12'')dnl define(`confTO_CONNECT', `1m')dnl define(`confTRY_NULL_MX_LIST', `true')dnl define(`confMAX_HOP', `20')dnl define(`confMAX_QUEUE_CHILDREN', `100')dnl define(`confMAX_RUNNERS_PER_QUEUE', `25')dnl define(`confMAX_RCPTS_PER_MESSAGE', `100')dnl define(`confNICE_QUEUE_RUN', `12')dnl define(`confBAD_RCPT_THROTTLE' `3')dnl define(`confDELIVER_BY_MIN', `4m')dnl define(`confAUTH_OPTIONS', `A,y')dnl define(`confSHARED_MEMORY_KEY', `1024')dnl define(`confSPLIT_ACROSS_QUEUEGROUPS', `True')dnl define(`confTO_QUEUERETURN', `7d')dnl define(`confTO_QUEUEWARN', `2d')dnl define(`confSINGLE_LINE_FROM_HEADER', `True')dnl define(`confPROCESS_TITLE_PREFIX', `$w')dnl define(`confCACERT_PATH', `CERT_DIR')dnl define(`confCACERT', `CERT_DIR/CA.pem')dnl define(`confSERVER_CERT', `CERT_DIR/cert.pem')dnl define(`confSERVER_KEY', `CERT_DIR/privkey.pem')dnl define(`confCLIENT_CERT', `CERT_DIR/cert.pem')dnl define(`confCLIENT_KEY', `CERT_DIR/privkey.pem')dnl define(`confCF_VERSION', `The Original Distribution')dnl define(`confPRIVACY_FLAGS', `nobodyreturn,restrictqrun,authwarnings,needmailhelo,needexpnhelo,nednl define(`confAUTH_MECHANISMS', `LOGIN PLAIN DIGEST-MD5 CRAM-MD5')dnldefine(`confSMTP_LOGIN_MSG', `$j Sendmail $v/$Z; \n $b; incoming connection from ${client_addr}')dnl define(`confDONT_PROBE_INTERFACES', `true')dnl dnl define(`confDONT_BLAME_SENDMAIL', `')dnl define(`LOCAL_SHELL_FLAGS', `u9')dnl define(`LOCAL_RELAY', `relay:click')dnl define(`confRECEIVED_HEADER', `$?sfrom $s $.$?_(current UNIX time is$.$?{auth_type}(authenticated$?{auth_ssf} bits=${auth_ssf}$.) $.by $j (Sendmail $v/$Z)$?r with $r$. id $i$?{tls_version} (version=${tls_version} cipher=${cipher} bits=${cipher_bits} verify=$.$?u for $u; $|; $.$b')dnl define(`ESMTP_MAILER_QGRP', `smtp')dnl define(`SMTP8_MAILER_QGRP', `smtp')dnl define(`DSMTP_MAILER_QGRP', `smtp')dnl define(`RELAY_MAILER_QGRP', `relay')dnl

Page 6: mail_posluzitelj

define(`LOCAL_PROG_QGRP', `local')dnl define(`confDEAD_LETTER_DROP', `/var/tmp/DeadLetters')dnl LOCAL_USER_FILE(`localuser@hash:CLASS_DB') RELAY_DOMAIN_FILE(`relaydomains@hash:CLASS_DB')dnl VIRTUSER_DOMAIN_FILE(`virtuserdomain@hash:CLASS_DB')dnl GENERICS_DOMAIN_FILE(`gendom@hash:CLASS_DB')dnl TRUST_AUTH_MECH(`LOGIN PLAIN DIGEST-MD5 CRAM-MD5')dnl MASQUERADE_AS(`bar.org')dnl QUEUE_GROUP(`local', `P=QUEUE_DIR/local, F=f, N=2, I=2m, R=4, r=32')QUEUE_GROUP(`smtp', `P=QUEUE_DIR/smtp, F=f, N=2, I=2m, R=4, r=32')dnQUEUE_GROUP(`relay', `P=QUEUE_DIR/relay, F=f, N=-2, I=2m, R=12, r=32QUEUE_GROUP(`hr', `P=QUEUE_DIR/hr, F=f, N=-4, I=2m, R=4, r=32')dnl QUEUE_GROUP(`de', `P=QUEUE_DIR/de, F=f, N=-14, I=2m, R=8, r=32')dnlQUEUE_GROUP(`com', `P=QUEUE_DIR/com, F=f, N=-1, I=2m, R=8, r=32')dnlQUEUE_GROUP(`net', `P=QUEUE_DIR/net, F=f, N=-1, I=2m, R=4, r=32')dnlQUEUE_GROUP(`junk', `P=QUEUE_DIR/junk, F=f, N=18, I=4m, R=2, r=32')dFEATURE(`masquerade_entire_domain') dnl FEATURE(`preserve_local_plus_detail')dnl dnl FEATURE(`enhdnsbl', `relays.mail-abuse.org', `', `t', `127.0.0.2dnl FEATURE(`enhdnsbl', `blackholes.mail-abuse.org', `', `t', `127.0dnl FEATURE(`enhdnsbl', `dialups.mail-abuse.org', `', `t', `127.0.0FEATURE(`virtusertable', `hash MAIL_SETTINGS_DIR`'virtusertable')dnlFEATURE(`genericstable', `hash MAIL_SETTINGS_DIR`'genericstable')dnlFEATURE(`domaintable', `hash MAIL_SETTINGS_DIR`'domaintable')dnl FEATURE(`mailertable', `hash MAIL_SETTINGS_DIR`'mailertable')dnl FEATURE(`access_db')dnl FEATURE(`use_cw_file')dnl FEATURE(`compat_check')dnl FEATURE(`use_ct_file')dnl FEATURE(`masquerade_envelope')dnl FEATURE(`local_procmail')dnl FEATURE(`blacklist_recipients')dnl dnl FEATURE(`smrsh')dnl FEATURE(`redirect')dnl MAILER(`smtp')dnl MAILER(`procmail')dnl MAILER(`local')dnl

LOCAL_CONFIG F{E}exposed@hash:CLASS_DB F{trusty}trusty@hash:CLASS_DB F{etrisok}etrisok@hash:CLASS_DB F{realmok}realmok@hash:CLASS_DB F{Internal}internal@hash:CLASS_DB F{trustdom}trustdom@hash:CLASS_DB

Klogsubj syslog Kparsesubject regex -f -a@MATCH ^(Be.a.Millionaire|See.you.later.Tha|Hi[! ]How.are.you\?|Hola.como.estas\?|.*.Millionaire.*.|[Rr]e[: ]Where.are.you\?|You.*.Millionaire|.*.Join.for.FREE.*|Join.for.FREE.\HSubject: $>Check_Subject

LOCAL_RULESETS

Page 7: mail_posluzitelj

######################################################### ######################################################### ##### ##### site specific rulesets ##### ######################################################### #########################################################

SCheck_Subject R$* $: $(logsubj Subject: $1 $) $1 Logiraj predmet (subject) R$* $: $(parsesubject $1 $: <OK> $) Pogledaj u regex mapu R<OK> $@ OK Ako je <OK> prihvati R$*@MATCH $#error $@ 5.7.1 $: 553 EACCES ako ne odbaci Squeuegroup R$* @ $* bar.org $# relay naša domena R$* @ $* baz.edu $# relay povjerljiva domena R$* @ $* yahoo.com $# junk Spora i nestabilna isporuka R$* @ $* hotmail.com $# junk Spora i nestabilna isporuka R$* @ $* aol.com $# junk Spora i nestabilna isporuka R$* @ $* emailpub.com $# junk Spora i nestabilna isporuka R$* @ $* mp3.com $# junk Spora i nestabilna isporuka R$* @ $* juno.com $# junk Spora i nestabilna isporuka R$* @ $*.hr $# hr Hrvatske poruke R$* @ $*.de $# de Njemačke poruke R$* @ $*.com $# com Vecina poruka ide ovdje (u .com) R$* @ $*.net $# net ... i ovdje R$* @ $* $# smtp Ostatak ovdje R$* $# mqueue

Scheck_vrfy R$* $: < $&{client_name} > Provjeri klijenta R< $={trusty} > $@ OK Ako je povjerljiv prihvati R< $+ $={trusty} > $@ OK Povjerljiva (trusted) domena R$* $: $&{auth_type} Autentificirani korisnik? R$+ $@ OKSOFAR ako je onda prihvati R$* $#error $@ 5.7.1 $: 550 VRFY command is not avaiable for $&{clie

Scheck_expn R$* $: < $&{client_name} > Provjeri klijenta R< $={trusty} > $@ OK Ako je povjerljiv prihvati R< $+ $={trusty} > $@ OK Povjerljiva (trusted) domena R$* $: $&{auth_type} Autentificirani korisnik? R$+ $@ OKSOFAR ako je onda prihvati R$* $#error $@ 5.7.1 $: 550 EXPN command is not avaiable for $&{clie

Scheck_etrn R$* $: $&{auth_authen}:$&{auth_type} user i mehanizam R$+:$~{TrustAuthMech} $#error $@ 5.7.1 $: 553 ETRN is not avaiable bwrong SASL mech R$={etrisok}:$={TrustAuthMech} $@ OK Moze korisnik iz klase etrisok R$={etrisok}@$={realmok}:$={TrustAuthMech} $@ OK Isto kao gore ali "R$~{etrisok}:$* $#error $@ 5.7.1 $: 553 ETRN is not avaiable for $&{R$~{etrisok}@$*:$* $#error $@ 5.7.1 $: 553 ETRN is not avaiable for

Page 8: mail_posluzitelj

Ovdje će biti ukratko opisane neke od osnovnih parametar unutar ove datoteke,a svima onima koji se žele uistinu pozabaviti konfiguracijom sendmaila preporučuje se dodatno informiranje o njegovim mogućnostima.

VERSIONID ()

VERSIONID je makro koji će omogućiti popunjavanje dobivene sendmail konfiguracijske datoteke sa podatcima o inačici programa.

Primjer:

OSTYPE ()

OSTYPE makro (skup naredbi objedinjenih u jednu cjelinu) služi za definiciju operativnog sustava na kojem je instaliran sendmail programski paket, kako bi se na taj način mogao generirati ispravna i upotrebljiva konfiguracijska datoteka. Vrlo bitan parametar budući da on uključuje sve bitne postavke vezane za korišteni operativni sustav. Bitno je da se ovaj parametar definira odmah nakon VERSIONID makroa i prije MAILER makroa, koji će biti opisan u nastavku. Primjer:

{auth_authen} R$* @ $~{realmok} $* $#error $@ 5.7.1 $: 553 ETRN is not avaiable bewrong realm R$* $: < $&{client_name} > Proširi ime klijenta R< $* $=m > $@ OK Domena je u redu R$* $#error $@ 5.7.1 $: 553 ETRN is not avaiable from $&{client_name

SLocal_check_rcpt R$+ $: <@> $>3 $1 R<@> $={Internal} < @ $=w . > $: < $1 @ $2 > Ukloni "<@>" i postavi"R<@> $={Internal} $: < $1 @ $j > Ukloni "<@>" i postavi "< @FQDN >" R<@> $+ $@ OK Ukoliko je prošlo u redu R$* $: $&{client_name} Proširi ime klijenta Rlocalhost.localdomain $@ OKSOFAR Lokalna linija R$*$={trustdom} $@ OKSOFAR Domene iz klase ? R$* $: $&{auth_type} Autentificirani korisnik? R$+ $@ OKSOFAR Prihvati R$* $: $>3 $&f Provjeri NULL pošiljaoca R<@> $@ OK Propusti NULL pošiljaoca R$* $#error $: 551 $&f is not allowed to send mail to this account

dnl

VERSIONID('@(#)mailserver.mc 1.0 (yourdomain.com) 5/1/97')

Page 9: mail_posluzitelj

DOMAIN ( )

DOMAIN makro jednostavno uključuje datoteku, u kojoj će se nalaziti opće informacije o domeni unutar koje se program koristi. Ova opcija se može biti vrlo korisna u slučajevima kade se želi na jednom mjestu definirati neke opće postavke o domeni za sve mc datoteke koje stvaramo.

Primjer:

U ovom slučaju u process konfiguracije uključuje se datoteka cf/domain/moja_domena.com, koja će sadržati definiciju općih postavki.

MAILER ( )

Pomoću ovog parametra Sendmailu se daje direktiva kojim transportnim sredstvima (protokolima) da distribuira mail poruke. U zadnjoj inačici sendmail programskog paketa definiran je niz protokola local (lokalna upotreba, smtp, esmtp, uucp�).

Primjer:

Parametar local dolazi inicijalno u m4 datoteci, i govori da će e-mail poruke distribuirati lokalno između računala unutar lokalne mreže. Parametar smtp implicira korištenje SMTP protokola za komunikaciju sa drugim mail poslužiteljima. Važna napomena je ta da MAILER direktive uvijek moraju dolaziti na kraju konfiguracijske datoteke, te da se MAILER(smtp) makro uvijek mora nalaziti prije MAILER(uucp) makroa.

FEATURE ()

FEATURE makro vrlo je koristan i omogućuje uključivanje dodatnih sendmail-ovih svojstava u samu konfiguraciju. Sintaksa korištenja je:

gdje se parametar ime mora zamijeniti sa imenom svojstva koje se uključuje.

Ovdje su navedeni samo neki osnovniji parametri mc datoteke, s obzirom da bi

OSTYPE(solaris2)

DOMAIN(moja_domena.com)

MAILER(local) MAILER(smtp)

FEATURE(ime)

Page 10: mail_posluzitelj

kompletna analiza ove datoteke zahtijevala više vremena i prostora. Nakon kreirane mc datoteke potrebno je pomoću m4 programa na temelju nje stvoriti odgovarajuću konfiguracijsku sendmail datoteku slijedećom naredbom:

Ova naredba će pozvati m4 procesor koji će na temelju kreirane mc datoteke proizvesti stvarnu sendmail konfiguracijsku datoteku. Nakon toga potrebno je pokrenuti sendmail kao demon program naredbom:

1.4. Zaključak

U ovom poglavlju dani su samo osnovni postupci vezani za instalaciju i konfiguraciju Sendmail programskom paketa, s obzirom na njegovu složenost. Više detalja o samoj konfiguraciji može se pronaći na www.sendmail.org web stranici, kao i na nizu drugih web stranica koje se bave ovom tematikom (http://www.networkcomputing.com/unixworld/tutorial/008/008.txt.html#instalhttp://www.linuxdoc.org/LDP/solrhe/Securing-Optimizing-Linux-RH-Edition-v1.3/, http://www.upenn.edu/computing/help/doc/sendmail/sm-config.html). U osnovi svi postupci konfiguracije i administracije iskreno se preporučuje naprednijim korisnicima, odnosno onoj grupi ljudi koja ima određeno iskustvo sa konfiguracijom Linux programskih paketa.

m4 mysite.mc > /etc/mail/sendmail.cf

/usr/sbin/sendmail -bd -q10m

Page 11: mail_posluzitelj

2. Postfix

2.1. Uvod

Postfix je e-mail poslužitelj koji je zamišljen kao alternativno rješenje vrlo popularnom i moćnom, ali jednako tako i kompliciranom Sendmail programskom paketu, koji se zbog komplicirane konfiguracije ne preporučuje zaupotrebu u SOHO okruženju. Ovaj program se ističe svojom brzinom (brži je i do tri puta od konkurenata), robustnošću i jednostavnošću konfiguracije, te se preporučuje svim korisnicima kojima manjka iskustva i znanja vezanih za Linux operativni sustav. Za razliku od Sendmail-a koji je realiziran kao jedan veliki program koji obavlja sve zadatke, Postfix se sastoji od desetak manjih programa, od kojih svaki izvodi samo određene zadatke. Na taj način postiže se visoka fleksibilnist ovog poslužitelja (npr. na računalu sa samo jednim korisnikom može se isključiti podrška za lokalno slanje e-maila). Svi moduli Postfix programskog paketa kontroliraju se pomoću jednostavne datoteke (master.cf) koja je nalik na inetd.conf datoteku. Budući da je zamišljen kao alternativa Sendmail-u, Postfix je dizajniran tako da bude što je moguće više kompatibilan s njim. Tako na primjer Postfix podržava /etc/aliases, /var/mail, NIS i ~/.forward datoteke, ali zbog težnjeda konfiguracija bude što je moguće jednostavnija sendmail.cf datoteka se ne koristi, već umjesto nje postoji main.cf datoteka koja je pisana na način da ju korisnik može uređivati ručno u bilo kojem tekst editoru. Zbog malih hardverskih zahtjeva, brzine, pouzdanosti i jednostavnosti konfiguracije, Postfix se pokazao kao odličan izbor za SOHO mreže.

2.2. Instalacija

Postfix dolazi kao standardan programski paket Mandrake i Debian Linux distribucija, te FreeBSD operacijskog sustava. Budući da distribucije imaju vlastite pakete (.deb i .rpm), postupak instalacije je uvelike olakšan zato što se već tokom instalacije generiraju sve potrebne inicijalne postavke, pa se poslužitelj bez dodatnih podešavanja može koristiti odmah nakon instalacije. Naravno, da bi poslužitelj u potpunosti radio prema zahtjevima korisnika potrebno je obaviti dodatne postupke konfiguracije. Sama instalacija obavlja se pomoću aplikacija Dselect kod Debian distribucije, Software Manager kod Mandrake distribucije i Sysinstall za FreeBSD operacijski sustav. Naravno postoji mogućnost instalacije iz tar.gz paketa koji se nalazi na priloženom CD-u sa softverom, a može se pronaći i na http://www.postfix.org. Postupci korištenja ovih aplikacija, kao i instalacija tar.gz paketa detaljno su opisani u dokumantaciji pod naslovom "Osnove korištenja Linux i Unix operativnih sustava", rev. 1.0 elaborat 195/01-1, LSS-FER_ZESOI (http://pingvin.carnet.hr/linux_u_obrazovanju/projekt /prva_etapa/linux_unix_operativni_sustavi_sadrzaj.html). Pokretanje poslužitelja prilikom podizanja sustava podešeno je automatski, prilikom instalacije, a može se po želji mijenjati pomoću skripti u /etc/rc.d

Page 12: mail_posluzitelj

direktoriju što je detaljno opisano u poglavlju 2.2.1, dokumentacije "Osnove korištenja Linux i Unix operativnih sustava", rev.1.0, elaborat 195/01-1, LSS-FER_ZESOI (http://pingvin.carnet.hr/linux_u_obrazovanju/ projekt/ prva_etapa/linux_unix_operativni_sustavi_sadrzaj.html). Poslužitelj se može pokretati i zaustavljati naredbama postfix start i postfix stop. Ako se datoteka sa konfiguracijskim parametrima izmjenjuje dok je poslužitelj pokrenut, potrebno je izvršiti naredbu postfix reload , kako bi program ponovo pročitao konfiguracijsku datoteku. Kod Mandrake distribucije pokretanje i zaustavljanje poslužitelja može se obaviti u grafičkom sučelju aplikacijom Mandrake Control Center pod sekcijom System -> Services.

2.3. Osnovna konfiguracija

Postfix se konfigurira pomoću stotinjak parametara koji se nalaze u datoteci main.cf, koja je obično smještena u /etc/postfix direktoriju. Srećom svi parametri su jako dobro komentirani u samoj datoteci i većina ima postavljene inicijalne vrijednosti koje uglavnom zadovoljavaju potrebe korisnika, pa je u većini slučajeva potrebno podesiti samo nekoliko parametra prije korištenja samog Postfix sustava. Postavke su : ˇ Domena sa koje se šalje pošta ˇ Domene za koje se prima pošta ˇ Klijenti za koje će se prenositi pošta Osim toga potrebno je odabrati tipove grešaka koje će se prijavljivati postmaster-u tj. osobi koja održava mail poslužitelj a to je najčešće administrator, što je i postavljeno kao inicijalna vrijednost. Svi konfiguracijski parametri navedeni u daljnjem tekstu nalaze se u datoteci main.cf. Poželjno je da se nikada ne mijenja više od dva ili tri parametra odjednom, uz važnu napomenu da ako je poslužitelj pokrenut kada se parametri mijenjaju obavezno treba izvršiti naredbu postfix reload, da bi Postfix registrirao promjene.

ˇ myorigin Ovaj parametar postavlja domenu koju poslužitelj upisuje u svu poštu koju šalje. Inicijalno je to ime računala na kojem je instaliran poslužitelj, ali u slučaju većih mail poslužitelja uobičajeno je postaviti ime domene na kojoj se nalazi poslužitelj. Npr: myorigin=server.skola.hr (inicijalno) myorigin=skola.hr (poželjno)

ˇ mydestination Specificira domene za koje će se pošta slati lokalno, bez prosljeđivanja drugim poslužiteljima. Inicijalno je odabrano samo računalo na kojemu se nalazi poslužitelj. Ako računalo služi kao poslužitelj za cijelu domenu, potrebno je navesti ime domene. Npr. inicijalno je postavljeno:

mydestination=ime_računala localhost.ime_domene

Page 13: mail_posluzitelj

za slučaj poslužitelja za cijelu domenu treba upisati

mydestination= ime_računala localhost.ime_domene ime_domene

Da bi se izbjegle višestruke isporuke iste e-mail poruke, uvijek je potrebno navesti sva imena računala na kojem je pokrenut poslužitelj (ime_racunala.domena i localhost.domena).

ˇ notify_clases Postmaster je alias koji pokazuje na neku osobu (inicijalno root), kojoj korisnici prijavljuju probleme u radu s poslužiteljem. Ovaj alias može se promijeniti u datoteci /etc/postfix/aliases, tako da pokazuje na bilo kojeg korisnika na računalu na kojem je pokrenut poslužitelj. Sam Postfix također prijavljuje probleme postmasteru, a tipovi grešaka koji se prijavljuju podešavaju se preko parametra notify_clases, koji može imati sljedeće vrijednosti: - bounce - šalje postmaster-u kopiju e-mail poruke koja se iz nekog razloga ne može isporučiti. Ta kopija se naziva bounce message. Zbog očuvanja privatnostikorisnika dio originalne poruke koji dolazi poslije zaglavlja je odsječen. Ukoliko takvu poruku nije moguće isporučiti, Postfix će poslati drugu bounce poruku koja sadrži kopiju cijele prve bounce poruke. - 2bounce - omogućuje slanje druge bounce poruke. - delay - obavještava postmastera o porukama čije je slanje odgođeno. U ovomslučaju postmaster dobiva samo zaglavlja poruka. - policy - obavještava o zahtjevima klijenata za spajanjem koji su odbijeni zbog UCE (unsclicited commercial email) ograničenja, koja određuje root ili osoba koja održava poslužitelj. Postmaster prima transkript cijele SMTP sesije. - protocol - šalje poruke o greškama u protokolu (od strane klijenta ili poslužitelja) ili o pokušajima klijenta da izvrši nepoznatu komandu. I u ovom slučaju postmaster prima transkript cijele SMTP sesije. - resource - obavještava postmastera o pošti koja nije isporučena zbog problema sa resursima. - software - obavještava postmastera o pošti koja nije isporučena zbog softverskih problema.

ˇ myhostname Ovaj parametar opisuje puno ime (fully-qualified domain name - FQDN) računala na kojem je pokrenut Postfix. Ime mora biti oblika ime_računala.domena.

ˇ mydomain Opisuje domenu računala na kojem je pokrenut Postfix. Vrijednost ovog parametra se inicijalno postavlja tako da se pročita puno ime računala (FQDN) u myhostname parametru i iz njega se odstrani ime samog računala.

ˇ mynetworks Ovaj parametar predstavlja listu računala koje Postfix smatra pouzdanima

Page 14: mail_posluzitelj

(sigurnima). Ova lista se može specificirati u main.cf datoteci ili se može prepustiti Postfix-u da je generira sam pomoću parametra mynetworks_style.Taj parametar može poprimiti sljedeće vrijednosti: - class - svi klijenti iz mreža klase A,B ili C na koje je Postfix spojen. Ovakva vrijednost nije poželjna ako se koristi dial-up veza jer će na taj način poslužitelj smatrati pouzdanom čitavu mrežu internet provider-a na kojeg je računalo spojeno. Kod dial-up veze, mynetworks listu potrebno je kreirati ručno. - subnet - svi klijenti u IP podmrežama na koje je Postfix spojen. Ova vrijednost je postavljena inicijalno. - host - poslužitelj smatra pouzdanim samo računalo na kojem je pokrenut. Kod ručnog kreiranja liste pouzdanih mreža koristi se network/mask notacija, npr.:

ˇ inet_interfaces Definira mrežna sučelja na kojima će poslužitelj čekati ("slušati") zahtjeve klijenata za spajanjem. Inicijalna vrijednost je inet_interfaces=all , što znači da se "slušaju" sva mrežna sučelja. Ovo su parametri potrebni za osnovnu konfiguraciju Postfix poslužitelja. Za ostale parametre koji obuhvaćaju UCE restrikcije, kontrolu slanja pošte i manipulaciju adresama, kao i za informacije o upravljanju pojedinim dijelovima Postfix-a i načinu njihovog rada, potrebno je pročitati kompletnu dokumentaciju koja može pronaći na adresi http://www.postfix.org.

Primjer: Kao primjer dana je main.cf skripta sa najosnovnijim konfiguracijskim parametrima, potrebnima za normalno funkcioniranje postfix-a. Osim ovih parametara moguće je koristiti još i neke naprednije opcije, koje poboljšavaju performanse i sigurnost poslužitelja, a opisane su u poglavlju 5.1.4.

mynetworks=168.100.189.0/28, 127.0.0.0/8

# Global Postfix configuration file. This file lists only a subset # of all 100+ parameters. See the sample-xxx.cf files for a full list. # # The general format is lines with parameter = value pairs. Lines # that begin with whitespace continue the previous line. A value can # contain references to other $names or ${name}s. # # NOTE - CHANGE NO MORE THAN 2-3 PARAMETERS AT A TIME, AND TEST IF # POSTFIX STILL WORKS AFTER EVERY CHANGE. queue_directory = /var/spool/postfix command_directory = /usr/sbin daemon_directory = /usr/lib/postfix mail_owner = postfix default_privs = nobody myhostname = cecilija.zesoi.fer.hr mydomain = zesoi.fer.hr myorigin = $myhostname

Page 15: mail_posluzitelj

2.4. Kontrola brzine slanja poruka

Dobro podešen mail poslužitelj mora biti brz, ali ne smije opterećivati ostale mail poslužitelje brzom isporukom pošte. Vrlo lako se može desiti da loš klijent napravi promet koji će zagušiti poslužitelj za koji je pošta namijenjena. Sljedećim parametrima koji se nalaze u main.cf datoteci podešava se brzina slanja pošte.

ˇ default_process_limit Ovim parametrom (čija je uobičajena vrijednost 50) izravno se kontrolira broj paralelnih procesa (smtp primanje pošte, smtp slanje pošte, lokalna isporuka) koje Postfix može pokrenuti. Kod malih sustava ili sustava spojenih dial-up vezom maksimalni broj procesa poželjno je smanjiti (npr. 10), dok je kod jačih poslužitelja s mnogo korisnika taj broj potrebno povećati. Za pojedinačne procese koje Postfix pokreće, ovaj broj je moguće dodatno ograničiti editiranjem master.cf datoteke.

Primjer: U ovom primjeru navedena je linija iz master.cf datoteke u kojoj se definiraju postavke SMTP servisa. Broj procesa je podešen na 5,0 ali broj paralelnih smtp konekcija želi se ograničiti na 5 što rezultira sljedećom linijom u master.cf datoteci:

ˇ destination_concurency U slučaju velikog mail poslužitelja kod kojega je dozvoljen velik broj paralelnih

inet_interfaces = all mydestination = $myhostname, localhost.$mydomain mynetworks = 161.53.64.117/28, 127.0.0.0/8 relay_domains = $mydestination relayhost = $mydomain alias_maps = hash:/etc/postfix/aliases home_mailbox = Mailbox mail_spool_directory = /var/spool/mail mailbox_command = /usr/bin/procmail -Y -a $DOMAIN smtpd_banner = $myhostname ESMTP $mail_name ($mail_version) (Mandrake Linux) debug_peer_level = 2 debugger_command = PATH=/usr/bin:/usr/X11R6/bin xxgdb $daemon_directory/$process_name $process_id & sleep 5

# ========================================================= # service type private unpriv chroot wakeup maxproc command + args # (yes) (yes) (yes) (never) (50) ========================================================= ... smtp inet n - - - 5 smtpd ...

Page 16: mail_posluzitelj

procesa potrebno je onemogućiti uspostavu mnogo simultanih veza prema jednom računalu. Postfix to rješava tako što inicijalno šalje ograničen broj poruka koji je redovito mali (uobičajeno 2), a zatim se broj povećava sve dok ih računalo kojemu su poruke namijenjene uspješno prima. U slučaju zagušenja Postfix će smanjiti broj simultanih veza. Parametrom initial_destination_concurrency zadaje se početni broj simultanih veza (uobičajeno 2) koji se zatim povećava do broja zadanim parametrom local_destination_concurrency_limit (uobičajeno 2) za lokalnu isporuku pošte ili parametrom default_destination_concurrency_limit za općenitu isporuku. Lokalna isporuka ograničena je na vrlo mali broj simultanih veza zato što se pošta u lokalni sandučić (mailbox) mora isporučivati slijedno pa paralelna isporuka nije korisna. Ograničenja koja se zadaju destination_concurrency parametrima neće imati učinka ako su brojevi veći od maksimalnog broja procesa zadanog parametrom default_process_limit i vrijednostima u master.cf datoteci.

ˇ default_destination_recipient_limit Ovaj parametar kontrolira koliki broj primatelja (koji se nalaze na istom računalu) može sadržavati poruka koja se šalje. Ukoliko poruka sadrži veći broj primatelja od dozvoljenog, lista primatelja će se prelomiti na manje dijelove i poslužitelj će poslati višestruke kopije poruke sa smanjenim brojem primatelja. Broj primatelja se može definirati posebno i za svaki servis, a tako definirana vrijednost će biti superiornija default_destination_recipient_limit vrijednosti.

Primjer: Ograničenje broja primatelja za poštu koja se isporučuje SMTP (Simple Mail Transfer Protocol) protokolom

ˇ defer_transports Ovim parametrom je moguće definirati koja pošta će se uvijek staviti na čekanje, sve dok poslužitelju eksplicitno nije naređeno da ju isporuči. Ovakav parametar može biti koristan kod poslužitelja koji su spojeni ppp vezom i samo mali dio vremena su povezani na internet, a tada se isporuka pošte eksplicitno poziva iz naredbene linije, naredbom

Primjer: Za gore navedeni poslužitelj koji se spaja ppp vezom najbolje je podesiti da pošta koja se isporučuje SMTP protokolom bude stavljena na čekanje.

smtp_destination_recipient_limit=100

# sendmail -q

defer_transports=smtp

Page 17: mail_posluzitelj

Posebnom grupom parametara kontrolira se ponašanje Postfix-a u slučaju nemogućnosti slanja poruke : ˇ queue_run_delay Uobičajena vrijednost ovog parametra je 1000 sekundi, a njime se određuje koliko često će Postfix pregledati red za slanje pošte u potrazi za porukama kojesu stavljene na čekanje. ˇ maximal_queue_lifetime Ovim parametrom definira se koliko dugo će Postfix pokušavati poslati poruku prije nego što procijeni da poruku nije moguće isporučiti i vrati je korisniku. Uobičajeno vrijeme čekanja je 5 dana. ˇ minimal_backoff_time i maximal_backoff_time Minimalno i maksimalno vrijeme koje će Postfix čekati prije nego ponovo pokuša poslati neisporučenu poštu ili se spojiti na računalo koje ne daje odgovor. Uobičajene vrijednosti su 1000 sekundi za minimalno vrijeme i 4000 sekundi za maksimalno vrijeme.

2.5. Manipulacija adresama

Iako Postfix ne sadrži poseban jezik za prepisivanje adresa (address rewriting)kao Sendmail, pomoću posebnih tablica omogućena je poprilično dobra manipulacija adresama. U daljnjem tekstu opisati će se osnovne metode koje semogu primijeniti kod prepisivanja adresa i koje su posebno interesantne za SOHO korisnike. ˇ Alias tablica Kada Postfix primi poštu za korisnika čiji se korisnički račun nalazi na računalu na kojem je pokrenut tj. kod lokalne isporuke pošte, ime korisnika kojem je pošta namijenjena usporediti će se sa imenima u alias tablici. Ako u tablici postoji podatak o drugom identitetu korisnika, Postfix će preusmjeriti poštu. Ovakav način prepisivanja adresa koristan je kada mail aliaspredstavlja više korisnika kojima se treba isporučiti ista pošta ili kod preusmjeravanja standardnih mail alias-a kao postmaster ili root fizičkom korisniku koji zadužen za održavanje sustava. Ovakav način preusmjeravanja pošte koristan je i kod zamjene formata ime.prezime (koji se često koristi kod slanja pošte) sa korisničkim imenom osobe kojoj je pošta namijenjena. Alias tablica se nalazi u datoteci /etc/postfix/aliases i može se prepravljati i proširivati bilo kojim tekst editorom. Nakon prepravljanja tablice potrebno je izvršiti naredbu newaliases da Postfix prihvati promjene i u konfiguracijskoj datoteci omogućiti alias tablicu upisivanjem alias_maps=hash:/etc/aliases i izvršavanjem postfix reload naredbe kojom se prihvaćaju unesene promjene.Opcija alias_maps već je uključena prilikom instalacije i smatra se uobičajenomkod Postfix poslužitelja.

Primjer: Tipična aliases datoteka izgleda ovako:

# Osnovni alias-i - MORAJU postojati MAILER-DAEMON: postmaster postmaster: root

Page 18: mail_posluzitelj

Linije koje počinju sa znakom # su komentari i ignoriraju se od strane Postfix-a, a linije koje predstavljaju nastavak iz prethodnog reda moraju započinjati razmakom (space). U slučaju da se koristi redirekcija na više korisničkih računa, potrebno ih je odvojiti zarezom.

ˇ Prepisivanje adresa Prije nego što poslužitelj proslijedi dalje poštu koja nije namijenjena njemu, pregledati će odgovarajuću tablicu i ako u njoj pronađe traženu adresu, prepisati će ju u zadani oblik i proslijediti dalje. Tablica u kojoj su upisane adrese koje se trebaju prepisati nalazi se u /etc/postfix/canonical. Nakon izmjene tablice potrebno je pokrenuti naredbu

kako bi se promjene uvažile. Prepisivanje adresa nije inicijalno omogućeno i potrebno ga je uključiti u main.cf datoteci dodavanjem opcije

nakon čega je potrebno osvježiti konfiguraciju Postfix-a izdavanjem naredbe

# Generalno preusmjeravanje za pseudo-račune bin: root daemon: root games: root ingres: root nobody: root system: root toor: root uucp: root

# Općepoznati alias-i. manager: root dumper: root operator: root

#prepisivanje adrese ime.prezime u korisničko ime srdan.pajic: spajic

#distribucijska lista pod nazivom linux linux: [email protected], [email protected], [email protected], [email protected], [email protected], [email protected]

# osoba koja prima root mail root: adolmac

# postmap /etc/postfix/canonical

canonical_maps=hash:/etc/postfix/canonical

# postfix reload

Page 19: mail_posluzitelj

Format datoteke canonical poprilično je jednostavan i sastoji se od parova adresa koje treba prepisati, npr:

Pravila pisanja ista su kao i kod aliases datoteke. Prepisivanje adresa nije moguće koristiti za distribucijske liste jer se pojedinačna adresa može prepisati samo u jednu novu adresu, a ne više njih kao kod mail aliasing-a.

2.6. Konfiguracija Postfix-a na računalu s dial-up vezom

Kod SOHO korisnika dosta je čest slučaj da je interna računalna mreža spojena na internet pomoću dial-up veze koja se pokreće samo povremeno, pa će se konfiguracija takvog tipa mail poslužitelja pobliže opisati. Većina korisnika koji se spajaju dial-up vezom nema definiranu domenu i ime računala, pa svu poštu prema vanjskom svijetu šalje pod domenom davatelja internet usluga (npr. [email protected]). Zbog toga je najprije potrebno definirati pod kojom će se domenom slati pošta prema van i koji su interni korisnici. U glavnoj konfiguracijskoj datoteci /etc/postfix/main.cf potrebno je u parametar myorigin upisati ime domene davatelja internet usluga koje će se dodavati na ime korisnika iza znaka @ npr. :

Za korisnike kojima će se mail isporučivati lokalno, tj. neće se prosljeđivati na relayhost računalo, kreira se posebna tablica virtualnih korisnika u koju se upisuju parovi virtualnih i stvarnih lokalnih adresa. Tablica se nalazi u datoteci /etc/postfix/virtual i nakon svake izmjene potrebno je izvršiti naredbu

kako bi se uvažile promjene.

Primjer: Izgled tipične virtual tablice:

Obje adrese (korisnik i adresa_korisnika) nalaze se na istom računalu. Definicija virtualne domene nije obavezna ali ako se koristi potrebno je iza imena domene napisati bilo kakav tekst. Pravila za formatiranje datoteke ista su kao i kod aliases i canonical datoteka. Nakon što su definirane domena i virtualna tablica potrebno je podesiti Postfix da svu poštu za van preusmjeri na mail poslužitelj davatelja internet usluga i

[email protected] [email protected] [email protected] hr [email protected]

myorigin=zg.hinet.hr

# postmap /etc/postfix/virtual

virtual.domain <bilo kakav tekst> # definicija virtualne domene [email protected] postmaster [email protected] adresa_korisnika [email protected] adresa_korisnika1, adresa_korisnika2

Page 20: mail_posluzitelj

omogući prijenos pošte koja je na čekanju svaki puta kada se dial-up veza uspostavi. Parametrom relayhost u main.cf datoteci definira se ime poslužitelja kojem će se pošta prosljeđivati:

Prijenos pošte kod pokretanja veze postiže se izvršavanjem naredbe

a da se naredba ne bi morala upisivati ručno moguće je u programu za pokretanje veze kao npr. Kppp podesiti njeno izvođenje svaki puta kada se pokrene veza. U slučaju uspostave veze na zahtjev (dial-up on demand) potrebno je onemogućiti spontano slanje pošte budući da bi svaki mail koji pristigne na poslužitelj izazvao pokretanje veze. Onemogućavanje spontanog slanja pošte postiže se parametrom defer_transports u main.cf datoteci:

Osim onemogućavanja spontanog slanja pošte potrebno je onemogućiti i DNS pretrage kako bi se spriječilo kašnjenje u slanju pošte zbog toga što Postfix nemože pronaći DNS poslužitelj u vrijeme kada mreža nije spojena na intrenet. DNS pretrage se onemogućavaju parametrom:

Kada je DNS pretraga onemogućena, relyhost poslužitelj je potrebno navesti u formi IP adrese kako bi ga Postfix mogao pronaći.

2.7. Zaključak

Postfix mail poslužitelj se pokazao kao vrlo stabilan i brz mail poslužitelj (može primiti 400 poruka u minuti na Pentium I računalu), koji se zbog jednostavnosti instalacije i konfiguracije preporučuje za upotrebu u SOHO okruženju.

relayhost=mail.hinet.hr

# /usr/sbin/sendmail -q

defer_transports=smtp

disable_dns_lookups=yes

Page 21: mail_posluzitelj

3. Sympa - Mailing List Manager

3.1. Uvod

Mailing lista je servis koji omogućuje da se poruka poslana na određenu adresu distribuira grupi korisnika koji se nazivaju pretplatnici liste. Pretplatnici na taj način mogu voditi diskusije ili se putem liste mogu slati obavijesti grupi korisnika. Postoji više vrsta mailing lista, a jedan od glavnih načina na koji ih se može podijeliti je na proglasne (engl. announcement) liste i diskusijske (engl. discussion) liste. Proglasne liste se koriste za brzu i jednostavnu isporuku informacija korisnicima, a poruke na listu može postavljati samo vlasnik liste. S druge strane diskusijske liste omogućavaju pokretanje on-line foruma i diskusija. Poruke na listu mogu slati i vidjeti svi pretplatnici liste, što omogućava brzu i jednostavnu komunikaciju među svim korisnicima liste. Diskusijske liste mogu biti i cenzurirane, a to se postiže tako da sve poruke kojepristignu na listu mora prije objavljivanja odobriti za to nadležna osoba (moderator). Liste također mogu biti javne (public) i privatne, ovisno o tome da li je pristup listi omogućen bilo kome ili prijavljivanje svakog korisnika mora odobriti vlasnik liste. Distribuciju poruka i održavanje liste korisnika provodi softver koji se naziva Mailing List Manager (skraćeno MLM) s kojim se komunicira putem e-mail poruka. Poruke koje se šalju List Manager-u sadrže u sebi naredbe kojima se korisnik može prijaviti (subscribe) ili odjaviti (unsubscribe) s liste ili zatražiti podatke o listi. Kao primjer Mailing List Manager-a odabran je Sympa programskipaket koji je dovoljno jednostavan za SOHO korisnika, a opet nudi niz opcija koje omogućuju kreiranje različitih vrsta mailing listi, kao i pristup pomoću web sučelja. Dodatna prednost Sympa manager-a je ta što dolazi uključen kao standardni paket u Debian i Mandrake distribucijama Linux-a, što korisniku znatno olakšava postupak instalacije i konfiguracije. U daljnjem tekstu opisati će se postupak instalacije i osnovni parametri za konfiguraciju Sympa paketa.

3.2. Instalacija

Sympa dolazi kao standardan paket u Debian i Mandrake distribucijama Linux-a i instalira se pomoću Dselect-a (Debian distribucija), Software manager-a (Mandrake distribucija) ili bilo koje druge aplikacije koja može otpakirati .deb ili .rpm pakete. Budući da je skoro cijeli programski paket napisan u Perl-u, za njegov ispravan rad potrebno je imati instaliran paket Perl inačica 5.004_03 ili više. Da bi Sympa Mailing List Manager funkcionirao, potrebno je također imati instaliran i konfiguriran mail poslužitelj (npr. Sendmail, Postfix ili Qmail) i web poslužitelj (npr. Apache) ukoliko se koristi pristup pomoću web stranice (wwsympa). Prilikom instalacije paketa kreirati će se direktoriji /etc/sympa, /var/lib/sympa i /usr/lib/sympa, u kojima se nalaze sve datoteke potrebne za rad programa. U aliases datoteci koju koristi mail poslužitelj (npr. /etc/sendmail/aliases ili /etc/postfix/aliases) prilikom instalacije Sympa-e biti će dodani sljedeći redovi:

Page 22: mail_posluzitelj

Ukoliko su dodani redovi komentirani znakom #, potrebno je obrisati taj znak, snimiti aliases datoteku i pokrenuti naredbu newaliases kako bi mail poslužitelj prihvatio unesene promjene. Instalacija paketa će također u direktoriju /var/www/cgi-bin/ kreirati CGI skriptu wwsympa.fcgi koja se koristi za pristup mailing listama pomoću web sučelja. Pristup preko web-a znatno olakšava konfiguraciju i kreiranje mailing liste, kao isamo pretplaćivanje na mailing listu i pregledavanje arhiva koje sadrže sve poruke koje su bile poslane na mailing listu. Da bi CGI skripta wwwsympa.fcgi ispravno funkcionirala potrebno je podesiti da se pokreće sa ovlastima korisnika sympa i grupe sympa, što je najlakše učiniti u nekom file manageru (npr. Konqueror). U datoteci /etc/http/conf/commonhttpd.conf potrebno je dodati alias koji će pokazivati na skriptu, kako se za pristup ne bi trebalo svaki puta u web pregledniku upisivati http://www.imeracunala.domena.hr/cgi-bin/wwsympa.fcgi.

Primjer: Alias se dodaje upisivanjem sljedećeg reda u commonhttpd.conf datoteku:

U ovom primjeru alias je wws, pa će se upisivanjem www.imeracunala.domena.hr/wws pokrenuti skripta. Iz primjera je očito je da alias može biti potpuno proizvoljan i o njemu odlučuje osoba koja održava web poslužitelj.

3.3. Konfiguracija

Svi parametri za konfiguraciju Sympa-e nalaze se u datoteci /etc/sympa/sympa.conf i prilikom instalacije postavljaju se na uobičajene vrijednosti koje su u većini slučajeva dovoljne za normalan rad programa. Prilikom svakog mijenjanja parametara u datoteci potrebno je ponovo pokrenuti program naredbom # /etc/init.d/sympa restart kako bi promijenjene vrijednosti bile uvažene. Format sympa.conf datoteke vrlo je jednostavan. Datoteka se sastoji od konfiguracijskih parametara iza kojih su navedene njihove vrijednosti, a redovi koji počinju sa znakom # tretiraju se kao komentar.

Primjer: Dio sympa.conf datoteke:

# added by sympa-3.2.1 rpm Thu Mar 7 14:10:23 EST 2002 listmaster: root sympa: "|/usr/lib/sympa/bin/queue 0 sympa" sympa-request: [email protected] sympa-owner: [email protected]

ScriptAlias /wws /var/www/cgi-bin/wwsympa.fcgi

Page 23: mail_posluzitelj

Najvažniji parametri sympa.conf datoteke su: ˇ host Ovaj parametar je obavezan i predstavlja ime računala na kojemu je pokrenut Sympa MLM. Ime računala pojaviti će se u From: polju u e-mail-ovima koje program vraća kao odgovor na administrativne upite i pretplaćivanje na listu. To znači da se mail poslužitelj na računalu na kojem je pokrenut Sympa paket mora također odazivati na isto ime. U novijim inačicama Sympa-e ovaj parametar zamijenjen je parametrom domain. ˇ email Definira korisničko ime u email adresi (dio ispred @ znaka) koje će se pojaviti u polju From: u porukama koje Sympa vraća kao odgovor na administrativne upite i pretplaćivanje na listu. Uobičajena vrijednost ovog parametra je sympa. ˇ listmaster Lista email adresa listmaster-a tj. osoba koje su su ovlaštene za održavanje i promjenu konfiguracije Sympa-e. Ukoliko lista ima više listmaster-a, potrebno je pojedine adrese odvojiti zarezom. ˇ wwsympa_url URL adresa na kojoj se nalazi web sučelje za pristup Sympa paketu. Vrijednost ovog parametra uobičajeno je postavljena na http://ime_racunala/wws i potrebno ju je promijeniti ukoliko se koristi drugačiji alias za pokretanje skripte. ˇ cookie Ovaj parametar definira string koji se koristi za generiranje i provjeru zaporke koja se koristi kod prijavljivanja u Sympa sustav. Na taj način se generiranje zaporke razlikuje za pojedine poslužitelje na kojima je instaliran Sympa Mailing List Manager. String se postavlja automatski kod instalacije i nije ga potrebno mijenjati. Ako se string ipak mijenja, sve do tada kreirane zaporke više neće vrijediti. ˇ create_list Definira korisnike koji mogu kreirati nove liste. Uobičajena vrijednost za ovaj

# Configuration file for Sympa # many parameters are optional (defined in src/Conf.pm) # refer to the documentation for a detailed list of parameters

# Directory containing config. files for the lists, helpfile and list # of lists. Non-absolute path is relative to this directory. home /var/lib/sympa/expl

# Directory for configuration files # It also contains scenari/ and templates/ directories etc /etc/sympa

# File containing Sympa PID while running. Sympa also locks this file to # ensure that it isn't running more than once. Caution : user sympa # need to write access without special privilegee. pidfile /var/run/sympa/sympa.pid

Page 24: mail_posluzitelj

parametar je listmaster. ˇ home Postavlja home direktorij Sympa-e u čijim će se poddirektorijima nalaziti različite mailing liste. Ovaj parametar je uobičajeno postavljen na vrijednost /var/lib/sympa/expl/ što i odgovara home direktoriju koji je kreiranprilikom instalacije paketa. ˇ etc Definira mjesto gdje se nalaze konfiguracijske datoteke (uobičajeno /etc/sympa/). ˇ sendmail Ovim parametrom definira se naredba kojom se pokreće mail poslužitelj kojega Sympa koristi prilikom slanja poruka. Uobičajena vrijednost ovog parametra je /usr/sbin/sendmail. Potrebno je uočiti da mail poslužitelji koji nastoje biti kompatibilni sa Sendmail poslužiteljem, npr. Postfix poslužitelj, također koriste naredbu /usr/sbin/sendmail. Ostali parametri koji su manje bitni i rjeđe korišteni mogu se pronaći u dokumentaciji Sympa paketa, koja se prilikom instalacije postavlja u direktorij /usr/share/doc/sympa ili http://listes.cru.fr/sympa.

3.4. Konfiguracija i korištenje WWSympa sučelja

Web sučelje za konfiguraciju i održavanje Sympa manager-a (WWSympa) važan je dio Sympa paketa. Zbog svoje jednostavnosti, WWSympa u potpunosti mijenja klasičan način konfiguracije, pretplaćivanja i održavanja putem e-mail poruka. WWSympa-u je također potrebno konfigurirati, a parametri za konfiguraciju se nalaze u datoteci /etc/sympa/wwsympa.conf. Najvažniji parametri wwsympa.conf datoteke su: ˇ use_fast_cgi Omogućava pokretanje wwsympa.fcgi skripte u fast-cgi modu. Vrijednosti ovog parametra mogu biti 0 (onemogućeno) ili 1 (omogućeno). Ovakav načina pokretanja skripte se preporučuje zato što rezultira puno bržim radom skripte, no ukoliko web poslužitelj nije kompajliran s podrškom za fast-cgi mod, potrebno je ovu opciju onemogućiti. ˇ arc_path Definira mjesto na kojemu će se nalaziti html arhive poruka koje su slane na mailing liste. Ukoliko se planira lista koja će imati jako velik broj poruka, poželjno je da se arhive ne nalaze na istoj particiji kao i Sympa. Uobičajena vrijednost ovog parametra je /var/spool/sympa/wwsarchive. ˇ icons_url CGI skripti je potrebno navesti direktorij u kojemu se nalaze ikone koje će se koristiti pri radu sa web sučeljem. Uobičajeno mjesto na kojem se nalaze ikone je /var/www/icons/sympa i ta vrijednost je postavljena u wwsympa.conf datoteci prilikom instalacije. Da bi ikone bile ispravno prikazane potrebno je u web poslužitelju napraviti alias koji će pokazivati na /var/www/icons/sympa direktorij, zato što poslužitelj dohvaća adrese u relativnom odnosu na svoj korijenski direktorij koji je najčešće /var/www/html. Primjer: Da bi ikone bile ispravno prikazane, u /etc/httpd/conf/commonhttpd.conf

Page 25: mail_posluzitelj

datoteku dodaje se sljedeći redak: Alias /var/www/icons /var/www/icons Ostali konfiguracijski parametri za WWSympa sučelje mogu se pronaći u dokumentaciji Sympa paketa. Nakon što je wwsympa sučelje pravilno konfigurirano pristupa mu se pomoću web preglednika, u kojemu je potrebno utipkati web adresu na kojoj se sučelje nalazi, što rezultira otvaranjem glavnog prozora web sučelja (Slika 2.1).

Slika 2.1 Glavni prozor WWSympa web sučelja

U polja email i password je potrebno upisati vlastitu mail adresu i zaporku za prijavljivanje u Sympa sustav. U slučaju da korisnik pristupa Sympa-i prvi puta ilije zaboravio zaporku, potrebno je izvaditi zaporku pritiskom na link Send me a password koji će otvoriti novi prozor u kojem je potrebno upisati svoju mail adresu i pokrenuti generiranje zaporke (Slika 2.2). Generirana zaporka će biti poslana na mail adresu koju je korisnik naveo u polju Your e-mail address.

Page 26: mail_posluzitelj

Slika 2.2 Prozor za izdavanje nove zaporke

Kada se prijavi na sustav, korisniku se otvara njegova home stranica na kojoj može pogledati na koje se sve liste može pretplatiti (view all lists), promijeniti zaporku (Preferences) i pregledavati arhive poruka sa lista na koje je pretplaćen (your subscriptions). Ukoliko se korisnik prijavi na sustav sa email adresom koja je u sympa.conf datoteci navedena kao adresa Listmastera otvoriti će se home prozor sa više opcija nego kod običnog korisnika (Slika 2.3).

Page 27: mail_posluzitelj

Slika 2.3 Home stranica Listmaster korisnika

Tako na primjer Listmaster može kreirati novu listu (Create list), mijenjati konfiguraciju Sympa-e (Sympa admin), a u prozoru pod nazivom Your subscriptions, Listmaster može manipulirati listama i mijenjati njihovu konfiguraciju prolaskom kroz niz izbornika, što je svakako jednostavnije od ručnog pisanja conf datoteke.

3.5. Kreiranje mailing liste

Najjednostavniji i preporučeni način kreiranja mailing liste je pomoću web sučelja, u kojem se parametri nove liste upisuju u za to zadana polja ili se biraju iz padajućih izbornika (Slika 2.4).

Page 28: mail_posluzitelj

Slika 2.4 Prozor za kreiranje nove liste

Kada je lista kreirana, Listmaster može mijenjati njenu konfiguraciju pomoću opcije Admin koja postoji za svaku listu (u prozoru Your subscriptions) i omogućava jednostavno podešavanje svih parametara liste. Ako iz nekog razloga kreiranje liste pomoću web sučelja nije uspjelo, lista se može kreirati i ručno. U direktoriju /var/lib/sympa/expl/ potrebno je napraviti poddirektorij koji se naziva po imenu liste i sadržava sve datoteke potrebne za rad liste. Datoteke i poddirektoriji koji se koriste za rad liste su sljedeći:

archives/ - ovo je poddirektorij bye.tpl config info invite.tpl homepage message.header message.footer reject.tpl remind.tpl removed.tpl stats subscribers welcome.tpl

Page 29: mail_posluzitelj

Ove datoteke nije potrebno ručno pisati već se gotovi primjeri ovakvih datoteka za različite konfiguracije mogu pronaći u direktoriju /usr/share/sympa/create_list_templates, pa ih je potrebno samo kopirati i po potrebi izmijeniti. Npr. ako korisnik želi diskusijsku listu, upotrijebiti će konfiguracijsku datoteku iz poddirektorija discussion_list. Svi primjeri imaju naziv config.tpl, pa ih je potrebno nakon kopiranja preimenovati u config.

Da bi email-ovi pristizali na listu u alias datoteci mail poslužitelja je potrebno postaviti sljedeće alias-e:

Gore navedeni postupak je osnova za kreiranje liste, potrebno je još urediti config datoteku liste i definirati sadržaj .tpl datoteka o kojima ovisi izgled email poruka koje će pristizati korisnicima liste. Parametri config datoteke mogu se pronaći u dokumentaciji Sympa paketa. Ako je postupak kreiranja direktorija i alias-a ispravno proveden, podešavanje config i .tpl datoteka je moguće obaviti i preko web sučelja, budući da će se lista tada vidjeti i unutar njega.

3.6. Zaključak

Upotreba mailing lista u SOHO-u olakšava komunikaciju zaposlenika unutar radne grupe i omogućuje jednostavnije obavještavanje velikog broja klijenata i poslovnih partnera. Sympa je jednostavan, a ipak vrlo moćan paket za upravljanje mailing listama i bez problema se može koristiti za liste s više tisućakorisnika. Hardverski zahtjevi Sympa poslužitelja ovise o veličini mailing liste, npr. na PII računalu (300MHz) lista od 20000 korisnika opsluži se za 6-7 minuta(pod uvijetom da su svi korisnici dostupni) U slučaju jako velikih lista od otprilike stotinjak tisuća korisnika preporučuje se korištenje Open Source Mailing List Manager-a pod nazivom Majordomo, koji nažalost nije uključen u Debian i Mandrake distribucije Linux-a, što komplicira postupak njegove instalacije u odnosu na Sympa paket.

Ime_liste: "|/usr/lib/sympa/bin/queue Ime_liste" Ime_liste-request: "|/usr/lib/sympa/bin/queue Ime_liste -request" Ime_liste-editor: "|/usr/lib/sympa/bin/queue Ime_liste -editor" Ime_liste-owner: "|/usr/lib/sympa/bin/bouncequeue Ime_liste" Ime_liste-subscribe: "|/usr/lib/sympa/bin/queue Ime_liste -subscribe" Ime_liste-unsubscribe: "|/usr/lib/sympa/bin/queue Ime_liste -unsubscribe"