Categorías

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

Servidor Web casero – Instalación del software.

Sistema operativo

Instalación del sistema operativo.

Debian es una conocida distribución de Linux sencilla de usar y muy buena opción para un servidor. Usaremos la imagen de instalación en red por ser muy flexible a la hora de instalar programas y estar actualizada ya que baja directamente los paquetes de programas desde el servidor de la “distro”. Hay distribuciones orientadas a servidores, pero un servidor casero no va a tener la carga de uno dedicado y usaremos algunas opciones que no serían recomendables en un servidor completo, de hecho vamos a montar más una “estación de trabajo” con capacidades de servidor, que un servidor. Si necesitáramos ampliar el sistema bastaría con copiar los ficheros de configuración, archivos y bases de datos a un auténtico servidor, eso ya es un asunto que este manual no pretende cubrir por la complejidad del proyecto.

En la página de Debian bajaremos a nuestro ordenador de batalla la imagen adecuada al sistema de destino, en nuestro caso la AMD64. La grabaremos en un cd, o con Rufus podemos crear el instalador en un dispositivo USB.

Disponemos de un detallado manual de instalación en varios idiomas aunque realmente no hace falta mucho más que seguir las instrucciones que van dando las pantallas del instalador.

Se da por supuesto que el router tiene un firewall activado y los ordenadores de la red interna tienen también activado el suyo y tienen antivirus funcionando. Desde el momento en que definitivamente abramos el servidor a la red aumentará el tráfico hacia nuestro router y con él los ataques automáticos.

Ajustes de idioma

Ajustes de idioma

El programa de instalación nos mostrará distintas opciones para que indiquemos el idioma a usar y el teclado. Es más cómodo seleccionar un idioma y teclados iguales, pero se pueden configurar independientemente. En este ejemplo usamos el español de España.

Tras configurarlos probará el acceso a Internet para descargar las últimas versiones disponibles de los programas y descargará la información necesaria para continuar la instalación. Al acabar nos pedirá el nombre que le queremos dar a la máquina, podemos elegir el nombre de servidor web, o mejor uno para la red interna, así podemos filtrar algunos componentes que no queremos que salgan fuera de nuestra LAN.

Usuarios y zona horaria

Usuarios y zona horaria

Tras las acciones automáticas nos pedirá que introduzcamos una clave para el usuario “root”, al ser el usuario de administración deberíamos poner una clave larga, compuesta por números, letras mayusculas y minúsculas y caracteres al azar. Podemos usar un programa como “Keepass” para preparar una clav adecuada y guardarla en lugar seguro de antemano. Tras ello nos pedirá que introduzcamos los datos de un usuario normal, este es el usuario con el que nos conectaremos al sistema desde fuera para administrar el servidor, hacerlo con el administrador “root” no es recomendable y hay tareas, como compilar o instalar algunos programas que no debemos hacer desde “root” por seguridad.

Nos pedirá entonces una zona horaria para poner correctamente la hora del sistema, es importante tener la fecha y hora ajustadas correctamente o de lo contrario algunos programas de seguridad y encriptación pueden dar problemas. Además el instalador configurará la hora respecto a esta zona, y también intentará encontrar los servidores de paquetes y actualización más cercanos y rápidos con esta información.

Particiones

Particiones

Si el disco que vamos a usar es nuevo o no tiene nada que nos interese guardar, el particionado guiado es la opción que deberíamos elegir. Hará sóla la configuración y pasaremos a la siguiente etapa de instalación. En otro caso podemos querer reconfigurar el disco, o usar sólo una partición de las que tuviera. Las capturas de pantalla a continuación muestran las opciones que podemos elegir y el funcionamiento del particionador del instalador de Debian.

Haciendo doble click sobre las opciones elegidas, las activaremos.

Para formatear un partición haremos doble click sobre “Manual”.

Luego seleccionaremos la partición que queremos modificar y con doble click abrirmos sus opciones.

Haremos doble click en “Utilizar como” para seleccionar el sistema de archivos de la partición, Ext4 es la opción por defecto.

