Está en la página 1de 47

LABORATORIO DE

SISTEMAS OPERATIVOS

Periodo académico 2020 CI MG. FAUSTO RAUL OROZCO LARA


CAPITULO III:
CONFIGURACION DE
SERVICIOS

MG. FAUSTO RAUL OROZCO LARA


SERVICIOS O DEMONIOS
Un demonio en Linux, y de manera general en cualquier sistema tipo UNIX, es un proceso que se
ejecuta en segundo plano y es autónomo, de manera que no necesita interacción por parte de un
usuario del sistema para arrancar y funcionar.

Los demonios son útiles para hacer funcionar programas independientes de una sesión de usuario,
procesos que se inicien de manera automática cuando el sistema arranca, servicios que permanecen a
la escucha para ejecutar su tarea cuando son llamados.

MG. FAUSTO RAUL OROZCO LARA


SYSTEMD
Systemd es un administrador de sistemas y servicios para sistemas operativos Linux. Está diseñado
para ser compatible con versiones anteriores de los scripts de inicio de SysV, y proporciona una serie
de características como el inicio paralelo de los servicios del sistema en el momento del arranque, la
activación a demanda de daemons, la compatibilidad con las instantáneas del estado del sistema o
la lógica de control de servicio basada en la dependencia.

Systemd introduce el concepto de unidades systemd. Estas unidades están representadas por los
archivos de configuración de la unidad ubicados en uno de los directorios enumerados y encapsulan
información sobre los servicios del sistema, las tomas de escucha, las instantáneas del estado del
sistema guardadas y otros objetos que son relevantes para el inicio de sistema.
MG. FAUSTO RAUL OROZCO LARA
SYSTEMD
Existen siete tipos diferentes de unidades:

service: Demonios que pueden ser iniciados, detenidos, reiniciados o recargados.


socket: Esta unidad encapsula un socket en el sistema de archivos o en Internet. Cada unidad socket
tiene una unidad de servicio correspondiente.
device: Esta unidad encapsula un dispositivo en el árbol de dispositivos de Linux.
mount: Esta unidad encapsula un punto de montaje en la jerarquía del sistema de archivos.
automount: Encapsula un punto de montaje automático. Cada unidad automount tiene una unidad
mount correspondiente, que se inicia al acceder al directorio de automontaje.
target: Utilizada para la agrupación lógica de unidades. Referencia a otras unidades, que pueden
ser controladas conjuntamente, un ejemplo sería multi-user.target, que básicamente desempeña el
papel de nivel de ejecución 3 en el sistema clásico SysV.
snapshot: Similar a las unidades target.

MG. FAUSTO RAUL OROZCO LARA


DEFINIR Y CONFIGURAR EL DEMONIO CON SYSTEMD: UNIT FILES
En systemd los demonios se definen y configuran en los llamados archivos de unidad, unit files. Estos
archivos se alojan en /etc/systemd/system/. Por ejemplo, vamos a crear un demonio que se encargue
de iniciar y vigilar un hipotético script. Para ello usaremos lo que en el argot de systemd se llama
service, unit files con extensión .service:

MG. FAUSTO RAUL OROZCO LARA


CONOCER EL ESTADO DE LA TOTALIDAD DE SERVICIOS
Para obtener un listado de la totalidad de servicios y saber si están habilitados o deshabilitados
tenemos que ejecutar el siguiente comando en la terminal:
systemctl list-unit-files --type service --all

El significado de cada uno de los estados es el siguiente:


Enabled: El servicio está habilitado, se está usando o está disponible para su uso.
Disabled: El servicio está deshabilitado. Si lo necesitamos lo podemos habilitar sin mayor problema.
Masked: El servicio está completamente deshabilitado y no se puede iniciar de ningún modo sin
previamente desenmascararlo.
Static: Servicios que únicamente se usarán en el caso que otro servicio o unidad lo precise. Estos
servicios pueden estar activos o inactivos, pero siempre están disponibles para cuando se necesite
usarlos. Estos servicios no se pueden activar ni desactivar, pero se pueden enmascarar.
Generated: Servicio que ha sido iniciado a través de un initscript SysV o LSB con systemd generator.
MG. FAUSTO RAUL OROZCO LARA
OBTENER INFORMACIÓN DE LA TOTALIDAD DE SERVICIOS
Para obtener un listado de la totalidad de servicios, independientemente de si están activos o
inactivos, tenemos que ejecutar el siguiente comando en la terminal:
systemctl list-units --type service –all

