Guía Final – Instalar Linux Centos FÁCIL paso a paso

Tus procesos de sistemas deben estar respaldados por un fuerte servidor por lo que esta guía de como instalar Linux Centos de forma FÁCIL te ayudara en esto para que muy pronto puedas tener tu servidor opensource en producción.

Porque Linux Centos?

Linux Centos es un clon de RedHat Linux y es una distribución opensource especializada en servidor para ejecutar procesos.

Es muy confiable, utiliza systemd y es un referente a la hora de pensar en soluciones de código abierto.

Requerimientos de instalación Linux Centos

  • Procesador 64Bits (a partir de la 1804 ya no hay soporte para 32bits)
  • 1GB RAM (mas es mejor)
  • 10GB disco (mas es mejor)
  • Conectividad a internet
  • Mas información en el sitio oficial (wiki en ingles sobre Centos Server)

Guía Final – Como instalar Linux Centos FÁCIL paso a paso

-Comenzamos descargando el ISO desde el URL oficial y generando una USB booteable o un DVD para su instalación.

Mi recomendación es descargar el ISO CentOS por medio de la opción torrent, no recargamos servidores  de descarga a la vez que sera mucho mas rápido

-Al hacer boot, veremos un corto menú. Utilizaremos la segunda opción, Test this media & install CentOS 7

De esta forma verificaremos primero nuestro DVD o USB booteable y si esta ok, ahí si continuamos haciendo boot para instalar, créeme, te ahorrara dolores de cabeza

-Se realiza la verificación, si no tenemos problema con la imagen, continuara el boot de Linux Centos

-Se nos da la bienvenida al asistente de instalación. Buscamos en el listado el idioma en que queremos instalar

Podemos escribir en la caja de texto inferior y después elegir del listado de la derecha cual es el que necesitamos instalar. Damos click al botón Continuar

Resumen de instalación de Linux Centos

-El asistente nos mostrara un grupo de tareas a realizar antes de instalar Linux Centos

Las tareas marcadas en rojo estarán pendientes de alguna configuracion. Comenzamos dando click a Destino de la instalación

Como particionar disco Linux Centos

-En este paso debemos definir como vamos a particionar el disco (o los discos) donde instalaremos. Básicamente hay dos formas de hacerlo:

  • Configurar el particionado automáticamente: No se requiere conocimiento previo, el asistente borrara todo el contenido del disco y creara un esquema de forma automática
  • Voy a configurar las particiones: Es la opción para crear el esquema de particionado de forma manual. Debemos saber que formato usar, que tamaño darle a las particiones y donde montarlas. Es la forma mas flexible pero requiere de conocimiento. Útil para mantener otra partición (por ejemplo, una partición con Microsoft Windows) y tener dos OS en un único disco para usar uno u el otro dependiendo de nuestras necesidades pero es algo mas complejo de manejar por lo cual no lo recomiendo para novatos (aunque no es imposible, debes prestar mas atención a los pasos)

Para este articulo te mostrare como hacerlo de forma manual, mas flexible pero debes tener cuidado al hacerlo y ya saber, según tus necesidades (servidor web, servidor MariaDB, email server, etc), que esquema crearas

Ademas, podemos cifrar todo el disco (opción Cifrar mis datos), pero ese tema no lo tocare en este articulo

Puedes verlo aquí debajo en vídeo, ah, no se te olvide suscribirte a mi canal

Damos click al botón Listo para continuar

-Normalmente el asistente de particionado sugiere utilizar LVM, pero para esta guía utilizare Partición estándar

Le damos click a la caja y elegimos esta opción debajo de Nueva CentOS 7 instalación

-Ya elegido Partición estándar damos click al botón de + (mas) inferior

Siempre tener en cuenta el tamaño total de nuestro disco e ir haciendo los cálculos para que nos alcance para todas las particiones que queramos crear (el disco que uso para este articulo es de 25GB)

-Nuestra primera partición sera dedicada a EFI (si tu equipo es moderno, seguramente utiliza EFI para el BIOS)

En Punto de montaje elegimos biosboot y capacidad deseada podemos elegir desde 2Mb

Damos click al botón Añadir punto de montaje

-El esquema que creo es muy sencillo, ideal para un servidor de bases de datos, o email server

El tamaño de las particiones debería ser mayor, solo es un ejemplo que podrás tener en cuenta adaptándolo a tu equipo

  • biosboot EFI 2Mb. partición primaria
  • /var 7629Mb. partición primaria
  • / 12.11Gb. partición primaria
  • swap 3814Mb. partición primaria

