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

Interesante

  • Cómo comprimir archivos en Linux Aquí os dejo unas cuantas instrucciones para comprimir-descomprimir ficheros en Linux, también servirá para Mac OSX.
    Sobre todo muy útil para los "nuevos".

  • Compilar Kernel con aceleración gráfica para ATI

    Aquí explico cómo se compila un kernel en Debian y como he conseguido la aceleración gráfica para mi tarjeta ATI 9600XT (es extensible a muchas tarjetas gráficas con chip ATI)

  • Cómo configurar BIND

    BIND es el servidor de nombres de dominio más popular en Internet, que trabaja en todas las plataformas informáticas principales y se caracteriza por su flexibilidad y seguridad. A continuación se puede encontrar tanto la teoría general de los servicios de DNS, como una explicación detallada de los campos y opciones de la configuración de BIND, ejemplos, opciones de seguridad, herramientas de verificación, ligas de información adicional y otras más.

     

  • Cómo montar un Gateway en Linux mediante IP Masquerading
    Un gateway o puerta de enlace es normalmente un equipo informático configurado para dotar a las máquinas de una red local (LAN) conectadas a él de un acceso hacia una red exterior, generalmente realizando para ello operaciones de traducción de direcciones IP (NAT: Network Address Translation). Esta capacidad de traducción de direcciones permite aplicar una técnica llamada IP Masquerading, usada muy a menudo para dar acceso a Internet a los equipos de una LAN compartiendo una única conexión a Internet, y por tanto, una única dirección IP externa.
  • Cómo configurar un escáner en red. El servidor

    Software requerido

    • sane-backends
    • sane-frontends
    • xinetd
                                                                   
                             
                           
                         
                                  
                                       
    Si se utiliza Fedora™ Core o White Box Enterprise Linux, solo basta ejecutar:


    yum install sane-backends sane-frontends xinetd

    Procedimientos

    Debemos verificar que en el fichero /etc/sane.d/dll.conf esté habilitada la línea net.

    # enable the next line if you want to allow access through the network:
    net
    Se añade en el fichero /etc/sane.d/saned.conf la lista de direcciones IP que tendrán permitido conectarse al servicio de escáner en red. Ejemplo:

    #
    # saned.conf
    #
    # The contents of the saned.conf file is a list of host
    # names or IP addresses that are permitted by saned to
    # use local SANE devices in a networked configuration.
    # The hostname matching is not case-sensitive.
    #
    #scan-client.somedomain.firm
    #192.168.0.1
    192.168.1.254
    192.168.1.253
    192.168.1.252
    192.168.1.251
    192.168.1.250
    192.168.1.249
    192.168.1.248
    192.168.1.247
    192.168.1.246
    192.168.1.245

    Para fines informativos en el sistema, se edita el fichero /etc/services y se añade la siguiente línea:

    saned          6566/tcp      saned   # SANE network scanner daemon.

    6566 es el puerto por donde accederán al escáner en red.

    Debe crearse el fichero /etc/xinetd.d/saned con el siguiente contenido:

    service saned
                {
                  socket_type = stream
                  server = /usr/sbin/saned
                  protocol = tcp
                  user = root
                  group = root
                  wait = no
                  disable = no
                }
    Una vez hecho todo esto activamos xinetd, especificando que el servicio se active:

    chkconfig saned on
    Si todo ha ido bien podemos comprobar el funcionamiento del servicio con un simple telnet hacia el puerto 6566.

    telnet localhost 6566
    Lo anterior debe devolver algo como lo siguiente:

    Trying 127.0.0.1...
    Connected to localhost.
    Escape character is '^]'.
    Para salir solo teclee quit y luego presione la tecla ENTER.

    Los clientes.

    Software requerido

    • sane-backends
    • sane-frontends
    • xsane-gimp
    • xsane
    • sane-frontends

                                    
                            
                              
                                                                                                            
                                                                           

    Si se utiliza Fedora™ Core o White Box Enterprise Linux, solo basta ejecutar:

    yum install sane-backends sane-frontends xsane-gimp xsane sane-frontends

    Procedimientos.

    Deben editarse en los equipos clientes el fichero /etc/sane.d/net.conf y especificarse al dirección IP del servidor recién configurado:

    # This is the net config file.  Each line names a host to attach to.
    # If you list "localhost" then your backends can be accessed either
    # directly or through the net backend.  Going through the net backend
    # may be necessary to access devices that need special privileges.
    192.168.1.1

    El ejemplo anterior considera que el servidor conde se configuró el escáner tiene la dirección IP 192.168.1.1

    Solo bastará ejecutar xsane en los clientes y estos deberán detectar automáticamente el escáner en el servidor 192.168.1.1. Solo recuerde que solo se puede utilizar el escáner por un solo cliente a las vez.

    Autor: Joel Barrios Dueñas
    Correo electrónico: joelbarrios arroba linuxparatodos punto net
    Sitio de Red: http://www.linuxparatodos.net/
    Jabber ID: darkshram@jabber.org

    Creative Commons Reconocimiento-NoComercial-CompartirIgual 2.1

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

    Este manual se basa sobre el documento redactado por marianodjes y publicado originalmente en el artículo 3379 en Linux Para Todos.


    Technorati Tags:
    >>

  • Instalar Debian COMO Este documento fue escrito con el propósito de facilitar la instalación del sistema operativo Debian GNU/Linux 3.0 por medio de CD en la plataforma i386, es decir, las llamadas PCs........

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

3737937
38.107.179.232
UNITED STATES
US

Quien está en linea

Tenemos 57 invitados conectado(s)

Conectan

Locations of visitors to this page

Nos visitan desde

Últimos comentarios