Categorías

by Transposh - Plugin de traducción para WordPress
Navegando en IPv4

Servidor Web casero -Introducción

La siguiente serie de entradas describirá el proceso de instalación y puesta en marcha de un servidor web personal que funcione desde casa y pueda ser accedido universalmente. En esta entrada trataremos del equipo a usar, el sistema operativo, la instalación de los componentes iniciales y la configuración inicial de la red.

Propósito

Propósito.

Un servidor es una máquina que está siempre dispuesta a ofrecer datos e información a los dispositivos que se conecten a ella, si se conecta a Internet podremos acceder a estos datos desde ciualquier parte del mundo a cualquier hora. Si bien existen soluciones muy útiles como los servicios de nube de Google o Microsoft, estos nos ofrecen una cantidad bastante limitada de almacenamiento, que en algunos casos nos puede resultar insuficiente, el uso de un servidor personal complementa estos servicios ya que la capacidad de almacenamiento será la que nosotros queramos disponer en los dispositivos que instalemos. Resulta además atractiva la idea de poder configurar totalmente a nuestro gusto los servicios y páginas que podemos servir, cosa que contratando un VPS es oneroso si no esperamos tener muchas visitas ni retorno inmediato, o si usamos servicios preconfigurados no dispondremos de la suficiente capacidad de personalización de nuestro servidor.

No sólo podremos acceder a páginas, sino documentación, multimedia, y servicios domóticos si deseamos instalarlos, de una forma segura y económica. Una solución frecuente suele ser un servidor web con documentación, un FTP para acceder a los datos y subirlos y un servidor multimedia con nuestra música favorita para escuchar en la casa y fuera de ella. Se puede ampliar, si se estima conveniente el coste de un hardware más potente para ofrecer conferencias y servir vídeo en demanda. A un coste menor se pueden incluir servicios de videovigilancia, sensores climáticos y todo tipo de ingenios a través de  placas tipo “Pi” y Arduino.

Requisitos

Requisitos.

Acceso a Internet de banda ancha, cuanto más ancho de banda mejor, así el servidor no interferirá en el uso normal de la red.

Un ordenador dedicado, no es necesario una máquina de altas prestaciones, de hecho es recomendable una de bajo consumo energético. Los requisitos más importantes serán cuanta más memoria RAM mejor, y discos duros lo más rápidos posible, SSD mejor, pero si queremos gran capacidad los híbridos funcionan bien a precios muy razonables. Pantalla, ratón y teclado sólo para la configuración inicial, tras ello accederemos al servidor desde una consola ssh.
Un lugar ventilado y tranquilo de la casa donde poner el servidor, estará encendido las 24 horas, así que no es recomendable dejarlo en un dormitorio o el baño.
Recomendable poseer un nombre de dominio, pero también se puede usar uno dinámico y gratuito.
Aplicación:

Empezaremos con lo más sencillo, un servidor web y programas para controlarlo y asegurarlo de forma lo más sencilla posible. Evitaremos en la medida de lo posible recurrir a la consola de comandos, aunque añadiremos los comandos equivalentes y explicaciones de su uso. Todo lo que se puede hacer con una interfaz de usuarios, se puede hacer con la consola, a veces incluso mejor, pero ciertamente no es necesario para un proyecto personal y para todos los públicos como este.

Primeros pasos

Primeros pasos.

La máquina que voy a a usar como servidor es donación de Cala, modificada con una placa base AMD de 35W de consumo que encontré en la basura y 16GB de RAM DDR3 que compré a muy buen precio en Ebay. El micro es un AMD 3850 APU con gráfica incorporada que consume muy poco, corre a  un máximo de 1,3 GHz y tiene cuatro núcleos lo que para un servidor pequeño, al que no se le va a dar mucha carga, es siempre importante pues no es tan necesaria la velocidad como la capacidad de poder hacer varias cosas al tiempo.

El sistema operativo elegido es Debian 10, gratuito y sin problemas de licencias. Es de los más usados en servidores web por su estabilidad, amplia documentación y comunidad activa en el soporte. Es fácil encontrar soluciones efectivas a los problemas que n os vayan surgiendo gracias a su amplia implantación.

Como servidor web elegí Apache, Nginx es la otra opcion disponible, y también se pueden usar los dos al tiempo para acelerar un poco las cargas, pero de momento no será necesario complicarse.

Para administrar el servidor usaremos una combinación de SSH con X11 forwarding para usar un entorno gráfico cómodo, que será XFCE4 por su ligereza y Webmin, una heramienta de administración web sencilla y potente que nos permitirá controlar muchos aspectos del servidor.

Uso una dirección de IPV6, que se puede hacer fija y única, ya que las direcciones IPV4 están prácticamente agotadas y aunque usaremos una dinámica que nos asigna del proveedor de Internet, no es algo necesario.

Para acceder desde fuera, veremos cómo configurar los registros DNS para que apunten al servidor, veremos cómo regitstrar un TLD alternativo en Open NIC y cómo usar un servico de DNS dinámico y un subdominio.

Hardware

Preparación del hardware.

No hace falta más que buscarle un sitio y conectar los cables. El único cable que deberíamos prestar atención es el de red, si el router está lejos, podemos hacer uno propio que vaya desde el router hasta el ordenador. Podemos hacer la ñapa nosotros mismos si nos sentimos animados, pedir ayuda a a amigos o contratar un técnico que instale el cableado.

 

