Oct 06, 2015
IntroduccinSe tiene planteado la construccin, configuracin y levantamiento de una red de servicios integrados para la Coordinacin de Ingeniera en Telecomunicaciones y para la Divisin de Servicios Sociales que maneje la posibilidad de unir al personal de manera efectiva, orientada a las comunicaciones conjuntas para mejorar la productividad y ayudar a digitalizar actividades.
Se contempla el uso de servidores que puedan ofrecer de manera efectiva servicios digitales orientados a las comunicaciones, a la centralizacin de sistemas y al almacenamiento de datos dentro del espacio delimitado por los servidores que los van a conformar.
En este manual de configuraciones se tratara de explicar la estructura fsica de la red, los servidores y los servicios que ofrece cada uno. Se expondr la distribucin de los servicios en los servidores y mas importante aun, una lista de pasos seguidos para el levantamiento de cada servicio.
Las configuraciones usadas aqu son iniciales y bsicas, dejando libre la posibilidad de mejorar en mira a la seguridad, eficiencia, alcance y efectividad cada servicio dependiendo de las necesidades tanto de la intranet para la Coordinacin de Ingeniera en Telecomunicaciones como para la Divisin de Asuntos Sociales.
Inicialmente voy a exponer lo planteado para la red de servicios, para empezar con la intranet de la Coordinacin de Ingeniera en Telecomunicaciones, con el cual este manual har referencia.
Red de ServiciosPara la red de servicios se requiere de servidores que puedan ofrecer conexiones seguras a travs de consolas remotas, acceso web, acceso a archivos y correo electrnico.
Los servicios ofrecidos son los siguientes teniendo en cuenta que para cada servicio se tendrn que configurar de uno a mas sistemas:
Servicio Secure Shell
SSH
Servicio DHCP
DHCPd
Servicio DNS
Bind
Servicio Web y Webmail
Apache, Squirrelmail
Servicio FTP
ProFTPd
Servicio Correo Electrnico
Exim, SASL, Spamassassin, Courier
Servicio comparticin de datos
Samba, NFS
Se trabajara en base a direccionamiento IP de clase C; los parmetros sern los siguientes:
IP C class:
Network address:
192.168.0.0
Network mask
255.255.255.0(24 bits)
Broadcast
192.168.0.255
Valid Hosts
192.168.0.1 192.168.0.254
DHCP range
192.168.0.1 192.168.0.100
Static range
192.168.0.101 192.168.0.240
Servers range
192.168.0.241 192.168.0.253
Gateway address
192.168.0.254
FQDN intranetwork
itel.unefamcy.net
ServidoresPara lograr los objetivos planteados se usaran 2 servidores; uno de comunicaciones, el principal que marca las pautas de conectividad de los equipos clientes con la red y que adems contendr los servicios crticos de comunicaciones de la red. Un servidor de datos, secundario que se encargara en mayor medida para el alojamiento y resguardo de archivos y respaldos.
Los servidores son efectivos mientras mas sencilla sea su interfaz, ligero el arranque del nucleo, estable los paquetes de software y mejor manejo de los recursos del hardware. Una vez configurado el acceso remoto no necesitara monitor, teclado o mouse.
Una seleccin acertada es el uso de sistemas operativos especializados en redes de datos, que sea libre, sencillo y amigable pero a la vez estable, robusto y confiable; una excelente seleccin un sistema que este basado en UNIX system V. Un sistema libre como GNU/Linux, del cual se toma en consideracin la distribucin Debian; el cual junto con Slackware y RedHat han demostrado ser los sistemas mas estables y confiables para la construccin de servidores fiables para trabajos pesados y de seguridad.
De la distro seleccionada, Debian GNU/Linux se decide utilizar la versin 5.0 Lenny la cual a probado ser muy ligera adems de estable y amigable para los servidores contemplados para este proyecto.
Se establecen los parmetros de configuracin para los servidores de la intranet de la Coordinacin de Ingeniera en Telecomunicaciones como se pueden apreciar a continuacion:
Servidor de comunicaciones:comm
comm.itel.unefamcy.net
IP address
192.168.0.253/24
Services
SSH, DHCP, DNS, HTTP, HTTPS, FTP, SMTP, IMAP
Servidor de datos:
data
data.itel.unefamcy.net
IP address
192.168.0.252/24
Services
SMB, NFS, FTP
Administracin del sistemaPara efectos administrativos del sistema desde la consola inicial del servidor se trabajara con el superusuario o root. El superusuario es la mayor jerarqua en todo sistema basado en UNIX system V. Esto quiere decir que el trabajo de consola realizado bajo el superusuario es realmente delicada y se requiere que el usuario que lo use sepa realmente lo que esta haciendo. El prompt de usuario del superusuario se diferencia de un usuario normal en que se presenta con el smbolo del numeral:comm:~# _Un segundo usuario administrativo pero de menor jerarqua fue creado durante la instalacin del sistema operativo por mi, a mi criterio, y ese usuario es iadmin (de intranet administrator). Es el usuario con el cual se lograra acceso remoto a traves del ssh y que cuenta con privilegios heredados por medio del servicio sudo (superuser do), para lo cual debe ser previamente configurado (este tema se tratara en la instalacin de herramientas bsicas). El prompt del usuario -y de cualquier usuario que no sea root- se diferencia de root en que se presenta con el smbolo del dolar:iadmin@comm:~$ _Como ya lo he mencionado, el acceso remoto se realiza con el usuario iadmin para tareas administrativas como indico a continuacin:lmolina@hostlocal:~$ ssh iadmin@comm
iadmin@comm's password:
Linux comm 2.6.26-2-686 #1 SMP Sun Mar 4 22:19:19 UTC 2012 i686
Last login: Sun Jan 25 10:44:22 2015 from 192.168.0.4
iadmin@comm:~$ _ Desde este usuario se puede, una vez ingresado en el host remoto, convertirse en superusuario:iadmin@comm:~$ su
Contrasea:
comm:/home/iadmin#Mientras el usuario iadmin pertenezca al grupo sudo, se le permite emular al superusuario al ejecutar aplicaciones y comandos estratgicos:iadmin@comm:~$ sudo bash
comm:/home/iadmin#
iadmin@comm:~$ sudo apt-get install -y mc zip unzip ssh
iadmin@comm:~$ sudo nano /etc/apt
/sources.list
iadmin@comm:~$ sudo /sbin/halt
El primer comando carga el prompt de superusuario ejecutando el bash (bourne again shell) con privilegios de root. El siguiente manda a instalar con apt-get los paquetes mc, zip, unzip y ssh. Con el tercero manda a editar el archivo de configuracion de bases de datos de repositorios del sistema. Y con el ultimo se manda a apagar el sistema. Todo esto como si se tratara del root quien llamara estos comandos.
Con ssh tambin se puede trasladar archivos de un host al server por medio de scp (secure copy) tal como se indica a continuacin:lmolina@hostlocal:~$ scp jan2015.tar.gz iadmin@comm:/home/iadmin/temp
iadmin@comm's password:
jan2015.tar.gz 100% 753 0.7KB/s 00:00
lmolina@hostlocal:~$ _Ahora cuando se manejan archivos comprimidos para la elaboracion de respaldos, lo mas recomendable es usar el comando tar para comprimir:iadmin@comm:~$ tar czvf jan2015.tar.gz backup/*Y para descomprimir:iadmin@comm:~$ tar xzvf jan2015.tar.gzInstalacin de Herramientas BsicasPara poder trabajar con fluidez a travs del prompt (consola), se requiere que cada sistema este previamente configurado para realizar tareas de instalacin de paquetes de software:
Para la edicin de archivos de texto se usara el editor nano, el cual ya se encuentra instalado por defecto con el sistema base:comm:~# nano /etc/motd Con este ejemplo comando estoy editando el archivo motd contenido en /etc.
Todos los archivos de configuracin de servicios instalados en el sistema se encuentran en el directorio /etc. Todo servicio a configurar tiene su base en este directorio. Para todo administrador y configurador, /etc es el directorio mas importante del sistema.
Para la visualizacin de directorios y sus contenidos utilizo como herramienta comn el midnight commander o mc, una aplicacin que me permite de una manera visual examinar directorios tal como lo hacia el clasico Norton Commander de los 80's, y se instala como:comm:~# apt-get install mc
comm:~# mc /etc/aptCon esto estoy iniciando la interfaz de mc en el directorio /etc/apt.
Una herramienta que se instalara entre las primeras es el sudo (superuser do):comm:~# apt-get install sudoVerificamos con el editor nano la siguiente linea en el archivo /etc/sudoers:comm:~# nano /etc/sudoers
%sudo ALL=NOPASSWD: ALLY se agrega al usuario iadmin al grupo sudo:comm:~# adduser iadmin sudoEn resumen, una vez configurado los repositorios, la primera instalacion despues de haber obtenido el sistema base instalado, son los siguientes:comm:~# apt-get install -y mc zip unzip sudo sshInstalacin de Servicios (Daemons)Una vez instaladas las herramientas iniciales, se procede a instalar y configurar los servicios necesarios para cada servidor. Empezaremos con el servidor de comunicaciones comm (comm.itel.unefamcy.net)comm.itel.unefamcy.net:
Servicio Secure Shell (ssh):Se instala el servicio ssh con la herramienta apt:comm:~# apt-get install sshUna vez instalado se procede a limitar el acceso al root editando el archivo de configuracin del servicio con el editor nano:comm:~# nano /etc/ssh/sshd-configY se configura el acceso al root como sigue:PermitRootLogin no
Listo se sale guardando los cambios con ctrl+X y se reinicia el servicio:/etc/init.d/ssh restartServicio DHCP (dhcp3-server):Se instala el servicio dhcp3-server:comm:~# apt-get install dhcp3-serverSe establecen las interfaces de red al cual el servicio alquilara direcciones IP:comm:~# nano /etc/default/dhcp3-serverY en el parmetro INTERFACES se coloca la NIC conectada a la intranet:INTERFACES=eth0Se reinicia el servicio:/etc/init.d/dhcp3-server restartDe aqu se procede a configurar el servicio editando el archivo de configuracin:comm:~# nano /etc/dhcp3/dhcpd.confLos parmetros del archivo dhcpd.conf son los siguientes:ddns-update-style none;
option domain-name "itel.unefamcy.net";
option domain-name-servers comm.itel.unefamcy.net;
default-lease-time 600;
max-lease-time 7200;
authoritative;
log-facility local7;
subnet 192.168.0.0 netmask 255.255.255.0 {
range 192.168.0.1 192.168.0.100;
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.0.255;
option routers 192.168.0.254;
}Guarda y sale con ctrl+X y reiniciamos el servicio nuevamente para dar fin a la configuracin del servicio:/etc/init.d/dhcp3-server restartServicio DNS (bind9):Se instala el servicio bind9 con apt:comm:~# apt-get install bind9Una vez terminada la instalacin, nos movemos al directorio base del bind y se procede a realizar una copia de las bases de datos existentes de las zonas de recursos principales y reversos para tener una base desde la cual empezar a trabajar:comm:~# cd /etc/bind/
comm:~# cp db.local db.itel.unefamcy.net
comm:~# cp db.127 db.192Una vez realizadas las copias de las zonas principal y reverso de nuestro dominio se procede a editar cada archivo de recursos comenzando con:comm:~# nano db.itel.unefamcy.netPara la zona de recursos directa o principal cuyo contenido es el siguiente:$TTL86400
@
INSOAitel.unefamcy.net. root.itel.unefamcy.net. (
1
; Serial
604800
; Refresh
86400
; Retry
2419200
; Expire
86400 )
; Negative Cache TTL
;
@ INNScomm.
@ INA192.168.0.253
comm INA192.168.0.253
IN MX 10comm.
intratel INA192.168.0.253
webmailIN A 192.168.0.253
data INA192.168.0.252Seguidamente con la zona reversa de nuestro dominio:comm:~# nano db.192Cuyo contenido debe ser el siguiente:$TTL604800
@INSOAitel.unefamcy.net. root.itel.unefamcy.net. (
1
; Serial
604800
; Refresh
86400
; Retry
2419200
; Expire
604800 )
; Negative Cache TTL
;
@INNScomm.
253INPTRcomm.
253INPTRintratel.
253INPTRwebmail.
252INPTRdata.Seguidamente se asignan las zonas creadas atribuyendo los nobres de cada base de datos a tal fin en named.conf.local:comm:~# nano named.conf.localCuyo contenido se debe definir dependiendo de los archivos creados:zone "itel.unefamcy.net" {
type master;
file "/etc/bind/db.itel.unefamcy.net";
allow-transfer { none; };
allow-query { any; };
};
zone "192.in-addr.arpa" {
type master;
file "/etc/bind/db.192";
allow-transfer { none; };
allow-query { any; };
};Seguidamente se configuran las opciones generales del servicio:comm:~# nano named.conf.optionsDonde se definen los siguientes parmetros:options {
directory "/var/cache/bind";
forwarders {
200.44.32.12;
};
auth-nxdomain no;
listen-on-v6 { any; };
};
Una vez realizados los cambios se finaliza la tarea reiniciando el servicio: /etc/init.d/bind9 restartServicio FTP (proftpd):Se instala el servicio proftpd con apt:comm:~# apt-get install proftpdY se edita el archivo de configuracin del servicio ubicado en /etc/proftpd/:comm:~# nano /etc/proftpd/proftpd.confCuyo contenido para el comm debe ser limitado por la autenticacin del usuario intratel para el acceso al contenedor del sitio web de intratel:Include /etc/proftpd/modules.conf
IdentLookups
off
ServerName
"comm"
ServerType
standalone
DeferWelcome
off
MultilineRFC2228
on
DefaultServer
on
ShowSymlinks
on
UseIPv6
off
TimeoutNoTransfer
600
TimeoutStalled
600
TimeoutIdle
1200
DisplayLogin
welcome.msg
DisplayChdir
.message true
ListOptions
"-l"
DenyFilter
\*.*/
Port
21
MaxInstances
30
MaxClients
10
MaxClientsPerHost
6
MaxClientsPerUser
3
AuthUserFile
"/etc/passwd"
AuthGroupFile
"/etc/group"
DefaultRoot
~
RequireValidShell
off
User
proftpd
Group
nogroup
Umask
022 022
AllowOverwrite
on
TransferLog
/var/log/proftpd/xferlog
SystemLog
/var/log/proftpd/proftpd.log
TLSEngine
off
QuotaEngine
on
Ratios
on
DelayEngine
on
ControlsEngine
off
ControlsMaxClients
2
ControlsLog
/var/log/proftpd/controls.log
ControlsInterval
5
ControlsSocket
/var/run/proftpd/proftpd.sock
AdminControlsEngine
off
Umask
022 022
AllowOverwrite
on
AllowRetrieveRestart
on
AllowStoreRestart
on
AllowAll
AllowAll
AllowAll
Terminado de editar la configuracin, se guarda y se reinicia el servicio finalizando la configuracion del servicio:/etc/init.d/proftpd restartHay que tener en cuenta que el servicio FTP esta directamente enlazado a las labores del servicio web, lo que lo hace necesario en funcin al contenido que pueda alojar el servidor web.
Servicio web (apache2):Se instala el servicio apache2 junto con el paquete php5 con apt:comm:~# apt-get install apache2 php5Una vez instalado el servicio nos posicionamos en el directorio base de los sitios ejemplos disponibles del apache y copiamos el que se necesita para establecer una base desde donde se creara un nuevo sitio:comm:~# cd /etc/apache2/sites-available
comm:~# cp default intratelSe edita el nuevo archivo creado:comm:~# nano intratelCuyo contenido debe depender del directorio casa en donde se va a alojar el nuevo sitio web, en este caso en /home/intratel/:
ServerName intratel.itel.unefamcy.net
ServerAdmin [email protected]
DocumentRoot /home/intratel/
Options FollowSymLinks
AllowOverride None
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
ErrorLog /var/log/apache2/error.log
LogLevel warn
CustomLog /var/log/apache2/access.log combined
ServerSignature On
Una vez terminada la edicion y guardado el archivo, nos movemos al directorio hermano de sitios activos:comm:~# cd ../sites-enabledY se procede a crear el enlace simblico que apunta al archivo de configuracin del sitio recin creado borrando cualquier enlace que exista anterior al que se va a configurar:comm:~# ln -s ../sites-available/intratel intratel
comm:~# rm 000-*Se aade el registro intratel en la base de datos principal del DNS en db.inet.unefamcy.net:intratel INA192.168.0.253Y en la base de datos de reversos del DNS en db.192:253INPTRintratel.Se reinicia el servicio bind y se procede a aadir un usuario que coincida con el directorio casa del sitio recien creado; /home/intratel:comm:~# adduser intratelSe aaden los datos, contrasea y se procede a agregar al usuario al grupo www-data:comm:~# adduser intratel www-dataSe elimina todo el contenido del directorio casa de intratel:comm:~# rm -r /home/intratel/*Se deshabilita la propiedad de inicio de sesion para el usuario intratel de manera que el directorio casa de intratel sea solo un contenedor accesible solo por ftp o sftp:comm:~# usermod -s /bin/false intratelUna vez llegado hasta aqui se prueba el acceso desde un cliente ftp (yo uso gFTP) contra el servidor usando el usuario intratel y su contrasea para entrar al contenedor y alojar un archivo de prueba creado como index.html (en /home/intratel/) que podra contener:
Intratel
Pagina de prueba de intratel
La pagina y el sitio se encuentran en construccion
Alojado el archivo de prueba se reinicia el servicio de apache:/etc/init.d/apache2 restartY por ultimo se prueba la carga de la pagina web recin alojada en el servidor desde cualquier navegador web al alcance (Internet Explorer, Firefox, Iceweasel, Cunaguaro, Chrome, Opera, etc) de manera que al llamar a intratel, se pueda ver algo parecido a esto:http://intratel
Pagina de prueba de Intratel
La pagina y el sitio se encuentran en construccion
Servicio SMTP o de correo electrnico (exim4+saslauthd+spamassassin+courier-imap)
Se reemplaza el servicio ligero de exim4 instalado por defecto por una versin mas completa del mismo:comm:~# apt-get install exim4-daemon-heavyInstalado el servicio reemplazante se edita el archivo principal de configuracin del servicio ubicado en /etc/exim4/ por lo que es recomendable movernos hacia el directorio base del mismo:comm:~# cd /etc/exim4
comm:~# nano update-exim4.conf.confEl contenido del mismo debe ser como se observa a continuacin:dc_eximconfig_configtype='internet'
dc_other_hostnames='comm.itel.unefamcy.net;itel.unefamcy.net'
dc_local_interfaces='192.168.0.253;127.0.0.1'
dc_readhost=''
dc_relay_domains='itel.unefamcy.net'
dc_minimaldns='false'
dc_relay_nets='192.168.0.0/24;127.0.0.1'
dc_smarthost='itel.unefamcy.net'
CFILEMODE='644'
dc_use_split_config='true'
dc_hide_mailname='true'
dc_mailname_in_oh='true'
dc_localdelivery='maildir_home'Sin reiniciar el servicio aun, se procede a instalar el sistema de autenticacin segura sasl con el servicio saslauthd:comm:~# apt-get install sasl2-bin libsasl2-modulesSe configura el arranque automtico del servicio:comm:~# nano /etc/default/saslauthdY se configura la siguiente linea:START=yesSe reinicia el servicio saslauthd:/etc/init.d/saslauthd restartY volvemos a la configuracin de exim4, pero esta vez de los archivos contenidos en /etc/exim4/conf.d/ y asumiendo que seguimos posicionados en /etc/exim4/:comm:~# nano conf.d/main/03_exim4-config_tlsoptionsDonde se aade lo siguiente casi al principio del archivo:# TLS/SSL configuration for exim as an SMTP server.
# See /usr/share/doc/exim4-base/README.Debian.gz for explanations.
MAIN_TLS_ENABLE = 1
.ifdef MAIN_TLS_ENABLELuego se edita el siguiente archivo:comm:~# nano conf.d/auth/30_exim4-config_examplesDonde se descomentan las lineas en la seccin login_saslauthd_server tal como se muestra a continuacin: login_saslauthd_server:
driver = plaintext
public_name = LOGIN
server_prompts = "Username:: : Password::"
# don't send system passwords over unencrypted connections
server_condition = ${if saslauthd{{$auth1}{$auth2}}{1}{0}}
server_set_id = $auth1
# .ifndef AUTH_SERVER_ALLOW_NOTLS_PASSWORDS
# server_advertise_condition = ${if eq{$tls_cipher}{}{}{*}}
# .endifAhora se genera un certificado de seguridad con lo que quedan creados exim.crt y exim.key alojados en /etc/exim4/:comm:~# /usr/share/doc/exim4-base/examples/exim-gencert
Country Code (2 letters) [US]:VE
State or Province Name (full name) []:Aragua
Locality Name (eg, city) []:Maracay
Organization Name (eg, company; recommended) []:UNEFA
Organizational Unit Name (eg, section) []:Coordinacion de Telecom
Server name (eg. ssl.domain.tld; required!) []:comm.itel.unefamcy.net
Email Address []:[email protected] Se agrega al usuario Debian-exim al grupo sasl:comm:~# addgroup Debian-exim saslSe reinicia el servicio de correo:comm:~# update-exim4.conf
comm:~# /etc/init.d/exim4 restartSe puede realizar una prueba de conexin smtp por telnet con el prompt del usuario iadmin:iadmin@comm:~$ telnet localhost 25
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 comm.inet.unefamcy.net ESMTP Exim 4.69 Tue, 05 Jan 2015 11:42:31 -0430EHLO comm.inet.unefamcy.net250-comm.inet.unefamcy.net Hello iadmin at localhost [127.0.0.1]
250-SIZE 52428800
250-PIPELINING
250-AUTH LOGIN
250-STARTTLS
250 HELPSe puede notar que al escribir EHLO comm.inet.unefamcy.net se obtiene una respuesta donde las lineas 250-AUTH LOGIN y 250-STARTTLS indican que la autenticacin smtp con TLS esta funcionando.
Ahora se aade la configuracin que permita el bloqueo de DNS con listas negras:comm:~# nano conf.d/acl/30_exim4-config_check_rcptSe aade las siguientes listas justo despus de aceptar mensajes autenticados:# Accept if the message arrived over an authenticated connection,
# from any host. Again, these messages are usually from MUAs, so
# recipient verification is omitted,and submission mode is set. And
# again, we do this
check before any black list tests.
accept
authenticated = *
control = submission/sender_retain
# DNS Whitelist
accept
domains = +local_domains
# whitelist only medium and high trust levels
dnslists = list.dnswl.org&0.0.0.2
logwrite = $sender_host_address is whitelisted
# DNS blacklist
drop
log_message = match DNS Block List
dnslists = zen.spamhaus.org : list.dsbl.org : dnsbl.sorbs.net
Las listas negras usadas aqu son de SpamHaus, Distributed Sender Blackhole (DSBL) y SORBS, que aunque el equipo no se encuentre en este momento conectado a la red WAN, no esta de mas dejarlo configurado para evitar futuras sorpresas en caso que en algn momento se conecten a la internet y no tengan de respaldo una pared de fuego que la proteja. El correo electrnico rechazado por una lista negra queda registrado en /var/log/exim4/mainlog.
Se reinicia nuevamente el servicio de correo:comm:~# update-exim4.conf
comm:~# /etc/init.d/exim4 restartAhora se instalan los servicios spamassassin y spamc para aadirlo al servicio de correo electrnico:comm:~# apt-get install spamassassin spamcSe configura el arranque automtico de spamassassin:comm:~# nano /etc/default/spamassassinY se configura la siguiente linea:ENABLED=1Se reinicia el servicio spamassassin:/etc/init.d/spamassassin restartDe vuelta a la configuracin de exim4, con los archivos de /etc/exim4/conf.d/ y asumiendo que seguimos posicionados en /etc/exim4/:comm:~# nano conf.d/main/02_exim4-config_optionsSe descomenta la siguiente linea en el archivo:spamd_address=127.0.0.1 783Seguidamente en la siguiente direccin:comm:~# nano conf.d/acl/40_exim4-config_check_dataSe aaden las siguientes lineas de contenido:# Put headers in all messages (no matter if spam or not)
warn
spam = nobody:true
add_header = X-Spam_score: $spam_score ($spam_bar)
add_header = X-Spam-report: $spam_report
# Add second subject line with *SPAM* marker when message is over
# threshold.
warn
spam = nobody
add_header = Subject: ***SPAM (score:$spam_score)*** $h_subject:
Se reinicia nuevamente el servicio de correo:comm:~# update-exim4.conf
comm:~# /etc/init.d/exim4 restartSe instala ahora el servicio courier-imap:comm:~# apt-get install courier-imapSe construyen los directorios de almacenamiento de correos, por un lado en el molde que utiliza el sistema para crear las carpetas de usuarios en /etc/skel/, de este modo cualquier usuario creado en el sistema a partir de aqui tendra por defecto su carpeta personal de correo Maildir alojado en su directorio casa:comm:~# maildirmake /etc/skel/MaildirY a travs del inicio de sesin de cada usuario creado antes del momento de instalar courier-imap se crea por cada uno el directorio de almacenamiento de correo:iadmin@comm:~$ maildirmake MaildirPor ultimo se edita la configuracion del nombre de correo general del sistema:comm:~# nano /etc/mailnameSe prueba el enlace al maildir creado en cualquier usuario usando telnet contra el puerto imap2 y con AB LOGIN usuario y contrasea se inicia sesion en el servicio:iadmin@comm:~$ telnet localhost imap2
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
* OK [CAPABILITY IMAP4rev1 UIDPLUS CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT THREAD=REFERENCES SORT QUOTA IDLE ACL ACL2=UNION] Courier-IMAP ready. Copyright 1998-2008 Double Precision, Inc. See COPYING for distribution information.
AB LOGIN iadmin intraT3l2015
AB OK LOGIN Ok.
BC SELECT "Inbox"
* FLAGS (\Draft \Answered \Flagged \Deleted \Seen \Recent)
* OK [PERMANENTFLAGS (\* \Draft \Answered \Flagged \Deleted \Seen)] Limited
* 54 EXISTS
* 41 RECENT
* OK [UIDVALIDITY 1421558877] Ok
* OK [MYRIGHTS "acdilrsw"] ACL
BC OK [READ-WRITE] Ok
ZZZZ LOGOUT
* BYE Courier-IMAP server shutting down
ZZZZ OK LOGOUT completed
Connection closed by foreign host.Como se puede notar al ejecutar BC SELECT Inbox podemos ver que con la respuesta BC OK [READ-WRITE] Ok la lectura y escritura sobre el maildir es en efecto exitosa. Con ZZZZ LOGOUT se sale del sistema.
Por ultimo se establece de manera que cualquier mensaje saliente a cualquier usuario sera dirigido al siguiente FQDN:itel.unefamcy.netSe reinicia nuevamente el servicio de correo:comm:~# update-exim4.conf
comm:~# /etc/init.d/exim4 restartSe realiza una prueba final del envo y recibo de correo desde la consola:comm:~# echo texto de prueba del cuerpo del mensaje | mail -s test iadminCon esto se construye un mensaje de texto el cual se direcciona al comando mail cuyo subject test sera enviado a iadmin. No se especifica el @FQDN al usuario ya que esa funcin le concierne al mailname previamente configurado. Si se desea ver el movimiento continuo del servicio se usa el siguiente comando:comm:~# tail -f /var/log/exim4/mainlogCon esto la consola queda ocupada mostrado en tiempo real las acciones del servicio de correo electrnico. Para cerrar el proceso y volver al prompt basta con usar ctrl+C para resolverlo.
Una manera de ver que todo esta funcionando es que las acciones registradas en /var/log/exim4/mainlog terminen con completed al final o con revisar con la consola el /home/iadmin/Maildir/cur/ los mensajes de entrada para el usuario iadmin.
Servicio webmail (squirrelmail)
Se instala el paquete squirrelmail desde apt:comm:~# apt-get install squirrelmailSe activa el modulo ssl del servicio apache para ofrecer el webmail a travs del https o http secure por medio del puerto 443.comm:~# a2enmod sslSe reinicia el servicio web de apache:comm:~# /etc/init.d/apache2 restartSe genera el certificado ssl para el webmail:comm:~# openssl req $@ -new -x509 -days 3650 -nodes -out /etc/apache2/apache.pem -keyout /etc/apache2/apache.pemDe igual manera como se solicitaron los datos para el certificado TLS del exim4 se va respondiendo para obtener el certificado alojado en /etc/apache2/. Una vez hecho esto nos situamos en el directorio /etc/apache2/sites-available tal como se hizo anteriormente con la configuracion inicial del servicio web:comm:~# cd /etc/apache2/sites-availableCopiamos el archivo ssl por defecto para iniciar desde all la configuracin de squirrelmail:comm:~# cp ssl-default ssl
comm:~# nano sslEl contenido de ssl depende de donde se ubiquen el certificado creado (/etc/apache2/apache.pem) y los archivos web del squirrelmail, tal como se puede apreciar a continuacin:
ServerName webmail.itel.unefamcy.net
ServerAdmin [email protected]
DocumentRoot /usr/share/squirrelmail/
Options FollowSymLinks
AllowOverride None
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
ErrorLog /var/log/apache2/error.log
LogLevel warn
CustomLog /var/log/apache2/ssl_access.log combined
SSLEngine on
SSLCertificateFile /etc/apache2/apache.pem
SSLOptions +StdEnvVars
BrowserMatch ".*MSIE.*" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
Cambiamos de posicin al directorio hermano sites-enabled para activar el site:comm:~# cd ../sites-enabledAadimos un enlace simbolico al archivo de configuracion ssl recien creado:comm:~# ln -s ../sites-available/ssl sslSe reinicia el servicio web de apache nuevamente:comm:~# /etc/init.d/apache2 restartSe aade el registro webmail en la base de datos principal del DNS en db.inet.unefamcy.net:webmail INA192.168.0.253Y en la base de datos de reversos del DNS en db.192:253INPTRwebmail.Se reinicia el servicio bind y se procede a probar la conexion a traves de cualquier navegador web al alcance (Internet Explorer, Firefox, Iceweasel, Cunaguaro, Chrome, Opera, etc). Al llamar a webmail algo parecido a esto debe poder cargarse:https://webmail
[logo squirrelmail]
SquirrelmailUsuario:
Contrasea: