El logo de Minecraft.

¿Quieres ejecutar un servidor de Minecraft desde casa sin revelar tu dirección IP? ¡Usted puede! Simplemente configure un proxy gratuito con Amazon Web Services para proteger su servidor de ataques de denegación de servicio. Te mostraremos cómo.

Esta guía funcionará para cualquier servidor de juegos, no solo para Minecraft. Todo lo que hace es tráfico de proxy en un puerto específico. Solo tienes que cambiar el puerto 25565 de Minecraft a cualquier puerto en el que se ejecute tu servidor de juegos.

¿Cómo funciona esto?

Supongamos que desea alojar un servidor de Minecraft y abrirlo a Internet. No es tan difícil ejecutar uno. Son fáciles de instalar, solo usan un subproceso de procesamiento, e incluso los servidores altamente modificados no toman más de 2 a 3 GB de RAM con algunos jugadores en línea. Puede ejecutar fácilmente un servidor en una computadora portátil vieja o en segundo plano en su computadora de escritorio en lugar de pagarle a otra persona para que lo aloje por usted.

Pero para que la gente se conecte a él, debe dar su dirección IP. Esto presenta algunos problemas. Es un riesgo de seguridad importante, especialmente si su enrutador aún tiene la contraseña de administrador predeterminada. También lo deja abierto a ataques distribuidos de denegación de servicio (DDOS), que no solo detendrían su servidor de Minecraft, sino que también podrían apagar su Internet hasta que el ataque ceda.

No tiene que permitir que las personas se conecten directamente a su enrutador. En su lugar, puede alquilar una pequeña caja de Linux en Amazon Web Services, Google Cloud Platform o Microsoft Azure, todos los cuales tienen niveles gratuitos. Este servidor no tiene que ser lo suficientemente fuerte como para alojar el servidor de Minecraft, simplemente reenvía la conexión por ti. Esto le permite dar la dirección IP del servidor proxy en lugar de la suya.

Digamos que alguien quiere conectarse a su servidor, por lo que escribe la dirección IP de su proxy de AWS en su cliente de Minecraft. Se envía un paquete al proxy en el puerto 25565 (el puerto predeterminado de Minecraft). El proxy está configurado para coincidir con el tráfico del puerto 25565 y reenviarlo a su enrutador doméstico. Esto sucede detrás de escena: la persona que se conecta ni siquiera lo sabe.

El enrutador de su hogar debe ser reenviado a puerto para reenviar la conexión a su PC real. Su PC ejecuta el servidor y responde al paquete del cliente. Lo reenvía al proxy, y luego el proxy reescribe el paquete para que parezca que el proxy es el que responde. El cliente no tiene idea de que esto está sucediendo y simplemente piensa que el proxy es el sistema que ejecuta el servidor.

Es como agregar otro enrutador frente al servidor de la misma manera que el enrutador de su hogar protege su computadora. Sin embargo, este nuevo enrutador se ejecuta en Amazon Web Services y obtiene la mitigación completa de DDOS de la capa de transporte que viene gratis con cada servicio de AWS ( llamado AWS Shield ). Si se detecta un ataque, se mitiga automáticamente sin molestar a su servidor. Si no se  detiene por algún motivo, siempre puede apagar la instancia y cortar la conexión a su casa.

Para manejar el proxy, usa una utilidad llamada sslhEstá destinado a la multiplexación de protocolos; si quisiera ejecutar SSH (generalmente el puerto 22) y HTTPS (puerto 443) en el mismo puerto, tendría problemas. sslh se sienta al frente y redirige los puertos a las aplicaciones previstas, resolviendo este problema. Pero lo hace a nivel de la capa de transporte, como un enrutador. Esto significa que podemos hacer coincidir el tráfico de Minecraft y reenviarlo a su servidor doméstico. sslh es, por defecto, no transparente, lo que significa que reescribe paquetes para ocultar la dirección IP de tu casa. Esto hace que sea imposible que alguien lo olfatee con algo como Wireshark.

Crear y conectarse a un nuevo VPS

Para comenzar, ha configurado el servidor proxy. Esto definitivamente es más fácil de hacer si tiene algo de experiencia en Linux, pero no es obligatorio.

Dirígete a Amazon Web Services y crea una cuenta. Debe proporcionar la información de su tarjeta de débito o crédito, pero esto es solo para evitar que las personas creen cuentas duplicadas; no se le cobra por la instancia que está creando. El nivel gratuito caduca después de un año, así que asegúrese de apagarlo una vez que haya terminado con él. Google Cloud Platform tiene una f1-micro instancia disponible de forma gratuita todo el tiempo si prefiere usarla. Google también ofrece un crédito de $ 300 por un año, que podría usar para ejecutar un servidor en la nube adecuado.

AWS cobra un poco por el ancho de banda. Obtiene 1 GB gratis, pero paga $ 0.09 por GB por cualquier cosa que supere eso. Siendo realistas, probablemente no repasará esto, pero vigílelo si ve un cargo de 20 centavos en su factura.

Después de crear su cuenta, busque "EC2". Esta es la plataforma de servidor virtual de AWS. Es posible que deba esperar un poco a que AWS habilite EC2 para su nueva cuenta.

Escriba "EC2" en la barra de búsqueda de la plataforma del servidor virtual de AWS.

