Proteggere il server dai tentativi di “Grief”

Scritto da zPirroZ3007 il 24 Dic 2015 Nessun commento.

Una piccola precisazione.

Prima di iniziare, ci tengo a precisare che questa guida l’avevo scritta precedentemente sul mio forum, e poi trasformata in pdf. Potete trovarla su questo link. Ok, ora possiamo cominciare.


Introduzione
Oggi vorrei proporvi una guida che secondo me, sarà utile a molte persone, cioè, come proteggere il vostro server da attacchi finalizzati a griffare, che non sono altro che bambinate fatte dalle solite crew di bambini.

 

Come funziona?

Il funzionamento è semplice, si tratta di alcuni accorgimenti da fare, o di alcuni “bugs” In alcuni plugins e protocolli da sistemare, che vengono sfruttati dai “Griefers” (Messo tra virgolette, perché questo non è griefing.) per ottenere i privilegi d’amministratore, e così facendo, avere l’accesso a tutti i plugins, CommandBlock compresi.

 

Che host consiglio per questo?

Sconsiglio assolutamente gli host con Multicraft. (GameHosting, per esempio, nulla da togliere a loro sono un host perfetto, e le loro protezioni AntiDDoS sono delle migliori, però per questi lavori non consiglio di prendere da loro dei multicraft, bensì delle VPS.) Consiglio prevalentemente server con sopra installato Linux e SSH (VPS, Dedicati) Invece il sistema operativo consigliato è CentOS 6, vi elenco un po’ di host da cui potrete prenderli. || Host per VPS: OVH (Caldamente consigliato per chi inizia da poco nel mondo di linux, e inoltre anche essendo VPS hanno un firewall proprio configurabile.) GameHosting (Non protetti da AntiDDoS, al primo DDoS sospendono la VPS) HostxHost (Sono dei rivenditori di server OVH, messi solo perché fanno pagare tramite cellulare)|| Host per dedicati: OVH (Prezzi alti, ma protezione DDoS Migliore) SoYouStart (Ramo ufficiale di OVH, vende solo dedicati con prezzi bassi. Sprovvisto di AntiDDoS. Consigliato solo se avete BungeeCord da qualche Hosting esterno protetto) GameHosting (Caldamente consigliato SemiDedicato S Protezione DDoS Avanzata, costa poco ed ha una protezione DDoS ottima per installare BungeeCord e tutto il resto. UDP Chiuse, purtroppo quindi niente TeamSpeak 3. E inoltre non supporta plugins come MCItaliaRewards)|| Host per VPS BungeeCord: BlazingFast (Consigliati da 2 GB In su da loro) GameHosting (Hanno dei prezzi un po’ altini per quelle VPS, ma sono ottimi.)

 

Accorgimenti prima di iniziare.

Se siete già stati griffati, probabilmente il griefer ha aggiunto i privilegi di amministrazione ad altri account, così in caso di ban usare quelli. Vi consiglio di controllare il permissions.yml di PermissionsEx (/plugins/PermissionsEx/permissions.yml) per eventuali account pexati, e ops.json per eventuali account oppati. (/ops.json)


Passo n° 1 AuthMe

AuthMe, un plugin tanto utile, quanto facile da aggirare. Consiglio di usare la versione Reloaded Per evitare alcuni bugs. Inoltre, per il login consiglio di usare il plugin IPlocker Programmato da me per far sì che i player con l’IP statico possano entrare solo con il loro IP, usate anche il plugin BlockThatName Perché basta mettere un asterisco, uno spazio o un qualsiasi carattere speciale accanto al vostro nick per aggirare AuthMe avendo così tutti i permessi di amministrazione, questo plugin fixa tutto.

 

Passo n° 2 OP

È buona norma riservare l’OP Solo al Founder del server, e nessun altro, perché non credo che il founder si faccia rubare l’account, sopratutto dopo questo tutorial. Ma è meglio riservarlo proprio a nessuno se volete stare sereni.. Comunque, utilizzate il plugin AntiOPCommand Sempre programmato da me. Questo perché? Perché se qualcuno con l’op viene rubato l’account, il tutorial intero non avrà più senso, inquanto potrà usare i CommandBlock e aggirare qualsiasi protezione che voi abbiate installato compreso AntiOPCommand. ATTENZIONE Sto dicendo l’OP non il permesso ‘*’

 

● Passo n° 3 La 1.8 e i suoi numerosi bugs.

La 1.8 credo sia la versione di Minecraft più buggata a livello server. Esistono dei semplici Exploit da usare tramite client che ti permettono di creare libri che se aperti da qualcuno dello staff ti opperanno, oppure chest per far crashare il server, cliccare un blocco e far crashare il server, un cartello per opparsi, e altre diavolerie varie. Come si fixa tutto questo? Semplice! Procuratevi PaperSpigot! Vi elenco la versione per 1.8 e 1.7 visto che anche la 1.7 ha un solo bug per far crashare, ma non opparsi, e per fortuna.

 

● Passo n° 4 BungeeCord. [*leggi questo passo solo se usi BungeeCord.]

