29 mayo 2018

Mi primer servidor debian Stretch

Introducción

Este articulo está pensado para instalar un servidor Debian de la forma más sencilla posible, la idea es que sirva para aprender cómo se instala, aunque si es conveniente conocer antes un  poco los entornos Linux normales, pues este tema no se trabaja. Es mejor primero buscar alguna web donde aprender a instalar paso a paso una distribución Debian, aquí os proponemos una muy precisa:

https://debian-handbook.info/browse/es-ES/stable/sect.installation-steps.html

Habitualmente los servidores no llevan entorno gráfico, porqué son administrados por profesionales y porqué el preció del GB es muy elevado tanto en el ordenador como en los discos que son tipo SAS o SSD, este no será nuestro caso y tampoco nuestra función. Los discos actuales sencillos tienen gran capacidad y el precio por GB es muy asequible; por lo tanto, el uso de entorno gráfico facilita el acceso a los servidores de muchas personas buenas conocedoras de la informática y sin necesidad de que sean profesionales. Se propone utilizar el entorno gráfico Mate, porque es muy liviano y completo. También se podría utilizar el entorno gráfico xfce.

Condiciones mínimas en cuanto al hardware del servidor.

- Utilizar una placa base muy probada, no es necesario utilizar una de última generación. Si que es recomendable utilizar chipset Intel con la tarjeta gráfica y tarjeta de red incorporadas.

- Memoria RAM de 8GB para pruebas, en caso de implementarse deberá revisar esta capacidad de memoria en función de la aplicación del servidor.

- Dos discos duros exactamente iguales para servidores, para un primer servidor utilizar de 1 a 5 TB según la necesidad. Proponemos ver la web de los discos específicos para servidores. Para las primeras pruebas  no seria necesario pero aquí se incorpora porque se considera importante practicar las particiones RAID 1.

https://www.wdc.com/es-es/products/internal-storage/wd-black-desktop.html#WD1003FZEX

Téngase en cuenta que el apartado de los discos es muy importante en un servidor, quizá de los más. El uso de discos mecánicos de mala calidad o inapropiados provoca el fracaso del sistema pues  son un punto débil.

Veamos las disposiciones habituales de los discos duros para servidores. Puede utilizarse una disposición con dos o con tres discos duros:

- Con dos discos duros se monta una configuración llamada RAID 1. Que consiste en poner dos discos duros en paralelo, en donde los dos tienen la misma información  de forma que si falla una el otro conserva los datos. En el caso que disco un duro se estropee puede sustituirse y reconstruirlo de forma sencilla y sin apenas interrupción del servicio.


- Con tres discos duros dos funcionan en RAID 1 y el tercero está en reserva, de forma que si falla uno el tercero entra en servició sustituyendo el disco averiado de forma sencilla.

Una vez dicho lo anterior si queremos montar nuestro primer servidor, una configuración con dos discos es más que suficiente.

Existen dos formas de montar un RAID 1

- La primea consiste en montar el RAID 1 por software, es decir se monta el RAID cuando se efectúa la partición de los discos.

- La segunda consiste en tener una placa base con la posibilidad de montar y configurar un RAID, es lo que se llama raid por hardware. En este caso debe configurarse la placa base antes de empezar a instalar el sistema, indicando el tipo de RAID que queremos. También existe la solución sencilla  de poner una tarjeta como la que ponemos al final del articulo para conseguirlo.

A pesar de todo lo dicho anteriormente, si disponéis de un ordenador que no usáis podéis utilizarlo y probar la instalación hasta que la dominéis un poco todo el proceso.

Se pude utilizar cualquier la distribución Linux, en nuestro caso se propone una distribución Debian que es, sin duda, la más utilizadas actualmente.

https://www.debian.org/CD/http-ftp/index.es.html

Nos bajamos una ISO Debian Netinstall y la gravamos en CDrom o USB.
Es importante practicar y repetir el proceso de instalación tantas veces como sea necesario hasta que lo veamos claro y lo dominemos

Siempre tenemos a mano la web de Debian con toda la información necesaria.

http://www.debian.org/releases/stable/i386/index.html.es

Si no hemos instalado nunca una distribución Debian podemos ver el proceso paso a paso en el siguiente video.

https://www.youtube.com/watch?v=loRsavmQTvs

Partición de los discos


