Como ssh com segurança em uma máquina em casa pela Internet

8

Estarei viajando em breve e tenho uma máquina que executa vários trabalhos cron etc. Eu preciso fazer logon remotamente para verificar os resultados dos trabalhos executados e fazer algum trabalho na máquina.

Aqui estão os fatos destacados:

  1. A máquina a ser conectada (nave-mãe) está executando o Ubuntu 14.0.4 LTS
  2. A nave-mãe está conectada à Internet através de uma LAN em casa, portanto, possui um endereço IP público.
  3. O endereço IP é atribuído dinamicamente.
  4. Vou me conectar à nave-mãe usando um laptop executando o Ubuntu 15.10

Prefiro usar ssh em vez de VNC, devido a problemas de largura de banda - além disso, tudo o que preciso é da linha de comando.

Qual é a melhor maneira de conectar-se remotamente com segurança à minha máquina?

Homunculus Reticulli
fonte
SSH é seguro. Qual é o seu problema com isso?
Mostafa Ahangarha
VNC é um controle remoto gráfico. Você quer dizer VPN?
TheWanderer
ah ahtechraf, eu entendi. Enviei uma votação de aprovação
TheWanderer
Basta ler um bom guia, há uma seção de melhor criptografia dedicada ao ssh por aí. E desabilite o login da senha!
Braiam
No bate-papo, vejo que você pensou em autenticação com senhas em vez de senhas. O que você deve procurar é permitir apenas a autenticação de chave pública / privada.
Oliphaunt - reinstala Monica em

Respostas:

14

Sua melhor aposta é provavelmente executar um servidor SSH em uma porta não padrão, como 2020. Isso evita a maioria das tentativas de ataques de força bruta da Web, pois esses bots tendem a procurar apenas nas portas padrão.

Você também precisará atribuir ao servidor um endereço IP estático na LAN, pois ele precisa estar acessível o tempo todo. Você pode definir isso System Settings --> Network. Para evitar conflitos de endereço IP, também é aconselhável que você informe ao servidor DHCP (o roteador na maioria dos casos) que esse endereço IP foi utilizado. O método varia de acordo com o modelo, mas deve haver uma área em algum lugar na configuração do roteador que permita reservar endereços IP.

O motivo do IP estático é que você precisa configurar o encaminhamento de porta na configuração do seu roteador. Isso permite que as conexões da porta para o seu IP externo sejam roteadas para essa porta no seu servidor.

Se o seu endereço IP público for dinâmico, o que provavelmente é, convém configurar algum tipo de serviço DNS dinâmico. Minha recomendação para este serviço é No-IP . Ele fornece um subdomínio gratuito que sempre aponta para seu IP público. Essa configuração requer a instalação de um programa em uma máquina sempre ativa na sua LAN (chamada DUC, fornecida pela No-IP).

Depois de configurar o servidor SSH como desejar, faça o SSH digitando

ssh user@remotehostip -p XXX

ou usando o cliente SSH / SFTP que você preferir.

Se alguma dessas seções precisar de instruções mais detalhadas, comente e as adicionarei.

Se alguém mais tiver problemas para seguir, aqui está uma sala de bate-papo com etapas mais / mais detalhadas: http://chat.stackexchange.com/rooms/37251/discussion-between-homunculus-reticulli-and-zacharee1

O andarilho
fonte
+1 Obrigado @ Zacharee1 pela pronta resposta. Registrei um domínio para minha finalidade, usando no-ip. Eu segui todos os passos. A última etapa é onde estou perdida: configurando o roteador para encaminhamento de porta. Eu poderia fazer com alguma ajuda nesta área, se possível. Obrigado
Homunculus Reticulli
@HomunculusReticulli Qual é o seu modelo de roteador?
TheWanderer 20/03
Além disso, não consigo ver onde / como atribuir o endereço IP estático. Estou usando o Ubuntu Trusty Tahir
Homunculus Reticulli 20/16 '13:
1
No-IP está lá porque você tem um endereço externo dinâmico
TheWanderer
1
@BharadwajRaju que não é algo que eu possa explicar em um comentário. Olhar para cima como para definir um computador o Ubuntu como um roteador, e você vai encontrar algo
TheWanderer
1

Além da resposta do Zacharee1, você deve instalar o Fail2ban ou o DenyHosts (obtenha o .deb dos repositórios do Precise). Você não deve se autenticar com as chaves se estiver viajando. Use uma senha "segura" também. Talvez configure uma conta de usuário dedicada com acesso reduzido para os horários em que você não precisa ser administrador.

Eu não tocaria nas configurações de rede do servidor, o IP estático pode ser atribuído a partir do roteador. O endereço IP do roteador deve ser o endereço "gateway" atribuído no DHCP. Nos casos em que não é (!), O endereço padrão deve ser escrito embaixo dele em algum lugar. Se você alterou isso, deveria ter deixado o último valor sozinho. Portanto, se você tiver uma rede doméstica de classe C, o endereço será abcx, onde abc corresponde a todos os outros endereços IP e x é o valor final do adesivo do roteador. O ISP deve ter páginas de ajuda para isso em qualquer caso.

Quando você usa uma porta não padrão, evite '22' como os dígitos finais (8122, digamos). Deixa pistas.

NB. você pode acessar aplicativos baseados em X por SSH sem VNC, outro tópico inteiramente.

mckenzm
fonte
você poderia, por favor, explicar seu comentário: "Você não deve se autenticar com as chaves se estiver viajando.", isso vai contra tudo o que li até agora. Qual é a razão por trás de você dizendo isso?
Homunculus Reticulli 21/03
Por que não se deve autenticar com as chaves ao viajar ? A autenticação não se importa se você estiver viajando ou não.
UniversallyUniqueID
Você não cruzou uma fronteira ultimamente? Nunca perdeu um telefone? Suas chaves serão compartilhadas. O mesmo se aplica aos certificados. Instale um em uma máquina de cyber café por seu risco. As chaves fornecem acesso instantâneo sem uma senha, o cliente deve estar protegido, não no seu bolso traseiro.
Mckenzm