Estabelecer um terminal compartilhado entre dois PCs através da internet

1

Meu PC e o do meu amigo estão em duas redes locais diferentes, cada uma conectada à Internet através de um roteador, cada LAN tem apenas um IP que é temporariamente alocado pelo ISP. Que problemas temos que superar para estabelecer uma situação na qual cada um de nós possa ver o terminal do outro e digitar em nosso PC?

Além de mencionar os obstáculos, que termos você sugeriria procurar para lidar com essa situação?

    
por Abdul Al Hazred 11.02.2015 / 22:49

2 respostas

0

Para contornar a alocação temporária de endereços IP, você deve examinar o DNS dinâmico. Encontre um registrador de domínios que ofereça suporte a DNS dinâmico, depois registre um nome de domínio e siga as instruções do registrador para configurar atualizações automáticas do seu endereço IP. Isso permitirá que você se conecte ao computador do seu amigo (ou vice-versa) sem ter que se preocupar com o término do endereço IP, pois o nome do domínio sempre apontará para o endereço atribuído no momento.

No lado da LAN, cada um de vocês precisará configurar seu PC para um endereço IP interno estático se você ainda não tiver feito isso. Os detalhes de como fazer dependem da distribuição que você está usando. Por exemplo, o endereço IP interno do meu roteador é 192.168.1.1 e ele atribui endereços no intervalo de 192.168.1.100 a 192.168.1.199 para clientes DHCP na minha rede doméstica. No meu PC Debian, que eu quero poder acessar de fora da LAN, eu configurei meu adaptador de ethernet primário em /etc/network/interfaces com um endereço estático fora do intervalo de DHCP do roteador, da seguinte forma:

allow-hotplug eth0
auto eth0
iface eth0 inet static
    address 192.168.1.10
    netmask 255.255.255.0
    gateway 192.168.1.1

Em seguida, nas configurações do firewall do roteador, liguei o encaminhamento de porta para a porta TCP 22 (a porta SSH padrão) para o endereço interno 192.168.1.10 (o endereço estático do meu computador).

Antes de expor essa porta para o mundo, tome algumas providências para atenuar os ataques SSH:

  • Não permitir login root no SSH. ( PermitRootLogin no no seu arquivo de configuração do sshd.)
  • Permitir conexões apenas para um usuário específico (não raiz e sem privilégios). ( AllowUsers my_user_id your_user_id em seu arquivo de configuração sshd.) Para isso, você pode especificar seu próprio ID de usuário e seu amigo ou criar uma conta de usuário separada especificamente para esse propósito. O importante é que você não permite conexões de IDs de usuários que normalmente são criados por pacotes principais (por exemplo, mysql, www-data) que podem ter senhas padrão. Esses são alvos fáceis para as crianças de script.
  • Use uma senha strong nas contas que estão na lista de permissões na etapa acima.
  • Alternativamente, olhe para ssh-keygen para evitar a necessidade de usar uma senha depois que os dois sistemas forem autenticados entre si.
  • Instale algum software que bloqueie solicitações de conexão de um determinado host remoto após algumas falhas. Estou usando o fail2ban para essa finalidade e funciona bem.

Agora, você deve conseguir se conectar ao computador um do outro, o que apenas deixa você com o requisito de compartilhar um terminal. É aí que entra GNU Screen . Quem está hospedando a sessão só precisa iniciar um terminal, iniciar a tela e ativar o multiusuário para que o outra pessoa pode participar da sessão. (Consulte a página do manual da tela para obter detalhes sobre como ativar o multiusuário.) Depois disso, um deles ou ambos poderão se desconectar sem interromper a sessão de tela e reconectar-se a ela posteriormente. Mesmo que o ISP altere seu endereço IP (para qualquer um de vocês), matando sua conexão, você ainda pode reconectar-se após a entrada DNS ser atualizada e entrar na mesma sessão novamente.

    
por 12.02.2015 / 05:21
1

Você não forneceu um motivo pelo qual você precisa para isso, então minha resposta pode não ter a solução que você precisa. Mas a maneira mais simples de compartilhar um terminal com outro usuário é usar o tmate , que é um fork do tmux.

O Tmate permite que você inicie uma sessão (abra seu terminal e inicie o tmate), que lhe fornecerá duas strings de conexão; uma ler uma gravação (onde a outra pessoa pode digitar comandos) ou somente leitura (a outra pessoa pode ver apenas o que você digita).

A vantagem é que, depois de instalar o tmate na máquina do servidor, você não precisa abrir nenhuma porta nem instalar uma VPN. A desvantagem é que a instalação não é muito simples (não é muito complicada também), e eu não sou magro, você pode transferir arquivos.

Aqui está um rápido vídeo de demonstração do tmate em ação - link

    
por 11.02.2015 / 23:58