Veamos que tipo de partición escogemos. En principio utilizamos dos discos duros iguales en RAID 1 con tres particiones, estos recibirán el nombre de sda y sdb, y las particiones de sda serán: sda1, sda2 y sda3, y las de sdb serán: sdb1, sdb2 y sdb3.

-- sda0 Y sdb0 se partirán con  1 GB aproximadamente y servirá pera la carpeta /boot
-- sda1 y sdb1 se partirán con 8 GB aproximadamente y servirá como para el area de intercambio. El área de intercambio suele cogerse igual a la memoria RAM que tengamos.

-- sda2 y sdb2 se partirán con lo que quede de GB y servirá como /  raíz del sistema.

Cuando tengamos más experiencia veremos que el número de particiones será mucho más preciso y dependerá del uso del servidor. Además de las mencionadas, es necesario tener una con la bases de datos del sistema instalado y otra para los ficheros de la web, etc.

La secuencia a seguir cuando la instalación llega al particionado, sería la siguiente:
1.- Particionado manual
2.- Borrar todas las particiones de los discos si no son nuevos
3.- definir la particiones iguales en cada disco:
 - 1 partición en cada disco de 1GB para la partición boot
 - 1 partición en cada disco de 8 GB para el área de intercambio
 - 1 partición igual en cada disco con el resto del disco
4.- Escoger Raid por software md
5.-  Escoger Raid 1 y se marcan las particiones iguales con la barra espaciadora:
  - Las dos particiones iguales de 1GB para boot
  - Las dos particiones iguales de 8 GB para el área de intercambio
  - Las dos particiones iguales con el resto del disco para la raíz /
 6.- escribir el disco y confirmar


Si no tenéis suficiente, proponemos el siguiente vídeo de Youtube en el que se explica de forma visual del proceso de partición. Resulta ideal tener un portátil al lado del server pera seguir el particionado paso por paso. Como siempre debemos dar la gracias a todas aquellas personas  que cuelgan  su trabajo de forma voluntaria y de esta forma podemos aprender fácilmente lo que nos costaría mucho más de resolver.

https://youtu.be/KGAe4DK2Ppo

Cuando hayáis acabado con las particiones en RAID 1 os debe mostrar un solo  un disco con más o menos lo siguiente para cada partición:

- 1 GB md0 configurado como /boot
- 8 GB md1 configurado como a área de intercambio
- El  resto de espacio md2 configurado como / raiz

A partir de este momento supondremos instalado un sistema Linux Debian con entorno gráfico Mate y continuaremos con la instalación de un servidor web primer estático y luego dinámico.

Tener en cuenta que el proceso instalación es mucho más lento que en una instalación normal con un solo disco.

Servidor web estático


Para instalar un servidor con páginas web estáticas sin bases de datos, marcamos:

- Mate para el entorno gráfico.
- Web server, que instala el Apache como programa el servidor páginas web.


El web server instalará el programa php7 necesario pera las páginas web tanto estáticas como dinámicas.

Al final de todo el proceso de instalación de Debian nos pedirá si queremos instalar el gestor de arranque. Debe situarse el gestor en el disco sda o primer disco. Aquí hay uno de los problemas del RAID por software, pues el gestor de arranque va en uno de los discos y si  falla este el sistema no arranca; pero esto no es muy grave porque el ordenador se puede arrancar con un CD live y instalar el gestor de arranque en el disco que no lo tiene y el sistema ya arrancará.

En un servidor de páginas web estáticas no tiene interacción con la persona que la está viendo, sólo le permite leer la información. Estas páginas se mantienen haciendo los cambios de forma manual con un editor de páginas web.

Si no estamos seguros o no hemos marcado web server en el momento de la instalación para tener todos los programas necesarios podemos  ejecutar la siguiente orden en un terminal.

# apt install apache2 php default-mysql-server php-mysql libapache2-mod-php php-gd php-curl php-xmlrpc php-intl php-zip php-mbstring

En nuestro caso ejemplo, y para empezar, utilizaremos solo la red interna para ello daremos una IP de la bajas, por ejemplo 192.168.0.5.


Para acabar nos pedirá reiniciar el ordenador y el servicio web lo podremos ver con  el navegador poniendo la dirección URL:

En nuestro ordenador accederemos mediante la URL

- http://localhost

Y desde otro ordenador de la misma red interna con la URL

- http://192.168.0.5

Aparecerá la página de presentación del servidor web apache indicándonos que está funcionando.




