Bases del sistema operativo

1

Aviso de renovación del curso

2

Lo que aprenderás sobre la administración de servidores linux

3

Distribuciones más utilizadas de Linux

4

Instalación de Ubuntu Server

5

Instrucciones para instalar CentOS

6

Gestión del árbol de directorios

7

Diferencias entre LESS, CAT, HEAD y TAIL para lectura de archivos

8

Interacción con archivos y permisos

9

Conociendo las terminales en linux

10

Manejo y monitoreo de procesos y recursos del sistema

11

Monitoreo de recursos del sistema

Instalación y manejo de software en Linux

12

Análisis de los parámetros de red

13

Administración de paquetes acorde a la distribución

14

Manejo de paquetes en sistemas basados en Debian

15

Administración de software con YUM y RPM para CentOS

16

Nagios: Desempaquetado, descompresión, compilación e instalación de paquetes

Administración de usuarios

17

Los usuarios, una tarea vital en el proceso de administración del sistema operativo

18

Creando y manejando cuentas de usuario en el sistema operativo

19

Entendiendo la membresía de los grupos

20

Usando PAM para el control de acceso de usuarios

Servicios en el sistema operativo

21

Autenticación de clientes y servidores sobre SSH

22

Configurando DNS con bind

23

Arranque, detención y recarga de servicios

24

NGINX y Apache en Ubuntu server

25

Instalación y configuración de NGINX

26

¿Qué es NGINX Amplify?

27

NGINX Amplify: Instalación y configuración de un servidor para producción

28

Monitoreo de MySQL con Nagios

29

Configuración de Nagios

30

Los logs, nuestros mejores amigos

31

Otros servicios de logs

Bash scripting

32

Las bases de bash

33

Las variables y su entorno de ejecución

34

Automatizando tareas desde la terminal

35

Automatizando la copia de seguridad

36

Crontab

Asegurando tu servidor

37

Entendiendo la gestión de vulnerabilidades

38

¿Qué es una superficie de ataque? Principio del menor privilegio

39

El firewall y sus reglas

40

Escaneo de puertos con NMAP y NIKTO desde Kali Linux

41

Lynis: Herramientas de auditoria de seguridad en Linux

Proyecto

42

Configuración de Node.js en un ambiente productivo

43

Configuración de NGINX para la aplicación de Node.js

Bonus: Linux en Azure

44

Aprende sobre Linux en Azure

45

Despliegue de una aplicación web MEAN

46

Crea una máquina virtual en la nube de Azure

Conclusiones

47

Lo que aprendiste sobre servidores linux

No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Aprende todo un fin de semana sin pagar una suscripción 🔥

Aprende todo un fin de semana sin pagar una suscripción 🔥

Regístrate

Comienza en:

3D
10H
9M
21S

El firewall y sus reglas

39/47
Recursos

Los Firewalls son herramientas que monitorean el tráfico de nuestras redes para identificar amenazas e impedir que afecten nuestro sistema.

Recuerda que la seguridad informática es un proceso constante, así que ninguna herramienta (incluyendo el firewall) puede garantizarnos seguridad absoluta.

En Ubuntu Server podemos usar ufw (Uncomplicated Firewall) para crear algunas reglas, verificar los puertos que tenemos abiertos y realizar una protección básica de nuestro sistema:

  • sudo ufw (enable, reset, status): activar, desactivar o ver el estado y reglas de nuestro firewall.
  • sudo ufw allow numero-puerto: permitir el acceso por medio de un puerto específico. Recuerda que el puerto 22 es por donde trabajamos con SSH.
  • sudo ufw status numbered: ver el número de nuestras reglas.
  • sudo ufw delete numero-regla: borrar alguna de nuestras reglas.
  • sudo ufw allow from numero-ip proto tcp to any port numero-puerto: restringir el acceso de un servicio por alguno de sus puertos a solo un número limitado de IPs específicas.

Aportes 46

Preguntas 11

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

o inicia sesión.

RESUMEN DE LA CLASE
|
El firewall y sus reglas
|
|
Comandos
|

  • sudo ufw status: Muestra el estado (activo/inactivo) y las reglas del firewall. Con el modificador numbered me muestra las reglas numeradas
  • sudo ufw allow puerto: Habilita un puerto
  • sudo ufw enable: Enciende el firewall
  • sudo ufw delete numero_de_regla: Borra una regla
  • sudo ufw allow from direccion_ip proto protocolo to any port puerto: Restringe las direcciones ip que pueden conectarse a cierto puerto. Recordar que SSH trabaja con el protocolo TCP
  • sudo ufw reset: Elimina todas las reglas

|
|
Recomendación
|
Abrir al público únicamente el puerto 80 (http), 443 (https). Para un conjunto de IP’s específicas, habilitar el puerto 22 (ssh)

Para banear una IP específica:

sudo ufw insert 1 deny from {IP} comment 'Bloqueada ip de Atacante'

Para banear una red:

sudo ufw insert 1 deny from {IP}/{rango} comment 'Bloqueada ip de Atacante'

