Le istruzioni sono progettate per Ubuntu 14.04 a 32 bit, ma dovrebbero funzionare su tutte le versioni di Ubuntu. Questo tutorial ti insegnerà come creare un server di gioco Mod di Garry.
Accedi tramite il terminale come root.
Innanzitutto, dobbiamo assicurarci che il firewall sia sicuro per ridurre le possibilità di un problema di sicurezza. Supponendo che questo server sarà dedicato alla Mod di Garry, è sicuro bloccare assolutamente tutte le porte in entrata (incluso ICMP) oltre a quelle richieste per la Mod di Garry. L'ICMP non è richiesto per il funzionamento del server e il suo blocco completo non avrà alcun effetto negativo sulla Mod di Garry, tuttavia contribuirà a ridurre i vettori di attacco di un attacco DDoS.
Per bloccare tutte le porte non necessarie, sono richiesti i seguenti comandi:
iptables -A INPUT -p icmp --icmp-type echo-request -j DROP
iptables -A OUTPUT -p icmp --icmp-type echo-reply -j DROP
Questo in sostanza dice al firewall di ignorare ogni pacchetto ICMP che riceve e di non intraprendere alcuna azione su di esso. Questo significa anche che se qualcuno tenta di eseguire il ping del server, non riceverà risposta. La seconda riga dice al firewall di bloccare tutti i pacchetti ICMP in uscita, questo è molto meno importante, ma solo il doppio assicura che non ci saranno comunicazioni ICMP.
Successivamente, dobbiamo consentire specificamente tutte le porte richieste per Garry's Mod (27005 - 27015 incluso) con questi comandi:
iptables -I INPUT -p tcp --dport 27005:27015 -j ACCEPT
iptables -I INPUT -p udp --dport 27005:27015 -j ACCEPT
Questo dice che è consentito qualsiasi cosa sulle porte tra 27005 e 27015. Il primo comando è per TCP e il secondo è per UDP. Il secondo comando (UDP) è il più importante qui in quanto quasi tutte le comunicazioni tra il server e i giocatori vengono effettuate con UDP. Alcune persone hanno segnalato problemi con TCP bloccato, quindi per questo motivo dovremmo consentirlo.
Ora vogliamo dire al firewall di consentire le connessioni che abbiamo aperto noi stessi (o il software sul server ha). Ciò significa che se contattiamo un server, saremo in grado di vedere una risposta. Digita questo comando per consentirlo:
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
Se utilizzerai SSH per controllare il tuo server (anziché utilizzare la console nel tuo account), questo comando è necessario per consentire a SSH di funzionare sulla porta standard. Se non stai usando SSH, non eseguire questo:
iptables -I INPUT -p tcp --dport 22 -j ACCEPT
E infine, l'ultimo comando per impostare il firewall. Questo comando bloccherà tutte le connessioni in entrata oltre a quelle consentite:
iptables -A INPUT -j REJECT
Queste impostazioni vengono applicate solo fino al riavvio del nostro server, il che significa che dovremmo riconfigurarlo manualmente ogni volta che il computer si riavvia. Questo non è accettabile, quindi c'è un pacchetto da installare che salva le regole del firewall in un file e poi lo carica ogni volta che il server viene avviato. Per installare questo pacchetto, digitare quanto segue:
apt-get install iptables-persistent
Segui le istruzioni sullo schermo. Quando ti viene chiesto se desideri salvare le regole del firewall correnti, premi Sì.
Ora il nostro firewall è impostato e non sarà più necessaria alcuna configurazione per quanto riguarda il firewall.
Se stai usando SSH, c'è un pacchetto che dovresti installare che bloccherà automaticamente la connessione delle persone al server se continuano a provare la password SSH sbagliata. Questo è molto utile per evitare che la tua password SSH venga forzata brutalmente ”. Per installare il pacchetto, utilizzare il seguente comando:
apt-get install fail2ban
Fail2ban è già configurato per bloccare l'accesso delle persone dopo pochi tentativi falliti di password, quindi non è necessario configurarlo. Ora il tuo server è significativamente più sicuro di quanto non fosse quando abbiamo iniziato.
Successivamente, è necessario installare "schermo". Questo in sostanza ti consente di eseguire comandi in modo continuo, anche se ti disconnetti dal server. Questo è fondamentale per mantenere il server Mod di Garry in esecuzione ininterrottamente per lunghi periodi di tempo, specialmente quando si controlla il server con SSH. Per installare "schermo", digitare quanto segue:
apt-get install screen
Al termine dell'installazione, eseguire questo comando:
screen
Sullo schermo verrà visualizzato un disclaimer, basta premere Invio per continuare. La digitazione screennella console avvia la schermata e ti consente di lavorare all'interno di una console virtuale, se ti disconnetti da SSH o esegui il logout, questa console virtuale continuerà a funzionare con il tuo comando al lato di essa (il server Mod di Garry funziona come comando Linux, quindi questo è dove dobbiamo usare lo schermo).
Ora, prima di installare Steam, Garry's Mod e i file richiesti, abbiamo bisogno di un account dedicato ad esso. Suggerisco di chiamarlo steam. Per creare un nuovo account, digitare quanto segue:
adduser steam
È necessario utilizzare una password diversa rispetto alla password di root per mantenere tutto al sicuro. Userai molto raramente questa password. Ti verranno poste alcune domande sull'account, come il nome completo, il numero di telefono, ecc. Lascia tutto vuoto.
Ora vogliamo essere loggati nell'account "steam" mentre scarichiamo tutti i file richiesti. Ciò significa che "steam" ottiene tutta la proprietà di questi file e le autorizzazioni di Linux sono impostate correttamente senza alcuna configurazione. È molto più difficile ottenere le autorizzazioni giuste se si installa Steam come root, quindi si tenta di modificarle. Per accedere come Steam, digitare quanto segue:
su steam
Abbiamo bisogno di una directory (cartella) per salvare il software Steam. Per creare la directory, utilizzare questo comando:
mkdir ~/Steam
Ora, vogliamo essere all'interno di quella directory. Per renderlo la directory di lavoro corrente, digitare quanto segue:
cd ~/Steam
Ora è necessario scaricare il software Steam digitando:
wget http://media.steampowered.com/client/steamcmd_linux.tar.gz
Ora dobbiamo decomprimerlo e installarlo, con il seguente:
tar -xvzf steamcmd_linux.tar.gz
Se stai utilizzando un sistema operativo a 64 bit, dovrai installare librerie a 32 bit per eseguire Steam.
apt-get install lib32stdc++6
apt-get install lib32gcc1
Esegui il seguente comando per aprire Steam, digli di accedere come "anonimo" (un account Steam che chiunque può utilizzare per scaricare software gratuito dai propri server) e digli di installare il server Mod di Garry nella cartella gmodds (archiviato in la home directory dell'account Steam).
./steamcmd.sh +login anonymous +force_install_dir ../gmodds +app_update 4020 validate +quit
Possiamo aspettarci che quel comando duri a lungo, ma possiamo vederne i progressi. È possibile che questo comando fallisca, i server Steam abbastanza spesso hanno difficoltà minori che causano il fallimento di un download (o non si avviano affatto). In questo caso, semplicemente riavviarlo.
Una volta completato questo comando, avremo una copia funzionante del server Mod di Garry, tuttavia, la maggior parte dei contenuti Mod di Garry richiede l'installazione di CounterStrike: Source (abbreviato CS: S). Per installare CS: S, eseguire il comando seguente:
./steamcmd.sh +login anonymous +force_install_dir ../cssds +app_update 232330 validate +quit
Anche questo comando richiederà del tempo.
Una volta installati Garry's Mod e CounterStrike, devono essere collegati insieme usando un file di configurazione. Per fare ciò, è necessario modificare il seguente file con questo comando:
nano /home/steam/gmodds/garrysmod/cfg/mount.cfg
Sulla linea contenente "cstrike" dobbiamo rimuovere le due barre (//) all'inizio della linea, quindi sostituire l'intera parte del percorso della linea (inizia con C:/). Quella parte della linea deve essere sostituita con:
/home/steam/cssds/cstrike
L'intera riga ora dovrebbe apparire così:
"cstrike" "/home/steam/cssds/cstrike"
Dovrebbe esserci uno spazio di tabulazione all'inizio prima della parola cstrike e la linea non dovrebbe contenere una doppia barra (//) da nessuna parte. Una volta fatto, puoi salvare questo file con Ctrl + X e poi Y. Questo dice a Mod di Garry dove trovare CounterStrike in modo che possa essere usato.
Ora abbiamo un server Mod Garry di base installato. Per eseguirlo, assicurati di essere nella directory corretta con questo comando:
cd /home/steam/gmodds/
Quindi eseguire il comando seguente:
./srcds_run -game garrysmod +gamemode terrortown +maxplayers 16 +map cs_office
Una volta avviato, dovresti essere in grado di unirti digitando quanto segue nella Garry's Mod Console (NON nel terminale del server):
connect IP_ADDRESS
Sostituisci IP_ADDRESScon l'indirizzo IP del server. Se non conosci il tuo indirizzo IP, digitando quanto segue nel terminale del server ti dirai di cosa si tratta:
url -s checkip.dyndns.org|sed -e 's/.*Current IP Address: //' -e 's/<.*$//'
Se vuoi cambiare il numero di giocatori ammessi sul tuo server, ferma il server facendo Ctrl + C ed esegui di nuovo il comando start, ma sostituiscilo maxplayers 16con maxplayers x(cambia xil numero di giocatori che desideri). Per modificare la mappa predefinita (la prima mappa riprodotta), sostituirla cs_officecon il nome della mappa desiderata. E infine, per cambiare il gamemode, sostituiscilo terrortowncon il gamemode che desideri. La mod di Garry viene fornita solo con terrortown(Short for Trouble in Terrorist Town) e Sandbox per impostazione predefinita.
Per configurare ulteriormente il server, esiste un file di configurazione che può essere modificato. Ogni riga in questo file è chiamata variabile di configurazione (cVar). Esegui questo comando per modificare il file:
nano /home/steam/gmodds/garrysmod/cfg/server.cfg
I seguenti valori possono essere modificati, spiegherò presto cosa fanno ciascuno:
hostname "server name"
sv_downloadurl "http://example.com/files/"
sv_allowupload 1
sv_password "secret password"
sv_timeout 60
La modifica del valore del nome host consente di modificare il nome del server. Si chiamerà "Garry's Mod" a meno che tu non lo cambi. Ad esempio, questo chiamerà il tuo server "My cool server":
hostname "My cool server"
Puoi aggiungere tutte le variabili al file che vuoi, ogni nuova variabile ha bisogno di una nuova riga.
La sv_downloadurlvariabile consente di scegliere da dove scaricare il contenuto del server personalizzato. I contenuti personalizzati includono mappe mod, suoni, componenti aggiuntivi e trame di Garry. Per impostazione predefinita, la Mod di Garry consentirà di scaricare i dati dal tuo server solo a una velocità estremamente bassa, motivo per cui dobbiamo fornire un URL da cui i dati possano essere scaricati alla massima velocità. L'URL fornito deve essere un clone della cartella "garrysmod", quindi tutti i file saranno disponibili.
sv_allowuploadcan ha due scelte, 0 o 1, questo specifica se si desidera consentire alle persone di caricare contenuti sul server. Questo è usato solo per gli spray (grafica che i giocatori possono spruzzare sui muri) e può causare un problema di sicurezza. Gli spray sono spesso richiesti, quindi l'uso di "1" renderà felici i giocatori, ma "0" manterrà il tuo server più sicuro.
sv passwordti consente di scegliere una password per il tuo server. Ogni volta che qualcuno si unisce, gli verrà chiesta questa password e non potranno iscriversi se non ce l'hanno.
sv_timeoutè la quantità di tempo in secondi che il server deve attendere prima di dare il calcio a qualcuno che ha perso la connessione. Il server attenderà automaticamente il ripristino della connessione, ma mentre ciò accade, il giocatore sembrerà fermarsi. È meglio avere questo a 60 o meno secondi. Dopo aver modificato queste impostazioni, è necessario riavviare il server.
I componenti aggiuntivi possono anche essere installati per fornire funzionalità aggiuntive al gioco. Alcuni componenti aggiuntivi devono essere installati in un modo specifico, quindi dovresti sempre leggere le istruzioni sul loro sito, ma è così che scarichi e installeresti la maggior parte dei componenti aggiuntivi:
cd /home/steam/gmodds/garrysmod/addons/
wget http://example.com/addon.zip
unzip addon.zip
Sostituisci http://example.com/addon.zipcon l'URL della posizione in cui si trova il componente aggiuntivo. Sarà inoltre necessario modificare addon.zipil nome del file zip del componente aggiuntivo. Ora il componente aggiuntivo è stato scaricato e decompresso, è possibile eliminare il file zip per risparmiare spazio, in questo modo:
rm addon.zip
Ancora una volta, sostituisci addon.zipcon il nome effettivo del file zip.
Se il server è attualmente in esecuzione, è necessario riavviarlo con Ctrl + C ed immettere nuovamente il comando di avvio. Puoi premere la freccia su sulla tastiera per inserire automaticamente l'ultimo comando che hai eseguito.
Se perdi la connessione SSH, quando ti riconnetti dovrai emettere il screen -r command, che ti consente di riprendere da dove eri l'ultima volta (la console di gioco).