Laboratorio de Firewall

Laboratorio de Seguridad en Redes, maestría en ciencias de la computación.

Contexto

Para el desarrollo de este laboratorio usé dos máquinas del laboratorio de redes móviles e inalámbricas. ICARO

Máquina A

  • Dirección IP: 190.169.74.238
  • Nombre DNS: sabermetrics.ga

Máquina B

  • Dirección IP: 190.169.74.236
  • Nombre DNS: mibanco.ga

Desarrollo

¿Qué es netstat?

Herramienta que nos permite obtener las conexiones de red, tablas de enrutamiento, estadísticas de las interfaces. En resumen, permite comprobar la configuración y actividad de la red.

¿Cuáles puertos TCP y UDP están escuchando en su máquina?

  • TCP: 53, 22, 631, 443 y 80.
  • UDP: 53, 631, 33951, 5353 y 48847.

¿A que servicios corresponden?

  • TCP:
    • 53: DNS.
    • 22: SSH.
    • 443: HTTPS.
    • 80: HTTP.
    • 631: IPP.
  • UDP:
    • 53: DNS.
    • 631: IPP.
    • 33951, 5353, 48847: Avahi.

¿Cómo escribió el comando para averiguarlo? Explique la salida.

Para TCP: sudo netstat -plnt

Cuya salida es:

Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 127.0.1.1:53            0.0.0.0:*               LISTEN      1308/dnsmasq    
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      924/sshd        
tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN      2030/cupsd      
tcp6       0      0 :::22                   :::*                    LISTEN      924/sshd        
tcp6       0      0 ::1:631                 :::*                    LISTEN      2030/cupsd      
tcp6       0      0 :::443                  :::*                    LISTEN      1548/apache2    
tcp6       0      0 :::80                   :::*                    LISTEN      1548/apache2  

Para UDP es: sudo netstat -plnu

Cuya salida es:

Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
udp        0      0 127.0.1.1:53            0.0.0.0:*                           1308/dnsmasq    
udp        0      0 0.0.0.0:631             0.0.0.0:*                           982/cups-browsed
udp        0      0 0.0.0.0:33951           0.0.0.0:*                           667/avahi-daemon: r
udp        0      0 0.0.0.0:5353            0.0.0.0:*                           667/avahi-daemon: r
udp6       0      0 :::48847                :::*                                667/avahi-daemon: r
udp6       0      0 :::5353                 :::*                                667/avahi-daemon: r
  • Proto: muestra el protocolo asociado a la salida.
  • Recv-Q: Número de bytes de data en la cola a ser enviados al usuario local que establece la conexión.
  • Send-Q: Número de bytes de data en la cola a ser enviados al usuario remoto.
  • Local Address: Es la fuente de la conexión asociada a un puerto. ….:puerto.
  • Foreing Address: Dirección del host de destino y el puerto asociado.
  • State: Estado de la conexión. (LISTENING: escuchando)

¿Qué es nmap?

Herramienta open source que permite explorar la red y realizar auditorías de seguridad hac

¿Qué puertos TCP y UDP están abiertos y en escucha de una máquina de un compañero?

Puertos 80 y 443 porque son los habilitados por el proyecto de la materia.

¿Cómo es el comando utilizado? Explique la salida.

En sabermetrics.ga (190.169.74.238) hacer: nmap mibango.ga

Starting Nmap 6.40 ( http://nmap.org ) at 2014-11-04 11:24 VET
Nmap scan report for mibanco.ga (190.169.74.236)
Host is up (0.00016s latency).
Not shown: 998 filtered ports
PORT    STATE SERVICE
80/tcp  open  http
443/tcp open  https

Nmap done: 1 IP address (1 host up) scanned in 4.85 seconds
  • PORT: Con formato X/Y donde X es el puerto habilitado y Y es el protocolo de transferencia. En este caso, TCP.
  • STATE: Estado de la conexión, en este caso está abierta. Pueden ser OPEN, CLOSED, FILTERED o UNFILTERED. Dependiendo de cada regla en la máquina donde hagamos el nmap.

¿Qué es iptables? Defina las tablas usadas por este comando.

  1. ¿Existen reglas de iptables en su máquina? ¿Con que comando lo visualizó? ¿Qué observó?
    1. ¿Existen reglas de iptables en su máquina?
      • No hay en sabermetrics.ga.

            Chain INPUT (policy ACCEPT)
            target     prot opt source               destination
        
            Chain FORWARD (policy ACCEPT)
            target     prot opt source               destination
        
            Chain OUTPUT (policy ACCEPT)
            target     prot opt source               destination
      • Si hay en mibanco.ga

            Chain INPUT (policy ACCEPT)
            target     prot opt source               destination         
            ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:http
            ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:https
            DROP       all  --  anywhere             anywhere            
        
            Chain FORWARD (policy ACCEPT)
            target     prot opt source               destination         
        
            Chain OUTPUT (policy ACCEPT)
            target     prot opt source               destination
    2. ¿Con qué comando lo visualizó?

      sudo iptables -L
    3. ¿Qué observó? En sabermetrics.ga no hay ninguna regla. Leyendo la documentación, en un computador sin configuraciones el firewall no tiene seteada ninguna regla.

  2. Escriba la regla de iptables para bloquear todos los puertos TCP y UDP entrantes ¿Cómo es la regla?

    sudo iptables -A INPUT -p tcp -j DROP

    sudo iptables -A INPUT -p udp -j DROP
  3. Escriba la regla para permitir que su máquina responda a los ping y también la regla para prohibir que su máquina reciba los ping.

    Los ping son tramas ICMP. Las dos tramas que nos interesan son los echo-request y echo-reply. Las echo-request son de tipo 8 según las reglas de iptables y las echo-reply son tipo 0 según las reglas de iptables. En consecuencia:

    sudo iptables -A OUTPUT -p icmp --icmp-type 0 -j ACCEPT permite que la salida de los ping (echo-reply) esté habilitada. sudo iptables -A INPUT -p icmp --icmp-type 8 -j DROP no permite que la entrada de los ping (echo-request) esté habilitada.

  4. Escriba la regla para permitir que su máquina reciba conexiones ssh.

    iptables -A INPUT -p tcp –dport 22 -j ACCEPT habilita ssh (puerto 22).
  5. Bloquee con drop y reject todos los servicios TCP y UDP. ¿Qué observa?

Haciendo nmap hacia la misma IP de la máquina no resuelve ninguno de los requests. Como nmap usa 1000 tramas TCP no puede realizarse ningún escaneo. Más aún, al deshabilitar los protocolos de transporte no hay tráfico posible en la tarjeta de red. En consecuencia, la máquina está desconectada al exterior.

  1. Luego de escribir las reglas anteriores realice el escaneo de puertos desde la máquina de un compañero? Cual es ahora el resultado?

El comando: nmap 190.169.74.238

Hace que tengamos como salida:

Starting Nmap 6.40 ( http://nmap.org ) at 2014-11-04 12:52 VET
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.10 seconds

El resultado es idéntico a la pregunta anterior. nmap no resuelve ninguna trama TCP en consecuencia no tenemos respuesta con el comando.