You are on page 1of 10

Proyecto ERALA “Servidor empresarial sobre tarjeta de desarrollo Intel Galileo”

David Alejandro Rafael Gutiérrez alejandro.rafael@estudiante.uacm.edu.mx


Ricardo Alarcón Olivares ricardo.alarcon.olivares@studiante.uacm.edu.mx
Universidad Autónoma de la Ciudad de México (UACM)
Plantel San Lorenzo Tezonco

Resumen. El presente trabajo describe lo realizado en el proyecto de Estándares en Redes de Área Local
y Amplia, el cual consta de entender cómo se instala un servidor empresarial, en este caso se hará sobre
una tarjeta de desarrollo Intel Galileo. Se entenderá el proceso de instalación y configuración de los servicios
de un servidor empresarial el cual constará del servidor web y servidor de correo electrónico.

Introducción. servicios. Este se puede alquilar a una empresa, o


bien comprarlo uno mismo e instalarlo en el lugar
El curso se llama Estándares en Redes de Área que se desee. Generalmente esta última opción es
Local y Amplia TCP/IP (ERALA) para poder realizar mucho más peligrosa y costosa, ya que se tiene
el proyecto es necesario conocer las capas que se que considerar la administración, por un lado, y por
maneja en un modelo TCP las cuales son 5: capa otro los consumos de energía eléctrica y los
física, enlace de datos, internet, transporte y servicios dedicados de conexión a internet, esto si
aplicación. Las capas de un modelo ISO/OSI son se desea tener plena disponibilidad del servidor.
7: capa física, enlace de datos, RED, transporte, Considerando que, si se apaga el servidor, las
sesión, presentación y aplicación. Menciono las webs que tengan ahí dejaran de estar disponibles.
capas de modelo TCP/IP y las de ISO/OSI ya que [1]
son fundamentales para poder saber el
funcionamiento de un servidor. En este caso el hardware elegido será una tarjeta
de desarrollo Intel Galileo, esta es la primera tarjeta
¿Qué es LAMP? bajada en la arquitectura de Intel® para ser
El acrónimo LAMP: Linux, Apache, MySQL y PHP; compatible en sus pines de hardware y software
se refiere a un conjunto de subsistemas de con los shields diseñados para Arduino Uno R3.
software necesarios para alcanzar una solución
global, en este caso configurar sitios web o
servidores dinámicos con un esfuerzo reducido.

Figura 2 Tarjeta Intel Galileo

Sistema operativo
Linux
Linux es un conjunto de partes que, sumadas, sirve
Figura 1 Diagrama de solución integral a la necesidad de un sistema
operativo. Un sistema operativo es un conjunto de
¿Cómo instalar LAMP? programas base que hace que una computadora
Lo primero que se debe de tener en cuenta es, funcione. Estos programas base son las
sobre en qué hardware se instalaran estos herramientas de GNU y el núcleo de Linux.
GNU/Linux junto con otros programas de código La característica más importante del SMTP es su
abierto conforman las partes del sistema operativo capacidad de transportar correos a través de
completo. El conjunto de estos programas que múltiples redes. Así un correo puede pasar a través
buscan mejorar y hacer más fácil una instalación y de varias redes intermedias, puertas de enlace a
mantenimiento de un sistema Linux se le conoce su paso desde el remitente hasta el destinatario. [6]
como distribución.
IMAP
Existen cientos de distribuciones de Linux, cada
una creada con distintos propósitos y fines, entre Internet Message Access Protocol (IMAP), permite
las más destacadas se encuentran Debian, Red al cliente accede y manipular mensajes de correo
Hat y Slackware, de las cuales se desarrollan otras electrónico en un servidor, este permite la
distribuciones. [2] manipulación de buzones en una forma que es
equivalente en funcionamiento a tener carpetas
Apache2. locales y re-sincronizarlos con el servidor.[7]

Apache es uno de los servidores más populares, POP3


