Oyun sunucularının DDos'a karşı korunması

0 Hisse senetleri
0
0
0
0

giriiş

Bu eğitim, çok basit bir güvenlik duvarı ve hız sınırlaması kurarak oyun sunucunuzu DDoS saldırılarından nasıl koruyacağınızı açıklıyor. Bu ayarlarla bile sunucunuzun DDoS saldırılarına karşı bağışık olmayacağını lütfen unutmayın. Ancak, güvenli bir güvenlik duvarı saldırı alanını en aza indirebilir ve hız sınırlama kuralları sunucunuzun aşırı yüklenmesini önlemeye yardımcı olabilir.

Ön koşullar:
  • Ubuntu ile Sunucu (Bu eğitim Ubuntu 22.04 ile test edilmiştir ancak diğer sürümlerle de çalışması gerekir.)

Adım 1 – Güvenlik Duvarı

Güvenlik nedeniyle, varsayılan olarak gelen tüm trafiği engelleyen bir güvenlik duvarınız olmalıdır. Ardından, sunucuya giriş yapmak (SSH) ve oyuna bağlanmak (TCP/UDP) için gereken protokollere/portlara erişime izin vermek üzere istisnalar ekleyebilirsiniz. Güvenlik duvarınızı daha da güçlendirmek isterseniz, yalnızca erişime izin verilen IP adreslerini de belirtebilirsiniz. Başka herhangi bir IP adresinden gelen istekler otomatik olarak düşürülecektir. Bu eğitim, gelen tüm trafiği nasıl engelleyeceğinizi ve şunları nasıl yapacağınızı açıklamaktadır:

  • Oyun portuna herkesin erişebilmesine izin verin.
  • Sadece seçili IP'ler oyun portuna erişebilir.

Ubuntu'daki varsayılan güvenlik duvarı UFW'dir. Bu eğitimde iptables kullanılmaktadır. Yalnızca tek bir güvenlik duvarı kullandığınızdan emin olun. Birden fazla farklı güvenlik duvarı kullanmak önerilmez, çünkü bu güvenlik duvarlarının kuralları birbiriyle çakışabilir ve kafa karışıklığına yol açabilir.

Zaten herhangi bir kuralınız olup olmadığını kontrol etmek için aşağıdakileri kullanabilirsiniz:

sudo iptables -L

اگر فایروال هنوز قوانینی ندارد، اکنون می‌توانید آن‌ها را اضافه کنید. وقتی خط مشی پیش‌فرض برای ترافیک ورودی را روی «DROP» تنظیم می‌کنید، بلافاصله تمام اتصالات پایان می‌یابد. به همین دلیل، ابتدا باید مطمئن شوید که اتصالات SSH را مجاز کرده اید تا همچنان بتوانید به سرور خود دسترسی داشته باشید.

اگر از پورت پیش‌فرض SSH استفاده نمی‌کنید، حتماً در دستورات زیر 22 را جایگزین کنید.

sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT 
sudo ip6tables -A INPUT -p tcp --dport 22 -j ACCEPT

اکنون که فایروال راه اندازی شده است، می توانید پورت بازی خود را باز کنید.فقط IP های انتخاب شده به پورت بازی دسترسی داشته باشند.اگر آی‌پی بازیکنانی که به بازی ملحق می‌شوند را می‌دانید و آی‌پی‌ها تغییر نمی‌کنند، می‌توانید فقط به آن IP‌ها دسترسی داشته باشید:

sudo iptables -A INPUT -s <203.0.113.1>,<198.51.100.1> -p tcp --dport <your_game_port> -j ACCEPT
sudo iptables -A INPUT -s <203.0.113.1>,<198.51.100.1> -p udp --dport <your_game_port> -j ACCEPT
 

Oyun portuna herkesin erişmesine izin ver Bu kuralla, herkes oyununuza erişebilir:

sudo iptables -A INPUT -p tcp --dport <your_game_port> -j ACCEPT
sudo iptables -A INPUT -p udp --dport <your_game_port> -j ACCEPT

