¿Cuál es la diferencia entre bloquear un puerto con un firewall y no iniciar un servicio en ese puerto en primer lugar?

14

Estaba considerando configurar un firewall de software (pf) en mi servidor web e investigué un poco sobre ellos. Si lo hiciera, implicaría básicamente bloquear las conexiones a todos los puertos excepto 80, 443 y el puerto no estándar que estoy usando para las conexiones SSH.

Pero viendo que mi servidor ya solo tiene servicios que se ejecutan en esos puertos, ¿no tendría sentido? No tengo una necesidad en este momento de IPs de bloque de región o algo tan complejo como eso.

En palabras sencillas que alguien con un entendimiento no tan completo de redes IP puede entender, ¿todavía me sería útil configurar un firewall de esta manera? ¿Cómo, funcionalmente, es diferente de simplemente continuar sin ejecutar los servicios en los puertos que bloquearía?

    
pregunta Garrett Albright 25.01.2015 - 02:12
fuente

2 respuestas

13

TL;DR

Protege contra la necesidad de configurar manualmente los servicios para que solo escuchen en localhost, ya que tiene que permitirles manualmente la conectividad de la red, y aumenta el esfuerzo que debe realizar un atacante para volver a reconocer su buzón. Esto significa que es una herramienta efectiva tanto contra atacantes como con una configuración deficiente. Sí, deberías ejecutar un firewall.

Detail

Los puertos tienen 2 estados principales:

  1. Abrir (el servicio está escuchando)
  2. Cerrado (No hay nada escuchando)

Parece estar familiarizado con los dos estados: los puertos están predeterminados en "cerrado", cambiando a "abierto" si hay un servicio de escucha. Es muy rápido enumerar tanto los puertos abiertos como los cerrados: el sistema operativo en realidad enviará una respuesta que dice "aquí hay un servicio" (el puerto está abierto), o uno que dice "no hay servicio aquí" (el puerto está cerrado).

Si usa un firewall, proporciona la opción de filtrar puertos. Para los puertos filtrados, el sistema operativo no responde en absoluto. Esto significa que un atacante debe invertir más tiempo para determinar los estados del puerto, ya que no tienen forma de saber si la computadora no envió ninguna respuesta o si la respuesta se perdió en el tránsito.

Además, si está ejecutando un cortafuegos, debe protegerse contra la exposición accidental de servicios adicionales a Internet.

He incluido un escaneado de muestra de mi escritorio con mi firewall desactivado (preste especial atención a la cantidad de puertos descubiertos y al tiempo que duró el escaneo):

$ nmap 192.168.1.26

Starting Nmap 6.40 ( http://nmap.org ) at 2015-01-24 21:41 EST
Nmap scan report for TehPwner (192.168.1.26)
Host is up (0.00017s latency).
Not shown: 987 closed ports
PORT      STATE SERVICE
135/tcp   open  msrpc
139/tcp   open  netbios-ssn
445/tcp   open  microsoft-ds
902/tcp   open  iss-realsecure
912/tcp   open  apex-mesh
2869/tcp  open  icslap
5357/tcp  open  wsdapi
8081/tcp  open  blackice-icecap
49152/tcp open  unknown
49153/tcp open  unknown
49154/tcp open  unknown
49163/tcp open  unknown
49176/tcp open  unknown

Nmap done: 1 IP address (1 host up) scanned in 2.30 seconds

Ahora he habilitado mi firewall:

$ nmap 192.168.1.26

Starting Nmap 6.40 ( http://nmap.org ) at 2015-01-24 21:42 EST
Note: Host seems down. If it is really up, but blocking our ping probes, try -Pn

Nmap done: 1 IP address (0 hosts up) scanned in 3.03 seconds

Una vez más, saltándose la sonda de ping:

$ nmap 192.168.1.26 -Pn

Starting Nmap 6.40 ( http://nmap.org ) at 2015-01-24 21:42 EST
Nmap scan report for TehPwner (192.168.1.26)
Host is up (0.00090s latency).
Not shown: 996 filtered ports
PORT     STATE SERVICE
902/tcp  open  iss-realsecure
912/tcp  open  apex-mesh
2869/tcp open  icslap
5357/tcp open  wsdapi

Nmap done: 1 IP address (1 host up) scanned in 49.29 seconds
    
respondido por el Wrycu 25.01.2015 - 03:57
fuente
10

En el mundo ideal , un puerto abierto sin ningún servicio se ejecuta detrás de él es el mismo que un puerto que no está abierto. En el mundo real , los humanos cometen errores. Cuanto menos control tengas en un sistema, más probabilidades habrá de que un ataque a tu sistema se amplifique por un error.

Un firewall sirve para mitigar su error al agregar una capa adicional de control a su sistema informático. Lo hace aceptando, rechazando o eliminando conexiones según su configuración. Como efecto secundario, ayuda a reducir la capacidad de los atacantes para tomar huellas dactilares de su sistema operativo (OS) para lanzar ataques más dirigidos.

Si no está familiarizado con su sistema operativo, existe la posibilidad de que vuelva a activar accidentalmente los servicios deshabilitados o inicie nuevos servicios que se instalan a través de una actualización del sistema. A menos que haga una comprobación sistemática utilizando un programa como netstat , estos servicios escucharán en silencio las conexiones entrantes sin su conocimiento. Algunos de los cuales pueden, a lo largo del tiempo, volverse vulnerables a los ataques y proporcionar un espacio para que un atacante no pueda acceder a su sistema.

Al ejecutar un cortafuegos y bloquear puertos sin servicios activos, esencialmente está fortaleciendo su sistema al proporcionar redundancia en el caso de que un control de seguridad falle o se explote una vulnerabilidad durante el ciclo de vida del sistema. Este enfoque se conoce como defensa en profundidad.

    
respondido por el Question Overflow 25.01.2015 - 08:01
fuente

Lea otras preguntas en las etiquetas