BungeeCord è perfetto per i network, permette di collegare più server, e, con un buon lavoro, aumentare di molto l’esperienza di gioco. Però BungeeCord è stato concepito per funzionare senza falle SOLO in Online mode.
Comincio ad elencare tutti i bugs di BungeeCord, che sono molto numerosi.

Codice:
md_5:
- admin

Rimuovete ASSOLUTAMENTE Questa stringa dal vostro config. Permette a chiunque, entrando con il nick md_5 di avere i permessi di amministrazione di BungeeCord, ma non di bukkit, quindi non potrà griffare, però potrà fare vario macello. Un esempio? Stoppare BungeeCord, fare alert o teletrasportare i player negli altri server! Questa riga è stata concepita per funzionare bene solo in online mode. Non sappiamo bene perché md_5 (Sviluppatore di BungeeCord) Abbia messo questa riga… Forse per avere i privileggi di amministrazione su server online mode che usano BungeeCord… ? Piuttosto che rimuovere totalmente la riga sarebbe consigliato cambiare md_5 con il nick del Founder, così avrà lui i privilegi di amministrazione di BungeeCord, e nessun altro.

Codice:
default:
- bungeecord.command.list
admin:
- bungeecord.command.alert
- bungeecord.command.end
- bungeecord.command.ip
- bungeecord.command.reload

Settate i permessi di BungeeCord così per avere una maggiore sicurezza. Ovviamente se mettete plugins su BungeeCord che hanno dei permessi per player e staff, sta a voi configurarli. Nulla di così difficile, basterà creare i vari gruppi, e piazzarci i nomi nel config. Il gruppo default vale per tutti i player che non siano scritti nel config, e per lo staff, se non l’avete inserito. Consiglio ovviamente di creare gruppi appositi per loro, per esempio il Moderatore:

Codice:
moderatore:
- bungeecord.command.alert
- bungeecord.command.list

BungeeCord ed AuthMe, non vanno molto d’accordo per quanto riguarda la sicurezza. Basterà fare il comando /server per teletrasportarvi in qualsiasi server con il nick di un qualsiasi staff, aggirando così il login. Come risolvere? Semplice! Installate il plugin BungeeAuthMeBridge Che, come suggerisce il nome, è un “ponte” fra BungeeCord ed AuthMe, non permettendo così, all’utente, di fare comandi di BungeeCord e di bukkit prima di aver effettuato il login, ci sono 2 jar, uno da mettere nella lobby, e uno da piazzare sulla cartella plugins di BungeeCord.

Ultima fase, ma non meno importante, LE PORTE. Queste sono il bug più sfruttato in assoluto per griffare server. Una piccola spiegazione, per esempio abbiamo il server Factions, senza AuthMe, che gira nella porta 25566, per fare un esempio. Con un port scan attraverso appositi tool, basterà trovare la porta, crearsi un BungeeCord in locale, entrare con il nick del Founder, che, non essendoci protezioni, accetterà la connessione, e facendo così entrare l’utente con i privilegi d’amministrazione. La soluzione? Semplice! Chiuderle. Ma come? Se siete sotto linux (E qui ci ricolleghiamo al punto degli host…) installate il programma IPTables, che è un ottimo firewall. E fate questi comandi:

Codice:
iptables -I INPUT ! -s <IP di BungeeCord> -p tcp --dport <Porta> -j DROP

Ovviamente se avete BungeeCord in locale, inserite l’IP 0.0.0.0

E salvate con

Codice:
service iptables save

E poi

service iptables restart

Se invece state usando Multicraft, per chiudere le porte usate un plugin, che ricordiamo, è sempre un plugin, quindi non avrà la stessa efficienza di IPTables, ma farà egregiamente il suo lavoro, il suo nome è IPWhitelist E vi basterà inserire l’IP Del vostro BungeeCord, nel config, che automaticamente il plugin rifiuterà qualsiasi altra persona che entri nel server senza l’IP di quel BungeeCord. Ovviamente, avrete sempre gli IP reali dei players.

 

● Passo n° 5 NoCheatPlus e la funzione OnlyConsole.

Se usate NoCheatPlus siete avvantaggiati per questa guida! C’è una funzione che permette di far eseguire alcuni comandi solo alla console (Vi elencherò di seguito i comandi da mettere.) Abilitate nel config la funzione OnlyConsole, e inserite i seguenti comandi.

Codice:
consoleonly:
  active: true
  message: '&cQuesto comando è abilitato solo alla console!'
  commands:
  - op
  - bukkit:op
  - minecraft:op
  - deop
  - minecraft:deop
  - bukkit:deop
  - co purge
  - core purge
  - coreprotect purge
  - coreprotect:co purge
  - coreprotect:core purge
  - coreprotect:coreprotect purge
  - plugman unload
  - plugman:plugman unload
  - mvdelete
  - mv delete
  - multiverse-core: null
  - plugman disable
  - plugman:plugman disable
  - pl
  - plugins
  - bukkit:plugins
  - bukkit:pl

