Como instalar y configurar Ubuntu Server 18.04 LTS

Como instalar y configurar Ubuntu Server 18.04 LTS

Como instalar y configurar Ubuntu Server 18.04 LTS
5 (100%) 1 vote
Canonical, empresa a cargo de Ubuntu Linux en sus versiones Desktop y Server nos trae una nueva versión, la 18.04, bautizada como Bionic Beaver y este sera el tema de nuestro articulo el día de hoy, como instalar y configurar Ubuntu Server 18.04 LTS paso a paso.

Que trae de nuevo Ubuntu Server Bionic Beaver

  • Kernel 4.15 con mayor soporte de hardware
  • OpenJDK en versión 10, mas moderno
  • Mejoras en la seguridad. Parches para las ultimas vulnerabilidades como son Spectre y Meltdown
  • Actualización a versión 2.1 o superior del protocolo CIFS/SMB usado para montar volúmenes Microsoft
  • Mejoras en modulos de configuracion de red
  • Nuevo asistente de instalación (Subiquity) de solo 9 pasos. OJO, no trae soporte para LVM, RAID. Si lo necesitas, debes descargar tu ISO desde este URL oficial
  • Manejo de contenedores con LXD versión 3.0
  • QEMU versión 2.11.1
  • libvirt versión 4.0
  • Open vSwitch versión 2.9
  • chrony en reemplazo de ntpd
  • MAAS versión 2.4b2
  • nginx versión 1.14.0
  • PHP 7.2.x
  • Apache versión 2.4.29
  • OpenStack Queens

Y mucho mas que puedes consultar a profundidad en el articulo oficial de release 18.04 Bionic Beaver

Requisitos mínimos de Ubuntu Server Bionic Beaver LTS

  • Imágenes ISO disponibles para AMD64, ARM, POWER8, LinuxONE y z Systems
  • 384Mb de RAM (mas es mejor)
  • 1.5Gb de disco (mas es mejor)
  • Tarjeta de vídeo con resolución mínima de 640 x 480 (mas es mejor)
  • Unidad de DVD o puerto USB
  • Tarjeta de red con conectividad a internet

Instalación Ubuntu Server 18.04 Bionic Beaver LTS

-Comenzamos descargando el ISO de Ubuntu Server 18.04 desde el URL oficial

Te lo muestro en vídeo. No olvides suscribirte a mi canal en YouTube

-Creamos un DVD o USB booteable y hacemos boot en el equipo a instalar

Si el servidor sera instalado en una maquina virtual, este paso seria copiar o descargar el ISO en el manejador de maquinas virtuales o contenedores

Al hacer boot nos saldrá en pantalla por unos segundos dos iconos esperando que presionemos cualquier tecla

Al hacer boot Ubuntu Server esperara que presionemos alguna tecla
Al hacer boot Ubuntu Server esperara que presionemos alguna tecla

-Seguidamente veremos un listado de idiomas. Elegimos el que queremos usar para instalar y presionamos Enter

Se nos muestra un listado de idiomas disponibles, elegimos y presionamos Enter
Se nos muestra un listado de idiomas disponibles, elegimos con cual instalar y presionamos Enter

-Nos aparece un breve menú donde elegiremos la primera opción, Instalar Ubuntu Server

Ademas, podemos comprobar la integridad del disco desde el que estamos instalando, comprobar memoria RAM o arrancar desde el primer disco duro presente en el equipo (opción muy útil cuando por alguna razón se nos daño el sector de arranque y no hace boot el equipo)


Presionamos Enter

Elegimos la primera opción del menu para iniciar la instalación
Elegimos la primera opción del menú para iniciar la Ubuntu server 18.04 instalación

-Comenzamos a instalar Ubuntu Server 18.04 en el nuevo asistente creado por Canonical para Bionic Beaver

Este proceso es de solo 9 pasos y al final ya estará instalado nuestro servidor opensource

En el primer paso elegimos, nuevamente, el idioma por medio del cursor del teclado para instalar Ubuntu Server y presionamos Enter

Elegimos idioma de instalación de Ubuntu Server en el asistente de 9 pasos
Primer paso: Elegimos idioma de instalación de Ubuntu Server en el asistente de 9 pasos

-En el siguiente paso elegimos la distribución de nuestro teclado

Esta puede tener variantes por lo cual elegimos Layout y Variant

