Proteja seu Servidor Minecraft: Guia Definitivo de Proxy com AWS (Grátis!)

Deseja hospedar um servidor de Minecraft em sua casa sem expor seu endereço IP? É totalmente possível! Basta configurar um proxy gratuito usando a Amazon Web Services para proteger seu servidor contra ataques de negação de serviço (DDoS). Vamos explicar como fazer isso.

Este guia é aplicável a qualquer servidor de jogos, não apenas ao Minecraft. Ele simplesmente encaminha o tráfego em uma porta específica. Você precisará ajustar a porta padrão do Minecraft (25565) para a porta utilizada pelo seu servidor de jogos.

Como Funciona?

Imagine que você quer criar um servidor de Minecraft e torná-lo acessível pela internet. Gerenciar um servidor não é complicado. Eles são fáceis de instalar, utilizam apenas um núcleo de processamento e mesmo os servidores com muitas modificações não consomem mais do que 2 a 3 GB de RAM com alguns jogadores online. Você pode facilmente executar um servidor em um laptop antigo ou em segundo plano no seu computador desktop, em vez de pagar para alguém hospedá-lo para você.

No entanto, para que as pessoas se conectem a ele, você precisa divulgar seu endereço IP. Isso acarreta alguns problemas. É um grande risco de segurança, especialmente se o seu roteador ainda estiver com a senha de administrador padrão. Além disso, você fica vulnerável a ataques de negação de serviço distribuído (DDoS), que podem não apenas interromper seu servidor de Minecraft, mas também derrubar sua conexão com a internet até que o ataque seja atenuado.

Você não precisa permitir que as pessoas se conectem diretamente ao seu roteador. Em vez disso, você pode utilizar um pequeno servidor Linux na Amazon Web Services, Google Cloud Platform ou Microsoft Azure – todos oferecem planos gratuitos. Este servidor não precisa ser poderoso o suficiente para hospedar o Minecraft; ele apenas encaminha a conexão para você. Isso permite que você compartilhe o endereço IP do servidor proxy em vez do seu próprio.

Vamos supor que alguém queira se conectar ao seu servidor. Essa pessoa insere o endereço IP do seu proxy AWS no cliente Minecraft. Um pacote é enviado para o proxy na porta 25565 (a porta padrão do Minecraft). O proxy está configurado para identificar o tráfego da porta 25565 e redirecioná-lo para o seu roteador doméstico. Isso ocorre nos bastidores – a pessoa que está se conectando nem percebe.

Seu roteador doméstico precisa então ser configurado para encaminhar a conexão para o seu computador. Seu PC executa o servidor e responde ao pacote do cliente. Ele o envia de volta ao proxy, e o proxy reescreve o pacote para que pareça que o próprio proxy está respondendo. O cliente não tem ideia de que tudo isso está acontecendo e simplesmente acredita que o proxy é o sistema que está executando o servidor.

É como adicionar um roteador extra na frente do seu servidor, da mesma forma que seu roteador doméstico protege seu computador. Este novo roteador, no entanto, é executado na Amazon Web Services e se beneficia da mitigação de DDoS de camada de transporte, que é oferecida gratuitamente com todos os serviços AWS (conhecida como AWS Shield). Se um ataque for detectado, ele será mitigado automaticamente sem perturbar seu servidor. Se, por algum motivo, o ataque não for interrompido, você sempre pode desligar a instância e cortar a conexão com sua casa.

Para gerenciar o proxy, você usará um utilitário chamado sslh. Ele é projetado para multiplexação de protocolos; se você quiser executar SSH (geralmente na porta 22) e HTTPS (porta 443) na mesma porta, terá problemas. O sslh fica na frente e direciona as portas para os aplicativos corretos, resolvendo esse problema. Mas ele faz isso no nível da camada de transporte, como um roteador. Isso significa que podemos reconhecer o tráfego do Minecraft e encaminhá-lo para o seu servidor doméstico. Por padrão, o sslh não é transparente, o que significa que ele reescreve os pacotes para ocultar seu endereço IP residencial. Isso impede que alguém o rastreie com ferramentas como o Wireshark.

Criando e Conectando a um Novo VPS

Para começar, você precisará configurar o servidor proxy. Isso é mais fácil se você já tiver alguma experiência com Linux, mas não é obrigatório.

Acesse o site da Amazon Web Services e crie uma conta. Você precisará fornecer informações do seu cartão de débito ou crédito, mas isso é apenas para evitar que pessoas criem contas duplicadas; você não será cobrado pela instância que está criando. O plano gratuito expira após um ano, então lembre-se de desativá-lo quando terminar. A Google Cloud Platform oferece uma instância f1-micro gratuita o tempo todo, se você preferir usá-la. O Google também oferece um crédito de $300 por um ano, que você pode usar para hospedar um servidor na nuvem.

A AWS cobra um valor pela largura de banda. Você ganha 1 GB grátis, mas é cobrado $0,09 por GB excedente. Na realidade, você provavelmente não ultrapassará esse limite, mas fique atento caso veja alguma cobrança pequena em sua conta.