es un servidor de código abierto para sistemas
operativos modernos incluyendo UNIX, Microsoft En ciertos tipos de nodos pequeños en el internet
Windows, Mac OS y NetWare. La meta del no es practico mantener un sistema de transporte
proyecto apache es proveer un servidor seguro de mensajes (MTS). Por qué una estación de
eficiente y extensible que provea servicios de trabajo podría no tener suficientes recursos para
HTTP apegándose a los estándares actuales de permite que un servidor SMTP y su sistema de
HTTP. Apache tiene un diseño modular y soporta entrega de correos local asociado se mantenga
extensiones dinámicas de módulos durante su residente y ejecutándose.
ejecución. Es muy configurable en cuanto al A pesar de esto, es muy útil poder administrar el
número de servidores y de módulos disponibles y correo en estos nodos pequeños, y que ofrezcan el
soporta diversos mecanismos de autentificación, soporte a un agente de usuario para ayudar en las
control de acceso, metafiles, proxy caching, tareas de manejo de correo. Para resolver este
servidores virtuales, etc. [3] problema, un nodo que puede soportar una entidad
MySQL. MTS ofrece un servicio de correo a estos nodos
menos dotados. El Protocolo de Oficina Postal
MySQL es un DBMS (Database Management POP3 está diseñado para permitir a una estación
System). Un DBMS es el que puede añadir y de trabajo acceder dinámicamente a un correo en
procesar los datos almacenados dentro de una un servidor de manera útil. Usualmente, esto
base de datos, MySQL es una base de datos significa que el protocolo POP3 es usado para
relacional lo que significa que almacena los datos permitir a una estación de trabajo recuperar
en tablas en lugar de una única ubicación lo que correos que el servidor mantiene para él. [8]
permite mayor velocidad y flexibilidad. [4]
MUA
PHP.
Los programas que la gente usa para enviar y
Acrónimo para Hypertext Preprocessor, es un recibir correos electrónicos se llaman formalmente
lenguaje de código abierto adecuado para el Mail User Agents (MUAs). Estos son los
desarrollo web y puede ser incrustado en HTML. responsables de proveer una interface de correo
PHP a diferencia de Java, el código es ejecutado conveniente para el usuario, al mostrar los correos
en el servidor y el cliente recibirá el resultado de entrrantes que se encuentra en el buzon de los
ejecutar los scripts. [5] usuarios, asisten al usuario en la construcción de
mensajes para ser enviados y proveen de servicios
SMTP para la administración de carpetas para mensajes
El objetivo SMTP (Simple Mail Transfer Protocol) guardados, los MUA son los extremos de un
es trasferir correo de una manera confiable y sistema de correo. Distintos MUA pueden ser
eficiente. Este protocolo es independiente del instalados y pueden operar simultáneamente en
subsistema de transmisión particular y requiere una sola computadora, de este modo ofrecer una
solo de un canal confiable de flujo de datos opción de diferentes interfaces para los usuarios.
ordenado.
Cuando un MUA envía un mensaje, este realmente  Auditorias de seguridad.
no hace el trabajo de enviarlo en realidad a sus  Pruebas rutinarias de redes.
destinatarios. Lo que realiza es enviárselo a un  Recolector de información para futuros
Mail Transfer Agent (MTA), el cual debe de estar ataques. (hackers)…”
ejecutándose en el mismo host o en algún servidor
local. [9] Objetivo.
MTA Los objetivos de este trabajo es aplicar los
conocimientos adquiridos en la materia de
Un MTA (Mail Transport Agent) se encarga de
estándares en redes de área local y amplia al
enviar y recibir los correos desde un servidor de
implementar la instalación de un servidor
correo electrónico hacia y desde internet, haciendo
empresarial, específicamente los puntos a
uso de SMTP y en cuestión a recepción
desarrollar en este trabajo son los siguientes.
básicamente este se encarga de la obtención y
almacenamiento de los mensajes entrantes.

Los programas que se utilizaran para la  Montar un servidor empresarial sobre una
implementación del servidor empresarial, se tarjeta de desarrollo Intel Galileo.
enuncian a continuación: para el sistema operativo  Comprender el proceso de instalación de
se eligió una distribución de Debian 7 compatible un servidor.
con la tarjeta de desarrollo Galileo, como servidor  Utilizar herramientas de software libre para
Web como ya se mencionó anteriormente se la gestión de contenido web y gestión de
instalaran las versiones compatibles para Debían correo electrónico.
de Apache, MySQL y PHP; para los servicios de
 Conocer los protocolos utilizados para el
