حماية خادم Conan Exiles من هجمات DDoS

نُشر في مدة القراءة: 19 دقيقة

ما المنافذ التي يحتاجها خادم Conan Exiles فعلاً، وكيف تؤمّنون RCON ومنفذ الاستعلام، ولماذا تُهاجَم خوادم PvP في نافذة الـ Raid بالتحديد، ومن أي حجم هجوم لا تفيد إلا التصفية في الشبكة الواقعة قبل الخادم.

خادم Conan Exiles الذي يتعذّر الوصول إليه تحديداً عند بداية نافذة الـ Raid نادراً ما تكون مشكلته في العتاد. ففي الغالبية العظمى من الحالات يجري هجوم، وهو يجري في اللحظة التي يُحدث فيها أكبر ضرر. يعرض هذا المقال لماذا تحتاج خوادم Conan Exiles إلى حماية من DDoS، وما تستطيعون تأمينه بأنفسكم في العشر دقائق القادمة دون تكاليف إضافية، وأين تنتهي هذه الإجراءات تقنياً، وما يجب أن يحدث بعد ذلك في الشبكة الواقعة قبل الخادم.

جميع المعطيات تتعلق بالخادم المخصص من Funcom، أي بـ ConanSandboxServer.exe أو StartServer.bat. والإعدادات موزّعة على ثلاثة ملفات في المجلد ConanSandbox\Saved\Config\WindowsServer\، وهي ServerSettings.ini وEngine.ini وGame.ini. وهذا ينطبق أيضاً إذا شغّلتم الخادم على Linux عبر طبقة توافق، لأن Funcom لا تُسلّم سوى تطبيق Windows، ولذلك يحمل المسار هناك أيضاً الاسم WindowsServer.

إذا كان الهجوم جارياً الآن: احفظوا أولاً القياسات (القسم 9)، فهي تختفي بعد انتهاء الهجوم. ولا تعدّلوا الآن أي ملف INI. فـ Conan Exiles يحتفظ بإعداداته في الذاكرة ويكتبها من جديد عند الإيقاف، وبذلك يضيع كل تغيير تجرونه على خادم قيد التشغيل.

لماذا تحتاج خوادم Conan Exiles إلى حماية من DDoS

في معظم الألعاب يكون تعطّل الخادم أمراً مزعجاً. أما في Conan Exiles فهو على خادم PvP نقلة في اللعب. فالخسائر دائمة، ولا يمكن إلحاق الضرر بقاعدة إلا داخل نافذة زمنية محددة، ومن يُخرج المدافعين من اللعبة في هذه النافذة يهاجم قاعدة بلا مدافع. وبذلك يكون للهجوم مكسب ملموس وموعد معروف مسبقاً، وهو يتكرر بمجرد أن ينجح مرة واحدة.

والنافذة الزمنية ليست سرّاً. فهي مكتوبة في ServerSettings.ini تحت RestrictPVPTime لقتال اللاعبين، وتحت RestrictPVPBuildingDamageTime لأضرار المباني، وكل مشغّل يكتبها طوعاً في اسم الخادم وفي لائحة القواعد وفي Discord، لأن اللاعبين لن يعرفوها بغير ذلك. فالمهاجم لا يحتاج إلى التجسس على شيء: يقرأ وقت الـ Raid حيث يُعلَن، ويضبط هجومه على الساعة نفسها.

والجهد المطلوب من الجهة المقابلة ضئيل إلى أقصى حد. فما يسمى خدمات booter وstresser تبيع إغراقاً موجَّهاً إلى عنوان IP محدد ومنفذ محدد بالدقيقة. وهجوم DDoS على المنفذ ⁦7777 UDP⁩ لا يشترط وصولاً إلى اللعبة ولا معرفة بخادمكم، بل يكفي العنوان ورقم المنفذ. ولهذا السبب بالذات يصيب الخوادم الصغيرة بالموثوقية نفسها التي يصيب بها الكبيرة.

ويُضاف إلى ذلك خصوصية تميّز Conan Exiles عن معظم ألعاب البقاء. فملف ServerSettings.ini يحتوي على المفتاح LogoutCharactersRemainInTheWorld. وإذا كانت قيمته True، تبقى شخصية اللاعب واقفة في العالم بعد انقطاع الاتصال بدلاً من أن تختفي. وهجوم يُخرج جميع اللاعبين من اللعبة في وقت واحد يترك عندئذٍ صفاً من الشخصيات الساكنة مع عتادها. وما يحدث تقنياً في هجوم كهذا يشرحه المقال ما هو هجوم DDoS؟.

وتقنياً تجري حركة اللعب بالكامل عبر UDP. ولا يعرف UDP أي إنشاء اتصال يمكن اشتراطه، وعناوين المرسل قابلة للتزييف. لذلك لا يحتاج المهاجم إلى الدخول إلى خادمكم ولا إلى مخاطبته بشكل صحيح لكي يولّد حِملاً. ولا يحتاج حتى إلى معرفة ما إذا كان أحد متصلاً.

المنافذ التي يتعلق بها الأمر فعلاً

يحتاج خادم Conan Exiles نحو الخارج إلى ثلاثة منافذ UDP بالضبط: 7777 و7778 و27015. وكل ما عدا ذلك اختياري أو لا ينتمي إلى الشبكة المفتوحة أصلاً. وتوثّق Funcom التوزيع على النحو التالي:

