¿Como protejo mi servidor de Port Scan?
La solución a este problema es mucho mas simple de lo que parece. Podría ponerme a hablar de IPTables directamente pero voy a enseñaros un truco mas fácil para todos los que sois nuevos en este campo.
Empecemos sabiendo que es un Port Scan y para que los usan.
Un Port Scan es sacar todos los puertos abiertos de nuestra maquina, esto se usa para accesar a un servidor sin pasar por el bungeecord ni por el lobby de autentificacion, por lo cual entran con la cuenta del owner y se dan permisos. El modo BungeeCord: true en el spigot.yml no es de gran ayuda ya que es tan simple de saltar como crear un BungeeCord en tu pc y poner la IP y los puertos extraídos.
¿Como podemos cerrarlos?
En linux hay un programa muy sencillo de usar llamado ufw que nos permite administrar de una forma muy simple nuestras IPTables.
Lo instalaremos con:
apt-get install ufw
Vale, ahora vamos a configurarlo, por defecto viene desactivado.
ufw allow [puerto] con esto haremos que un puerto sea accesible para todo el mundo.
IMPORTANTE: Así que para comenzar abriremos el puerto de la consola, si no lo hacemos perderemos el acceso a nuestra maquina.
ufw allow 22
Si utilizamos FTP también deberemos abrir el puerto 21
ufw allow 21
Si tenemos una pagina web el 80 para que la gente la pueda ver
ufw allow 80
Y como no el puerto del BungeeCord, que pongamos seria el 25565
ufw allow 25565
Bien, pero, que pasa si tenemos otras maquinas y necesitan acceder a puertos que no quieres que nadie vea. Eso es tan simple como este comando que nos permitiría añadir una maquina para que esta lo tenga todo desbloqueado.
ufw allow from IP – Ejemplo: ufw allow from 49.203.201.11
Automáticamente la ip 49.203.201.11 tendría todos los puertos disponibles. Es importante que todas las maquinas tenga la ip de la maquina del bungee asi para que puedan accesar.
Por ultimo iniciamos la proteccion de esta manera:
ufw enable
Si queremos ver todo lo que tenemos admitido solo tendremos que poner:
ufw status
Y veremos el estado y los puertos abiertos, cerrados y las maquinas admitidas.
¿Y como protejo el authme?
Una vez mas la solución es muy sencilla, para un servidor que use AuthMe lo mejor es utilizar el AuthMe brige, esto son 2 plugins uno estará en la bungeecord y el otro en el servidor de auth, este impedirá que una persona escriba comandos o se cambie de servidor si no se ha logueado.
Aquí os dejo el link: spigotmc.org
La configuracion es de lo mas simple, solo tenemos que configurar en bungeecord los comandos admitidos a usar sin loguearse [/login y /register] y los servidores donde puedes estar sin loguearte, estos serian los lobbies de login.