Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Postfix
Postfix
Bajoelsistemaoperativo:
LinuxUBUNTU8.4
fechadecreacin ltimamodificacin
: 10deoctubre : 19deoctubre
PRESENTACION
Enbasealalasredesdecomunicacinlosserviciosdemensajeriahan tomadounacaracateristicamaspropiadandoleellugaraunaaplicacin comolossonlosservidoresdecorreo;estosnospermitenenviar mensajesdeunosusuariosaotrosconindependenciadelaredquese esteutilizando. Paralograrlosedefinenunaseriedeprotocolos,cadaunoconuna finalidad: 1.SMTP:simplemailtransportprotocol esteseutilizaparaquese intercambienlosmensajesentreservidoresdecorreo,esbasadoen unmodeloclienteservidor . UnadelaslimitacionesdelSMTP originalesquenofacilitamtodosdeautenticacinalos emisores,asqueenestemanualsepretendesuperarloatravesde pam,(`PluggableAuthenticationModules;modulodeautenticacion enlazable). seutilizapara 2.POP:postofficetransportprotocol obtener/descargarlosmensajesguardadosenelservidoralusuario sufinalidadeslamisma 3.IMAP:internetmessageaccessprotocol quepopaunquefuncionadiferenteyvimosalgunasventajascomo tiemposderespuestarapida,accesoremotoalosmensajes,accesos simultaneosamultiplesclientes,vigilanciaenelestadodel mensaje,agilidadenlasbusquedas,entreotrasventajassobreel protocolopopporlocualnosbasamosmasenIMAP. Entoncesesporesoquedecimosqueunservidordecorreoconstaen realidaddedosservidoreselSMTPencargadodeenviaryrecibir mensajes,yunservidor POP/IMAPqueseraelquepermitealosusuariosobtenersusmensajes; paraesto losusuariossesirvendeclientes,esdecir,programasque implementanunprotocoloPOP/IMAPqueenalgunasocasioneselclientese ejecutaenlamquinadelusuario(comoelcasodeMozillaMail, Evolution,Outlook).Sinembargoexisteotraposibilidad:queelcliente decorreonoseejecuteenlamquinadelusuario;eselcasodelos clientesviaweb,comoHotmail,OpenWebmailoterra.Enellosla arquitecturadelservicioesmscompleja:elcualnoaplicaeneste manual.
CONTENIDO 1.DIRECCIONDEREDESTATICA 2.CONFIGURACIONDEBIND 3.INSTALACIONYCONFIGURACIONDEPOSTFIX 4.PROBARMENSAJESCONMUTT 5.ALMACENAMIENTOYTIPOSDECORREO 5.1DOVECOT 5.2COURRIER 6.AUTENTICACIONATRAVESDEPAM 7.CONFIGURACIONDEUNMDA 7.1EVOLUTION 7.2TUNDERBHIND 8.AUTENTICACIONATRAVESDESASL 9.TLS 10.OPENLDAP 11.ADMINISTRACIONDELDAP 12.INTEGRACIONPOSTFIXCONOPENLDAP 13.USUARIOSVIRTUALES 14.ANTIVIRUS 15.ANTIESPAM
MANUALDECONFIGURACIONDESERVIDORDECORREO
1.DIRECCIONDEREDESTATICA
Existenenlaactualidad,unagrancantidaddeservdoresdecorreo,pero paranuestrocasoutilizaremosPostfixyaqueesunservidorfacilde manejar,esmuycompatibleconotrosoftwareyexistemuybuena documentacionparasusoporte. ParaEsteproyecto,utilizaremosladistribucion Loprimeroquedebemostenerencuenta,esqueutilizaremosuna direccionIPestaticaparapoderrealizartodaslaspruebas convenientes,claroestaquemodificaremosestadireccionestaticaauna direcciondeDHCP,parateneraccesoainternetypoderdescargarlos paquetesqueseannecesarios.
EmpezaremosentoncesinstalandoDNS(ServidordeNombresdeDominio)
2.INSTALACIONYCONFIGURACIONDEBIND
BindeselnombredeldemoniodeDNS recordemosquedeacuerdoaladistribuciondelinuxsepuedellamar BINDoNAMED. InstalamoselpaquetedeBind9. root@regocorreo:~# aptgetinstallbind9
Luegoconfiguraremosesteservidor. root@regocorreo:~# root@regocorreo:~# configuracion) Definiremosnuestraszonas Zonadirecta zone"lucas.com"{ typemaster; file"/etc/bind/directa.db"; }; Nuestrodominiosellamaralucas.com,estipomaestroyledamosla rutadondeestaraelarchivodelazonadirecta. Zonainversa zone"1.168.192.inaddr.arpa"{ typemaster; file"/etc/bind/inversa.db"; }; Ahoracrearemoslosarchivosdondepondremoslaconfiguraciondelas zonas. Crearemosprimerolazonadirecta: root@regocorreo:~# root@regocorreo:~# root@regocorreo:~# cd/etc/bind/ touchdirecta.db nanodirecta.db cd/etc/bind/ nanonamed.conf (Editaremoselarchivode
directa.db
Agregamosunhost,elcualseranuestroservidordecorreosconel nombrederegocorreoconladireccionip192.168.1.1 LuegoagregamosunregistroMXconprioidad10yapuntandoalhost regocorreoqueyatenemosdefinido. Conestoloqueestamoshaciendoesquetodaslaspeticionesdecorreo electronicoseranredireccionasalhostregocorreo. Ahoracrearemoslazonainversa: root@regocorreo:~# root@regocorreo:~# root@regocorreo:~# cd/etc/bind/ touchinversa.db nanoinversa.db (CreamoselArchivo)
inversa.db
3.INSTALACIONYCONFIGURACIONDEPOSTFIX
Loprimeroquerealizaremosserainstalarnuestroservidordecorreo, queparanuestrocasoseraPostfix. Primerolobuscaremosenlacachedelosrepositorios,paraversiel paqueteseencuentra. root@regocorreo:~# aptcachesearchpostfix
Conesto,tendremosnuestroMTA(AgenteTransferenciaCorreo)Servidor decorreo.Valedestacarqueesteservidorcorreraporelpuerto25. Vamosaconfigurarlo,pordefectodespuesdeinstalarloquedaun directorioen Alliseencontraranlosarchivosdeconfiguracion. /etc/ root@regocorreo:~# cd/etc/postfix/ root@regocorreo:~# (Archivoprincipaldeconfiguracion nanomain.cf dondedefiniremoslosparametrosqueesteservidortendra) nosdirigimosalasultimaslineasdondeseencontraranlasvariablesa modificar: regocorreo.lucas.com myhostname (Nombredelhostquetieneelservidordecorreo,recuerdequeeste nombredebedeserelquehemosconfiguradoenelDNS) lucas.com mydomain (Dominioparaelcualrecibiremoscorreoselectronicos)
lucas.com mydestination (Podremosrecibircorreosparalamaquinalocal,donderealizaremos nuestrasprimeraspruebas) 192.168.1.0/24,127.0.0.0/8 mynetworks (Definiremosladirecciondered,dedondequeramosquepuedansaliro entrarloscorreos) Estassonlasopcionesbasicas,perorecuerdequesonmuchaslas variablesquepodremosdefinirqueeneltranscursodelmanualiremos agregando. Ahorareiniciamoselservidorparacomprobarquenoexistanerrores,y paraquecarguelaultimaconfiguracionquerealizamos root@regocorreo:~# /etc/init.d/postfixrestart
Ahoraloqueharemosseratratardeconectarnosalservidordecorreo pormediodetelnetatravesdelpuerto25. root@regocorreo:~# telnet127.0.0.125 Tryingto127.0.0.1. escapecharacteris'^]'. 220regocorreo.lucas.comESMTPpostfix(ubutu) Alconectarsepormediodelpuerto25,identificaelservidordecorreo ymuestraelbannerdebienvenida. Ahoraloqueharemosseraverlosmodulosylostiposde auntenticacionesquesoportaelservidor. root@regocorreo:~# telnet127.0.0.125 Tryingto127.0.0.1. escapecharacteris'^]'. 220regocorreo.lucas.comESMTPpostfix(ubutu) <ehloHOLA (Digitamosestecomando,quenosindicaqueabrimosunaseccionconeste servidoratravesdelpuerto25,paraverificarlosmodulososoporte quetienecargados.)
4.PROBARLOSMENSAJES
Ahoraprobaremosenviandonosmensajesparacomprobarquefuncione nuestroservidordecorreo. Creamosunusuarioenelsistema root@regocorreo:~# root@regocorreo:~# useraddmnew passwdnew
medicequeelusuarionoexiste,quesiquierocreareldirectorio. LerespondemosS
Enprimerainstancia,muttapareceradeestaformayaqueenelbuzonde entradanohayningunmensaje.
ConlateclaMpodremosenviarunnuevocorreoelectronico.
(Esteseraelusuario,alquequeremosquellegueel
Nossaldraunencabezadoconlosparametrosprincipalesparaenviarel correoelectronico.
Y.
5.ALMACENAMIENTOYTIPODECORREOS
Elalmacenamientodeloscorreos,esunaparteimportantequedebemosde tenerencuenta,yaqueeslamaneradecomoseranalmacenadosnuestros correos,ycomoseraelprocesotantodelecuracomoescrituradeeste. Existenvariostiposdealmacenamientodecorreo,peroenestemanual solomanejaremos2queseran MaildiryMailbox. Primeroquetodo,debemossaberqueestostiposdealmacenamientoestan ligadosalservidordePopeImap,queutilicemos. Dovecot esunservidorquemaneja Mailbox yaquelosmensajesseguardan enunnicoarchivoenelquesevanencolandolosmensajesamedidaque vanllegandoalbuzn.
todosloscorreoselecronicosusandoesteservidorsonalmacenadosen estedirectorio dondeporcadausuario,segeneraun /var/mail/ fichero. Ladesventajadeesteformatoesqueelprocesodelecturayescritura sehacemaslento,yaquetocabuscardentrodelficherocorrespondiente elcorreo,yencasodequesellegaseaborraresteficheroperderiamos TODOSnuestroscorreos,siendovulnerableaposiblesataques. CourieryCyrus son2servidoresdePopeImapqueutilzanMaildircomo formatodealmacenamiento.
6.INSTALACIONYCONFIGURACIONDELOS PROTOCOLOSIMAPYPOP3
Ahoraloqueharemosserainstalarlosprotocolosdepop3eimap,que sonlosencargadosdedescargarloscorreos,desdeunclienteatraves delservidor. Cabedestacar,quePop3loquehaceesconectarsealservidordecorreo atravesdelpuerto110ydescargaloscorreoshastaelclientepara podervisualizarlos,cosacontrariaquepasaconImapqueseconectaal servidordecorreoatravesdelpuerto143ypodemosvisualizarlos correosremotamentedesdeelservidorsinlanecesidaddedescargarlos.
6.1INSTALACIONYCONFIGURACIONDEDOVECOT
EstoloharemosatravesdeDOVECOT,queesunodelostantoservidores depop3eimapqueexisten. Loqueharemosserabuscarenlacachedelosrepositoriosquesise encuentrenestospaquetesyluegoinstalarlos. root@regocorreo:~# aptcachesearchdovecot BuscamosquetengaDovecotsoporteparalosprotocolosPopeImap.
root@regocorreo:~# root@regocorreo:~#
aptgetinstalldovecotimapd aptgetinstalldovecotpop3d
Laslineasquedescomentaremos,modificaremosoagregaremosensu defecto,seran: pop3pop3simap protocols: (Seraelprotocoloquemanejaraelservidordovecot) * Listen: (Porcualpuertoescuchara.Siponemosunasterisco*esporquetomarael puertopordefecto) no disable_plaintext_auth: (Nosdice,quesiqueremosDeshabilitarlaautenticacionestextoplano, ledecimosqueno,porqueutilizaremoslaautenticacionentextoplano) yes ssl_disable: (Siqueremosdeshabilitar viajaranencriptados.) SSL Paratransporteseguroyaquelosdatos
61.1AUTENTICANDODOVECOTATRAVESDEPAM
ahorahabilitaremoslaautenticacionentextoplano. Alfinaldelarchivo agregaremosunaslineasquenos dovecot.conf permitiranautenticarnos. authdefault{ mechanisms=plainlogin passdbpam{ } userdbpasswd{ } socketlisten{ client{ #AssumingthedefaultPostfix$queue_directorysetting path=/var/spool/postfix/private/auth mode=0660 #AssumingthedefaultPostfixuserandgroup user=postfix group=postfix } } } Parafinalizarreinicamoselservicioparaquegurdeloscambios efectuados. Error!!!!Peroquepaso??Claro,loquepasaesqueagregamosestas lineasalfinal,paraentendermejorlasintaxisdecomoautentica Dovecotcontrapam,peroestaslineasseencuentrasdescomentadasalo largodetodoelarchivo,porendealtratardereiniciarelservicio nossacaunerrorquenosindicaqueexisteduplicadoenlaslineas. root@regocorreo:~# /etc/init.d/dovecotrestart
[fail]
Entoncesloqueharemosseracomentarlaslineasqueseencuentran repetidasalolargodelarchivo. Laslineasquecomentaremosson: #authdefault{line769 #mechanisms=plainline773 #passdbpam{line806 #}line839 #userdbpasswd{line907 #}line914 #user=rootline970 #}line1020 root@regocorreo:~# /etc/init.d/dovecotrestart
RestartingIMAP/POP3mailserverdovecot
6.2INSTALACIONYCONFIGURACIONDECOURIERIMAP
CourieresotroservidordePOPeIMAP,quenospermiteaccederalos correosyaseaparavisualizarlosremotamenteoparadescargarlos. LadiferenciaprincipaldeCourierconrespectodeDovecoteselformato dealmacenamiento,yaqueelformatodeCourieresMAILDIRalmacenalos correosenficherosdisitntosconnombresunicos. EstoesunaventajaconrespectodeMailbox,yaqueseaccederaalos correosmasfacilmenteyencasodequesellegaseaborrarunfichero deestos,soloseperderiaestemensajeencambiomailboxalalmacenar todosloscorreosenununicoarchivoporusuarioesmassuceptiblea daosyelprocesodelecturadeloscorreos,esmaslento. LoprimeroqueharemosserainstalarCourierconlosprotocolospope imap. SitenemosinstaladootroservidordeprotocolosdePopeImap,podremos tenerconflictosconeste,yaquelospuertosporlosquetrabajasestos protocolossonsiemprelosmismossinimportarconqueservidorlo estemoshaciendo. Paracomprobarquenoestecorriendoningunprotocolo,hacemoslaprueba contelnetalospuertos root@regocorreo:~# estecorriendo) telnet127.0.0.1110 (ComprobarquePopno
Trying127.0.0.1... telnet:Unabletoconnecttoremotehost:Connectionrefused Ahoraquesabemosqueningunodeestos2protocolosestafuncionando, procedemosconlainstalacionde Courierimap NOTA: SitenemosinstaladoalgunservidordePOPeIMAP,podriamostener conflictosyproducirerroresaltratardecorrerelservicio,lo recomendableesdesinstalarlo. root@regocorreo:~# aptcachesearchcourier (Buscamosenlacachequeseencuentrenlospaquetesrespectivosde Courier)
root@regocorreo:~#
aptgetinstallcourierimap
Alfinaldeestearchivo,agregamosestalineas: home_mailbox=Maildir/g mail_spool_directory=/var/spool/mail/ Ybuscamosestavariabledentrodelarchivoparacomentarla. #mailbox_command=procmaila"$EXTENSION" Laverdad,estavariablenoseencontroEntoncesloquesehizofue agregarlaycomentarla.(omitirsinoesnecesario) Ahoraloqueharemosseracrearunficheroconlasbasededatosdelos usuariosdelsistema,yaquelaautenticacionqueharemosseracontra Pam... root@regocorreo:~# root@regocorreo:~# cd/etc/courier pw2userdb>userdb
estocrearaunarchivodondeseencuentrantodoslosusuariosdel sistema.
Buscamoslasiguientelinea,ynosaseguramosquedentrodelascomillas
seencuentreelmetododeautenticacion. authmodulelist="authpam" Ahorareiniciamoselservicioparaquecargueloscambiosefectuados,y comprobarquenoexistenerrores. root@regocorreo:~# /etc/init.d/courierimapdrestart *StoppingCourierIMAPserver...{OK} *StartinfCourierIMAPserver...{OK} root@regocorreo:~# /etc/init.d/courierauthdaemonrestart *StoppingCourierIMAPserver...{OK} *StartinfCourierIMAPserver...{OK} root@regocorreo:~# telnet127.0.0.1143
AhorapodemosprobarlarecepciondecorreosatravesdeIMAP,los correosatravesdeunMUA,comopuedeserThunderbirdoEvolution.
7.1EVOLUTION
7.CONFIGURARELMDA
regocorreo@lucas.com
OpcionesdeEnviodeCorreo
regocorreo
Ahoraloqueharemosseramandaruncorreoaelmismousuario,para verificarquelosservidoresparaelenvioylarecepcionestan funcionandoperfectamente. Damosclickenlapartesuperiosizquierda,dondedice Nossaldranvariasopciones,peroelegimos Nota:(unaformamasrapidaespresionarsimultaneamentelas Ctrl+N) Mensajedecorreo. NUEVO. teclas
Damosclicen xito.
BandejadeEntrada
yvemosqueelmensajehallegadocon
Nota:
ya que en este manual se encuentran 2 clientesdecorreosconlasplataformasevolution y thunderbind no se deben crear confusiones, simplemente se quieren mostrar las alternativas que mejor se acomoden a sus criterios. No esta demas destacar que evolution fue de nuestra preferenciacomosedescribirmasadelante.
7.2THUNDERBIRD
ThunderbirdesunMUA(AgenteUsuariodeCorreo),odichoenotras palabrasesuncliente,quenospermiteconectarnosaunservidory teneraccesoanuestroscorreos. ThunderbirdesunsoftwarediseadoporlafamiliadeMozilla,poreso sunombrefinalesMozillaThunderbird,esmuchisimomaslivianoque otrosclientesdecorreoysoportamultiplesplataformas.Ademasquees SoftwareLibre. UnadelasventajasprincipalesdeesteSoftware,esel quetraepordefecto,porloquepermiteanalizarcadacorreoyasea recibidooenviado. Loprimeroqueharemosserabuscarenlacachedelosrepositorios,que estepaquetesiseencuentre,paraprocederconsuinstalacion. root@regocorreo:~ #aptcachesearchmozillathunderbird mozillathunderbirdenigmailTransitionalpackageforenigmail mozillathunderbirdbidiuiBiDirectionalsupportforIcedove mozillathunderbirdTransitionpackageformozillathunderbirdrename mozillathunderbirddevTransitionpackageformozillathunderbird rename Ahoraquesabemosquenuestropaqueteseencuentraenlosrepositorios, procedemosainstalarlo. root@regocorreo:~# aptgetinstallmozillathunderbird FiltroAntispam
EiniciamoselAsistente,paracrearunacuentadecorreo.
Seleccionamos
EmailAccount
(cuentadecorreo),YdamosclicenNext.
AhorallenaremosloscamposdeIdentidadquenospiden: YourName= LucasZuluaga (NombreconelquequeremosqueaparezcanuestroUsuario) EmailAddress= new@lucas.com (Indicamosunacuentadecorreoelectronico) Damosclicen Next paracontinuar
Ahoraseleccionaremosquetipodeprotocoloparaaccederalosmensajes utilizaremos,paranuestrocasoutilziaremos IMAP. IncomingServer =192.168.1.1 (NombredelServidordeIMAPoladireccionIP,quetieneelservidor) Damosclicken cuenta. Next paracontinuarconelprocesodeconfiguraciondela
8.AUTENTICACIONATRAVESDESASL
SASLSonlassiglasde vienesiendoenespaol SimpleAuthenticationandSecurityLayer (capadeseguridadyautenticacinsimple). que
Alfinaldeestearchivoingresamoslassiguienteslineas:
smtpd_sasl_auth_enable=yes smtpd_recipient_restrictions=permit_sasl_authenticated,reject smtpd_sasl_authenticated_header=yes smtpd_sasl_type=dovecot smtpd_sasl_path=private/auth smtp_sasl_auth_enable=no smtpd_sasl_security_options=
smtpd_sasl_auth_enable=yes (PermitiremoslaautenticacionpormediodeSasl) smtpd_recipient_restrictions=permit_sasl_authenticated,reject (Estoquieredecirquepermitiremosqueseenviencorreos,despuesde quehallansidovalidadosatravesdeSasl) smtpd_sasl_authenticated_header=yes (Siqueremosagregarleunacabezeraasasl) smtpd_sasl_type=dovecot (Eltipodeservidorquetenemosparalarecepciondecorreo,conel cualqueremosqueseauntenticaparapoderenviar/recibircorreos) smtpd_sasl_path=private/auth (Modocliente) smtp_sasl_auth_enable=no (Sisoportalaauthenmodocliente,ledecimosqueNO,yaquedovecot nosoportaestaautenticacion) Nota:Dovecotsolosoportalaautenticacionenmodoservidor,queesla quepermitequeunusuarioseconectealservidor,sevalidehaciaeste parapoderdescargarloscorreos) (Enestecampo,podremosadicionar smtpd_sasl_security_options= opcionesparalasecuridaddesasl,sidejamosestecampoenblanco, sasltomaralosvaloresquetienepordefecto)
Ahoraprobaremoslavalidacion.Loharemosatravesde Nota:BASE64Esunsistemadeenumeracionqueutilizaunsistemade codificacionparaloscorreoselectronicosyotrasaplicaciones. root@regocorreo:~# Donde: printf\0%s\0%s New=usuariodelsistema 123=Eselpassworddelusuarionew base64=Esunsistemaparalacodificaciondelosdatos,aunquepodemos utlizarotros. =Eslaformaparagenerarunaclavecodificada. printf\0%s\0%snew123|base64
Ahoraledamosclicen
ENVIAR/RECIBIR
YnosdeberadesalirunmenudeAutenticacionparaENVIARelcorreo.
Nosloguemaosparapoderenviarelcorreo.
8.TLSPARAPOSTFIX
TLS TransportLayerSecurity(SeguridaddelaCapadeTransporte),Esun protocolodelacapadetransportequepermitequelacomunicacindeun extremoaotroseasegura,yaqueelmensajeviajaraencriptadoloque lahaceseguradeescucha(eavesdropping),falsificaciondelaidentidad y(phishing). Loprimeroquedebemosdetenerencuentaesquepostfixdebededetener soporteconTLS. Pordefectoenladistribucion postfixtlsopenssl Ubuntu8.04 postfixtraepordefecto queesun
Loprimeroqueharemosseracrearun certificadodigital, documentoquecertiicaelvinculodeuncanalseguroentreunclientey unservidorporuncanalseguro. root@regocorreo:~# opensslreqnewx509nodesoutcertificado.pem keyoutpostfix.pemdays3000 certificado.pem= extension.pem keyoutpostfix.pem= Nombrequeledaremosanuestrocertificadoconla integracionconpostfix
Abrimoselarchivocertificado.pemyveremosalgoasi:
Enestearchivoagregremoslassiguienteslineas: #TLSParameters
smtpd_tls_cert_file=/etc/ssl/certificado.pem smtpd_tls_key_file=/etc/ssl/postfix.pem smtp_use_tls=yes smtp_tls_loglevel=0 smtp_tls_session_cache_timeout=3600s smtp_tls_note_starttls_offer=yes smtp_starttls_timeout=300s
Donde: smtpd_tls_cert_file=/etc/ssl/certificado.pem (Rutadondeseencuentraelcertificadoqueanteriormentecreamos) situaciondelaclavepublica smtpd_tls_key_file=/etc/ssl/postfix.pem (Rutadondeseencuentralasclaves.pemdelcertificadodigital) situacindelaclaveprivada(enlosficheros.pem,ambasestnjuntas smtp_use_tls=yes (debemosutilizarTLSsiemprequesepueda,ledecimosqueYES) smtp_tls_loglevel=0 niveldelog.Poner2hastaquetodofuncionebien smtp_tls_session_cache_timeout=3600s tiempodevalidezdelasclaves smtp_tls_note_starttls_offer=yes avisodeconexinTLS smtp_starttls_timeout=300s tiempomximodelintercambiodeclaves (LosparametrosdelostiemposdeconexindeTLS)
root@regocorreo:~#
/etc/init.d/postfixrestart
9.INSTALACIONYCONFIGURACIONDEOPENLDAP
esunprotocoloaquepermiteelaccesoaunServiciodeDirectorios ordenadoydistribuidoparaestructurarlainformacinenunentornode red. Estemanual,estadedicadoa ,queesunaimplementacinlibre OPENLDAP delprotocoloquesoportamltiplesesquemasporloquepuedeutilizarse paraconectarseacualquierotroLDAP,comoloes MandrivaDirectory Server , FedoraDirectoryServer o RedHatDirectoryServer. Ahoraloquerealizaremosserabuscarenlacachedenuestros repositorios,quesiseencuentrenlospaquetesnecesariosparala instalacionde OpenLdap. root@regocorreo:/# aptcachesearchldaputils ldaputilsOpenLDAPutilities root@regocorreo:/# aptcachesearchmigrationtools migrationtoolsMigrationscriptsforLDAP root@regocorreo:/# aptcachesearchslapd slapdOpenLDAPserver(slapd) slapddbgDebugginginformationfortheOpenLDAPserver(slapd) Ahoraquesabemosquetodoslospaquetesseencuentranenlacachede losrepositorios,podremosinstalarlos. root@regocorreo:/# root@regocorreo:/# root@regocorreo:/# aptgetinstallldaputils aptgetinstallmigrationtools aptgetinstallslapd
Deinmediatoiniciaraelasistenteparalaconfiguraciondeslapd.
LedecimosqueNO...yaquequeremosconfigurarlosparametrosbasicosde openldap.
Escribimoseldominio,paraqueOpenLdapconstruyalabaseDN.
Elnombredenuestraorganizacin,puedesernuestrodominio.
Ledecimosquesi,yaquenotenemosunabasededatosconfigurada, porqueapenaslavamosacrear.
NospreguntaraquesiqueremosqueinstaleLDAPV2.Lerespondemosque NO,yaquenoseranecesarioporquetodoslosprotocolosyserviciosque tenemosinstaladostienensoporteconldapv3. ahorarealizamoslarespectivaconfiguracinparaqueelServidorusela autenticacindeLDAP. Instalamoslospaquetesnecesarios,parapoderllevaracanoesta operacin. Primeroquetodo,comprobamosenlacachedelosrepositorios,quese encuentrenlospaquetes. root@regocorreo:~# aptcachesearchauthclientconfig authclientconfigpamandNSSprofileswitcher root@regocorreo:~# aptcachesearchlibnssldap libnssldapNSSmoduleforusingLDAPasanamingservice libpamldapPluggableAuthenticationModuleallowingLDAPinterfaces libnssldapdNSSmoduleforusingLDAPasanamingservice libpamccredsPammoduletocacheauthenticationcredentials nssupdatedbCachenameservicedirectoriesinDBformat root@regocorreo:~# aptcachesearchlibpamldapserver libpamldapPluggableAuthenticationModuleallowingLDAPinterfaces ldapscriptsAddandremoveuserandgroups(storedinaldap directory)
Cuandoestemosinstalandoesteultimopaquete,nospedirauna configuracionqueacontinuacionexplicaremos. Ldapserveruniformresourceidentifier ldapi://127.0.0.1/ distinguisednameofthesearchbase dc=lucas,dc=com ldapversiontouse 3 makelocalrootdatabaseadmin si doestheldapdatabaserequierelogin no ldapaccountforroot cn=admin,dc=lucas,dc=com (EsteseraelusuarioprincipaldeLdap) Ldaprootaccountpassword ############# Configuracionde root@regocorreo:~# root@regocorreo:~# ldap.conf cd/etc/ldap.conf nanoldap.conf
Eingresamoslassiguienteslineas:
[open_ldap] nss_passwd=passwd:compatldap nss_group=group:compatldap nss_shadow=shadow:compatldap pam_auth=authrequiredpam_env.so authsufficientpam_unix.solikeauthnullok authsufficientpam_ldap.souse_first_pass authrequiredpam_deny.so pam_account=accountsufficientpam_unix.so accountsufficientpam_ldap.so accountrequiredpam_deny.so pam_password=passwordsufficientpam_unix.sonullokmd5shadowuse_authtok passwordsufficientpam_ldap.souse_first_pass passwordrequiredpam_deny.so pam_session=sessionrequiredpam_limits.so sessionrequiredpam_mkhomedir.soskel=/etc/skel/ sessionrequiredpam_unix.so sessionoptionalpam_ldap.so
10.SOFTWAREDEADMINISTRACIONDELDAP
LAT(LdapAdminTools) Esdeunaformidableherramientaparalaadministracinde paraadministrargraficamentetodalaunidaddeldirectorio. descargamosestesoftwaredesde: http://www.ldapsoft.com/ldapadmintool.html ahorainstalaremoselsoftware;Buscamoslarutadondeesteseencuentra root@regocorreo:~# Einiciaremoslainstalacion. Abrimoselsoftwareporprimeravez ./ldapAdminTool2.4.xLinuxx86Install.bin .Ideal LDAP
Loprimeroqueharemosseracrearunanuevaconexin,entreeste software(LdapAdminTools)yOpenLdap.
ConnectionName= conexinLDAP (Esteseraelnombrequelequeremosdaralaconexin) Hostname= 127.0.0.1 (Enestaopcionpodemosingresarelnombredelequipodondeseencuentra ldap,oladireccionIPdeeste.Paranuestrocasoutilizaremosla direccion127.0.0.1yaqueldapseencuentrainstaladoyconfiguradoen nuestroequipolocal) port= 389 (Elpuertoporelcualserealizaralaconexin.389vienepordefecto) protocol= LDAPv3 ( Esteseraelprotocoloqueutilizaraldap...Podemosutilizarla version2olaversion3. BaseDN= dc=lucas,dc=com (Estaeslabasedecomoestaconformadonuestrodominio,yaquees lucas.comysedefinecomodc=lucasyel.comqueseradc=com) porultimotesteamosqueseencuentrelaconexinactivaconldap,para poderingresaryrealizarloscambiosquequeramos.
Ahoradefiniremoslosparametrosdeautenticacion.
SimpleAuthentication
ylosparametrosseran: BindDN= cn=admin,dc=lucas,dc=com (Elusuarioadministradordeldap,seraadminyponemoslabasede nuestrodominio.) Password= ************** (Esteseraelpasswordqueanteriormentehabiamosdefinidoparael usuarioadmin) Ycomprobamosquelascredencialesseanvalidas.
EnestemomentoyatenemosunaconexinestablecidaentreLATy OPENLDAP.
11.INTEGRACIONDEOPENLDAPCONPOSTFIX
Ahoraloqueharemossera integrarOpenLdapconPostfix.
root@regocorreo:/#
touchpostfix.schema
yagregaremoslossiguientesesquemas
#ExtensionstosupportPostfixMTAusingOpenldapexperimentalOID's attributetype(1.3.6.1.4.1.15347.2.102 NAME'transport' SUPname) attributetype(1.3.6.1.4.1.15347.2.101 NAME'mailRoutingAddress' SUPmail) attributetype(1.3.6.1.4.1.15347.2.110NAME'maildest' DESC'Restrictedtosendonlytolocalnetwork' EQUALITYcaseIgnoreMatch SUBSTRcaseIgnoreSubstringsMatch SYNTAX1.3.6.1.4.1.1466.115.121.1.15{32768}) attributetype(1.3.6.1.4.1.15347.2.111NAME'mailaccess' DESC'Canbemailedtorestrictedgroups' EQUALITYcaseIgnoreMatch SUBSTRcaseIgnoreSubstringsMatch SYNTAX1.3.6.1.4.1.1466.115.121.1.15{32768}) attributetype(1.3.6.1.4.1.15347.2.100 NAME('maildrop') DESC'RFC1274:RFC822Mailbox' EQUALITYcaseIgnoreIA5Match SUBSTRcaseIgnoreIA5SubstringsMatch SYNTAX1.3.6.1.4.1.1466.115.121.1.26{256}) attributetype(1.3.6.1.4.1.10018.1.1.1NAME'mailbox' DESC'Theabsolutepathtothemailboxforamailaccountinanondefault location' EQUALITYcaseExactIA5Match SYNTAX1.3.6.1.4.1.1466.115.121.1.26SINGLEVALUE) objectclass(1.3.6.1.4.1.15347.2.1 NAME'mailUser' DESC'EMailUser' SUPtop AUXILIARY MUST(uid$mail$maildrop) MAY(cn$mailbox$maildest$mailaccess) ) objectclass(1.3.6.1.4.1.15347.2.2 NAME'mailGroup' DESC'EMailGroup' SUPtop STRUCTURAL MUST(cn$mail) MAY(mailRoutingAddress$member$description) ) objectclass(1.3.6.1.4.1.15347.2.3 NAME'transportTable' DESC'MTATransportTable' SUPtop STRUCTURAL MUST(cn$transport) )
Sicomprendemoslasintaxisdeesteschema,podemosadicionardefinicionesa estaestructura. Despuesdehabercreadoelarchivoconelesquema,vamosalarchivoprincipalde Postfixyagregamoslassiguienteslineas,quenospermitiracrearusuarios virtualesconOpenLdapeintegrarlosfacilmenteapostfix. root@regocorreo:/# #LDAPsettings virtual_maps=ldap:ldapgroups,ldap:ldapalias ldapgroups_server_host=localhost ldapgroups_server_port=389 ldapgroups_search_base=ou=Groups,dc=lucas,dc=com ldapgroups_bind=no ldapgroups_timeout=30 ldapgroups_query_filter=(&(mail=%s)(objectclass=mailGroup)) ldapgroups_special_result_attribute=member ldapalias_server_host=localhost ldapalias_server_port=389 ldapalias_search_base=ou=Users,dc=lucas,dc=com ldapalias_bind=no ldapalias_timeout=30 ldapalias_query_filter=(&(mail=%s)(objectclass=mailUser)) ldapalias_result_attribute=maildrop transport_maps=ldap:ldaptransport ldaptransport_server_host=localhost ldaptransport_server_port=389 ldaptransport_search_base=ou=Transport,dc=lucas,dc=com ldaptransport_bind=no ldaptransport_timeout=30 ldaptransport_query_filter=(&(cn=%s)(!(cn=server.mydomain.com)) (objectclass=transportTable)) ldaptransport_result_attribute=transport paradecirleapostfixsobreLASCUENTASVIRTUALES;delparametromydestinationquitoeldnslocaly dejamoselnombredeequipouna,ylocalhost:debajodeestalineaadicionamosel parametros:
nano/etc/postfix/main.cf
virtual_mailbox_domains=lucas.com (aquesdondealmacenoloscorreos) virtual_mailbox_base=/vmail/correos (aquesdondesehacelas virtual_mailbox_maps=ldap:/etc/postfix/ldap.conf consultasdeldap) virtual_uid_maps=stactics:5000 0(enestasdosultimaslineasestamos virtual_gid_maps=stactics:500 especificandoelusuario/grupovirtualadminylosbuzonesparaestos).
Esobvioquedebemosteneresteusuarioyacreado useraddmd/vmails/bin/falseUu5000vmail(vmaileselnombredeusuario,Este usuario y grupo tendrn el mismo UID y GID 5000 se uso un numero alto para no interferir con las cuentas locales.) consusrespectivodirectorio
Transportes:la definicin de la fuente LDAP que usaremos es la de transport, la cual define el transporte root@regocorreo:/# mkdir/vmail/correoschown5000:5000/vmail/correos.
para los dominios. Postfix usa el transporte para determinar que sigue hacer con los correos una vez recibidos. Sin embargo tambin podra ser usado el transporte "virtual". En este caso se usa el filtro para buscar el nombre de el dominio, ver que este activo y que no tenga el valor de delete a FALSE. El resultado que buscaremos es postfixTransport, que sera configurado para que siempre tenga el valor de maildrop. Cuentas virtuales: la 2da y 3ra lnea son parmetros que se usan para decirle donde esta la base de el repositorio de los correos virtuales. y la otra para decirle cual es la fuente LDAP donde buscaremos la ruta de el buzn de el correo, recordemos que en la fuente LDAP "accounts" se obtiene como parmetro "mailbox". Las siguientes configuraciones se usan para definir el UID y GID de el usuario vmail, y el parmetro "virtual_minimum_uid" significa que uid mnimos a el 5000 sern rechazados y el mensaje sera "deferred". Todos estos parmetros estn completamente documentados en los archivos README_FILES/VIRTUAL_README que vienen con las fuentes de Postfix. Tambin necesitamos editar el parmetro "local_recipient_maps" para que tambin busque en "virtual_mailbox_maps" de manera que Postfix sepa quien es un usuario en el servidor de correo y quien no. Adicionando lo siguiente:
local_recipient_maps=proxy:unix:passwd.byname,$alias_maps,$virtual_mailbox_maps
Tambinusaremoselparmetro: show_user_unknown_table_name=no
se uso se unuso numero un numero alto para alto no para interferir no interferir con lascon las
DespuesdehaberadicionadoestaslineasreinicamosOpenLdap,paraque carguenlosnuevoscambiosefectuadosysercionarnosdequenohallan errores Nota:Cadavezquereiniciemosalgunservicio,verifiquemosenlosLogs pertinentesquenoexistenerrores. root@regocorreo:/# /etc/init.d/postfixrestart root@regocorreo:/# /etc/init.d/slapdrestart (Slapdsedemoraraunpocomsparareiniciarseyaqueapenasesta integrandolosnuevoscambiosrealizados)
12.SERVIDORANTIVIRUSYANTISPAM
Esmuyimportantetenerunbuensistemaantivirusyantispam,yaqueel correoelectronicoesunodelosmedios(Elmayordiriayo)pordondese transmitenvirusydemasiadospam. Primeroempezaremosconfigurandoelservidorantispam,utilizaremos SpamAssasin yaqueesunodelosmejoresservidoresantispampara correo,yexistemuybuenadocumentacionysoporteparaeste. Loprimeroqueharemosserabuscarenlacachedelosrepositoriossi existeestepaqueteparaserinstalado,delocontrarioactualizar nuestrosrepositorios. root@regocorreo:~# aptcachesearchspamassassin
ERROR!!!Esposiblequenosaparezcaunmensajedeerrorsobreelfuncionamiento
root@regocorreo:~# default/spamassassin
SpamAssassinMailFilterDaemon:disabled,see/etc/
Modificamosunalinea,quenospermitiraactivarnuestrodemonio. ENABLED=0 Modificamosel0(Desactivado)porun1(Activado) ENABLED=1 Guardamosloscambios. root@regocorreo:/etc/spamassassin# /etc/init.d/spamassassinrestart RestartingSpamAssassinMailFilterDaemon:spamd. Ahoratenemoselservicioactivoycorriendo. Ahoraloqueharemosseradarunaconfiguracionparaelsistemaanti spam,vamosalarchivoprincipladeconfiguraciondespamassassin. root@regocorreo:~# descomentamosestaslinea rewrite_headerSubject*****SPAM***** (Esteseraelencabezadoquellevaraelmensaje) report_safe1 (Ledecimosquenosmandeelcorreodespamdemaneraadjunta) required_score5.0 (EstaeslapuntuacionapartirdelacualSpamassassinreconoceraun correocomoSpamono.Pordefectovieneen5.0) Debemosdetenercuidadoconlapuntuacionqueledemosenel score. Lapuntuacionvade0a10. Silaponemosmuybajapodremostenerproblemasyaquecorreosqueno sonSPAMpodriansertratadoscomosilofueran. Silaponemosmuyaltanostomaracomocorreosbuenoloqueenrealidad esSPAM. Lapuntuacionidealseradejarloentre3.5y5.5 Ahoraagregamosunaslineas,queevitaranquelascabecerasdelosISP setomencomospam. required nano/etc/spamassassin/local.cf
bayes_ignore_headerXUpstreamSpamfilter bayes_ignore_headerXUpstreamSomethingElse ?????????????????????????????????????????????????????????????????????? Ahoracrearemoslarutadondeseencontraraeldirectoriodelas bayesianas,estaparteesdesumaimportancia bayes_path/etc/spamassassin/bayes/bayes AhoracreamosEldirectoriodondeseencontraranlasbayesianas. mkdir/etc/spamassassin/bayes Listo.Yaconestotenemoslacofiguraciondespamassassin. Ahorareiniciaremoselservicioparaquecarguelanuevaconfiguracion quehemosrealizado. root@regocorreo:~# /etc/init.d/spamassassinrestart RestartingSpamAssassinMailFilterDaemon:spamd. AhoraloqueharemosseraintegrarSPAMASSASSINconPOSTFIX Loqueharemosseraconfigurarpostfixparaqueloscorreossean analizadosporelfiltroantispam. root@regocorreo:~# cd/etc/postfix/ root@regocorreo:/etc/postfix# nanomaster.cf Aadiremoslosiguienteenlalineasenlasopcionesde smtpinetnsmtpd ocontent_filter=spamassassin:dummy Estoloquenospermitiraseraintegrarelservidorantispamcon postfix,demaneraqueloscorreosqueentrenosalganseananalizados poresteservidor. smtp.
12.ANTIVIRUS
Ahorainstalaremosyconfiguraremoselservidorantivirus. ClamAVeselantivirusdecorreomasutilizadoysepuedeintegrar facilmenteconpostfix(MTA) Empezaremosentoncesbuscandoenlacachedelosrepositoriossiexiste estepaqueteparaserinstalado. root@regocorreo:~# aptcachesearchclamav
root@regocorreo:~# nano/etc/clamsmtpd.conf (Editaremoselarchivoprincipaldeconfiguracion) Cambiaremosladireccionparaenviarloscorreos,pordefectovieneen 10025ylamodificamos . OutAddress:10026 Elpuertoenelqueescuchaelsistemaantivirus Listen:127.0.0.1:10025 Larutadondeestaelarchivodeclamd. ClamAddress:/var/run/clamav/clamd.ctl Pondremosunencabezadoparaloscorreosquehayansidoanalizados. Header:XAVChecked:ClamAVusingClamSMTP.Porporcionadopor LucasCorp.
entramosaestearchivoyagregamoslasiguientesintaxis:
#!/bin/sh FROM='Sistemaantivirus<antivirus@lomu.homelinux.org>' TO=$RECIPIENTS MAILER='/usr/sbin/sendmailit' SUBJECT=`/bin/echo"Elcorreocontieneunvirus"|/usr/bin/nkfjMB` $MAILER<<EOM From:$FROM To:$TO Subject:=?ISO2022JP?B?$SUBJECT?= Sehadetectadocodigomaliciosoeneladjuntoquecontenaelcorreo. Pongaseen contactoconeladministradordesusistemaLUKASCORPORATIONsiest seguro/adequenoesunvirus,pida alapersonaqueleenvaelficheroqueporfavorlopongaenun ficherocomprimido protegidoporunacontrasea.Disculpelasmolestias. [Virus] $VIRUS [De] $SENDER [Para] $RECIPIENTS EOM exit0
root@regocorreo:/# root@regocorreo:/#
cd/etc/postfix/ nanomaster.cf
yaadiremosalfinaldeestearchivolassiguienteslineas: ##FILTROANTIVIRUS
##Filtroantivirususadoporcontentfilter scanunixn16smtp osmtp_send_xforward_command=yes osmtp_enforce_tls=no #Parainyectarelcorreoapostfixunavezanalizado 127.0.0.1:10026inetnn16smtpd ocontent_filter= o receive_override_options=no_unknown_recipient_checks,no_header_body_checks osmtpd_recipient_restrictions=permit_mynetworks,reject omynetworks_style=host osmtpd_authorized_xforward_hosts=127.0.0.0/8
content_filter=scan:[127.0.0.1]:10025