como configurar um servidor Ubuntu para ser (com segurança) disponível a partir da Internet?

7

(peça desculpas antecipadamente, sou um pro-windows recém-convertido para o Ubuntu ... se minhas perguntas forem óbvias, por favor me avise).

Eu quero construir um servidor Ubuntu conectado continuamente à internet. Eu possuo apenas o endereço IP. O principal objetivo do servidor é servir como um controlador de código-fonte (provavelmente git ou svn ... ainda não escolheu), mas também alguns outros usos ocasionais (compartilhamento de arquivos com a família ou cliente, backup pessoal, host de aplicações web Eu posso escrever, etc. Eu também gostaria de poder acessar a qualquer momento para o computador para administrá-lo, mesmo atrás de algum proxy do cliente que permite apenas http ou https

Quais são os passos padrão para conseguir isso?

  • Meu primeiro é configurar o servidor openssh. É possível (e "bastante" seguro) abri-lo à Internet na porta padrão (ou seja, compatível com firewall / proxy do cliente).
  • É possível configurar um servidor VPN, executado a partir de um plug-in de página da Web (também hospedado pelo servidor)?
  • como eu tenho apenas um endereço IP (IP V4 e IPV 6 na verdade, mas acho que o endereço IP V6 já estará acessível na rede de clientes), posso fazer com que o apache e outros softwares de servidor coexistam no mesmo portas padrão?

obrigado antecipadamente;)

    
por Steve B 13.06.2011 / 20:59

1 resposta

10

Quando configurado corretamente, o OpenSSH é seguro, mesmo na porta padrão. Afastá-lo da porta padrão evita que os arquivos de log sejam preenchidos por tentativas de login não autorizadas. Mais detalhes no final.

É muito perigoso acessar seu servidor se você não tiver controle sobre o computador que deve se conectar ao seu servidor (o que eu acho que é a razão pela qual você precisa usar um plug-in do navegador)

O OpenVPN pode ser configurado para compartilhar portas TCP com um servidor HTTP / HTTPS, a partir de seu página de manual :

  

- porta do host de compartilhamento de porta |       Quando executado no modo de servidor TCP, compartilhe a porta OpenVPN com outro   aplicativo, como um servidor HTTPS.   Se o OpenVPN detectar uma conexão com seu   porta que está usando um não-OpenVPN   protocolo, ele fará proxy na conexão   para o servidor no host: port. Atualmente   projetado apenas para funcionar com HTTP / HTTPS,   embora seja teoricamente   possível estender a outros protocolos   como ssh.

Não é recomendado usar o OpenVPN com uma conexão TCP devido à sobrecarga (handshake de 3 vias TCP). Se você não tem escolha, você pode tentar.

Usando o OpenVPN, você pode evitar qualquer restrição de porta imposta a você e proteger a conexão. Por favor, consulte Como faço para configurar o OpenVPN para que eu possa usar a Internet com segurança de um hotspot não seguro? para obter um guia sobre como configurar OpenVPN.

Você não pode compartilhar as portas a menos que um aplicativo as suporte (como o OpenVPN), então devo desapontá-lo sobre isso.

servidor SSH

A autenticação baseada em senha, sem limitar as tentativas de conexão, está causando problemas. Por isso, é preferível usar a autenticação baseada em chave e desativar a autenticação baseada em senha.

  1. Instale o openssh-server executando sudo apt-get install openssh-server
  2. Desative a autenticação baseada em senha editando o arquivo de configuração /etc/ssh/sshd_config . Para começar a editar, execute sudo nano /etc/ssh/sshd_config . Encontre a linha #PasswordAuthentication yes e altere para PasswordAuthentication no . Por padrão, o SSH escuta na porta 22. Se você quiser alterá-lo, use uma porta abaixo de 1024 por motivos de segurança. (mude a linha com Port 22 )
  3. Para segurança extra, você pode configurar uma lista de usuários com permissão para efetuar login. Adicione uma linha com:

    AllowUsers someuser
    

    Substitua someuser pelo nome de usuário da conta que tem permissão para efetuar login. Vários nomes de usuário devem ser separados por um espaço.

  4. Gere uma chave no seu computador usando o comando ssh-keygen -t rsa . Digite os valores desejados e escolha uma frase secreta segura.
  5. Copie o conteúdo do arquivo ~/.ssh/id_rsa.pub para o arquivo /home/someuser/.ssh/authorized_keys em seu servidor. someuser é o usuário que deve ter permissão para efetuar login. (é uma única linha que deve ser copiada, nunca copia o conteúdo de um arquivo que começa com -----BEGIN RSA PRIVATE KEY
  6. Recarregue a configuração do seu servidor SSH:

    sudo reload ssh
    
  7. Se você estiver acessando remotamente seu servidor por SSH, verifique se você pode fazer uma nova conexão SSH para evitar o bloqueio.
por Lekensteyn 13.06.2011 / 21:24