المنفذ البروتوكول الوظيفة موضع الضبط
7777 UDP حركة اللعب (الحركة والقتال والبناء والمزامنة) Engine.ini، القسم [URL]، Port=7777، معامل التشغيل -Port=
7778 UDP الـ Pinger، وهو ثابت على منفذ اللعبة زائد واحد Engine.ini، القسم [URL]، PeerPort=7778
27015 UDP استعلام الحالة بصيغة Steam لأجل قائمة الخوادم Engine.ini، [OnlineSubsystemSteam]، ServerQueryPort، معامل التشغيل -QueryPort=
7777 TCP نقل الإضافات إلى العميل، ولا يُفتح إلا عند الحاجة مطابق لمنفذ اللعبة
25575 TCP تحكّم RCON عن بُعد، معطّل من المصنع Game.ini، القسم [RconPlugin]، RconPort=25575، معامل التشغيل -RconPort=

وثلاثة أمور في ذلك يُخطئ فيها الناس بانتظام. أولاً، ليس 7778 منفذاً حرّ الاختيار، بل هو دائماً منفذ اللعبة زائد واحد. ولذلك على من يشغّل نسختين على الجهاز نفسه أن يتنقل بخطوات مقدارها اثنان: 7777 و7778 للنسخة الأولى، و7779 و7780 للثانية، وإلى جانبها 27015 و27016 كمنفذي استعلام. ومن يضع النسخة الثانية على 7778 يسلب الأولى منفذ الـ Pinger.

ثانياً، فتح المنفذ ⁦7777 TCP⁩ هو لأجل نقل الإضافات. وتفتحه Funcom بناءً على طلب من عميل فقط، والطلب لا يأتي إلا من عملاء متجر Epic Games. أما عملاء Steam فيحصلون على الإضافات كما كان عبر واجهة Workshop في Steam. فإذا كان لاعبوكم يأتون عبر Steam حصراً، فلا تحتاجون إلى هذا الفتح.

ثالثاً، RCON معطّل من المصنع. فقيمة RconEnabled هي 0 افتراضياً. ومن يجد المنفذ مفتوحاً مع ذلك، فإما أنه شغّله بنفسه أو أنه اعتمد قالباً جاهزاً من أحد المزودين.

ما تستطيعون فعله بأنفسكم قبل أن تدفعوا مالاً

الخطوات التسع التالية لا تكلّف شيئاً، وتعمل ضد ما يحدث في الواقع العملي أكثر من غيره: إغراقات صغيرة موجَّهة من مصادر قليلة، ومنافذ استعلام يُساء استخدامها، ومحاولات تسجيل دخول على RCON، وحِمل زائد سببه إضافة واحدة. وهي تستحق العناء حتى لو كان أمامها مرشّح شبكي يعمل أصلاً.

1. الجرد: ما الذي يستمع أصلاً؟

قبل أن تكتبوا قاعدة واحدة، انظروا ما الذي يعرضه خادمكم إلى الخارج. لا تخمّنوا، بل انظروا. على Windows:

Get-NetUDPEndpoint | Where-Object LocalPort -in 7777,7778,27015
Get-NetTCPConnection -State Listen | Sort-Object LocalPort
netstat -ano -p UDP | findstr "7777 7778 27015"

وإذا كان الخادم يعمل على Linux داخل طبقة توافق، فالمقابل هو:

ss -lnup
ss -lntp

المهم هو العمود الذي يحمل العنوان المحلي. فـ 0.0.0.0:7777 يعني «قابل للوصول من الإنترنت بأكمله»، و127.0.0.1:25575 يعني «محلياً فقط» ولا يحتاج إلى قاعدة في جدار الحماية. أما رؤية المهاجم فيوفرها فحص المنافذ من الخارج، وعلى UDP صراحةً كذلك، لأن فحص TCP وحده لا يجد في Conan Exiles شيئاً تقريباً:

nmap -Pn -sU -p 7777,7778,27015 YOUR.SERVER.IP.ADDRESS
nmap -Pn -p 7777,25575 YOUR.SERVER.IP.ADDRESS

2. فتح منافذ UDP الثلاثة وحدها

على Windows تكفي قاعدتان في جدار الحماية المدمج. الأولى تفتح تشغيل اللعبة، والثانية تقصر RCON على عنوانكم الخاص بدلاً من فتح المنفذ للجميع:

New-NetFirewallRule -DisplayName "Conan Exiles" -Direction Inbound -Protocol UDP -LocalPort 7777,7778,27015 -Action Allow
New-NetFirewallRule -DisplayName "Conan RCON" -Direction Inbound -Protocol TCP -LocalPort 25575 -RemoteAddress 203.0.113.10 -Action Allow
Get-NetFirewallRule -DisplayName "Conan*" | Format-Table DisplayName,Enabled,Direction,Action

وعلى Linux يبدو الشيء نفسه مع UFW على النحو التالي، وبهذا الترتيب بالضبط حتى لا تحجبوا أنفسكم:

ufw allow 22/tcp comment 'SSH'
ufw allow 7777/udp comment 'Conan Exiles'
ufw allow 7778/udp comment 'Conan Exiles Pinger'
ufw allow 27015/udp comment 'Conan Exiles Query'
ufw allow from 203.0.113.10 to any port 25575 proto tcp comment 'RCON'
ufw default deny incoming
ufw --force enable
ufw status verbose

استبدلوا 203.0.113.10 بعنوانكم الخاص. والدليل الكامل مع طريق النجاة موجود في إعداد جدار حماية UFW دون حجب نفسكم. أما فتح المنفذ ⁦7777 TCP⁩ فاتركوه جانباً، ما لم يأتِ أحد من لاعبيكم عبر متجر Epic Games.

3. تأمين RCON أو تعطيله بالكامل

RCON تحكّم عن بُعد بوصول كامل إلى خادمكم: طرد اللاعبين وحظرهم وإرسال الرسائل وتنفيذ الأوامر. وهو يعمل على المنفذ ⁦25575 TCP⁩ ويُضبط في Game.ini:

[RconPlugin]
RconEnabled=0
RconPort=25575
RconPassword=
RconMaxKarma=60

