| Lo que aquí se va a comentar es valido para la versión de linux RedHat 7.2 cuyos paquetes rpm del sendmail usan la versión sendmail.8.11 Sendmail pop3 Dominios virtuales Lo normal es que en cualquier instalación de RedHat por defecto se instale el sendmail. La forma de saber si los paquetes están instalados seria mediante este comando: rpm -qa | grep sendmail Si lo tenéis instalado debería verse lo siguiente: [root@takeshi
files]# rpm -qa | grep sendmail Si no lo tenéis instalado os toca montar el cdrom, buscar el paquete rpm correspondiente e instalarlo. Si todo esto os suena a chino leeros la sección sobre rpm. :-D Supongamos que tenemos los paquetes instalados, que tenemos una conexión permanente a internet, que tenemos comprado un nombre de dominio, que tenemos un registro de dns mx (intercambiador de correo) apuntando a nuestra máquina para ese dominio y que queremos poner el correo en marcha, ... de eso se trata no? En el archivo de zona de nuestro dominio debería haber una entrada para nuestro sevidor de correo. Los datos que necesitamso son los siguientes: Una dirección ip 111.111.111.111 Un registro MX 10 correo.ejemplo.com. y tambien con un registro A para que sepamos a que dirección responde correo.ejemplo.com correo IN A 111.111.111.111 Quedaria algo asi como, MX
10 correo.ejemplo.com. Archivos que hay que tocar /etc/sendmail.cf /etc/mail/access Supongamos que mi nombre de dominio es ejemplo.com y que la dirección ip con la que formo parte de internet es 111.111.111.111 Edito el /etc/sendmail.cf Busco el apartado donde dice ################## Tendremos que cambiarla a Cwejemplo.com Luego buscaremos una línea que dice O DaemonPortOptions Y donde está la dirección de retorno 127.0.0.1 pondremos nuestra ip de el mundo exterior, quedaría algo así como O DaemonPortOptions=Port=smtp,Addr=111.111.111.111, Name=MTA Guardamos el fichero reiniciamos el sendmail service sendmail restart Ahora vamos a ver el problema del relay. Nosotros tenemos que decidir a que máquinas vamos a permitir usar nuestro servidor de correo, en concreto el servicio sendmail por el puerto 25. Esto se hace editando el fichero access. Lo normal es restringir el uso, bien por rangos de ip, o por nombres de dominio, o por direcciones concretas o máquinas concretas. Lo interesante suele ser permitir que los usuarios de nuestra red interna usen el correo, también cualquier máquina que pertenezca a nuestro dominio etc. De lo contrario si no se pone ninguna restricción los spamers usaran nuestra máquina para enviar correo no deseado a todo el mundo incluido tu ... A
continuación voy a poner un ejemplo de archivo access explicando
cada línea y además lo que hay que hacer una vez editado
el archivo
La primera línea nos indica que cualquier conexión que venga desde la propia máquina en la que esta instalado el sendmail será aceptada. La segunda línea nos indica que se aceptaran envíos de correo desde la máquina con dirección 192.168.0.2 que corresponde a una máquina de nuestra red interna. Si quisieramos que cualquier máquina de nuestra red interna pudiese enviar correo a través de nuestro servido hubiéramos puesto solo 192.168.0 La tercera línea indica que cualquier máquina que pertenezca al dominio ejemplo.com puede usar nuestro servidor de correo. IMPORTANTE!!!!! Una vez editado el archivo access hay que ejecutar el comando siguiente y relanzar el sendmail. makemap hash access.db < access service sendmail restart Esto lo que hace es que se cree el archivo access.db que es con el que de verdad funciona sendmail. El archivo access por decirlo de alguna forma está en "modo humano" para que nosotros podamos decidir quien y quien no puede usar nuestro servidor de correo. Por ultimo, hay que habilitar el servicio pop3 para que nuestros usuarios puedan recoger su correo. El demonio pop3 viene en el paquete rpm imap-2000c-15. Comprobamos si está instalado y si no lo está lo instalamos. Para activarlo o bien ejecutamos ntsysv Y aquí señalamos ipop3 para que se lance en el siguiente arranque, o si no iremos al /etc/xinetd.d/ipop3 lo editamos y cambiamos donde dice disable=yes por =no y luego relanzamos el xinetd service xinetd restart O de como llevar el correo de varios dominios usando una sola maquina. Hay que tener en cuenta lo siguiente: Necesitamos tener el DNS bien configurado, tocar una serie de archivos del sendmail, y por ultimo tener en cuenta que usuarios pertenecen a cada dominio y en caso de coincidencia jugar con los aliases para que el correo llegue a destino y que todo sea transparente para el usuario. (explicaré esto con más detalle.) En la sección anterior hemos visto como llevar el correo del dominio ejemplo.com En esta sección veremos como llevar además el dominio amigo.com en la misma maquina. Para llevar el correo del dominio ejemplo.com teniamos lo siguiente: Una dirección ip 111.111.111.111 Un archivo de zona (DNS) con un registro mx MX 10 correo.ejemplo.com. y tambien con un registro A para que sepamos a que dirección responde correo.ejemplo.com correo IN A 111.111.111.111 y las entradas necesarias en sendmail.cf y access Nosotros queremos que nuestra maquina lleve también el correo del dominio amigo.com Lo primero que tenemos que hacer es modificar la dns para que exista un registro mx para amigo.com apuntando a nuestra maquina (tal y como esta en ejemplo.com) Si somos nostros quienes llevamos la dns no hay problema pero si la autoridad sobre la zona amigo.com reside en un servidor externo habra que ponerse en contacto con el administrador de ese sistema para que modifique la dns.
Ya tenemos direccion y dns, ahora hay que modificar un par de archivos de sendmail y listo. El primero y más importante es /etc/mail/local-host-names Aqui
tendremos que poner el nombre de la maquina + el dominio para el que
vamos a recoger el correo. correo.amigo.com Guardamos y reiniciamos sendmail. Tal y como esta ahora cualquier correo cuya dirección sea @amigo.com va a venir a nuestra maquina y si existe un usuario (lo que vendria a la izquierda de la arroba) le dejara el correo en su buzon. Me explico, yo tengo en mi sistema creado el usuario gonzo. Hasta ahora felizmente cuando se enviaba un correo a gonzo@emplo.com llegaba a mi buzon sin problemas. El caso es que ahora si alguien escribe un correo a gonzo@amigo.com también llegara a mi buzon. Como solucionamos esto? Usaremos el archivo virtusertables y un poco de imaginacion. Caso 1, Queremos que gonzo@ejemplo.com sea unico en el sistema, esto es, que no exista por ejemplo gonzo@amigo.com Editamos el virtusertables de la siguente forma: gonzo@ejemplo.com gonzo gonzo@amigo.com error:nouser No hay tal usuario Una vez guardado hacemos makemap hash virtusertable.db < virtusertable y reiniciamos sendmail Esto hará que cualquier correo enviado a gonzo@amigo.com sea devuelto con el mensaje de error "no hay tal usuario" Caso2 Queremos que exista un gonzo@ejemplo.com y un gonzo@amigo.com En nuestras cuentas de usuario linux habrá dos usuarios gonzo (que respondera al email @emplo.com) gonzo1 (que responderá al email @amigo.com) El virtusertable quedara asi gonzo@ejemplo.com gonzo gonzo@amigo.com gonzo1 Guardamos y hacemos makemap hash virtusertable.db < virtusertable y reiniciamos sendmail |
|
|||||||
| Arriba | ||||||||
|
|
||||||||