Após criar sua conta, procure por “EC2”. Esta é a plataforma de servidores virtuais da AWS. Pode ser necessário esperar um pouco para que a AWS habilite o EC2 em sua nova conta.

Na aba “Instâncias”, selecione “Iniciar instância” para abrir o assistente de criação.

Você pode selecionar “Amazon Linux 2 AMI” ou “Ubuntu Server 18.04 LTS” como sistema operacional. Clique em “Próximo” e será solicitado a escolher o tipo de instância. Selecione t2.micro, que é a instância do plano gratuito. Você pode executar esta instância 24 horas por dia, 7 dias por semana, dentro dos limites do plano gratuito da AWS.

Selecione “Rever e iniciar”. Na próxima página, selecione “Iniciar” e você verá uma janela de diálogo. Clique em “Criar novo par de chaves” e, em seguida, em “Baixar par de chaves”. Esta é a sua chave de acesso à instância, então não a perca – guarde-a na pasta Documentos por segurança. Após o download, clique em “Iniciar instâncias”.

Você será levado de volta à página de instâncias. Localize o IP público IPv4 da sua instância, que é o endereço do seu servidor. Se desejar, você pode configurar um AWS Elastic IP (que não muda durante as reinicializações) ou até mesmo um nome de domínio gratuito com dot.tk, se não quiser ter que voltar a esta página para encontrar o endereço.

Anote o endereço para usar mais tarde. Primeiro, você precisará editar o firewall da instância para liberar a porta 25565. Na aba “Grupos de segurança”, selecione o grupo que sua instância está utilizando (provavelmente launch-wizard-1) e clique em “Editar”.

Adicione uma nova regra TCP personalizada e defina o intervalo de portas como 25565. A origem deve ser definida como “Em qualquer lugar” ou 0.0.0.0/0.

Salve as alterações, e o firewall será atualizado.

Agora vamos acessar o servidor via SSH para configurar o proxy. Se você estiver usando macOS ou Linux, pode abrir o terminal. Se você estiver no Windows, precisará usar um cliente SSH, como o PuTTY, ou instalar o subsistema Windows para Linux. Recomendamos esta última opção, pois é mais consistente.

A primeira coisa a fazer é acessar a pasta de documentos, onde o arquivo de chave está:

cd ~/Documents/

Se você estiver usando o subsistema Windows para Linux, sua unidade C estará localizada em /mnt/c/ e você deverá executar o comando cd para a pasta de documentos:

cd /mnt/c/Users/username/Documents/

Use o sinalizador -i para indicar ao SSH que você deseja usar o arquivo de chave para se conectar. O arquivo tem a extensão .pem, então você deve incluir:

ssh -i keyfile.pem [email protected]

Substitua “0.0.0.0” pelo seu endereço IP. Se você criou um servidor Ubuntu em vez de AWS Linux, conecte-se como usuário “ubuntu”.

Você deverá obter acesso e ver a mudança do prompt de comando para o prompt do servidor.

Configurando o SSLH

Você vai precisar instalar o sslh usando o gerenciador de pacotes. Para AWS Linux, use o yum; para Ubuntu, use o apt-get. Pode ser necessário adicionar o repositório EPEL no AWS Linux:

sudo yum install epel-release
sudo yum install sslh

Depois de instalado, abra o arquivo de configuração com o nano:

nano /etc/default/sslh

Altere o parâmetro RUN= para “yes”:

Abaixo da linha final do DAEMON, digite o seguinte:

DAEMON_OPTS="--user sslh --listen 0.0.0.0:25565 --anyprot your_ip_address:25565 --pidfile /var/run/sslh/sslh.pid

Substitua “your_ip_address” pelo seu endereço IP residencial. Se você não souber seu IP, pesquise “Qual é o meu endereço IP?” no Google, sim, é sério.

Essa configuração faz com que o proxy sslh escute em todas as interfaces de rede na porta 25565. Substitua esse valor por um número de porta diferente se o seu cliente Minecraft usar uma porta diferente, ou se você jogar um jogo diferente. Normalmente, com sslh, você combina diferentes protocolos e os encaminha para locais diferentes. Para nosso propósito, no entanto, queremos simplesmente combinar todo o tráfego possível e redirecioná-lo para your_ip_address:25565.

Pressione Control + X e, em seguida, Y para salvar o arquivo. Digite o seguinte para habilitar o sslh:

sudo systemctl enable sslh
sudo systemctl start sslh

Se systemctl não estiver disponível em seu sistema, pode ser necessário usar o comando service.

O sslh agora deve estar em execução. Certifique-se de que seu roteador doméstico está encaminhando a porta 25565 para seu computador. Você pode atribuir um endereço IP estático ao seu computador para que ele não mude.

Para verificar se as pessoas podem acessar seu servidor, insira o endereço IP do proxy em um verificador de status online. Você também pode inserir o IP do seu proxy no cliente Minecraft e tentar entrar. Se não funcionar, verifique se as portas estão abertas nos grupos de segurança da sua instância.