Luego haremos doble click sobre “Formatear Si/no” si queremos que formatee o no. Si tenemos datos anteriores en la partición y no queremos perderlos podemos montar la partición sin formatear.

Deberemos seleccionar un Punto de montaje para que la partición sea visible al arrancar. Si es la primaria lo más cómodo es montarla en “/” el directorio raíz. Las particiones se ven como directorios en Linux, y podemos montarlas incluso en directorios que ya existen.

Haremos doble click sobre “Sí, he terminado” para dar por hecha la configuración de la partición.

Si disponemos de mucha RAM o estamos instalando en una máquina virtual con discos virtuales, usar una partición de intercambio “Swap”, no nos aportará realmente muchas ventajas. El instalador siempre crea una por defecto, así que borrarla es buena idea.

Seleccionaleroms de la lista principal la partición que queremos eliminar, en este caso la de Intercambio (Swap), haremos doble click sobre ella y en la pantalla de configuración de la partición hacemor doble click sobre “Borrar partición” y aceptamos. Tras borrarla nos devolverá a la pantalla principal de particionado.

Al borrar una partición queda espacio sin asignar en el disco, podemos crear una nueva pertición y seguir los primeros pasos, o cambiar el tamaño de una existente para asignarle el espacio que ha quedado libre.

Haremos doble click sobre la partición a manipular, y en la pantalla de configuración de la partición, haremos doblre click sobre “Cambiar el tamaño de la partición“. nos preguntará si queremos guardar los cambios, diremos que sí y a continuación nos mostrará un campo de texto donde introducir el nuevo tamaño. Admite que se lo introduzcamos en megabytes “M”, gigabytes “Gb” o porcentaje, como queremos ocupar todo el espacio libre, introducimos “100%” y aceptamos.

Para finalizar el particionado haremos doble click sobre “Finalizar el particionado y escribir todos los cambios en el disco“, nos preguntará si queremos volver atrás, le diremos que no, y comenzará a formatear.

Una vez instalado el sistema podemos volver a particionarlo si no nos gusta como ha quedado, a lo largo de esta guía instalaremos “gparted” un programa de particionado mucho más sencillo e intuitivo que el del sistema con el que se pueden hacer todas estas operaciones más fácilmente.

Descarga

Tras el formateo nos preguntará si tenemos un CD adicional de instalación, le diremos que no. Preguntará por la zona geográfica para encontrar un servidor próximos, daremos continuar en ambas preguntas, si usamos proxy, escribiremos los datos de nuestro proxy en tal caso, continmuaremos y si quiere que enviemos los datos de paquetes que usamos a Debian para que organicen la gestión de los paquetes de forma más eficaz, respondemos lo que nos apetezca. y Esperamos a que baje e instale algunos programas antes de la última etapa de instalación.

Retoques finales

Retoques finales

Al finalizar de preparar los servidores de programas nos preguntará por los programas y servicios que queremos por defecto. Por defecto viene seleccionado un entorno de escritorio Debian, pero sin gestor de ventanas, elegiremos XFCE4 por consumir pocos recursos. En un servidor puro no deberíamos usar entornos gráficos para evitar consumir recursos, pero nuestra máquina no va a ser en principio una de mucha carga y le vamos a dar varios usos al tiempo, se trata de un entorno doméstico al fin y al cabo así que nos pondremos las cosas fáciles, y un entorno gráfico facilita muchas tareas.

Seleccionaremos también “Servidor web”, que nos instalará Apache2 y “Servidor SSH“, que usaremos para poder accededer desde otro ordenador al servidor y configurarlo. El ordenador con el servidor estará siempre encendido, pero no debemos usarlo como ordenador de escritorio, así que se puede poner en cualquier sitio ventilado y limpio para que no estorbe demasiado. No hace falta el servidor de impresión, aunque funciona mjy bien. Dejaremos las utilidades base del sistema, más tarde añadiremos otras.

Tras darle a continuar comenzará la instalación, le llevará un rato y tras eso nos preguntará si queremos añadir un gestor de arranque. Le diremos que sí, en caso de tener otro sistema operativo instalado en alguna partición o disco duro lo añadirá al menú de arranque sin problemas. Nos preguntará en qué disco lo queremos instalar, generalmente sda o sdb, pero debemos tener cuidado de no elegir el pincho de instalación o arrancará desde él.

