1. Skip to Menu
  2. Skip to Content
  3. Skip to Footer>

Interesante

  • Cómo instalar Mutt con IMAP

    En esta guía voy a explicar un poco el uso del cliente de correo mutt con el protocolo IMAP.
    mutt es un cliente de correo que soporta muchos formatos de almacenamiento de emails como mbox, Maildir, o MH. Adems de esto, mutt es capaz de conectarse a servidores POP3 e IMAP4. En esta guía tratar el soporte de IMAP en mutt.
    Lo primero de todo es instalar mutt. Dado que es posible que tengais diferentes distribuciones intentaré tratar las más posible:

  • Instalar Midnight Commander (MC) en Debian
    Midnight Commander (mc) es un gestor de ficheros ortodoxo para sistemas tipo Unix y un clon de Norton Commander.Midnight Commander es una aplicación modo texto. El interface principal consiste en dos paneles que muestran el sistema de ficheros.Las características de Midnight Commander incluyen un editor interno con sintaxis resaltada, visualización de los contenidos de los paquetes RPM, y conexión a servidores FTP. Algo interesante es que con undelete podemos recuperar ficheros borrados.Midnight Commander es software libre, protegido por la GPL de GNU.

    Definición de Wikipedia


  • Cómo configurar un servidor NFS

    Configurar un servidor NFS.

    Introducción.

    NFS, acrónimo de Network File System, es un popular protocolo utilizado para compartir volúmenes entre máquinas dentro de una red de manera transparente, más comúnmente utilizado entre sistemas basados sobre UNIX®. Es útil y fácil de utilizar, sin embargo no en vano es apodado cariñosamente como "No File Security". NFS no utiliza un sistema de contraseñas como el que tiene SAMBA, solo una lista de control de acceso determinada por direcciones IP o nombres. Es por esto que es importante que el administrador de la red local o usuario entienda que un servidor NFS puede ser un verdadero e inmenso agujero de seguridad si este no es configurado apropiadamente e implementado detrás de un contrafuegos o firewall.

    Personalmente, solo recomiendo utilizar NFS dentro de una red local detrás de un contrafuegos o firewall que permita el accesos solo a las máquinas que integren la red local, nunca para compartir sistemas de archivos a través de Internet. Al no contar con un sistema de autenticación por contraseñas, es un servicio susceptible del ataque de algún cracker. SAMBA es un mucho mejor y más seguro protocolo para compartir sistemas de archivos.

    Procedimientos.

    Teniendo en cuenta los aspectos de seguridad mencionados, es importante que siga los procedimientos descritos a continuación al pie de la letra, y que posteriormente se comprometa también consultar a detalle la documentación incluida en el paquete nfs-utils, ya que este le proporcionará información adicional y completa sobre aspectos avanzados de configuración y utilización.

    Configurando el servidor NFS.

    Se requiere tener instalados nfs-utils y portmap. Preguntaremos al sistema si estos están instalados con la siguiente línea de comando:

    rpm -q nfs-utils portmap

    Lo cual debe de regresar algo como lo siguiente:

    nfs-utils-0.3.1-13.7.2.1
    portmap-4.0-38

    En caso de que falte alguno de estos paquetes, inserte el CD de instalación en la unidad correspondiente, abra una terminal o consola y ejecute lo siguiente:

    mount /mnt/cdrom/
    rpm -Uvh /mnt/cdrom/RedHat/RPMS/paquete_faltante

    Cabe mencionar que lo mejor será siempre utilizar la versiones de nfs-utils y portmap más actuales. Salvo por RedHat® Linux 7.1 o LinuxPPP 7.x, el resto de las versiones anteriores de RedHat® y LinuxPPP® incluyen paquetes de nfs-utils y portmap con serios agujeros de seguridad. Visite el servidor ftp de la distribución utilizada y descargue los paquetes actualizados, que seguramente incluirán los parches de seguridad necesarios:

                        

                           

    Configurando la seguridad.

    Lo siguiente será configurar un nivel de seguridad para portmap. Esto se consigue editando los ficheros /etc/hosts.allow y /etc/hosts.deny. Debemos especificar que direcciones IP o rango de direcciones IP pueden acceder a los servicios de portmap y quienes no pueden hacerlo. Podemos entonces determinar en /etc/hosts.allow como rango de direcciones IP permitidas los siguiente:

    portmap:192.168.1.0/255.255.255.0

    Esto corresponde a la dirección IP de la red completa y la máscara de la sub-red. Adicionalmente podemos especificar direcciones IP individuales sin necesidad de establecer una máscara. Esto es de utilidad cuando se desea compartir volúmenes con otras máquinas en otras redes a través de Internet. Ejemplo:

    portmap:192.168.1.0/255.255.255.0
    portmap:192.168.20.25
    portmap:192.168.30.2
    portmap:216.200.152.96
    portmap:148.240.28.171

    Una vez determinado que direcciones IP pueden acceder a portmap, solo resta determinar quienes no pueden hacerlo. Evidentemente nos referimos al resto del mundo, y esto se hace agregando la siguiente línea:

    portmap:ALL

    Es importante destacar que la línea anterior es INDISPENSABLE y NECESARIA si quiere tener un nivel de seguridad decente. De manera predeterminada las versiones más recientes de nfs-utils no permitirán iniciar el servicio si esta línea no se encuentra presente en /etc/hosts.deny.

    Una vez configurado portmap, debe reiniciarse el servicio de portmap:

    /sbin/service portmap restart

    Si tiene un DNS, de de alta las direcciones IP asociadas a un nombre o bien edite /etc/hosts y agregue las direcciones IP asociadas con un nombre. Esto nos servirá como listas de control de accesos. Ejemplo del fichero /etc/hosts:

    127.0.0.1 localhost.localdomain localhost
    192.168.1.254 servidor.mi-red-local.org servidor
    192.168.1.2 algun_nombre.mi-red-local.org algun_nombre
    192.168.1.3 otro_nombre.mi-red-local.org otro_nombre
    192.168.1.4 otro_nombre_mas.mi-red-local.org otro_nombre_mas
    192.168.1.5 como_se_llame.mi-red-local.org como_se_llame
    192.168.1.6 como_sea.mi-red-local.org como_sea
    192.168.1.7 lo_que_sea.mi-red-local.org lo_que_sea

    Compartir un volumen NFS.

    Procederemos a determinar que directorio se va a compartir. Puede crear también uno nuevo:

    mkdir -p /var/nfs/publico

    Una vez hecho esto, necesitaremos establecer que directorios en el sistema serán compartidos con el resto de las máquinas de la red, o bien a que máquinas, de acuerdo al DNS o /etc/hosts se permitirá el accesos. Esto deberemos agregarlos en /etc/exports determinado con que máquinas y en que modo lo haremos. Se puede especificar una dirección IP o bien nombre de alguna máquina, o bien un patrón común con comodín para definir que máquinas pueden acceder. De tal modo podemos utilizar el siguiente ejemplo (la separación de espacios se hace con un tabulador):

    /var/nfs/publico *.mi-red-local.org(ro,sync)

    En el ejemplo anterior se esta definiendo que se compartirá /var/nfs/publico/ a todas las máquinas cuyo nombre, de acuerdo al DNS o /etc/hosts, tiene como patrón común mi-red-local.org, en modo de lectura escritura. Se utilizó un asterisco (*) como comodín, seguido de un punto y el nombre del dominio. Esto permitirá que como_se_llame.mi-red-local.org, como_sea.mi-red-local.org, lo_que_sea.mi-red-local.org, etc., podrán acceder al volumen /var/nfs/publico/ en modo solo lectura. Si queremos que el accesos a este directorio sea en modo de lectura y escritura, cambiamos (ro) por (rw):

    /var/nfs/publico *.mi-red-local.org(rw,sync)

    Ya que se definieron los volúmenes a compartir, solo resta iniciar o reiniciar el servicio nfs. Utilice cualquiera de las dos líneas dependiendo el caso:

    /sbin/service nfs start
    /sbin/service nfs restart

    A fin de asegurarnos de que el servicio de nfs esté habilitado la siguiente vez que se encienda el equipo, debemos ejecutar lo siguiente:

    /sbin/chkconfig --level 345 nfs on

    El comando anterior hace que se habilite nfs en los niveles de corrida 3, 4 y 5.

    Como medida de seguridad adicional, si tiene un contrafuegos o firewall implementado, cierre, para todo aquello que no sea parte de su red local, los puertos tcp y udp 2049, ya que estos son utilizados por NFS para escuchar peticiones.

    Configurando las máquinas clientes.

    Para probar la configuración, es necesario que las máquinas clientes se encuentren definidas en el DNS o en el fichero /etc/hosts del servidor. Si no hay un DNS configurado en la red, deberán definirse los nombres y direcciones IP correspondientes en el fichero /etc/hosts de todas las máquinas que integran la red local.

    Como root, en el equipo cliente, ejecute el siguiente comando para consultar los volúmenes exportados (-e) a través de NFS por un servidor en particular:

    showmount -e 192.168.1.254

    Lo anterior mostrará una lista con los nombres y rutas exactas a utilizar. Ejemplo:

    Export list for 192.168.1.254:
    /var/nfs/publico 192.168.1.0/24

    A continuación creamos, como root, desde cualquier otra máquina de la red local un punto de montaje:

    mkdir /mnt/servidornfs

    Y para proceder a montar el volumen remoto, utilizaremos la siguiente línea de comando :

    mount servidor.mi-red-local.org:/var/nfs/publico /mnt/servidornfs

    Si por alguna razón en el DNS de la red local, o el fichero /etc/hosts de la máquina cliente, decidió no asociar el nombre de la máquina que fingirá como servidor NFS a su correspondiente dirección IP, puede especificar ésta en lugar del nombre. Ejemplo:

    mount -t nfs 192.168.1.254:/var/nfs/publico /mnt/servidornfs

    Podremos acceder entonces a dicho volumen remoto con solo cambiar al directorio local definido como punto de montaje, del mismo modo que se haría con un disquete o una unidad de CDROM:

    cd /mnt/servidornfs

    Si queremos poder montar este volumen NFS con una simple línea de comando o bien haciendo doble clique en un icono sobre el escritorio, será necesario agregar la correspondiente línea en /etc/fstab. Ejemplo:

    servidor.mi-red-local.org:/var/nfs/publico /mnt/servidornfs nfs user,exec,dev,nosuid,rw,noauto 0 0

    La línea anterior especifica que el directorio /var/nfs/publico/ de la máquina servidor.mi-red-local.org será montado en en directorio local /mnt/servidor/nfs, permitiéndole a los usuarios el poder montarlo, en modo de lectura y escritura y que este volumen no será montado durante el arranque del sistema. Esto último es de importancia, siendo que si el servidor no está encendido al momento de arrancar la máquina cliente, este se colgará durante algunos minutos.

    Una vez agregada la línea en /etc/fstab de la máquina cliente, si utiliza GNOME Midnight Commander, el administrador de archivos de GNOME-1.1 y 1.2, solo restará iniciar una sesión gráfica, hacer clique derecho sobre el escritorio y seleccionar Actualizar dispositivos o Rescan devices. Esto colocará un icono adicional sobre el escritorio que deberá ser tratado del mismo modo que se haría con un disquete o unidad de CDROM.

    Icono para volumen NFS

    Si utiliza GNOME-1.4 o superior, éste incorpora Nautilus como administrador de archivos, mismo que auto-detecta cualquier cambio en /etc/fstab. Solo debe hacerse clique derecho sobre el escritorio y debe seleccionarse el disco que se desee montar.

    Accesos a discos en Nautilus

    Instalación de GNU/Linux a través de un servidor NFS.

    Este es quizás el uso más común para un volumen NFS. Permite compartir un volumen que contenga una copia del CD de instalación de alguna distribución y realizar inclusive instalaciones simultáneas en varios equipos. Tiene como ventaja el que la instalación puede resultar más rápida que si se hiciese con un CDROM, siendo que la tasa de trasferencia de archivos será determinada por el ancho de banda de la red local, y nos permitirá instalar GNU/Linux en máquinas que no tengas unidad de CDROM.

    Una vez creado y configurado un volumen a compartir copiaremos todo el contenido del CD de instalación en éste:

    cp -r /mnt/cdrom/* /var/nfs/publico/

    En el directorio images del CD encontraremos varias imágenes para crear disquetes de arranque. Utilizaremos bootnet.img para crear el número de disquetes necesarios para cada máquina en la que realizaremos una instalación, y que nos permitirán acceder a la red. Inserte un disquete y ejecute lo siguiente:

    cd /var/nfs/publico/images/
    dd if=bootnet.img of=/dev/fd0 bs=1440k

    Añada en /etc/hosts, o bien de de alta en el DNS, las direcciones IP, que serán utilizadas por las nuevas máquinas, asociadas a un nombre con el dominio que específico como regla de control de acceso en /etc/exports -es decir *.mi-red-local.org-. Para /etc/hosts, puede quedar algo así:

    127.0.0.1 localhost.localdomain localhost
    192.168.1.254 servidor.mi-red-local.org servidor
    192.168.1.2 algun_nombre.mi-red-local.org algun_nombre
    192.168.1.3 otro_nombre.mi-red-local.org otro_nombre
    192.168.1.4 otro_nombre_mas.mi-red-local.org otro_nombre_mas
    192.168.1.5 como_se_llame.mi-red-local.org como_se_llame
    192.168.1.6 como_sea.mi-red-local.org como_sea
    192.168.1.7 lo_que_sea.mi-red-local.org lo_que_sea
    192.168.1.8 nueva_maquina.mi-red-local.org nueva_maquina
    192.168.1.9 otra_nueva_maquina.mi-red-local.org otra_nueva_maquina

    Utilice estos disquetes para arrancar en los equipos, ingrese una dirección IP y demás parámetros para esta máquina y cuando se le pregunte ingrese la dirección IP del servidor NFS y el directorio en éste donde se encuentra la copia del CD de instalación. El resto continuará como cualquier otra instalación.

    Autor: Joel Barrios Dueñas
    Correo electrónico: joelbarrios arroba linuxparatodos punto net
    Sitio de Red: http://www.linuxparatodos.net/

    Creative Commons Reconocimiento-NoComercial-CompartirIgual 2.1

    (c) 1999-2005 Linux Para Todos. Usted es libre de copiar, distribuir y comunicar públicamente la obra y hacer obras derivadas bajo las condiciones siguientes: a) Debe reconocer y citar al autor original. b) No puede utilizar esta obra para fines comerciales. c) Si altera o transforma esta obra, o genera una obra derivada, sólo puede distribuir la obra generada bajo una licencia idéntica a ésta. Al reutilizar o distribuir la obra, tiene que dejar bien claro los términos de la licencia de esta obra. Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los derechos de autor. Los derechos derivados de usos legítimos u otras limitaciones no se ven afectados por lo anterior. Licencia completa en castellano. La información contenida en este documento y los derivados de éste se proporcionan tal cual son y los autores no asumirán responsabilidad alguna si el usuario o lector hace mal uso de éstos.

    Technorati Tags:
    >>

  • Cómo montar Túneles con OpenVPN sobre Debian

    Al ver que en el wiki, no esta bien explicado como se monta un túnel con OpenVPN, y buscar información para montarlo, escribí este artículo para que nadie mas se perdiera en el proceso.

     

    Micro documento sobre como montar una red de túneles cifrados en nuestro nodo con OpenVPN, para uno, o mas túneles cifrados, sobre red local o inet. ( Con clientes, o con otros nodos )

  • 15 mitos sobre linux
    15 mitos sobre linux

    Si uno busca en la red, puede encontrar muchos documentos en los cuales gente conocedora hace una comparación objetiva entre Linux y Windows (tanto en servidores como en estaciones de trabajo). En muchos de los documentos se exponen puntos válidos y vigentes en contra de Linux, pero en muchos otros sólo se perpetúan algunos mitos acerca de este sistema operativo. Algunas personas conocieron a Linux en los tiempos del viejo Red-Hat 6.0 y debido a esto todavía creen en ellos. Algunos de estos mitos son:

  • Trucos para Debian
    “¡Olvidé la contraseña de superusuario!” (1)

    Es posible arrancar el sistema y acceder a la cuenta de superusuario sin conocer la contraseña siempre y cuando se tenga acceso al teclado de la consola (esto supone que ni la BIOS ni un cargador de arranque como lilo solicitan una contraseña para evitar el arranque del sistema) Este es un procedimiento que no requiere de discos de arranque externos ni cambios en los parámetros de arranque de la BIOS. Aquí, “Linux” hace referencia al kernel de Linux de la instalación predeterminada de Debian.
02
Ago

Cómo configurar Postfix Courier y MySQL

Escrito por J. Llorente

PDFImprimir E-mail
Postfix Courier y MySQL

1. ¿Por que este documento?

Me he decidido a escribir este documento ya que los que busqué al intentar hacer la instalación de este trío no llegaron a gustarme.


2.¿Por que usar la autentificación en un SQL?

Lo que vamos ha hacer con este trío es conseguir un sistema de correo completo con una autentificación es un sistema de bases de datos SQL, con lo cual conseguiremos manejar varios dominios virtuales con cientos de usuarios los cuales no existen en el sistema realmente.

3. ¿Que necesito?

Bien yo hice la instalación sobre Debian GNU/Linux aunque no debería cambiar mucho para otros Linux o *BSD.
Los paquetes Debian necesarios para esta gesta son:

postfix A high-performance mail transport agent
postfix-mysql MYSQL map support for Postfix
courier-authdaemon Courier Mail Server authentication daemon
courier-authmysql MySQL Authentication for Courier Mail Server
courier-base Courier Mail Server Base System
courier-imap IMAP daemon with PAM and Maildir support
courier-imap-ssl IMAP daemon with SSL, PAM and Maildir suppor

Estos deberían estar en la misma máquina la BBDD puede ser remota y el servidor MySQL podemos instalarlo en la maquina local o no , eso tendrá que ser valorado a la hora de instalar.

mysql-client - mysql database client binaries
mysql-common - mysql database common files (e.g. /etc/mysql/my.cnf)
mysql-server - mysql database server binaries

En distintas distribuciones a Debian o si instalamos desde código fuente debemos fijarnos en que postfix y courier estén compilados con soporte de MySQL.

4. Después de la instalación de paquetes.

Lo primero que hice fue hacer las tablas de la base de datos.

# mysql
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 3 to server version: 3.23.53-log

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> create database maildb;
Query OK, 1 row affected (0.00 sec)

mysql> grant all privileges on maildb.* to postfix@localhost identified by 'elapassque quieras';
Query OK, 0 rows affected (0.00 sec)

y seleccionamos la base de datos:

mysql> use mail;
Database changed

La primera que creo es la de transport , viene a ser como el mailertable de sendmail indicamos que acción que se debe ejecutar dependiendo del dominio al que se dirige el email, la estructura es la siguiente.

CREATE TABLE transport (
domain varchar(128) NOT NULL default '',
transport varchar(128) NOT NULL default '',
UNIQUE KEY domain (domain)
) TYPE=MyISAM;

Domain indica el dominio sobre el cual se debe ejecutar la acción y transport la acción a realizar, recomiendo un man 5 transport para ver las opciones , aunque las más comunes son:

smtp: con lo que redirigiremos el correo de ese servidor hacia otro dominio

local: hará un relay local es decir chequeara si ese usuario existe en la maquina local y si es afirmativo le entregará el email

virtual: este es relativo a los dominios virtuales normalmente los que autentificamos conta la base de datos.

La tabla de transport deberia quedar similar a esta:

mysql> select * from transport;
+-----------------------------+---------------------+
| domain | transport |
+-----------------------------+---------------------+
| dominio.com | virtual: |
| paquito.dominio.com | smtp:192.168.0.2:25 |
| listas.dominio.com | local: |
+-----------------------------+---------------------+
3 rows in set (0.00 sec)

La segunda tabla y la más compleja por el número de campos es la de los usuarios, la estructura es la siguiente:

CREATE TABLE users (
id varchar(128) NOT NULL default '',
id_courier varchar(128) NOT NULL default '',
address varchar(128) NOT NULL default '',
crypt varchar(128) NOT NULL default '',
clear varchar(128) NOT NULL default '',
name varchar(128) NOT NULL default '',
uid smallint(5) unsigned NOT NULL default '1000',
gid smallint(5) unsigned NOT NULL default '1000',
home varchar(128) NOT NULL default '/',
domain varchar(128) NOT NULL default '',
maildir varchar(255) NOT NULL default '',
imapok tinyint(3) unsigned NOT NULL default '1',
bool1 tinyint(3) unsigned NOT NULL default '1',
bool2 tinyint(3) unsigned NOT NULL default '1',
PRIMARY KEY (id),
UNIQUE KEY id (id),
UNIQUE KEY address (address),
KEY id_2 (id),
KEY address_2 (address)
) TYPE=MyISAM;


Paso a explicar que es cada campo.
id Nombre de usuario. Sirve para identificar al usuario de correo en la base de datos normalmente se usa Esta dirección electrónica esta protegida contra spam bots. Necesita activar JavaScript para visualizarla
id_courier Nombre del usuario de IMAP, con este campo identificaremos el login de imap del usuario de esa cuenta de correo, por ejemplo Esta dirección electrónica esta protegida contra spam bots. Necesita activar JavaScript para visualizarla si quisiéramos que se identificase como paco en este campo pondríamos paco.

address Pues nada aquí obviamente tenemos que poner la dirección de correo electrónico completa Esta dirección electrónica esta protegida contra spam bots. Necesita activar JavaScript para visualizarla por ejemplo.

crypt Aqui irá la clave encriptada, se debe insertar como encrypt('tupasswd').

clear El password en texto plano.

name Nombre con el que se enviaran los emails, es decir Esta dirección electrónica esta protegida contra spam bots. Necesita activar JavaScript para visualizarla usaria Francisco Yonky Mas Jaco.

uid y gid Son el uid y el gid del usuario que puede escribir en el directorio de spool de mensajes, más adelante explicaré lo que es.

home En este campo se ha de poner el directorio general de spool este directorio ha de tener un gid y uid igual al que hemos puesto anteriormente, y será donde se almacenen las carpetas del usuario de un dominio en concreto. Seria algo similar a esto /var/spool/mail/dominio/paco/, normalmente meteremos todo un dominio con el mismo gid y uid.

domain Coincide con el dominio en nuestro caso jaco.com

maildir Es el directorio maildir de usuario. Por ejemplo /var/spool/mail/dominio/paco/Maildir/.

imapok Es un campo que pondremos a 1 si queremos que ese usuario posea cuenta imap

bol1 y bol2 La he colocado para usarlas como variables bit para imap y poder emprender distintas acciones según estén a 1 o 0.

La tabla quedaría mas o menos así:


| id | id_courier | address | crypt |clear | name| uid |gid | home| domain| maildir| imapok |bool1 | bool2 |

| Esta dirección electrónica esta protegida contra spam bots. Necesita activar JavaScript para visualizarla | paco| Esta dirección electrónica esta protegida contra spam bots. Necesita activar JavaScript para visualizarla | PyinZSuIE0lRs | mipassesjaco | Francisco Yonky Mas Jaco | 1000 | 1000 | /var/spool/mail/dominio/paco/ | dominio.com | /var/spool/mail/dominio/paco/Maildir/ | 1 | 1 | 1 |

La última tabla es virtual, esta tabla contendrá direcciones virtuales por ejemplo las del mailman, su estructura es:

CREATE TABLE virtual (
address varchar(255) NOT NULL default '',
goto varchar(255) NOT NULL default '',
UNIQUE KEY address (address)
) TYPE=MyISAM;

address Identifica la dirección virtual

goto dirección a la que apuntará la virtual.

Ejemplo de la tabla en concreto para mailman:

mysql> select * from virtual;
+----------------------------------------+-------------------+
| address | goto |
+----------------------------------------+-------------------+
| Esta dirección electrónica esta protegida contra spam bots. Necesita activar JavaScript para visualizarla | general-owner |
| Esta dirección electrónica esta protegida contra spam bots. Necesita activar JavaScript para visualizarla | general |
| Esta dirección electrónica esta protegida contra spam bots. Necesita activar JavaScript para visualizarla | general-admin |
| Esta dirección electrónica esta protegida contra spam bots. Necesita activar JavaScript para visualizarla | general-request |
+----------------------------------------+-------------------+
4 rows in set (0.00 sec)


5. Ya tengo las tablas que ¿mas necesito?

Bien ahora lo que necesitaremos será configurar el postfix para que use el mysql.
En /etc/postfix/main.cf necesitamos añadir lo siguiente normalmente se suelen poner sobre relayhost=


transport_maps=mysql:/usr/local/etc/postfix/transport.cf
virtual_mailbox_maps=mysql:/usr/local/etc/postfix/mysql_virt.cf
virtual_uid_maps=mysql:/usr/local/etc/postfix/uids.cf
virtual_gid_maps=mysql:/usr/local/etc/postfix/gids.cf
virtual_mailbox_base=/ #Esto lo puedes cambiar a otro sitio si quieres mas seguridad
mydestination = $mydomain, $myhostname, $transport_maps
virtual_maps =mysql:/usr/local/etc/postfix/virtual.cf

Chequea que en master.cf tengas:
virtual unix - n n - - virtual

Ahora vamos con los archivos de conexión a MySQL que hemos definido anteriormente en main.cf

Todos estos archivos los debemos crear en /etc/postfix:

# transport.cf
user= postfix <--Usuario de la base de datos
password= whatever <--pasword de ese usuario
dbname=maildb <-- nombre de la base de datos
table=transport
select_field=transport
where_field=domain
hosts= localhost <-- o servidor de base de datos remoto


Los demás contienen valores similares

# mysql_virt.cf
user= postfix
password= whatever
dbname=maildb
table=users
select_field=maildir
where_field=address
hosts=localhost

# uids.cf
user=postfix
password=whatever
dbname=maildb
table=users
select_field=uid
where_field=address
hosts=localhost

# gids.cf
user=postfix
password=whatever
dbname=maildb
table=users
select_field=gid
where_field=address
hosts=localhost

# virtual.cf
user=postfix
password=whatever
dbname=maildb
table=virtual
select_field=goto
where_field=address
hosts=localhost

Ahora configuramos el courier para que pueda acceder a la base de datos.

#archivo /etc/courier/authmysqlrc
MYSQL_SERVER localhost #Servidor mysql
MYSQL_USERNAME postfix #Usuario SQL
MYSQL_PASSWORD whatever #password SQL
MYSQL_SOCKET /tmp/mysql.sock #esto se ha de colocar si la base datos es local
MYSQL_DATABASE maildb #base de datos
MYSQL_USER_TABLE users
MYSQL_CRYPT_PWFIELD crypt
MYSQL_CLEAR_PWFIELD clear
MYSQL_UID_FIELD uid
MYSQL_GID_FIELD gid
MYSQL_LOGIN_FIELD id_courier
MYSQL_HOME_FIELD home
MYSQL_NAME_FIELD name
MYSQL_MAILDIR_FIELD maildir
MYSQL_WHERE_CLAUSE imapok=1 AND bool1=1 AND bool2=1

#archivo /etc/courier/authdaemon

authmodulelist="authmysql" <-- esto es para los posibles métodos de autentificación de usuarios en el imap se puede incluir desde PAM a LDAP man authdaemon.

Ahora reinicia los servicios de postfix y courier.

6.Añadiendo un dominio a transport

Muy fácil solo hay que ejecutar esta consulta:

insert into transport (domain,transport) values("dominio.com","virtual:");

7. ¿Como añado usuarios?

Los usuarios los debemos añadir en la base de datos y posteriormente crear los
directorios home y maildir con el gid y el uid que hemos especificado en el registro.

Debemos hacer algo así:
insert into users (id,id_courier,address,crypt,clear,name,uid,gid,home,domain,maildir,imapok,bool1,bool2)
values(" Esta dirección electrónica esta protegida contra spam bots. Necesita activar JavaScript para visualizarla ","paco"," Esta dirección electrónica esta protegida contra spam bots. Necesita activar JavaScript para visualizarla ",encrypt('passwordquequieras'),
"passwordquequieras","Francisco Yonky Mas Jaco","1000","1000","/var/spool/mail/dominio/paco/","dominio.com",
"/var/spool/mail/dominio/paco/Maildir/","1","1","1");

Luego creamos el directorio de este usuario y le damos permisos:

mkdir -p /var/spool/mail/dominio/paco/Maildir
chmod -R UID:GID /var/spool/mail/dominio/paco

8.Fin

Bueno ya debería estar funcionando todo pero si algo falla revisa los logs del sistema no creo que te sea difícil encontrar el fallo ya que los errores de postfix dan bastante información , te aconsejo que también si fallara algo miraras el log del mysql por si hay alguna consulta mal formada o te has equivocado en algún campo. Este Documento esta escrito por Omar López aka pollo puedes usarlo como quieras, no me hago responsable de los daños que puedas causar con el.

Autor: pollo www.valenciawireless.net

Technorati Tags:
ssl >>

Agregue su comentario

Tu Nombre:
Asunto:
Comentario:

Últimos contenidos

Facebook conecta

Total visitas

3641367
38.107.179.231
UNITED STATES
US

Quien está en linea

Tenemos 65 invitados conectado(s)

Conectan

Locations of visitors to this page

Nos visitan desde

Últimos comentarios

Vitales Servidor