Yeni kurallar eklenmeli. Bunları görüntülemek için sudo iptables -L komutunu kullanabilirsiniz. Kurallar varsayılan olarak kalıcı değildir ve bir sonraki yeniden başlatmada kaybolur. Kalıcı hale getirmek için şunu yükleyin:

sudo apt update && sudo apt install iptables-persistent

حالا قوانین خود را ذخیره کنید:

sudo iptables-save | sudo tee /etc/iptables/rules.v4
sudo ip6tables-save | sudo tee /etc/iptables/rules.v6

دفعه بعد که سرور خود را راه اندازی مجدد می کنید، قوانین ذخیره شده در فایل دوباره اعمال خواهند شد. هنگامی که قوانین جدید iptables را اضافه می کنید، باید دوباره دستور iptables-save را برای به روز رسانی فایل ها اجرا کنید.

sudo iptables -L --line-numbers # Tüm kuralları sayılarla listele sudo iptables -D INPUT # Bir GİRİŞ kuralını numarayı belirterek silin

مرحله 2 – محدود کردن نرخ

"1. Adım"da açıklandığı gibi bir güvenlik duvarı kurmak güvenliği artırmaya yardımcı olur. Ancak, oyun portunu herkese açık hale getirmek, olası saldırı yüzeyini ortaya çıkarır. Iptables ve Fail2Ban, izin verilen istek sayısını sınırlamanıza olanak tanır. Nasıl yapılacağı aşağıda açıklanmıştır:

  • IP başına istek sayısını sınırlayın.
  • Tüm IP'lerden gelen isteklerin sayısını sınırlayın.
Adım 2.1 – IP başına istek sayısını sınırlayın.

Bu adımda istekleri sınırlamak için Fail2Ban ve istekleri kaydetmek için iptables kullanılır.

Başlamadan önce, hem iptables hem de Fail2Ban'ın kullanılabilir olduğundan emin olmanız gerekir. Fail2Ban'ın çalışıp çalışmadığını kontrol etmek için systemctl status fail2ban komutunu kullanabilirsiniz. Ubuntu'ya kurulum:

apt install fail2ban
systemctl enable --now fail2ban

به iptables بگویید تلاش های دسترسی را ثبت کنند

sudo iptables -I INPUT -p tcp --dport <your_game_port> -m conntrack --ctstate NEW -j LOG --log-level 6 --log-prefix "GameServerAccess: "

اکنون Iptables تمام تلاش‌ها برای دسترسی به پورت TCP <your_game_port> را در فایل /var/log/syslog ثبت می‌کند. وقتی فایل را مشاهده می کنید، خواهید دید که تمام تلاش ها برای دسترسی به پورت بازی پیشوند GameServerAccess داده می شود. قاعده را پایدار کنید:

sudo iptables-save | sudo tee /etc/iptables/rules.v4

یک فیلتر اضافه کنید در فایل /var/log/syslog، فقط ورودی‌های با پیشوند GameServerAccess: مرتبط هستند. فایل زیر را ایجاد کنید تا به Fail2Ban بگویید آن ورودی ها را فیلتر کند:

sudo nano /etc/fail2ban/filter.d/gameserveraccess.conf

اضافه کردن محتوا:

[Definition]
failregex = GameServerAccess: .* SRC=<HOST>
ignoreregex =

به Fail2Ban بگویید تعداد درخواست‌های هر IP را محدود کند و برای IPهایی که از حد مجاز فراتر می‌روند، زمان ممنوعیت تعیین کنید. logpath به Fail2Ban می گوید که IP ها را از کجا دریافت کنید. فیلتری که ما ایجاد کردیم به Fail2Ban می‌گوید فقط IPهایی را که با پیشوند GameServerAccess ثبت شده‌اند نظارت کند.

sudo nano /etc/fail2ban/jail.local

İçerik ekle:

[game-server]
enabled = true
filter = gameserveraccess
logpath = /var/log/syslog
maxretry = 7
findtime = 30
bantime = 120

