Port Forwarding de uma porta específica (por exemplo, 22)

0

Ainda estou confuso sobre o estabelecimento de uma conexão SSH (porta 22) entre dois computadores em redes internas diferentes. Por exemplo: Estou no meu computador com endereço IP interno IIP-1, conectado ao meu roteador RT-1. Existem 10 IIPs conectados ao RT-1. Eu quero estabelecer uma conexão SSH para o IIP-3, que está conectado ao roteador RT-2. Existem 10 IIPs conectados ao RT-2. A qualquer momento, pode haver várias conexões SSH entre os IIPs no RT-1 e no RT-2. Como tenho apenas a porta 22 disponível, não sei qual sessão SSH está falando entre quais IIPs. Eu olhei para um par de perguntas semelhantes, mas ainda não estão claras sobre a solução. Muito obrigado Jerry

    
por Jerry Blair 08.06.2014 / 09:34

2 respostas

0

Se você tiver um roteador com um único endereço IP público no lado da WAN e usar uma sub-rede de endereços IP privados no lado da LAN, é mais do que um roteador, é um NAT (tecnicamente NAPT: Network Address and Port Translation , mas a maioria das pessoas apenas diz NAT).

Quando um host tenta iniciar uma nova conexão, ele envia o pacote de um número de porta efêmero (acima de 49152). Como o gateway NAT processa esse pacote de saída, ele verifica se essa porta de origem está livre na interface WAN do gateway NAT (endereço IP público). Se estiver livre, permite que o cliente use esse número de porta; se estiver em uso, ele atribui um número de porta pública diferente a esse pacote e modifica o pacote para parecer que veio do outro número de porta. De qualquer maneira, ele faz uma entrada de tabela mapeando esse número de porta pública para esse endereço IP privado e porta, para que ele possa traduzir e encaminhar corretamente quaisquer pacotes adicionais nessa conexão, em qualquer direção.

Para novas tentativas de conexão de entrada em seu endereço IP público, o gateway NAT não pode saber automaticamente para quem encaminhar a tentativa de conexão. Portanto, o gateway NAT descartaria o pacote por padrão e possivelmente responderia com um pacote de redefinição de TCP ou uma mensagem "Destination Unreachable: Port Unreachable" do ICMP. É por isso que você precisa criar regras de encaminhamento de porta (também conhecidas como mapeamento de porta, servidor virtual etc.).

Mas uma única porta, como a conhecida porta 22 de ssh , só pode ser encaminhada para um único host. Assim, para conexões iniciadas do lado de fora, somente um host pode ser alcançado na porta 22. Então, se você tiver mais de uma máquina por trás de um gateway NAT, e você quiser que todas estejam acessíveis via ssh do lado de fora, você precisa escolher outros números de porta para mapear para esses hosts. Por exemplo, mapeie a porta pública 22 para a porta 22 no primeiro host, mapeie a porta pública 50022 para a porta 22 no segundo host, mapeie a porta pública 50122 para a porta 22 no terceiro host, etc.

Então, quando você precisar se conectar, digamos, ao segundo host, use ssh -p 50022 username@PublicIPAddrOfNATGateway .

Na verdade, provavelmente é melhor se você não mapear a porta pública 22 para nada. A porta 22 ssh é uma das portas mais atacadas. Usar outra porta não deixa você mais seguro, mas diminui a probabilidade de você ver tantos ataques.

    
por 08.06.2014 / 10:55
0

Eu realmente não entendi sua pergunta porque você sabe que há várias sessões SSH.

Não vejo onde os roteadores entram nele. Porque você teria a mesma pergunta se houvesse apenas um roteador.

Não vejo por que é importante para sua pergunta se eles são IPs internos ou externos.

Você tem várias conexões com um servidor SSH de diferentes computadores.

Suponho que cada um é distinto em que um está conectado como um usuário, um como outro usuário.

E cada um é distinto ao ser iniciado por um IP diferente.

E se um computador puder iniciar várias conexões, você poderá dizer que cada conexão é distinta sendo iniciada por um IP diferente: PORT

Todos os IPs privados (o que você chama de IIPs) em R1, são IPs diferentes para os IPs em R2.

MAS ....

Vamos supor que não é assim .. (o que eu acho que você está recebendo)

Suponhamos que alguns computadores no R1 tenham o mesmo IP que alguns computadores no R2.

Então, R1 e R2 precisam fazer o NAPT. (NAPT é NAT, mas também um para muitos). Assim, o servidor SSH se comunica com o endereço IP do R1 e com o endereço IP do R2. Cada conexão está em uma porta diferente ..

Então, cada sessão sSH, da perspectiva do servidor SSH, que é uma boa perspectiva para se ver ... enquanto ela avalia todas as conexões com ela. Cada sessão ssh pode ser identificada por IP: PORT, em que IP é o IP de R1 ou IP de R2. E qualquer porta.

É a tradução de porta que você está falando não é realmente encaminhamento de porta.

Se você tiver vários computadores atrás de um roteador NAPT e eles estiverem acessando a Internet, isso não exigirá o encaminhamento de porta, mas exigirá a conversão de porta. O site apenas vê o IP do roteador NAPT. O roteador NAPT distingue cada conexão, pois ela abre as portas do cliente local para se comunicar com os sites e qualquer porta do cliente local que abrir será associada a um dos IPs privados conectados a ela.

Você normalmente não desejaria o NAPT localmente, isso é loucura. Você tem IPs privados suficientes!

    
por 08.06.2014 / 16:20