إذا لم تكونوا بحاجة إلى RCON، فاتركوا RconEnabled=0 كما هو. فهذه هي القيمة الافتراضية وأكثر الإعدادات أماناً. وإن كنتم بحاجة إليه، فتسري ثلاث قواعد. أولاً: يجب أن تكون RconPassword طويلة وعشوائية، لأن بروتوكول RCON ينقل كلمة المرور عبر الوصلة دون تشفير. ثانياً: المنفذ لا ينتمي إلى الإنترنت المفتوح، بل يُقصر على عنوانكم الخاص أو يوضع خلف وصول SSH. ثالثاً: RconMaxKarma هو المكبح المدمج ضد إغراق تسجيل الدخول، وقيمته الافتراضية 60. ويحدد هذا العدّاد عدد الطلبات التي يحق لمصدر واحد إرسالها في تتابع سريع قبل أن يُرفض.

ومنفذ RCON المفتوح هو أيضاً دليل موثوق على وجودكم في الشبكة. فمن يفحص على نطاق واسع بحثاً عن 25575 يجد خوادم لعب، وخادم لعب بلا تصفية أمامه هدف مُجزٍ.

4. تحديد معدل منفذ الاستعلام بدلاً من إغلاقه

يجيب المنفذ ⁦27015 UDP⁩ عن استعلامات الحالة بصيغة Steam. واستعلام A2S هو طلب UDP قصير يجلب به العميل اسم الخادم والخريطة وعدد اللاعبين ووقت اللعب دون تشغيل اللعبة. وهذا بالضبط ما تحتاجه قائمة الخوادم، وصفحة الحالة الخاصة بكم، وكل بوت Discord يعرض عدد اللاعبين.

لا تُغلقوا هذا المنفذ. فخادمكم يغيب عندئذٍ عن قائمة الخوادم، ولا يعود اللاعبون الجدد يجدونه. والتعامل الصحيح هو حد أعلى لكل عنوان مصدر. على Linux:

iptables -I INPUT -p udp --dport 27015 -m hashlimit --hashlimit-name conan_query --hashlimit-mode srcip --hashlimit-above 10/sec --hashlimit-burst 20 -j DROP
iptables -L INPUT -n -v | head -20

وعشرة استعلامات في الثانية لكل مصدر تكفي اللاعبين الحقيقيين وأي نظام مراقبة، لكنها تُسقط مصدراً يرسل آلاف الطلبات في الثانية. وثبّتوا القاعدة بالأمرين apt-get install -y iptables-persistent وnetfilter-persistent save، وإلا اختفت بعد إعادة التشغيل التالية. ومع UFW تنتمي إلى /etc/ufw/before.rules.

لكن هنا يوجد حد صارم، وهو يخص أغلبية مشغّلي Conan Exiles: جدار حماية Windows لا يعرف تحديد المعدل لكل عنوان مصدر. فهو يستطيع فتح منفذ أو إغلاقه أو قصره على عناوين ثابتة، لكنه لا يستطيع أن يقول «عشر حزم في الثانية لكل مرسل كحد أعلى». وعلى خادم Windows لا توجد لهذه المهمة أدوات مدمجة على الإطلاق، ويجب أن يحدث تحديد المعدل في الشبكة الواقعة قبل الخادم.

والنقطة الثانية تخص إساءة الاستخدام في الاتجاه المقابل. ومعنى Reflection هو التالي: يرسل المهاجم استعلامات بعنوان مرسل مزيف إلى آلاف خوادم اللعب، فتتجمّع الأجوبة كلها عند طرف ثالث. ولأن جواب A2S أكبر من الطلب، تتضاعف الحركة في الطريق. وخادمكم عندئذٍ ليس الضحية، بل السلاح، وأنتم من يدفع ثمن الحركة الصادرة. وقد أدخلت Valve لذلك إجراء سؤال وجواب: يحق للخادم أن يجيب عن استعلام A2S أولاً بسؤال مرتجع لا يستطيع مرسل بعنوان مزيف الإجابة عنه. ولا يكون ذلك فعالاً إلا حيث يكون مشغّلاً، ولذلك ينتمي تحديد المعدل على المنفذ 27015 إلى الصورة في كل الأحوال.

5. كلمة مرور الخادم وكلمة مرور المدير والخانات

يحتوي ملف ServerSettings.ini على ثلاثة إعدادات تحسم في سطح الهجوم مباشرةً:

[ServerSettings]
AdminPassword=
ServerPassword=
MaxPlayers=40
IsBattlEyeEnabled=True

AdminPassword هي أخطر قيمة في الملف كله. فهي ليست وصولاً إلى وحدة تحكم، بل كلمة المرور التي يمنح بها لاعب متصل بشكل نظامي نفسه حقوق المدير داخل اللعبة. وكلمة مرور مدير قصيرة أو مُخمَّنة لا تعني تأخيراً في الشبكة، بل فقدان الخادم. اجعلوها طويلة وعشوائية، وبدّلوها بمجرد أن يترك أحد أعضاء الفريق العمل.

ServerPassword تحوّل خادماً عاماً إلى خادم خاص. وهي تعمل ضد المشاغبين وضد الحسابات المؤقتة وضد كل من يستخدم طريق الانضمام النظامي. أما ضد هجوم على الوصلة فلا تعمل: فالمهاجم الذي يُغرق خادمكم لا يريد الانضمام أبداً. وحزمه تُرفَض، لكنها وصلت مع ذلك، وهذه هي النقطة بالضبط.

MaxPlayers يحدد عدد الخانات ويمكن ضبطه إضافةً إلى ذلك بمعامل التشغيل -MaxPlayers=. والحد الأعلى الواقعي هو إجراء حماية كذلك: فكل عميل متصل يولّد حزماً على الدوام، وخادم بخانات أكثر مما يحمله الجهاز ينهار في التشغيل العادي أصلاً.

