porta ssh para frente para acessar minha máquina doméstica de qualquer lugar

24

Estou vindo desta pergunta: /superuser/359799/how-to-make-freebsd-box-accessible-from-internet

Eu quero entender todo esse processo de port forwarding.

Eu li muitas coisas, mas estou deixando de entender o conceito muito básico de encaminhamento de porta.

O que eu tenho:

um servidor freebsd sentado em minha casa.
roteador netgear

Isto é o que estou tentando alcançar:

poder acessar o servidor freebsd a partir de uma máquina windows pela internet para poder abrir um navegador da web e acessar a internet.

Também quero acessar esta caixa do freebsd a partir de uma máquina ubuntu que possuo.

Será ótimo se alguém puder me ajudar.

Aqui está a configuração do roteador netgear que eu fiz para o encaminhamento de porta.

encaminhamento de porta netgear

hari
fonte
Migre se for uma superuserpergunta.
hari
Precisa de um pouco mais de esclarecimento. Se a máquina Windows está em algum lugar da Internet e já tem acesso à Internet, por que você deseja se conectar à caixa do FreeBSD em casa para acessar a Internet?
precisa saber é o seguinte
@ OldTimer: Não tenho certeza de quão relevante é a sua pergunta / preocupação.
hari
Use endereços IPv6, mais nenhum NAT, sem aborrecimentos digitamos mais ;-)
Stéphane Gimenez
11
Esperar! acabei de dizer o seguinte : - /
Stéphane Gimenez

Respostas:

47

Vou começar com os fatos brutos:

  1. Você tem: A- sua caixa do FreeBSD, B- seu roteador e C- alguma máquina com acesso à Internet. É assim que parece:

    .-----.      .-----.                        .-----.
    |  A  |  ==  |  B  |  - - ( Internet ) - -  |  C  |
    '-----'      '-----'                        '-----'
    \_________ ________/
              v
               `- this is your LAN
    

    Observe como o roteador normalmente funciona: ele permite conexões de máquinas da sua LAN à Internet (simplesmente falando). Portanto, se a A(ou qualquer outra máquina na LAN) quiser acessar a Internet, será permitido (novamente, apenas falando sobre entendimento e configuração básicos):

    .-----.      .-----.                        .-----.
    |  A  |  ==  |  B  |  - - ( Internet ) - -  |  C  |
    '-----'      '-----'                        '-----'
          `-->----'  `--->--->---^  
    

    E o seguinte não é permitido por padrão:

    .-----.      .-----.                        .-----.
    |  A  |  ==  |  B  |  - - ( Internet ) - -  |  C  |
    '-----'      '-----'                        '-----'
          `--<----'  `---<--- - - - - --<---<-----'
    

    (Ou seja, o roteador protege as máquinas em sua LAN de ser acessado a partir da Internet.) Note que o roteador é a única parte do seu LAN que é visto a partir da Internet 1) .

  2. O encaminhamento de porta é o que permite que o terceiro esquema ocorra. Isso consiste em dizer ao roteador qual conexão de C2) deve ir para qual máquina na LAN. Isso é feito com base nos números de porta - é por isso que é chamado encaminhamento de porta . Você configura isso instruindo o roteador que todas as conexões provenientes de uma determinada porta da Internet devem ir para uma determinada máquina na LAN. Aqui está um exemplo para a porta 22 encaminhada para a máquina A:

    .------.     .-------.                        .-----.
    |  A   | ==  |   B   |  - - ( Internet ) - -  |  C  |
    |      |     |       |                        '-----'
    '-|22|-'     ',--|22|'                          |
        `--<-22---'    `---<---- - - - - - --<-22---'
    
  3. Tais conexões através da Internet ocorrem com base em endereços IP. Portanto, uma representação um pouco mais precisa do exemplo acima seria:

    .------.      .-------.                                .-----.
    |  A   |  ==  |   B   | - - - - - ( Internet ) - - - - |  C  |
    |      |      |       |                                '-----'
    '-|22|-'      ',--|22|'                                   |
        `--<-A:22--'    `--<-YourIP:22 - - - - --<-YourIP:22--'
    

    Se você não tiver uma conexão com a Internet com um IP estático , precisará aprender de alguma forma qual IP está atualmente atribuído ao seu roteador pelo ISP. Caso contrário, Cnão saberá a qual IP ele deve se conectar para acessar seu roteador (e mais ainda A). Para resolver isso de uma maneira fácil, você pode usar um serviço chamado DNS dinâmico . Isso faria com que seu roteador periodicamente envie informações para um servidor DNS especial que acompanhará seu IP e fornecerá um nome de domínio . Existem alguns provedores de DNS dinâmicos gratuitos. Muitos roteadores vêm com opções de configuração para entrar em contato facilmente com eles.

