Instalar un Servidor de Correo Seguro en
Ubuntu
INSTALACIÓN DEL SERVIDOR
CONFIGURACIÓN DE LA RED
INSTALACIÓN DE SOFTWARE N...
Con esta breve introducción iniciamos con la configuración de nuestro servidor.
Primero tenemos que instalar el sistema op...
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 ...
Seleccionamos el nombre de la máquina (por defecto es ubuntu), este parámetro puede
ser modificado por motivos de segurida...
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 t...
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 / ...
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 ...
seleccionamos "se ha terminado de definir la partición"
creamos las siguientes particiones
terminamos de definir las particiones
aceptamos con "sí" para que se escriban los cambios en el disco
nombre de nuestro nuevo usuario (nombre y apellido o solo nombre)
nombre corto del usuario de la cuenta
elegimos una contraseña y la repetimos para comprobarla
seleccionamos "no" en el cifrado de la carpeta personal
lo dejamos en blanco y seleccionamos continuar
en esta parte difieren en cuál es la mejor opción para administrar las actualizaciones de
seguridad y los parches por inst...
En este punto el único paquete que instalaremos es "OpenSSH server" y lo
seleccionamos con la tecla space.
después de darle en continuar y que se instalen lo paquetes veremos la siguiente pantalla
ponemos "sí" para instalar GRUB
y con esto terminamos con la instalación del servidor, ahora vamos a instalar las
aplicaciones que son necesarias para ten...
como putty que se pueden instalar en nuestro celular y podemos entrar al servidor para
modificar alguna de las configuraci...
respondan a peticiones a través del puerto 22. Cambiar de puerto el servicio de SSH
disminuye considerablemente la posibil...
ip neigh

la ip que te sale en la línea es la de tu puerta de enlace o gateway en
/etc/network/interfaces.
Guardamos con C...
copiamos otro de los archivos de configuración
cp /usr/share/doc/shorewall/default-config/hosts /etc/shorewall/

lo editam...
#
# The manpage is also online at
# http://www.shorewall.net/manpages/shorewall-routestopped.html
#
# See http://shorewall...
Configuración de Modem/Router para permitir el acceso por el puerto
52341 para el servicio SSH