6. ما يقدّمه BattlEye وما لا يقدّمه

يأتي Conan Exiles بفحص لمكافحة الغش عبر IsBattlEyeEnabled في ServerSettings.ini. ومن المفترض أن يكون مشغّلاً، لكنه ليس حماية من DDoS، ولسبب بنيوي: فمكافحة الغش تفحص العملاء المتصلين أصلاً. وهي تعمل في العملية نفسها التي تعمل فيها اللعبة، ولا ترى الحزمة إلا بعد أن يعالجها الخادم على أي حال. وإذا كانت هذه العملية مستهلكة بالكامل، غرق منطق الفحص معها.

وينطبق الشيء نفسه على كل أداة على جانب الخادم تثبّتونها إضافةً إلى ذلك. فكل ما يعمل على الخادم لا يستطيع إسقاط شيء إلا بعد أن يكون قد وصل. مكافحة الغش تحمي قواعد اللعبة، لا الجهوزية.

7. إبقاء قائمة الإضافات نظيفة

جزء كبير من الأعطال المُبلَّغ عنها على خوادم Conan Exiles المعدَّلة ليس هجوماً. فقائمة الإضافات مكتوبة في modlist.txt في مجلد الإعدادات نفسه، وكل إضافة تعمل في العملية نفسها التي تعمل فيها اللعبة. وإضافة واحدة فيها حلقة، أو نبضة زمنية ضيقة جداً، أو استعلام قاعدة بيانات بلا حد، تُوقف الخادم تماماً كما يفعل الهجوم، لكن دون معدلات حزم ملحوظة.

والتمييز بسيط وينبغي أن يكون في البداية دائماً. إذا ارتفع معدل الحزم على بطاقة الشبكة ارتفاعاً كبيراً بينما الجهاز لا يعمل إلا قليلاً، فهو هجوم. وإذا بقي معدل الحزم عادياً وتقطّع كل شيء مع ذلك، فالسبب في البرمجيات. وعند الشك أخرجوا نصف قائمة الإضافات وأعيدوا التشغيل، فهذا يحصر السبب في جولتين.

ونقطة ثانية عملية جداً: بعد تحديث اللعبة كثيراً ما لا تتطابق الإضافات وإصدار الخادم. فيُطرَد اللاعبون عند الانضمام، ويُكتب في Discord «الخادم متوقف»، ويبحث الجميع عن هجوم لا وجود له. تحقّقوا بعد كل تحديث من قائمة الإضافات أولاً.

8. العنوان ووقت الـ Raid

لا يمكن إبقاء عنوان IP الخاص بكم سرّاً. فهو مكتوب في الإدراج في قائمة الخوادم، لأن أحداً لم يكن ليستطيع الانضمام بغير ذلك، وكل لاعب اتصل مرة يعرفه. وتغيير العنوان يمنحكم وقتاً، لكنه ليس حلاً: فالمهاجم يقرأ العنوان الجديد من المصدر نفسه الذي قرأ منه القديم، غالباً في غضون دقائق إلى ساعات.

ومع ذلك تفيد عادتان. لا تنشروا عنوان IP المجرد في أي مكان بأنفسكم، أي لا في Discord ولا على صفحة المشروع، واربطوا لاعبيكم عبر اسم مضيف لكي لا يقطع تغيير العنوان كل إشارة إليه. والحالة الكلاسيكية هنا هي مُدخَل A منسي يشير إلى العنوان القديم: فهو يُبطل أثر أي تغيير.

أما وقت الـ Raid فينطبق عليه عكس الإخفاء: تحتاجونه علنياً، وإلا لم يعمل خادمكم. استخدموه بدلاً من ذلك في التشخيص. فإذا تعطّل خادمكم في ثلاث ليالٍ متتالية في الساعة 18:05 وكانت نافذة الـ Raid تبدأ في الساعة 18:00، فلم يبقَ هذا تخميناً، بل صار نمطاً تستطيعون إرفاقه بتذكرة دعم.

9. القياس بدلاً من التخمين

أهم خطوة هي تلك التي لا يفعلها أحد تقريباً مسبقاً: إنشاء خط أساس للمقارنة ما دام كل شيء يعمل بشكل طبيعي. فبدون قيمة طبيعية لا تستطيعون القول بعد الحادث إن 40,000 حزمة في الثانية كانت كثيرة أم كانت مجرد مساء جمعة ممتلئ. وعلى Windows تكفي لذلك الأدوات المدمجة:

Get-NetAdapterStatistics
typeperf "\Network Interface(*)\Packets Received/sec" -sc 20
typeperf "\Network Interface(*)\Bytes Received/sec" -sc 20

وعلى Linux المقابل هو:

sar -n DEV 1 10
ip -s link show eth0
tcpdump -ni eth0 udp port 7777 or udp port 27015 -c 200 -q

وفي tcpdump تسري قاعدة ثابتة: قيّدوا دائماً بالمعامل -c، فالتسجيل تحت الحِمل الكامل يُثقل خادماً مُثقلاً أصلاً. وسجل خادم Conan Exiles يقع في المجلد ConanSandbox\Saved\Logs\، ويُكتب إضافةً إلى ذلك في نافذة بمعامل التشغيل -log. أما حالة اللعب فتقع في ملف واحد هو ConanSandbox\Saved\game.db: احفظوه قبل أن تغيّروا شيئاً تحت الضغط. وكيف تحلّلون القياسات يوضحه المقال كشف هجوم DDoS.

أين تنتهي هذه الإجراءات: النطاق الترددي ومعدل الحزم

وهنا يأتي الجزء الذي لا يحلّه أي ملف INI. فكل الإجراءات السابقة تعمل على خادمكم، أي في نهاية الوصلة. وقاعدة جدار الحماية تبتّ في حزمة سارت فعلاً عبر الكابل. تستطيعون إسقاطها، لكن لا تستطيعون جعلها غير مُرسَلة.