La columna LOAD de este listado nos muestra información sobre si los servicios estan cargados o no.
El valor loaded indica que el archivo de configuración del servicio ha sido procesado. El valor not-
found indica lo contrario.

En la columna ACTIVE podremos ver si un servicio está activo o inactivo.

MG. FAUSTO RAUL OROZCO LARA


OBTENER INFORMACIÓN DE LA TOTALIDAD DE SERVICIOS
Finalmente, la columna SUB complementa la información de la columna ACTIVE detallando con más
precisión el estado de cada servicio. En esta columna podemos encontrar los siguientes valores:

running: El servicio está activo y ejecutándose en estos momentos.


exited: El servicio se ha ejecutado en algún momento, pero en estos momentos systemd no es capaz
de detectar si el servicio está corriendo. Este caso se acostumbra a dar cuando por ejemplo se carga
el fichero de configuración del servicio y a posteriori el servicio pasa a ser controlado por el kernel
sin la necesidad que ningún demonio esté corriendo.
dead: El servicio está completamente inactivo.

MG. FAUSTO RAUL OROZCO LARA


OBTENER INFORMACIÓN DE LOS SERVICIOS ACTIVOS
Para obtener un listado de la totalidad de servicios que actualmente están activos tenemos que
ejecutar el siguiente comando en la terminal:
systemctl list-units --type service

El resultado que obtendremos será parecido al siguiente:

MG. FAUSTO RAUL OROZCO LARA


AVERIGUAR SI UN SERVICIOS FALLA DURANTE EL ARRANQUE
Para obtener un listado de la totalidad de servicios que fallan al iniciar el sistema operativo hay que
ejecutar el siguiente comando en la terminal:
systemctl list-unit-files --state=failed
Una vez ejecutado el comando veremos los servicios y unidades que no se han podido iniciar durante
el inicio del sistema. En el caso de encontrar errores tendremos que buscar una solución.

MG. FAUSTO RAUL OROZCO LARA


COMANDO SYSTEMCTL
Ver estado de un servicio
# systemctl status firewalld.service

Iniciar servicio:
# systemctl start firewalld.service

Parar servicio:
# systemctl stop firewalld.service

Reiniciar servicio:
# systemctl restart firewalld.service

Recargar servicio:
# systemctl reload firewalld.service

Deshabilitar el servicio al inicio del SO


#systemctl disable firewalld.service
MG. FAUSTO RAUL OROZCO LARA
COMANDO SYSTEMCTL
Deshabilitar el servicio al inicio del SO
#systemctl disable firewalld.service

Habilitar el servicio al inicio del SO


#systemctl enable firewalld.service

Para visualizar errores al subir un servicio


#journalctl –xe

MG. FAUSTO RAUL OROZCO LARA


CONFIGURAR RED
Nombre de equipo
Durante el arranque del S.O. se establece el nombre de la máquina al ejecutarse el comando
hostname.

El archivo /etc/hostname contiene el nombre del equipo que adopta el S.O. al iniciar el equipo.
Los nombres de las máquinas pueden ser con cualificación completa, o relativos al dominio local.
web.dominio.local ftp.dominio.local
Son nombres de dominio completamente cualificados (FQDN)
web o ftp
Son nombres locales de una máquina, el primer componente del nombre.

MG. FAUSTO RAUL OROZCO LARA


FICHEROS PARA LA RESOLUCIÓN DNS
El fichero host.conf indica el orden de las fuentes que utilizará el resolver del S.O. para obtener las
resoluciones DNS que necesiten las aplicaciones del equipo. Tiene dos opciones:
Buscarlas dentro: Fichero /etc/hosts.
Buscarlas fuera: Fichero /etc/resolv.conf

El fichero /etc/host.conf indica al sistema de resolución qué servicios debe usar y en qué orden.
Las opciones del fichero host.conf deben estar en líneas distintas. Los campos deben separarse por
blancos
La opción order determina el orden en el que los servicios de resolución se prueba en primer lugar
para intentar resolver el nombre.

MG. FAUSTO RAUL OROZCO LARA