Software

El Software.

Usaremos una serie de programas para servir páginas web y configurar la máquina, muchos no vienen preinstalados así que los iremos instalando  antes de abrir el servidor a la red.

SSHD, el demonio para acceder a ña consola de operación y administración del servidor.
Apache. El servidor web propiamente dicho, es potente, rápido y sencillo de configurar.
Xorg, XFCe4, lightgdm. El entorno gráfico, se puede usar remotamente.
Webmin. Herramienta de control y configuración de servidores a través de web, facilita mucho el mantenimiento del sistema, sus servicios, registros y configuraciones extra.
UFW y GUFW. Herramientas de gestión del Firewall, el firewall de Linux es bastante complicado de usar, esta herramienta lo simplifica de forma muy eficaz.
Geany. Potente editor de programación, nos vendrá muy bien a la hora de tocar ficheros de configuración.
MC (Midnight Commander). Herramienta de consola para navegar y manipular el sistema de archivos. Si bien usar comandos es más rápido, esta herramienta hace muy cómoda la manipulación y edicion de archivos, copiar, mover, descomprimir, cambios de permisos y retoques varios. Combinado con la consola es la herramienta ideal para tratar con archivos en Linux.
HTOP. Sencillo y potente gestor de tareas.
Synaptic. Herramienta gráfica de gestión de paquetes de software, muy sencilla de usar, complementa a la línea de comando cuando nos falta algún paquete y no sabemos excatamente su nombre.
Clamav. Aunque pocos, hay virus para Linux, mejor prevenir que curar.
Fail2Ban. Esencial, herramienta para detener entradas maliciosas al sistema. Junto con el firewall es la primera barrera de defensa, y es dura. Hay otras herramientas, pero no serán necesarias en un entorno privado y poco transitado.
Glogg. Visor de los archivos de registro, es de entorno gráfico y puede tener varios abiertos a la vez cuando queramos ver qué está pasando en el sistema.
El resto de las herramientas vienen generalmente preinstaladas, y si lo deseamos podemos añadir más a nuestra conveniencia.

Debian, en su instalación de red básica permite instalar el software que necesitaremos para el servidor. Lo primero es descargarse una imagen de instalación de su sitio web.

Descargada la imagen usaremos Rufus para hacer un disco de arranque, yumi, que es muy bueno para otras distribuciones, no funciona bien con Debian netinstall.

En esta entrada explico cómo preparar el USB de instalación para el instalador en red de Debian 10.

Una vez preparado, pondremos el medio de instalación (CD-ROM o USB) y arrancaremos desde él. Si no hemos configurado la BIOS para arrancar desde el medio, podemos probar a pulsar F12 que generalmente abre la interfaz de elección de disco de arranque, aún así explico cómo hacer para preparar el ordenador en orden a arrancar desde nuestro medio de instalación aquí.

El proceso de instalación es guiado y realmente sencillo, pero hay que tener en cuanta algunas cosas. Si le dejamos hacer BORRARÁ todo el disco donde lo instalemos, es mejor usar un disco nuevo o que sepamos que no contiene nada. Se pueden preparar de antemano particiones para guardar los datos que queramos salvar, pero eso ya es para otra guía y siempre es un proceso delicado. Cuando nos pregunte por el entorno gráfico lo mejor es elegir uno ligero como XFCE4 y Lightgdm ya que una vez arrancado el servidor ya no será necesario usarlo in situ, por eso elegimos un sitio ventilado para que esté fresco y donde no estorbe demasiado. En la misma pantalla donde pregunta qué entorno gráfico usaremos marcaremos que instale Apache y SSHD, que son el servidor web y el servidor que nos permitirá acceder remotamente al servidor.

Remoto

Software remoto.

Dependiendo de qué sistema tengamos como ordenador de trabajo necesitaremos unas herramientas u otras para poder acceder al host por SSH y X11.

– En Linux nos bastará con tener instalado un entorno gráfico y un programa de terminal con capacidad de acceder a ssh como el prinstalado openssh de línea de comando, o la versión Linux de Putty, que nos permitirá tener varias configuraciones guardadas y probar en vivo distintas configuraciones para ver bien los textos y traducción de teclas.

– En Mac, para el ssh podemos usar Putty o Cyberduck, para el entorno gráfico remoto xQartz nos permitirá usar las X11.

– En windows tenemos comando ssh, pero Putty es el más usado y cómodo por la capacidad de guardar configuraciones. Para usar el entorno gráfico tenemos varias opciones;

Instalar Cygwin con soporte X11, que de paso nos instalará en el sistema muchas utilidades Linux compiladas para windows. Cygwin es un proyecto veterano que desde casi los inicios de los PC permitía usar órdenes y compilar programas de sistemas *nix y comunicarse con ellos. Pero es demasiado para este proyecto, además ya tenemos acceso a un PC linux puro, sería redundante.

Lo que nos deja con dos opciones muy cómodas, Xming y VcXSrv, ambas casi iguales y totalmente funcionales.

Con un navegador web ya completamos todo el software necesario para configurar eñl servidor desde nuestro ordenador. hay opción de poder hacer esto en tabletas, pero no es muy estable y gasta muchos recursos, al menos de momento.

En el siguiente post explicaré cómo instalar el sistema operativo que usaremos.

Deja un comentario