Los contenidos web en formato html deberán hacerse con un editor de páginas web y ponerse después en la carpeta adecuada del servidor. Normalmente no se hacen directamente en el servidor y se dispone de otro ordenador preparado para la edición web y se transfieren los ficheros al servidor con un programa denominado ftp (filezilla, por ejemplo). El contenido web debe ir a la siguiente carpeta:

      var/www/html/


Los contenidos html deben pertenecer al grupo www-data y los permisos de los ficheros deben ser 775. Por tanto una vez cargado por primera vez debe ejecutarse la siguiente orden:

# chown -R www-data:www-data /var/www/html/
# chmod -R 775 /var/www/html/


Servidor web dinámico


Un servidor web dinámico es aquel que posee bases de datos y tiene usuarios con diferentes permisos sobre los contenidos. Son ejemplos típicos las wikis,  el Joomla o el Moodle.

Las wikis son las más sencillas de estructura ya que sus bases de datos son simples ficheros de texto. Para instalar una wiki ver el apartado correspondiente de este blog y veréis que es muy sencillo:

https://tecn-ara.blogspot.com.es/p/installar-dokuwiki-en-un-sistema-linux.html

Las webs dinámicas típicas para colegios o Institutos podrían ser tanto  Joomla como Moodle. Estos necesitan instalar además del Php5 ja comentado, los siguientes programas:

NOTA. Actualmente estos dos programas (mysql-server y phpmyadmin) no se encuentran en los repositorios Debian. Estamos en fase de comprobación de nuevos programas libres, aunque si se desea si se pueden instalar. Estamos probando MariaDB, que está basado en MySQL, y default-mysql-server.

Con el gestor de instalación Synaptic instalamos:

         mysql-server y phpmyadmin

O bien desde Terminal:

# apt install  mysql-server  phpmyadmin









Debemos vigilar que tanto el servidor de bases de datos mysql  como el phpmyadmin precisan de contraseña.

Tanto el servidor mysql como el phpmyadmin necesitan contraseña, para evitar problemas deben ser complicadas y en modo alguno iguales a las propias del ordenador.
Se puede acceder al servidor gráfico de bases de datos poniendo la dirección URL siguiente:

- http://localhost/phpmyadmin
- http://192.168.0.5/phpmyadmin


 

Las bases de datos se guardan en el servidor Debian en la carpeta:

/var/lib/mysql

Se puede comprobar mirando esta información en el fichero de texto de configuración del mysql:

# nano /etc/mysql/my.conf







En este punto ya tenemos el servidor web dinámico a punto, ahora es necesario decidir que programa queremos instalar.

Los dos típicos de los institutos de secundaria serian el Moodle para gestionar los cursos virtuales y el Joomla para gestionar páginas web dinámicas en las que se podrán escribir artículos del Centro.
Es importante entender que instalar un servidor y gestionar los servicios web dinámicos son dos cosas totalmente diferentes. En el caso de Moodle el administrador del programa debe tener un nivel alto en administración y tener cursos especializados de administración de Moodle, en el caso de Joomla es un poco más sencillo. Normalmente el administrador del servidor y el administrador del Moodle serán dos personas diferentes.

Instalando Joomla, como ejemplo

Bajar joomla desde la web:
https://downloads.joomla.org/

Obtendremos un paquete que será aproximadamente el siguiente y según la versión.
Joomla_3.9.1-Stable-Full_Package.zip

Desde el directorio  Bajadas el copiamos el fichero comprimido a:

 /var/www/html/
# cp Joomla_3.9.13-Stable-Full_Package.zip /var/www/html/

Recordemos que la ordenes para comprimir y descomprimir son:

Comprimir:         tar -zcvf archive-name.tar.gz nom_directorio
Descomprimir:   tar -zxvf prog-1-jan-2005.tar.gz

A continuación lo descomprimimos, que en el nuestro caso sera:

# cd /var/www/html

# tar -zxvfJoomla_3.9.13-Stable-Full_Package.zip

Damos los permisos y propietarios   de los archivos:

# chown -R www-data:www-data /var/www/html/

# chmod -R 775 /var/www/html/

A continuación, para instalar el programa abrimos el navegador y escribimos la url:

http:/localhost/install.php
Ahora deben seguirse los pasos que nos va pidiendo el instalador de Joomla. Las imágenes siguientes indican el proceso que se ha seguido.