Ovviamente, in base alle vostre preferenze, potete aggiugnere più comandi da non far fare allo staff, o a qualsiasi persona con il loro account che stia cercando di griffare diciamo che questa è una protezione a “Doppio strato” Se qualcuno riesce a penetrare nell’account di un membro del vostro staff, e quindi, avere i privilegi di amministrazione, si troverà interdetto nel non poter usare alcuni comandi, anche avendo griffato… Distrutto le costruzioni, etc. Vi basterà un semplice rollback per mettere apposto tutto, visto che non potrà cancellare mondi, o fare co purge.
Questi comandi sono i consigliati, però potete aggiungerne altri, volendo.

 

● Passo n° 6 CoreProtect.

Avrei voluto dare per scontato che voi lo conosceste, ma, per come ho visto, per molti non è così.
Installate CoreProtect, molto utile, che traccia ogni blocco piazzato, rimosso, o modificato, e traccia anche WorldEdit.

In caso voi vogliate far tornare indietro il server, per esempio, prima di un grief, se il grief è stato 2 ore fa, noi faremo il comando:

Codice:
/co rollback t:3h r:<Raggio dei blocchi, consigliato 50, o 100.>

Così, senza accedere ai backup, avrete rimesso apposto tutto.

 

● Passo n° 7 Backups.

Ho aggiunto questo passo, perché ho pensato che in molti, leggendo la guida, potessero pensare di poter smettere di fare i backup, dopo aver completato essa, ma, NON È COSI’! C’è sempre una minoranza di casi, in cui bisogna ricorrere ai backup per un grief, ovviamente è una minoranza, ma per restare con il cuor leggero è sempre meglio averli! Consiglio di usare un server di storage che potete acquistare da SoYouStart E poi, tramite protocollo FTP, poter caricare i vostri file, oppure, se lo spazio nel disco della vostra macchina lo permette, inserite i file in un .zip con linux, è molto più semplice, visto i programmi che esistono, con Multicraft, invece, è un vero casino! Perché vi tocca scaricare i file (E se sono numerosi, e avete la connessione lenta è ancora peggio.) Tramite FTP, e inserirli in un .zip e poi caricarli sul vostro server di storage, invece con linux, basta un comando.

 

● Passo n° 8 Multicraft.

Nonostante vi abbia sconsigliato di farlo utilizzate comunque Multicraft? Bene, però avrete degli accorgimenti da fare.
Se i permessi non sono stati settati bene su Multicraft, permetteranno a qualsiasi utente di utilizzare la vostra console tramite link. I permessi vanno settati così e NON modificati.

[IMG]


 

Extra:

 

 

● BruteForce, cambiate la porta SSH.

Se usate Linux, cambiate la porta SSH per evitare che qualcuno usi un programma chiamato “BruteForce” E inizi a provare password a caso, fino a ricostrure quella della vostra macchina, e quindi avere l’accesso alla console! Un vero guaio! Vi basta modificare la stringa nel config di OpenSSH, nella directory /etc/ssh/sshd_config Modificando la stringa:

Codice:
#Port 22

Con

Codice:
Port 69165

Rimuovendo l’hashtag, poi fare il comando:

Codice:
service sshd restart

Da quel momento in poi tramite il vostro client SSH dovrete connettervi dalla porta 69165, per esempio, però dipende come volete metterla voi.

 

● Proteggersi dai Bot, guida aggiornata.

 

I Bot, iniziano ad apparire solitamente quando chi cerca di griffarvi, non riesce, e si rassegna a non poterlo fare, cercano di farvi crashare il server.
Alla lunga riescono veramente a farvi crashare, e diventano molto fastidiosi, quindi, come risolvere?
Ovviamente avendo Linux, usando iptables eseguite i comandi:

Codice:
iptables -A INPUT -i eth0 -p tcp -m tcp --dport <Porta>  -m state --state NEW -m recent --set --name DEFAULT --mask 255.255.255.255 --rsource

E

iptables -A INPUT -i eth0 -p tcp -m tcp --dport <Porta> -m state --state NEW -m recent --update --seconds 60 --hitcount 4 --name DEFAULT --mask 255.255.255.255 --rsource -j DROP

Ovviamente non scordate di salvare con

service iptables save

E restartate iptables con

service iptable restart

Installate il plugin AntiJoinBot Che blocca i proxy di alcuni programmi per bottare.

Con questo dovreste stare apposto per i bot, dal momento che ogni IP Che effettua più di 4 richieste verrà bannato dal firewall per 60 secondi.

 

● Nascondere i plugins.

Far vedere i propri plugins in giro sarebbe un vero guaio! Oltretutto perché gli altri potrebbero copiare il vostro server. Come risolvere?
Installate il plugin: AntiCommandTab Per bloccare il /<TAB>

Aggiungete al gruppo degli utenti i permessi:

Codice:
-essentials.help
-bukkit.command.help
-bukkit.command.plugins
Leggi anche ...

Questo articolo è stato scritto da Andrea

Studente universitario di Informatica con la passione di Minecraft, ho costruito Minecraft-Server.it per condividere tutte le informazioni che ho raccolto negli ultimi 4 anni nella gestione dei servers Minecraft.