Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
• Ver
• Comentarios
EN CONSTRUCCIÓN
INSTALACIÓN DEL SERVIDOR
CONFIGURACIÓN DE LA RED
INSTALACIÓN DE SOFTWARE NECESARIO PARA EL SERVIDOR DE CORREO
CONFIGURACIÓN DE LA BASE DE DATOS
CONFIGURACIÓN DE DOVECOT
SMTP AUTENTIFICADO
GESTIONANDO TUS CUENTAS DE CORREO
SERVIDOR DE NOMBRES DE DOMINIO (DNS)
INSTALACIÓN DEL WEBMAIL
INSTALACIÓN DEL SERVIDOR
¿Cuál es el mejor sistema operativo para servidores?.
Existen un amplia gama de opciones algunas con costo y otras gratuitas sin duda por excelencia entre los
mejores sistemas operativos para servidores son:
UNIX (Solaris)
BSD (FreeBSD)
GNU/Linux (RHEL)
Entonces si tenemos excelentes opciones como las mencionadas u otras como podrían ser OpenIndiana,
OpenBSD, NetBSD, Centos, Debian. Por qué elegimos Ubuntu Server.
Desde mi muy personal punto de vista para mi la gestión de paquetes por dpkg (aptitude) es magnífica, a
diferencia de rpm (yum). Respecto a la facilidad, a la resolución de dependencias y a la velocidad de
instalación.
Entonces, ¿Por qué no elegir Debian que ha sido una de las distribuciones que vio nacer a tantas más a la par
de Slackware otra de las distribuciones más viejas que actualmente siguen en desarrollo?. Debian libera sus
versiones estables en un tiempo más prolongado por lo que para tener las versiones de los paquetes más
recientes tenemos que tener nuestros repositorios con la versión testing y puede provoca errores en las
dependencias.
Por otra parte Ubuntu libera una versión estable cada seis meses con sus repositorios actualizados, tienen el
respaldo para el soporte técnico de Canonical y una enorme comunidad que sigue en crecimiento, que les
puede servir de mucho apoyo. Sumado a la comunidad Debian que en conocimientos técnicos es maravillosa
y ya que Ubuntu se basa en Debian la documentación es complementaria.
Con esta breve introducción iniciamos con la configuración de nuestro servidor.
Primero tenemos que instalar el sistema operativo y podemos encontrar las imagenes iso AQUÍ la última
versión en este momento es "Ubuntu 10.10 (Maverick Meerkat)" en ese link pueden encontrar para
procesadores de 64 bits o 32 bits.
En este caso seleccionaré el siguiente (32 bits):
ubuntu-10.10-server-i386.iso
Una vez que ya descargamos el archivo de formato ".iso" podemos quemarlo con un software gratuito y
excelente para los usuarios de güin2 llamado ImgBurn que lo encuentran aquí, en su pagina oficial o instalarlo
por medio de unetbootin en una USB.
A continuación arrancamos con el CD dentro de nuestra unidad óptica y veremos la siguiente pantalla.
seleccionamos el idioma español
entramos en la opción "Instalar Ubuntu Server"
elegimos nuestro país "México"
seleccionamos sí para configurar nuestro teclado
buscamos en nuestro teclado los símbolos y letras que nos piden (+, y, u, r, etc)
ahora buscamos si el símbolo "Ç" se encuentra en nuestro teclado y si está seleccionamos sí.
oprimimos la tecla
con estos pasos nos configuró nuestro teclado y encontró que el idioma es "es".
Si tenemos conectado nuestro modem a la computadora por cable ethernet entonces la configuración se hará
con el protocolo DHCP para obtener los parámetros de configuración de red automáticamente.
Seleccionamos el nombre de la máquina (por defecto es ubuntu), este parámetro puede ser modificado por
motivos de seguridad para no dar información acerca de nuestro sistema operativo, poniendo un nombre que
no de información.
en este caso la zona horaria es de acuerdo a la ubicación ciudad de méxico
ahora toca la parte del particionado y seleccionamos particionado "manual"
aquí en el ejemplo el disco duro virtual tiene un tamaño de 10 GB pero no importa más o menos indicaremos
cuales son los tamaños de las particiones necesarias.
elegimos la opción "sí"
seleccionamos el espacio espacio libre para nuestra tabla de particiones
creamos una partición nueva
ponemos el tamaño de la partición en este ejemplo que para nada es el recomendable se seleccionaron dos
particiones una / (raíz) y lo demás para swap (área de intercambio).
Pero las particiones recomendable con los respectivos tamaños son las siguientes:
Imagen tomada de "Implementación de Servidores con GNU/Linux"
seleccionamos la partición primaria
y ahora queremos que la partición este al principio
El sistema de ficheros para todas nuestras particiones excepto para la partición swap es "EXT4".
Como está indicado en la imagen anterior las particiones recomendadas son:
/boot con sistema de ficheros EXT4 y tipo de partición primaria (100MB)
/ con sistema de ficheros EXT4 y tipo de partición primaria (1024MB)
swap con sistema de ficheros "área de intercambio" (doble de la memoria ram o en algunos casos no es
necesaria cuando la potencia del ordenador es muy grande)
/tmp con sistema de ficheros EXT4 y tipo de partición lógica (4.2GB)
/usr con sistema de ficheros EXT4 y tipo de partición lógica (8 GB)
/var con sistema de ficheros EXT4 y tipo de partición lógica (mitad del disco duro restante)
/home con sistema de ficheros EXT4 y tipo de partición lógica (la otra mitad del disco duro restante)
seleccionamos "se ha terminado de definir la partición"
Para entrar a nuestra configuración del Modem (desde alguna otra computadora que no sea donde tenemos
instalado Ubuntu Server porque no tiene interfaz gráfica y que se encuentre conectada a nuestra red interna
(LAN)) introducimos la IP que nos aparece con el comando.
ip neigh
y el resultado del comando es
192.168.1.254 dev wlan0 lladdr 00:26:44:0d:ea:3e REACHABLE
Abrimos nuestro navegador WEB (firefox) y ponemos la IP 192.168.1.254 para este caso depende del
comando la IP que pondrán en su navegador.
nos vamos al apartado Herramientas que se encuentra del lado izquierdo
ahora a la parte de "Compartición de Juegos & Aplicaciones"
vamos a "Crear un nuevo juego o aplicación"
aquí ponemos el nombre del puerto que queremos abrir en nuestro modem puede ser (Servicio SSH o el
número del puerto PUERTO52341).
seleccionamos entrada manual de puertos y después en siguiente
en el intervalo de puertos ponemos 52341-52341 porque solo queremos abrir un puerto
luego vamos a la parte de "Asignar un juego o aplicación a un dispositivo de red local"
en la parte de "Juego o Aplicación" buscamos "PUERTO52341" y en dispositivo buscamos el "nombre de la
máquina" que elegimos para nuestro equipo durante la instalación de nuestro sistema operativo para servidor
"Ubuntu Server".
y ahora damos click en "AGREGAR"
una vez que ya abrimos el puerto en nuestro servidor podemos entrar desde cualquier parte del mundo
(siempre y cuando sepamos la ip externa de nuestro servidor o nuestro dominio) por ejemplo en este
momento yo estoy en Ubuntu Desktop como sistema operativo de mi computadora de escritorio pero dentro
de mi LAN (red interna) y si quiero entrar a mi servidor pongo lo siguiente en una terminal.
NOTA IMPORTANTE: POR FAVOR CAMBIEN EL PUERTO PARA SU SERVIDOR SSH QUE NO SEA EL
MISMO QUE EL DE ESTA GUÍA "52341", POR MOTIVOS DE SEGURIDAD. ARRIBA VIENEN EL
INTERVALO PARA SELECCIONAR EL PUERTO QUE GUSTEN.
ssh -p 52341 192.168.1.100
después nos pide nuestra contraseña, y con esto ya entramos a nuestro servidor desde nuestra computadora
de escritorio.
antes de terminar con esta parte del servidor SSH quiero comentarles que también pueden acceder a los
archivos de su servidor si van en la barra de herramientas de "ubuntu desktop" a "Lugares" y después
"Conectar con el servidor..." nos abre la siguiente ventana
ponemos la IP del servidor (interna, porque aún no hemos configurado nuestra ip externa para que sea fija o
tener un dominio) por lo que por el momento si salimos de nuestra red local no podríamos accesar. También
introducimos el puerto por el que queremos entrar
ahora nos pide el usuario y la contraseña a la que queremos ingresar
y por último al dar click en conectar veremos la siguiente pantalla
así que ya podemos acceder a nuestros archivos sin ningún problema
CONFIGURACIÓN DE IP PÚBLICA
Una vez que ya tenemos configurada nuestra lan para que tenga una ip fija, ahora vamos a configurar una ip
pública como fija utilizando (no-ip).
Primero tenemos que registrarnos en la pagina:
http://www.no-ip.com/newUser.php
Una vez que ya confirmamos nuestro registro a través del correo que proporcionamos. Nos logueamos en la
siguiente pagina:
http://www.no-ip.com/login/
ya dentro vamos a ver la siguiente pagina en la cuál vamos a darle un click al icono encerrado en color rojo
En el apartado de Hostname information nos encontramos con opciones por llenar:
Hostname: Aquí deben poner la pagina que quieran para su servidor (yo como ejemplo pondré server1)
El dominio: Como va a ser gratuito nos vamos al apartado de No-IP Free Domains que está adelante de
hostname y elegimos el que queramos (yo elegiré para lo que sigue en la configuración el dominio "no-ip.org".
Por lo que quedaría así server1.no-ip.org y es el que utilizaré de aquí en adelante.
Y por último seleccionamos la opción "create host"
Bueno eso es todo lo que tenemos que hacer en la pagina de no-ip ahora vamos a configurar no-ip en ubuntu.
Ya desde una terminal ejecutamos los siguientes comandos:
sudo apt-get install no-ip
Durante la instalación veremos una pantalla como esta …
Aquí tenemos que introducir nuestra cuenta de correo de usuario en no-ip.com …
Introducimos en minutos con que frecuencia queremos que nuestro servidor envíe nuestra IP hacia no-ip.com
( 30 es un buen numero ) …
Este apartado lo podemos dejar en blanco sin problemas ya que se supone que solo tenemos esta cuenta
para solo nuestro servidor …
Aquí debemos introducir el nombre con el que está identificada nuestra tarjeta de red. ( Esto podemos verlo
con el comando ifconfig ) …
para esta ultima opción seleccionamos No y listo.
Configuración de la RED
HOSTNAME
Un FQDN (Fully Qualified Domain Name) es un nombre que incluye el nombre de la computadora y el nombre
de dominio asociado a ese equipo. Por ejemplo, dada la computadora llamada «serv1» y el nombre de
dominio «bar.com», el FQDN será «serv1.bar.com», a su vez un FQDN asociado a serv1 podría ser
«post.serv1.bar.com».
La longitud máxima permitida para un FQDN es 255 caracteres (bytes), con una restricción adicional a 63
bytes por etiqueta dentro de un nombre de dominio. Las etiquetas FQDN se restringen a un juego de
caracteres limitado: letras A-Z de ASCII, los dígitos, y el carácter «-» , y no distinguen mayúsculas de
minúsculas.
La sintaxis de los nombres de dominio se discute en varios RFCs -- RFC 1035, RFC 1123 y RFC 2181. En
2004 se añadieron algunos caracteres como «ä, ö, ü, é, à, è...» como caracteres permitidos para las etiquetas.
Ahora entramos a /etc/hosts
nano /etc/hosts
y lo modificamos de la siguiente manera (recuerden que aquí pondrán el host que crearon en la pagina de no-
ip)
127.0.0.1 localhost.localdomain localhost
192.168.0.100 server1.no-ip.org server1
# The following lines are desirable for IPv6 capable hosts
::1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ahora ejecutamos
echo server1.no-ip.org > /etc/hostname
/etc/init.d/hostname restart
para ver el resultado ejecutamos
hostname
Editamos /etc/resolv.conf
nano /etc/resolv.conf
y enseguida modificamos de la siguiente manera:
domain lan
search lan
nameserver aquí_va_la_ip_del_gateway
Fuentes: Linux para todos, The perfect Server (Ubuntu 10.10) y SSH/OpenSSH Configuring
INSTALACIÓN DE SOFTWARE NECESARIO PARA EL SERVIDOR DE CORREO
Ya hemos instalado el sistema operativo y configurado la red, ahora vamos a continuar instalando algunos
paquetes necesarios.
Antes vamos a cambiar de Shell por defecto (seleccionando "no" en instalar dash en /bin/sh?)
dpkg-reconfigure dash
Install dash as /bin/sh? <--No
Inhabilitamos AppArmor
/etc/init.d/apparmor stop
update-rc.d -f apparmor remove
aptitude remove apparmor apparmor-utils
Instalamos algunos paquetes que nos pueden servir de mucho
aptitude install binutils cpp fetchmail flex gcc libarchive-zip-perl libc6-dev libcompress-zlib-perl libdb4.6-dev
libpcre3 libpopt-dev lynx m4 make ncftp nmap openssl perl perl-modules unzip zip zlib1g-dev autoconf
automake1.9 libtool bison autotools-dev g++ build-essential
Ahora vamos a instalar MySQL
nos pedirá ingresar una contraseña de root por favor ingresen una buena contraseña
aptitude install mysql-server mysql-client libmysqlclient16-dev
client {
path = /var/spool/postfix/private/auth
mode = 0660
user = postfix
group = postfix
}
}
ahora buscamos
:/protocol lda
y lo modificamos de esta forma
protocol lda {
log_path = /var/vmail/dovecot-deliver.log
auth_socket_path = /var/run/dovecot/auth-master
postmaster_address = postmaster@example.com
mail_plugins = cmusieve
}
Acuerdese de cambiar la dirección de correo anterior postmaster@example.com por una válida donde se
pueda contactar con el administrador.
Para guardar todos los cambios hechos en vi tecleamos "Esc" y después tecleamos ":wq"
:wq
Ahora creamos el archivo
nano /etc/logrotate.d/dovecot-deliver
y copiamos lo siguiente:
/var/vmail/dovecot-deliver.log {
weekly
rotate 14
compress
}
guardamos y salimos
Edita /etc/dovecot/dovecot-sql.conf y cambia estas opciones:
driver = mysql
connect = host=127.0.0.1 dbname=mailserver user=mailuser
password=aquí_va_la_contraseña_para_el_usuario_mailuser
default_pass_scheme = PLAIN-MD5
password_query = SELECT email, password FROM virtual_users WHERE email='%u';
Reinicia Dovecot
/etc/init.d/dovecot restart
ahora vemos el registro de /var/log/mail.log
tail /var/log/mail.log
y dentro de las líneas busca
dovecot: Dovecot v1.0.rc15 starting up
dovecot: auth-worker(default): mysql: Connected to 127.0.0.1 (mymailserver)
corregimos los permisos
chgrp vmail /etc/dovecot/dovecot.conf
chmod g+r /etc/dovecot/dovecot.conf
creamos un certificado
openssl req -new -x509 -days 3650 -nodes -out /etc/ssl/certs/dovecot.pem -keyout /etc/ssl/private/dovecot.pem
El certificado y la llave se crearán mientras te hace unas cuantas cuestiones:
Generating a 1024 bit RSA private key
.........++++++
............................++++++
writing new private key to '/etc/ssl/certs/dovecot.pem'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:MX
State or Province Name (full name) [Some-State]:Distrito Federal
Locality Name (eg, city) []:Mexico
Organization Name (eg, company) [Internet Widgits Pty Ltd]:
Organizational Unit Name (eg, section) []:
Common Name (eg, YOUR name) []:server1.no-ip.org
Email Address []:
Seguramente deberías rellenarlo con tu propia información. La opción más importante es la Common Name
que debería contener el nombre totalmente cualificado de tu servidor de correo. Ah, y este certificado será
válido for 10 años (3650 días), ajusta este periodo como quieras.
cambiamos los permisos
chmod o= /etc/ssl/private/dovecot.pem
reiniciamos dovecot
/etc/init.d/dovecot restart
con esto hemos terminado la configuración de Dovecot ahora vamos a probar nuestra configuración.
SMTP AUTENTIFICADO
Ejecutamos
postconf -e smtpd_sasl_type=dovecot
postconf -e smtpd_sasl_path=private/auth
postconf -e smtpd_sasl_auth_enable=yes
postconf -e
smtpd_recipient_restrictions=permit_mynetworks,permit_sasl_authenticated,reject_unauth_destination
/etc/init.d/postfix restart
si aún no han creado los certificados para postfix pueden hacerlo en este momento
openssl req -new -x509 -days 3650 -nodes -out /etc/ssl/certs/postfix.pem -keyout /etc/ssl/private/postfix.pem
Tiene que seguir el mismo procedimiento que realizamos para Dovecot. Acuérdate de ajustar el "Common
Name" al nombre del host totalmente cualificado. También podrías usar el mismo certificado que has creado
para Dovecot si el nombre del servidor es el mismo. En ese caso, usa los siguientes archivos
/etc/ssl/certs/dovecot.pem y /etc/ssl/private/dovecot.pem.
chmod o= /etc/ssl/private/postfix.pem
postconf -e smtpd_tls_cert_file=/etc/ssl/certs/postfix.pem
postconf -e smtpd_tls_key_file=/etc/ssl/private/postfix.pem
postconf -e smtpd_use_tls=yes
postconf -e smtpd_tls_auth_only=yes
AMaViS: filtrando spam y viruses
Editamos /etc/amavis/conf.d/15-content_filter_mode
nano /etc/amavis/conf.d/15-content_filter_mode
debemos eliminar el carácter "#" de las líneas que comienzan por @bypass_... y así habilitas los filtros de
correo basura y virus. (Es un poco confuso que habilitando la opción "bypass", realmente habilites el escáner
de virus y correo basura.)
#@bypass_virus_checks_maps = (
# \%bypass_virus_checks, \@bypass_virus_checks_acl, \$bypass_virus_checks_re);
#@bypass_spam_checks_maps = (
# \%bypass_spam_checks, \@bypass_spam_checks_acl, \$bypass_spam_checks_re);
Ahora editamos /etc/amavis/conf.d/50-user
nano /etc/amavis/conf.d/50-user
@local_domains_acl = qw(.);
$log_level = 1;
$syslog_priority = 'info';
# $sa_tag_level_deflt = 2.0; # add spam info headers if at, or above that level
# $sa_tag2_level_deflt = 6.31; # add 'spam detected' headers at that level
$sa_kill_level_deflt = 8.0; # triggers spam evasive actions
# $sa_dsn_cutoff_level = 10; # spam level beyond which a DSN is not sent
# $final_spam_destiny = D_PASS;
# $final_spam_destiny = D_REJECT; # default
# $final_spam_destiny = D_BOUNCE; # debian default
$final_spam_destiny = D_DISCARD; # ubuntu default, recommended as sender is usually faked
quedaría de la siguiente forma el archivo completo:
use strict;
#
# Place your configuration directives here. They will override those in
# earlier files.
#
# See /usr/share/doc/amavisd-new/ for documentation and examples of
# the directives you can use in this file
#
@local_domains_acl = qw(.);
$log_level = 1;
$syslog_priority = 'info';
# $sa_tag_level_deflt = 2.0; # add spam info headers if at, or above that level
# $sa_tag2_level_deflt = 6.31; # add 'spam detected' headers at that level
$sa_kill_level_deflt = 8.0; # triggers spam evasive actions
# $sa_dsn_cutoff_level = 10; # spam level beyond which a DSN is not sent
# $final_spam_destiny = D_PASS;
# $final_spam_destiny = D_REJECT; # default
# $final_spam_destiny = D_BOUNCE; # debian default
$final_spam_destiny = D_DISCARD; # ubuntu default, recommended as sender is usually faked
#------------ Do not modify anything below this line -------------
1; # ensure a defined return
Reiniciamos
/etc/init.d/amavis restart
Verificamos que amavis este escuchando en el puerto tcp 10024
netstat -nap | grep 10024
tcp 0 0 127.0.0.1:10024 0.0.0.0:* LISTEN 12345/amavisd
ejecutamos
postconf -e content_filter=smtp-amavis:[127.0.0.1]:10024
postconf -e receive_override_options=no_address_mappings
Editamos /etc/postfix/master.cf
nano /etc/postfix/master.cf
y añadimos esto (puede ser al final del archivo):
smtp-amavis unix - - n - 2 smtp
-o smtp_data_done_timeout=1200
-o smtp_send_xforward_command=yes
-o disable_dns_lookups=yes
-o max_use=20
127.0.0.1:10025 inet n - - - - smtpd
-o content_filter=
-o local_recipient_maps=
-o relay_recipient_maps=
-o smtpd_restriction_classes=
-o smtpd_delay_reject=no
-o smtpd_client_restrictions=permit_mynetworks,reject
-o smtpd_helo_restrictions=
-o smtpd_sender_restrictions=
-o smtpd_recipient_restrictions=permit_mynetworks,reject
-o smtpd_data_restrictions=reject_unauth_pipelining
-o smtpd_end_of_data_restrictions=
-o mynetworks=127.0.0.0/8
-o smtpd_error_sleep_time=0
-o smtpd_soft_error_limit=1001
-o smtpd_hard_error_limit=1000
-o smtpd_client_connection_count_limit=0
-o smtpd_client_connection_rate_limit=0
-o receive_override_options=no_header_body_checks,no_unknown_recipient_checks
-o local_header_rewrite_clients=
guardamos, cerramos y reiniciamos postfix
postfix reload
ejecutamos
adduser clamav amavis
/etc/init.d/clamav-daemon restart
Edite el archivo /etc/amavis/conf.d/50-user y, antes del "1;", ponga estas líneas:
@lookup_sql_dsn = (
['DBI:mysql:database=mailserver;host=127.0.0.1;port=3306',
'mailuser',
'mailuser2009']);
$sql_select_policy = 'SELECT name FROM virtual_domains WHERE CONCAT("@",name) IN (%k)';
Reiniciamos
/etc/init.d/amavis restart
ejecutamos
chmod o= /etc/amavis/conf.d/50-user
GESTIONANDO TUS CUENTAS DE CORREO
ISPwebAdmin (interfaz web)
creamos la tabla
mysql -u mailuser -p mailserver
ejecutamos
CREATE TABLE IF NOT EXISTS `admins` (
`id` int(11) NOT NULL auto_increment,
`username` varchar(40) NOT NULL,
`pwhash` varchar(32) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
también en MySQL ejecutamos
INSERT INTO mailserver.admins (username,pwhash) VALUES ('postmaster', MD5('aquí_pon_un_pass'));
quit;
Instalamos
aptitude install python-virtualenv
apt-get build-dep python-mysqldb
Inicia una sesión en vmail:
su -s /bin/bash vmail
Acondiciona la aplicación:
cambiamos de directorio
cd /var/vmail
creamos un directorio
mkdir ispwebadmin
entramos al directorio
cd ispwebadmin
ejecutamos
virtualenv .
ejecutamos
. bin/activate
descargamos
wget http://workaround.org/sites/default/files/ispwebadmin-1.0.2.tar_.gz
renombramos
mv ispwebadmin-1.0.2.tar_.gz ispwebadmin-1.0.2.tar.gz
ejecutamos
easy_install ispwebadmin*.tar.gz
ejecutamos
paster make-config ispwebadmin run.ini
ejecutamos para ver el archivo de configuración, después veremos como rellenarlo
vi run.ini
salimos y ejecutamos
paster serve run.ini
Autoinicio usando runit
Abrimos una segunda terminal, no cierren la primera porque regresaremos a configurar el archivo run.ini
aptitude install runit
creamos el directorio
mkdir /etc/sv/ispwebadmin
entramos al directorio
cd /etc/sv/ispwebadmin
creamos el archivo /etc/sv/ispwebadmin/run
nano /etc/sv/ispwebadmin/run
y pegamos lo siguiente:
#!/bin/sh
exec 2>&1
echo 'ISPwebAdmin starting.'
cd /var/vmail/ispwebadmin
sudo -u vmail PYTHON_EGG_CACHE=/var/vmail/ispwebadmin/.python-eggs bin/paster serve run.ini
hacemos el script ejecutable
chmod u+x /etc/sv/ispwebadmin/run
creamos un enlace simbólico
ln -s /etc/sv/ispwebadmin /etc/service/
El servicio debería de iniciarse automáticamente, para comprobar que funciona:
sv status /etc/service/ispwebadmin
run: ispwebadmin: (pid 3335) 0s; run: log: (pid 3326) 4s
para detenerlo:
sv stop /etc/service/ispwebadmin
ok: down: ispwebadmin: 1s, normally up
para iniciarlo
apt-get install daemontools
svc -u /etc/service/ispwebadmin
ok: run: ispwebadmin: (pid 3956) 1s
crear el archivo /etc/sv/ispwebadmin/log/run
nano /etc/sv/ispwebadmin/log/run
con el contenido:
#!/bin/sh -e
LOG=/var/log/runit-ispwebadmin
test -d "$LOG" || mkdir -p -m2750 "$LOG"
exec svlogd -tt "$LOG"
Configurando del archivo INI
Regresamos a la terminal donde iniciamos la sesión en vmail y ejecutamos:
en el directorio /var/vmail/ispwebadmin
nano run.ini
El archivo ini que has creado con "paster make-config something.ini" contiene una configuración específica
para la instalación de tu servidor de correo. Antes de ejecutar la interfaz web revisa las siguientes opciones:
[server:main] -> host
La dirección IP que escucha el servidor web en "0.0.0.0" se puede usar para todas las interfaces.
[server:main] -> port
El puerto TCP que escucha el servidor web.
[app:main] -> ispwebadmin.maildir_location
La ruta de tu directorio donde se almacenan las cuentas de correo de usuarios virtuales. Si has seguido este
turorial, debería ser "/var/vmail".
[app:main] -> ispwebadmin.postmaster
La dirección de correo que se usa como dirección abuse@ y postmaster@ para los dominios creados
recientemente. Necesitas tener esas cuentas para cada dominio.
[app:main] -> sqlalchemy.url
Esta parte es muy importante!, es la cadena de acceso que define cómo acceder a tu base de datos.
mysql://root:seoroct3@mailserver.example.com/mailserver?charset=utf8
en resumen sería
mysql://nombre_del_usuario_de_la_base_de_datos:contraseña_del_usuario@localhost/nombre_de_baseded
atos?charset=utf8
Por último para entrar ponemos la siguiente dirección en un explorador web: http://192.168.1.100:5000
y les arroja la siguiente pantalla
si no pueden loguearse con el usuario y la contraseña que eligieron cuando ejecutaron el comando:
INSERT INTO mailserver.admins (username,pwhash) VALUES ('postmaster', MD5('aquí_pon_un_pass'));
deben añadir lo siguiente a su /etc/hosts
127.0.0.1 localhost
127.0.1.1 server1.lan server1
192.168.1.100 server1.no-ip.org server1
127.0.0.0 server1.no-ip.org
# The following lines are desirable for IPv6 capable hosts
::1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
SERVIDOR DE NOMBRES DE DOMINIO (DNS)
Instalamos
aptitude install bind9
paramos
/etc/init.d/bind9 stop
editamos /etc/default/bind9, debe quedar de la siguiente forma:
# run resolvconf?
RESOLVCONF=yes
# startup options for the server
OPTIONS="-u bind -t /var/lib/named"
creamos los siguientes directorios:
mkdir -p /var/lib/named/etc
mkdir /var/lib/named/dev
mkdir -p /var/lib/named/var/cache/bind
mkdir -p /var/lib/named/var/run/bind/run
movemos el directorio de configuración
mv /etc/bind /var/lib/named/etc
creamos un enlace simbólico
ln -s /var/lib/named/etc/bind /etc/bind
ejecutamos los siguientes comandos:
mknod /var/lib/named/dev/null c 1 3
mknod /var/lib/named/dev/random c 1 8
chmod 666 /var/lib/named/dev/null /var/lib/named/dev/random
chown -R bind:bind /var/lib/named/var/*
chown -R bind:bind /var/lib/named/etc/bind
creamos el siguiente archivo:
nano /etc/rsyslog.d/bind-chroot.conf
e insertamos lo siguiente
$AddUnixListenSocket /var/lib/named/dev/log
reiniciamos el demonio
/etc/init.d/rsyslog restart
e iniciamos bind9
/etc/init.d/bind9 start
ejecutamos
tail /var/log/syslog
Configuración de BIND
editamos
nano /etc/bind/named.conf.local
insertamos
zone "no-ip.org" {
type master;
file "/etc/bind/zones/no-ip.org.db";
};
zone "3.13.10.in-addr.arpa" {
type master;
file "/etc/bind/zones/rev.0.168.192.in-addr.arpa";
};
creamos el directorio
mkdir /etc/bind/zones
creamos el archivo
nano /etc/bind/zones/no-ip.org.db
$TTL 1500
@ IN SOA server1.tm.local. root (
2007062703 ;serial
28800 ;refresh
3600 ;retry
604800 ;expire
38400 ) ;minimum 25 minutes
no-ip.org. IN NS server1.no-ip.org.
server1 IN A 192.168.0.100
no-ip.org. IN MX 10 server1.no-ip.org.
no olviden modificar server1 por el nombre de su subdominio!!! que eligieron durante la configuración de la IP
externa en la parte II de este tutorial
ahora creamos el archivo /etc/bind/zones/rev.3.13.10.in-addr.arpa
nano /etc/bind/zones/rev.3.13.10.in-addr.arpa
$TTL 1500
@ IN SOA server1.tm.local. root (
2007062703 ;serial
28800 ;refresh
3600 ;retry
604800 ;expire
38400 ) ;minimum 25 minutes
IN NS server1.no-ip.org.
100 IN PTR server1.no-ip.org.
editamos el archivo /etc/bind/named.conf.options y descomentamos la sección (quitando los símbolos "//" al
inicio) que se vea como está
forwarders {
# Replace the address below with the address of your ISP DNS server
0.0.0.0;
};
tenemos que modificar esta dirección con el DNS que nos provee nuestro ISP
ahora editamos
nano /etc/resolv.conf
y agregamos
search no-ip.org
nameserver 192.168.1.100 <------------ o la IP de tu servidor (local)
con esto terminamos la configuración de nuestro servidor DNS
Cómo configurar no-ip para crear los registros MX
1. Acceder a su cuenta en No-IP.com.
2. En la parte izquierda, en Host/Redirects (Host/Redireccionamientos). Están las entradas de los dominios
para configurar los txt records y entré a la parte Modify (Modificar).
Una vez dentro de la configuración hay un apartado "MX record":
Entramos al asistente SPF para crear los Registros MX (mail exchange record):
En la parte de arriba hay un enlace a Openspf.org:
y hay un explicación de los errores comunes para crear los registros SPF, se los traduzco aquí:
Errores comunes al crear un registro SPF
Los registros SPF puede ser muy simples (v = spf1 a-all), pero también puede ser bastantes complejos, para
dar cuenta de la multitud de diferentes configuraciones de servidor de correo saliente que existen en Internet.
Los recién llegados a SPF a menudo parecen cometer errores similares al crear su primer registro SPF. En
general, usted debe:
* Comience haciendo una lista de servidores de correo
* Crear una lista de sus dominios
* Lista un servidor una sola vez
* Sólo lista los servidores de correo saliente
* Utilice únicamente "mx" si el MX es usado para el correo saliente
* Utilice "mx" con los nombres de dominio, no los nombres de servidor de correo
* No dé por sentado - especialmente si usted es un proveedor de Internet
* Sólo se "incluyen" registros SPF existentes
* Publicar los registros SPF para los nombres HELO utilizado por los servidores de correo
* Publicar los registros nulos SPF para que tu dominio no envíe mensajes de correo
* Pon a prueba tu nuevo registro SPF para asegurarse de que es válido
* Publicar su registro SPF en el servidor DNS correcto
* Permitir el almacenamiento en caché de DNS durante la prueba
* Dile a tus usuarios!
Comience haciendo una lista de servidores de correo
El objetivo de SPF es hacer publico los dominios de sus servidores de correo. A menudo ayuda a hacer una
lista antes de comenzar. Tenga en cuenta si alguno de los siguientes se utilizan para enviar correo:
* Servidor web
* Servidor de correo en la oficina (por ejemplo, Microsoft Exchange)
* Servidor de correo de su ISP
* Servidor de correo de sus usuarios finales "ISP de casa"
* Cualquier otro servidor de correo
Sólo el servidor de correo final es relevante. Si su empresa tiene una configuración más complicada cuando
un servidor de correo interno rutas a través de un servidor de correo saliente para la entrega al mundo, sería
sólo el servidor de correo saliente se enumeran en el SPF.
Crear una lista de sus dominios
Lo más probable es que haya más de un dominio. Los dominios que no sean utilizadas por usted todavía
puede ser objeto de abuso por los spammers! Ver también Publicar registros SPF nulos para ...
Listar un servidor una sola vez
En última instancia, las búsquedas SPF resuelve en una dirección IP. No es necesario enumerar el mismo
servidor con varios nombres de host (por ejemplo, "example.com" y "www.example.com", que tanto se
resuelven en la misma IP). De hecho, hacerlo es un poco más difícil en los servidores DNS desde un servidor
de recepción progresando a través de sus registros podrá ser obligado a realizar múltiples búsquedas de
DNS, cuando sólo hace referencia al nombre del servidor una vez hubiera sido suficiente.
Si la IP del servidor raramente cambia, puede utilizar el IP4:x.x.x.x (o IP6) notación para los destinatarios
pueden evitar por completo las búsquedas de DNS. Dado que hay un límite de 10 búsquedas de DNS por
registro SPF, especificando una dirección IP o rango de direcciones es preferible que las largas listas de
servidores de correo saliente.
A menudo un registro SPF se puede condensar a algo como "v=spf1 IP4:x.x.x.x -all" si sólo hay un servidor de
correo saliente.
Sólo listar servidores de correo saliente
Objetivo de SPF es la publicación de una lista de servidores de correo saliente. Los servidores que no entrega
su correspondencia en el mundo, tales como servidores web o servidores de correo entrante solamente, no
debe aparecer.
Utilice sólo "mx" si los servidores MX se utilizan para el correo saliente.
A veces, cuando se utiliza la configuración es fácil añadir el mecanismo "mx". Sin embargo los registros MX se
utilizan para enrutar el correo entrante para su organización, y el mismo servidor puede o no pueden utilizarse
para el correo saliente. Si la dirección IP de su servidor de correo saliente está cubierto por una a, IP4, u otro
mecanismo, no es necesario hacer referencia que el servidor de nuevo utilice el mecanismo "mx" (véase la
listar un servidor una sola vez arriba). Si los servidores que aparecen en los registros MX sólo se utilizan para
el correo entrante, no es necesario utilizar el mecanismo de mx.
Utilice "mx" con los nombres de dominio, no los nombres de servidor de correo
Especificar mx:mailserver.example.com es generalmente incorrecta, a menos que realmente quieren
validación SPF para buscar todos los hosts que acepte correo para el dominio "mailserver.example.com". (Por
lo general, no habrá ningún host tal, porque "mailserver.example.com" en sí es un host, no un dominio.) Esto
no se mostrará como un error de sintaxis, sin embargo, simplemente no coinciden con nada.
El uso correcto de validación con los registros MX para "example.com" es mx:example.com, o si desea
especificar un nombre de host particular del servidor de correo o una IP, a:mailserver.example.com ip4:x.x.x.x
Por último, tenga en cuenta que cuando la regla SPF se almacena como un registro DNS asociado con
"example.com", entonces "example.com" es el dominio predeterminado para la regla, entonces mx por su
propia cuenta (sin dominio especificado explícita) es suficiente para comprobar la dirección IP del remitente en
contra de todos los MX en el host de correo enlistados para "example.com", en ese contexto.
No dé por sentado - especialmente si usted es un proveedor de Internet
Si usted recibe e-mail por los demás, no basta con crear un registro SPF para un cliente sin investigar los
servidores de correo electrónico que utiliza los clientes. Usted puede encontrar que ha impedido u
obstaculizado a su cliente la entrega de correo saliente de su servidor de correo en la oficina, por ejemplo, o
de los usuarios finales que envían correo a través de servidor de correo ISP de su casa.
Sólo "incluir" registros SPF existentes
Digamos que usted desea incluir a su web de la empresa servidores de correo saliente en su registro SPF.
Digamos también que Network Solutions aloja el sitio web y el correo electrónico. Usted puede tener la
tentación de usar algo como "include:networksolutions.com" en su registro SPF. Sin embargo, hay dos
posibles problemas con esto. Al escribir estas líneas, Network Solutions no publica un registro SPF para el
dominio networksolutions.com. Por lo tanto el uso incluyen: networksolutions.com inmediatamente hace a su
registro no válido.
El otro problema es más sutil: "include:networksolutions.com" se incluyen los servidores de correo autorizados
a enviar correo desde el dominio networksolutions.com. Esto puede o no puede ser la misma lista de
servidores de correo que utiliza Network Solutions para enviar correo usando clientes de dominios! A veces,
un proveedor de Internet va a crear un registro SPF especial que los clientes pueden incluir en su registro,
como "as_spf.example.com". Si desea utilizar el servidor de correo de su ISP usted debe preguntar a ellos si
mantienen un registro SPF para que sus clientes lo incluyan, o de lo contrario tendrá que cambiar su registro
cada vez que su proveedor de Internet, añade, quita o cambia un servidor de correo nombre y/o la dirección.
Publicar los registros SPF para para HELO utilizado por los servidores de correo
Comprobación de nombres HELO/EHLO es recomendado por el RFC SPF. La publicación de los registros de
estos nombres es una parte importante del protocolo SPF. HELO o EHLO en su versión moderna se utiliza
cuando el correo es de <>, incluso si el receptor no hace el 100% de las comprobaciones HELO.
La publicación de una regla HELO implica la creación de un registro SPF vinculados con el FQDN HELO que
se utiliza su servidor de correo (por ejemplo: "mailserver.example.com"). Normalmente esto debería ser una
regla SPF totalmente independiente a la que se comprueba con las direcciones en el dominio que podría estar
asociado con, por ejemplo "example.com". Un ejemplo sencillo de dos políticas pueden ser:
example.com. IN TXT "v=spf1 mx -all"
mailserver.example.com. IN TXT "v=spf1 mx -all"
La primera regla sería activado por cualquier dirección que termina en "@example.com", y se validan como un
correo electrónico sólo si se trata de una dirección IP asociada a un registro MX para "example.com". La
segunda regla sería activado por una identificación HELO de "mailserver.example.com", y que valida el correo
electrónico sólo si proviene de la dirección IP asociada a ese servidor.
Otra razón para tomar en cuenta los nombres de HELO tiene que ver con la publicación de registros SPF
nulos para tu dominio que no envíe mensajes de correo. Suponga que usted consulta la información de que la
FAQ, pero no pensar en los nombres HELO, sin darse cuenta que puede negar el derecho de los servidores
para enviar correo electrónico. Un ejemplo: que una nube de servidores web puedan enviar formularios de
correo electrónico, usando "webform@example.com" como la dirección del remitente. Cada servidor web
utiliza (como debería) su propio nombre como parámetro HELO.
www.example.com. IN TXT "v=spf1 -all"
web01.example.com. IN TXT "v=spf1 -all"
web02.example.com. IN TXT "v=spf1 -all"
web03.example.com. IN TXT "v=spf1 -all"
A pesar de que no hay direcciones de correo electrónico como "user@web03.example.com", el nombre de
"web03.example.com" se utiliza para el correo electrónico!
Si no publican una política SPF para dominios tales, serán juego de spoofers. Y si lo hace publicar una política
de SPF, es mejor permitir a su host utilizar su propio nombre.
Publicar registros SPF nulos para que tu dominio no envíe mensajes de correo
Una vez que haya protegido sus dominios de envío de correo con SPF, si alguien está tratando de hacer spoof
(suplantar su identidad), a continuación, lo primero que intentaremos es inundar de dominios que no son de
envío de correo. Publicación de "v=spf1 -all", dice que un dominio no envía correo. A modo de ejemplo, podría
publicar:
example.com. IN TXT "v = spf1 a:mail.example.com -all"
mail.example.com. IN TXT "v=spf1 -all"
www.example.com. IN TXT "v=spf1 -all"
Pon a prueba tu nuevo registro SPF para asegurarse de que es válido
Use una herramienta de prueba para probar cualquier nuevo registro SPF.
Anuncie su registro SPF en el servidor DNS correcto
SPF está basado en las búsquedas de DNS, así que para que el mundo pueda encontrar el registro SPF
usted necesita crear esto en el servidor DNS correcto. Si usted no sabe que están en la "autoridad" (principal)
de los servidores DNS de su dominio, hacer una búsqueda "whois" en su dominio o pregunte a su empresa de
alojamiento web.
Permitir el almacenamiento en caché de DNS durante la prueba
Recuerde que si usted está usando una utilidad de pruebas para buscar su registro SPF en el DNS, es
necesario esperar hasta que su TTL (Time to Live) expire y el cambio se propague al mundo antes la utilidad
no verá ningún cambio. A menudo es más fácil pegar su registro SPF en el lugar de la utilidad, de modo que
los cambios se verán de inmediato.
Dile a tus usuarios
No se olvide de dar instrucciones a las personas que necesitan enviar correo utilizando el dominio que acaba
de protejer. Es posible que necesite configurar SMTP AUTH en su cliente de correo electrónico, por ejemplo, y
que tendrá que asignar un nombre de usuario y contraseña. Si el envío de los ordenadores del hotel (o lo que
sea) está prohibido, lo que necesitan saber sobre ella.
________________________________________________________________________________________
____________________________________
Entonces ya podemos crear nuestro SPF:
ya sea en la página de openspf
o en la de no-ip que es donde se "debe" hacer:
Con esto terminamos la configuración de nuestro registros DNS que podemos colocar en nuestro servidor
DNS.
INSTALACIÓN DEL WEBMAIL
Instalación de Squirrelmail
aptitude install squirrelmail
ln -s /usr/share/squirrelmail/ /var/www/webmail
entramos a la configuración de squirrelmail
squirrelmail-configure
SquirrelMail Configuration : Read: config.php (1.4.0)
---------------------------------------------------------
Main Menu --
1. Organization Preferences
2. Server Settings
3. Folder Defaults
4. General Options
5. Themes
6. Address Books
7. Message of the Day (MOTD)
8. Plugins
9. Database
10. Languages
D. Set pre-defined settings for specific IMAP servers
C Turn color on
S Save data
Q Quit
Command >> <-- D
Entramos a la opción "D" presionándola en nuestro teclado
SquirrelMail Configuration : Read: config.php
---------------------------------------------------------
While we have been building SquirrelMail, we have discovered some
preferences that work better with some servers that don't work so
well with others. If you select your IMAP server, this option will
set some pre-defined settings for that server.
Please note that you will still need to go through and make sure
everything is correct. This does not change everything. There are
only a few settings that this will change.
Please select your IMAP server:
bincimap = Binc IMAP server
courier = Courier IMAP server
cyrus = Cyrus IMAP server
dovecot = Dovecot Secure IMAP server
exchange = Microsoft Exchange IMAP server
hmailserver = hMailServer
macosx = Mac OS X Mailserver
mercury32 = Mercury/32
uw = University of Washington's IMAP server
gmail = IMAP access to Google mail (Gmail) accounts
quit = Do not change anything
Command >> dovecot
elegimos a dovecot como servidor IMAP
imap_server_type = dovecot
default_folder_prefix =
trash_folder = Trash
sent_folder = Sent
draft_folder = Drafts
show_prefix_option = false
default_sub_of_inbox = false
show_contain_subfolders_option = false
optional_delimiter = detect
delete_folder = false
Press any key to continue...
presionamos cualquier tecla para continuar
SquirrelMail Configuration : Read: config.php (1.4.0)
---------------------------------------------------------
Main Menu --
1. Organization Preferences
2. Server Settings
3. Folder Defaults
4. General Options
5. Themes
6. Address Books
7. Message of the Day (MOTD)
8. Plugins
9. Database
10. Languages
D. Set pre-defined settings for specific IMAP servers
C Turn color on
S Save data
Q Quit
Command >> <-- S
SquirrelMail Configuration : Read: config.php (1.4.0)
---------------------------------------------------------
Main Menu --
1. Organization Preferences
2. Server Settings
3. Folder Defaults
4. General Options
5. Themes
6. Address Books
7. Message of the Day (MOTD)
8. Plugins
9. Database
10. Languages
D. Set pre-defined settings for specific IMAP servers
C Turn color on
S Save data
Q Quit
Command >> S
Data saved in config.php
Press enter to continue... <-- ENTER
SquirrelMail Configuration : Read: config.php (1.4.0)
---------------------------------------------------------
Main Menu --
1. Organization Preferences
2. Server Settings
3. Folder Defaults
4. General Options
5. Themes
6. Address Books
7. Message of the Day (MOTD)
8. Plugins
9. Database
10. Languages
D. Set pre-defined settings for specific IMAP servers
C Turn color on
S Save data
Q Quit
Command >> <-- Q
ya quedó configurado ahora para entrar ponemos en el explorador WEB http://server1.no-
ip.org/webmail o http://192.168.1.100/webmail (recuerda que debes poner la ip local del servidor)
Cambiar a Squirrelmail por RoundCube sin desinstalarlo
Si no te gusta Squirrelmail por su apariencia puedes instalar una alternativa mucho más bonita llamada
Rouncube. Los pasos para su instalación se describen a continuación.
#Cambiamos de Directorio
cd /usr/share
#Descargamos roundcube
wget http://nchc.dl.sourceforge.net/sourceforge/roundcubemail/roundcubemail-0.4.2.tar.gz
#Extraemos el archivo
tar -xvzf roundcubemail-0.4.2.tar.gz
#Eliminamos el tar.gz
rm -fr roundcubemail-0.4.2.tar.gz
#entramos al directorio
cd roundcubemail-0.4.2
#eliminamos el instalador
rm -fr installer
#cambiamos los permisos
chmod 755 temp logs
#entramos a la carpeta de configuración
cd config
#renombramos el archivo db.inc.php.dist
cp db.inc.php.dist db.inc.php
#renombramos el archivo main.inc.php.dist
cp main.inc.php.dist main.inc.php
#nos logueamos como root en mysql
mysql -u root -p mysql
#Digitamos nuestra contraseña de root en mysql
Enter password:
#En el prompt de mysql insertamos el siguiente comando para crear la base de datos roundcubedb
mysql> create database roundcubedb;
#Creamos el usuario roundcubeuser y creamos su contraseña
mysql> grant all privileges on roundcubedb.* to roundcubeuser@localhost identified by
'PONGAN_AQUÍ_SU_PASSWORD_NO_QUITEN_LAS_COMILLAS' with grant option;
#Recargamos las tablas de permisos
mysql> flush privileges;
#Salimos de mysql
mysql> quit
Editar db.inc.php de la siguiente forma:
nano db.inc.php
$rcmail_config['db_dsnw'] = ‘mysql://roundcubeuser:AQUÍ_SU_PASS@localhost/roundcubedb’;
y editar main.inc.php:
[...]
$rcmail_config['message_cache_lifetime'] = '10d';
[...]
$rcmail_config['default_host'] = '';
[...]
$rcmail_config['smtp_server'] = '';
[...]
$rcmail_config['session_lifetime'] = 10;
[...]
$rcmail_config['create_default_folders'] = FALSE;
[...]
lo cambiamos a
[...]
$rcmail_config['message_cache_lifetime'] = '30m';
[...]
$rcmail_config['default_host'] = 'localhost';
[...]
$rcmail_config['smtp_server'] = '%h';
[...]
$rcmail_config['session_lifetime'] = 30;
[...]
$rcmail_config['create_default_folders'] = TRUE;
[...]
Entrar a la carpeta SQL y copiar el contenido de mysql.initial.sql
nano /usr/share/roundcubemail-0.4.2/SQL/mysql.initial.sql
-- RoundCube Webmail initial database structure
/*!40014 SET FOREIGN_KEY_CHECKS=0 */;
-- Table structure for table `session`
CREATE TABLE `session` (
`sess_id` varchar(40) NOT NULL,
`created` datetime NOT NULL DEFAULT '1000-01-01 00:00:00',
`changed` datetime NOT NULL DEFAULT '1000-01-01 00:00:00',
`ip` varchar(40) NOT NULL,
`vars` mediumtext NOT NULL,
PRIMARY KEY(`sess_id`),
INDEX `changed_index` (`changed`)
) /*!40000 ENGINE=INNODB */ /*!40101 CHARACTER SET utf8 COLLATE utf8_general_ci */;
-- Table structure for table `users`
CREATE TABLE `users` (
`user_id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT,
`username` varchar(128) NOT NULL,
`mail_host` varchar(128) NOT NULL,
`alias` varchar(128) NOT NULL,
`created` datetime NOT NULL DEFAULT '1000-01-01 00:00:00',
`last_login` datetime NOT NULL DEFAULT '1000-01-01 00:00:00',
`language` varchar(5),
`preferences` text,
PRIMARY KEY(`user_id`),
INDEX `username_index` (`username`),
INDEX `alias_index` (`alias`)
) /*!40000 ENGINE=INNODB */ /*!40101 CHARACTER SET utf8 COLLATE utf8_general_ci */;
-- Table structure for table `messages`
CREATE TABLE `messages` (
`message_id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT,
`user_id` int(10) UNSIGNED NOT NULL DEFAULT '0',
`del` tinyint(1) NOT NULL DEFAULT '0',
`cache_key` varchar(128) /*!40101 CHARACTER SET ascii COLLATE ascii_general_ci */ NOT NULL,
`created` datetime NOT NULL DEFAULT '1000-01-01 00:00:00',
`idx` int(11) UNSIGNED NOT NULL DEFAULT '0',
`uid` int(11) UNSIGNED NOT NULL DEFAULT '0',
`subject` varchar(255) NOT NULL,
`from` varchar(255) NOT NULL,
`to` varchar(255) NOT NULL,
`cc` varchar(255) NOT NULL,
`date` datetime NOT NULL DEFAULT '1000-01-01 00:00:00',
`size` int(11) UNSIGNED NOT NULL DEFAULT '0',
`headers` text NOT NULL,
`structure` text,
PRIMARY KEY(`message_id`),
INDEX `created_index` (`created`),
INDEX `index_index` (`user_id`, `cache_key`, `idx`),
UNIQUE `uniqueness` (`user_id`, `cache_key`, `uid`),
CONSTRAINT `user_id_fk_messages` FOREIGN KEY (`user_id`)
REFERENCES `users`(`user_id`)
/*!40008
ON DELETE CASCADE
ON UPDATE CASCADE */
) /*!40000 ENGINE=INNODB */ /*!40101 CHARACTER SET utf8 COLLATE utf8_general_ci */;
-- Table structure for table `cache`
CREATE TABLE `cache` (
`cache_id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT,
`cache_key` varchar(128) /*!40101 CHARACTER SET ascii COLLATE ascii_general_ci */ NOT NULL ,
`created` datetime NOT NULL DEFAULT '1000-01-01 00:00:00',
`data` longtext NOT NULL,
`user_id` int(10) UNSIGNED NOT NULL DEFAULT '0',
PRIMARY KEY(`cache_id`),
INDEX `created_index` (`created`),
INDEX `user_cache_index` (`user_id`,`cache_key`),
CONSTRAINT `user_id_fk_cache` FOREIGN KEY (`user_id`)
REFERENCES `users`(`user_id`)
/*!40008
ON DELETE CASCADE
ON UPDATE CASCADE */
) /*!40000 ENGINE=INNODB */ /*!40101 CHARACTER SET utf8 COLLATE utf8_general_ci */;
-- Table structure for table `contacts`
CREATE TABLE `contacts` (
`contact_id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT,
`changed` datetime NOT NULL DEFAULT '1000-01-01 00:00:00',
`del` tinyint(1) NOT NULL DEFAULT '0',
`name` varchar(128) NOT NULL,
`email` varchar(128) NOT NULL,
`firstname` varchar(128) NOT NULL,
`surname` varchar(128) NOT NULL,
`vcard` text NULL,
`user_id` int(10) UNSIGNED NOT NULL DEFAULT '0',
PRIMARY KEY(`contact_id`),
INDEX `user_contacts_index` (`user_id`,`email`),
CONSTRAINT `user_id_fk_contacts` FOREIGN KEY (`user_id`)
REFERENCES `users`(`user_id`)
/*!40008
ON DELETE CASCADE
ON UPDATE CASCADE */
) /*!40000 ENGINE=INNODB */ /*!40101 CHARACTER SET utf8 COLLATE utf8_general_ci */;
-- Table structure for table `identities`
CREATE TABLE `identities` (
`identity_id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT,
`del` tinyint(1) NOT NULL DEFAULT '0',
`standard` tinyint(1) NOT NULL DEFAULT '0',
`name` varchar(128) NOT NULL,
`organization` varchar(128) NOT NULL DEFAULT '',
`email` varchar(128) NOT NULL,
`reply-to` varchar(128) NOT NULL DEFAULT '',
`bcc` varchar(128) NOT NULL DEFAULT '',
`signature` text,
`html_signature` tinyint(1) NOT NULL DEFAULT '0',
`user_id` int(10) UNSIGNED NOT NULL DEFAULT '0',
PRIMARY KEY(`identity_id`),
CONSTRAINT `user_id_fk_identities` FOREIGN KEY (`user_id`)
REFERENCES `users`(`user_id`)
/*!40008
ON DELETE CASCADE
ON UPDATE CASCADE */
) /*!40000 ENGINE=INNODB */ /*!40101 CHARACTER SET utf8 COLLATE utf8_general_ci */;
/*!40014 SET FOREIGN_KEY_CHECKS=1 */;
entramos con la ip del servidor en este caso http://192.168.1.100/phpmyadmin para configurar MySQL.
En usuario ponemos root y en para la contraseña la que seleccionaron al instalar MySQL
Una vez dentro veremos la siguiente pantalla
del lado izquierdo vamos a la base de datos que creamos para roundcube (roundcubedb) y después entramos
a la pestaña que tiene por nombre SQL en el cuadro de texto copiamos el contenido de mysql.initial.sql
como en la siguiente imagen
Le damos en continuar y con esto terminaremos esta parte.
Ahora ejecutamos
cd /usr/share
mv squirrelmail squirrelmail.bak
mv roundcubemail-0.4.2 squirrelmail
Para entrar es de la misma forma que con la que entrabamos con Squirrelmail: http://server1.no-
ip.org/webmail o http://192.168.1.100/webmail
con esto tenemos un servidor de correo totalmente funcional que incluso marca el correo basura