احسبوا معنا مرة. خادم اللعب النموذجي معلّق على ⁦1 Gbit/s⁩، أي 125 ميغابايت في الثانية، والوصلة تمتلئ بمجرد أن يرسل أحد أكثر من ذلك. والهجمات على خوادم ألعاب البقاء تقع عادةً بين 5 و⁦50 Gbit/s⁩، أي بين خمسة أضعاف وخمسين ضعفاً لوصلتكم. ولا يعود لجودة قاعدتكم خلف ذلك أي معنى، لأن حزم لاعبيكم لم تعد تمر من قبل ذلك.

والمقدار الثاني هو معدل الحزم، وهو يضرب أولاً في أغلب الأحوال. فمع الحزم الصغيرة بحجم 64 بايت تتسع وصلة بسرعة ⁦1 Gbit/s⁩ لنحو 1.49 مليون حزمة في الثانية. أما نواة النظام العادية فتعالج، حسب المعالج وبطاقة الشبكة، بعض مئات الآلاف منها قبل أن تبدأ بالإسقاط. وهجوم لا يملأ وصلتكم ولو إلى الثلث يستطيع مع ذلك تعطيل خادم Conan Exiles الخاص بكم، لأن وقت المعالجة يُستهلك في الإسقاط. ويعيش المشغّلون ذلك على شكل «الاستخدام لم يكن مرتفعاً أصلاً، ومع ذلك ضاع كل شيء».

ويزيد الأمر سوءاً في Conan Exiles أن عالم اللعب بأكمله يعمل في عملية واحدة. فلا توجد نسخة ثانية تواصل العمل بينما الأولى مشغولة. وبمجرد أن تتوقف هذه العملية عن الحصول على وقت معالجة، يتوقف القتال والبناء والحفظ في وقت واحد.

ولتصوّر الأحجام التي تحدث فعلاً: على خوادم KernelHost صُفّي هجوم بأكثر من ⁦473.4 Gbit/s⁩ بمعدل يزيد على 41.5 مليون حزمة في الثانية على خادم صوتي، وإغراق UDP بأكثر من ⁦112.2 Gbit/s⁩ على خادم لعب. ولا يوجد لذلك أي إعداد محلي. فالهجمات الحجمية يجب أن تنتهي في الشبكة الواقعة قبل الخادم.

ما تضعه KernelHost في المقابل

الحماية الدائمة المشمولة في كل خادم

الحماية من DDoS لدى KernelHost مبنية على مستويين وفعّالة بشكل دائم، دون أن تحتاجوا إلى تشغيل شيء أو طلبه أو إعداده:

  • المستوى 1: سعة تخفيف تبلغ ⁦17 Tbps⁩ في شبكة التنقية العالمية. تُنقّى الهجمات الحجمية قريباً من مصدرها، قبل أن تصل إلى مركز البيانات.
  • المستوى 2: تصفية Arbor في الوقت الفعلي بسعة ⁦3.2 Tbps⁩ في فرانكفورت أم ماين. وقبل الخادم مباشرةً تُكشَف الأنماط الخاصة بكل بروتوكول وتُسقَط، حزمةً حزمة.

وخاصّتان هنا حاسمتان. الحماية تعمل بشكل دائم ولا تحتاج إلى الاستجابة لهجوم أولاً، فلا توجد دقائق في البداية يكون الخادم فيها غائباً. وهذا بالضبط ما يهم في نافذة Raid لا تدوم أكثر من ساعات قليلة أصلاً. ولا يُستخدم التوجيه إلى العدم (Nullrouting): فعنوان IP الخاص بكم يبقى في الشبكة، وتُسقَط الحزم الضارة وحدها. ومن يسحب عنوان IP من الشبكة يصل بكم إلى النتيجة نفسها التي يريدها المهاجم. أما الألعاب والبروتوكولات المشمولة فيسردها المقال حماية خوادم اللعب من DDoS في الوقت الفعلي.

Advanced DDoS Protection للخوادم التي تتعرض للقصف باستمرار

بعض الخوادم لا تُهاجَم من حين إلى آخر، بل تُهاجَم بشكل مقصود وعلى مدى أسابيع، وفي الغالب دائماً في الساعة نفسها. ولهذا توجد Advanced DDoS Protection ابتداءً من ⁦50.00 EUR⁩ في الشهر، بنظام PrePaid، دون حد أدنى لمدة الالتزام ودون رسوم إعداد. والفرق ليس في سعة أكبر، بل في التحكم:

  • عنوان IP مخصص للحماية من النواة الفرانكفورتية، يُحوَّل خادمكم إليه داخل شبكتنا. ولا يلزم أي تغيير في جهتكم.
  • قواعد حماية تديرونها بأنفسكم لكل منفذ وبروتوكول في منطقة العملاء: تضبطون بشكل منفصل ما المسموح على ⁦7777 UDP⁩، وما المسموح على ⁦7778 UDP⁩، وما المسموح على ⁦27015 UDP⁩. وهذا الفصل بالذات غير موجود على الخادم نفسه، وخصوصاً على Windows.
  • التغييرات تسري في الوقت الفعلي، أي تستطيعون التعديل أثناء هجوم جارٍ بدلاً من الانتظار إلى صباح اليوم التالي.
  • ملف حماية مناسب لكل لعبة، وكذلك للتطبيقات المعدَّلة والخاصة على أي منفذ TCP أو UDP.

مقارنة بين المستويين

