4 votos

UFW/IPTables: cómo permitir de forma segura el acceso autenticado a git con github

Así es como configuro mi iptables con UFW:

  1. sudo ufw default deny incoming (denegar todas las entradas)
  2. sudo ufw default deny outgoing (denegar todas las salidas)
  3. sudo ufw allow out 53 (aceptar salida Tráfico DNS tanto tcp como udp)
  4. sudo ufw allow in 80/tcp (acepta todos los tcp entrantes del puerto 80)
  5. sudo ufw allow out 80/tcp (acepta todos los tcp salientes al puerto 80)
  6. sudo ufw allow proto tcp from <admin_ip_addr> to <server_ip_addr> port 22 (aceptar tcp puerto 22 entrante desde la IP de la oficina del administrador para ssh)
  7. sudo ufw allow out 9418/tcp (aceptar conexiones git salientes)
  8. sudo ufw allow proto tcp from <server_ip_addr> to any port 22 (aceptar conexiones ssh salientes para conectar con GitHub)

En inglés: block all, except for HTTP, DNS, incoming SSH from admin IPs, outgoing GIT and outgoing SSH.

Lamentablemente, cuando luego hago git clone git@github.com:username/project.git se atasca en Initialized empty Git repository in /home/adminuser/exper/project/.git/

Cuando habilito todo el tráfico saliente con sudo ufw default allow outgoing y repite el comando git clone, funciona.

Así que, al parecer, hay algo saliente que sigue bloqueado.

¿Puede alguien decirme a qué puede deberse y qué norma debo añadir para permitirlo?

También he probado las siguientes reglas, sin éxito:

  1. sudo ufw allow out 1024:65535/udp

3voto

Ryan Sampson Puntos 2898

Estás intentando conectarte con SSH, y eso (parece estar) permitido, así que es hora de diagnosticar el problema. Me gusta añadir una regla LOG justo antes de descartar cualquier paquete, para saber exactamente qué se está descartando. De lo contrario, un poco de acción tcpdump debería identificar el tráfico que no va a ninguna parte. Una vez que sepas lo que está siendo descartado, es trivial añadir las reglas necesarias para permitirlo.

0 votos

El caso es que todas mis reglas permiten paquetes, por defecto es drop. Pero probablemente pueda encontrar el drop en syslog. Voy a informar de nuevo si tengo más detalles.

0 votos

Luego haces una regla LOG la última de la cadena.

0 votos

Esto ni siquiera es una respuesta, sino un comentario. ¿Cómo puede ser una respuesta aceptada?

2voto

Kenosha Kid Puntos 28

Después de mucho golpearme la cabeza y bloquearme en 2 servidores. Las siguientes reglas de firewall me funcionaron para hacer un 'git clone'. Espero que os ayude a todos también.

Para su información: Estoy ejecutando los siguientes comandos en un 'eth0' que es la interfaz privada para mi servidor. Tengo la IP de subred github desde aquí: https://help.github.com/articles/github-s-ip-addresses/

sudo ufw reset
sudo ufw status verbose
sudo ufw default deny incoming
sudo ufw default deny outgoing
# For resolving DNS problem
sudo ufw allow out on eth0 to any port 53
# For allowing access to github.com
sudo ufw allow out on eth0 to 192.30.252.0/22 port 22
sudo ufw --force enable

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X