My server, you can use it to TEST the VPN/PROXY and ANTI-INTRUDER IP: PLAY.SUPERNOVAMC.ONLINE
Optional: PlaceHolderAPI
%security_country% -
Returns the user's country (2-digit code) %security_vpn% -
returns false/true if you have VPN or PROXY
NetworkSecurity is a powerful plugin designed to enhance the security of your Minecraft server by verifying player locations based on their IP addresses. Prevent unauthorized access and ensure safe gameplay with the following features:
Country Blacklist: Block players from specific countries defined in the configuration.
IP Blacklist: Automatically block IP addresses that are deemed suspicious or have failed login attempts.
GeoIP Integration: Utilizes multiple GeoIP services to determine the player's country from their IP address.
Customizable Messages: All messages, including login denial reasons, are fully configurable.
API Key Configuration: Easily configure API keys for GeoIP services through the config file.
VPN and Proxy detection to avoid intruders pretending to be from countries where they are not.
It has its own ban system, temporary ban, ip ban and temporary ip ban.
Code (YAML):
# _ _ ___ _ _ __ __ ___ ___ _ __ ____ __ #| | || o \| \| | \ V / | o \| o \ / \ \ V /\ V / #| V || _/| \\ | \ / | _/| /( o ) ) ( \ / # \_/ |_| |_|\_| |_| |_| |_|\\ \_/ /_n_\ |_| # # Permission: # security.bypass.countryblocked - Prevent country ban review on a player. # security.bypass.vpn-proxy - Use in case of false positives. # security.bypass.all - Remove all protections that the addon gives to a player. # security.command.remove - Permissions to use the command: /security remove IP
# List of blocked countries, this will help prevent VPNs from users and thus have an IP blacklist to not use so many API requests. # http://country.io/names.json?ref=ipinfo.io # https://www.iplocation.net/country-codes country-mode: blacklist
# whitelist country-deny: [AF, AX, AL, DZ
]# <- blacklist #country-allow: [AF, AX, AL, DZ] <- whitelist
# IMPORTANT: Enter the API-KEY of the pages: # https://ipgeolocation.io/ # https://ipinfo.io/ api-keys:
ipgeolocation: API-KEY
ipinfo: API-KEY
proxycheck: API-KEY
# anti-proxy and anti-vpn
# For the anti-proxy and anti-vpn system to work correctly it must have the # https://proxycheck.io/ API (obligatory) detect-vpn-proxy: false
# Personalize the messages to your liking, if you want to use color code it is with "§" messages:
ip-blocked: "Acceso denegado: IP bloqueada. ¿Cree que fue un error? discord: discord.supernovamc.online" country-blocked: "Acceso denegado: Conexiones desde tu país no están permitidas. ¿Cree que fue un error? discord: discord.supernovamc.online" suspicious-activity: "Acceso denegado: Actividad sospechosa detectada. ¿Cree que fue un error? discord: discord.supernovamc.online" player-registered: "Jugador registrado {player} desde {location}." login-blocked: "Intento de inicio de sesión bloqueado para el jugador {player} desde {location}." api-switch: "Cambiando a la siguiente API." suspicious-connection: "ha sido agregada a la lista negra por intentos de inicio de sesión sospechosos." allowed-country: "Ha pasado con exito la revisión de paises permitidos." ipRemove-noPermission: "No tienes permisos para hacer eso..." ipRemove: "IP eliminada correctamente de los archivos y lista negra." ipRemove-error: "IP no encontrada..." vpn-proxy-blocked: "El uso de VPN y PROXY esta prohibido dentro del servidor." no-vpn-or-proxy: "Ha pasado correctamente el sistema antiVPN y antiPROXY." add-whitelist: "IP agregada a la Whitelist." papi-vpn-detected: "verdadero" papi-vpn-not-detected: "falso"
# Permission security.bansystem.nickname # 1. /bans nickname <Player> <Reason> # Description: Permanently bans a player by their nickname. # Example: /bans nickname Anyelo120 Hacking # Result: Player "Anyelo120" will be permanently banned with the reason "Hacking".
# Permission security.bansystem.ip # 2. /bans ip <IP Address> <Reason> # Description: Permanently bans an IP address. # Example: /bans ip 192.168.0.1 Spamming # Result: All players using the IP address "192.168.0.1" will be disconnected and banned with the reason "Spamming".
# Permission security.bansystem.tempban # 3. /bans tempban <Player/IP> <Duration> <Reason> # Description: Temporarily bans a player or IP for a specified duration. # Duration Format: # m = Minutes # h = Hours # d = Days # y = Years # Example: /bans tempban Anyelo120 1h Temporary ban for griefing # Result: Player "Anyelo120" is temporarily banned for 1 hour with the reason "Temporary ban for griefing".
# Permission security.bansystem.unban # 4. /bans unban <Player/IP> - # Description: Unbans a player or IP, whether it was a permanent or temporary ban. # Example: /bans unban Anyelo120 # Result: Player "Anyelo120" is unbanned, allowing them to reconnect to the server. BanSystem-Messages:
isAlreadyBanned: "§cYa tiene un baneo temporal. Debes esperar a que finalice para colocar otro a este/a usuario/ip" tempban-nickname: "§cHas sido baneado temporalmente. Razón: {reason}. Tiempo restante: {time_left}." tempban-ip: "§cTu IP ha sido baneada temporalmente. Razón: {reason}. Tiempo restante: {time_left}." ban-nickname: "§cHas sido baneado. Razón: {reason}" ban-ip: "§cLa dirección IP {ip} ha sido baneada. Razón: {reason}" unban-nickname: "§aJugador {player} ha sido desbaneado." unban-ip: "§aLa dirección IP {ip} ha sido desbaneada." not-found: "§cNo se encontró el jugador o la dirección IP." noPermission: "§cNo tienes permisos para usar el sistame de baneos." command-menu: -
"§6--- §eSistema de Baneo §6---" -
"§e/bans nickname <jugador> <razón> §7- Banea a un jugador por su nombre." -
"§e/bans tempban <jugador/ip> <tiempo> <razón> §7- Banea a un jugador por su nombre." -
"§e/bans ip <direcciónIP> <razón> §7- Banea una dirección IP." -
"§e/bans unban <jugador/direcciónIP> §7- Desbanea a un jugador o una dirección IP." - "§cUso: /bans <sub-comando>
" - "§cSub-comando desconocido. Usa /bans para ver la lista de comandos.
"
Features:
Country-based Access Control: Prevent players from connecting if they are from blacklisted countries.
IP-based Access Control: Block specific IP addresses to avoid repeated unauthorized login attempts.
Flexible Configuration: Customize the plugin's behavior and messages through an easy-to-edit config file.
Multi-API Support: Switch between different GeoIP services to ensure reliable IP location detection.
Enhanced Security Logging: Log all denied login attempts with detailed reasons for easy monitoring.
How to Use:
Install the Plugin: Place the NetworkSecurity.jar file in your server's plugins directory.
Configure the Plugin: Edit the config.yml file to set your API keys, blacklisted countries, and custom messages.
Run Your Server (Spigot or Paper): Start your server and enjoy enhanced security with NetworkSecurity