FICHEROS PARA LA RESOLUCIÓN DNS
El fichero /etc/hosts representa un mecanismo simple de resolución de nombres
Contiene un registro por línea, consistente en una dirección IP, un nombre de máquina y de forma
opcional, una lista de alias para esa máquina.
Los campos se separan por tabuladores o espacios y el campo con la @ IP debe empezar en la
primera columna.

MG. FAUSTO RAUL OROZCO LARA


FICHEROS PARA LA RESOLUCIÓN DNS
El fichero /etc/resolv.conf contiene las direcciones IP de las máquinas que pueden ofrecer servicios
DNS a nuestro host.
La instrucción nameserver apunta a servidores DNS que puede utilizar el host para realizar sus
resoluciones.

MG. FAUSTO RAUL OROZCO LARA


ARCHIVO /ETC/NETWORKS
Del mismo modo que con las direcciones IP, a veces también puede interesarle usar nombres
simbólicos para los números de red.
Con este objeto, el fichero /etc/hosts tiene un compañero llamado /etc/networks, que asocia
nombres de red con los números correspondientes y viceversa.

MG. FAUSTO RAUL OROZCO LARA


CONFIGURACIÓN INTERFAZ DE RED
Comandos utilizados para configurar las interfaces de red e inicializar la tabla de encaminamiento.
Ifconfig: Permite asignar una IP y otros parámetros a una interfaz, así como su activación. Por
activación nos referimos a permitir que el núcleo envíe y reciba datagramas IP a través de la
interfaz.
Route: Permite añadir o quitar rutas de la tabla de encaminamiento del núcleo.

El dispositivo de red loopback es una interfaz de red virtual que siempre representa al propio
dispositivo independientemente de la dirección IP que se le haya asignado. Su IP es 127.0.0.1.
Se utiliza en tareas de diagnóstico de conectividad y validez del protocolo de comunicación, así como
para indicar que el destino del puntero o URL es el mismo host

MG. FAUSTO RAUL OROZCO LARA


CONFIGURACIÓN INTERFAZ DE RED
La configuración de una interfaz Ethernet es más o menos igual que la de la interfaz de bucle local.
Nueva version: ip addr add 192.168.2.24/24 dev enp6s0 ó ip addr

La instrucción ifconfig de forma automática introduce una entrada en la tabla de encaminamiento que
informa al núcleo de que la red es accesible mediante enp0s3.

MG. FAUSTO RAUL OROZCO LARA


ENCAMINAMIENTO A TRAVÉS DE UNA PASARELA
Para hacer saber a la máquina Linux como alcanzar otras redes, se utiliza el concepto de pasarelas o
máquinas de enlace.
Estas pasarelas pueden unir dos o más Ethernets, pero también pueden enlazar con el exterior
(Internet)

MG. FAUSTO RAUL OROZCO LARA


SSH – SECURE SHELL
• Herramienta de control remoto de servidores
• El demonio sshd es el programa que escucha conexiones de red desde
clientes ssh, gestiona la autentificación, y ejecuta las órdenes requeridas por
el cliente
• Puerto default 22
• Paquete openssh-server
SSH – SECURE SHELL

• Lab: Verificación de paquete


SSH – CARACTERÍSTICAS

• Site: https://www.ssh.com
• Contrario a telnet
• Encriptación robusta en interacción
• Encriptación robusta en transmisión de archivos
SSH – MEJORES PRACTICAS

• Cambio de puerto default


• Uso de llaves
• Centralización de llaves
• Actualización de binarios
• Actualizar configuraciones/llaves encriptamiento
SSH – MEJORES PRACTICAS
• Lab: Verificación de puerto y encriptación: ssh -Q cipher / kex
SSH – VERIFICACIÓN DEL SERVICIO

• systemctl
• nmap (puerto)
• ps –ef
• systemd-cgtop
SSH – CONEXIÓN REMOTA - CLIENTES

• Utilitarios de conexión remota a servidores


• Puerto default 22
• Paquete openssh-clients
• Parte gráfica (win): putty/openssh/freessh
• Parte texo (linux): ssh
SSH – CONEXIÓN REMOTA - CLIENTES

• Lab: Verificación de paquete