Todas las particiones son primarias (Puedes tener máximo 4 primarias, por lo cual no veo necesario crear particiones extendidas)

Damos click al botón Listo

-Se nos muestra un resumen de cambios, verificamos este ok y damos click al botón Aceptar cambios

Configuramos la red y el nombre antes de instalar Linux Centos

-Aunque no esta marcado en rojo, damos click a Red & Nombre de equipo

-Escribimos un nombre en la caja Nombre de host (de la forma host.dominio) y damos click al botón Aplicar para modificar el default localhost

-Damos click al botón Configurar para definir como se conectara nuestro servidor opensource a la red

-Activamos la opción Conectarse automáticamente a esta red cuando este disponible en la pestaña General

-En la pestaña Ajustes de IPv4 podemos activar una conexión con ip fija o dinámica (el default es dinámica con DHCP)

Damos click al botón Guardar para salir guardando los cambios

-Si tu red tiene un DHCP server activo, Linux Centos automáticamente se conectara y nos aparecerán los datos reflejados en la ventana

Damos click al botón Listo

-Verificamos todo en el Resumen de la instalación de Linux Centos y damos click al botón Empezar instalación

Crear contraseña cuenta root

-Comienza la instalación pero mientras, debemos activar una contraseña para la cuenta root (administrador del sistema)

Le damos click al botón Contraseña de root

-Escribimos una contraseña robusta. El asistente nos dirá con código de colores que tan fuerte es

Damos click al botón Listo

Crear cuenta de usuario común en Linux Centos

-Como buena política de seguridad, no es bueno trabajar desde la cuenta root, sino, desde una cuenta común y solo utilizar root cuando queramos hacer algo que requiera privilegios de administrador

Damos click al botón Creación de usuario

-Para crear la cuenta se nos pide lo siguiente:

  • Nombre completo: Nombre del administrador
  • Nombre de usuario: Nombre para la cuenta de usuario
  • Hacer que este usuario sea administrador: Activarlo para que se incluya en el sudoers y pueda ejecutar comandos administrativos con sudo
  • Se requiere una contraseña para usar esta cuenta: Activado por seguridad
  • Contraseña: La contraseña de la cuenta
  • Confirmar la contraseña: Vuelve a escribirla, se te mostrara con un código de colores que tan robusta es

Damos click al botón Listo

-Continua la instalación de Linux Centos. Tiempo de ir por un café ☕

-Muy bien, ya tenemos instalado Linux Centos. Damos click al botón Reiniciar y retiramos el DVD o USB booteable

-Comienza el boot de Linux Centos, ya instalado en el disco de nuestro equipo

Como actualizar Linux Centos

-Lo primero que debemos hacer apenas nos logeamos por primera vez después de instalar Linux Centos, es actualizar nuestro OS

Para esto ejecutamos como root el comando

yum -y update

Como verificar versión de Linux Centos

-Hay varias formas, pero la mas rápida es ejecutar

cat /etc/centos-release

Esto nos mostrara que versión tenemos instalada y ejecutándose

Otros comandos útiles serian

memoria (usada, libre, total, etc): free

disco (filesystems en uso, tamaño, espacio libre, etc) df -h

Systemd Tutorial Centos

Por medio de comandos systemd administraremos nuestro recién instalado Centos Linux

Que es systemd?

systemd es un conjunto de demonios (daemons o servicios) de administración de sistema, bibliotecas y herramientas diseñados como una plataforma de administración y configuración central para interactuar con el núcleo del Sistema operativo GNU/Linux

Como listar o verificar servicios ejecutándose con Systemd

-Para listar los servicios “cargados” actualmente ejecutamos

systemctl

-Quieres ver todos los servicios, sin importar que estén o no ejecutándose

systemctl list-unit-files

-En tiempo real ver los servicios agrupados con su consumo de CPU, memoria, etc al mejor estilo del comando top

systemd-cgtop

-Verificamos el estado de un servicio ejecutando

systemctl status sshd

por ejemplo para el servicio openssh-server

-No sabes el estado de un servicio, puedes verificarlo sin usar status

systemctl is-active sshd
active

systemctl is-enabled sshd
enabled

Centos DHCP Server

-Una tarea muy solicitada para nuestros servidores opensource, es poder brindar el servicio de dhcp server para nuestra LAN

Con Centos Linux es relativamente fácil instalar y configurar el servicio.