الخاصية الحماية الدائمة المشمولة من DDoS Advanced DDoS Protection
السعر مشمولة في كل حزمة خادم دون زيادة في السعر ابتداءً من ⁦50.00 EUR⁩ في الشهر، بنظام PrePaid
سعة التصفية ⁦17 Tbps⁩ تنقية عالمية إضافةً إلى تصفية Arbor في الوقت الفعلي بسعة ⁦3.2 Tbps⁩ في فرانكفورت أم ماين التصفية نفسها ذات المستويين
عنوان IP عنوان IP الخاص بخادمكم عنوان IP إضافي مخصص للحماية
مجموعة القواعد ملفات آلية، ولا حاجة إلى أي إعداد قواعد خاصة بكم لكل منفذ وبروتوكول في منطقة العملاء
منفذ الاستعلام 27015 يُصفّى آلياً مع البقية تحديد معدل خاص به، منفصل عن منفذ اللعبة
التغييرات تسري آلياً مع النظام تسري في الوقت الفعلي، وأثناء الهجوم أيضاً
التوجيه إلى العدم لا لا
مدة الالتزام مرتبطة بحزمة الخادم بنظام PrePaid، دون حد أدنى لمدة الالتزام، ودون مهلة إشعار للإلغاء، ودون رسوم إعداد

ولمعظم خوادم Conan Exiles تكفي الحماية الدائمة المشمولة مع إعداد نظيف. أما Advanced DDoS Protection فهي الجواب على أن يأخذ أحدهم الأمر على المستوى الشخصي. ومن يشغّل خادمه حالياً عند جهة أخرى ويُسحب هناك من الشبكة بانتظام، فأضمن حل له هو الانتقال: فالتصفية تنتمي إلى الشبكة التي يقف فيها الخادم.

أخطاء شائعة وحلولها

«تغييراتي في ملف ServerSettings.ini تختفي بعد إعادة التشغيل»: كان الخادم لا يزال يعمل أثناء التعديل. فـ Conan Exiles يحتفظ بالإعدادات في الذاكرة ويكتبها في الملف عند الإيقاف، وبذلك يُكتَب فوق تعديلكم. أوقفوا الخادم، وانتظروا، وعدّلوا، ثم شغّلوه. وعدّلوا كذلك الملفات الموجودة في Saved\Config\WindowsServer\ لا القوالب المجاورة لها، وإلا كتب تحديث اللعبة التالي فوق كل شيء.

«غيّرت المنافذ، والآن لم يبقَ الخادم في القائمة»: لم يُنقَل منفذ الاستعلام معها. فمنفذ اللعبة ومنفذ الاستعلام قيمتان منفصلتان، ويجب أن يكون منفذ الـ Pinger على منفذ اللعبة زائد واحد حراً ومفتوحاً كذلك. تحقّقوا من [URL] Port وPeerPort في Engine.ini مقابل ServerQueryPort ومقابل قواعد جدار الحماية لديكم.

«غيّرت عنوان IP وكنت بعد ساعتين خارج الخدمة من جديد»: حصل المهاجم على العنوان الجديد من المصدر نفسه الذي حصل منه على القديم، وهو غالباً الإدراج في قائمة الخوادم، أو بوت Discord يعرض الحالة، أو مُدخَل DNS قديم. تغيير العنوان كسب للوقت، لا حل.

«في سجل RCON مئات محاولات تسجيل دخول فاشلة»: هذا إغراق تسجيل دخول على المنفذ ⁦25575 TCP⁩، وهو يصيب منطق اللعبة لا الوصلة. ويكبح RconMaxKarma ذلك، أما إنهاؤه فعلياً فيكون بقصر المنفذ على عنوانكم الخاص، أو بتعطيل RCON بالقيمة RconEnabled=0.

«كل بضع دقائق تحدث قفزات في التأخير، لكن الخادم لا يتوقف تماماً أبداً»: هذه هي الصورة النموذجية لإغراق نابض. فدفعات تدوم ثوانٍ قليلة تكفي لإسقاط الحزم، لكنها تبقى تحت أي عتبة تُطلق إنذاراً. لذلك قيسوا بوتيرة الثانية، لا بمتوسطات خمس دقائق، وإلا أظهر تحليلكم متوسطاً غير ملحوظ بينما يخرج لاعبوكم من القتال كل بضع دقائق.

«جميع اللاعبين يعانون تقطّعاً، لكن عدّادات الشبكة غير ملحوظة»: هذا ليس هجوم DDoS. فإذا بقي Get-NetAdapterStatistics أو sar -n DEV 1 10 في النطاق الطبيعي، فالسبب في البرمجيات. تحقّقوا أولاً من قائمة الإضافات، ثم من إصدار الخادم مقابل إصدارات الإضافات.

«مزودي السابق حجب عنوان IP الخاص بي»: هذا هو التوجيه إلى العدم. فالمزود يحمي بذلك شبكته الخاصة، أما بالنسبة لكم فالنتيجة مطابقة لهجوم ناجح، وغالباً لساعات بعده أيضاً. اسألوا عند الشك عمّا إذا كانت الحركة تُصفّى أم تُوجَّه إلى العدم. فالجواب يقرر في جهوزيتكم أكثر من أي معطى عن العتاد.

«لا أرى في التسجيل شيئاً ملحوظاً»: إذا كانت الحركة تُصفّى في الشبكة الواقعة قبل الخادم، فلا يصل إلى الخادم شيء كما هو متوقع. وهذه هي الحالة الطبيعية عند عمل التصفية. وفي المقابل: إذا كانت الوصلة مشبعة، فقد لا تصلكم حتى الإدارة عن بُعد التي أردتم القياس بها. استخدموا في هذه الحالة وحدة تحكم VNC في منطقة العملاء، فهي تعمل بشكل مستقل عن شبكة النظام الضيف.

