Port Forwarding 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 diferentes redes internas. 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


As duas redes internas estão conectadas entre si? Você pode rotear o tráfego de uma rede para outra?
Kenster

Respostas:


0

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

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 for gratuito, 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 daquele outro número de porta. De qualquer forma, 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. Então é por isso que você tem que criar regras de encaminhamento de porta (também conhecido como mapeamento de porta, servidor virtual, etc.).

Mas uma única porta, como ssha bem conhecida porta 22, 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. Portanto, se você tiver mais de uma máquina por trás de um gateway NAT e quiser que todas sejam acessadas por sshfora, será necessário 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ê precisa se conectar, digamos, ao segundo host, use ssh -p 50022 username@PublicIPAddrOfNATGateway.

Na verdade, provavelmente é melhor não mapear a porta pública 22 para nada. sshA porta 22 é um dos portos mais atacados. Usar alguma outra porta não torna você mais seguro, mas diminui a probabilidade de você ver tantos ataques.


0

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

Eu não vejo onde os roteadores entram. 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 em ser iniciado por um IP diferente.

E se um computador pode iniciar múltiplas conexões, então você pode dizer que cada conexão é distinta sendo iniciada por um IP diferente: PORT

Todos os IPs privados (o que você chama de IIPs) no R1 são IPs diferentes dos IPs no R2.

MAS....

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

Vamos supor 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, a partir da perspectiva do servidor SSH, que é uma boa perspectiva para se estar à procura de ... como ele faz todas as conexões com ele. Cada sessão ssh pode ser identificada por IP: PORT, em que IP é o IP de R1 ou IP de R2. E seja qual for o porto.

É Port Translation 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 aberta será associada a um dos IPs privados conectados a ela.

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

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.