En caso dado podemos utilizar la opción de Identify keyboard para que el asistente detecte la distribución de forma automática (mi recomendación es que lo hagas de forma manual)

Elegimos distribución del teclado del servidor
Segundo paso: Elegimos distribución del teclado del servidor linux

-En mi caso en especial, el teclado que utilizo es Español latinoamericano

Presionamos Enter y buscamos la distribución presionando la tecla Espacio sobre la que queramos utilizar

Buscamos la distribución de teclado dentro del listado y presionamos Espacio para activarla
Buscamos la distribución de teclado dentro del listado y presionamos Espacio para activarla

-Ya seleccionada la distribución de nuestro teclado, bajamos por medio del cursor del teclado y presionamos Enter sobre Hecho (también podríamos presionar Alt H)

Al final nuestra distribución de teclado debe quedar correctamente seleccionada
Al final nuestra distribución de teclado debe quedar correctamente seleccionada

-Ahora Ubuntu nos permite instalarlo para servicios MAAS en la nube (cloud) ademas de la tradicional instalación

Presionamos Enter sobre la opción Instalar Ubuntu

Podemos instalar Ubuntu Server 18.04 de forma tradicional o en el cloud
Tercer paso: Podemos instalar Ubuntu Server 18.04 de forma tradicional o en el cloud

-Seguidamente debemos definir como se conectara nuestro servidor opensource

En caso de haber varias tarjetas de red, estas serán mostradas

Seleccionamos la que usaremos y esta por default se conectara por medio del protocolo DHCP

Si todo esta correcto bajamos por medio del cursor del teclado a Hecho y presionamos Enter (o presionamos Alt H) para continuar

Seleccionamos y activamos la tarjeta de red a usar por nuestro servidor linux
Cuarto paso: Seleccionamos y activamos la tarjeta de red a usar por nuestro servidor linux

-Llegamos al 5to paso (aunque el asistente dice que es el 4to) donde podemos configurar la salida a internet por medio de un proxy si fuera el caso

Si la salida es directa dejamos en blanco (el default) y bajamos por medio del cursor del teclado a Hecho (o la combinación Alt H) y presionamos Enter

Si nuestro servidor saldra a internet por medio de un proxy, en este paso lo configuramos
Quinto paso: Si nuestro servidor saldrá a internet por medio de un proxy, en este paso lo configuramos

Como particionar Ubuntu Server 18.04


-Momento para definir como particionaremos el disco duro de nuestro servidor. Tenemos dos opciones:

  • Use An Entire Disk: Usar completamente el disco, no se requiere conocimiento por parte nuestra porque el asistente hará todo el trabajo de forma automática. La información que haya en el disco se perderá porque el asistente lo formateara y tomara completo para Ubuntu
  • Manual: Nos permite crear un esquema de particionado a nuestro gusto o necesidad. Debemos conocer que estamos haciendo porque seleccionaremos formato de filesystem, tamaño de particiones y donde se montaran. Útil si ya el disco (o discos) tienen información que no queremos perder

Presionamos Enter

Prefieres verlo en vídeo? Aquí debajo te muestro como particionar Ubuntu Server

No olvides suscribirte a mi canal

Elegimos como particionar el disco del servidor linux
Elegimos como particionar el disco del servidor linux

-Se nos mostrara un listado de los discos en el equipo

Presionamos Enter sobre el que instalaremos

Seleccionamos el disco duro sobre el que instalaremos Ubuntu Server
Sexto paso: Seleccionamos el disco duro sobre el que instalaremos Ubuntu Server

-Vemos un resumen de las operaciones que se harán con el disco

Verificamos este correcto y bajamos con el cursor del teclado a Hecho (o presionamos Alt H) y presionamos Enter para continuar

En caso de querer hacer algún cambio, podemos restablecer (es decir, borrar el esquema de particionado elegido) y volver a comenzar usando la opción Restablecer

Verificamos el resumen de particionado de disco antes de realizarse
Verificamos el resumen de particionado de disco antes de realizarse

-Se nos pide confirmación para crear las particiones y formatear

Elegimos con el cursor Continuar y presionamos Enter

Confirmamos el particionado y formateo de disco
Séptimo paso: Confirmamos el particionado y formateo de disco

Como crear una cuenta de usuario al instalar Ubuntu Server