باختصار

  • يحتاج خادم Conan Exiles نحو الخارج إلى ثلاثة منافذ UDP بالضبط: 7777 لحركة اللعب، و7778 للـ Pinger، و27015 لاستعلام الحالة. أما ⁦7777 TCP⁩ فلنقل الإضافات إلى عملاء Epic فقط، و⁦25575 TCP⁩ عند تشغيل RCON فقط.
  • الـ Pinger ثابت على منفذ اللعبة زائد واحد. ولذلك تُوزَّع منافذ عدة نسخ على جهاز واحد بخطوات مقدارها اثنان.
  • RCON معطّل من المصنع بالقيمة RconEnabled=0 ويجب أن يبقى معطّلاً ما دمتم لا تحتاجونه. فكلمة المرور تسير عبر الوصلة دون تشفير.
  • المنفذ 27015 يُحدَّد معدله ولا يُغلق: فإذا أُغلق غاب الخادم عن قائمة الخوادم، وإذا بقي بلا حد كان هدفاً وعاكساً في وقت واحد.
  • جدار حماية Windows يستطيع فتح المنافذ وإغلاقها وقصرها على عناوين، لكنه لا يستطيع تحديد معدل لكل عنوان مصدر. وهذه المهمة تنتمي إلى الشبكة الواقعة قبل الخادم.
  • عند ⁦1 Gbit/s⁩ تمتلئ الوصلة عند 125 ميغابايت في الثانية، وبحزم بحجم 64 بايت يوافق ذلك نحو 1.49 مليون حزمة في الثانية. وفوق ذلك لا تفيد أي قاعدة محلية.
  • لدى KernelHost تُصفّي سعة تخفيف تبلغ ⁦17 Tbps⁩ في شبكة التنقية العالمية وتصفية Arbor في الوقت الفعلي بسعة ⁦3.2 Tbps⁩ في فرانكفورت أم ماين بشكل دائم، دون زيادة في السعر ودون توجيه إلى العدم.

إذا كان خادمكم يعمل لدى KernelHost أصلاً، فالتصفية فعّالة دون أن تفعلوا شيئاً. وإذا لاحظتم مع ذلك أموراً غير معتادة، افتحوا تذكرة دعم مع التاريخ والوقت وقياساتكم، ليُعاد ضبط قواعد التصفية لعنوان IP الخاص بكم. وأثناء هجوم جارٍ تستطيعون الوصول إلينا إضافةً إلى ذلك عبر محادثة الطوارئ على WhatsApp على الرقم +43 650 8209883.

الأسئلة الشائعة