Tras seleccionar el medio de arranque nos indicará que e ha instalado y nos pedirá que conformemos para reiniciar el ordenador, deberíamos desconectar y gyuardar el dispositivo con el que hemos instalado el sistema y dejar que reinicie. Si hemos elegido un entorno gráfico veremos una pantalla de bienvenida donde nos preguntará el usuario y la clave. En modo texto aparecerá una línea preguntando por el usuario.

 

Tras la instalación del sistema operativo entraremos con el usuario “root” y la clave que hayamos elegido ya que aún nos quedan unas cosas que configurar y por defecto el usuario normal que hemos creado al principio no tiene ningún permiso de administración. Nos preguntará si queremos usar la configuración por defecto, le diremos que sí. Tras eso abriremos una terminal, en el menú de aplicaciones encontraremos una, o también en la barra de abajo, el primer icono que parece un monitor.

Menu aplicaciones - terminal

En la consola introduciremos el comando:

Donde “usuario_creado” es el nombre de usuario que hemos hecho en la instalación. Con este comando hacemos que el usuario entre en el grupo de “sudoers”, un grupo que puede elevar sus permisos temporalmente para tareas de administración del sistema. Ya que por defecto el usuario “root” no puede acceder por ssh al sistema, y no le vamos a dar el permiso por ser algo peligroso, podemos administrar remotamente el sistema con un usuario que pueda hacer “sudo” sin tener que acceder como “root” y dejar una molesta puerta de entrada.1No tratamos de hacer el sistama más seguro del planeta, pero sí uno lo suficientemente seguro como para que el esfuerzo dedicado a romperlo respecto a la posible recompensa lo hagan poco atractivo para un ataque no automatizado.

Ahora cerramos la sesión desde el menú de aplicaciones y ya podemos apagar el monitor del servidor. Si nos hacen falta para otros dispositivos podemos también retirar el teclado y el ratón del ordenador donde hemos instalado el servidor. Desde este momento sólo necesitaríamos acceder físicamente a él para cambiar hardware, o solucionar problemas con el hardware de la máquina, reiniciarlo una vez a la semana tras un backup completo y de vez en cuando mirar si acumula polvo y limpiarlo.

Utilidades

Instalación de utilidades

Algunas de estas herramientas las usaremos a diario, algunas ocasionalmente y algunas quizá hasta olvidemos su existencia hasta el momento de ser necesarias. En todo caso es buena idea tenerlas todas a mano.

Utilidades cliente.

De la parte del cliente instalaremos aquellas necesarias para conectarnos al servidor, y comprobar la conexión. Pongo enlaces a los instaladores, no son realmente complicados de instalar, basta con ejecutar los programas de instalación.

Navegador web. Firefox, Waterfox, Palemoon, Seamonkey, Ópera, Edge, cualquiera de ellos nos vale. Waterfox y Palemoon admiten extensiones para usar FTP, Semonkey lleva incorporado un gestor de correo y un editor de páginas web bastante cómodo.

Cliente SSH. Instalaremos Putty, es un cliente con una intefaz de configuración gráfica, podemos configurar distintas sesiones para distintos servidores. Las utilidades que trae nos serán ñutiles para otros programas. Tiene versiones para Mac, Linux y Windows. En esta página tenemos las instrucciones para instalarlo en Mac. EN Linux podemos bajar los fuentes y compilar la última versión, o si no queremos complicarnos instalarlo como paquete, con por ejemplo el comando “apt install putty”. La página oficial de Putty nos ofrece instaladores para windows y descargar el código fuente.

Servidor de X windows. Es muy cómodo poder acceder al entorno de ventanas del servidor para editar configuraciones o usar aplicaciones que nos facilitan mucho las cosas, como gparted o gufw. Para eso tenemos que tener previamente instalado un servidor X11 en el ordenador de trabajo y conectarlo por ssh con X11 forwarding activado.
En windows podemos bien instalar Cygwin/X, aue además nos instalará muchos otros programas y utilidades, bien VcXsrv o bien Xming. Instalar VxXsrv es sencillo, basta con ejecutar el instalador.

