apostila16_postfix

Upload: fabrizio-silva

Post on 19-Feb-2018

215 views

Category:

Documents


0 download

TRANSCRIPT

  • 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.

    ""