خادم Conan Exiles الخاص بي غير متصل في وسط نافذة الـ Raid. ما الذي أتحقق منه أولاً؟
معدل الحزم على بطاقة الشبكة، لا حِمل المعالج ولا سجل اللعبة. على Windows يُظهر Get-NetAdapterStatistics الحزم الواردة، وعلى Linux يُظهر الأمر sar -n DEV بفاصل ثانية واحدة عدد الحزم في الثانية. فإذا ارتفعت الحزم الواردة كثيراً فوق قيمتكم الطبيعية بينما الجهاز لا يعمل إلا قليلاً، فهو هجوم. وإذا بقيت العدّادات غير ملحوظة وتقطّع كل شيء مع ذلك، فالسبب في الغالب إحدى الإضافات، لأن كل إضافة تعمل في العملية نفسها التي تعمل فيها اللعبة.
ما المنافذ التي يحتاجها خادم Conan Exiles فعلاً؟
ثلاثة منافذ UDP بالضبط: 7777 لحركة اللعب، و7778 للـ Pinger، و27015 لاستعلام الحالة الخاص بقائمة الخوادم. ويُضاف إليها منفذان اختياريان على TCP. فالمنفذ ⁦7777 TCP⁩ لا يُفتح إلا عند الحاجة لأجل نقل الإضافات إلى عملاء متجر Epic Games، أما عملاء Steam فيحمّلون الإضافات عبر واجهة Workshop. والمنفذ ⁦25575 TCP⁩ هو RCON وهو معطّل من المصنع. ومنفذ اللعبة مكتوب في ملف Engine.ini في قسم URL، ومنفذ الاستعلام تحت OnlineSubsystemSteam، ومنفذ RCON في ملف Game.ini تحت RconPlugin.
ما وظيفة المنفذ 7778 في Conan Exiles؟
المنفذ ⁦7778 UDP⁩ هو الـ Pinger، وهو ثابت على منفذ اللعبة زائد واحد. ولا يمكن اختياره بحرية: فمن يغيّر القيمة Port في ملف Engine.ini يحرّك معها القيمة PeerPort كذلك. والنتيجة العملية تخص كل من يشغّل عدة نسخ على جهاز واحد. إذ يجب توزيع المنافذ بخطوات مقدارها اثنان، أي 7777 و7778 للنسخة الأولى، و7779 و7780 للثانية. ومن يضع النسخة الثانية على 7778 يسلب الأولى منفذ الـ Pinger.
هل أستطيع إغلاق منفذ الاستعلام 27015 ببساطة؟
لا. فخادمكم يغيب عندئذٍ عن قائمة الخوادم، لأن اسم الخادم والخريطة وعدد اللاعبين تُستعلَم عبر هذا المنفذ بالتحديد. والصحيح هو حد أعلى لكل عنوان مصدر بدلاً من الحجب، وعلى Linux مثلاً عشرة استعلامات في الثانية مع احتياطي صغير عبر iptables وhashlimit. وهذا يكفي اللاعبين الحقيقيين وأي نظام مراقبة، لكنه يُسقط مصدراً يرسل آلاف الطلبات في الثانية. أما جدار حماية Windows فلا يستطيع تحديد معدل لكل عنوان مصدر، ويجب أن يحدث ذلك هناك في الشبكة الواقعة قبل الخادم.
كيف أؤمّن RCON على المنفذ 25575؟
أكثر الطرق أماناً هي أن تتركوه معطّلاً: فقيمة RconEnabled في ملف Game.ini هي 0 من المصنع. وإن كنتم بحاجة إلى RCON، فاضبطوا RconPassword طويلة وعشوائية، لأن البروتوكول ينقل كلمة المرور عبر الوصلة دون تشفير. واقصروا المنفذ ⁦25575 TCP⁩ على عنوانكم الخاص بدلاً من فتحه للجميع. ويكبح RconMaxKarma بقيمته الافتراضية 60 إغراق تسجيل الدخول، لكنه لا يحل محل هذا القصر. ومنفذ RCON المفتوح يكشف أيضاً لكل من يفحص الشبكة بحثاً عن خوادم لعب أن هناك خادماً هنا.
لماذا تُهاجَم خوادم PvP في Conan Exiles على وجه الخصوص؟
لأن للهجوم هناك مكسباً ملموساً ولأن أفضل وقت له معروف للعموم. فعلى خادم PvP لا يمكن إلحاق الضرر بقاعدة إلا داخل نافذة الـ Raid، التي تُحدَّد بـ RestrictPVPTime وRestrictPVPBuildingDamageTime في ملف ServerSettings.ini، ثم تُعلَن بعد ذلك في اسم الخادم وفي لائحة القواعد وفي Discord. ومن يُخرج المدافعين من اللعبة في هذه النافذة بالتحديد يهاجم قاعدة بلا مدافع. وإذا كانت قيمة LogoutCharactersRemainInTheWorld هي True أيضاً، تبقى الشخصيات التي خرجت واقفة في العالم مع عتادها.
هل يفيد جدار حماية على الخادم ضد هجوم DDoS؟
ضد الهجمات الصغيرة والبوتات غير النظيفة نعم، أما ضد الهجمات الحجمية فلا. فقاعدة جدار الحماية تبتّ في حزم سارت فعلاً عبر وصلتكم. وإذا كانت الوصلة مشبعة، فحزم لاعبيكم لم تعد تمر من قبل ذلك، بصرف النظر عن جودة مجموعة قواعدكم. ويُضاف في Conan Exiles أن معظم الخوادم تعمل على Windows، وجدار حماية Windows لا يعرف تحديد المعدل لكل عنوان مصدر. فالهجمات الحجمية يجب أن تنتهي في الشبكة الواقعة قبل الخادم.
من أي حجم لا يعود خادم Conan Exiles قادراً على ذلك وحده؟
خادم اللعب النموذجي معلّق على ⁦1 Gbit/s⁩، أي 125 ميغابايت في الثانية. والهجمات على خوادم ألعاب البقاء تقع عادةً بين 5 و⁦50 Gbit/s⁩. ولا يقل أهمية عن ذلك معدل الحزم: فوصلة بسرعة ⁦1 Gbit/s⁩ تتسع بحزم بحجم 64 بايت لنحو 1.49 مليون حزمة في الثانية، أما نواة النظام العادية فتعالج منها بعض مئات الآلاف فقط. وبذلك يستطيع هجوم تعطيلكم رغم أن النطاق الترددي لم يُستنفد. ولأن عالم اللعب بأكمله يعمل في عملية واحدة، يتوقف القتال والبناء والحفظ عندئذٍ في وقت واحد.
هل يصبح خادم Conan Exiles الخاص بي غير متصل لدى KernelHost أثناء هجوم؟
لا. فلا يُستخدم التوجيه إلى العدم. عنوان IP الخاص بكم يبقى في الشبكة، وتُسقَط الحزم الضارة وحدها. والحماية على مستويين: سعة تخفيف تبلغ ⁦17 Tbps⁩ في شبكة التنقية العالمية، وتصفية Arbor في الوقت الفعلي بسعة ⁦3.2 Tbps⁩ في فرانكفورت أم ماين. وهي تعمل بشكل دائم ولا تحتاج إلى الاستجابة لهجوم أولاً، فلا توجد دقائق في البداية يكون الخادم فيها غائباً. وهذا بالضبط ما يهم في نافذة الـ Raid التي لا تدوم أكثر من ساعات قليلة أصلاً.
هل تكلّف الحماية من DDoS لدى KernelHost مبلغاً إضافياً؟
لا. فالحماية الدائمة ذات المستويين مشمولة في كل حزمة خادم دون زيادة في السعر وفعّالة من لحظة التسليم. ولا تحتاجون إلى طلبها ولا إلى تشغيلها ولا إلى إعدادها. وهي تسري على جميع منافذ خادمكم وبروتوكولاته، أي على منفذ اللعبة ⁦7777 UDP⁩ كما على الـ Pinger على ⁦7778 UDP⁩ وعلى منفذ الاستعلام ⁦27015 UDP⁩.
متى أحتاج إلى Advanced DDoS Protection إضافةً إلى ذلك؟
عندما لا يُهاجَم خادمكم من حين إلى آخر، بل بشكل مقصود وعلى مدى أسابيع، وفي الغالب دائماً في الساعة نفسها، وعندما تريدون إدارة التصفية بأنفسكم. تحصلون على عنوان IP مخصص للحماية، وتديرون قواعد الحماية لكل منفذ وبروتوكول بأنفسكم في منطقة العملاء، أي بشكل منفصل لكل من ⁦7777 UDP⁩ و⁦7778 UDP⁩ و⁦27015 UDP⁩. والتغييرات تسري في الوقت الفعلي، أي تستطيعون التعديل أثناء هجوم جارٍ. ويبدأ السعر من ⁦50.00 EUR⁩ في الشهر، بنظام PrePaid، دون حد أدنى لمدة الالتزام ودون رسوم إعداد.

Conan Exiles حماية Conan Exiles من DDoS حماية خوادم اللعب المنفذ 7777 المنفذ 27015 RCON Advanced DDoS Protection التصفية في الوقت الفعلي