-Creamos una cuenta de usuario para administrar nuestro servidor con los siguientes datos:

  • Su nombre: Nombre de la persona
  • El nombre del servidor: Una palabra (hostname) que identificara el equipo en tu red
  • Elija un nombre de usuario: El nombre de usuario
  • Elija una contraseña: Escribe una contraseña fuerte, lo suficientemente larga y compleja
  • Confirme la contraseña: Vuelve a escribir la contraseña
  • Importar identidad SSH: Tienes una cuenta en Github o Launchpad? En esta opción puedes importar tus llaves. Al hacerlo se habilitaría el campo Import Username

Presionamos Enter sobre Hecho

Creamos una cuenta de usuario para administrar nuestro Ubuntu Server 18.04 opensource
Octavo paso: Creamos una cuenta de usuario para administrar nuestro Ubuntu Server 18.04 opensource

-Llegamos al final de la instalación en solo 9 pasos y podemos leer un resumen de todo lo hecho

Presionamos Enter sobre Reiniciar ahora

Terminamos la instalación de nuestro servidor Linux
Noveno paso: Terminamos la instalación de nuestro servidor Linux

-Comienza el reinicio del servidor

Se nos pide retirar el medio de instalación (USB booteable, DVD o ISO) y presionar Enter

Retiramos el DVD o USB para reiniciar el servidor
Retiramos el DVD o USB para reiniciar el servidor

Iniciando Ubuntu Server LTS

-Al hacer boot por primera vez nuestro servidor linux nos mostrara al final una serie de mensajes que puede que te sorprendan pero no hay de que preocuparse

Son mensajes de ssh al crearse nuestras llaves para la cuenta de usuario creada al instalarse

Te puede sorprender ver en pantalla la creación de tus llaves ssh en Ubuntu Server 18.04
Te puede sorprender ver en pantalla la creación de tus llaves ssh en Ubuntu Server 18.04

-Presionamos Enter y nos logeamos con nuestra cuenta de usuario

Nos logeamos con nuestra cuenta de usuario en nuestro servidor opensource
Nos logeamos con nuestra cuenta de usuario en nuestro servidor opensource

Como actualizar Ubuntu Server LTS

-Un servidor actualizado es un equipo que no estará expuesto a bugs de software, sera estable y mas seguro por lo cual es MUY recomendable mantenerlo al día y que sea la primera tarea al logearnos por primera vez

Ejecutamos los siguientes comandos:

sudo apt update
sudo apt dist-upgrade

Se nos pedirá nuestra contraseña de usuario por el uso del comando sudo lo cual nos permitirá ejecutar estos comandos como root (administrador del OS)

Por medio de sudo actualizamos nuestro servidor Linux Ubuntu
Por medio de sudo actualizamos nuestro servidor Linux Ubuntu

-Ya tenemos totalmente actualizado y listo para producción nuestro servidor Linux Ubuntu Server Bionic Beaver 18.04 LTS

Ya actualizado nuestro servidor Ubuntu 18.04 esta listo para producción
Ya actualizado nuestro servidor Ubuntu 18.04 esta listo para producción

Ubuntu DHCP Server

Un protocolo casi indispensable que te ahorrara tiempo de administración de tus equipos en red es DHCP y en Ubuntu Server 18.04 es relativamente sencillo instalarlo y configurarlo como te mostrare a continuación

-Ejecutamos el siguiente comando en consola para instalar nuestro Ubuntu DHCP Server

sudo apt install isc-dhcp-server

-Modificamos la configuracion prestado especial atención a la interfaz de red, en este ejemplo, la enp0s8 (haz el cambio a la de tu ubuntu server)

No usaremos en este ejemplo interfaz tcpv6, por lo cual no la escribimos

sudo vi /etc/default/isc-dhcp-server
DHCPDv4_CONF=/etc/dhcp/dhcpd.conf
DHCPDv4_PID=/var/run/dhcpd.pid
INTERFACESv4="enp0s8"
INTERFACESv6=""

-Creamos el rango de ips en la subred de nuestra interfaz de red a repartir por medio de nuestro Ubuntu DHCP Server

Parámetros a configurar:

  • subnet: Subred a usar con su mascara de red
  • range: Grupo consecutivo de ips que repartirá Ubuntu DHCP Server (ip-menor-inicio ip-mayor-final)
  • option domain-name-servers: DNS a usar
  • option domain-name: Dominio internet que usaran nuestros equipos(hostname.domain-name)
  • option routers: Gateway o puerta de salida a usarse por los equipos
  • option broadcast-address: Direccion broadcast de la subred
  • host <nombre-equipo>: Asignación de ip fija por medio de su MAC address

