Fixed FlameCord Firewall Command

This commit is contained in:
LinsaFTW 2023-01-01 13:49:49 -03:00
parent 637ee46da2
commit c612a1d8da

View File

@ -1,4 +1,4 @@
From 5565c5cccbc4421eed0422dff9e497a8fbf37be1 Mon Sep 17 00:00:00 2001 From 7ba98a5d071a376c8ce5d5afeaa64acf7002c914 Mon Sep 17 00:00:00 2001
From: LinsaFTW <25271111+linsaftw@users.noreply.github.com> From: LinsaFTW <25271111+linsaftw@users.noreply.github.com>
Date: Fri, 4 Mar 2022 13:35:53 -0300 Date: Fri, 4 Mar 2022 13:35:53 -0300
Subject: [PATCH] Antibot System Subject: [PATCH] Antibot System
@ -297,7 +297,7 @@ index 000000000..c3ccae2b6
+} +}
diff --git a/flamecord/src/main/java/dev/_2lstudios/flamecord/antibot/AddressDataManager.java b/flamecord/src/main/java/dev/_2lstudios/flamecord/antibot/AddressDataManager.java diff --git a/flamecord/src/main/java/dev/_2lstudios/flamecord/antibot/AddressDataManager.java b/flamecord/src/main/java/dev/_2lstudios/flamecord/antibot/AddressDataManager.java
new file mode 100644 new file mode 100644
index 000000000..9f74116b3 index 000000000..98d6a457e
--- /dev/null --- /dev/null
+++ b/flamecord/src/main/java/dev/_2lstudios/flamecord/antibot/AddressDataManager.java +++ b/flamecord/src/main/java/dev/_2lstudios/flamecord/antibot/AddressDataManager.java
@@ -0,0 +1,35 @@ @@ -0,0 +1,35 @@
@ -318,7 +318,7 @@ index 000000000..9f74116b3
+ return addressData.get(addressString); + return addressData.get(addressString);
+ } else { + } else {
+ AddressData data = new AddressData(addressString); + AddressData data = new AddressData(addressString);
+ +
+ addressData.put(addressString, data); + addressData.put(addressString, data);
+ +
+ return data; + return data;
@ -1417,19 +1417,18 @@ index c0d371426..403ccba98 100644
@Override @Override
diff --git a/proxy/src/main/java/dev/_2lstudios/flamecord/commands/FlameCordCommand.java b/proxy/src/main/java/dev/_2lstudios/flamecord/commands/FlameCordCommand.java diff --git a/proxy/src/main/java/dev/_2lstudios/flamecord/commands/FlameCordCommand.java b/proxy/src/main/java/dev/_2lstudios/flamecord/commands/FlameCordCommand.java
index cc76325b2..d739fc5c5 100644 index cc76325b2..05cf5b953 100644
--- a/proxy/src/main/java/dev/_2lstudios/flamecord/commands/FlameCordCommand.java --- a/proxy/src/main/java/dev/_2lstudios/flamecord/commands/FlameCordCommand.java
+++ b/proxy/src/main/java/dev/_2lstudios/flamecord/commands/FlameCordCommand.java +++ b/proxy/src/main/java/dev/_2lstudios/flamecord/commands/FlameCordCommand.java
@@ -4,6 +4,8 @@ import java.util.Collection; @@ -4,6 +4,7 @@ import java.util.Collection;
import java.util.HashSet; import java.util.HashSet;
import dev._2lstudios.flamecord.FlameCord; import dev._2lstudios.flamecord.FlameCord;
+import dev._2lstudios.flamecord.antibot.AddressDataManager;
+import dev._2lstudios.flamecord.antibot.StatsData; +import dev._2lstudios.flamecord.antibot.StatsData;
import dev._2lstudios.flamecord.configuration.MessagesConfiguration; import dev._2lstudios.flamecord.configuration.MessagesConfiguration;
import net.md_5.bungee.BungeeCord; import net.md_5.bungee.BungeeCord;
import net.md_5.bungee.api.CommandSender; import net.md_5.bungee.api.CommandSender;
@@ -27,9 +29,7 @@ private final BungeeCord bungeeCord; @@ -27,9 +28,7 @@ private final BungeeCord bungeeCord;
if (sender.hasPermission("flamecord.usage")) { if (sender.hasPermission("flamecord.usage")) {
if (args.length > 0) { if (args.length > 0) {
@ -1440,7 +1439,7 @@ index cc76325b2..d739fc5c5 100644
case "reload": { case "reload": {
// FlameCord - Collect ips from servers // FlameCord - Collect ips from servers
final Collection<String> whitelistedAddresses = new HashSet<>(); final Collection<String> whitelistedAddresses = new HashSet<>();
@@ -43,9 +43,45 @@ private final BungeeCord bungeeCord; @@ -43,9 +42,44 @@ private final BungeeCord bungeeCord;
.fromLegacyText(messagesConfiguration.getTranslation("flamecord_reload"))); .fromLegacyText(messagesConfiguration.getTranslation("flamecord_reload")));
break; break;
} }
@ -1450,14 +1449,13 @@ index cc76325b2..d739fc5c5 100644
+ int totalConnections = statsData.getTotalConnections(); + int totalConnections = statsData.getTotalConnections();
+ int lastPings = statsData.getLastPings(); + int lastPings = statsData.getLastPings();
+ int lastConnections = statsData.getLastConnections(); + int lastConnections = statsData.getLastConnections();
+ int addressCount = FlameCord.getInstance().getAddressDataManager().getAddresCount(); +
+
+ sender.sendMessage(TextComponent.fromLegacyText(messagesConfiguration.getTranslation("antibot_stats", totalPings, totalConnections, lastPings, lastConnections))); + sender.sendMessage(TextComponent.fromLegacyText(messagesConfiguration.getTranslation("antibot_stats", totalPings, totalConnections, lastPings, lastConnections)));
+ break; + break;
+ } + }
+ case "firewall": { + case "firewall": {
+ if (args.length > 2) { + if (args.length > 2) {
+ String ip = "/" + args[2]; + String ip = args[2];
+ +
+ switch (args[1]) { + switch (args[1]) {
+ case "add": { + case "add": {
@ -1489,7 +1487,7 @@ index cc76325b2..d739fc5c5 100644
} }
} }
diff --git a/proxy/src/main/java/net/md_5/bungee/connection/InitialHandler.java b/proxy/src/main/java/net/md_5/bungee/connection/InitialHandler.java diff --git a/proxy/src/main/java/net/md_5/bungee/connection/InitialHandler.java b/proxy/src/main/java/net/md_5/bungee/connection/InitialHandler.java
index c00ab4b6a..bbf9c3dba 100644 index c00ab4b6a..86021b71b 100644
--- a/proxy/src/main/java/net/md_5/bungee/connection/InitialHandler.java --- a/proxy/src/main/java/net/md_5/bungee/connection/InitialHandler.java
+++ b/proxy/src/main/java/net/md_5/bungee/connection/InitialHandler.java +++ b/proxy/src/main/java/net/md_5/bungee/connection/InitialHandler.java
@@ -22,7 +22,8 @@ import javax.crypto.SecretKey; @@ -22,7 +22,8 @@ import javax.crypto.SecretKey;
@ -1526,7 +1524,7 @@ index c00ab4b6a..bbf9c3dba 100644
+ { + {
+ if ( FlameCord.getInstance().getFlameCordConfiguration().isAntibotRatelimitLog() ) + if ( FlameCord.getInstance().getFlameCordConfiguration().isAntibotRatelimitLog() )
+ { + {
+ bungee.getLogger().log( Level.INFO, "[FlameCord] [{0}] is pinging too fast", ch.getRemoteAddress() ); + FlameCord.getInstance().getLoggerWrapper().log( Level.INFO, "[FlameCord] [{0}] is pinging too fast", ch.getRemoteAddress() );
+ } + }
+ +
+ disconnect( bungee.getTranslation( "antibot_ratelimit", addressData.getPingsSecond() ) ); + disconnect( bungee.getTranslation( "antibot_ratelimit", addressData.getPingsSecond() ) );
@ -1548,7 +1546,7 @@ index c00ab4b6a..bbf9c3dba 100644
+ { + {
+ if ( FlameCord.getInstance().getFlameCordConfiguration().isAntibotRatelimitLog() ) + if ( FlameCord.getInstance().getFlameCordConfiguration().isAntibotRatelimitLog() )
+ { + {
+ bungee.getLogger().log( Level.INFO, "[FlameCord] [{0}] is connecting too fast", ch.getRemoteAddress() ); + FlameCord.getInstance().getLoggerWrapper().log( Level.INFO, "[FlameCord] [{0}] is connecting too fast", ch.getRemoteAddress() );
+ } + }
+ +
+ disconnect( bungee.getTranslation( "antibot_ratelimit", addressData.getConnectionsSecond() ) ); + disconnect( bungee.getTranslation( "antibot_ratelimit", addressData.getConnectionsSecond() ) );
@ -1574,7 +1572,7 @@ index c00ab4b6a..bbf9c3dba 100644
+ { + {
+ if ( FlameCord.getInstance().getFlameCordConfiguration().isAntibotAccountsLog() ) + if ( FlameCord.getInstance().getFlameCordConfiguration().isAntibotAccountsLog() )
+ { + {
+ bungee.getLogger().log( Level.INFO, "[FlameCord] [{0}] has too many accounts", ch.getRemoteAddress() ); + FlameCord.getInstance().getLoggerWrapper().log( Level.INFO, "[FlameCord] [{0}] has too many accounts", ch.getRemoteAddress() );
+ } + }
+ +
+ disconnect( bungee.getTranslation( "antibot_accounts", addressData.getNicknames().size() ) ); + disconnect( bungee.getTranslation( "antibot_accounts", addressData.getNicknames().size() ) );
@ -1585,7 +1583,7 @@ index c00ab4b6a..bbf9c3dba 100644
+ { + {
+ if ( FlameCord.getInstance().getFlameCordConfiguration().isAntibotNicknameLog() ) + if ( FlameCord.getInstance().getFlameCordConfiguration().isAntibotNicknameLog() )
+ { + {
+ bungee.getLogger().log( Level.INFO, "[FlameCord] [{0}] has a blacklisted nickname (" + nickname + ")", ch.getRemoteAddress() ); + FlameCord.getInstance().getLoggerWrapper().log( Level.INFO, "[FlameCord] [{0}] has a blacklisted nickname (" + nickname + ")", ch.getRemoteAddress() );
+ } + }
+ +
+ disconnect( bungee.getTranslation( "antibot_nickname", loginRequest.getData() ) ); + disconnect( bungee.getTranslation( "antibot_nickname", loginRequest.getData() ) );
@ -1596,7 +1594,7 @@ index c00ab4b6a..bbf9c3dba 100644
+ { + {
+ if ( FlameCord.getInstance().getFlameCordConfiguration().isAntibotReconnectLog() ) + if ( FlameCord.getInstance().getFlameCordConfiguration().isAntibotReconnectLog() )
+ { + {
+ bungee.getLogger().log( Level.INFO, "[FlameCord] [{0}] has to reconnect to join", ch.getRemoteAddress() ); + FlameCord.getInstance().getLoggerWrapper().log( Level.INFO, "[FlameCord] [{0}] has to reconnect to join", ch.getRemoteAddress() );
+ } + }
+ +
+ disconnect( bungee.getTranslation( "antibot_reconnect", FlameCord.getInstance().getFlameCordConfiguration().getAntibotReconnectAttempts() - addressData.getTotalConnections() ) ); + disconnect( bungee.getTranslation( "antibot_reconnect", FlameCord.getInstance().getFlameCordConfiguration().getAntibotReconnectAttempts() - addressData.getTotalConnections() ) );
@ -1607,7 +1605,7 @@ index c00ab4b6a..bbf9c3dba 100644
+ { + {
+ if ( FlameCord.getInstance().getFlameCordConfiguration().isAntibotCountryLog() ) + if ( FlameCord.getInstance().getFlameCordConfiguration().isAntibotCountryLog() )
+ { + {
+ bungee.getLogger().log( Level.INFO, "[FlameCord] [{0}] has his country blocked from the server", ch.getRemoteAddress() ); + FlameCord.getInstance().getLoggerWrapper().log( Level.INFO, "[FlameCord] [{0}] has his country blocked from the server", ch.getRemoteAddress() );
+ } + }
+ +
+ disconnect( bungee.getTranslation( "antibot_country", addressData.getCountry() ) ); + disconnect( bungee.getTranslation( "antibot_country", addressData.getCountry() ) );
@ -1619,7 +1617,7 @@ index c00ab4b6a..bbf9c3dba 100644
// We can just check by UUID here as names are based on UUID // We can just check by UUID here as names are based on UUID
if ( !isOnlineMode() && bungee.getPlayer( getUniqueId() ) != null ) if ( !isOnlineMode() && bungee.getPlayer( getUniqueId() ) != null )
diff --git a/proxy/src/main/java/net/md_5/bungee/connection/UpstreamBridge.java b/proxy/src/main/java/net/md_5/bungee/connection/UpstreamBridge.java diff --git a/proxy/src/main/java/net/md_5/bungee/connection/UpstreamBridge.java b/proxy/src/main/java/net/md_5/bungee/connection/UpstreamBridge.java
index 66332af4e..289cce0c3 100644 index 66332af4e..667364aea 100644
--- a/proxy/src/main/java/net/md_5/bungee/connection/UpstreamBridge.java --- a/proxy/src/main/java/net/md_5/bungee/connection/UpstreamBridge.java
+++ b/proxy/src/main/java/net/md_5/bungee/connection/UpstreamBridge.java +++ b/proxy/src/main/java/net/md_5/bungee/connection/UpstreamBridge.java
@@ -4,11 +4,16 @@ import com.google.common.base.Preconditions; @@ -4,11 +4,16 @@ import com.google.common.base.Preconditions;
@ -1650,7 +1648,7 @@ index 66332af4e..289cce0c3 100644
+ { + {
+ if ( FlameCord.getInstance().getFlameCordConfiguration().isAntibotFastChatLog() ) + if ( FlameCord.getInstance().getFlameCordConfiguration().isAntibotFastChatLog() )
+ { + {
+ bungee.getLogger().log( Level.INFO, "[FlameCord] [{0}] is chatting too fast", con.getCh().getRemoteAddress() ); + FlameCord.getInstance().getLoggerWrapper().log( Level.INFO, "[FlameCord] [{0}] is chatting too fast", con.getCh().getRemoteAddress() );
+ } + }
+ +
+ con.disconnect( bungee.getTranslation( "antibot_fastchat" ) ); + con.disconnect( bungee.getTranslation( "antibot_fastchat" ) );
@ -1661,7 +1659,7 @@ index 66332af4e..289cce0c3 100644
+ { + {
+ if ( FlameCord.getInstance().getFlameCordConfiguration().isAntibotPasswordLog() ) + if ( FlameCord.getInstance().getFlameCordConfiguration().isAntibotPasswordLog() )
+ { + {
+ bungee.getLogger().log( Level.INFO, "[FlameCord] [{0}] has entered a repeated password", con.getCh().getRemoteAddress() ); + FlameCord.getInstance().getLoggerWrapper().log( Level.INFO, "[FlameCord] [{0}] has entered a repeated password", con.getCh().getRemoteAddress() );
+ } + }
+ +
+ con.disconnect( bungee.getTranslation( "antibot_password", checkManager.getPasswordCheck().getRepeatCount() ) ); + con.disconnect( bungee.getTranslation( "antibot_password", checkManager.getPasswordCheck().getRepeatCount() ) );
@ -1705,7 +1703,7 @@ index e2911d5e4..1e3608fa4 100644
{ {
callback.done( null, cause ); callback.done( null, cause );
diff --git a/proxy/src/main/java/net/md_5/bungee/netty/HandlerBoss.java b/proxy/src/main/java/net/md_5/bungee/netty/HandlerBoss.java diff --git a/proxy/src/main/java/net/md_5/bungee/netty/HandlerBoss.java b/proxy/src/main/java/net/md_5/bungee/netty/HandlerBoss.java
index 14e3004fc..abca28bd7 100644 index 14e3004fc..3fce5ff11 100644
--- a/proxy/src/main/java/net/md_5/bungee/netty/HandlerBoss.java --- a/proxy/src/main/java/net/md_5/bungee/netty/HandlerBoss.java
+++ b/proxy/src/main/java/net/md_5/bungee/netty/HandlerBoss.java +++ b/proxy/src/main/java/net/md_5/bungee/netty/HandlerBoss.java
@@ -12,6 +12,8 @@ import io.netty.handler.timeout.ReadTimeoutException; @@ -12,6 +12,8 @@ import io.netty.handler.timeout.ReadTimeoutException;
@ -1726,7 +1724,7 @@ index 14e3004fc..abca28bd7 100644
+ if (FlameCord.getInstance().getFlameCordConfiguration().getAntibotFirewalledExceptions().contains(reason)) + if (FlameCord.getInstance().getFlameCordConfiguration().getAntibotFirewalledExceptions().contains(reason))
+ { + {
+ FlameCord.getInstance().getAddressDataManager().getAddressData(ctx.channel().remoteAddress()).firewall(reason); + FlameCord.getInstance().getAddressDataManager().getAddressData(ctx.channel().remoteAddress()).firewall(reason);
+ BungeeCord.getInstance().getLogger().log( Level.INFO, "[FlameCord] [{0}] was firewalled because of " + reason, ctx.channel().remoteAddress() ); + FlameCord.getInstance().getLoggerWrapper().log( Level.INFO, "[FlameCord] [{0}] was firewalled because of " + reason, ctx.channel().remoteAddress() );
+ } + }
+ // Flamecord end - Antibot System + // Flamecord end - Antibot System
+ +
@ -1734,7 +1732,7 @@ index 14e3004fc..abca28bd7 100644
{ {
boolean logExceptions = !( handler instanceof PingHandler ); boolean logExceptions = !( handler instanceof PingHandler );
diff --git a/proxy/src/main/java/net/md_5/bungee/netty/PipelineUtils.java b/proxy/src/main/java/net/md_5/bungee/netty/PipelineUtils.java diff --git a/proxy/src/main/java/net/md_5/bungee/netty/PipelineUtils.java b/proxy/src/main/java/net/md_5/bungee/netty/PipelineUtils.java
index ffea15992..4bb8eb460 100644 index ffea15992..f04fdd9ce 100644
--- a/proxy/src/main/java/net/md_5/bungee/netty/PipelineUtils.java --- a/proxy/src/main/java/net/md_5/bungee/netty/PipelineUtils.java
+++ b/proxy/src/main/java/net/md_5/bungee/netty/PipelineUtils.java +++ b/proxy/src/main/java/net/md_5/bungee/netty/PipelineUtils.java
@@ -59,6 +59,20 @@ public class PipelineUtils @@ -59,6 +59,20 @@ public class PipelineUtils
@ -1747,7 +1745,7 @@ index ffea15992..4bb8eb460 100644
+ { + {
+ if ( FlameCord.getInstance().getFlameCordConfiguration().isAntibotFirewallLog() ) + if ( FlameCord.getInstance().getFlameCordConfiguration().isAntibotFirewallLog() )
+ { + {
+ BungeeCord.getInstance().getLogger().log( Level.INFO, "[FlameCord] [{0}] is firewalled from the server. ({1})", new Object[]{ ch.remoteAddress(), firewallReason } ); + FlameCord.getInstance().getLoggerWrapper().log( Level.INFO, "[FlameCord] [{0}] is firewalled from the server. ({1})", new Object[]{ ch.remoteAddress(), firewallReason } );
+ } + }
+ +
+ ch.close(); + ch.close();