Diferencia entre revisiones de «DbMail»
m (Formato. Falta categorizar y una breve descripción.) |
(más formato) |
||
Línea 2: | Línea 2: | ||
Vamos a instalar Dbmail con PostgreSQL, Postfix, ClamSMTP y Postgrey. | Vamos a instalar Dbmail con PostgreSQL, Postfix, ClamSMTP y Postgrey. | ||
− | + | $ sudo apt-get install postgresql-8.0 | |
Hay que tocar un parametro de configuracion de PostgreSQL para que nos deje autentificarnos como usuarios que no esten datos de alta en linux. | Hay que tocar un parametro de configuracion de PostgreSQL para que nos deje autentificarnos como usuarios que no esten datos de alta en linux. | ||
− | + | $ sudo gedit /etc/postgresql/8.0/main/pg_hba.conf | |
Debemos cambiar la linea 79 | Debemos cambiar la linea 79 | ||
Línea 18: | Línea 18: | ||
Ahora, instalamos el servidor de correo Postfix. | Ahora, instalamos el servidor de correo Postfix. | ||
− | + | $ sudo apt-get install postfix postfix-pgsql mailx | |
General type of configuration? Internet Site | General type of configuration? Internet Site | ||
Nombre de correo? miservidor.midominio | Nombre de correo? miservidor.midominio | ||
Línea 26: | Línea 26: | ||
Nota: existe un paquete dbmail-pgsql en el repositorio oficial pero se trata de una version muy antigua de Dbmail. | Nota: existe un paquete dbmail-pgsql en el repositorio oficial pero se trata de una version muy antigua de Dbmail. | ||
− | + | $ sudo gedit /etc/apt/sources.list | |
*** añadir: deb http://debian.nfgd.net/debian stable main | *** añadir: deb http://debian.nfgd.net/debian stable main | ||
− | + | $ sudo apt-get update | |
− | + | $ sudo apt-get install dbmail2-pgsql | |
Avisará que no puede conectar con el servidor de bases de datos, es normal. | Avisará que no puede conectar con el servidor de bases de datos, es normal. | ||
Línea 36: | Línea 36: | ||
Vamos a crear la base de datos y el usuario en PostgreSQL para Dbmail. | Vamos a crear la base de datos y el usuario en PostgreSQL para Dbmail. | ||
− | + | $ sudo su postgres psql template1 | |
Bienvenido a psql 8.0.7, el terminal interactivo de PostgreSQL. | Bienvenido a psql 8.0.7, el terminal interactivo de PostgreSQL. | ||
Línea 54: | Línea 54: | ||
Lo probamos | Lo probamos | ||
− | + | $ psql -U dbmail dbmail | |
Contraseña: (aqui debe teclear: aleluya) | Contraseña: (aqui debe teclear: aleluya) | ||
Bienvenido a psql 8.0.7, el terminal interactivo de PostgreSQL. | Bienvenido a psql 8.0.7, el terminal interactivo de PostgreSQL. | ||
Línea 66: | Línea 66: | ||
dbmail=> \q | dbmail=> \q | ||
− | + | $ dpkg-reconfigure dbmail2-pgsql | |
Utilizar debconf para la configuracion? si | Utilizar debconf para la configuracion? si | ||
Direccion email correos rebotados? MAILER-DAEMON@midominio | Direccion email correos rebotados? MAILER-DAEMON@midominio | ||
Línea 80: | Línea 80: | ||
Y sigue sin poder conectar con la base de datos? No pasa nada: aun falta crear las tablas. | Y sigue sin poder conectar con la base de datos? No pasa nada: aun falta crear las tablas. | ||
− | + | $ cp /usr/share/doc/dbmail2-pgsql/examples/create_tables.pgsql.gz . | |
− | + | $ gunzip create_tables.pgsql.gz . | |
− | + | $ psql -U dbmail dbmail < create_tables.pgsql | |
Comprobamos que todo va bien | Comprobamos que todo va bien | ||
− | + | $ sudo /etc/init.d/dbmail restart | |
Stopping dbmail servers: No dbmail-pop3d found running; none killed. | Stopping dbmail servers: No dbmail-pop3d found running; none killed. | ||
done. | done. | ||
Starting dbmail servers: dbmail-pop3d .done. | Starting dbmail servers: dbmail-pop3d .done. | ||
− | + | $ telnet localhost 110 | |
Trying 127.0.0.1... | Trying 127.0.0.1... | ||
Connected to localhost.localdomain. | Connected to localhost.localdomain. | ||
Línea 103: | Línea 103: | ||
Bien hecho. | Bien hecho. | ||
− | + | $ sudo dbmail-users -a frodo -w mitesoro -s fbolson@midominio | |
Opening connection to database... | Opening connection to database... | ||
Opening connection to authentication... | Opening connection to authentication... | ||
Línea 116: | Línea 116: | ||
Ahora vamos a ver | Ahora vamos a ver | ||
− | + | $ telnet localhost 110 | |
Trying 127.0.0.1... | Trying 127.0.0.1... | ||
Connected to localhost.localdomain. | Connected to localhost.localdomain. | ||
Línea 146: | Línea 146: | ||
Vamos a configurar ahora Postfix con el antivirus, y el antispam, haciendo al mismo tiempo la conexion con la Dbmail para no perder mas tiempo en detalles. | Vamos a configurar ahora Postfix con el antivirus, y el antispam, haciendo al mismo tiempo la conexion con la Dbmail para no perder mas tiempo en detalles. | ||
− | + | $ sudo apt-get install clamsmtp clamav-daemon | |
− | + | $ sudo apt-get install postgrey | |
− | + | $ sudo gedit /etc/postfix/main.cf | |
Estos son los cambios necesarios: | Estos son los cambios necesarios: | ||
Línea 177: | Línea 177: | ||
En /etc/postfix/master.cf | En /etc/postfix/master.cf | ||
− | + | $ sudo gedit /etc/postfix/master.cf | |
lineas a añadir: | lineas a añadir: | ||
Línea 222: | Línea 222: | ||
Antes tenemos que crear la tabla "dbmail_transport" en nuestra base de datos. | Antes tenemos que crear la tabla "dbmail_transport" en nuestra base de datos. | ||
− | + | $ psql dbmail -W dbmail | |
Contraseña: | Contraseña: | ||
Bienvenido a psql 8.0.7, el terminal interactivo de PostgreSQL. | Bienvenido a psql 8.0.7, el terminal interactivo de PostgreSQL. | ||
Línea 243: | Línea 243: | ||
Vamos a ver como va la cosa.... | Vamos a ver como va la cosa.... | ||
− | + | $ sudo /etc/init.d/postfix restart | |
* Stopping Postfix Mail Transport Agent postfix [ ok ] | * Stopping Postfix Mail Transport Agent postfix [ ok ] | ||
* Starting Postfix Mail Transport Agent postfix [ ok ] | * Starting Postfix Mail Transport Agent postfix [ ok ] |
Revisión de 16:49 1 sep 2006
Instalación
Vamos a instalar Dbmail con PostgreSQL, Postfix, ClamSMTP y Postgrey.
$ sudo apt-get install postgresql-8.0
Hay que tocar un parametro de configuracion de PostgreSQL para que nos deje autentificarnos como usuarios que no esten datos de alta en linux.
$ sudo gedit /etc/postgresql/8.0/main/pg_hba.conf
Debemos cambiar la linea 79
local all all ident sameuser
por esta otra
local all all md5
Ahora, instalamos el servidor de correo Postfix.
$ sudo apt-get install postfix postfix-pgsql mailx General type of configuration? Internet Site Nombre de correo? miservidor.midominio
Agregamos el repositorio para instalar el paquete de Dbmail 2.0.
Nota: existe un paquete dbmail-pgsql en el repositorio oficial pero se trata de una version muy antigua de Dbmail.
$ sudo gedit /etc/apt/sources.list *** añadir: deb http://debian.nfgd.net/debian stable main
$ sudo apt-get update $ sudo apt-get install dbmail2-pgsql
Avisará que no puede conectar con el servidor de bases de datos, es normal.
Vamos a crear la base de datos y el usuario en PostgreSQL para Dbmail.
$ sudo su postgres psql template1
Bienvenido a psql 8.0.7, el terminal interactivo de PostgreSQL.
Digite: \copyright para ver los términos de distribución \h para obtener ayuda sobre comandos SQL \? para obtener ayuda sobre comandos internos \g o punto y coma (;) para ejecutar consulta \q para salir
template1=# CREATE USER dbmail PASSWORD 'aleluya'; CREATE USER template1=# CREATE DATABASE dbmail OWNER dbmail; CREATE DATABASE template1=# \q
Lo probamos
$ psql -U dbmail dbmail Contraseña: (aqui debe teclear: aleluya) Bienvenido a psql 8.0.7, el terminal interactivo de PostgreSQL.
Digite: \copyright para ver los términos de distribución \h para obtener ayuda sobre comandos SQL \? para obtener ayuda sobre comandos internos \g o punto y coma (;) para ejecutar consulta \q para salir
dbmail=> \q
$ dpkg-reconfigure dbmail2-pgsql Utilizar debconf para la configuracion? si Direccion email correos rebotados? MAILER-DAEMON@midominio Direccion email gestor de correos? postmaster@midominio Nombre de la maquina del SGBD? localhost Nombre de la base de datos a usar? dbmail Nombre de usuario de la base de datos? dbmail Contraseña de conexion con la base de datos? aleluya Iniciar el servidor IMAP en el inicio? NO Iniciar el servidor POP3 en el inicio? SI Utilizar stunnel para POP3S? NO
Y sigue sin poder conectar con la base de datos? No pasa nada: aun falta crear las tablas.
$ cp /usr/share/doc/dbmail2-pgsql/examples/create_tables.pgsql.gz . $ gunzip create_tables.pgsql.gz . $ psql -U dbmail dbmail < create_tables.pgsql
Comprobamos que todo va bien
$ sudo /etc/init.d/dbmail restart Stopping dbmail servers: No dbmail-pop3d found running; none killed. done. Starting dbmail servers: dbmail-pop3d .done.
$ telnet localhost 110 Trying 127.0.0.1... Connected to localhost.localdomain. Escape character is '^]'. +OK DBMAIL pop3 server ready to rock quit +OK see ya later Connection closed by foreign host.
Bien parece que tenemos ya servidor de POP3, Ok? Como? Que no te lo crees? Bien hecho.
$ sudo dbmail-users -a frodo -w mitesoro -s fbolson@midominio Opening connection to database... Opening connection to authentication... Ok. Connected Adding user frodo with password type ,0 bytes mailbox limit and clientid 0... Ok, user added id [3] Adding INBOX for new user Ok. added [fbolson@mitesoro] Done
Ahora vamos a ver
$ telnet localhost 110 Trying 127.0.0.1... Connected to localhost.localdomain. Escape character is '^]'. +OK DBMAIL pop3 server ready to rock <66dcba87dbc642906b8410fc1f2223a0@urisma> user frodo +OK Password required for frodo pass mitesoro +OK frodo has 0 messages (0 octets) quit +OK see ya later Connection closed by foreign host.
¿Te lo crees ya? Venga, seguimos.
Aun queda un problema con Dbmail y PostgreSQL. Existe un problema con ciertas codificaciones. Es necesario editar el archivo /etc/init.d/dbmail y agregar un par de lineas. Se deben poner al principio ya que se trata de una variable de entorno utilizada en la conexion con PostgreSQL. Un buen lugar es despues de
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
Las lineas son
PGCLIENTENCODING=LATIN1 export PGCLIENTENCODING
Para acabar con Dbmail, por defecto no activa el servidor LMTP (para enlazar con Postfix). Es necesario editar /etc/default/dbmail y descomentar la linea
START_LMTPD=true
Vamos a configurar ahora Postfix con el antivirus, y el antispam, haciendo al mismo tiempo la conexion con la Dbmail para no perder mas tiempo en detalles.
$ sudo apt-get install clamsmtp clamav-daemon $ sudo apt-get install postgrey $ sudo gedit /etc/postfix/main.cf
Estos son los cambios necesarios:
# resuelve en /etc/hosts (no solo dns) smtp_host_lookup = dns, native
local_recipient_maps =
# utilizo POP BEFORE SMTP para no actuar de OpenRelay mynetworks = 127.0.0.0/8, pgsql:/etc/postfix/sql-pop-before-smtp.cf
# se pueden añadir dominios en la base de datos transport_maps = pgsql:/etc/postfix/sql-transport.cf mydestination = localhost, localhost.localdomain, $transport_maps
# para clamav content_filter = scan:localhost:10026 receive_override_options = no_address_mappings
# el postgrey correo en el puerto 60000 smtpd_recipient_restrictions = permit_mynetworks, reject_unauth_destination, check_policy_service inet:127.0.0.1:60000
En /etc/postfix/master.cf
$ sudo gedit /etc/postfix/master.cf
lineas a añadir:
dbmail-lmtp unix - - n - - lmtp -o disable_dns_lookups=yes
# AV scan filter (used by content_filter) scan unix - - n - 16 smtp -o smtp_send_xforward_command=yes # For injecting mail back into postfix from the filter 127.0.0.1:10025 inet n - n - 16 smtpd -o content_filter= -o receive_override_options=no_unknown_recipient_checks,no_header_body_checks -o smtpd_helo_restrictions= -o smtpd_client_restrictions= -o smtpd_sender_restrictions= -o smtpd_recipient_restrictions=permit_mynetworks,reject -o mynetworks_style=host -o smtpd_authorized_xforward_hosts=127.0.0.0/8,pgsql:/etc/postfix/sql-pop-before-smtp.cf
Aun quedan 2 archivos: El primero le dice a Postfix las IPs que tienen permiso para enviar (SMTP) por haber leido correo previamente (POP3). Es el archivo /etc/postfix/sql-pop-before-smtp.cf
user=dbmail password=aleluya dbname=dbmail hosts=localhost table=dbmail_pbsp select_field=since where_field=ipnumber
El segundo nos va a permitir agregar nuevos dominios desde la base de datos. Es el archivo /etc/postfix/sql-transport.cf
user=dbmail password=aleluya dbname=dbmail table=dbmail_transport select_field=transport where_field=domain hosts=localhost
Antes tenemos que crear la tabla "dbmail_transport" en nuestra base de datos.
$ psql dbmail -W dbmail Contraseña: Bienvenido a psql 8.0.7, el terminal interactivo de PostgreSQL.
Digite: \copyright para ver los términos de distribución \h para obtener ayuda sobre comandos SQL \? para obtener ayuda sobre comandos internos \g o punto y coma (;) para ejecutar consulta \q para salir
dbmail=> CREATE TABLE dbmail_transport ( dbmail(> domain VARCHAR(100) NOT NULL, dbmail(> transport VARCHAR(100) NOT NULL DEFAULT 'dbmail-lmtp:localhost:24' dbmail(> ); CREATE TABLE dbmail=> INSERT INTO dbmail_transport (domain) VALUES ('midominio');
IMPORTANTE: no olvidar este insert (o no llegaran los correos de 'midominio' a DBMAIL)
Vamos a ver como va la cosa....
$ sudo /etc/init.d/postfix restart * Stopping Postfix Mail Transport Agent postfix [ ok ] * Starting Postfix Mail Transport Agent postfix [ ok ]