Ochrona serwera

Od HLDS.pl
(Różnice między wersjami)
Skocz do: nawigacji, wyszukiwania
(Utworzył nową stronę „kategoria:linux kategoria:SRCDS kategoria:HLDS =Opis= Ochrona serwera przed różnymi atakami i nadużyciami. Można wyróżnić kilka typów: *spam w grze ...”)
 
m (Eventscripts=)
 
(Nie pokazano 1 wersji utworzonej przez jednego użytkownika)
Linia 52: Linia 52:
 
* [http://addons.eventscripts.com/addons/view/block_crash Block crash] -- ochrona przed reliable channel overflow exploit.
 
* [http://addons.eventscripts.com/addons/view/block_crash Block crash] -- ochrona przed reliable channel overflow exploit.
 
* [http://addons.eventscripts.com/addons/view/es_anti-cheat Anti-cheat] - unconnected exploit i sv_cheat 1
 
* [http://addons.eventscripts.com/addons/view/es_anti-cheat Anti-cheat] - unconnected exploit i sv_cheat 1
 +
* [http://addons.eventscripts.com/addons/view/servsecurity ServSecurity] - skrypt zapobiegający crash'om
 +
 
=Firewall=
 
=Firewall=
 
Ochrona na innym poziomie, dzięki temu twój serwer gry nawet nie będzie świadom ataku ;)
 
Ochrona na innym poziomie, dzięki temu twój serwer gry nawet nie będzie świadom ataku ;)
 
zakładamy, że eth0 to interfejs sieciowy na którym mamy ip danego serwera gry.
 
zakładamy, że eth0 to interfejs sieciowy na którym mamy ip danego serwera gry.
<code>
+
<code><pre>
 
# Create chain reject on udp 28 flood
 
# Create chain reject on udp 28 flood
 
iptables -N REJECT_FLOOD28
 
iptables -N REJECT_FLOOD28
Linia 80: Linia 82:
 
iptables -A INPUT -i eth0 -p udp --dport 28000 -m length --length 46 -j REJECT_FLOOD46
 
iptables -A INPUT -i eth0 -p udp --dport 28000 -m length --length 46 -j REJECT_FLOOD46
 
iptables -A INPUT -i eth0 -p udp --dport 29000 -m length --length 46 -j REJECT_FLOOD46
 
iptables -A INPUT -i eth0 -p udp --dport 29000 -m length --length 46 -j REJECT_FLOOD46
</code>
+
</pre></code>
 +
 
 
=Fail2ban=
 
=Fail2ban=
 
Powyższy kod można bardzo wygodnie wykorzystać używając pakietu Fail2Ban. Przykład instalki na Debianie.
 
Powyższy kod można bardzo wygodnie wykorzystać używając pakietu Fail2Ban. Przykład instalki na Debianie.

Aktualna wersja na dzień 18:39, 16 sty 2011

Spis treści

Opis

Ochrona serwera przed różnymi atakami i nadużyciami. Można wyróżnić kilka typów:

  • spam w grze przez graczy
    • tekstowy - do tego istnieje kilka pluginów, warto się rozejrzeć
    • głosowy - tutaj przydaje się obecność admina który potrafi słyszeć wszystkich
  • DOS (denial of service) i DDOS (disturbed denial of service czyli kilka komputerów atakuje jedną maszynę)
    • najczęściej flood na rcon

Ochrona może być wprowadzona na różnych poziomach:

  • pluginu gry
  • konfigu w grze
  • konfiguracji serwera na poziomie sytsemu operacyjnego

Oczywiście wszystko zależy od tego jaki mamy dostęp do maszyny oraz zdolności administracyjnych.

Ogolne praktyki bezpieczeństwa

  • Nie rozpowszechniać haseł, zastanów się trzy razy jak ktoś pyta się o hasło.
  • Patrz w jaki sposób podajesz hasło, najlepiej aby nikt inny nie widział ;)
  • Nie dawać rcon'a nikomu, jedynie bardzo zaufanym osobom.
  • absolutnie nie dawać dostępu do paneli administracyjnych serwerami w firmach hostujących gry.
  • Każdy admin powinen mieć własne kontoi hasło jeśli w ogóle mają mieć dostęp.
  • Zmieniać rcon co dodanie/usunięcie admina.
  • Regularnie skanuj komputer co jakiś czas na wypadek wirusów / trojanów i keyloggerów.

Config

Najprosztszą metodą jest ustawienie zmiennych w konfigu serwea:

sv_rcon_banpenalty 5 --- Number of minutes that a player can be banned 1 - 60 max
sv_rcon_maxfailures 10 --- Number of times a player can retry to enter a password 1 - 20 max before being banned.
sv_rcon_minfailures 5 --- Number of times a player can retry to enter a password 1 - 20 max before being banned.
sv_rcon_minfailuretime 30 --- Number of seconds that a player has to wait until entering a password again 1 second - 60 minutes max.

Pluginy

  • Uwaga, część z nich może być już niedostępna, ew istnieją lepsze metody ochrony.
  • Należy wystrzegać się przed ładowaniem zbyt dużej ilości pluginów, bo wpływa to na stabilność serwera, szczególnie jeśli robia to samo.

Różne

Sourcemod

Eventscripts=

  • Miauw Mzx's Anti-Exploits - blokwanie exploitow
  • [1] - blokowanie przed nie podłączonymi graczami, rconem i channel overflow
  • Exploit Coverup - blokowanie przed komendami crashujacymi serwer.
  • IronWall - whatever ;D
  • Rcon LOCK - Locks players from unloading the plugin and stops players changing your rcon password.
  • Block crash -- ochrona przed reliable channel overflow exploit.
  • Anti-cheat - unconnected exploit i sv_cheat 1
  • ServSecurity - skrypt zapobiegający crash'om

Firewall

Ochrona na innym poziomie, dzięki temu twój serwer gry nawet nie będzie świadom ataku ;) zakładamy, że eth0 to interfejs sieciowy na którym mamy ip danego serwera gry.

# Create chain reject on udp 28 flood
iptables -N REJECT_FLOOD28
iptables -A REJECT_FLOOD28 -j LOG --log-prefix 'IPTABLES-FLOOD LENGTH 28: ' --log-level info
iptables -A REJECT_FLOOD28 -j DROP

# Drope the udp packets of given length
iptables -A INPUT -i eth0 -p udp --dport 27015 -m length --length 28 -j REJECT_FLOOD28
iptables -A INPUT -i eth0 -p udp --dport 27025 -m length --length 28 -j REJECT_FLOOD28
iptables -A INPUT -i eth0 -p udp --dport 27050 -m length --length 28 -j REJECT_FLOOD28
iptables -A INPUT -i eth0 -p udp --dport 28000 -m length --length 28 -j REJECT_FLOOD28
iptables -A INPUT -i eth0 -p udp --dport 29000 -m length --length 28 -j REJECT_FLOOD28


# Create chain reject on udp 28 flood
iptables -N REJECT_FLOOD46
iptables -A REJECT_FLOOD46 -j LOG --log-prefix 'IPTABLES-FLOOD LENGTH 46: ' --log-level info
iptables -A REJECT_FLOOD46 -j DROP

# Drope the udp packets of given length
iptables -A INPUT -i eth0 -p udp --dport 27015 -m length --length 46 -j REJECT_FLOOD46
iptables -A INPUT -i eth0 -p udp --dport 27025 -m length --length 46 -j REJECT_FLOOD46
iptables -A INPUT -i eth0 -p udp --dport 27050 -m length --length 46 -j REJECT_FLOOD46
iptables -A INPUT -i eth0 -p udp --dport 28000 -m length --length 46 -j REJECT_FLOOD46
iptables -A INPUT -i eth0 -p udp --dport 29000 -m length --length 46 -j REJECT_FLOOD46

Fail2ban

Powyższy kod można bardzo wygodnie wykorzystać używając pakietu Fail2Ban. Przykład instalki na Debianie. Warto jednak wcześniej zaznajomić się z manualem fail2ban.

  • instalacja pakietu
apt-get install fail2ban
  • stworzenie nowego configa dla ddos gry
nano /etc/fail2ban/filter.d/game-ddos.conf
  • dodajemy tam poniższy kod:
[Definition]
failregex= IPTABLES-FLOOD LENGTH (28|48): IN=eth0 OUT= MAC=[a-zA-F0-9:]+ SRC=<HOST> DST=([0-9]{1,3}\.?){4} LEN=28
  • rozszerzamy wpis w jail.conf
nano /etc/fail2ban/jail.conf
[game-ddos]
enabled = true
port      = 27015,27025,27050,28000,29000
protocol = udp
filter = game-ddos
logpath = /var/log/messages.log
maxretry = 3
bantime = 6000
  • następnie restart fail2ban
/etc/init.d/fail2ban stop
/etc/init.d/fail2ban start
  • a potem od czasu do czasu patrzymy na /var/log/fail2ban.log
Osobiste
Przestrzenie nazw
Warianty
Działania
HLDS.pl - Menu:
Inne
IRC
Inne sekcje:
Znajomi:
Narzędzia