1) Isso é mais uma vez uma simplificação - o dispositivo real que é visto na Internet é o modem - que geralmente pode ser integrado ao roteador, mas também pode ser uma caixa separada.
2) ou qualquer outra máquina com conexão à Internet.


Agora, o que você deseja:

  1. Simplesmente permitir o acesso ssh à sua máquina a partir da Internet é uma má idéia. Existem milhares de bots configurados por crackers que pesquisam na Internet máquinas com porta SSH aberta. Eles normalmente "batem" na porta SSH padrão com o maior número possível de IPs e, quando encontram um daemon SSH em execução em algum lugar, tentam obter acesso da força bruta à máquina. Isso não é apenas um risco de invasão potencial, mas também de lentidão na rede enquanto a máquina está sendo brutalmente forçada.

  2. Se você realmente precisa desse acesso, deve pelo menos

    • garanta que você tenha senhas fortes para todas as contas de usuário,

    • proibir o acesso root através do SSH (você sempre pode fazer login como usuário normal e suou sudoentão),

    • altere a porta padrão na qual seu servidor SSH seria executado,

    • introduza um mecanismo de proibição de inúmeras tentativas de login SSH (com aumento do tempo de espera para tentativas subseqüentes - não me lembro exatamente como isso se chama - habilitei-o há algum tempo no FreeBSD e lembro que era bastante fácil - tente pesquisando em alguns fóruns do FreeBSD, etc., sobre como proteger o SSH e você o encontrará.)

    • Se possível, tente executar o ssh daemon apenas quando você souber que estará acessando a máquina em um futuro próximo e desligue-a depois

  3. Acostume-se a passar pelos logs do sistema. Se você começar a perceber algo suspeito, introduza mecanismos de segurança adicionais, como tabelas IP ou batimento de porta .

rozcietrzewiacz
fonte
10
Upvoted para a bondade ascii ...
jasonwryan
Obrigado pela explicação detalhada. Vou digerir isso daqui a pouco e comentar.
hari
Eu entendi o seu ponto completamente. Minha pergunta é: eu configurei (certo ou errado - não tenho certeza) meu roteador netgear. O que eu preciso fazer a seguir?
hari
2
Dê uma olhada na minha edição (abaixo) sobre o acesso SSH externo.
rozcietrzewiacz
Obrigado pela informação. Eu tenho o que você está tentando transmitir. Minha pergunta é: o que eu preciso fazer para que qualquer pessoa (que tenha acesso) na Internet possa, por exemplo, executar o navegador no freebsd box. Como eu configuro isso?
hari
3

Existem algumas maneiras de conseguir isso. O mais fácil é provavelmente configurar o que é conhecido como DMZ. A maneira mais segura, no entanto, é no seu roteador configurar uma rota estática na porta 22 para o IP do seu servidor.

Recursos:

Mark D
fonte
Obrigado. Eu fiz a parte no roteador netgear: configurei o portforwarding desta maneira: service: HTTP port: 80 server ip: 192.168.1.16 - aqui esse ip é o ip da minha caixa do freebsd. O que eu devo fazer a seguir?
hari
Configure um teste fora da sua localização. Pessoalmente, basta ligar o meu telefone ao meu laptop e tentar ssh'ing no meu endereço IP. Suponho que você saiba o seu endereço IP externo. Ou, como alternativa, você pode tentar visitar seu servidor web.
Mark D
O SSH não funciona no meu IP externo. Preciso fazer alguma coisa no meu servidor freebsd?
hari
Você pode SSH da sua rede interna?
Mark D
Sim. Eu posso fazer isso
hari
1

Isso pode ser feito pelo seu roteador. Em algum roteador, esse recurso é chamadoVirtual Server

Veja abaixo parte da imagem, existem dois exemplos de encaminhamento de porta. Um é da Web e outro é do SSH. No primeiro caso, qualquer solicitação no seu WAN IP, ou seja, o IP do seu roteador com porta 80será encaminhado para um IP da LAN ( 192.168.2.4neste caso)
Com esse recurso, você pode obter serviços em execução no seu PC / servidor executando na LAN de qualquer lugar do mundo ou seja, esses serviços não se limitam à LAN
Encaminhamento de porta ou servidor virtual em um roteador

Edward Torvalds
fonte