En Linux basta con tener un entorno gráfico corriendo, para Mac se usa XQartz.

Auditoría de red. Una utilidad que nos servirá para comprobar la red y su seguridad muy popular es Nmap. En windows viene con su versión gráfica Zenmap, que nos ayudará a guardar los comandos y scripts que hayamos ejecutado previamente. Es muy compleja y completa, pero sólo usaremos las funciones más básicas para comprobar que todo funciona como debe y repasar algunos puntos en los cifrados. Esta es su página principal, desde la que podemos descargar el instalador o los binarios.

Hay muchas otras utilidades, como los sniffers y los crackers, pero a menos que sospechemos un ataque no serían necesarios. Son programas bastante complejos y su uso va más allá de lo que pretende este manual.

Cliente SQL. Usaremos un cliente capaz de conectar a distintos tipos de bases de datos, los programas del servidor no sólo usarán una base de datos, así que si queremos acceder a ellas tendríamos bien que usar un cliente para cada base de datos, o un cliente que permita acceder a todas ellas.

En windows podemos usar HeidiSQL, que se puede usar en Linux bajo Wine 4. Una opción multiplataforma es DBeaver con una lista muy interesante de bases de datos, otra opción, en Java, es Squirrel SQL.

Utilidades servidor

En esta parte la lista se amplia, antivirus, firewall, administradores del servidor, editor de textos, instalador, monitores de estado, monitor de registro utilidades de sistema de archivos, etc. También instalaremos programas y librerías necesarias para páginas dinámicas y aplicaciones web.

Lo primero será configurar Putty para conectarnos al servidor.

El programa nos ofrece una ventana de diálogo dividida en un menú de árbol a la izquierda, donde podemos seleccionar las opciones de conexión, que se editan en la parte derecha de la pantalla. Con la mayoría de las opciones por defecto funcionará perfectamente. Al arrancar siempre presenta el menú de conexión, un campo donde esribiremos la IP o el nombre del servidor al que queremos conectarnos, a su lado el puerto de conexión, por defecto el 22, y más abajo un campo para introducir el nombre de la sesión que queremos crear, y debajo de él una lista de sesiones guardadas. Cuando rellenemos el nombre de sesión y le demos guardar “Save” guardará la configuración de esa sesión. Seleccionando una sesión guardada y cargándola, podremos editar sus parámetros, si hacemos doble click sobre un nombre de sesión, iniciaremos una conexión.

En el árbol de la izquierda seleccionaremos “Connection->SSH->X11”, el menú de la derecha nos mostrará una casilla “Enable X11 forwarding” para habilitar el reenvío de X11. Dejaremos la opcion de “Mit-magic-cookie” seleccionada. Con esto podremos abrir programas del entorno gráfico del servidor en nuestro ordenador,

Volvemos al menú de sesión, y con el nombre de sesión que queramos usar cargado, le damos al botón save de salvar para que nos guarde las opciones que hemos seleccionado. Con esto ya podemos abrir una sesión daondo al botón de abrir ,”Open” que se encuentra en la parte inferior del diálogo.

Si nos conectamos por primera vez nos dirá que un servidor desconocido quiere instalar un certificado, aceptaremos “Accept”, y se nos abrirá una ventana de consola preguntando por el nombre de usuario, introduciremos el nombre de usuario y la clave para conectarnos, y ya tendremos la sesión de terminal segura abierta. Podremos introducir comandos y usar los programas que estén autorizados para el nivel del usuario.

Si no nos gusta el aspecto de la consola, podemos cambiar los colores yendo a “Window->colors” para seleccionar colores del texto y el fondo, y a “Window->Appearance” para combair la fuente. No es mala idea cambiar los colores para distinguir las dfistintas sesiones si vamos a entrar a distintos servidores o con distintos usuarios, podremos tener varias abiertas y saber por el color a qué conexión pertenecen.

 

Putty, capturas de pantalla