Puedes verlo aquí debajo en vídeo, ah, no se te olvide suscribirte a mi canal

Instalamos Centos DHCP Server

-Primero instalamos el paquete
yum install dhcp firewalld

Configuramos Centos DHCP Server

-Y aunque la configuracion es sencilla, es mejor copiar un ejemplo y así evitamos equivocarnos en la sintaxis

En en el archivo de ejemplo veremos varios casos que podríamos acomodar a nuestra subred, en este caso configuraremos para un rango de ips, nuestro dominio internet y DNS a usar
cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf

-Editamos el fichero dhcpd.conf, asignaremos una ip fija (static) al equipo drivemeca-budgie identificándolo por su mac address. Una buena parte de los comandos quedaran con sus parámetros defaults

Haz el cambio según tu subred
vi /etc/dhcp/dhcpd.conf
option domain-name "drivemeca.com";
option domain-name-servers 1.1.1.1, 8.8.8.8;
default-lease-time 600;
max-lease-time 7200;
authoritative;

log-facility local7;

subnet 192.168.5.0 netmask 255.255.255.0 {
option domain-name-servers 1.1.1.1, 8.8.8.8;
option domain-name "drivemeca.com";
option routers 192.168.5.3;
option broadcast-address 192.168.5.255;
default-lease-time 600;
max-lease-time 7200;
range 192.168.5.20 192.168.5.99
}

host drivemeca-budgie {
hardware ethernet 00:30:67:cb:6c:3d;
fixed-address 192.168.5.5;
}

Ejecutamos Centos DHCP Server

-Ya configurado el servidor DHCP, activamos el servicio para que ejecute automáticamente cada vez que cargue nuestro Centos Linux

Seguidamente iniciamos el servicio y verificamos este ejecutándose correctamente

systemctl enable dhcpd
systemctl start dhcpd
systemctl status dhcpd
dhcpd.service - DHCPv4 Server Daemon
Loaded: loaded (/usr/lib/systemd/system/dhcpd.service; enabled; vendor preset: disabled)
Active: active (running) since dom 2018-10-28 21:05:42 UTC; 6s ago
Docs: man:dhcpd(8)
man:dhcpd.conf(5)
Main PID: 920 (dhcpd)
Status: "Dispatching packets..."
CGroup: /system.slice/dhcpd.service
└─920 /usr/sbin/dhcpd -f -cf /etc/dhcp/dhcpd.conf -user dhcpd -group dhcpd --no-pid

Reglas de firewall para Centos DHCP Server

-Activamos, iniciamos y verificamos ejecución de firewalld en centos linux
systemctl enable firewalld
systemctl start firewalld
systemctl status firewalld
firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
Active: active (running) since dom 2018-10-28 21:16:43 UTC; 6s ago
Docs: man:firewalld(1)
Main PID: 1014 (firewalld)
CGroup: /system.slice/firewalld.service
└─1014 /usr/bin/python -Es /usr/sbin/firewalld --nofork --nopid

-Abrimos el puerto 67 (dhcp) en las reglas iptables de nuestro servidor opensource

Reiniciamos el firewall para que tome los cambios
firewall-cmd --add-service=dhcp --permanent
firewall-cmd --reload

Habilitando o deshabilitando SELinux centos 7

Que es SELinux?

Security-Enhanced Linux (SELinux) es un módulo de seguridad para el kernel Linux que proporciona el mecanismo para soportar políticas de seguridad para el control de acceso, incluyendo controles de acceso obligatorios como los del Departamento de Defensa de Estados Unidos

Se trata de un conjunto de modificaciones del núcleo y herramientas de usuario que pueden ser agregadas a diversas distribuciones Linux

Su arquitectura se enfoca en separar las decisiones de las aplicaciones de seguridad de las políticas de seguridad mismas y racionalizar la cantidad de software encargado de las aplicaciones de seguridad

Prefieres verlo en vídeo? aquí debajo te muestro. Ah, y no olvides suscribirte a mi canal

Todo eso esta muy bien, pero a veces nos encontramos horas, días o mas luchando con un error hasta que como ultima opción deshabilitamos SELinux y todo comienza a funcionar sin problemas. Comencemos este SELinux tutorial

Directorio de SELinux Centos 7

-La configuracion de SELinux Centos 7 se encuentra en el directorio /etc/sysconfig/selinux que es un link simbólico a /etc/selinux (es decir, podemos trabajar directamente en /etc/selinux)