Las bases de datos se crean en el momento de la instalación, podemos acceder a ellas con la siguiente URL

- http://localhost/phpmyadmin

El usuario suele se root y la contraseña la que se ha puesto en el momento de instalar, es imprescindible comprobar que todo funcione correctamente.

 

Acceso  al servidor desde otro ordenador de la red interna con un Terminal


Para acceder a distancia a los servidores a través de un Terminal, se utiliza un programa denominado SSH. Para ello es necesario instalar el servicio ssh.

Instalamos el paquete openssh-server



Para hacerlo activo debe irse al fichero de configuración y definir el Puerto por el que se accederá a este servició, normalmente es el 22. Si tenemos cortafuegos también deberá abrirse el puerto 22.

el fichero de configuración ssh_config está   /etc/ssh, accedemos a él:

#  nano /etc/ssh/ssh_config


Sacamos la almohadilla (#) en donde pone port 22,  podemos dejar este puerto o cambiarlo.



Ctrol+x para guardar y s para confirmar.

Ahora desde cualquier ordenador Linux de la red interna abrir un Terminal, logarse como administrador y escribir la siguiente orden:

# ssh root@192.168.0.5 -p22
# ssh   usuario@IP          - num_puerto_ssh


Contraseñas


Una buena política de contraseñas es muy importante en cualquier servidor, estas deben ser diferentes para cada servició y complicadas con números y letras mayúsculas y minúsculas. Ello es debido a que habrá diferentes personas que lo administren, por ejemplo: uno del sistema, otro de la base de datos y otro de la propia web dinámica.

Es conocido por todos que la seguridad de un servidor depende siempre de una buena gestión de contraseñas y de los mecanismos que creemos para evitar que sean conocidas por quienes no deban. La mayoría de ataques que se producen en los servidores es por la mala gestión de sus contraseñas.


IP Externa


En este artículo no se trata el tema ni de dominio ni de la IP externa, que son los responsables que podamos acceder desde el exterior tanto a los contenidos web como a la administración. Son elementos importantes pero que se consideran el paso posterior a la propuesta descrita. De momento sólo diremos que si deseamos una IP  externa debemos pedirla y pagarla a nuestro proveedor de Internet. Y el dominio o dirección web  también debe comprarse ver las siguientes webs.

 https://www.dominios.es/dominios/
https://www.xataka.com/basics/ip-publica-que-como-se-puede-cambiar

 

 Cortafuegos


Siempre que se tiene un servidor con acceso exterior es necesario protegerlo mediante un cortafuegos con una configuración muy precisa, para que sólo se pueda acceder a él a través de los puertos necesarios para ver la web y realizar, si es necesario, la administración del sistema.

El más sencillo seria el Gufw y el más completo shorewall.  De entrada solo debemos permitir el acceso al servidor por los puertos 80 y 443 que son los típicos de las webs y el puerto que hayamos definido para el acceso por el túnel de administración vía ssh.


En la distribución Debian shorewall esta en los repositorios de la comunidad, por tanto, su instalación es sencilla (apt install shorewall), pero su configuración requiere una cierta práctica, ya que no es inmediata.

Raid 1 por Hardware

El raid por hardware siempre es más eficiente ya que el se encarga de hacer todo el trabajo de control de los discos y en caso de fallo el reconstruirá el sistema cuando se cambie el disco, incluso hay servidores que esta operación pude hacerse sin parar el ordenador, ya que el mismo nos informa de que tiene un disco que no funciona según un código de luces que tienen los discos.
Cuando ya se tenga experiencia y se desee implementar un sistema solido, deberá obtenerse un ordenador con una serie de premisas que permitan un mantenimiento sólido.

Si el servidor de que se dispone no tiene de tarjeta de raid siempre de puede comprar una por un módico precio.

Un ejemplo sencillo para empezar podría ser una placa pci "SiI3x12A SATA Controller".

Para entrar a configurar  se presiona F4 o la tecla que corresponda en el momento en que se pone en funcionamiento el ordenador y se accede al menú que permite la configuración en RAID 1 o en RAID 0 de los discos.

Una vez configurado el raid, en el momento de instalar Debian sólo nos aparecerá un disco duro ya que la placa se encarga de la gestión de los discos.



NOTA. siempre es necesario practicar para aprender, suerte a todos y a disfrutar del software libre, que en servidores tiene la batalla totalmente ganada por su calidad.