sudo vi /etc/dhcp/dhcpd.conf
ddns-update-style none;
#authoritative;
default-lease-time 300;
max-lease-time 1200;
log-facility local7;
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.50 192.168.1.70;
option domain-name-servers 192.168.1.1;
option domain-name "drivemeca.com";
option routers 192.168.1.1;
option broadcast-address 192.168.1.255;
}
#IPs reservadas estáticas
host CLIENT3 { hardware ethernet 08:00:27:0f:5f:fd; fixed-address 192.168.1.10;
}

-Reiniciamos el servicio y verificamos su ejecución correcta

sudo systemctl restart isc-dhcp-server
sudo systemctl status isc-dhcp-server

Ubuntu sudoers

No hay nada mas peligroso que estar trabajando todo el tiempo desde la cuenta root en un servidor Linux

La solución es agregar nuestro usuario (o crear) al fichero sudoers y así poder utilizar el comando sudo cuando queramos ejecutar comandos con privilegios de root

-Si no tienes aun la cuenta, la creamos (para este ejemplo creare la cuenta drivemeca)

adduser drivemeca

-Verificamos la creación de nuestra cuenta de usuario común mirando el contenido de /etc/passwd

cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
sys:x:3:3:sys:/dev:/usr/sbin/nologin
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/usr/sbin/nologin
man:x:6:12:man:/var/cache/man:/usr/sbin/nologin
lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin
mail:x:8:8:mail:/var/mail:/usr/sbin/nologin
news:x:9:9:news:/var/spool/news:/usr/sbin/nologin
uucp:x:10:10:uucp:/var/spool/uucp:/usr/sbin/nologin
proxy:x:13:13:proxy:/bin:/usr/sbin/nologin
www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin
backup:x:34:34:backup:/var/backups:/usr/sbin/nologin
list:x:38:38:Mailing List Manager:/var/list:/usr/sbin/nologin
irc:x:39:39:ircd:/var/run/ircd:/usr/sbin/nologin
gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/usr/sbin/nologin
nobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin
syslog:x:100:102::/home/syslog:/usr/sbin/nologin
systemd-network:x:101:106:systemd Network Management,,,:/run/systemd/netif:/usr/sbin/nologin
systemd-resolve:x:102:107:systemd Resolver,,,:/run/systemd/resolve:/usr/sbin/nologin
messagebus:x:103:108::/nonexistent:/usr/sbin/nologin
postfix:x:104:109::/var/spool/postfix:/usr/sbin/nologin
_apt:x:105:65534::/nonexistent:/usr/sbin/nologin
sshd:x:106:65534::/run/sshd:/usr/sbin/nologin
uuidd:x:107:113::/run/uuidd:/usr/sbin/nologin
drivemeca:x:1000:1000:Manuel Cabrera Caballero,,,:/home/drivemeca:/bin/bash

Quieres verlo en vídeo, aquí debajo te lo comparto. No olvides suscribirte a mi canal en YouTube

-Agregamos la nueva cuenta de usuario al fichero sudoers con permisos para ejecutar el comando sudo

usermod -aG sudo drivemeca

-Ingresamos a la nueva cuenta

su -l drivemeca

-Probamos el permiso sudo ejecutando un comando que requiere privilegios de root, ejemplo, verificar actualizaciones de paquetes en nuestro ubuntu server con el comando apt

sudo apt update
[sudo] password for drivemeca:
Hit:1 http://archive.ubuntu.com/ubuntu bionic InRelease
Get:2 http://archive.ubuntu.com/ubuntu bionic-updates InRelease [88.7 kB]
Get:3 http://archive.ubuntu.com/ubuntu bionic-security InRelease [83.2 kB]
Fetched 172 kB in 1s (129 kB/s)
Reading package lists... Done
Building dependency tree
Reading state information... Done
All packages are up to date.

Ya tenemos una cuenta de usuario común con permisos para sudo en el archivo sudoers.

Ubuntu deb. Como buscar paquetes

Existen varias formas para buscar paquetes deb para nuestro servidor Ubuntu Linux

Estos deb pueden ya estar instalados o no ademas de poder buscar por medio de un file (ejemplo, un .conf, o un .c, etc) para finalmente llegar al paquete necesitado

Te lo muestro en vídeo. No olvides suscribirte a mi canal en YouTube

Ubuntu apt-file