SSH – CONFIGURACIÓN DE ARCHIVOS
• Lab: Cambio de puerto default del servidor a 27
• Verificación de puerto actual
• Cambio en el archivo /etc/sshd/sshd_config (previo respaldo)
• Verificación de nuevo puerto
• Seguridades al cambiar de puerto (/etc/selinux/config SELINUX=disabled)
SSH – VERIFICACIÓN DEL CAMBIO DE PUERTO

• systemctl
• nmap
• ps -ef
SSH – CONFIGURACIÓN DE ARCHIVOS CLIENTE

• Lab: Conexión desde un cliente linux


• Creación de usuario conexionssh password conexionssh y id 5000
• Test fallido de conexión y con parámetro –p 27
• Cambio de puerto en archivo /etc/sshd/ssh_config (previo respaldo)
• Configuración de puerto 27
• Seguridades al cambiar de puerto (/etc/selinux/config SELINUX=disabled)
• Test exitoso de conexión
SSH – CONFIGURACIÓN DE ARCHIVOS CLIENTE
• Lab: Conexión desde un cliente linux
SSH – CONFIGURACIÓN DE BANNER

• Validar usabilidad y riesgo


SSH – INTENTOS DE LOGIN

• Parámetro: MaxAuthTries
• Consultar valor actual
• Edición del archivo
• Refresh del servicio
• Conexión
SSH – TIEMPO DE LOGIN

• Parámetro: LoginGraceTime
• Consultar valor actual
• Edición del archivo
• Refresh del servicio
• Conexión
SSH – LISTA DE LOGIN
• Parámetro: AllowUsers/DenyUsers
• Consultar valor actual
• Edición del archivo
• Refresh del servicio
• Conexión
SSH – PERMITIR LOGIN CON USUARIO ROOT

• Parámetro: PermitRootLogin
• Consultar valor actual
• Edición del archivo
• Refresh del servicio
• Conexión
SSH – COPIAS SEGURAS
Comando: SCP
• FTP – PUT :

scp file-local user@host:/ruta-destino/file-remoto


scp –P [puerto] file user@hostname:remote-dir (Copia file a equipo remoto con
puerto distinto 22)
scp -r user@hostname:remote-dir localdir (Copia directorio a equipo remoto)

• FTP – GET :

• scp user@host:/ruta-origen/file-remoto file-local


SSH – COPIAS SEGURAS
• Lab (PUT):
• Mostrar infraestructura
• Creación de directorio /entrada y /salida
• Creación de un archivo en carpeta /salida llamado local.txt
• Copia de un archivo local (/salida) al servidor remoto /entrada (put)
/salida/local.txt user@host:/entrada/local.txt
SSH – COPIAS SEGURAS

• Lab (GET):
• Mostrar infraestructura
• Creación de directorio /entrada y /salida
• Creación de un archivo en carpeta /salida llamado remoto.txt
• Copia de un archivo remoto (/salida) a /entrada (Get)
user@host:/salida/remoto.txt /entrada/remoto.txt
SSH – HOST KEY
• Parámetro: HostKey
• Directorio /etc/ssh/
• Comando ssh−keygen −f /etc/ssh/ssh_host_key
• Verificación: Parámetro HostKey
SSH – LLAVES DE USUARIOS
• Servidor Origen:
• ssh-keygen -t rsa
• Verificación de archivos /home/.ssh/
• Verificación de permisos en /home/.ssh (700) y sus ficheros (644)
• Parámetros: PubkeyAuthentication
AuthorizedKeysFile
PasswordAuthentication
SSH – LLAVES DE USUARIOS
• Servidor Destino:
• Creación de directorio /home/userxxx/.ssh/
• Verificación de permisos en /home/.ssh (700) y sus ficheros (644)
• Adición de llave pública en archivo authorized_keys
SSH – INTERACCIÓN ENTRE SERVIDORES

• ssh user@server comando


ssh user@server systemctl status firewalld.service
ssh user@server cat /etc/passwd
ssh user@server cat /etc/shadow
SFTP – PROTOCOLO DE TRANSFERENCIA DE FICHEROS SEGURO
Copia seguras u obtención de archivos de equipos remoto con SFTP
sftp user@host
sftp –o Port=[puerto] user@host

Comandos que se pueden usar en SFTP


Preguntas

MG. FAUSTO RAUL OROZCO LARA

También podría gustarte