Para usar las ventanas X11 deberemos activar el servidor en nuestro ordenador, y si queremos iniciarlas como “root” debemos asignarle una autorización temporal al usuario para poder usar las ventanas en una sesión SSH.

Para iniciar el servidor en windows debemos usar el programa xlaunch.exe, nos presentará una serie de opciones que dejaremos por defecto, podemos guardar las opciones que hemos elegido en un fichero .xlaunch que podremos invocar haciendo un acceso directo para evitar volver a responder. Cuando se cargue aparecerá un icono en la barra de herramientas, con ratón derecho abrirmos un menú de control para cargar programas, poner las X a pantalla completa o cerrarlas.

xlaunch, capturas de pantalla
Volviendo a la consola de Putty, ahora podemos lanzar las X. Como vamos a tener que usar los permisos de administración durante un buen rato, lo mejor será tener activo el “root”.

Una forma de hacerlo sería usando el comando su para entrar en la cuenta. Tecleamos “su” introducimos la contraseña del usuario con el que hemos iniciado sesión, y cuando hayamos acabado, introducimos “exit”.

Otra sería iniciar una sesión de X11 como “root”, para poder hacerlo primero tenemos que dar autorización a las X para que “root” pueda conectarse en la sesión ssh. Para eso intoducimos el siguiente comando, cambiando “usuario” por el usuario con el que hayamos iniciado la sesión. Este comando copia el fichero de autorización al directorio de “root” de forma temporal, si la sesión SSH se cierra tendremos que volver a copiarlo.

Tras entrar la clave introduciremos el comando para iniciar el panel de Xfce4, desde él podremos acceder a las aplicaciones gráficas instaladas en el sistema, y por supuesto a la terminal de comandos, que va a ser necesaria en esta etapa de la configuración. Lo iniciamos con sudo para tener permisos de root, de otra forma tendremos los permisos de usuario normal, para compilar algunos programas, o ejecutar la mayoría, es recomendable entrar siempre con una sesión de usuario normal, algunas aplicaciones no se dejarán instalar si no hemos entrado como usuario sin permisos. Este caso es una excepción ya que tenemos que usar constantemente el usuario root.

Se cargarán en el escritorio los paneles de Xfce4, es buena idea configurarlos para que no estorben con el resto del escritorio. Si además abrimos más de una sesión, se pueden confundir.
Configurar el panel es sencillo, basta con pulsar con el botón dereco del raton sobre el panel de aplicaciones que queremos editar, y seleccionar la opción “Panel->Preferencias del panel” en el desplegable. Yo selecciono ocultar siempre el panel, deselecciono “anclar” para poder situarlo en cualquier parte de la pantalla y cambio el color en la pestaña de apariencia.

Panel Xfce4, capturas de pantalla
Ahora abriremos una terminal de comandos para empezar a introducir los comandos para instalar todo lo que tenemos que instalar. Antes de eso se puede configurar la ventana del emulador de terminal para ponerle colores personalizados y dedsactivar la tecla “F10”, que se usa en algunas utilidades de terminal y de otro modo quedaría capturada.
Terminal Xfce4, capturas de pantalla

Bien, todo listo para empezar a instalar. Primero hay que ajustar el gestor de paquetes para que encuentre aplicaciones que no sean de la distribución principal “main”, bien editamos el fichero de configuración , “/etc/apt/sources.list” y añadimos “contrib non-free” al final de cada línea de configuración, bien ejecutamos este comando.

Lo que hace es sustituir “s” cada ocurrencia de “main” por “main contrib non-free” en el fichero. El manual de sed y expresiones regulares explica el comando. Usaremos más expresiones regulares a lo largo de este manual.

Con el comando

actualizaremos los índices y la cache del gestos de paquetes ya que hemos cambiado la configuración y es buena idea refrescarlo.

Instalamos utilidades de desarrollo y las librerías del kernel que necesitaremos más adelante. $(uname -r) es para poner la versión del Linux que corremos.

