Prefazione&Requisiti
Questa guida ha come scopo la creazione di un server dedicato a Counter Strike Source su Linux. Si adatta ad ogni distribuzione, per comodità e stabilità ho dapprima utilizzato Ubuntu Server 8.10 e poi per vari test su Slackware 12.2 e ho notato solamente meno carico sulla ram, ma non ci sono paragoni contro un server Windows, che ha prestazioni davvero ridicole!
Sinceramente pensavo fosse molto più difficile crearlo e molto più facile gestirlo
Non è possibile utilizzare Fastweb come ISP e avete bisogno di un ip statico. Vi consiglio di utilizzare il servizio offerto da
http://www.dyndns.com/
E usare il programma “ddclient”, installabile anche dai repositiry di Ubuntu, per inviare l’ip a dyndns, così vi basterà usare il nome ad esso associato per ritrovare l’ip, oppure semplicemente inserendolo nella ricerca server di Steam.
Sarebbe opportuno avere una connessione HDSL da almeno 2Mb, o al peggio un’ADLS con 1Mb di upload. Le prestazioni della connessione sono fondamentali.
Tutti i comandi della guida sono dati come utente root e come directory di installazione ho utilizzato /root/
Scaricare e installare HLDSUpdatetool
Nella cartella /root/
mkdir srcds_l/
cd srcds_l/
wget http://www.steampowered.com/download/hldsupdatetool.bin
chmod +x hldsupdatetool.bin
./hldsupdatetool.bin
Rispondete “yes” alla domanda che vi viene fatta.
NB: Se vi compare un errore del tipo: “sh: uncompress: command not found” quando cercate di eseguire ‘hldsupdatetool.bin’, digitate:
which gunzip
e create un link alla path risultante (se fosse “/usr/bin/gunzip”):
ln -s /usr/bin/gunzip /usr/bin/uncompress
Proseguire aggiornando l’applicazione e scaricando i files di gioco:
./steam
./steam -command update -game “Counter-Strike Source” -dir .
E adesso, tanta pazienza e aspettate il termine del download.
Aggiungere mappe
Il miglior sito da cui scaricare le mappe è:
http://www.fpsbanana.com/maps/
Ma ce ne sono molti altri. Una volta individuata una mappa, scaricatela, ed estraete tutto il suo contenuto nella cartella:
/root/srcds_l/cstrike/maps/
E aggiungere nel files “mapcycle.txt” il nome della mappa.
Configurare il server:
Il files di configurazione sono contenuti nella directory:
/root/srcds_l/cstrike/cfg/
Per modificare i files potete usare un qualsiasi editor di testo, e per agevolarvi la configurazione visitate questi siti che offrono un’interfaccia grafica e restituiscono come output le stringhe! Copia-Incolla ed è fatta!
Le varie funzioni dei files di configurazione:
../cstrike/cfg/autoexec.cfg viene utilizzato solo per i comandi, si esegue una sola volta durante l’inizializzazione di un server.
../cstrike/motd.txt è il file che contiene il testo che la gente leggerà quando la mappa cambia o quando un client si collega, potete scriverci quello che volete, è un pò il biglietto di presentazione, potete anche inserire immagini.
../cstrike/mapcycle.txt. Contiene il nome di tutte le mappe che desiderate ruotare sul vostro server. Utilizzate il nome della mappa senza senza l’estensione “. bsp”. Quindi, per la mappa “de_chateau.bsp” nel mapcycle.txt, è sufficiente aggiungere “de_chateau” nel file. Ogni nome della mappa deve essere scritto solo su di una riga di testo.
Queste sono i quattro file di configurazione di default che utilizza un server, è possibile creare altre configurazioni in maniera del tutto personalizzata.
Installare il “Mani-Admin-Plugin”
Il Mani-Admin-Pluigin è il miglior plugin disponibile per amministrare facilmente il server e aggiungere altre funzionalità altrimenti impossibili! Individuate l’ultima versione dal sito ufficiale e scaricatela nella directory /root/:
http://mani-admin-plugin.com/
E poi:
mkdir /root/srcds_l/cstrike/addons
cd /root/
wget http://mani-admin-plugin.com/mani_admin_plugin/v1_2_beta_s/mani_admin_plugin_v1_2_beta_s.zip
unzip mani_admin_plugin_v1_2_beta_s.zip
cp -rf addons/* srcds_l/cstrike/addons/
cp -rf cfg/* srcds_l/cstrike/cfg/
cp -rf materials/* srcds_l/cstrike/materials/
cp -rf sound/* srcds_l/cstrike/sound/
rm -rf addons/ cfg/ mani_admin_plugin_v1_2_beta_s.zip materials/ sound/
Poi create un files “mani_admin_plugin.vdf”
nella directory /root/srcds_l/cstrike/addons/
con il seguente contenuto:
“Plugin”
{
“file” “../cstrike/addons/mani_admin_plugin”
}
Specificate gli utenti amministratori, i gruppi, ecc.
cstrike/cfg/mani_admin_plugin/clients.txt
leggete qui per la spigazione:
http://www.mani-admin-plugin.com/index.php?option=com_content&task=view&id=24&Itemid=25
e andate qui per generarvi facilmente il file:
http://www.wildfireclan.co.uk/?act=maniclients
E infine aggiungete questa stringa nel vostro server.cfg
exec mani_server.cfg
Potete trovare qui tutte le informazioni su questo plugin:
http://www.sourceserver.info/downloads/-mani_admin_plugin_downloads/dokumentation/index.html
Configurare il router:
Bisogna forwardare le porte dal router al server così:
TCP 7002 out
TCP 5273 out
UDP 27010 out
UDP 27012 in and out
UDP 27015 in (if your server runs on this port)
Avviare il server
Il server si può avviare con diversi parametri di avvio. Il comando base è:
./srcds_run -game cstrike
Ma è consigliabile rifinirlo con:
./srcds_run -console -game cstrike +map cs_italy +ip 192.168.1.100 +maxplayers 16 -autoupdate
“+map” è la prima mappa con la quale si inizia a giocare
“+ip” è l’ip pubblico del vostro server
“+maxplayers” è il numero massimo di giocatori che ospiterà il server
Io, per comodità, ho poi creato uno script, e vi consiglio di leggere bene l’output per capire se si è avviato correttamente, per esempio io mi ero accorto che non si avviava il mani admin.
Sicurezza
Questo tipo di configurazione ha delle falle di sicurezza enormi, una volta online il vostro server sarà accessibile a tutti: proteggetevi configurando appositamente il firewall della vostra distribuzione, ancora meglio se utilizzate un firewall hardware o quello integrato del router (e che sia un router buono!). Io con iptables ho chiuso tutte le porte, sia in ingresso che in uscita e ho lasciato libere solo quelle specificate nella configurazione del router, rifiuto tutte le richieste ICMP e visto che uso ssh ho cambiato la relativa porta in ascolto, disabilitato l’accesso come root e l’unico utente che ha accesso (tra l’altro con username e password alfanumerica) ha dei privilegi ridicoli. Non sono un esperto di sicurezza informatica, ma già con questa configurazione e una password di root da 12 caratteri alfanumerici, toglie il lamerone di torno!