apt-file puede decirte a qué paquete pertenece un archivo dado, esto incluye tanto los paquetes instalados como los que aún no lo están

-Por default no viene instalado por lo cual para usarlo primero debemos instalarlo en nuestro servidor Ubuntu

sudo apt install apt-file

-Seguidamente debemos actualizar sus indices

sudo apt-file update

-Ya actualizados sus indices podemos buscar (por ejemplo, que paquete .deb debo instalar para wget)

Se nos mostrara de la forma

  • paquete a instalar: path del archivo buscado finalmente

sudo apt-file search wget
abs-guide: /usr/share/doc/abs-guide/examples/wgetter2.bash.gz
bash-completion: /usr/share/bash-completion/completions/wget
cclib-data: /usr/lib/python2.7/dist-packages/cclib/data/wget.sh
cclib-data: /usr/share/pyshared/cclib/data/wget.sh
cupt-dbg: /usr/lib/debug/usr/lib/cupt4-2/downloadmethods/libwget.so
emscripten: /usr/share/emscripten/tests/test_wget.c
epic4-script-lice: /usr/share/epic4/lice/lice/lice.wget.gz
epic5-script-lice: /usr/share/epic5/lice5/lice/lice.wget
firejail-profiles: /etc/firejail/wget.profile
fish-common: /usr/share/fish/completions/wget.fish
fp-units-misc-3.0.4: /usr/lib/x86_64-linux-gnu/fpc/3.0.4/units/x86_64-linux/fppkg/pkgwget.o
fp-units-misc-3.0.4: /usr/lib/x86_64-linux-gnu/fpc/3.0.4/units/x86_64-linux/fppkg/pkgwget.ppu
fpc-source-3.0.4: /usr/share/fpcsrc/3.0.4/packages/fppkg/src/pkgwget.pp
fvwm-crystal: /usr/share/fvwm-crystal/fvwm/Applications/Network/File_Transfer/~gwget2~Download_Manager
gmusicbrowser: /usr/share/gmusicbrowser/simple_http_wget.pm
gnome-colors-common: /usr/share/icons/gnome-colors-common/16x16/apps/gwget.png
gnome-colors-common: /usr/share/icons/gnome-colors-common/22x22/apps/gwget.png
gnome-colors-common: /usr/share/icons/gnome-colors-common/24x24/apps/gwget.png
gnome-colors-common: /usr/share/icons/gnome-colors-common/32x32/apps/gwget.png
gnome-colors-common: /usr/share/icons/gnome-colors-common/scalable/apps/gwget.svg
gnustep-base-doc: /usr/share/doc/gnustep-base-doc/examples/Examples/wgetopt.h
kde-baseapps-data: /usr/share/kde4/services/useragentstrings/wgetoncurrent.desktop
kio: /usr/share/kservices5/useragentstrings/wgetoncurrent.desktop
wget: /etc/wgetrc
wget: /usr/bin/wget
wget: /usr/share/doc/wget/AUTHORS
wget2: /usr/bin/wget2

Es la forma mas básica de buscar con apt-file, aun así puedes mirar mas formas consultando su manual

man apt-file

Ubuntu dpkg

dpkg es un gestor de paquetes para sistemas basados en Debian

Puede instalar, eliminar y crear paquetes, pero a diferencia de otros sistemas de administración de paquetes, no puede descargar e instalar automáticamente paquetes o sus dependencias

-Este comando ya viene instalado por default y podemos usarlo de la siguiente forma (para buscar el .deb de wget)

sudo dpkg -S wget
language-pack-en-base: /usr/share/locale-langpack/en@quot/LC_MESSAGES/wget.mo
wget: /usr/share/doc/wget/NEWS.gz
wireless-tools: /usr/share/man/man8/iwgetid.8.gz
wget: /usr/bin/wget
wireless-tools: /usr/share/man/fr.ISO8859-1/man8/iwgetid.8.gz
wireless-tools: /usr/share/man/fr.UTF-8/man8/iwgetid.8.gz
language-pack-es-base: /usr/share/locale-langpack/es/LC_MESSAGES/wget.mo
libperl4-corelibs-perl: /usr/share/perl5/newgetopt.pl
language-pack-en-base: /usr/share/locale-langpack/en_GB/LC_MESSAGES/wget.mo
wget: /usr/share/doc/wget/MAILING-LIST
wireless-tools: /usr/share/man/cs/man8/iwgetid.8.gz
wireless-tools: /sbin/iwgetid
wget: /usr/share/doc/wget/changelog.Debian.gz
wget: /usr/share/man/man1/wget.1.gz
wget: /usr/share/info/wget.info.gz
wget: /usr/share/doc/wget/AUTHORS
wget: /usr/share/doc/wget/README
language-pack-en-base: /usr/share/locale-langpack/en_AU/LC_MESSAGES/wget.mo
wget: /etc/wgetrc
wget: /usr/share/doc/wget/copyright
language-pack-en-base: /usr/share/locale-langpack/en@boldquot/LC_MESSAGES/wget.mo
bash-completion: /usr/share/bash-completion/completions/wget
wget: /usr/share/doc/wget