Utilidades de sistema, “htop” es un gestor de procesos, mc es un gestor de archivos muy potente, gufw un sencillo y eficaz gestor gráfico del firewall, mlocate sirve para encontrar archivos rápidamente, glogg es un visor del log en entorno gráfico que puede usarse para ver varios a la vez, geany un editor de texto y programación muy cómodo, rsync y unison son utilidades para copiar en vivo y hacer copias de seguridad, gparted es un potente editor de particiones y babobab es un analizador de uso de discos gráfico. JQ es una utilidad para línea de comando que nos permite procesar json, muy útil para crear scripts de Bash.

Utilidades de vídeo, las usaremos para hacer “streams”.

Lenguaje de preogramación Perl, Python y librerías básicas.

Módulos de Apache y lenguaje PHP unto con librerías comunes de PHP.

Lets Encrypy y Certbot, para poder generar certificados TLS seguros y gratuitos.

Analizador de logs y estadísticas Webalizer y AWStats.

Comentamos todo el fichero cron de AWstats lo de poniendo # al principio de cada línea que no lo tenga ya con este comando:

Y finalmente un generador de entropía, bueno para generar claves.

Correo y FTP
Instalación del servidor de correo

Cuando nos pregunte por la configuración general, seleccionaremos sitio de Internet, el nombre del sistema será el del servidor que hayamos puesto al principio más el dominio.

 

Antivirus y antispam para el correo.

 

Instalación del servidor FTP

 

Estos dos servicios los configuraremos más adelante, según los vayamos necesitando.

Base de datos
Instalación de bases de datos

MariaDB es una evolución de MySQL con licencia totalmente libre que se ha ido abriendo paso. Para servidores web de baja y media carga es una opción muy popular.

Instalamos MariaDB y varias librerías de soporte en Perl y PHP. Instalamos además soporte fpm y fcgi para Apache, muchas aplicaciones lo necesitarán.

apt install mariadb-server mariadb-client mariadb-common php-fpm fcgiwrap libdbd-mariadb-perl libdbd-mysql-perl

Ahora activamos los módulos de Apache

Y reiniciamos el servidor para que los cambios surjan efecto.

Ahora vamos a configurar la base de datos para poder acceder a ella desde otro ordenador de forma segura. Introducimos el comando:

Y reiniciamos el servidor de bases de datos para que el cambio se active.

Necesitamos que MariaDB escuche todas las interfaces, editamos en fichero de configuración de MariaDB.

Ahora buscamos el siguiente texto, comentamos la línea que empeza con “bind-address”;

y añadimos esta.

Permitimos que root acceda desde fuera de las consolas.

Instalación de PostgreSQL

Webmin

Webmin es una aplicación de navegador que nos permitirá acceder a muchas funciones de mantenimiento y configuración de los servidores de forma sencilla. Está pensada para servidores pequeños y con pocos dominios, si necesitamos amplarla una opción interesante y compatible, que nos permite además importar las configuraciones ya hechas sería Virtualmin. Hay otras opciones, como ISPConfig3, Plesk o CPanel.

Para instalar webmin debemos primero editar el fichero de repositorios, de ese modo las actualizaciones serán más sencillas. Primero añadimos el repositorio de Webmin al final del fichero, bien editándolo, bien con este comando.

Descargamos en raíz el fichero de clave del repositorio

Y añadimos la clave al registro de claves de APT;

Si no está ya instalado, añadimos un paquete para que APT pueda manejar URLs con https;

Actualizamos el gestor de paquetes;

E instalamos Webmin;

Para acceder a webmin, lo haremos escribiendo la https://nombredeservidor:10000, donde nombredeservidor será el nombre que hayamos elegido en la instalación. El dominio es opcional.

Con esto ya tendremos todo lo necesario para poder hacer funcionar y ajustar el servidor. Siempre que haya que hacer un retoque o vigilar el funcionamiento tendremos a nuestra disposición una serie de herramientas que nos harán más liviana la tarea. Podemos comprobar que el servidor web funciona accediendo desde el navegador del servidor a http://localhost, o desde el ordenador de trabajo a http://[ip del servidor] o con el nombre de servidor que hayamos puesto en el instalador de Debian.


En el siguiente envío configurararemos el servidor web.

Deja un comentario