gestión Web y correo electrónico se utilizara
envío de correos electrónicos mediante un
Joomla y Squirrelmail (MUA) y Postfix (MTA) servidor empresarial.
respectivamente.

Otras herramientas y programas que se utilizaran


para el desarrollo de este proyecto son; Rufus, Desarrollo.
Nmap,
En el presente desarrollo se tratará de explicar los
procedimientos que se consideran más relevantes
“…Rufus es un programa gratis para crear un USB para la implementación del servidor empresarial
de arranque de forma muy sencilla y rápida. sobre la tarjeta de desarrollo Intel Galileo, el
Funciona con Windows 7, XP, 8, 8.1, Vista y procedimiento que se sigue no necesariamente
Windows 10. Microsoft tiene también un programa tendría que seguir ese orden salvo que algún paso
para hacer eso, que permite además crear CDs de dependa de otro.
arranque. Puedes ver aquí cómo usarlo. Rufus es Primeramente, se tiene que cargar el sistema
útil sobre todo en los casos en que el programa de operativo en la tarjeta Galileo, para esto se buscó
Microsoft no funciona por la razón que sea...” una distribución de Debian compatible con Galileo
y se creó una microSD booteable con la ayuda de
Rufus. En la imagen x se muestra la interface de
Nmap (de Network Mapper) es una utilidad de Rufus escribiendo el sistema operativo sobre la
software libre para explorar, administrar y auditar la microSD que se insertara en la tarjeta Galileo.
seguridad de redes de ordenadores. Detecta hosts
online, sus puertos abiertos, servicios y
aplicaciones corriendo en ellos, su sistema
operativo, que firwalls/filtros corren en una red y de
que tipo son. Es excelente para hacer trabajos de
auditoria de res y fue diseñado para llevar acabo
escaneos rápidos en una gran cantidad de redes,
pero es igualmente usable en hosts individuales.
Es reconocido como el scanner de puertos más
poderoso. Y se lo usa básicamente para 3 cosas:
Figura 4 Escaneo de la red con NMAP

Una vez identificada la dirección IP asignada a la


tarjeta Galileo, accedemos a su sistema operativo
mediante secure shell con el comando:
#ssh 192.168.200.78

Cuando se realice exitosamente la conexión


remota esta solicitara un password el cual es “root”
por defecto. En la figura 5 se observa la conexión
mediante SSH a la tarjeta galileo.

Figura 3 Interface de Rufus grabando la Imagen de Debian

Cuando el programa Rufus termina el proceso de


carga de archivos a la microSD esta se ingresa a
la tarjeta Galileo y se procede a conectar su fuente
de alimentación, adicionalmente se conectó a la
red del laboratorio B-404 el cual cuenta con un
servidor DHCP que le proporciona
Figura 5 Conexión a la tarjeta Galileo pos SSH
automáticamente una dirección IP.
El sistema operativo instalado sobre la microSD
Para conocer qué dirección IP le fue asignada a la
para la tarjeta galileo por defecto no ocupa la
tarjeta Galileo, en otra computadora con acceso a
la misma red, se hace uso de Nmap en una totalidad del espacio disponible en la memoria por
lo que hay que expandir el sistema de archivos
terminal y como superusuario para escanear la red
para obtener mayor espacio de almacenamiento y
y conocer los dispositivos conectados a esta.
así aprovechar la mayor cantidad de memoria
Hacemos uso de ifconfig para conocer la dirección disponible en la tarjeta SD, esto se realizó con los
de red a la que se está conectando en este caso es siguientes comandos.
la red 192.168.200.0/24, ya conociendo la red se
#df -h
hace el escaneo de red con el comando. #parted /dev/mmcblk0 resizepart2
a 7400MB
#nmap –sn 192.168.200.0/24
#reboot
#tune2fs -j /dev/mmcblk0p2
En la figura 4 se observa el resultado de haber
#reboot
escaneado la red y así poder identificar la dirección #resize2fs /dev/mmcblk0p2
IP asignada a la tarjeta Galileo mediante la
dirección física de la NIC de la tarjeta Galileo.
En la figura 6 se muestra la expansion del sistema
de archivos que se realizo y el tamaño final de esta
expansion.
el cual realiza algunas preguntas como si se desea
cambiar el password, remover usuarios anónimos
etc.
Figura 6 Tamaño final del sistema de archivos