-Otra variante es buscar con el path incluido (continuamos con el ejemplo de wget)

sudo dpkg -S /usr/bin/wget
wget: /usr/bin/wget

De esta forma podemos buscar paquetes .deb estén o no instalados ya en nuestro Ubuntu Server 18.04

Como crear un SSL auto firmado para Apache en Ubuntu Server 1804

Hoy en día podemos decir que todas las aplicaciones o desarrollos web se exigen que sean con SSL

Desde los navegadores (chrome, firefox, etc) hasta el propio Google te califican si tienes o no un sitio seguro con SSL

El problema es que no siempre podemos contar con un certificado para desarrollos o pruebas y es donde nos puede servir un SSL auto firmado
Te lo muestro en vídeo. No olvides suscribirte a mi canal en YouTube

En que se diferencia un SSL normal a uno auto firmado?

Básicamente un SSL normal es respaldado por una entidad en internet, sea godaddy, let’s encrypt, etc mientras que uno auto firmado es creado por nosotros mismos para nuestra LAN o desarrollos internos

OJO, un SSL auto firmado no es valido en internet, solo para nuestro consumo interno

Generamos un SSL auto firmado Apache

-Por medio del comando openssl generaremos un certificado SSL auto firmado por 365 días

Esta tarea nos llevara a que finalmente tendremos una llave y el certificado después de escribir los datos que nos solicita

Haz los cambios según tu servidor (para este ejemplo mi servidor Ubuntu usa la ip 192.168.5.104)
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/apache-selfsigned.key -out /etc/ssl/certs/apache-selfs.crt
[sudo] password for drivemeca:
Generating a 2048 bit RSA private key
................+++
....................+++
writing new private key to '/etc/ssl/private/apache-selfsigned.key'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:CO

State or Province Name (full name) [Some-State]:Distrito Capital


Locality Name (eg, city) []:Bogota


Organization Name (eg, company) [Internet Widgits Pty Ltd]:DriveMeca


Organizational Unit Name (eg, section) []:Sistemas


Common Name (e.g. server FQDN or YOUR name) []:192.168.5.104


Email Address []:info@drivemeca.com

Directorio de certificados y llaves: /etc/ssl

Personalizamos configuracion de SSL auto firmado

-Para mayor seguridad y flexibilidad, haremos unos cambios en la configuracion de SSL

Deshabilitaremos la funcionalidad HSTS
sudo vi /etc/apache2/conf-available/ssl-params.conf
SSLCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH
SSLProtocol All -SSLv2 -SSLv3 -TLSv1 -TLSv1.1
SSLHonorCipherOrder On
Header always set X-Frame-Options DENY
Header always set X-Content-Type-Options nosniff
SSLCompression off
SSLUseStapling on
SSLStaplingCache "shmcb:logs/stapling-cache(150000)"
SSLSessionTickets Off

Personalizamos virtualhost de apache

-Antes que nada, haremos una copia del fichero default-ssl.conf, así si después quieres devolver cambios podrás hacerlo sin problemas
sudo cp /etc/apache2/sites-available/default-ssl.conf /etc/apache2/sites-available/default-ssl.conf.bak

-Seguidamente modificamos el fichero con el virtualhost SSL

Presta atención a las lineas del crt y key
sudo vi /etc/apache2/sites-available/default-ssl.conf
<IfModule mod_ssl.c>
<VirtualHost _default_:443>
ServerAdmin info@drivemeca.com

ServerName 192.168.5.104

DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
SSLEngine on
SSLCertificateFile /etc/ssl/certs/apache-selfs.crt

SSLCertificateKeyFile /etc/ssl/private/apache-selfsigned.key