ls -la /etc/sysconfig/selinux
lrwxrwxrwx. 1 root root 17 nov 7 10:19 /etc/sysconfig/selinux -> ../selinux/config

ls -la /etc/selinux/
total 20
drwxr-xr-x. 5 root root 81 ago 16 12:10 .
drwxr-xr-x. 74 root root 8192 nov 7 10:39 ..
-rw-r--r--. 1 root root 547 nov 7 10:19 config
drwx------. 2 root root 6 nov 7 10:38 final
-rw-r--r--. 1 root root 2321 abr 11 2018 semanage.conf
drwxr-xr-x. 7 root root 215 nov 7 10:38 targeted
drwxr-xr-x. 2 root root 6 abr 11 2018 tmp

Verificar estado actual de SELinux Centos 7

-Tenemos dos formas de saber en que estado esta SELinux en nuestro servidor opensource actualmente

  • Verificar estado SELinux con comando getenforce (nos devolverá el estado que puede ser Enforcing, Permissivedisabled)

[root@vecen ~]# getenforce
Enforcing

  • Comprobar estado de SELinux con el comando sestatus. Este nos muestra un poco mas de información que getenforce

sestatus
SELinux status: enabled
SELinuxfs mount: /sys/fs/selinux
SELinux root directory: /etc/selinux
Loaded policy name: targeted
Current mode: enforcing
Mode from config file: enforcing
Policy MLS status: enabled
Policy deny_unknown status: allowed
Max kernel policy version: 31

  • Ademas, podemos ver mas información ejecutando sestatus en modo verbose

sestatus -v
SELinux status: enabled
SELinuxfs mount: /sys/fs/selinux
SELinux root directory: /etc/selinux
Loaded policy name: targeted
Current mode: enforcing
Mode from config file: enforcing
Policy MLS status: enabled
Policy deny_unknown status: allowed
Max kernel policy version: 31

Process contexts:
Current context: unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
Init context: system_u:system_r:init_t:s0
/usr/sbin/sshd system_u:system_r:sshd_t:s0-s0:c0.c1023

File contexts:
Controlling terminal: unconfined_u:object_r:user_devpts_t:s0
/etc/passwd system_u:object_r:passwd_file_t:s0
/etc/shadow system_u:object_r:shadow_t:s0
/bin/bash system_u:object_r:shell_exec_t:s0
/bin/login system_u:object_r:login_exec_t:s0
/bin/sh system_u:object_r:bin_t:s0 -> system_u:object_r:shell_exec_t:s0
/sbin/agetty system_u:object_r:getty_exec_t:s0
/sbin/init system_u:object_r:bin_t:s0 -> system_u:object_r:init_exec_t:s0
/usr/sbin/sshd system_u:object_r:sshd_exec_t:s0

Cambiar de modo SELinux

-Desde linea de comandos SELinux nos permite cambiar entre sus modos enforcing y permissive en tiempo real, sin deshabilitarlo o tener que reiniciar el equipo

  • SELinux modo permissive

setenforce 0
sestatus
SELinux status: enabled
SELinuxfs mount: /sys/fs/selinux
SELinux root directory: /etc/selinux
Loaded policy name: targeted
Current mode: permissive
Mode from config file: enforcing
Policy MLS status: enabled
Policy deny_unknown status: allowed
Max kernel policy version: 31

  • La otra variante de SELinux modo enforcing

setenforce 1
sestatus
SELinux status: enabled
SELinuxfs mount: /sys/fs/selinux
SELinux root directory: /etc/selinux
Loaded policy name: targeted
Current mode: enforcing
Mode from config file: enforcing
Policy MLS status: enabled
Policy deny_unknown status: allowed
Max kernel policy version: 31

Como deshabilito SELinux

-Para deshabilitar de forma permanente SELinux editamos el archivo config y modificamos SELINUX cambiando su valor a disabled

vi /etc/selinux/config
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of three two values:
# targeted - Targeted processes are protected,
# minimum - Modification of targeted policy. Only selected processes are protected.
# mls - Multi Level Security protection.
SELINUXTYPE=targeted

De igual forma, si queremos volver a habilitar (activar) SELinux en nuestro Centos Linux volvemos a editar el archivo config y cambiamos el valor de SELINUXenforcingpermissive

Siempre que hagamos este cambio, debemos reiniciar nuestro servidor para que tome efecto

Linux Centos es una formidable opción si estas buscando instalar un servidor opensource para tus proyectos y mas conociendo que es respaldado por RedHat, uno de los grandes del código abierto desde hace años.

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.