¿Por qué no puedo usar SSH con estas reglas de firewall?

¿Por qué no puedo usar SSH con estas reglas de firewall?

Actualmente estoy intentando conectarme a mi invitado Linux Mint a través de SSH en mi host de Windows 10. Mejor dicho, estoy intentando conectarme exitosamente con el invitado teniendo en cuenta reglas de firewall particulares.

Usando Virtual Box, habilité un adaptador de solo host para la máquina virtual Linux Mint.

Al permitir todo el tráfico a través del puerto 22 a través del firewall con esa regla de permitir todo en particular, puedo conectarme exitosamente a la máquina invitada usando SSH desde mi host de Windows.

Sin embargo, quiero que el invitado de LinuxsoloaceptarmiIP para SSH. En otras palabras, quiero que sólo acepte mi IP para el puerto 22 (si eso tiene algún sentido).

Configuré el firewall de Linux con estas reglas yno pudoluego, después de conectarse exitosamente:

GUEST IP 22/tcp ALLOW IN HOST IP 22/tcp

HOST IP 22/tcp ALLOW OUT GUEST IP 22/tcp

Nota: Los términos 'IP INVITADO' e 'IP HOST' son simples marcadores de posición para la dirección IP asociativa dado el contexto. En este caso, la IP INVITADA es la dirección IP del adaptador de host exclusivo de la interfaz eth1. No hace falta decir que la IP del HOST representa la dirección IP del host que se encuentra en mi host de Windows 10.

He hecho todo lo que he podido para que funcione, pero honestamente no sé cómo obtener lo que estoy pidiendo en este momento.

Mi configuración actual:

  • Windows 10 (Host) con cliente MobaXtrem SSH y servidor SSH FreeSSHd
  • Linux Mint 17 (invitado) con cliente y servidor openSSH
  • No toqué el firewall de Windows en absoluto
  • Actualmente tengo el firewall de Linux configurado para eliminarse, pero agregado en las reglas mencionadas

Me gustaría dejar saber que mi experiencia con sistemas basados ​​en Linux/Unix esmuylimitado como está con el uso de shells, SSH y la configuración de firewalls.

Literalmente, acabo de instalar el software SSH mencionado hace un día.

TL;DR:Quiero que mi invitado de Linux esté configurado para aceptar solo tráfico SSH desde mi computadora host. Supongo que esto se hace a través de IP pero no estoy seguro de cómo hacerlo. Después de agregar las reglas de firewall anteriores al invitado de Linux, la conexión ya no era exitosa y cada intento expiraba.

Información adicional: - He visto en estos lugares a personas que mencionan el reenvío de puertos; Lo intenté, no funcionó. Al ver cómo pude hacerlo funcionar con el adaptador de solo host, pensé que estaría bien sin esa solución.

Como un aparte, ¿es posible conectarme a mi host de Windows a través de mi invitado de Linux usando SSH? Intenté hacerlo desde mi terminal Linux, pero seguía diciendo que no tenía permiso para hacerlo.

Si necesita aclaraciones o información adicional, no dude en preguntar.

¡Gracias de antemano!

— TRG

Respuesta1

Las conexiones TCP tienen dos puertos, origen y destino. Para conexiones SSH salientes, el puerto de destino es 22, pero el puerto de origen eselegido al azar. (Sólo muy pocos protocolos, por ejemplo BGP, utilizan puertos de origen y destino idénticos).

Por lo tanto, sería necesario relajar las reglas para:

allow incoming from hostIP (any)/tcp to guestIP 22/tcp
allow outgoing from guestIP 22/tcp to hostIP (any)/tcp

Si estás preocupado por elinvitadoAl volver a conectarse al host, puede eliminar la segunda regla siempre que esté utilizando uncon estadofirewall (que permitiría la salida de paquetes pertenecientes a una conexión existente).

En iptables, un conjunto de reglas funcional se vería así:

-A INPUT -p icmp -j ACCEPT
-A INPUT -p tcp --dport 22 -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -j REJECT

# (Well, *I think* this should work.)
-A OUTPUT -p icmp -j ACCEPT
-A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A OUTPUT -j REJECT

(Se incluye "permitir ICMP" porquehonestamente)

información relacionada