<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
<Directory /usr/lib/cgi-bin>
SSLOptions +StdEnvVars
</Directory>
</VirtualHost>
</IfModule>

Activamos redireccion http a https

-Ya con los cambios anteriores aun podemos conectarnos al puerto 80 (http) pero no al puerto 443 (https)

Editamos el file default y agregamos una linea redirect que direccionara todas las conexiones http a https
sudo vi /etc/apache2/sites-available/000-default.conf
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
Redirect "/" "https://192.168.5.104/"

..

Activamos los módulos SSL y headers de Apache

Seguidamente activaremos el virtualhost con SSL
-Comenzamos activando mod_ssl, el modulo SSL de Apache y mod_headers y aunque nos pide reiniciar Apache, aun no lo haremos
sudo a2enmod ssl
Considering dependency setenvif for ssl:
Module setenvif already enabled
Considering dependency mime for ssl:
Module mime already enabled
Considering dependency socache_shmcb for ssl:
Module socache_shmcb already enabled
Module ssl already enabled

sudo a2enmod headers
Enabling module headers.
To activate the new configuration, you need to run:
systemctl restart apache2

-Activamos el virtualhost con SSL
sudo a2ensite default-ssl
Enabling site default-ssl.
To activate the new configuration, you need to run:
systemctl reload apache2

-También necesitamos ssl-params para que active los cambios que hicimos
sudo a2enconf ssl-params
Enabling conf ssl-params.
To activate the new configuration, you need to run:
systemctl reload apache2

-Verificamos no hayan errores en la configuracion (algún carácter mal escrito, path, etc)
Aunque en la primera linea dice que ServerName no esta correcto podemos dejarlo así o modificar /etc/apache2/apache2.conf colocando nuestra ip o domain
Esto eliminaría ese mensaje, aunque repito, no es obligatorio ya que respondió Syntax OK
sudo apache2ctl configtest
AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 192.168.5.104. Set the 'ServerName' directive globally to suppress this message
Syntax OK

-Ahora si, reiniciamos el servicio Apache2
sudo systemctl restart apache2

Probamos conexiones https con SSL auto firmado

-Abrimos un navegador y nos dirigimos al URL https://IP-servidor-ubuntu/

Por lo general te saldrá una alerta ya que los navegadores no confían en los SSL auto firmados, lo aceptamos y continuamos

Aunque el navegador nos alerta, en este caso aceptamos el SSL auto firmado
Aunque el navegador nos alerta, en este caso aceptamos el SSL auto firmado

-Si damos click al candado en la barra superior del URL podemos ver a detalle nuestro SSL auto firmado con los datos que lo creamos

Al inspeccionar el SSL auto firmado veremos los datos con que fue creado
Al inspeccionar el SSL auto firmado veremos los datos con que fue creado

Activamos de forma permanente solo conexiones https en Ubuntu Server 18.04

-Si ya confirmamos que funciona bien el https y queremos solo dejar ese tipo de conexiones
Eliminar las conexiones http es sencillo, solo modificamos el redirect para que sea permanente
sudo vi /etc/apache2/sites-available/000-default.conf
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
Redirect permanent "/" "https://192.168.5.104/"

..
-Verificamos nuevamente que toda la configuracion de apache este correcta
sudo apache2ctl configtest
AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 192.168.5.104. Set the 'ServerName' directive globally to suppress this message
Syntax OK

-Reiniciamos el servicio por ultima vez
sudo systemctl restart apache2

Con lo cual ya contamos con un certificado SSL auto firmado Apache en nuestro servidor Ubuntu

Ubuntu Server 18.04 Bionic Beaver llega con nuevo asistente de instalación con solo 9 pasos.

Es rápido y sencillo para que lo puedas tener listo en muy poco tiempo.

Que te pareció este articulo? Ya usas el OS opensource de Canonical? Hablemos aquí debajo en los comentarios

Satisfech@ con el articulo, hazme una donación, no importa la cantidad, la intención es lo que vale, dale click a este botón

Comparte este articulo opensource en tus redes sociales (compartir es sexy) por medio de los botones de redes sociales para que otros lo conozcan y apoyes mi blog.

Ademas, no olvides escribirme en los comentarios aquí debajo y pasa la voz compartiendo el tweet.

Evangelizador del opensource. Ataco el stress con un videojuego o viajando en mi motocicleta.

Escribe tu comentario

Please Login to comment
  Suscribete  
Notificación de