Una vez expandida la memoria se procede con la


instalación de los paquetes necesarios ya que en
este momento el espacio de almacenamiento no
será ningún obstáculo por capacidad de memoria
disponible. Antes de instalar cualquier paquete se
realiza una actualización del sistema operativo; el
comando que usamos para instalar desde la
terminal de Linux para Debian es: apt-get install
[paquete_a_instalar] y como ya se mencionó lo
primero es la actualización.
#apt-get install update

En la figura 7 se muestra parte del resultado de


actualizar el sistema operativo.

Figura 8 Configuración inicial de MySQL

Finalmente, para tener instalada el conjunto de


aplicaciones LAMP, es necesario instalar PHP, lo
cual se realiza sin mayor complicación al ejecutar:
Figura 7 Proceso de Actualización del sistema
#apt-get install php5
Posterior a la actualización del SO, se instala El la imagen x se aprecia que al ejecutar el
Apache que será el que proporcione el servicio web comando anterior indica que se instalaran algunos
en el servidor, en las distribuciones de debían este paquetes extras asi como tambien sugerencias y la
paquete se encuentra con el nombre de apache2 y remocion de uno.
se instala con el siguiente comando:
#apt-get install apache2 apache2-doc
#service apache2 restart

El comando anterior instala la versión más reciente


compatible y estable compatible con el sistema
operativo. Posterior a esta instalación debemos
instalar el gestor de bases de datos.

Para la instalación de MySQL del mismo modo que Figura 9 Instalación PHP5
se hizo con apache solo se necesita saber las
paqueterías que se necesitan y el nombre correcto Hasta el momento ya ha instalado el conjunto de
con el que se encuentran en los repositorios de los aplicaciones LAMP, ya el servidor es capaz servir
servidores de Debian, páginas web, Sin embargo, aún queda por instalar
un gestor de contenido web y un agente de usuario
#apt-get install mysql-server libapache2-mod-auth-
de correo electrónico.
mysql php5-mysql

Posterior a la instalación del gestor de bases de Como gestor de contenido web se eligió Joomla, el
datos MySQL se configura. En la siguiente figura cual se descarga la versión más reciente desde su
(Figura 8), se muestra la configuración de MySQL, sitio oficial, sin embargo, desde la tarjeta galileo se
tuvo un problema con los certificados para poder
descargar directamente, para solucionar este
problema se descargó en la computadora desde
donde se está administrando el servidor y se hizo
la copia del paquete de Joomla, lo anterior se
realizó con secure copy:

#scp user@[host]:/[ruta_fuente]/[archivo_a_copiar]
/[ruta_destino]/[nombre_archivo_destino]

En la siguiente figura, Figura 10 se muestra el


proceso de transferencia del archivo mediante scp.

Figura 10 Copiando archivos con SCP

El sistema de la tarjeta Galileo en donde se quiere Figura 12 Pagina de Configuración Joomla