Para entrar a nuestra conf...
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 PUERT...
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 elegimo...
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 sepa...
antes de terminar con esta parte del servidor SSH quiero comentarles que también
pueden acceder a los archivos de su servi...
ponemos la IP del servidor (interna, porque aún no hemos configurado nuestra ip
externa para que sea fija o tener un domin...
ahora nos pide el usuario y la contraseña a la que queremos ingresar
y por último al dar click en conectar veremos la sigu...
así que ya podemos acceder a nuestros archivos sin ningún problema

CONFIGURACIÓN DE IP PÚBLICA
Una vez que ya tenemos con...
Una vez que ya confirmamos nuestro registro a través del correo que proporcionamos.
Nos logueamos en la siguiente pagina:
...
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 q...
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 te...
Aquí tenemos que introducir nuestra cuenta de correo de usuario en no-ip.com …

Seguidamente introducimos la contraseña …
Introducimos en minutos con que frecuencia queremos que nuestro servidor envíe
nuestra IP hacia no-ip.com ( 30 es un buen ...
Aquí debemos introducir el nombre con el que está identificada nuestra tarjeta de red.
( Esto podemos verlo con el comando...
etiquetas FQDN se restringen a un juego de caracteres limitado: letras A-Z de ASCII,
los dígitos, y el carácter «-» , y no...
Ya hemos instalado el sistema operativo y configurado la red, ahora vamos a continuar
instalando algunos paquetes necesari...
root@server1:~# netstat -tap | grep mysql
tcp 0 0 *:mysql *:* LISTEN 6796/mysqld
root@server1:~#
Instalamos Postfix con SM...
mkdir /etc/postfix/ssl
cd /etc/postfix/ssl/
openssl genrsa -des3 -rand /etc/hosts -out smtpd.key 1024

296 semi-random byt...
postconf
postconf
postconf
postconf
postconf
postconf

-e
-e
-e
-e
-e
-e

'smtpd_tls_cert_file = /etc/postfix/ssl/smtpd.cr...
smtpd_recipient_restrictions =
permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination
smtpd_tls_auth_only =...
# How many saslauthd processes should we run? (default: 5)
# A value of 0 will fork a new process for each connection.
THR...
para salir ejecutamos
quit

en resumen veríamos lo siguiente:
root@server1:/etc/postfix/ssl# telnet localhost 25
Trying ::...
#DirectoryIndex index.html index.cgi index.pl index.php
index.xhtml index.htm
DirectoryIndex index.html index.htm index.sh...
Con esto hemos terminado con la instalación de algo de software necesario y un poco de
configuración

CONFIGURACIÓN DE LA ...
Vamos a crear las siguientes tablas:
a) virtual domains
CREATE TABLE `virtual_domains` (
`id` int(11) NOT NULL auto_increm...
Volvemos a entrar a MySQL
mysql -u mailuser -p mailserver

ejecutamos
INSERT INTO virtual_domains (id, name) VALUES (1, 'e...
INSERT INTO virtual_aliases (id, domain_id, source, destination)
VALUES (1, 1, 'john@example.com', 'john@example.com'),
(2...
dovecot
unix n
n
pipe
flags=DRhu user=vmail:vmail argv=/usr/lib/dovecot/deliver -d $
{recipient}

se vería de la siguiente...
una vez dentro de vi podemos observar en color azul todo lo que está comentado y en
negro u otros tonos lo descomentado, b...
ahora buscamos
:/passdb sql

y lo editamos así
passdb sql {
args = /etc/dovecot/dovecot-sql.conf
}

quedaría así:
# SQL da...
protocol lda {
log_path = /var/vmail/dovecot-deliver.log
auth_socket_path = /var/run/dovecot/auth-master
postmaster_addres...
chgrp vmail /etc/dovecot/dovecot.conf
chmod g+r /etc/dovecot/dovecot.conf

creamos un certificado
openssl req -new -x509 -...
postconf -e
smtpd_recipient_restrictions=permit_mynetworks,permit_sasl_authenticat
ed,reject_unauth_destination
/etc/init....
$final_spam_destiny = D_DISCARD; # ubuntu default, recommended as
sender is usually faked

quedaría de la siguiente forma ...
smtp-amavis unix n
-o smtp_data_done_timeout=1200
-o smtp_send_xforward_command=yes
-o disable_dns_lookups=yes
-o max_use=...
GESTIONANDO TUS CUENTAS DE CORREO
ISPwebAdmin (interfaz web)
creamos la tabla
mysql -u mailuser -p mailserver

ejecutamos
...
. bin/activate

descargamos
wget http://workaround.org/sites/default/files/ispwebadmin1.0.2.tar_.gz

renombramos
mv ispweb...
sudo -u vmail PYTHON_EGG_CACHE=/var/vmail/ispwebadmin/.python-eggs
bin/paster serve run.ini

hacemos el script ejecutable
...
[server:main] -> host
La dirección IP que escucha el servidor web en "0.0.0.0" se puede usar para todas las
interfaces.
[s...
si no pueden loguearse con el usuario y la contraseña que eligieron cuando ejecutaron el
comando:
INSERT INTO mailserver.a...
SERVIDOR DE NOMBRES DE DOMINIO (DNS)
Instalamos
aptitude install bind9

paramos
/etc/init.d/bind9 stop

editamos /etc/defa...
creamos los siguientes directorios:
mkdir
mkdir
mkdir
mkdir

-p /var/lib/named/etc
/var/lib/named/dev
-p /var/lib/named/va...
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-...
nano /etc/resolv.conf

y agregamos
search no-ip.org
nameserver 192.168.1.100

<------------ o la IP de tu servidor (local)...
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 ...
servidor de correo saliente que existen en Internet. Los recién llegados a SPF a menudo
parecen cometer errores similares ...
través de sus registros podrá ser obligado a realizar múltiples búsquedas de DNS,
cuando sólo hace referencia al nombre 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 corr...
darse cuenta que puede negar el derecho de los servidores para enviar correo
electrónico. Un ejemplo: que una nube de serv...
No se olvide de dar instrucciones a las personas que necesitan enviar correo utilizando
el dominio que acaba de protejer. ...
o en la de no-ip que es donde se "debe" hacer:

Con esto terminamos la configuración de nuestro registros DNS que podemos ...
INSTALACIÓN DEL WEBMAIL
Instalación de Squirrelmail
aptitude install squirrelmail
ln -s /usr/share/squirrelmail/ /var/www/...
dovecot = Dovecot Secure IMAP server
exchange = Microsoft Exchange IMAP server
hmailserver = hMailServer
macosx = Mac OS X...
SquirrelMail Configuration : Read: config.php (1.4.0)
--------------------------------------------------------Main Menu -1...
Cambiar a Squirrelmail por RoundCube sin
desinstalarlo
Si no te gusta Squirrelmail por su apariencia puedes instalar una a...
[...]
$rcmail_config['message_cache_lifetime'] = '10d';
[...]
$rcmail_config['default_host'] = '';
[...]
$rcmail_config['s...
`user_id` int(10) UNSIGNED NOT NULL DEFAULT '0',
`del` tinyint(1) NOT NULL DEFAULT '0',
`cache_key` varchar(128) /*!40101 ...
ON UPDATE CASCADE */
) /*!40000 ENGINE=INNODB */ /*!40101 CHARACTER SET utf8 COLLATE
utf8_general_ci */;
-- Table structur...
del lado izquierdo vamos a la base de datos que creamos para roundcube (roundcubedb)
y después entramos a la pestaña que t...
Le damos en continuar y con esto terminaremos esta parte.
Ahora ejecutamos
cd /usr/share
mv squirrelmail squirrelmail.bak
...
con esto tenemos un servidor de correo totalmente funcional que incluso marca el
correo basura.
‹ Configuración para acces...
Instalar un servidor de correo seguro en ubuntu
Instalar un servidor de correo seguro en ubuntu
Instalar un servidor de correo seguro en ubuntu
Instalar un servidor de correo seguro en ubuntu
Instalar un servidor de correo seguro en ubuntu
Instalar un servidor de correo seguro en ubuntu
Instalar un servidor de correo seguro en ubuntu
Instalar un servidor de correo seguro en ubuntu
Instalar un servidor de correo seguro en ubuntu
Instalar un servidor de correo seguro en ubuntu
Instalar un servidor de correo seguro en ubuntu
Instalar un servidor de correo seguro en ubuntu
Instalar un servidor de correo seguro en ubuntu
Upcoming SlideShare
Loading in …5
×

Instalar un servidor de correo seguro en ubuntu

1,784 views
1,537 views

Published on

Published in: Education
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,784
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
65
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Instalar un servidor de correo seguro en ubuntu

  1. 1. Instalar un Servidor de Correo Seguro en Ubuntu 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.
  2. 2. 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
  3. 3. entramos en la opción "Instalar Ubuntu Server"
  4. 4. elegimos nuestro país "México"
  5. 5. seleccionamos sí para configurar nuestro teclado
  6. 6. buscamos en nuestro teclado los símbolos y letras que nos piden (+, y, u, r, etc)
  7. 7. ahora buscamos si el símbolo "Ç" se encuentra en nuestro teclado y si está seleccionamos sí.
  8. 8. oprimimos la tecla
  9. 9. con estos pasos nos configuró nuestro teclado y encontró que el idioma es "es".
  10. 10. 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.
  11. 11. 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.
  12. 12. en este caso la zona horaria es de acuerdo a la ubicación ciudad de méxico
  13. 13. ahora toca la parte del particionado y seleccionamos particionado "manual"
  14. 14. 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.
  15. 15. elegimos la opción "sí"
  16. 16. seleccionamos el espacio espacio libre para nuestra tabla de particiones
  17. 17. creamos una partición nueva
  18. 18. 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:
  19. 19. Imagen tomada de "Implementación de Servidores con GNU/Linux"
  20. 20. seleccionamos la partición primaria
  21. 21. y ahora queremos que la partición este al principio
  22. 22. 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)
  23. 23. seleccionamos "se ha terminado de definir la partición"
  24. 24. creamos las siguientes particiones
  25. 25. terminamos de definir las particiones
  26. 26. aceptamos con "sí" para que se escriban los cambios en el disco
  27. 27. nombre de nuestro nuevo usuario (nombre y apellido o solo nombre)
  28. 28. nombre corto del usuario de la cuenta
  29. 29. elegimos una contraseña y la repetimos para comprobarla
  30. 30. seleccionamos "no" en el cifrado de la carpeta personal
  31. 31. lo dejamos en blanco y seleccionamos continuar
  32. 32. en esta parte difieren en cuál es la mejor opción para administrar las actualizaciones de seguridad y los parches por instalar. Es recomendable si es minucioso que elija la opción "sin actualizaciones automáticas" pero es posible que complemente la opción de "instalar actualizaciones de seguridad automáticamente" y revisando en paginas como debian-security-announce, y algunas más para mantener su sistema seguro. Manual de Seguridad de Debian
  33. 33. En este punto el único paquete que instalaremos es "OpenSSH server" y lo seleccionamos con la tecla space.
  34. 34. después de darle en continuar y que se instalen lo paquetes veremos la siguiente pantalla
  35. 35. ponemos "sí" para instalar GRUB
  36. 36. y con esto terminamos con la instalación del servidor, ahora vamos a instalar las aplicaciones que son necesarias para tener el servidor de correo. CONFIGURACIÓN DE LA RED Una vez que el servidor ya está instalado entramos a nuestra pantalla principal de Ubuntu Server que notaremos no tienen interfaz gráfica (todo a base de linea de comandos). Nos logueamos como superusuario sudo su Creamos una contraseña para el usuario root sudo passwd root Introduzca la nueva contraseña de UNIX: Vuelva a escribir la nueva contraseña de UNIX: Instalamos OpenSSH y arreglamos el comportamiento extraño de vi (para los que lo utilizarán como editor de textos) aptitude install ssh openssh-server aptitude install vim-nox La finalidad de instalar un servidor ssh es que podamos ingresar a nuestro servidor en el momento que deseemos y desde cualquier lugar que nos encontremos. Hay clientes ssh
  37. 37. como putty que se pueden instalar en nuestro celular y podemos entrar al servidor para modificar alguna de las configuraciones o simplemente administrarlo desde la comodidad de nuestra cama. AQUÍ podemos encontrar una lista comparativa de clientes ssh, así como bajo que sistema operativo funcionan. Algunos clientes que recomiendo para guin2 son putty o Tunnelier (Bitvise), son gratuitos y excelentes opciones. SSH (Secure SHell, en español: intérprete de órdenes segura) es el nombre de un protocolo y del programa que lo implementa, y sirve para acceder a máquinas remotas a través de una red. Permite manejar por completo la computadora mediante un intérprete de comandos, y también puede redirigir el tráfico de X para poder ejecutar programas gráficos si tenemos un Servidor X (en sistemas Unix y Windows) corriendo. Además de la conexión a otros dispositivos, SSH nos permite copiar datos de forma segura (tanto ficheros sueltos como simular sesiones FTP cifradas), gestionar claves RSA para no escribir claves al conectar a los dispositivos y pasar los datos de cualquier otra aplicación por un canal seguro tunelizado mediante SSH. Acerca de OpenSSH. OpenSSH (Open Secure Shell) es una alternativa de código abierto, con licencia BSD, hacia la implementación propietaria y de código cerrado SSH creada por Tatu Ylönen. OpenSSH es un proyecto creado por el equipo de desarrollo de OpenBSD y actualmente dirigido por Theo de Raadt. Se considera es más segura que su contraparte propietaria debido a la constante auditoría que se realiza sobre el código fuente por parte de una gran comunidad de desarrolladores, una ventaja que brinda al tratarse de un proyecto de fuente abierta. Para instalar OpenSSH se ejecuta el siguiente comando: sudo aptitude install ssh openssh-server Una forma de elevar considerablemente la seguridad al servicio de SSH, es cambiar el número de puerto utilizado por el servicio, por otro que solo conozca el administrador del sistema. A este tipo de técnicas se les conoce como Seguridad por Oscuridad. La mayoría de los delincuentes informáticos utiliza guiones que buscan servidores que
  38. 38. respondan a peticiones a través del puerto 22. Cambiar de puerto el servicio de SSH disminuye considerablemente la posibilidad de una intrusión a través de este servicio. Port 22 SSH trabaja a través del puerto 22 por TCP. Puede elegirse cualquier otro puerto entre el 1025 y 65535. ejemplo: Entramos al archivo de configuración de OpenSSH sudo nano /etc/ssh/sshd_config Y en el apartado de port seleccionamos el puerto en este caso como ejemplo se seleccionó el puerto 52341 Port 52341 Reiniciamos el servicio sudo /etc/init.d/ssh restart Configuración de la LAN para tener un IP fija (LOCAL) nano /etc/network/interfaces # This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5). # The loopback network interface auto lo iface lo inet loopback # The primary network interface auto eth0 iface eth0 inet static address 192.168.1.100 netmask 255.255.255.0 network 192.168.1.0 broadcast 192.168.1.255 gateway 192.168.0.254 Los valores anteriores tienen que ser modificados dependiendo de nuestra red, para obtener la información de acuerdo a tu red ejecutar los siguientes comandos. ifconfig - "Direc. inet" es lo mismo que "address" en /etc/network/interfaces - "Másc" es lo mismo que "netmask" en /etc/network/interfaces - network tiene el siguiente formato 192.168.x.0. Lo determinas con tu address, si es 192.168.0.100 entonces tu network es 192.168.0.0, otro ejemplo si tu ip es 192.168.1.75 entonces tu network es 192.168.1.0 - "Difus" es lo mismo que "broadcast" en /etc/network/interfaces Falta el último parámetro (gateway) eso lo determinas con el siguiente comando:
  39. 39. ip neigh la ip que te sale en la línea es la de tu puerta de enlace o gateway en /etc/network/interfaces. Guardamos con Ctrl mas la letra O y cerramos con Ctrl mas la letra X. Reiniciamos la interfaz de red /etc/init.d/networking restart CONFIGURACIÓN DEL FIREWALL PARA EL SERVICIO SSH Instalamos Shorewall sudo aptitude install shorewall-common shorewall-perl shorewall-doc copiamos el archivo de configuración cp /usr/share/doc/shorewall/default-config/interfaces /etc/shorewall/ lo editamos nano /etc/shorewall/interfaces # # Shorewall version 4 - Interfaces File # # For information about entries in this file, type "man shorewallinterfaces" # # The manpage is also online at # http://www.shorewall.net/manpages/shorewall-interfaces.html # ##########... INTERFACE BROADCAST OPTIONS net eth0 detect dhcp,tcpflags,logmartians,nosmurfs cp /usr/share/doc/shorewall/default-config/zones /etc/shorewall/ lo editamos nano /etc/shorewall/zones # # Shorewall version 4 - Zones File # # For information about this file, type "man shorewall-zones" # # The manpage is also online at # http://www.shorewall.net/manpages/shorewall-zones.html # ###############... TYPE OPTIONS IN OUT # OPTIONS OPTIONS fw firewall loc ipv4 net ipv4
  40. 40. copiamos otro de los archivos de configuración cp /usr/share/doc/shorewall/default-config/hosts /etc/shorewall/ lo editamos nano /etc/shorewall/hosts # # Shorewall version 4 - Hosts file # # For information about entries in this file, type "man shorewallhosts" # # The manpage is also online at # http://www.shorewall.net/manpages/shorewall-hosts.html # ###############... HOST(S) OPTIONS loc eth0:192.168.1.0/24 copiamos cp /usr/share/doc/shorewall/default-config/policy /etc/shorewall/ nano /etc/shorewall/policy lo editamos # # Shorewall version 4 - Policy File # # For information about entries in this file, type "man shorewallpolicy" # # The manpage is also online at # http://www.shorewall.net/manpages/shorewall-policy.html # ##############... DEST POLICY LOG LIMIT: CONNLIMIT: # LEVEL BURST MASK FW net ACCEPT net FW DROP info net all DROP info # The FOLLOWING POLICY MUST BE LAST all all REJECT info copiamos cp /usr/share/doc/shorewall/default-config/routestopped /etc/shorewall/ editamos nano /etc/shorewall/routestopped # # Shorewall version 4 - Routestopped File # # For information about entries in this file, type "man shorewallroutestopped"
  41. 41. # # The manpage is also online at # http://www.shorewall.net/manpages/shorewall-routestopped.html # # See http://shorewall.net/starting_and_stopping_shorewall.htm for additional # information. # ###################################################################### ######### #INTERFACE HOST(S) OPTIONS PROTO DEST SOURCE # PORT(S) PORT(S) eth0 0.0.0.0 routeback copiamos cp /usr/share/doc/shorewall/default-config/rules /etc/shorewall/ editamos nano /etc/shorewall/rules # # Shorewall version 4 - Rules File # # For information on the settings in this file, type "man shorewallrules" # # The manpage is also online at # http://www.shorewall.net/manpages/shorewall-rules.html # ###################################################################### #########$ #ACTION SOURCE DEST PROTO DEST SOURCE $ # PORT PORT(S) $ #SECTION ESTABLISHED #SECTION RELATED SECTION NEW ACCEPT net fw tcp 52341 ACCEPT loc fw tcp 52341 ejecutamos shorewall check y lo reiniciamos /etc/init.d/shorewall restart lo agregamos al arranque editando: nano /etc/default/shorewall startup=1
  42. 42. Configuración de Modem/Router para permitir el acceso por el puerto 52341 para el servicio SSH 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.
  43. 43. nos vamos al apartado Herramientas que se encuentra del lado izquierdo
  44. 44. ahora a la parte de "Compartición de Juegos & Aplicaciones"
  45. 45. vamos a "Crear un nuevo juego o aplicación"
  46. 46. aquí ponemos el nombre del puerto que queremos abrir en nuestro modem puede ser (Servicio SSH o el número del puerto PUERTO52341).
  47. 47. seleccionamos entrada manual de puertos y después en siguiente
  48. 48. en el intervalo de puertos ponemos 52341-52341 porque solo queremos abrir un puerto
  49. 49. luego vamos a la parte de "Asignar un juego o aplicación a un dispositivo de red local"
  50. 50. 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".
  51. 51. y ahora damos click en "AGREGAR"
  52. 52. 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.
  53. 53. 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
  54. 54. 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
  55. 55. 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
  56. 56. 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
  57. 57. 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/
  58. 58. ya dentro vamos a ver la siguiente pagina en la cuál vamos a darle un click al icono encerrado en color rojo
  59. 59. 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"
  60. 60. 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 …
  61. 61. Aquí tenemos que introducir nuestra cuenta de correo de usuario en no-ip.com … Seguidamente introducimos la contraseña …
  62. 62. 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 …
  63. 63. 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
  64. 64. 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 192.168.0.100 localhost.localdomain localhost 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
  65. 65. 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 New password for the MySQL "root" user: <-- yourrootsqlpassword Repeat password for the MySQL "root" user: <-- yourrootsqlpassword Editamos /etc/mysql/my.cnf y comentamos la línea bind-address = 127.0.0.1 añadiendo el símbolo "#" al principio nano /etc/mysql/my.cnf [...] # # Instead of skip-networking the default is now to listen only on # localhost which is more compatible and is not less secure. #bind-address = 127.0.0.1 [...] Reiniciamos MySQL /etc/init.d/mysql restart vemos si ya está habilitado netstat -tap | grep mysql se tendría que ver así:
  66. 66. root@server1:~# netstat -tap | grep mysql tcp 0 0 *:mysql *:* LISTEN 6796/mysqld root@server1:~# Instalamos Postfix con SMTP-AUTH y TLS aptitude install postfix libsasl2-2 sasl2-bin libsasl2-modules procmail Respondemos a dos preguntas que nos harán de la siguiente forma General type of mail configuration: <-- Internet Site System mail name: <-- server1.no-ip.org ahora ejecutamos dpkg-reconfigure postfix y respondemos de la siguiente forma General type of mail configuration: <-- Internet Site System mail name: <-- server1.no-ip.org Root and postmaster mail recipient: <-- lo_dejamos_en_blanco Other destinations to accept mail for (blank for none): <-- server1.no-ip.org, localhost.no-ip.org, localhost.localdomain, localhost Force synchronous updates on mail queue? <-- No Local networks: <-- 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 Use procmail for local delivery? <-- Yes Mailbox size limit (bytes): <-- 0 Local address extension character: <-- + Internet protocols to use: <-- all Ejecutamos los siguientes comandos (dar doble click sobre cada línea para no equivocarse al copiarlas) postconf -e 'smtpd_sasl_local_domain =' postconf -e 'smtpd_sasl_auth_enable = yes' postconf -e 'smtpd_sasl_security_options = noanonymous' postconf -e 'broken_sasl_auth_clients = yes' postconf -e 'smtpd_sasl_authenticated_header = yes' postconf -e 'smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination' postconf -e 'inet_interfaces = all' echo 'pwcheck_method: saslauthd' >> /etc/postfix/sasl/smtpd.conf echo 'mech_list: plain login' >> /etc/postfix/sasl/smtpd.conf Creamos los certificados TLS: En todos los casos hay que poner una contraseña para cada uno de los certificados smtpd.key, smtpd.crs
  67. 67. mkdir /etc/postfix/ssl cd /etc/postfix/ssl/ openssl genrsa -des3 -rand /etc/hosts -out smtpd.key 1024 296 semi-random bytes loaded Generating RSA private key, 1024 bit long modulus ................++++++ ...................................++++++ e is 65537 (0x10001) Enter pass phrase for smtpd.key:<--------Aquí ponemos una contraseña Verifying - Enter pass phrase for smtpd.key:<--------Verificamos la contraseña chmod 600 smtpd.key openssl req -new -key smtpd.key -out smtpd.csr Enter pass phrase for smtpd.key: <----AQUÍ_UNA_CONTRASEÑA 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]:<--- ENTER Organizational Unit Name (eg, section) []:<--- ENTER Common Name (eg, YOUR name) []:<--- server1.no-ip.org (IMPORTANTÍSIMO) Email Address []:<--- ENTER Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []:<--- ENTER An optional company name []:<--- ENTER Y con los demás también hacemos lo mismo openssl x509 -req -days 3650 -in smtpd.csr -signkey smtpd.key -out smtpd.crt openssl rsa -in smtpd.key -out smtpd.key.unencrypted mv -f smtpd.key.unencrypted smtpd.key openssl req -new -x509 -extensions v3_ca -keyout cakey.pem -out cacert.pem -days 3650 Ahora configuramos Postfix para TLS postconf postconf postconf postconf postconf postconf -e -e -e -e -e -e 'myhostname = server1.no-ip.org' 'smtpd_tls_auth_only = no' 'smtp_use_tls = yes' 'smtpd_use_tls = yes' 'smtp_tls_note_starttls_offer = yes' 'smtpd_tls_key_file = /etc/postfix/ssl/smtpd.key'
  68. 68. postconf postconf postconf postconf postconf postconf -e -e -e -e -e -e 'smtpd_tls_cert_file = /etc/postfix/ssl/smtpd.crt' 'smtpd_tls_CAfile = /etc/postfix/ssl/cacert.pem' 'smtpd_tls_loglevel = 1' 'smtpd_tls_received_header = yes' 'smtpd_tls_session_cache_timeout = 3600s' 'tls_random_source = dev:/dev/urandom' ahora vemos el contenido de nuestro /etc/postfix/main.cf cat /etc/postfix/main.cf # See /usr/share/postfix/main.cf.dist for a commented, more complete version # Debian specific: Specifying a file name will cause the first # line of that file to be used as the name. The Debian default # is /etc/mailname. #myorigin = /etc/mailname smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu) biff = no # appending .domain is the MUA's job. append_dot_mydomain = no # Uncomment the next line to generate "delayed mail" warnings #delay_warning_time = 4h readme_directory = no # TLS parameters smtpd_tls_cert_file = /etc/postfix/ssl/smtpd.crt smtpd_tls_key_file = /etc/postfix/ssl/smtpd.key smtpd_use_tls = yes smtpd_tls_session_cache_database = btree:$ {data_directory}/smtpd_scache smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache # See /usr/share/doc/postfix/TLS_README.gz in the postfix-doc package for # information on enabling SSL in the smtp client. myhostname = server1.example.com alias_maps = hash:/etc/aliases alias_database = hash:/etc/aliases myorigin = /etc/mailname mydestination = server1.example.com, localhost.example.com, localhost.localdomain, localhost relayhost = mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 mailbox_command = procmail -a "$EXTENSION" mailbox_size_limit = 0 recipient_delimiter = + inet_interfaces = all inet_protocols = all smtpd_sasl_local_domain = smtpd_sasl_auth_enable = yes smtpd_sasl_security_options = noanonymous broken_sasl_auth_clients = yes smtpd_sasl_authenticated_header = yes
  69. 69. smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination smtpd_tls_auth_only = no smtp_use_tls = yes smtp_tls_note_starttls_offer = yes smtpd_tls_CAfile = /etc/postfix/ssl/cacert.pem smtpd_tls_loglevel = 1 smtpd_tls_received_header = yes smtpd_tls_session_cache_timeout = 3600s tls_random_source = dev:/dev/urandom creamos un directorio mkdir -p /var/spool/postfix/var/run/saslauthd editamos /etc/default/saslauthd. Cambiamos START a yes y cambiamos la línea OPTIONS="-c -m /var/run/saslauthd" a OPTIONS="-c -m /var/spool/postfix/var/run/saslauthd -r": nano /etc/default/saslauthd # # Settings for saslauthd daemon # Please read /usr/share/doc/sasl2-bin/README.Debian for details. # # Should saslauthd run automatically on startup? (default: no) START=yes # Description of this saslauthd instance. Recommended. # (suggestion: SASL Authentication Daemon) DESC="SASL Authentication Daemon" # Short name of this saslauthd instance. Strongly recommended. # (suggestion: saslauthd) NAME="saslauthd" # Which authentication mechanisms should saslauthd use? (default: pam) # # Available options in this Debian package: # getpwent -- use the getpwent() library function # kerberos5 -- use Kerberos 5 # pam -- use PAM # rimap -- use a remote IMAP server # shadow -- use the local shadow password file # sasldb -- use the local sasldb database file # ldap -- use LDAP (configuration is in /etc/saslauthd.conf) # # Only one option may be used at a time. See the saslauthd man page # for more information. # # Example: MECHANISMS="pam" MECHANISMS="pam" # Additional options for this mechanism. (default: none) # See the saslauthd man page for information about mech-specific options. MECH_OPTIONS=""
  70. 70. # How many saslauthd processes should we run? (default: 5) # A value of 0 will fork a new process for each connection. THREADS=5 # Other options (default: -c -m /var/run/saslauthd) # Note: You MUST specify the -m option or saslauthd won't run! # # WARNING: DO NOT SPECIFY THE -d OPTION. # The -d option will cause saslauthd to run in the foreground instead of as # a daemon. This will PREVENT YOUR SYSTEM FROM BOOTING PROPERLY. If you wish # to run saslauthd in debug mode, please run it by hand to be safe. # # See /usr/share/doc/sasl2-bin/README.Debian for Debian-specific information. # See the saslauthd man page and the output of 'saslauthd -h' for general # information about these options. # # Example for postfix users: "-c -m /var/spool/postfix/var/run/saslauthd" #OPTIONS="-c -m /var/run/saslauthd" OPTIONS="-c -m /var/spool/postfix/var/run/saslauthd -r" Añadimos el usuario postfix al grupo sasl adduser postfix sasl Reiniciamos Postfix e iniciamos saslauthd: /etc/init.d/postfix restart /etc/init.d/saslauthd start Ahora necesitamos ver que SMTP-AUTH y TLS trabajan apropiadamente telnet localhost 25 Trying ::1... Connected to localhost. Escape character is '^]'. 220 server1.no-ip.org ESMTP Postfix (Ubuntu) cuando veamos lo anterior ya estamos dentro de telnet ahora ejecutamos ehlo localhost y tenemos que ver las líneas 250-STARTTLS y 250-AUTH PLAIN LOGIN
  71. 71. para salir ejecutamos quit en resumen veríamos lo siguiente: root@server1:/etc/postfix/ssl# telnet localhost 25 Trying ::1... Connected to localhost.localdomain. Escape character is '^]'. 220 server1.no-ip.org ESMTP Postfix (Ubuntu) ehlo localhost 250-server1.example.com 250-PIPELINING 250-SIZE 10240000 250-VRFY 250-ETRN 250-STARTTLS 250-AUTH PLAIN LOGIN 250-AUTH=PLAIN LOGIN 250-ENHANCEDSTATUSCODES 250-8BITMIME 250 DSN quit 221 2.0.0 Bye Connection closed by foreign host. root@server1:/etc/postfix/ssl# Servidor WEB apache Ahora vamos a instalar el servidor web apache para la administración de MySQL vía WEB utilizando phpmyadmin. Apache/PHP5/Ruby/Python/WebDAV Instalamos Apache aptitude install apache2 apache2-doc apache2-mpm-prefork apache2-utils apache2-suexec libexpat1 ssl-cert Ahora instalamos PHP5, Ruby, and Python aptitude install libapache2-mod-php5 libapache2-mod-ruby libapache2mod-python php5 php5-common php5-curl php5-dev php5-gd php5-idn phppear php5-imagick php5-imap php5-mcrypt php5-memcache php5-mhash php5ming php5-mysql php5-pspell php5-recode php5-snmp php5-sqlite php5tidy php5-xmlrpc php5-xsl Editamos /etc/apache2/mods-available/dir.conf: nano /etc/apache2/mods-available/dir.conf cambiamos la linea DirectoryIndex: <IfModule mod_dir.c>
  72. 72. #DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.htm DirectoryIndex index.html index.htm index.shtml index.cgi index.php index.php3 index.pl index.xhtml </IfModule> Habilitamos los modulos de Apache (SSL, rewrite, suexec, include, and WebDAV): a2enmod a2enmod a2enmod a2enmod a2enmod a2enmod ssl rewrite suexec include dav_fs dav Reiniciamos Apache /etc/init.d/apache2 restart Instalamos Amavisd-new, SpamAssassin, And Clamav aptitude install amavisd-new spamassassin clamav clamav-daemon zoo unzip bzip2 arj nomarch lzop cabextract apt-listchanges libnet-ldapperl libauthen-sasl-perl clamav-docs daemon libio-string-perl libiosocket-ssl-perl libnet-ident-perl zip libnet-dns-perl Instalamos Apache2, PHP5, phpMyAdmin, FCGI, suExec, Pear, y mcrypt aptitude install apache2 apache2.2-common apache2-doc apache2-mpmprefork apache2-utils libexpat1 ssl-cert libapache2-mod-php5 php5 php5-common php5-gd php5-mysql php5-imap phpmyadmin php5-cli php5-cgi libapache2-mod-fcgid apache2-suexec php-pear php-auth php5-mcrypt mcrypt php5-imagick imagemagick libapache2-mod-suphp libopenssl-ruby libapache2-mod-ruby veremos las siguiente preguntas Web server to reconfigure automatically: <-- apache2 Configure database for phpmyadmin with dbconfig-common? <-- No Habilitamos los modulos a2enmod suexec rewrite ssl actions include a2enmod dav_fs dav auth_digest Reiniciamos Apache /etc/init.d/apache2 restart Instalación de Dovecot, Squirrelmail y algo más aptitude install dovecot-pop3d dovecot-imapd lha arj unrar zoo nomarch cpio lzop cabextract squirrelmail mutt postfix-mysql
  73. 73. Con esto hemos terminado con la instalación de algo de software necesario y un poco de configuración CONFIGURACIÓN DE LA BASE DE DATOS Nos logueamos como root en MySQL mysql -u root -p Enter password: <-------Tecleamos el password que elegimos durante la instalación de MySQL Veremos lo siguiente Welcome to the MySQL monitor. Commands end with ; or g. Your MySQL connection id is 35 Server version: 5.1.49-1ubuntu8.1 (Ubuntu) Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. This software comes with ABSOLUTELY NO WARRANTY. This is free software, and you are welcome to modify and redistribute it under the GPL v2 license Type 'help;' or 'h' for help. Type 'c' to clear the current input statement. mysql> Ya estamos dentro de MySQL, ahora creamos una base de datos con nombre "mailserver": create database mailserver; ahora creamos el usuario "mailuser" GRANT SELECT ON mailserver.* TO 'mailuser'@'127.0.0.1' IDENTIFIED BY 'aquí_una_contraseña'; Atención poner una contraseña donde se señala!!. flush privileges; y después salimos exit Ahora entramos a nuestra base de datos mysql -u mailuser -p mailserver Enter password: Ponemos el password que seleccionamos para el usuario mailuser
  74. 74. Vamos a crear las siguientes tablas: a) virtual domains CREATE TABLE `virtual_domains` ( `id` int(11) NOT NULL auto_increment, `name` varchar(50) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; b) virtual users CREATE TABLE `virtual_users` ( `id` int(11) NOT NULL auto_increment, `domain_id` int(11) NOT NULL, `password` varchar(32) NOT NULL, `email` varchar(100) NOT NULL, PRIMARY KEY (`id`), UNIQUE KEY `email` (`email`), FOREIGN KEY (domain_id) REFERENCES virtual_domains(id) ON DELETE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8; c) virtual aliases CREATE TABLE IF NOT EXISTS `virtual_aliases` ( `id` int(11) NOT NULL auto_increment, `domain_id` int(11) NOT NULL, `source` varchar(100) NOT NULL, `destination` varchar(100) NOT NULL, PRIMARY KEY (`id`), FOREIGN KEY (domain_id) REFERENCES virtual_domains(id) ON DELETE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8; Creamos los siguientes archivos: nano /etc/postfix/mysql-virtual-mailbox-domains.cf y dentro ponemos lo siguiente: user = mailuser password = aquí_va_la_contraseña_del_usuario_mailuser hosts = 127.0.0.1 dbname = mailserver query = SELECT 1 FROM virtual_domains WHERE name='%s' guardamos con la tecla Ctrl más la letra O y cerramos con Ctrl + X. Ahora ponemos el siguiente comando en la terminal postconf -e virtual_mailbox_domains=mysql:/etc/postfix/mysql-virtualmailbox-domains.cf Vamos a crear un ejemplo de dominio de correo virtual.
  75. 75. Volvemos a entrar a MySQL mysql -u mailuser -p mailserver ejecutamos INSERT INTO virtual_domains (id, name) VALUES (1, 'example.com'); salimos con exit de MySQL exit ejecutamos en la terminal postmap -q example.com mysql:/etc/postfix/mysql-virtual-mailboxdomains.cf debemos obtener un "1" como resultado Ahora creamos un ejemplo de usuario virtual mysql -u mailuser -p mailserver INSERT INTO virtual_users (id, domain_id, email, password) VALUES (1, 1, 'john@example.com', MD5('summersun')); salimos y creamos el siguiente archivo: nano /etc/postfix/mysql-virtual-mailbox-maps.cf con el siguiente contenido user = mailuser password = aquí_va_la_contraseña_del_usuario_mailuser hosts = 127.0.0.1 dbname = mailserver query = SELECT 1 FROM virtual_users WHERE email='%s' guardamos y ejecutamos lo siguiente en la terminal postconf -e virtual_mailbox_maps=mysql:/etc/postfix/mysql-virtualmailbox-maps.cf ejecutamos postmap -q john@example.com mysql:/etc/postfix/mysql-virtual-mailboxmaps.cf tiene que devolver un "1". Ahora vamos a configurar el ejemplo del envío de mensajes de una dirección de correo a otra. mysql -u mailuser -p mailserver
  76. 76. INSERT INTO virtual_aliases (id, domain_id, source, destination) VALUES (1, 1, 'john@example.com', 'john@example.com'), (2, 1, 'john@example.com', 'devnull@workaround.org'); creamos el archivo nano /etc/postfix/mysql-virtual-alias-maps.cf user = mailuser password = aquí_va_la_contraseña_del_usuario_mailuser hosts = 127.0.0.1 dbname = mailserver query = SELECT destination FROM virtual_aliases WHERE source='%s' ejecutamos postmap -q john@example.com mysql:/etc/postfix/mysql-virtual-aliasmaps.cf tiene que arrojar los destinos esperados john@example.com,devnull@workaround.org creamos el archivo nano /etc/postfix/mysql-email2email.cf lo editamos con el siguiente contenido user = mailuser password = aquí_va_la_contraseña_del_usuario_mailuser hosts = 127.0.0.1 dbname = mailserver query = SELECT email FROM virtual_users WHERE email='%s' ejecutamos postmap -q john@example.com mysql:/etc/postfix/mysql-email2email.cf tenemos que observar john@example.com postconf -e virtual_alias_maps=mysql:/etc/postfix/mysql-virtual-aliasmaps.cf,mysql:/etc/postfix/mysql-email2email.cf ejecutamos los siguientes dos comandos chgrp postfix /etc/postfix/mysql-*.cf chmod u=rw,g=r,o= /etc/postfix/mysql-*.cf Editamos /etc/postfix/master.cf nano /etc/postfix/master.cf tenemos que añadir
  77. 77. dovecot unix n n pipe flags=DRhu user=vmail:vmail argv=/usr/lib/dovecot/deliver -d $ {recipient} se vería de la siguiente forma ... # Interfaces to non-Postfix software. Be sure to examine the manual # pages of the non-Postfix software to find out what options it wants. # # Many of the following services use the Postfix pipe(8) delivery # agent. See the pipe(8) man page for information about ${recipient} # and other message envelope options. # ==================================================================== # # maildrop. See the Postfix MAILDROP_README file for details. # Also specify in main.cf: maildrop_destination_recipient_limit=1 # maildrop unix n n pipe flags=DRhu user=vmail argv=/usr/bin/maildrop -d ${recipient} dovecot unix n n pipe flags=DRhu user=vmail:vmail argv=/usr/lib/dovecot/deliver -d $ {recipient} ... reiniciamos postfix postfix reload ejecutamos estos dos comandos postconf -e virtual_transport=dovecot postconf -e dovecot_destination_recipient_limit=1 Ahora pasaremos a la configuración de Dovecot CONFIGURACIÓN DE DOVECOT Agregamos un grupo y un usuario del sistema groupadd -g 5000 vmail useradd -g vmail -u 5000 vmail -d /var/vmail -m Si aún no ha instalado dovecot por favor hagalo aptitude install dovecot-pop3d dovecot-imapd lha arj unrar zoo nomarch cpio lzop cabextract squirrelmail mutt Editamos /etc/dovecot/dovecot.conf, como este archivo es demasiado grande y el buscador de nano no me ha dado buenos resultados para facilitar su edición; vamos a utilizar "vi" vi /etc/dovecot/dovecot.conf
  78. 78. una vez dentro de vi podemos observar en color azul todo lo que está comentado y en negro u otros tonos lo descomentado, buscamos lo siguiente para definir los protocolos a ofrecer por defecto son: protocols = imap imaps pop3 pop3s ahora podemos hacer una búsqueda de la siguiente configuración tecleando :/disable_plaintext_auth y nos colocará en la línea #disable_plaintext_auth = yes la descomentamos tecleando la letra "i" y ya podemos editar el archivo como en cualquier otro editor. Debe quedar entonces de la siguiente forma. disable_plaintext_auth = yes Para regresar y hacer la siguiente búsqueda tecleamos "Esc" y escribimos :/#mail_location tecleamos "i" para insertar y lo modificamos de la siguiente forma mail_location = maildir:/var/vmail/%d/%n/Maildir salimos con del modo insertar con "Esc" y ahora buscamos :/namespace private { y lo editamos descomentando las siguientes líneas namespace private { separator = . prefix = INBOX. inbox = yes } Atención cada una de las líneas hasta la del símbolo "}" deben quedar sin el símbolo # al inicio ahora buscamos :/auth default y en esa sección modificamos de esta forma mechanisms = plain login
  79. 79. ahora buscamos :/passdb sql y lo editamos así passdb sql { args = /etc/dovecot/dovecot-sql.conf } quedaría así: # SQL database </usr/share/doc/dovecotcommon/wiki/AuthDatabase.SQL.txt> passdb sql { # Path for SQL configuration file args = /etc/dovecot/dovecot-sql.conf } y ahora buscamos :/userdb static y lo editamos con la tecla "i" de la siguiente forma userdb static { args = uid=5000 gid=5000 home=/var/vmail/%d/%n allow_all_users=yes } ahora buscamos :/socket listen y debe quedar socket listen { master { path = /var/run/dovecot/auth-master mode = 0600 user = vmail } client { path = /var/spool/postfix/private/auth mode = 0660 user = postfix group = postfix } } ahora buscamos :/protocol lda y lo modificamos de esta forma
  80. 80. 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
  81. 81. 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
  82. 82. postconf -e smtpd_recipient_restrictions=permit_mynetworks,permit_sasl_authenticat ed,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= postconf postconf postconf postconf /etc/ssl/private/postfix.pem -e smtpd_tls_cert_file=/etc/ssl/certs/postfix.pem -e smtpd_tls_key_file=/etc/ssl/private/postfix.pem -e smtpd_use_tls=yes -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
  83. 83. $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):
  84. 84. smtp-amavis unix n -o smtp_data_done_timeout=1200 -o smtp_send_xforward_command=yes -o disable_dns_lookups=yes -o max_use=20 2 smtp 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_ch ecks -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
  85. 85. 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
  86. 86. . bin/activate descargamos wget http://workaround.org/sites/default/files/ispwebadmin1.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
  87. 87. 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:
  88. 88. [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_basededatos?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
  89. 89. 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 127.0.1.1 192.168.1.100 127.0.0.0 localhost server1.lan server1 server1.no-ip.org server1 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
  90. 90. 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"
  91. 91. creamos los siguientes directorios: mkdir mkdir mkdir mkdir -p /var/lib/named/etc /var/lib/named/dev -p /var/lib/named/var/cache/bind -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 mknod chmod chown chown /var/lib/named/dev/null c 1 3 /var/lib/named/dev/random c 1 8 666 /var/lib/named/dev/null /var/lib/named/dev/random -R bind:bind /var/lib/named/var/* -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;
  92. 92. 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 28800 3600 604800 38400 ) 100 IN IN NS PTR ;serial ;refresh ;retry ;expire ;minimum 25 minutes server1.no-ip.org. 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
  93. 93. 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).
  94. 94. Una vez dentro de la configuración hay un apartado "MX record":
  95. 95. Entramos al asistente SPF para crear los Registros MX (mail exchange record):
  96. 96. En la parte de arriba hay un enlace a Openspf.org:
  97. 97. 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
  98. 98. 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
  99. 99. 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
  100. 100. 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
  101. 101. 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
  102. 102. 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
  103. 103. 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.
  104. 104. 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
  105. 105. 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
  106. 106. 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)
  107. 107. 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:
  108. 108. [...] $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,
  109. 109. `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
  110. 110. 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
  111. 111. 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
  112. 112. 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
  113. 113. con esto tenemos un servidor de correo totalmente funcional que incluso marca el correo basura. ‹ Configuración para acceso entre ordenadores de una red local.arribaProgramación › • 4141 lecturas • Comentarios page (13 comments) • Responder

×