Proxy Join Bots

Dieses Thema im Forum "Technischer Support" wurde erstellt von GoaCraft, 13. Januar 2016.

  1. GoaCraft
    Offline

    GoaCraft

    Registriert seit:
    6. März 2015
    Beiträge:
    14
    Hey, unser Server wird gerade von ein paar Join Bots benutzt. Wobei jeder Spieler seinen eigenen Proxy und seine IP hat. Die Connections zu limitieren hat nichts gebracht, auch jegliche Plugins helfen nicht weiter, da der BungeeCord durch die massiven Spieler Anzahlen gar nicht mehr zu erreichen ist. Nun bräuchten wir Hilfe um dies zu verhindern. Danke im voraus schon mal für Lösungsvorschläge. :)

    [​IMG]
     
    #1
  2. montbit
    Offline

    montbit

    Registriert seit:
    4. Februar 2013
    Beiträge:
    188
    Minecraft:
    montbit
    Hiho,

    ich habe mal kurz eine Suchmaschine bemüht und dies hier (AntiJoinBot - Link zu Bukkit) gefunden. Keine Ahnung, ob es dagegen hilft. ;)
    Musste selber ausprobieren.

    LG monti
     
    #2
  3. Living-Bots
    Offline

    Living-Bots Verifiziert

    Registriert seit:
    7. Januar 2013
    Beiträge:
    364
    Ort:
    Bremen
    Minecraft:
    NickPicks
    Vserver, Rootserver oder Gameserver?
     
    #3
  4. GoaCraft
    Offline

    GoaCraft

    Registriert seit:
    6. März 2015
    Beiträge:
    14
    Rootserver und die AntiJoinBot Plugins helfen nichts mehr, da soviele anfragen kommen das man den Bungeecord garnicht mehr erreichen kann.
     
    #4
  5. Living-Bots
    Offline

    Living-Bots Verifiziert

    Registriert seit:
    7. Januar 2013
    Beiträge:
    364
    Ort:
    Bremen
    Minecraft:
    NickPicks
    Ich kenne diese Angriffe. Einige meiner Kunden sind ebenfalls davon betroffen. Dein Anbieter könnte es an der DDoS Protection rausfiltern. Das wird er aber wohl nicht anpassen.

    Eine Idee wäre eine Ländersperre. Also dass du per Iptables alle Länder sperrst außer zum Beispiel Deutschland. Somit erreichen die Bots den Bungee nichtmehr. Da diese zu 99% aus dem Ausland kommen
     
    #5
  6. GoaCraft
    Offline

    GoaCraft

    Registriert seit:
    6. März 2015
    Beiträge:
    14
    Danke jedenfalls für die Hilfe, an eine Länder Sperre hab ich auch als erstes gedacht, da ich gemerkt habe das die meisten IP´s aus Mexico bzw. aus der USA kommen. Aber man könnte auch einfach denn Deutsche Proxy usw. nehmen. Aber ich kann auf meinen Debian Server irgendwie keine xTables installieren es kommt immer dieser Fehler:

    Pech gehabt, es wurden keine zum aktuellen Kernel passende Headers gefunden
    und es wurden keine weiteren Kernel-Verzeichnisse angegeben.


    Wenn der zur Zeit laufende Kernel mit der Debian Distribution ausgeliefert
    wurde, installieren Sie bitte das Paket
    linux-headers-3.14.32-xxxx-grs-ipv6-64. Wenn ihr Kernel-Quellcode an einer
    unüblichen Position liegt, geben Sie diese mit der Umgebungsvariable
    KERNELDIRS bekannt oder (alternativ) als Parameter der Option --kernel-dir
    beim Aufruf vom module-assistant.
     
    #6
  7. Living-Bots
    Offline

    Living-Bots Verifiziert

    Registriert seit:
    7. Januar 2013
    Beiträge:
    364
    Ort:
    Bremen
    Minecraft:
    NickPicks
    Es ist einfacher, dann nurnoch proxies aus Deutschland zu bannen, als wenn man aus der ganzen Welt welche bannen muss.
     
    #7
  8. GoaCraft
    Offline

    GoaCraft

    Registriert seit:
    6. März 2015
    Beiträge:
    14
    Aber Deutsch, Österreich, Schweiz haben sicher auch ne ganze menge an Proxies zusammen.
     
    #8
  9. 可愛い
    Offline

    可愛い

    Registriert seit:
    19. Mai 2014
    Beiträge:
    654
    Dann prüf halt alle Verbindungen von Hand wenn du 100% Sicherheit willst. Das was Living dir vorgeschlagen hat wäre die erste Lösung. Wenn die Angriffe danach von Proxies kommen besorgst du dir eine Liste von Proxies und sperrst diese auch, das sollte kein Problem sein. Meine Vermutung ist aber, dass es sich nicht um Proxies handelt sondern Zombies aus nem Botnetz, sonst würden sich viele die IP teilen. Ich kann mir nicht vorstellen, dass jemand wegen so ner Dummheit tausende von Proxies verheizt.
     
    #9
  10. Living-Bots
    Offline

    Living-Bots Verifiziert

    Registriert seit:
    7. Januar 2013
    Beiträge:
    364
    Ort:
    Bremen
    Minecraft:
    NickPicks
    Das Problem sind Mikrotik Router. Hier gab es die letzten Monaten eine Sicherheitslücke und nun werden die als Proxies missbraucht. Die meisten davon im Ausland und bei vielen ändert sich alle 24 Stunden die IP.

    Da die Bot Software nur 1 Verbindug pro Proxy macht, lässt es sich da auch nicht limitieren.
     
    #10
  11. GoaCraft
    Offline

    GoaCraft

    Registriert seit:
    6. März 2015
    Beiträge:
    14
    #11
  12. DarkPrincess
    Offline

    DarkPrincess

    Registriert seit:
    31. August 2013
    Beiträge:
    52
    Wie wäre es hiermit fürs erste?

    Statt
    iptables -I INPUT -m set --match-set countryblock src -j DROP
    machste
    iptables -I INPUT -m set --match-set countryblock src -j ACCEPT

    und den Rest verbietest du. Ist leichter als die Länder jetzt alle einzutragen

    Edit:
    Hier ist auch noch eine möglichkeit.
     
    #12
  13. GoaCraft
    Offline

    GoaCraft

    Registriert seit:
    6. März 2015
    Beiträge:
    14
    Klingt gut, kenne mich leider nicht so gut mit iptables aus.
    Mit den Befehl würde ich wohl erstmal alle Länder blockieren oder?
    iptables -I INPUT -m set --match-set countryblock src -j DROP

    Wie füge ich jetzt bei den Befehl z.B Deutschland als Ausnahme hinzu?
    iptables -I INPUT -m set --match-set countryblock src -j ACCEPT
     
    #13
  14. DarkPrincess
    Offline

    DarkPrincess

    Registriert seit:
    31. August 2013
    Beiträge:
    52
    ACHTUNG: Wenn du keinen KVM Zugriff auf deinen Server hast, sperrst du dich ganz leicht mit IpTables aus und musst ggf den Rescue Modus starten und iptables reinigen statt setzten lassen beim Neustart, Auf keinen Fall deinen SSH Zugriffs Port vergessen mit freizugeben.

    Du musst erstmal der Anleitung folgen im ersten Link.

    Dann gehst du hin und baust dir dein iptables script z.B.
    Code (Text):
    1.  
    2. #!/bin/bash
    3.  
    4. IPADDRESS="Deine Server IP hier";
    5.  
    6. set -e
    7.  
    8. echo 0 > /proc/sys/net/ipv4/ip_forward
    9. ([ -f /var/lock/subsys/ipchains ] && /etc/init.d/ipchains stop) >/dev/null 2>&1 || true
    10. (rmmod ipchains) >/dev/null 2>&1 || true
    11.  
    12. /sbin/iptables -F
    13. /sbin/iptables -X
    14. /sbin/iptables -Z
    15.  
    16. /sbin/iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
    17. /sbin/iptables -A INPUT -p tcp ! --syn -j REJECT --reject-with tcp-reset
    18. /sbin/iptables -A INPUT -m state --state INVALID -j DROP
    19. /sbin/iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
    20. /sbin/iptables -A OUTPUT -p tcp ! --syn -j REJECT --reject-with tcp-reset
    21. /sbin/iptables -A OUTPUT -m state --state INVALID -j DROP
    22. /sbin/iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
    23. /sbin/iptables -A FORWARD -p tcp ! --syn -j REJECT --reject-with tcp-reset
    24. /sbin/iptables -A FORWARD -m state --state INVALID -j DROP
    25. /sbin/iptables -A INPUT -i lo  -j ACCEPT
    26. /sbin/iptables -A OUTPUT -o lo -j ACCEPT
    27. /sbin/iptables -A FORWARD -i lo -o lo -j ACCEPT
    28. /sbin/iptables -t mangle -F
    29. /sbin/iptables -t mangle -X
    30. /sbin/iptables -t mangle -Z
    31. /sbin/iptables -t mangle -P PREROUTING ACCEPT
    32. /sbin/iptables -t mangle -P OUTPUT ACCEPT
    33. /sbin/iptables -t mangle -P INPUT ACCEPT
    34. /sbin/iptables -t mangle -P FORWARD ACCEPT
    35. /sbin/iptables -t mangle -P POSTROUTING ACCEPT
    36. /sbin/iptables -t nat -F
    37. /sbin/iptables -t nat -X
    38. /sbin/iptables -t nat -Z
    39. /sbin/iptables -t nat -P PREROUTING ACCEPT
    40. /sbin/iptables -t nat -P OUTPUT ACCEPT
    41. /sbin/iptables -t nat -P POSTROUTING ACCEPT
    42.  
    43. #Hier jetzt alle Ports Freigeben die du brauchst z.B. 22 (SSH)/ 80 (http)/ 8443 (Plesk)/ 25565 (MC Server) u.s.w.
    44. #Für TCP Freigabe
    45. /sbin/iptables -A INPUT -p tcp -i eth0 -d ${IPADDRESS} --dport DER_PORT_HIER -m state --state NEW -j ACCEPT
    46. #Für UDP
    47. /sbin/iptables -A INPUT -p udp -i eth0 -d ${IPADDRESS} --dport DER_PORT_HIER -j ACCEPT
    48.  
    49. #Jetzt noch die Länderfreigabe
    50. #Germany und co von der Seite holen DROP mit ACCEPT ersetzen und dann hier einbinden.
    51. #z.B.mit wenn man einen Ordner der allowed_countrys hat mit der Datei germany drin. ( Achtung Rechte 755 sollte die Datei haben )
    52. ./allowed_countrys/germany
    53. ./allowed_countrys/switzerland
    54. ./allowed_countrys/austria
    55.  
    56. #Jetzt könnten wir das Pingen noch Verbieten
    57. /sbin/iptables -A INPUT -p icmp -i eth0 -d ${IPADDRESS} --icmp-type 8/0 -j DROP
    58.  
    59. #Hier jetzt die Regel für alles was oben nicht gestattet/verboten wurde:
    60. #Sämtlichen INPUT Verbieten der nicht erlaubt wurde
    61. /sbin/iptables -P INPUT DROP
    62. #Sämtliches OUTPUT erlauben
    63. /sbin/iptables -P OUTPUT ACCEPT
    64. #Unerwünschtes Forward verbieten.
    65. /sbin/iptables -P FORWARD DROP
    66.  
    67. echo 1 > /proc/sys/net/ipv4/ip_forward
    68. exit
    69.  

    Jetzt nur noch in den CronJob rein ( crontab -e )
    Und neue Zeile mit
    @reboot Pfad/zur/gerade/angegebenen/Datei &

    Fertig.

    Aber da ich es auch nicht "Studiert" habe, kann dir ein anderer bestimmt noch mehr zu IpTables sagen ;-)
     
    #14
  15. Living-Bots
    Offline

    Living-Bots Verifiziert

    Registriert seit:
    7. Januar 2013
    Beiträge:
    364
    Ort:
    Bremen
    Minecraft:
    NickPicks
    Hallo,

    http://www.ipdeny.com/ipblocks/data/countries/

    Hier findest du alle Länder Zone Files mit Ländercode nach ISO 3166.

    Ich mache das ganze mit IPSET.

    1. apt-get install ipset
    2. modprobe -v ipset
    3. modprobe -v ip_set_hash_net
    4. ipset create countrywhitelist1 hash:net (in jedem IPSET können nur 655xx ip Netze, deswegen brauchst du eventuell mehrere)
    5. die jeweilige Zonefiles von ipdeny.com ins jeweilige IPSET importieren (am besten eine Datei erstellen und vor jedes Subnetz "add countrywhitelist" schreiben und anschließend "ipset restore -! < DATEINAME")
    6. iptables -I INPUT -m set --set countrywhitelist1 src -j ACCEPT (auch hier brauchst du dann eventuell mehrere)

    und am ende dann ein drop all in den Iptables.

    Die Zonefiles werden täglich aktualisiert. Aus dem ganzen kann man sich ein kleines script bauen dass bestimmte Zonefiles täglich automatisch runnter läd, in die countrywhitelist schreibt, die vorherige ipsetliste leert und neu importiert.

    Vorteil von IPset gegenüber Iptables ist, dass es wesentlich performanter und schneller ist. Lohnt sich aber nur bei großen Listen. Bei 1 Land sicherlich nicht.
     
    #15
  16. GoaCraft
    Offline

    GoaCraft

    Registriert seit:
    6. März 2015
    Beiträge:
    14
    Funktioniert leider auch nicht bei mir schon bei dem 2. Befehle kommt wieder ein Fehler dank den Kernel.
    libkmod: ERROR ../libkmod/libkmod.c:554 kmod_search_moddep: could not open moddep file '/lib/modules/3.14.32-xxxx-grs-ipv6-64/modules.dep.bin'

    Deine einzige Möglichkeit bislang ist sowas hier http://pastebin.com/ghmg3tJd aber das bringt den Server so hart zum laggen das man z.B auf dem Teamspeak eine Ping von 1000 hat.
    Und wie genau soll ich alle IP´s für die countrywhitelist1 hinzufügen per Hand würde das ja Jahre dauern.

    Wie ist der Befehl um alles zu droppen?

    Ein Freund von mir kommt aus Österreich ich habs geschafft sein Land zu blocken nur das Problem ist das die Connection vom Server total drunter leidet. Man hat z.B deswegen nur das sein Land geblockt ist auf einmal aufm Teamspeak eine 200er Ping. Mit der Hilfe von IPset.
     
    #16