En la pestaña "Instancias", seleccione "Iniciar instancia" para que aparezca el asistente de inicio.

Haga clic en "Instancias" y luego seleccione "Iniciar instancia".

Puede seleccionar la "AMI de Amazon Linux 2" predeterminada o "Ubuntu Server 18.04 LTS" como sistema operativo. Haga clic en siguiente y se le pedirá que seleccione el tipo de instancia. Seleccione t2.micro, que es la instancia de nivel gratuito. Puede ejecutar esta instancia 24 horas al día, 7 días a la semana en el nivel gratuito de AWS.

Seleccione "t2.micro".

Seleccione "Revisar y lanzar". En la página siguiente, seleccione "Iniciar" y verá el cuadro de diálogo a continuación. Haga clic en "Crear un nuevo par de claves" y luego haga clic en "Descargar par de claves". Esta es su clave de acceso a la instancia, así que no la pierda, colóquela en su carpeta Documentos para su custodia. Después de que se descargue, haga clic en "Iniciar instancias".

Haga clic en "Crear un nuevo par de claves" y luego haga clic en "Descargar par de claves".  Después de que se descargue, haga clic en "Iniciar instancias".

Volverá a la página de instancias. Busque la IP pública IPv4 de su instancia, que es la dirección del servidor. Si lo desea, puede configurar una IP elástica de AWS (que no cambiará en los reinicios), o incluso un nombre de dominio gratuito con dot.tk, si no desea volver a esta página para encontrar la dirección.

Busque la IP pública IPv4 de su instancia.

Guarde la dirección para más tarde. Primero, debe editar el firewall de la instancia para abrir el puerto 25565. En la pestaña Grupos de seguridad, seleccione el grupo que está usando su instancia (probablemente launch-wizard-1), y luego haga clic en "Editar".

Haga clic en la pestaña "Grupos de seguridad" y luego seleccione el grupo (probablemente "Launch-Wizard-1") que está usando su instancia.

Agregue una nueva regla TCP personalizada y establezca el rango de puertos en 25565. La fuente debe establecerse en "En cualquier lugar" o 0.0.0.0/0.

Agregue una nueva regla TCP personalizada y establezca el rango de puertos en 25565. La fuente debe establecerse en 0.0.0.0/0 (o "En cualquier lugar").

Guarde los cambios y las actualizaciones del firewall.

Ahora vamos a SSH en el servidor para configurar el proxy; si está en macOS / Linux, puede abrir su terminal. Si está en Windows, debe usar un cliente SSH, como PuTTY o instalar el Subsistema de Windows para LinuxRecomendamos este último, ya que es más consistente.

Lo primero que debe hacer es ir  cd a la carpeta de documentos donde está el archivo de claves:

cd ~ / Documentos /

Si está utilizando el Subsistema de Windows para Linux, su unidad C se encuentra en /mnt/c/, y tiene que ir a la carpeta de documentos:

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

Use la -i bandera para decirle a SSH que desea usar el archivo de claves para conectarse. El archivo tiene una .pem extensión, por lo que debe incluir eso:

ssh -i keyfile.pem ec2-user@0.0.0.0

Reemplace " 0.0.0.0" con su dirección IP. Si creó un servidor Ubuntu en lugar de AWS Linux, conéctese como usuario "ubuntu".

Se le debe otorgar acceso y ver su símbolo del sistema cambiar al símbolo del servidor.

Configurar SSLH

Quiere instalar sslh desde el administrador de paquetes. Para AWS Linux, eso sería yum, para Ubuntu, usa apt-getEs posible que deba agregar el repositorio EPEL en AWS Linux:

sudo yum instalar epel-release
sudo yum instalar sslh

Una vez que esté instalado, abra el archivo de configuración con nano:

nano / etc / default / sslh

Cambie el RUN= parámetro a "sí":

Debajo de la DAEMON línea final , escriba lo siguiente:

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

Reemplaza " your_ip_address" con la dirección IP de tu casa. Si no conoce su IP, busque "¿cuál es mi dirección IP?" en Google, sí, en serio.

Esta configuración hace que el sslh proxy escuche en todos los dispositivos de red en el puerto 25565. Reemplácelo con un número de puerto diferente si su cliente de Minecraft usa algo diferente o si juega a un juego diferente. Por lo general, sslhempareja diferentes protocolos y los enruta a diferentes lugares. Sin embargo, para nuestros propósitos, simplemente queremos hacer coincidir todo el tráfico posible y reenviarlo a your_ip_address:25565.

Presione Control + X, y luego Y para guardar el archivo. Escriba lo siguiente para habilitar sslh:

sudo systemctl habilitar sslh
sudo systemctl start sslh

Si systemctl no está disponible en su sistema, es posible que deba usar el service comando en su lugar.

sslh ahora debería estar ejecutándose. Asegúrese de que su enrutador doméstico esté reenviando puertos y enviando tráfico 25565 a su computadora. Es posible que desee darle a su computadora una dirección IP estática para que esto no cambie.

Para ver si las personas pueden acceder a su servidor, escriba la dirección IP del proxy en un verificador de estado en  líneaTambién puede escribir la IP de su proxy en su cliente de Minecraft e intentar unirse. Si no funciona, asegúrese de que los puertos estén abiertos en los grupos de seguridad de su instancia.