GNU/Linux LPIC-1 / 7 de Noviembre de 2018: udev, systemd y preparación examen LPIC-1

Hoy es la última clase del curso de LPIC-1.
Hacemos un repaso de udev, explicamos el systemd y hacemos tests de preparación para el examen oficial LPIC-1.

repaso udev:

https://usbguard.github.io/

Este programa usa reglas udev

BadUsb: lapiz USB con programa dentro, se comporta como si alguien metiera comandos: scripts.

USBGuard permite protegerse de BadUSB por ejemplo.

Keylogger por USB:

keylogger usb por hardware! almacena todo lo picado en el ordenador

Librerías compartidas

ldd => nos dice las librerías que usa el programa que le indiquemos:

so: system object (los DLL en Windows)

cat /etc/ld.so.conf -> le dice a todos los programas del sistema, dónde están las librerías que necesitan:

cat /etc/ld.so.cache => “Greatest hits” de las librerías

Si añadimos o quitamos rutas de librerías, tenemos que ejecutar después “ldconfig” para que re-lea todas las rutas de librerías. ldconfig: para no tener que reiniciar la máquina.

export LD_LIBRARY_PATH=/lib:/user/lib
Si temporalmente queremos poner más rutas, agregamos las rutas a esta variable de entorno y se usaran las del so.conf y las que aquí pongamos.

Va bien si eres programador y no quieres poner tus librerias en lka ruta de librerias del sistema: le agregamos una ruta de nuestras propias librerías.


systemd

Empezó siendo sólo el proceso 1, el proceso init, pero claro, ha evolucionado mucho! es una gran ameba.

https://github.com/q2dg/LPIC1/blob/master/Systemd.pdf

services: demonios

socket: elemento que tiene un puerto de red abierto, estarlo escuchando, pero él no es el programa, es el perrito guardian que está escuchando ese puerto y cuando alguien entra, pone el servicio en marcha
Los sockets levantan servicios bajo demanda.

systemd: sistema unificado para hacer varias cosas

3 estados básicos: apagado, encendido modo terminal, encendido modo gráfico

target: conjunto de servicios que se han de poner en marcha y otro conjunto de servicio sque se han de apagar

cat /etc/inittab => se usa si no se usa el systemd

run levels: eran los targets
run level 0: apagado
comando “init 0” cambiamos de target.
init 6: runlevel 6, reiniciar la maquina
init 3: modo texto
init 5: run level modo gráfico (target modo gráfico)

systemctl get-default: nos dice en qué run level (palabra antigua) estamos, en qué target estamos

poweroff == systemctl poweroff == systemctl ir al estado power off

unit “.timer” sustituye al Cron

unit “.service” son los demonios

systemctl list-units –type=service

sudo systemctl stop apache2

Para decir que en los próximos arranques se ponga en marcha:
sudo systemctl enable apache2

Si no queremos que se ponga en marcha en los inicios:
sudo systemctl disable apache2

sudo systemctl mask apache2 => lo deshabilitamos y prohibimos que se puede poner en marcha nunca
sudo systemctl unmask apache2 -> se vuelve a habilitar

ver si están habilitados o no servicios:
sudo systemctl is-enabled apache2 -> para saber si en los reinicisos, se pone en marcha

sudo systemctl is-active apache2 -> está activo?

Configuración de los servicios:
archivos .services
Pueden estar en la carpeta /lib/systemd/system

ficheros de configuracion de servicios

ls /etc/systemd/system

son los archivos que systemd leerá para saber como tiene que interactuar con ese programa cuando tu hagas un start, un stop, un enable, etc…

si hay un archivo service que se llama igual en los dos sitios, manda el que está en la carpeta etc.

type=forking->forking indica que es un servicio
type=simple->forzamos a que un programa convencional lo tenga controlado en systemctl

ejmpñlo nc (net cat) no tiene archivo service, no es un servicio!
nc -l -p 5555
El net cat no sabe ponerse en segundo plano. Tendríamos que invocarlo como type=simple.

tipo oneshoot->una sola vez

cuando hacemos systemctl start apache2, realmente haecmos lo que indica ExecStart. Lo mismo para ExecStop.

Restart=on-abort => ¿en qué casos voy a reiniciar automáticamente el servicio? (por ejemplo si ha habido un CTRL+C)

systemctl start ssh es ejecutar esto: /usr/sbin/sshd -D $SSHD_OPTS, como dice el ExecStart

man systemd.service

man system.unit

plantillas:
cat /lib/systemd/system/ssh@.service

sudo systemctl start ssh@pepito => poder arrancar el servicio de una manera diferente, según lo que panemos después de la @

Exámenes

https://www.exam-labs.com/exam/101-400#tutorial

wall :write all

/proc/cmdline -> indica los parámetros con los que se arrancan el kernel

si añadimos el parámetro systemd.unit = rescue.target, ya entramos con loas minimas opciones, pero como root sin contraseña

configuracion del SysV: /etc/inittab

Carpeta donde están los repos en un sistema Red Hat: ls /etc/yum.repos.d/*.repo

En un sistema Debian: cat /etc/apt/sources.list

splash: animacion en la carga del sistema (es un parámetro del kernel)

apt va a internet busca mira las dependencias y descarga
dpkg instala

sudo apt get postfix

sudo dpkg-reconfigure postfix => reconfigura el paquete! (ejemplo, configuracion cups, etc….)

scripts para la ayuda a la monitorización

“inotify-tools is a C library and a set of command-line programs for Linux providing a simple interface to inotify. These programs can be used to monitor and act upon filesystem events. “

HIDS, Sistema de detección de intrusos en un Host. Busca detectar anomalías que indican un riesgo potencial, revisando las actividades en la máquina (host). Puede tomar medidas protectoras. Las funciones de este tipo de software son muy similares a las de los IDS.

SWAP: partición de disco duro usado como ram

Deshabilitar swap: swapoff
Activarla: swapon

yum update OJO! no actualiza la lista de reprositiorios!!! actualiza el sistema
Hace la actualizacion del sistema y es equivalente al yum upgrade

rm -rf == rmdir

touch… funcion real: cambia la fecha del archivo! ( tocar! 🙂 )

tee: bifurcador: hace las 2 cosas a la vez: muestra Hola y lo escribe en a.txt

2> -> salida de error
1> -> salida normal, es lo mismo que >
0 es la entrada

>> agrega
> sobre-escribe

SIGINT = señal 2 = Ctrl+C

FHS: standar que dice dónde están las cosas

egrep = grep -E -> permite usar más expresiones regulares que las permitidas normalmente -> ponemos en marcha el grep con todo el arsenal.

Hector Moreno S.->compi LPIC-1

Mi certificado de realización del curso Linux LPIC-1: