Sumario
Puede que el servidor de linux, ubuntu server, sea el más popular y el más usado por desarrolladores y administradores de SO (Sistemas Operativos) a nivel global.
En parte por su calidad, excelente, por su código abierto y gratuito, por su gran comunidad de desarrolladores que no paran de mejorarlo y sacar nuevas versiones, etc…
En este post quiero mostraros la configuración que suelo realizar en él para lanzar páginas web a Internet y aplicaciones de servidor. También por qué no decirlo, porque así lo tengo esquematizado y listo para una posible nueva instalación y configuración.
Vamos a preparar un SO U.Server 18.04 desde cero, hasta dejarlo funcionando con varias páginas web, y alguna app.
¡¡¡Comencemos!!!
Paso 1º la primera vez que arranca nuestra máquina
Por lo general, estos servidores se suelen contratar a algún distribuidor de hosting, ya sea un servidor dedicado, un VPS (Sistema Virtual), o similares. Siempre que no hayamos sido nosotros los que hayamos realizado la instalación, nos vamos a encontrar con unos credenciales ya configurados, el password aleatorio que nos han proporcionado.
¿Cómo cambiar el password del usuario root de Ubuntu Server?
Si es así, lo primero que haremos será cambiar esas credenciales por unas que nos sean más familiares. Para ello, una vez que nos hayamos logueado en el sistema y haya arrancado, vamos a teclear los siguientes comandos:
sudo su, para loguearnos con las credenciales que nos hayan dado por defecto, el final del identificador de sesión ha cambiado de $ a #, eso significa que ahora somos usuario administrador con permisos especiales.
No es recomendable cambiar el nombre de usuario que nos hayan proporcionado, ya que esto implica realizar una serie de cambios, carpetas de usuario, grupos, etc… que podrían dar problemas, mi consejo es cambiar únicamente el password por uno nuestro que tengamos bien memorizado.
Tecleamos: “passwd” y seguimos las instrucciones.
OJO; esta contraseña se podría decir que es sagrada para el sistema, aseguraros bien de no perder la u olvidadla porque podría ser un gran problema…
Otro fallo muy común es que, el sistema operativo venga configurado con el teclado en inglés. Lo que significa que cuando pulsamos algunas teclas, sobre todo símbolos y caracteres especiales, éstos no funcionen y en su lugar se marquen otros distintos. Para arreglarlo hay que indicar al sistema que nuestro teclado es en castellano.
¿Cómo cambiar el idioma del teclado de Ubuntu Server?
Como siempre, logueados con usuario root, marcamos lo siguiente: “sudo dpkg-reconfigure keyboard-configuration” nos abrirá una interface gráfica como esta.
Escogeremos la opción marcada en rojo, “PC genérico 105 teclas (intl)”, y con ‘tabulador’ continuaremos.
Escogemos la opción marcada en rojo “Español”, ‘tabulador’ .
Y el resto de pasos, 3, los dejaremos como están por defecto, siguiendo siempre con ‘tabulador’ hasta que termine.
Una vez haya concluido y estemos de nuevo en la terminal, probaremos la tecla ñ, si la escribe es que está todo correcto y nuestro teclado listo para escribir con él en castellano.
Siguiendo con las configuraciones, otra muy común es la hora del sistema, por lo general siempre con dos horas de retraso con respecto a la hora de nuestro meridiano.
Tenemos que ajustarla
¿Cómo cambiar la hora del sistema operativo Ubuntu Server?
El comando $ date, nos va a indicar la fecha y la hora que tiene el sistema, si vemos que está mal tenemos que teclear: “dpkg-reconfigure tzdata” para que nos salga la interface gráfica de configuración.
En ella, las opciones serán “Europa” > “Madrid”, el resto lo hará el sistema de forma automática. Podemos comprobar que realmente se ha ajustado con “date”
Tras estos pasos, estamos casi listos para realizar la primera actualización de paquetes. Pero antes, me gusta instalar el paquete ‘aptitude’ para la gestión de paquetes, de actualización o de aplicaciones instaladas. También con una pequeña interface gráfica que nos puede ser muy útil para manejar aplicaciones o paquetes del sistema.
Tecleamos: “sudo apt-get install aptitude”
Ahora sí, ya podemos proceder a actualizar primero los paquetes instalados en el sistema.
Tecleando: “aptitude update”
Ya tenemos las dependencias de paquetes actualizadas, ahora vendría el paso de ‘upgrade’ que significa instalar nuevas versiones de aplicaciones o del propio sistema operativo.
Estas dos opciones suelen ser bastante seguras, pero antes de hacer un upgrade, vamos a ver cómo está configurado el sistema operativo con respecto a nuevas versiones completas del core del servidor.
¿Cómo marcar qué tipo de versiones queremos instalar en el sistema?
Esto lo podemos ver de la siguiente manera, si hacemos un list sobre la carpeta /etc/update-manager/
$ ls -la /etc/update-manager/
Vemos que en su interior hay un archivo de configuración llamado ‘release-upgrades’. Este archivo es el encargado de avisarnos si hay una nueva versión del SO, o si usamos una ‘lts’ (Long Time Suport) más estable y segura.
Hay que tener en cuenta que un servidor es un sistema que ha de funcionar 24/7 365, día y noche, y que una nueva versión del SO puede traer cambios importantes en las configuraciones internas que dan servicios para la red.
Mi consejo es ese, usar la ‘lts’ para asegurarnos que no nos vamos a llevar sorpresas inesperadas por una simple actualización de paquetes.
Otra práctica que suelo utilizar, es la de hacer una copia previa a la configuración, del archivo que vaya a editar, de esa forma siempre puedo volver atrás en caso de que algo salga mal.
Para hacer esto tecleamos: “cp /etc/update-manager/release-upgrades{,.bck130519}” con la fecha al fina por si tenemos que hacer otra copia posterior.
Ya tenemos copiada la versión original del archivo que vamos a manipular, así que ahora hacemos un “nano /etc/update-manager/release-upgrades”
Donde tenemos que fijarnos en la última línea, ‘Prompt‘ y ver que sea igual a lts, una vez cambiada tan solo tenemos que guardar el archivo mediante “CTRL+X” > “YES” > “Enter”. Y estará listo para hacer el upgrade.
Tecleamos “aptitude upgrade -y” para poner las últimas versiones de los paquetes instalados. Dejamos que trabaje porque por lo general suele descargar una buena cantidad de datos y suele tardar un poco, dependiendo de la velocidad de conexión a Internet, más o menos tiempo.
Por último, es muy habitual que por ejemplo, contratemos un servidor de X Gigas de capacidad de disco duro, pero después en la carpeta raíz del servidor tan solo nos aparecen 4 G disponibles, esto es debido a que no están expandidas las particiones del disco, y lo tenemos que ajustar cuanto antes.
¿Cómo podemos extender el volumen lógico / en Ubuntu Server?
Para comprobar la capacidad de nuestra partición de raíz tecleamos lo siguiente: “df -h”
Si nos fijamos, en mi caso la carpeta raíz está ocupando un 55% ya almacenado, y vemos que tiene una capacidad de 3,9G, algo ridículo teniendo en cuenta que el disco es de 20 G.
Hay que expandir el volumen lógico del disco para que “/” tenga la capacidad adecuada, en este caso la máxima posible. Pensemos que todo absolutamente todo lo que instalemos, creemos o configuremos va a estar bajo esa ruta raíz, bases de datos, páginas web, archivos de caché, de log, etc, etc… De esa forma, cuanto más espacio tenga más cosas podremos programar e instalar.
Para extender la partición haremos lo siguiente. Nos fijaremos en el nombre que le haya dado el sistema al Filesystem, en el ejemplo “/dev/mapper/ubuntu–vg-ubuntu–lv”
para poder teclear el siguiente comando: “lvextend -L +XG /dev/mapper/ubuntu–vg-ubuntu–lv” (donde la X será el número íntegro de Gigas que queremos incorporar)
Vemos que he indicado 10G de extensión, y que se ha aplicado de forma correcta.
Ahora vamos a aplicarlo definitivamente en el disco, tecleando lo siguiente: “resize2fs /dev/mapper/ubuntu–vg-ubuntu–lv”
Tras ello volvemos a marcar: “df -h” para comprobar que realmente hemos extendido nuestro volumen lógico y nuestro directorio raíz del servidor.
Vemos que ahora nuestro directorio raíz cuenta con 14G y está usando un 16% en comparación al 55% de antes.
Todo correcto.
Paso 2º Las primeras instalaciones
Hasta aquí, tenemos el sistema actualizado y versionado, nuestra propia contraseña de acceso, nuestro teclado bien configurado, y el archivo de versiones ajustado para no llevarnos sustos innecesarios, y el directorio raíz con una capacidad de almacenaje adecuada.
Ya podemos comenzar a instalar aplicaciones de servidor imprescindibles para su uso en Internet.
¿Cómo instalar el servidor Apache2 en Ubuntu Server?
Ahora vamos a instalar el paquete ‘LAMP’ (Linux Apache MySQL y PHP) para tener de verdad un servidor instalado. También un servidor DNS (Domain Name Server), un servidor SSH para poder conectarnos al servidor desde cualquier parte y un servidor de correo electrónico por si lo vamos a necesitar.
Para ello, primero vamos a instalar una miniaplicación gráfica llamada ‘tasksel’ que nos va a dar todas estas aplicaciones.
Tecleamos: “aptitude install tasksel”
Una vez esté instalado, bastará con teclear: “tasksel” para que se abra la interface gráfica con la lista de aplicaciones de servidor que podemos instalar.
Para seleccionar las que queramos instalar pulsaremos la tecla “Space” y se marcará con un asterisco.
Vamos a marcar las siguientes aplicaciones:
- Ubuntu Cloud Image (instance)
- DNS server
- LAMP server
- Mail server
- OpenSSH server
- Basic Ubuntu server
Y a marcar ‘tabulador’ > para que el sistema comience la instalación. Os pongo las capturas de pantalla con las opciones que nos va a preguntar y su significado.
1º- Configuración del servidor de correo. “Sitio de Internet” para poder ligarlo a un dominio inverso.
2º – El dominio por defecto en modo local para las direcciones de correo.
Por lo general suele ser igual al FQDN del servidor, (el dominio interno en local del servidor). Como todavía no hemos configurado el FQDN nos aparece el que se ve en la imagen, a mi particularmente me gusta que la terminación de los dominios locales (de testeos por ejemplo) terminen con .loc, por lo que cambiaré el .home por .loc. Más tarde cambiaré también el FQDN a .loc para que todo coincida.
Marco mvcserver.loc y le doy a .
En mi instalación no me ha preguntado nada más, se ha completado la instalación al 100% y he vuelto al promp del sistema. Aun que ahora tengamos que configurar las aplicaciones que hemos instalado. Eso lo veremos más adelante.
A continuación, vamos a revisar la configuración del ‘hostname’ de la máquina.
¿Cómo configurar el hostname de Ubuntu Server?
El hostname, es el nombre que tendrá nuestro servidor dentro de la red interna o local, de esa forma lo podremos identificar por ejemplo en configuraciones de redes o lands.
Para ver el hostname que tenemos actualmente tecleamos: “hostname” y nos devolverá el nombre del servidor dentro de la red.
Yo voy a cambiarlo a tutorialserver para que me sea más fácil identificarlo dentro de la lan. Para poder hacer esto tenemos que editar un archivo alojado bajo “/etc/hostname”, podemos ver su contenido marcando: “cat /etc/hostname”
Como siempre antes de editar su contenido realizo una copia de respaldo del archivo original: “cp /etc/hostname{,.bck130519}”
Después lo edito con: “nano /etc/hostname” y borro el contenido ‘mvcserver’ y escribo el nuevo hostname ‘tutorialserver’, “CTRL + X” > “Yes” > “Enter”.
A continuación tenemos que marcar el siguiente comando: “sudo hostnamectl set-hostname tutorialserver” con el nuevo hostname al final del comando.
Para terminar, tenemos que cambiar un parámetro del archivo “/etc/cloud/cloud.cfg”,
hacemos la backup del archivo: “cp /etc/cloud/cloud.cfg{,.bck130519}” y lo editams con “nano /etc/cloud/cloud.cfg”
Buscaremos
preserve_hostname: false
Cambíandolo por
preserve_hostname: true
Cerramos la sesión de usuario root con “exit” y volvemos a loguearnos con “sudo su” para ver que se ha cambiado el nombre del host.
Una vez ajustado el nombre del host nos falta ajustar el FQDN (Fully Qualified Domain Name) Se trata del nombre de dominio interno que tendrá el servidor para resolver llamadas en la red local al dominio interno del servidor.
El FQDN se encuentra alojado bajo “/etc/hosts” si vemos su contenido con: “cat /etc/hosts”
Para configurarlo de forma adecuada y siguiendo las anteriores configuraciones, tendremos que ver la ip interna que nos ha asignado nuestro router. Tecleando: “ifconfig”
Vemos que la interface ‘ens33’ que proporciona la conexión, marca la ‘inet’ 192.168.1.63, esa es la ip que debemos anotar. También es buena práctica entrar en la configuración del router, normalmente bajo 192.168.1.1, para indicar que esa ip y esa máquina van a tener la dirección interna estática, de esa forma la ip no cambiará cuando apaguemos y encendamos de nuevo el router, si no sabéis cómo hacerlo siempre podéis llamar al proveedor de Internet de turno y preguntarle que cómo se puede marcar una ip interna estática para uno de vuestros equipos conectados, seguro que con gusto os lo explican paso a paso.
Ahora que sabemos la ip, como siempre, copia de respaldo del archivo de configuración, “cp /etc/hosts{,.bck130519}”, y a continuación lo editamos con “nano /etc/hosts”.
Añadimos la ip junto con el nuevo FQDN para esa ip interna.
Justo en la 3º línea, y como siempre “CTRL + X” > “Yes” > “Enter”.
A partir de ahora si abrimos un navegador en cualquier dispositivo (tanto móviles como pcs) y tecleamos la url ‘http://tutorialserver.home’ veremos que nos carga la página por defecto de Apache2, indicando que el servidor está en funcionamiento y que todo ha salido bien.
Para terminar esta primera parte del tutorial de configuración de Ubuntu Server desde cero, vamos a realizar unas comprobaciones de resoluciones de red para asegurarnos que nuestra máquina es capaz de resolver direcciones ip, direcciones con nombre de dominio externo e interno.
¿Cómo hacer comprobaciones de red con Ubuntu Server?
Vamos a hacer una serie de ‘pings’ con el envío de 5 paquetes hacia diferentes resoluciones para ver que en todos ellos nos devuelva un envío exitoso y sin pérdida de paquetes.
1º – Ping hacia el localhost, hacia la propia máquina.
Comando “ping -c 5 localhost”
2º – Ping hacia nuestro loud pack, ip interna del servidor.
Comando “ping -c 5 127.0.0.1”
3º – Ping hacia nuestro hostname interno.
Comando “ping -c 5 tutorialserver”
4º – Ping hacia nuestro FQDN interno.
Comando “ping -c 5 tutorialserver.home”
5º – Ping hacia nuestra ip interna
Comando “ping -c 5 192.168.1.63”
6º – Ping hacia una ip proxy externa
Comando “ping -c 5 4.2.2.2”
7º – Ping hacia una url externa, nombre de dominio
Comando “ping -c 5 http://www.comercialseo.es”
Y con esto hemos concluido y comprobado que nuestro servidor es capaz de resolver tanto ips internas como externas, el hostname, el fqdn, los nombres de dominio, etc…
Importante a la hora de instalar aplicaciones para asegurarnos que no van a fallar en las conexiones que realicen en la red interna, en Internet, o en la propia máquina.
Terminamos aquí esta primera entrega de la configuración del servidor de Ubuntu desde cero hasta dejarlo funcionando con páginas web en Internet, con apps, bases de datos, etc…
Espero que sea de vuestro interés, seguimos pronto. Si tenéis cualquier duda podéis escribir un comentario para que la pueda resolver.
Gracias por la lectura.