para ver las apps permitidas:

sudo ufw app list
Available applications:
  Apache
  Apache Full
  Apache Secure
  Bind9
  Nginx Full
  Nginx HTTP
  Nginx HTTPS
  OpenSSH```

(un poco de humor) 🤪 creo aplica para distros de la familia RHEL (por ejemplo, CentOS), les comparto esta página del creador de SELinux: stopDisablingSELinux.com, y ya saben, un buen proyecto debe siempre quedar con el firewall bien configurado, no lo apaguen simplemente porque “así es que funciona todo bien” (lección en aprendizaje) 🤓

ufw genera a final de cuentas reglas de iptables, que podemos ver usando el comando

iptables -L -v -n

Ahora bien, el profesor no explica que las reglas se evaluan en el orden en el que están listadas por lo que en el ejemplo al hacer allow in al puerto 22 y estar primero la segunda regla nunca se va a evaluar ya que la primera es más general y engloba a la segunda, por lo que para definir reglas siempre debemos definir la más especifica primero y al final la más general.

Por ejemplo primero definimos las IP desde las que se va permitir puerto 22, y al final una regla que deniegue acceso a puerto 22, de tal manera que se deja pasar si hace match de las primeras reglas y si no hizo match con ninguna al final deniega acceso.

Esto es más apropiado para un curso de redes, o de seguridad y firewalls.

Que hermoso es Linux :3

También es importante permitir el puerto 443 en caso de que tu sitio web tenga SSL, de lo contrario no podrán entrar con https

para permitir acceso desde todo el segmento de la red local

sudo ufw allow from 192.168.0.0/24 proto tcp to any port 22 comment 'permitir ssh ip'

listo… reto realizado 😃

Estos serian los puertos para SSH, HTTP y HTTPS:

sudo ufw allow 22 proto tcp
sudo ufw allow 80 proto tcp
sudo ufw allow 443 proto tcp

.
Hay que recordar que si queremos actualizar usando aptitude, necesitaremos o bien cambiar todos los host por su respectiva IP o también agregar el puerto DNS para que nuestro servidor pueda buscar los host en servidores DNS.

sudo ufw allow 53

Puedes ampliar la info que recibes de status con:

sudo ufw status verbose
Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing), disabled (routed)
New profiles: skip

To                         Action      From
--                         ------      ----
22/tcp                     ALLOW IN    Anywhere
22                         ALLOW IN    Anywhere                   # ssh
22/tcp (v6)                ALLOW IN    Anywhere (v6)
22 (v6)                    ALLOW IN    Anywhere (v6)              # ssh```

En Ubuntu Server podemos usar ufw (Uncomplicated Firewall) para crear algunas reglas, verificar los puertos que tenemos abiertos y realizar una protección básica de nuestro sistema:

sudo ufw (enable, reset, status): activar, desactivar o ver el estado y reglas de nuestro firewall.
sudo ufw allow numero-puerto: permitir el acceso por medio de un puerto específico. Recuerda que el puerto 22 es por donde trabajamos con SSH.
sudo ufw status numbered: ver el número de nuestras reglas.
sudo ufw delete numero-regla: borrar alguna de nuestras reglas.
sudo ufw allow from numero-ip proto tcp to any port numero-puerto: restringir el acceso de un servicio por alguno de sus puertos a solo un número limitado de IPs específicas.

Si bien ufw es un aplicativo que facilita la creación de reglas de firewall deberían comentar que actualmente iptables es el gestor a nivel kernel de las reglas de firewall, y que aún sin instalar ufw iptables siempre esta disponible, claro que es más complicado de configurar, lo que hace falta es entender bien como funciona iptables para poder sacarle provecho.

En el caso de CentOS, seria de esta forma

/*Activamos el servicio*/
sudo systemctl start firewalld

/*De esta forma*/
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https

/*De esta otra forma*/
sudo firewall-cmd --zone=public --add-port=80/tcp
sudo firewall-cmd --zone=public --add-port=80/tcp --permanent
sudo firewall-cmd --zone=public --add-port=443/tcp
sudo firewall-cmd --zone=public --add-port=443/tcp --permanent

//Recargamos 
sudo firewall-cmd --reload

//Verificamos
sudo firewall-cmd --list-all

Muy interesante el poder activar el firewall desde el servidor.

sudo ufw status
sudo ufw allow 22 comment 'SSH'
sudo ufw enable
sudo ufw status
sudo ufw status numbered
sudo ufw delete 2
sudo ufw status
sudo ufw allow from 10.106.51.10 proto tcp to any port 22 comment "Permitir SSH IP"
sudo ufw reset

iptables es otro comando interesante para manejar reglas de firewall aunque es un poco mas complicado de usar.

<sudo ufw from 192.168.10.127 proto tcp  to any port 22  comment 'permitir ssh ip'> 
  1. from : desde que ip se van a conectar, solo podran conectarse desde siertas direcciones ip espesificas.

  2. proto tcp : porque SSH es un protocolo que corre por TCP.

  3. to any port : que nos permita a cualquiera que sea el puerto 22.