Yukarıdaki ayarlar, her IP'nin 30 saniyede 7 istek göndermesine izin verir. Bir IP bu sınırı aşarsa, 120 saniye boyunca engellenir. Farklı bir sınır belirlemek isterseniz, 7, 30 ve 120 değerlerini buna göre değiştirebilirsiniz.

Her şey ayarlandıktan sonra Fail2Ban'ı yeniden başlatın:

sudo systemctl restart fail2ban
Adım 2.2 – Tüm IP'lerden gelen isteklerin sayısını sınırlayın

iptables ile limit modülünü kullanarak belirli bir zaman dilimi içinde yapılabilecek toplam yeni bağlantı sayısını sınırlayabilirsiniz. Limit modülünü kullanırken, –limit ve –limit-burst seçenekleri bir zaman dilimi ve bir limit parametresi belirler.

Eski güvenlik duvarı kuralını silin. Oyun portunu "1. Adım"da herkese açtıysanız, kuralı şimdi silebilirsiniz. Aşağıdaki hız sınırlama kurallarıyla artık bu kurala ihtiyacınız yok.

sudo iptables -L --line-numbers # Get the line number of "ACCEPT anywhere tcp dpt:<your_game_port>"
sudo iptables -D INPUT <line-number> # Delete the rule that accepts all incoming requests to your game port

100 limit parametresi ve yarım dakikalık (30 saniye) döngü süresi ayarlamak için yeni kurallar eklemek üzere aşağıdaki komutları çalıştırın. Farklı limitler belirlemek isterseniz, 100 ve 2/dak değerlerini buna göre değiştirebilirsiniz.

sudo iptables -A INPUT -p tcp --dport <your_game_port> -m conntrack --ctstate NEW -m limit --limit 2/min --limit-burst 100 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport <your_game_port> -m conntrack --ctstate NEW -j DROP
İlk kural sunucuya erişime izin verir. Bu kural, belirtilen aralıktaki tüm istekler için geçerlidir. Sınıra ulaşıldığında, bu kural artık eşleşmez. İkinci kural, sunucuya erişimi reddeder. Bu kural, ilk kural artık eşleşmediğinde geçerlidir.
iptables kuralları varsayılan olarak kalıcı değildir. Kuralları kalıcı hale getirmek için /etc/iptables/rules.v4 dosyasını güncellemeniz gerekir:
sudo iptables-save | sudo tee /etc/iptables/rules.v4

Sunucunuzu bir sonraki başlatışınızda dosyada kayıtlı kurallar yeniden uygulanacaktır.

Adım 3 – Engelleme Kuralları

"2. Adım"daki hız sınırına ulaşıldığında, hiç kimse your_game_port TCP portuna erişemez. Ancak, istekler sınır dahilinde olduğu sürece tüm isteklere erişim izni verilir. Bu, meşru ve gayrimeşru istekleri de kapsar. Aşağıdaki kural, SYN bayrağı olmadan yeni bağlantıları keser:

sudo iptables -I INPUT -p tcp ! --syn -m conntrack --ctstate NEW -j DROP

Her şey tamamlandıktan sonra kurallarınızı tekrar kaydetmeniz gerekiyor:

sudo iptables-save | sudo tee /etc/iptables/rules.v4

Sonuç

Lütfen bu ayarların DDoS saldırılarını tamamen önlemek için yeterli olmadığını ve daha fazla DDoS azaltma ayarıyla güvenliği artırmak için her zaman yer olduğunu unutmayın. Ancak, bu eğitimde sunulan ayarlarla artık DDoS saldırılarına karşı ilk savunma hattınız ve üzerine inşa edebileceğiniz bir şeyiniz var.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Ayrıca Şunları da Beğenebilirsiniz

CentOS 6/7'ye IBSng nasıl kurulur

CentOS 6/7'de IBSng Kurulum Eğitimi Bu makalede, centOS 6/7'de IBSng kurulum eğitimi size yardımcı olmak için sağlanmıştır…