7/23/2019 apostila16_postfix
1/11
Linux Network Servers
Postfix
Na dcada de 70, as primeiras mensagens eram enviadas pela Arpanet,antecessora da atual Internet. A troca de mensagens era feita em sua maioria porestudantes, pesquisadores e profissionais dos grandes centros de pesquisa, restrita apoucos usurios que tinham acesso a essa rede. As mensagens eram enviadas atravsde um protocolo semelhante ao atual SM!, que foi definido apenas em "#$%.
& Sendmail era o servidor de correios mais utili'ado na dcada de #0, causandoamor e (dio aos administradores de sistema. )ausava amor aqueles que tinhamtempo de ler, estudar e compreender o seu funcionamento comple*o e cheio demacros. +dio para aqueles que precisavam apenas rotear suas mensagens e nohavia necessidade de perder horas e mais horas tentando compreender seufuncionamento.
A sua forma monol-tica tamm era um grande ponto negativo. Sendo apenasum /nico processo controlando todas as etapas de transmisso de email, o Sendmailapresentava in/meras falhas de segurana, de maior risco quando e*ecutado em
modo root. Muitos servidores eram invadidos por crac1ers e naturalmente osadministradores de sistema procuravam alternativas. Na poca no e*istiam muitasalternativas, os administradores continuavam a utili'ar o Sendmail.
2m "##$ as primeiras vers3es do !ostfi* comearam a surgir. 4ietse 5enema seu criador e possui in/meros traalhos relacionados 6 segurana da informao.4ietse pesquisador da IM at ho8e. A primeira verso oficial do !ostfi*, em soft9arelivre, foi lanada em :e'emro de "##$.
Caractersticas do Postfix:
Sistema multitarefa ; & !osftif* possui um con8unto de m(dulos que
desempenham um papel espec-fico para cada etapa do trfego de e;mails, estecomportamento permite melhor desempenho em equipamentos multiprocessados.
Separao de privilgios; & !ostfi* e*ecutado em chroot que restringe oacesso a arquivos internos a 8aula, separando assim muito de seus m(dulos.
odular; < poss-vel criar m(dulos para traalhar em con8unto com o !ostfi*,tornando;o facilmente e*tend-vel.
Compati!ilidade; & !ostfi* foi desenvolvido para suportar os formatos dearma'enamentos de mensagens e*istentes.
"
7/23/2019 apostila16_postfix
2/11
Linux Network Servers&s arquivos de configurao do !ostfi*, podem ser encontrados no diret(rio
"etc"postfix, onde os seus principais arquivos so=
#$ o servidor de e;mails propriamente dito. Significa Mail ransport Agent.2*emplos de MA= !ostfi*, >mail, 2*im, Sendmail etc.
%$ um nome que usado para designar os clientes de e;mail como, por e*emplo,o 2volution, ?mail, hunderird, &utloo1 etc.
&$ um intermedirio entre o MA e o M@A. Seu uso no origat(rio, mas /tilpara aplicar filtros antispam, remover v-rus ane*ados nas mensagens e fa'erencaminhamento de e;mails. 2*emplos= etchmail e procmail.
%
main'cf ; Arquivo principal do !ostfi* onde ficam todas asconfigura3es principais relacionadas ao funcionamento do !ostfi*.
master'cf; < o arquivo que controla a ao de cada daemon do
!ostfi*, com ele podemos di'er quantos processos smtpd estaroem e*ecuo. )aso tenhamos uma estrutura grande de mquina,uma a8uste nesses daemons sero em compensadoras em termosde performance.
7/23/2019 apostila16_postfix
3/11
Linux Network Servers5amos instalar o !ostfi* via aptitude=B aptitude install postfi*
(!s= No caso do :eian, quando instalarmos o !ostfi*, ele automaticamente remove oservidor padro que o 2*imC.
:urante a instalao do pacote postfi* uma 8anela ser aerta a fim de coletar dadospara gerar uma configurao padro para o arquivo main.cf.
D
7/23/2019 apostila16_postfix
4/11
Linux Network Servers
A primeira pergunta se refere a funo do servidor. A opo mais usada EInternetSiteE.
)nternet SiteF 2nvia e recee e;mails diretamente.
wit* smart*ostF & servidor recee mensagens, mas o envio fica a cargo de outroservidor.
Satellite s+stemF & servidor envia mensagens atravs de outro servidor e norecee mensagens.
Local onl+F !ermite apenas que os usurios autenticados no servidor troquem e;mail entre si Gusada em redes de terminais leveH.
C
7/23/2019 apostila16_postfix
5/11
Linux Network Servers!ode surgir uma pergunta sore o dom-nio do servidor que ser inclu-do nasmensagens enviadas. Se voc est usando um servidor dedicado use o seu dom-nioregistrado, por e*emplo EClinu*.com.rE. Se for s( para testes, dei*e o padro Gnoprecisa alterarH.
!ode surgir uma pergunta sore :estinos aceitos pelo servidor. 2ste campo deveconter o nome da mquina GhostnameH, o dom-nio registrado Gse houverH, seguido deElocalhost.localdomainE e ElocalhostE, todos separados por v-rgula e espao.
!or e*emplo=mJ, Clinu*.com.r, localhost.localdomain, localhost
>ualquer e;mail que se8a encaminhado para qualquer um dos endereos acima sercolocado na cai*a postal da conta do administrador.5e8amos o arquivo de configurao main.cf=
B vi KetcKpostfi*Kmain.cf
,, -anner .ue ser/ mostrado nas conex0es' 1 importante mudar'smtpd2!anner 3 4m+*ostname 5S#P 4mail2name 6&e!ian"7N%8
iff F no
,, odificar o domnio caso o %$9s no fier corretamente; mas deixamosativado;,, pois isso tra!al*o do prdela+ed mail> warningsBdelaL9arningLtime F Ch
,, Par?metros de criptografia', #LS parameterssmtpdLtlsLcertLfileFKetcKsslKcertsKssl;cert;sna1eoil.pemsmtpdLtlsL1eLfileFKetcKsslKprivateKssl;cert;sna1eoil.1esmtpdLuseLtlsFessmtpdLtlsLsessionLcacheLdataase F tree=OqueueLdirectorPKsmtpdLscachesmtpLtlsLsessionLcacheLdataase F tree=OqueueLdirectorPKsmtpLscache
, See "usr"s*are"doc"postfix"#LS2@5$&5'g in t*e postfixAdoc package for, information on ena!ling SSL in t*e smtp client'
J
7/23/2019 apostila16_postfix
6/11
Linux Network Servers,, Nessa opo; precisamos colocar o *ostname da m/.uina e o domnio.ue ,, con*ecido como B&N'mhostname F mail.Clinu*.com.r
,, $r.uivos onde so configurados os alias de eAmails'aliasLmaps F hash=KetcKaliasesaliasLdataase F hash=KetcKaliases
,, &efine a origem local; .ue por padro o mesmo B&N .ue est/ em "etc"mailname'morigin F KetcKmailname
,, &omnios .ue o seu servidor pode rece!er mensagens'mdestination F mail.Clinu*.com.r, localhost.Clinu*.com.r, , localhost
,, 5ssa opo s< usada se o seu servidor fa @ela+ para outros servidores,, de eAmail'relahost F
,, Nesse campo deveremos colocar apenas os )P9s .ue podem realmentefaer rela+,, em seu servidor',, C%)&$&(; se adicionarmos )P9s ou classes demais; o servidor poder/ viraralvo,, de spammers'mnet9or1s F "%7.0.0.0K$ "#%."Q$.%00.0K%C
,, Padro de entrega das mensagens'Nesse caso usado o mo*.mailo*Lcommand F procmail ;a E2R2NSI&NE
,, #aman*o m/ximo de caixaApostal para entrega local
mailo*Lsi'eLlimit F 0
,, 5m alguns clientes; podemos adicionar um sinal espcial ao endereo deeAmail,, para direcionar mensagens a uma determinada pasta; por exemplo'recipientLdelimiter F
,, )nterfaces de rede a .ual o Postfix pode faer !ind; ou se=a; esta!elecer,, conex0es' ( padro do &e!ian seria todas as interfaces'inetLinterfaces F all
&s= & !ostfi* possui J%J linhas de configurao, s( que somente as que estosetadas com valores diferentes do padro que so inseridas no arquivo.
Q
7/23/2019 apostila16_postfix
7/11
Linux Network Servers5isuali'e o formato do arquivo master.cf=B cat KetcKpostfi*Kmaster.cf
!odemos agora reiniciar o postfi*=B KetcKinit.dKpostfi* restart
5e8a se a porta %J SM! est pronta para receer cone*3es=B netstat ;nlptB fuser ;v %JKtcp
!recisamos instalar um servidor !&!D para receermos as mensagens. Nesse caso,usaremos o >popper=B aptitude install qppopper
& programa qppopper roda atravs do servio inetd. 5isuali'e o seu registro noarquivo inetd.conf=
B cat KetcKinetd.conf
& servio !&!D roda na porta ""0, verifique se a cone*oe est ativa=
B netstat ;nlpt
B fuser ;v ""0Ktcp
#estando o Postfix
!or padro, vamos utili'ar o formato de arma'enagem de mensagens mo*. 2sseformato grava em um arquivo s( todos as mensagens do usurio. !ortanto os e;mailsdos usuarios esto no KvarKspoolKmail e cada usurio ter um arquivo com o seu nome.&s usurios que esto criados no sistema TN@KUinu*, so vlidos como usurios do!ostfi*. &utro padro que pode ser utili'ado o maildir que cria uma estrutura dediret(rios para o usurio, onde cada mensagem um arquivo separado.
7
7/23/2019 apostila16_postfix
8/11
Linux Network Servers5amos fa'er o um teste e enviar uma mensagem via telnet=
B telnet localhost %J
)omandos=
Ap(s o envio do e;mail, verifique se o usurio local receeu a mensagem=
B cd KvarKspoolKmailB lsB cat usuario
!odemos receer a mensagem tamm por telnet acessando a porta ""0=B telnet localhost ""0
&s= !or padro o protocolo !&!D no criptografado. Isso pode fa'er com que uminvasor capture os pacotes e consiga descorir usurio e senha de quem estacessando. )aso se8a necessrio, podemos visuali'ar a fila de e;mails com o seguintecomando=B mailq
$
V2U& ; Inicia a conversa Gidentificao do emissorHMAIU ; !ara indicar o emissor
W)! ; !ara indicar o receptor:AA ; e*to do e;mail. ; Indica o fim da mensagem>@I ; fecha o telnet
7/23/2019 apostila16_postfix
9/11
Linux Network ServersCriando $lias no Postfix
!odemos criar alias para que um usurio possa receer vrios e;mailXs diferentes namesma conta.
2dite o arquivo de alias e crie um para o seu usurio=B vi KetcKaliasesusuarioLdeLalias= usuarioLe*istente
!ara validar essas modifica3es e gerar o arquivo de hash, precisamos usar ocomando postalias=B postalias KetcKaliases
5erifique se o arquivo aliases.d foi atuali'ado=B stat KetcKaliases.d
Agora podemos fa'er um teste via telnet, enviando o e;mail para o usurio de alias=B telnet localhost %J
Se tudo deu certo, a mensagem destinada ao usurio de alias, vai ser arma'enada nacai*a postal do usurio real=B cd KvarKspoolKmailB cat usuario
#
7/23/2019 apostila16_postfix
10/11
Linux Network ServersCourier PopD e )map
@m servidor de e;mail no estaria completo sem a instalao de um EdaemonE popD eimap. !ara isso, iremos utili'ar o soft9are )ourier e reali'ar a integrao com o pam=
!ara que o )ourier funcione, necessrio instalar os seguintes pacotes=
B aptitude install )ourier;authdaemon )ourier;authli courier;asecourier;imap courier;pop
Ap(s este passo, edite o arquivo de configurao do !ostfi*, acrescentando estaentrada=
B vim KetcK!ostfi*Kmain.cfhomeLmailo* F MaildirKmailo*Lcommand F KusrKinKprocmail ;a E2R2NSI&NE :2A@UFV&M2KMaildirK
MAIU:IWFV&M2KMaildirK
Agora, a8uste o !AM para que nossos usurios possam efetuar autenticao=
B vim KetcKpam.dKpopDYinclude common;authYinclude common;accountYinclude common;pass9ordYinclude common;session
B vim KetcKpam.dKimapYinclude common;authYinclude common;accountYinclude common;pass9ordYinclude common;session
B vim KetcKpam.dKsmtpYinclude common;authYinclude common;accountYinclude common;pass9ordYinclude common;session
)riando as cai*as postais=B maildirma1e KhomeKalunoKMaildirB maildirma1e KhomeKalunoKMaildirK.2nviadasB maildirma1e KhomeKalunoKMaildirK.WascunhoB maildirma1e KhomeKalunoKMaildirK.Ui*eira
B maildirma1e KhomeKalunoKMaildirK.Spam
"0
7/23/2019 apostila16_postfix
11/11
Linux Network Servers& comando maildirma1e um comando do pacote courier.
!ara maiores informa3es=http=KK999.courier;mta.orgKmaildirma1e.html
A8uste as permiss3es do diret(rio aluno, para que ele possa receer as mensagens=B cho9n aluno=aluno ;W KhomeKaluno
Assim como fi'emos no teste do SM!, utili'aremos o telnet para testar as portas IMA!e !&!D.B telnet localhost ""0user alunopass "%DCJQquit
este a porta "CD, responsvel pelo servio IMA!=B telnet localhost "CDa login aluno "%DCJQlogout
Se voc conseguiu ler as mensagens, significa que o seu servidor est pronto parareceer e transmitir mensagens atravs da internet.
&servao= No esquea de pulicar o registro MR no seu :NS, configurarcorretamente o campo R, tamm no :NS e configurar corretamente as consultas a:NS Weverso.
""