instalar Joomla no contiene por defecto el paquete
Posteriormente al hacer click en “siguiente” se pide
zip, por lo tanto se instala, en la figura 11 se
la configuración de la base de datos, está base es
muestra la realizacion de esta operación.
necesaria para Joomla ya que sobre esta se
guardan los cambios realizados en el panel de
control, para esta sección se debe crear una base
de datos lo cual se hace en el servidor al ejecutar
los siguientes comandos:
#mysql -u robot -p
Enter Password:[contraseña]
mysql> CREATE USER erala@localhost;
mysql>CREATE DATABASE eraladb;
Figura 11 Instalación de ZIP y UNZIP mysql>SET PASSWORD FOR ‘erala’@’localhost’ =
PASSWORD(“contraseña”);
El paquete se descomprime en la carpeta donde mysql>GRANT ALL PRIVILEGES ON eraladb.* TO
opera Apache, por defecto en /Var/www/ una vez ‘erala’@‘localhost’ IDENTIFIED BY ‘contraseña’ WITH
GRANT OPTION;
descomprimidos los archivos en este directorio mysql>FLUSH PRIVILEGES;
eliminamos elmarchivp index.html que se crea al mysql>quit;
instalar apache.
Con lo anterior se crea la base de datos que
En un navegador web, en la computadora en la que utilizará Joomla y el usuario que está permitido
se está gestionando estos movimientos nos para hacer modificaciones sobre esta base de
dirigimos a la dirección IP del servidor, al hacer datos, pero aún se necesita hacer un cambio
esto se desplegará la página de configuración de necesario para que esté gestor de contenido
Joomla, en la figura 12 se muestra está página de funcione correctamente y esto es darle permisos al
configuración donde se ingresan los campos servicio de apache para que realice cambios sobre
requeridos, como, nombre del sitio, correo del el directorio de instalación de Joomla esto se logra
administrador o webmaster, nombre del webmaster mediante
y una contraseña.
#chown –R www-data:www-data /var/www
#chmod –R 775 /var/www/

Lo anterior cambia el propietario del directorio a


www-data que es el servicio de apache y el 775 le
indica el nivel de permiso que se tienen sobre ese
directorio en, por lo tanto el propietario y el grupo
tendrá permisos de escritura, lectura y ejecución y
otros solo permisos de lectura y ejecución. Es decir
los permisos quedan de la siguiente manera:
drwx-rwx-r-x

Lo anterior será suficiente para que Joomla se


instale sin problema alguno, al hacer click en
instalar jomla hará los cambios necesarios para
que funcione correctamente, en la Figura 13 se
muestra el diálogo de finalizacion de la instalación
donde solicita que se eliminé la carpeta de
instalación y muestra el enlace para ir al panel de
control de Joomla que se muestra en la figura 14.

Figura 15 192.168.200.78

Finalmente y como parte de los objetivos de este


trabajo se instala un MUA, en este caso se eligió
squirrelmail, para instalarlo basta con ejecutar el
comando en la terminal:
#apt-get intall squirrelmail

Con el comando anterior se instala squirrelmail, y


para agregar este webmail, squirrelmail viene con
una configuracion de ejemplo para apache en
/etc/squirrelmail/apache.conf este archivo se
puede copiar y luego crear el link simbolico
Figura 13 Joomla instalado con éxito ejecutando los siguientes comandos:
#cp /etc/squirrelmail/apache.conf /etc/apache2/site
s-available/squirrelmail
#ln -s /etc/apache2/sites-available/squirrelmail /e
tc/apache2/sites-enabled/squirrelmail
#a2ensite squirrelmail
#/etc/init.d/apache2 force-reload

Ahora podemos utilizar nuestro navegador web


para ingresar en la direccion
http://localhost/squirrelmail donde sera desplegada
la pagina de login de squirrelmail.

Figura 14 Panel de control de Joomla Finalmente se configura squirrelmail, al correr el


comando:
Dentro de este panel de control de pueden hacer # /usr/sbin/squirrelmail-configure
todos los movimientos necesarios para la creación
de un sitio web y la publicación de contenido dentro Este comando ejecuta un script PHP que realiza
de este sitio, pero esto queda fuera de los objetivos las configuraciones estilo menú, tal como se
de este trabajo, con los cambios básicos se puede muestra en la figura 15
observar en la figura como se ve el sitio web que
se despliega al entrar a la dirección IP del servidor
en un web browser.
#adduser richie
Password:[contraseña]

Una vez registrados los usuarios estos ya son


capaces de ingresar al webmail squirrelmail,en la
figura 17 se muestra el panel de administración de
squirrelmail en el que se observa que se tiene
apartados de buzón de entrada, correos enviados,
borradores, etc

Figura 15 Menú de configuración Squirrelmail

Los aspectos importantes de configuración son


