Bienvenidos a este capítulo del Curso de Linux para Hackers – Gestión de Servicios desde la Shell. Comparte este articulo y síguenos para recibir más capítulos y cursos gratis.
Esta guía es parte de un curso mucho más grande en donde te enseñamos a convertirte en hacker de 0 a 100. Desde los conocimientos más básicos hasta conseguir empleo.
En esta guía veremos desde cero un tema tan amplio como es Linux y lo haremos desde el punto de vista del hacking y la ciberseguridad.
Para saber más comente a continuación, respondemos todos y cada uno de los comentarios.
¿Te gustaría enterarte de cuando lanzamos descuentos y nuevos cursos?
Conceptos que aprenderás en esta sección:
- Administración de servicios con
systemctl
: cómo iniciar, detener, habilitar y deshabilitar servicios del sistema. - Verificación del estado de servicios: comprobar el estado de los servicios para asegurarse de que estén activos o detenidos.
- Configuración de firewall para servicios específicos: cómo permitir la comunicación a través de puertos específicos (como el puerto 80 para Apache).
- Ejercicio práctico con MariaDB: pasos para instalar, configurar y habilitar el servicio MariaDB y abrir el puerto de firewall para el acceso remoto.
Administración de Servicios
El proceso con PID 1 llamado systemd, dijimos que este proceso arranca una serie de servicios del sistema operativo de los cuales hacemos uso normalmente, tanto como usuarios comunes o como administradores del sistema. Además de iniciar los servicios al arranque del sistema, ―systemd nos permite administrarlos de una forma muy conveniente y sencilla.
systemd
es el sistema de inicio y gestor de servicios predeterminado en la mayoría de distribuciones modernas de Linux, como Ubuntu, Debian, CentOS y Fedora. Su propósito principal es administrar el arranque del sistema, manejar procesos y servicios, y también gestionar recursos y dependencias de una manera centralizada.
Comandos Básicos de systemd
La herramienta principal para trabajar con systemd
en la terminal es systemctl
, que permite administrar servicios y obtener información sobre el sistema y el estado de los procesos.
Aquí tienes los usos más comunes de systemd
y ejemplos de cómo utilizar systemctl
.
Administración de Servicios
- Iniciar un servicio: Para iniciar un servicio específico, usa el siguiente comando. Por ejemplo, para iniciar
nginx
:sudo systemctl start nginx
- Detener un servicio: Esto detendrá el servicio de inmediato. Siguiendo con el ejemplo de
nginx
:sudo systemctl stop nginx
- Reiniciar un servicio: Útil cuando necesitas reiniciar un servicio después de cambios en su configuración:
sudo systemctl restart nginx
- Recargar la configuración de un servicio sin interrumpirlo: Si el servicio permite la recarga de configuración sin necesidad de reiniciarse, puedes utilizar:
sudo systemctl reload nginx
- Habilitar un servicio para que inicie al arranque: Este comando asegura que el servicio esté activo cada vez que el sistema arranque:
- s
udo systemctl enable nginx
- s
- Deshabilitar un servicio para que no inicie al arranque: Esto detiene el servicio de iniciar automáticamente al arrancar:
sudo systemctl disable nginx
- Reiniciar el servicio solo si está activo: Para evitar interrupciones en servicios que no están en ejecución, usa:
sudo systemctl try-restart nginx
- Iniciar un servicio solo si está detenido: Este comando inicia el servicio solo si no está en ejecución actualmente:
sudo systemctl start nginx || echo "Nginx ya está en ejecución"
Verificar el Estado de Servicios y Unidades
- Comprobar el estado de un servicio: Esto muestra información detallada sobre el estado del servicio, incluyendo errores recientes y registros:
systemctl status nginx
- Ver el estado de todos los servicios: Para obtener una lista de todos los servicios, su estado y si están activados para iniciar al arranque:
systemctl list-units --type=service
- Ver dependencias de un servicio: Para conocer las dependencias de un servicio y cómo se relaciona con otros procesos:
systemctl list-dependencies nginx
- Monitorear servicios fallidos: Esto muestra todos los servicios que han fallado desde el último arranque:
systemctl --failed
3. Gestión de Unidades de systemd
- Recargar
systemd
para aplicar cambios: Después de editar o crear archivos de unidad, recargasystemd
para aplicar los cambios:sudo systemctl daemon-reload
- Verificar y depurar dependencias de una unidad: El siguiente comando muestra las dependencias de una unidad y puede ayudarte a identificar posibles problemas en el arranque:
systemctl show -p After <unidad>
4. Control de la Secuencia de Inicio
- Reiniciar el sistema: Para reiniciar el sistema operativo completo con
systemd
:sudo systemctl reboot
- Apagar el sistema: Este comando apaga el sistema usando
systemd
:sudo systemctl poweroff
- Cambiar a un «target» específico: Los «targets» en
systemd
son como los «runlevels» en sistemas SysV, definiendo estados específicos del sistema (comographical.target
omulti-user.target
). Para cambiar al modo multiusuario (sin interfaz gráfica):sudo systemctl isolate multi-user.target
- Ver y cambiar el nivel de ejecución o «target» predeterminado: Puedes verificar cuál es el «target» actual con:
systemctl get-default
- Y cambiar el «target» predeterminado para que el sistema arranque en modo gráfico (o en otro target):
sudo systemctl set-default graphical.target
5. Monitoreo de Logs del Sistema
- Ver logs del sistema en tiempo real:
journalctl
es la herramienta desystemd
para acceder a los registros de logs. Para ver los logs en tiempo real, usa:journalctl -f
- Ver logs específicos de un servicio: Esto es útil para verificar errores y mensajes específicos de un servicio, como
nginx
:journalctl -u nginx
- Limitar los logs a una fecha específica: Si deseas ver los logs de una fecha o tiempo específico, puedes usar opciones de filtrado:
journalctl --since "2023-01-01" --until "2023-01-02"
6. Resumir: Comandos de Gestión Básica
Comando | Descripción |
---|---|
systemctl start <servicio> | Iniciar un servicio. |
systemctl stop <servicio> | Detener un servicio. |
systemctl restart <servicio> | Reiniciar un servicio. |
systemctl enable <servicio> | Habilitar un servicio al arranque. |
systemctl disable <servicio> | Deshabilitar un servicio al arranque. |
systemctl status <servicio> | Ver el estado de un servicio. |
systemctl daemon-reload | Recargar la configuración de systemd . |
systemctl list-units | Listar unidades activas (servicios, sockets). |
journalctl -u <servicio> | Ver logs específicos de un servicio. |
Con estos comandos y técnicas, puedes administrar efectivamente los servicios, procesos y el estado general del sistema usando systemd
.
El comando systemd tiene más opciones que puedes explorar
systemd --help
También te recomendamos consultar las páginas man para este comando:
man systemd
Inicio y Detención de Servicios
Para la manipulación de los servicios utilizaremos el comando ―systemctl seguido de algunas opciones muy sencillas. Con ―start seguido del nombre del servicio lo iniciamos y con ―stop lo detenemos. Pero como sabemos si realmente está funcionando? Para eso existe la opción ―status.
Como era de esperarse el sistema me indica que el servicio se encuentra detenido. Una opción muy importante es la de habilitar un servicio, esto se hace mediante la opción ―enable y significa que el servicio arrancará automáticamente una vez que reiniciemos el sistema. Por el contrario la opción ―disable elimina del ―listado de arranque al servicio para que no se inicie cada vez que reiniciamos el sistema por lo cual deberemos hacerlo manualmente en caso de
desearlo. Por último, para poder ver la lista de servicios disponibles se ejecuta el comando ―systemctl―, dado que la lista es largo pueden combinarlo con el comando ―grep utilizando | como hemos visto anteriormente.
Volviendo a nuestro caso de estudio, vamos a dejarlo habilitado para poder utilizarlo sin tener que estar iniciándolo cada vez que reiniciemos el sistema
Vamos nuevamente a iniciarlo para poder comprobar que nuestro Apache se encuentra funcionando correctamente. Lo que haremos ahora es probar si podemos acceder con nuestro navegador web, ya sea Internet Explorer, Firefox o Chrome. Para ello deben abrirlo y en la barra de navegación poner la IP que tienen en su instancia de máquina virtual con Linux, la misma que pusieron en putty para poder acceder a la misma vía ssh.
Si no aparece esto implica que debemos habilitar el puerto donde está escuchando el servidor apache (puerto 80) , para ello vamos a ejecutar el siguiente comando: ―firewall-cmd –zone=public –add-port=80/tcp –permanent
Con esto le decimos al firewall que queremos recibir comunicaciones en el puerto indicado y que sea persistente , es decir que sobreviva a un reboot. Luego tenemos que reiniciar el firewall con el siguiente comando:
―firewall-cmd –reload
Este comando tiene más opciones que puedes explorar
systemctl --help
También te recomendamos consultar las páginas man para este comando:
man systemctl
Hagamos un Ejercicio
1) Instalar el paquete MaríaDB utilizando el comando apt
2) Configurar MariaDB como servicio habilitado (que se inicie automáticamente luego de un reboot) e iniciar el servicio.
3) Verificar que el servicio esté ejecutándose, ya sea mediante la utilidad provista por ―systemd o listando los procesos.
4) Abrir el puerto de firewall necesario para poder acceder a la base de datos MariaDB remotamente.
Resumen de los puntos clave:
- Administración de servicios con
systemd
ysystemctl
El procesosystemd
(PID 1) administra los servicios que inician automáticamente con el sistema operativo.systemctl
permite controlar estos servicios:systemctl start <servicio>
: inicia un servicio.systemctl stop <servicio>
: detiene un servicio.systemctl status <servicio>
: verifica si el servicio está activo o detenido.systemctl enable <servicio>
: configura el servicio para que arranque automáticamente al iniciar el sistema.systemctl disable <servicio>
: deshabilita el inicio automático del servicio.
- Listado de servicios
Para ver una lista de todos los servicios del sistema, utilizasystemctl
. La salida puede ser larga, por lo que puedes filtrar los resultados congrep
(por ejemplo,systemctl | grep apache
). - Acceso y configuración de Apache
Una vez que se inicie el servicio Apache, accede a él a través de la IP de la instancia de Linux en un navegador. Si Apache no se carga, es posible que sea necesario abrir el puerto 80 con:- código
firewall-cmd --zone=public --add-port=80/tcp --permanent firewall-cmd --reload
Esto permite que el firewall acepte conexiones en el puerto 80 y se mantiene activo tras reiniciar.
- código
- Ejercicio con MariaDB
- Instalar MariaDB: con
sudo apt install mariadb-server
. - Habilitar MariaDB: usa
systemctl enable mariadb
para configurarlo como un servicio que arranque automáticamente. - Iniciar MariaDB: ejecuta
systemctl start mariadb
. - Verificar estado: utiliza
systemctl status mariadb
ops aux | grep mariadb
para comprobar si está activo. - Abrir puerto para MariaDB: el puerto predeterminado de MariaDB es el 3306. Para permitir conexiones remotas, abre este puerto con:
firewall-cmd --zone=public --add-port=3306/tcp --permanent firewall-cmd --reload
- Instalar MariaDB: con
Con estos pasos, puedes administrar servicios de sistema y configurar el firewall para aceptar conexiones de servicios específicos en Linux.
Pon en práctica lo aprendido
Ahora pon a prueba lo aprendido con estas preguntas y ejercicios.
Preguntas
- ¿Cuál es la función del proceso
systemd
y qué papel tiene en la administración de servicios en Linux? - ¿Para qué se usa el comando
systemctl
y cuáles son sus opciones principales? - ¿Cómo se inicia y detiene un servicio usando
systemctl
? - ¿Cómo verificar si un servicio está funcionando mediante
systemctl
? - ¿Qué implica habilitar un servicio con
systemctl enable
y en qué caso se usa? - ¿Cómo se deshabilita un servicio para que no se ejecute al iniciar el sistema?
- ¿Cómo se listan los servicios disponibles en el sistema usando
systemctl
ygrep
? - ¿Para qué se utiliza el comando
firewall-cmd
en relación con los servicios? - ¿Qué significa hacer persistente la apertura de un puerto en el firewall?
- ¿Cómo se reinicia el firewall después de realizar cambios con
firewall-cmd
?
Ejercicios
- Inicie un servicio utilizando
systemctl
y verifique su estado. - Detenga un servicio con
systemctl
y luego verifique que el estado cambió. - Habilite un servicio para que inicie automáticamente en el arranque y verifique que esté habilitado.
- Deshabilite un servicio para que no inicie automáticamente y confirme su estado con
systemctl
. - Utilice
systemctl
para listar todos los servicios activos y filtre la lista congrep
para buscar un servicio específico. - Ejecute
systemctl status <nombre del servicio>
para verificar si un servicio está activo, y explique la salida obtenida. - Instale el paquete
MariaDB
usandoapt
y luego configúrelo para iniciar automáticamente consystemctl enable
. - Abra el puerto 3306 en el firewall para MariaDB usando
firewall-cmd
y confirme que esté abierto. - Reinicie el firewall con
firewall-cmd --reload
y verifique que el puerto configurado siga abierto. - Consulte
systemctl --help
y mencione tres opciones adicionales que pueden ser útiles en la administración de servicios.
Respuestas a las Preguntas
- Función de
systemd
: Es el primer proceso iniciado en Linux (PID 1) y administra el arranque de servicios del sistema, facilitando su inicio, detención, y supervisión. - Uso de
systemctl
: Administra servicios en Linux; las opciones principales sonstart
,stop
,enable
,disable
, ystatus
. - Iniciar y detener servicio con
systemctl
: Usarsystemctl start <nombre del servicio>
para iniciar ysystemctl stop <nombre del servicio>
para detener. - Verificar estado de un servicio: Usar
systemctl status <nombre del servicio>
para comprobar si está activo o detenido. systemctl enable
: Habilita un servicio para que arranque automáticamente tras reiniciar el sistema.- Deshabilitar servicio:
systemctl disable <nombre del servicio>
evita que el servicio se inicie al arrancar. - Listar servicios y filtrar con
grep
:systemctl | grep <nombre>
lista todos los servicios y filtra según el nombre o criterio indicado. - Uso de
firewall-cmd
: Permite abrir puertos en el firewall para que los servicios puedan recibir conexiones externas. - Persistencia en firewall: Indica que el cambio (como abrir un puerto) permanece después de reiniciar el sistema.
- Reiniciar el firewall:
firewall-cmd --reload
aplica cambios de configuración sin reiniciar todo el sistema.
Respuestas a los Ejercicios
- Iniciar un servicio y verificar su estado:
systemctl start apache2
y verificar consystemctl status apache2
. - Detener servicio y verificar estado:
systemctl stop apache2
, y luego comprobar consystemctl status apache2
para ver que esté detenido. - Habilitar servicio en el arranque:
systemctl enable apache2
asegura que el servicio inicie al reiniciar. Verificar consystemctl is-enabled apache2
. - Deshabilitar servicio en el arranque:
systemctl disable apache2
desactiva el arranque automático; verificar consystemctl is-enabled apache2
. - Listar servicios activos y filtrar con
grep
:systemctl | grep apache2
lista solo servicios que coinciden con “apache2”. - Verificar estado de un servicio con
systemctl status
:systemctl status apache2
muestra si está activo, su PID, y los registros recientes. - Instalar MariaDB y configurarlo para arranque automático:
sudo apt install mariadb-server
seguido desystemctl enable mariadb
. - Abrir el puerto 3306 para MariaDB:
firewall-cmd --zone=public --add-port=3306/tcp --permanent
y confirmar confirewall-cmd --list-ports
. - Reiniciar firewall y verificar puerto abierto:
firewall-cmd --reload
y confirmar confirewall-cmd --list-ports
. - Opciones adicionales de
systemctl
:restart
: Reinicia un servicio.reload
: Recarga la configuración sin detener el servicio.list-units
: Muestra todos los servicios, tanto activos como inactivos.
No te detengas, sigue avanzando
Aquí tienes un propósito que debes considerar seriamente: si has querido mejorar tus habilidades en hacking, Ciberseguridad y programación ahora es definitivamente el momento de dar el siguiente paso. ¡Desarrolla tus habilidades aprovechando nuestros cursos a un precio increíble y avanza en tu carrera! El mundo necesita más hackers…
- Cómo conseguir trabajo de hacker en 2024
- Trabaja remoto e internacionalmente como Hacker en 2024
- Se necesitan más Hackers – Hechos y estadísticas de 2024
- Se Necesitan más Hackers – La escasez de habilidades en ciberseguridad está empeorando
- El salario de un hacker – Cuanto se gana como Pentesters/ Infosec
- Las empresas te estan buscando para hacerle frente a los ciberataques
- Cómo convertirse en analista de ciberseguridad
- Inicia en hacking y ciberseguridad como analista SOC
- DevOps vs DevSecOps para Hackers
- DevOps vs DevSecOps para Empresas
¿Te gustaría enterarte de cuando lanzamos descuentos y nuevos cursos?
Sobre los autores
Álvaro Chirou
Yo soy Álvaro Chirou, tengo más de 20 Años de experiencia trabajando en Tecnología, eh dado disertaciones en eventos internacionales como OWASP, tengo más de 1.800.000 estudiantes en Udemy y 100 formaciones profesionales impartidas en la misma. Puedes seguirme en mis redes:
Laprovittera Carlos
Soy Laprovittera Carlos. Con más de 20 años de experiencia en IT brindo Educación y Consultoría en Seguridad de la Información para profesionales, bancos y empresas. Puedes saber más de mi y de mis servicios en mi sitio web: laprovittera.com y seguirme en mis redes:
Hacker de 0 a 100 desde las bases hasta conseguir empleo
¿Quieres iniciarte en hacking y ciberseguridad pero no sabes por dónde empezar? Inicia leyendo nuestra guia gratuita: https://achirou.com/hacker-de-0-a-100-desde-las-bases-hasta-conseguir-empleo/ que te lleva de 0 a 100. Desde los fundamentos más básicos, pasando por cursos, recursos y certificaciones hasta cómo obtener tu primer empleo.
Hemos creado una ruta de 0 a 100. Un plan de desarrollo que va desde las bases: cómo aprender hacking, qué aprender, en qué orden; pasando por las areas técnicas necesarias como Linux, Redes, Programación y los conocimientos necesarios en ciber seguridad, hacking, pentesting hasta la práctica y el inicio laboral: Crear tu propio laboratorio, certificaciones, adquirir experiencia e iniciarse laboralmente.
Este es un mega post. Una guía con más de 250 artículos que te llevaran por el camino del hacker. Esta guía es gratuita y esta creada gracias al esfuerzo y al trabajo combinado de Alvaro Chirou y mío (Laprovittera Carlos).
Creamos esta guía (futuro curso) para que puedas iniciarte en este mundo. Puedes arrancar ahora, GRATIS, solo necesitas un PC, conexión a internet y paciencia (Ser hacker NO ES un camino de la noche a la mañana).
El Hacking y la ciberseguridad es una carrera divertida, emocionante y gratificante que te recompensará y desafiará por igual. Sin embargo, para quienes buscan adentrarse en este campo en auge y en constante evolución, puede resultar difícil saber por dónde empezar. ¡Ahí es donde entra en juego nuestra guía en ciberseguridad!
Esta es la hoja de ruta hacia el trabajo de ciberseguridad de tus sueños. Te ayudará a entender qué conocimientos, habilidades y certificados son necesarios para alcanzar tus metas profesionales y tener una carrera próspera. Si quieres ser consultor de ciberseguridad, analista de malware, evaluador de penetración, analista de SOC o cualquier otro puesto de ciberseguridad, esta guía es lo que necesitas.
SIGUE APRENDIENDO GRATIS CON NUESTRAS GUIAS
- Cómo Iniciarse en Hacking y Ciberseguridad en 2024
- Hacker de 0 a 100 desde las bases hasta conseguir empleo
- Curso de Redes para Hackers
- Curso Gratis de Programación
- Curso Gratis Linux – Capitulo 1 – Introducción a Linux
- Curso Gratis de Redes – Capitulo 1 – Tipos de redes y servicios
- Guía de Hacking y Pentesting capitulo 1: Introducción al Pentesting
- Como iniciarse en TRY HACK ME – Complete Beginner #1
- OSINT #1 Más de 200 Search Tools
- Curso Gratis de Java para Hackers
- Hardware para Hackers – Los mejores 40 Dispositivos de Hacking
- Guía de Flipper Zero – Qué es y para qué sirve
- SIGUE APRENDIENDO GRATIS EN NUESTRO BLOG
Aprende con nuestros más de 100 cursos que tenemos disponibles para vos
Compartimos estos recursos para ayudar a la comunidad de hacking y ciberseguridad. COMPARTE y Siéntete libre de agregar más sugerencias en los comentarios a continuación, respondemos todos y cada uno de los comentarios.
Saludos amigos y happy hacking!!!