|
#Tecnicamente el uso de firewall consiste en restringir algunas conecciones de puertos, un uso muy espesifico podria ser un centro educativo que permitiria coneccion a los estudiantes pero denegandoles el sitios weds inapropiados.

Para usar ufw con CentOS:

sudo yum install epel-release -y
sudo yum install --enablerepo="epel" ufw -y
sudo ufw enable
sudo ufw status

No se olviden habilitar el puerto para nagios.
sudo ufw allow from ip proto tcp to any port 8080 comment “Acceso Nagios”

Como parte complementaria por si les interesa:
FirewallD, es el front-end firewall-cmd en el programa de administración de reglas de firewall (iptables) para el kernel de Linux.

ufw es una interfaz con todas las funciones para la CLI, mientras que firewalld en su mayoría solo proporciona una API y tendrías que usar otro programa además de eso. ufw tiene mucha experiencia / exposición, ya que es la herramienta recomendada para distribuciones basadas en Debian como Ubuntu.

Clase fantástica!!

Excelente!

Esta reglas al momento de agregarlas son fijas?, o cuando reinicie se borran?..

Recomiendo iptables ya que es el gestor a nivel kernel de las reglas de firewall, para eso les dejo el siguiente documento de laboratorios realizados en mi universidad:

PDF - LAB - IPTABLES

Se encuentra:
Denegar el acceso por SSH a firewall desde la DIRECCION MAC de un computador con Windows

Denegación de el acceso a la página web enterco, desde una maquina anfitriona Windows

y muchos casos más.

gracias

RESUMEN CLASE 38

Ver el estado y reglas del firewall

$ sudo ufw status

Crear un conjunto de reglas y activarlo

$ sudo ufw allow 22 comment 'ssh'

Para activar ufw

$ sudo ufw enable

Cuales son las reglas que tenemos en el S.O.

$ sudo ufw status

Para que nos muestre numeradas

$ sudo ufw status numbered

Para borrar una regla de un puerto

$ sudo ufw delete "numero de regla"

Para restringir otras IPs

$ sudo ufw allow from "IP Privada o Publica" proto tcp to any port 22 comment 'permitir ssh ip'

Para borrar reglas

$ sudo ufw reset

Recomendacion de los Puertos:
80 HTTP Habilitar
443 HTTPS Habilitar
22 SSH Habilitar solo a IPs autorizadas.

Interesante, no sabía que se podían comentar las reglas:

  • sudo ufw allow port comment 'Commit’
    Podemos ver el número si es que deseamos eliminar una regla, de la siguiente manera:
  • sudo ufw status numbered
  • sudo ufw delete number_rule

Ese punto de habilitar el ssh es muy importante la primera vez que hice eso en una maquina virtual de google solo abri el puerto 80 y luego no me podia conectar al servidor y lo peor era que no sabia la razon jaja.

Solucion: coloque la orden de habilitar el puerto para ssh en el script de arranque de la maquina asi que la apague y la volvi a encender, donde ya quedo habilitado el acceso

Reto: Permitir ssh solo a tu maquina.
respuesta: cuando habilitamos el firewall UFW automáticamente bloquea numerosos puertos y conexiones de red. a partir de ahí toca agregarle las reglas,

una vez activado aplicamos la regla

<sudo ufw allow from 20.20.20.15 to any port 22 proto tcp> 

Un firewall en sí mismo no garantiza nada, sí, permite cerrar o abrir puertos desde ciertas IP/Segmentos específicos, pero se cierran todos los puertos y los códigos con los que se ejecutan las aplicaciones web son tan poco asegurables que permiten ataques de SQL Injection, XSS, y se pasan el OWASP TOP10 por las narices?

Comando para permitir al puerto 22(para SSH) usando UFW

Tiene absoluta razon cuando dice que no nos interesa tener los puertos de la BD abiertos al publico, que peligro!!!

El puerto 22 siempre debe de estar abierto, pues es el puerto de SSH.

Los puertos que deberían estar abiertos en el firewall es el 80 (HTTP) y 443 (HTTPS).

ufw para permitir acceso por un puerto en especifico

explicacion de que es un firewall sus funciones…esta en ingles pero vale la pena verlo.

https://youtu.be/kDEX1HXybrU

Que buena clase! estaba con esa duda de cómo restringir el acceso por ssh. 😮

Este comando funciona igual en red hat?

por ejemplo si quieres un segmentod e red

sudo ufw allow from X.X.X.0/24  to any port 22

donde las X son el segmento

Excelente

Que firewall es más utilizado hoy día en Linux ? ufw o iptables ?

Los Firewalls son herramientas que monitorean el tráfico de nuestras redes para identificar amenazas e impedir que afecten nuestro sistema.

Recuerda que la seguridad informática es un proceso constante, así que ninguna herramienta (incluyendo el firewall) puede garantizarnos seguridad absoluta.

En mi caso, el reto quedo asi:

Permiti de ssh desde cualquier ip de mi red y habilite el puerto 2222 que es por donde me conecto via ssh