Organization Preferences donde se personaliza de
acuerdo a las características de la empresa o del
Figura 17 Interface de usuario de correo electrónico
sitio web. Y Server Settings, dónde se configuran Squirrelmail
aspectos necesarios para el envío de correo en
este caso como el servidor de envío de correo se Con la instalación de los paquetes mencionados
encuentra en el mismo servidor no es necesario para LAMP, gestor de contenido web y gestor de
realizar ninguna modificación correos, ya se cuenta con un servidor empresarial
funcional.
Haciendoo estas configuraciones ya se puede
visualizar como se muestra en la figura 16 el Resultados.
logging del webmail squirrelmail.
En la realización del presente proyecto se
obtuvieron los resultados esperados de acuerdo a
los objetivos planteados, como podemos observar
en la figura 17 se muestra el sitio web que es
gestionado con Joomla y este contiene las
modificaciones básicas.

Figura 16 Login de Squirrelmail

Finalmente se crean los usuarios que usarán este


webmail, en este caso se crearán dos para fines de
comprobaciones se envían correos a las cuentas Figura 17 página de inicio servidor web
creadas, estas cuentas de crean e la siguiente
manera
#adduser david En cuestión del servidor de correo electrónico se
Password:[contraseña] realizaron varias pruebas con distintas
configuraciones, en el caso de en el que solo se adicionalmente se pudo enviar correos a un
instalo el mua, los correos solo podían ser servidor agenno al implementado en este caso el
enviados entre los usuarios registrados en el servidor de correos de Google, Gmail. Se intentó
servidor, en la figura 18 se muestra la bandeja de enviar un correo al dominio de Hotmail y este fue
entrada con un correo recibido de un segundo recibido pero por cuestión de seguridad el servidor
usuario registrado y en la imagen 19 se muestra la de Microsoft Outlook lo desecho, en la figura 20 se
notificación de error al haber querido enviar un muestra el correo recibido en el buzón de spam en
correo a un servidor ajeno al implementado. la cuenta de Gmail.

Figura 18 Bandeja de entrada con mensajes recibidos

Figura 20 Correo electrónico recibido exitosamente a servidor


de Gmail

Conclusiones:

Figura 19 Mensaje de error intento de envio de correo a Para el desarrollo de la presente trabajo se
servidor externo investigó acerca de los paquetes de software que
conforman LAMP, y los procesos para su
instalación. Se estudiaron los protocolos que se
Al instalar el MTA se comprobó que el envío entre usan paran en servidor de correo electrónico y
los usuarios registrados en el mismo servidor como los agentes actúan para llevar a cabo el
continua existiendo transferencia de correos y envío y recepción de correos electrónicos.
Queda claro que falta el complemento de este
proyecto puesto que lo ideal sería que los correos
enviados a través de servidor empresarial
implementado no se consideren como spam, este
complemento serían los certificados de seguridad
o realizar otras configuraciones para evitar esta
situación.

Referencias:

[1] Multiplexación (2017) Disponible en :


https://uazuay.edu.ec/estudios/sistemas/te
leproceso/apuntes_1/multiplexacion.htm
[2] Fernandez Montoro, Arturo. Cámbiate a
LINUX. España: RC libros
[3] Apache HTTP Server, The Apache
Software Foundation, consultado el
11/12/17 en:
https://projects.apache.org/project.html?ht
tpd-http_server
[4] MySQL About, MySQL consultado el
11/12/17 en:
https://www.mysql.com/about/
[5] PHP, PHP, consultado el 11/12/17 en:
http://php.net/manual/es/intro-whatis.php
[6] Simple Mail Transfer Protocol, IETF
RFC5321 consultado el 11/12/17,
recuperado de
https://tools.ietf.org/html/rfc5321
[7] Post Office Protocol - Version 3, IETF
RFC1939 Consultado el 11/12/17 en:
https://tools.ietf.org/html/rfc1939
[8] Internet Message Access Protocol, IETF
RFC3501, consultado el 11/12/17
recuperado de:
https://tools.ietf.org/html/rfc3501
[9] Hazel, Philip. The Exim SMTP Mail Server:
Official Guide for Release 4.

You might also like