[{"data":1,"prerenderedAt":223},["ShallowReactive",2],{"seo-verification":3,"blog-ثغرة-pgbouncer-cve-2026-107350-التحديث-إلى-1-26-1-ar":6},{"google":4,"bing":5},"EycwPY2XMyTkVzas3n1ygeNJFGAH513qrMjfDljzsMQ","",{"key":7,"data":8},"blog-ثغرة-pgbouncer-cve-2026-107350-التحديث-إلى-1-26-1-ar",{"id":9,"slug":10,"slugs":11,"title":15,"excerpt":16,"readTime":17,"views":18,"isPinned":19,"publishedAt":20,"updatedAt":21,"category":22,"categories":28,"featuredImage":30,"bgImage":31,"posterImage":32,"relatedSolution":30,"intro":33,"sections":34,"ctaTitle":160,"ctaBody":161,"ctaButton":162,"ctaUrl":163,"relatedPosts":164},516,"ثغرة-pgbouncer-cve-2026-107350-التحديث-إلى-1-26-1",{"fr":12,"en":13,"ar":10,"es":14},"pgbouncer-1-26-1-cve-2026-107350-mettre-a-jour","pgbouncer-1-26-1-cve-2026-107350-update","pgbouncer-1-26-1-cve-2026-107350-actualizar","PgBouncer 1.26.1: إصلاح CVE-2026-107350 (SCRAM)","يصلح PgBouncer 1.26.1 الثغرة CVE-2026-107350 لتجاوز مصادقة SCRAM. تحقق من الإصدار وانكشاف المنفذ 6432، والتحديث عبر apt وDocker، والتخفيف، وفحص السجلات.",12,0,false,"2026-10-28T00:00:00+00:00","2026-10-29T03:10:22+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":27},8,"الأمان والمراقبة","securite-monitoring","bg-rose-500\u002F10 text-rose-400","security",[29],{"id":23,"name":24,"slug":25,"color":26,"icon":27},null,"\u002Fblog\u002Fcovers\u002Fbg.svg","\u002Fblog\u002Fcovers\u002Fpgbouncer-1-26-1-cve-2026-107350-mettre-a-jour-poster.svg","في 14 أكتوبر 2026 أصلح PgBouncer 1.26.1 ثغرة تجاوز مصادقة SCRAM برقم CVE-2026-107350، إضافة إلى ثغرتَي حجب خدمة. وكانت حزم الإصدارات المستقرة من Debian لا تزال مصنفة معرّضة للثغرة وقت الفحص، لذا لا يحسم الأمر أمر `apt upgrade` وحده. قد يحدث ألا يعرف المرء أي إصدار من PgBouncer يعمل على خادمه، ولا من يستطيع الوصول إلى منفذه. يقدّم هذا الدليل الأوامر اللازمة لمعرفة الإصدار في دقائق، والتحديث بحسب طريقة التثبيت (مستودع PGDG أو RHEL أو Docker أو الشيفرة المصدرية)، وتدابير التخفيف في الأثناء، ثم فحص السجلات.",[35,39,75,78,89,114,117,141,145,148,151,154,157],{"type":36,"title":37,"body":38},"h2","ما الذي يصلحه PgBouncer 1.26.1","في 14 أكتوبر 2026 نشر مشروع PgBouncer الإصدار 1.26.1 الذي يصلح ثلاث ثغرات. أخطرها CVE-2026-107350، وهي تجاوز للمصادقة: يستطيع عميل يعرف كلمة مرور مستخدم SCRAM واحد أن يسجّل الدخول بصفة أي مستخدم SCRAM آخر، بما في ذلك مديرو PgBouncer والمستخدمون ذوو الصلاحيات الكاملة في PostgreSQL. وتعود الآلية إلى رسالة بدء ثانية، هي StartupMessage، تُعالَج أثناء مصادقة SCRAM عندما يستهدف الاتصال قاعدة بيانات غير موجودة. وبحسب وصف Mend، يظل تبادل SCRAM مُتحقَّقًا منه بمفاتيح المستخدم الأول، بينما تُفتح الجلسة بهوية المستخدم الثاني. ويوضح سجل التغييرات أن الهجوم يشترط SCRAM لدى المستخدمين معًا.\n\nأما الثغرتان الأخريان فهما حجب خدمة يمكن إطلاقهما دون مصادقة، لكن في ظل خيارات إعداد معينة فقط: CVE-2026-107349 وCVE-2026-107348. وتمنح Mend للثغرة CVE-2026-107350 درجة CVSS v4 قدرها 8.7. والدرجة أقل أهمية من سؤال عملي: أي إصدار يعمل لديك، ومن يستطيع بلوغ المنفذ 6432؟",{"type":40,"title":41,"headers":42,"rows":46},"comparison","الإصدارات المتأثرة وحالة الحزم",[43,44,45],"الحالة","الوضع","الإجراء",[47,51,54,57,61,63,67,71],[48,49,50],"PgBouncer من 1.17.0 إلى 1.26.0","متأثر بـ CVE-2026-107350 إذا كان الحسابان يستخدمان SCRAM","الترقية إلى 1.26.1",[52,53,50],"PgBouncer من 1.20.0 إلى 1.26.0","متأثر بـ CVE-2026-107349 إذا كان `ignore_startup_parameters` غير فارغ ولا يتضمن `options`",[55,56,50],"PgBouncer من 1.21.0 إلى 1.26.0","متأثر بـ CVE-2026-107348 فقط إذا تجاوز `max_packet_size` القيمة 2147483648",[58,59,60],"Debian bookworm، الحزمة 1.18.0-1+deb12u1","مصنّفة معرّضة للثغرة في متتبّع أمان Debian","مستودع PGDG أو البناء من المصدر",[62,59,60],"Debian trixie، الحزمة 1.24.1-1+deb13u2",[64,65,66],"Debian forky وsid، الحزمة 1.26.1-1","مُصلَحة","التحديث عبر apt",[68,69,70],"صورة Docker من طرف ثالث","تتوقف على الإصدار المضمَّن","فحص `pgbouncer -V` داخل الحاوية",[72,73,74],"إصدار أقدم من 1.17.0","خارج النطاق المعلن لـ CVE-2026-107350","لا تكتفِ بذلك، وخطّط للتحديث",{"type":36,"title":76,"body":77},"«PgBouncer لديّ غير مكشوف»: معيار غير كافٍ","الاعتراض وجيه: PgBouncer الذي يستمع على عنوان خاص فقط لا يمكن بلوغه من الإنترنت. لكن الهجوم لا يحتاج إلى تخمين بالقوة الغاشمة، إذ يكفي معرفة كلمة مرور مستخدم SCRAM صالح واحد والقدرة على بلوغ المنفذ. وكلمة مرور التطبيق تعيش في ملف `.env` أو متغير في CI أو جهاز مطوّر، وأحيانًا في سجل. والتطبيق المخترَق يوفّر كلمة المرور والموقع الشبكي معًا. ومن هناك تحوّل الثغرة حسابًا تطبيقيًا محدودًا إلى حساب إداري، بل إلى مستخدم بصلاحيات كاملة على خادم PostgreSQL الذي خلفه.\n\nفالمعيار الحاسم إذن ليس «إنترنت أم لا»، بل سؤالان: من يستطيع فتح اتصال بالمنفذ 6432، وكم كلمة مرور صالحة متداولة. إصدار معرّض للثغرة خلف جدار حماية صارم خطر مخفَّض، لا خطر مزال.",{"type":79,"title":80,"items":81},"ul","ما الذي يحدد انكشافك الفعلي",[82,83,84,85,86,87,88],"**عنوان الاستماع** — لا توجد قيمة افتراضية لـ `listen_addr`: بدونه يقبل PgBouncer مقابس Unix فقط. والقيمة `*` تفتح كل الواجهات.","**نوع المصادقة** — يشترط الهجوم SCRAM لدى المستخدمين معًا. راجع `auth_type` وطبيعة السجلات في الملف الذي يحدده `auth_file`.","**عدد الحسابات** — كل كلمة مرور صالحة بوابة نحو بقية حسابات SCRAM. عشرة حسابات تطبيقية تعني عشرة مفاتيح للباب نفسه.","**حسابات الإدارة** — يفتح `admin_users` الوصول إلى وحدة التحكم، وقد يكون الدور المستخدم للوصول إلى PostgreSQL مستخدمًا بصلاحيات كاملة.","**Docker وجدار الحماية** — المنفذ الذي ينشره Docker يمر بقواعده الشبكية الخاصة التي كثيرًا ما تتجاوز قواعد ufw. تحقق من طريقة نشر المنفذ، لا من جدار الحماية وحده.","**الخيارات المرتبطة بحجب الخدمة** — `ignore_startup_parameters` غير فارغ دون `options`، أو `max_packet_size` مرفوع فوق قيمته الافتراضية.","**الحاويات والحزم المضمَّنة** — يحتفظ PgBouncer المسلَّم داخل حزمة Compose أو chart بإصدار صورته، أيًّا كان إصدار الخادم المضيف.",{"type":90,"title":91,"steps":92},"steps","التحقق من الإصدار والانكشاف في دقائق",[93,96,99,102,105,108,111],{"title":94,"body":95},"استعلم من وحدة تحكم الإدارة","`psql -h 127.0.0.1 -p 6432 -U \u003Cadmin_user> pgbouncer -c \"SHOW VERSION;\"`\nلا يستطيع الاتصال إلا مستخدمو `admin_users` أو `stats_users`. يعرض الأمر `SHOW VERSION` سلسلة إصدار PgBouncer: وبعد الإصلاح يجب أن تذكر 1.26.1.",{"title":97,"body":98},"اقرأ إصدار الملف التنفيذي","`pgbouncer -V`\n`which -a pgbouncer`\nقد تتجاور ملفات تنفيذية عدة، ملف الحزمة وآخر تحت `\u002Fusr\u002Flocal` بعد بناء من المصدر. وليس الأول في القائمة دائمًا هو ما تشغّله الخدمة.",{"title":100,"body":101},"اقرأ إصدار الحزمة","Debian وUbuntu:\n`dpkg -l pgbouncer`\n`apt-cache policy pgbouncer`\nRHEL وAlmaLinux وRocky:\n`rpm -q pgbouncer`\n`dnf info pgbouncer`\nقارن مع الجدول أعلاه. قد تتلقى حزمة التوزيعة إصلاحًا دون تغيير رقم الإصدار الأصلي: ثق بمتتبّع أمان التوزيعة أكثر من الرقم وحده.",{"title":103,"body":104},"أعد قراءة الإعداد المحمَّل فعلًا","`ps -eo pid,args | grep '[p]gbouncer'`\n`grep -nE '^(listen_addr|listen_port|auth_type|auth_file|admin_users|ignore_startup_parameters|max_packet_size)' \u002Fetc\u002Fpgbouncer\u002Fpgbouncer.ini`\nملف `.ini` الواجب قراءته هو الممرَّر وسيطًا إلى العملية، وليس بالضرورة المسار المعتاد.",{"title":106,"body":107},"اعرف من يستطيع بلوغ المنفذ","`sudo ss -ltnp | grep 6432`\n`sudo ufw status numbered`\n`nc -vz \u003Cserver_ip> 6432`\nيبيّن الأمر الأخير، إذا شُغّل من جهاز آخر، هل يستجيب المنفذ خارج الشبكة المقصودة. والاستجابة غير المتوقعة تستوجب قرارًا فوريًا بشأن جدار الحماية.",{"title":109,"body":110},"أحصِ حسابات SCRAM دون عرض الأسرار","`grep -c 'SCRAM-SHA-256' \u002Fetc\u002Fpgbouncer\u002Fuserlist.txt`\nاستبدل المسار بمسار `auth_file`. لا تلصق محتوى الملف في تذكرة أو محادثة: فهو يحوي بصمات كلمات مرورك.",{"title":112,"body":113},"جرّد الحاويات","`docker ps`\n`docker port \u003Ccontainer>`\n`docker exec \u003Ccontainer> pgbouncer -V`\nتحتفظ الحاوية العاملة بالصورة التي بدأت بها. وتبيّن نتيجة `docker port` هل المنفذ منشور على المضيف.",{"type":36,"title":115,"body":116},"أي مسار للتحديث: حالة حزم Debian","وقت كتابة هذا الدليل، يصنّف متتبّع أمان Debian الإصدارين bookworm (1.18.0-1+deb12u1) وtrixie (1.24.1-1+deb13u2) معرّضين للثغرة CVE-2026-107350، ولا يملك الحزمة المصلَحة 1.26.1-1 سوى forky وsid. وما دامت Debian لم تنشر إصلاحًا لإصدارك، فإن `apt upgrade` وحده لا يحميك. أعد مراجعة المتتبّع يوم تنفيذك: فقد تتغير الحالة.\n\nثمة ثلاثة مسارات. الأول: مستودع PGDG، أي apt.postgresql.org لـ Debian وUbuntu وyum.postgresql.org لـ RHEL ومشتقاته، وتصفه صفحة تنزيل PgBouncer بأنه بناءات قد تكون أحدث من تلك الموجودة في التوزيعات. الثاني: صورة Docker أو وسم محدَّث، مع العلم أن المشروع لا يذكر أي صورة رسمية، فأنت إذن تستخدم صورة من طرف ثالث. الثالث: بناء أرشيف الشيفرة المصدرية للإصدار 1.26.1. وقبل التحويل، تأكد عبر `apt-cache policy pgbouncer` أو `dnf info pgbouncer` أن المستودع يعرض فعلًا الإصدار المصلَح.",{"type":90,"title":118,"steps":119},"التحديث بحسب طريقة التثبيت",[120,123,126,129,132,135,138],{"title":121,"body":122},"انسخ الإعداد احتياطيًا","`sudo cp -a \u002Fetc\u002Fpgbouncer \u002Froot\u002Fpgbouncer-etc-backup`\nتتيح هذه النسخة الرجوع إذا استبدل التحديث ملفًا ما. دوّن أيضًا الإصدار الحالي قبل البدء.",{"title":124,"body":125},"Debian وUbuntu: فعّل مستودع PGDG","`sudo apt install -y postgresql-common ca-certificates`\n`sudo \u002Fusr\u002Fshare\u002Fpostgresql-common\u002Fpgdg\u002Fapt.postgresql.org.sh`\n`apt-cache policy pgbouncer`\nيُعدّ السكربت الرسمي مستودع apt.postgresql.org. ويجب أن يعرض الأمر الأخير مرشحًا بالإصدار 1.26.1؛ وإن غاب فلا تتابع بهذا المسار.",{"title":127,"body":128},"Debian وUbuntu: التثبيت","`sudo apt update`\n`sudo apt install --only-upgrade pgbouncer`\n`pgbouncer -V`\nإذا اقترح dpkg استبدال ملف الإعداد لديك فأبقِ نسختك المحلية. ويؤكد `pgbouncer -V` الملف التنفيذي المثبَّت.",{"title":130,"body":131},"RHEL وAlmaLinux وRocky","أضف مستودع PGDG بالأوامر التي يولّدها محدِّد yum.postgresql.org لتوزيعتك، ثم:\n`sudo dnf makecache`\n`dnf info pgbouncer`\n`sudo dnf upgrade pgbouncer`\nتأكد أن الإصدار المقترح هو 1.26.1 قبل التأكيد.",{"title":133,"body":134},"Docker وCompose","`docker compose pull pgbouncer`\n`docker compose up -d pgbouncer`\n`docker compose exec pgbouncer pgbouncer -V`\nإذا كانت الصورة مثبّتة على وسم أو digest قديم فحدّث هذا المرجع أولًا في ملف Compose. وإن لم يوجد وسم 1.26.1 فابنِ الصورة من الشيفرة المصدرية.",{"title":136,"body":137},"البناء من الشيفرة المصدرية","`curl -LO https:\u002F\u002Fwww.pgbouncer.org\u002Fdownloads\u002Ffiles\u002F1.26.1\u002Fpgbouncer-1.26.1.tar.gz`\n`sha256sum pgbouncer-1.26.1.tar.gz`\nقارن المجموع الناتج بالمنشور في صفحة التنزيل قبل المتابعة.\n`tar xzf pgbouncer-1.26.1.tar.gz`\n`cd pgbouncer-1.26.1`\n`.\u002Fconfigure --prefix=\u002Fusr\u002Flocal`\n`make`\n`sudo make install`\nيتطلب البناء libevent 2.0 أو أحدث وOpenSSL 1.0.1 أو أحدث ومترجم C11. وتوصي الوثائق باستخدام Autoconf في الإنتاج.",{"title":139,"body":140},"أعد التشغيل ثم تحقق","`sudo systemctl restart pgbouncer`\n`ps -o lstart= -p $(pgrep -o pgbouncer)`\n`sudo readlink -f \u002Fproc\u002F$(pgrep -o pgbouncer)\u002Fexe`\nلا تكفي إعادة التحميل: يجب أن تنطلق العملية من جديد بالملف التنفيذي الجديد. ويثبت ذلك وقت البدء ومسار الملف التنفيذي. وأخيرًا شغّل `SHOW VERSION` من جديد في وحدة التحكم.",{"type":142,"title":143,"body":144},"tip","إعادة التشغيل دون قطع العملاء، وحالة search_path","تقطع إعادة التشغيل الاتصالات المفتوحة. وتصف الوثائق بديلًا: عمليات عدة على المنفذ نفسه عبر `so_reuseport`، ثم `SHUTDOWN WAIT_FOR_CLIENTS` على عملية واحدة في كل مرة بينما يعيد العملاء الاتصال. ونقطة انتباه أخرى: منذ الإصدار 1.26.0 يُتتبَّع `search_path` افتراضيًا، ويجعل 1.26.1 الخيار `ignore_startup_parameters` يتقدم على المعاملات المتتبَّعة. فإذا كان تطبيق يرسل `search_path` عند البدء وكنت تعتمد على تجاهله، فأضف `ignore_startup_parameters = search_path` إلى الإعداد لاستعادة سلوك الإصدار 1.25.",{"type":36,"title":146,"body":147},"التخفيف إلى حين تطبيق الإصلاح","بالنسبة إلى CVE-2026-107350 لا يقدّم الإعلان أي تخفيف عبر الإعداد: التحديث هو الجواب الحقيقي الوحيد. لكن يمكنك تقليص عدد من يحاول. قيّد المنفذ 6432 بشبكة التطبيقات:\n`sudo ufw allow from \u003Capp_subnet> to any port 6432 proto tcp`\n`sudo ufw status numbered`\n`sudo ufw delete \u003Cn>`\nيمثل `\u003Cn>` هنا رقم قاعدة أوسع موجودة أصلًا، كفتح المنفذ 6432 للجميع، وتُحذف بعد وضع القاعدة المقيِّدة. وفي RHEL ومشتقاته تُضبط القاعدة نفسها عبر firewalld. وإذا كانت قيمة `listen_addr` هي `*` فاستبدلها بالعنوان الخاص للخادم. ثم دقّق ملف `auth_file`: احذف الحسابات غير المستخدمة، وبدّل كلمات المرور التي تداولها الناس، وقلّص `admin_users` إلى الحد الأدنى الضروري.\n\nأما ثغرتا حجب الخدمة فما يلي قراءتنا لشروط سجل التغييرات، وليس توجيهًا من الناشر. تفترض CVE-2026-107349 أن `ignore_startup_parameters` غير فارغ ولا يتضمن `options`: وإضافة `options` إلى القائمة تزيل الشرط؛ وإفراغ الإعداد يزيله أيضًا، لكنه قد يتسبب في رفض العملاء الذين يرسلون معاملات بدء (انظر حالة `search_path` أعلاه). وتفترض CVE-2026-107348 أن `max_packet_size` أعلى من 2147483648: والإبقاء على القيمة الافتراضية 2147483647 يستبعدها.",{"type":36,"title":149,"body":150},"فحص آثار اتصال منتحَل","يسجّل PgBouncer افتراضيًا الاتصالات الناجحة وحالات قطع الاتصال مع أسبابها، بفضل `log_connections` و`log_disconnections`. اقرأ الفترة التي تلي نشر الإصلاحات، وما قبلها إن سمحت سجلاتك:\n`sudo journalctl -u pgbouncer --since \"2026-10-14\"`\nابحث عن محاولات نحو أسماء قواعد بيانات غير موجودة في قسم `[databases]` لديك، تليها مباشرة جلسة تُفتح باسم مستخدم مختلف من العنوان نفسه. وفي وحدة التحكم يعرض هذان الأمران الحالة الراهنة:\n`psql -h 127.0.0.1 -p 6432 -U \u003Cadmin_user> pgbouncer -c \"SHOW DATABASES;\"`\n`psql -h 127.0.0.1 -p 6432 -U \u003Cadmin_user> pgbouncer -c \"SHOW CLIENTS;\"`\nومن جهة PostgreSQL اعرض الأدوار وتغييراتها الأخيرة بالأمر `psql -c \"\\du\"`.\n\nلا نملك توقيعًا دقيقًا لهذا الهجوم في السجلات، ولا نختلقه. وغياب الآثار لا يثبت غياب الاختراق، خاصة إذا كان `log_connections` معطّلًا أو دُوّرت السجلات. وعند شك جدي، غيّر كلمات مرور جميع حسابات SCRAM والأدوار ذات الامتيازات في خادم PostgreSQL.",{"type":36,"title":152,"body":153},"إغلاق الملف: من الإصدار إلى المتابعة","التحديث الناجح يُثبَت ولا يُفترَض. لكل خادم، دوّن في جدول الجهاز وطريقة التثبيت والإصدار قبل التحديث وبعده وقاعدة جدار الحماية المطبقة وتاريخ الفحص. تحقق أن `SHOW VERSION` يعلن 1.26.1، وأن العملية أُعيد تشغيلها بعد التثبيت، وأن المنفذ 6432 لا يُبلَغ إلا من الشبكة المقصودة. وتأكد كذلك أن إعدادَي حجب الخدمة يحترمان الشروط الموصوفة أعلاه، أو أنهما لم يعودا ذا موضوع.\n\nوأخيرًا لا تعوّل على التحديثات التلقائية: فحزمة التوزيعة غير المصلَحة لا تُحدّث نفسها، وكذلك صورة Docker المثبّتة. أضف تذكيرًا لإعادة مراجعة متتبّع أمان توزيعتك، ثم انتقل إلى حزمتها متى أُصلحت، أو أبقِ مستودع PGDG عن قصد.",{"type":36,"title":155,"body":156},"على VPS خاص بك، الرافعات الثلاث بيدك","يتطلب إصلاح PgBouncer ثلاثة أنواع من الوصول: اختيار الإصدار المثبَّت، وضبط جدار حماية المنفذ 6432، وقراءة السجلات. وعلى VPS Cloud بصلاحية root تكون هذه الرافعات الثلاث بيدك، دون انتظار جدول مضيف مشترك. وتفصّل الأدلة المرتبطة أسفل هذا المقال جدار الحماية وإعداد PostgreSQL. هذا الدليل مقدَّم دون دعم فني: يبقى التحديث على عاتقك. وإن فضّلت تفويض إدارة الخادم فثمة خيار إدارة VPS، يُقدَّر بحسب حاجتك.",{"type":36,"title":158,"body":159},"الوثائق الرسمية","إعلان الإصدار 1.26.1: https:\u002F\u002Fwww.postgresql.org\u002Fabout\u002Fnews\u002Fpgbouncer-1261-released-fixes-three-cves-3403\u002F\n\nسجل تغييرات PgBouncer: https:\u002F\u002Fwww.pgbouncer.org\u002Fchangelog.html\n\nتنزيلات PgBouncer: https:\u002F\u002Fwww.pgbouncer.org\u002Fdownloads\u002F\n\nالاستخدام ووحدة تحكم الإدارة: https:\u002F\u002Fwww.pgbouncer.org\u002Fusage.html\n\nإعداد PgBouncer: https:\u002F\u002Fwww.pgbouncer.org\u002Fconfig.html\n\nمتتبّع أمان Debian لـ CVE-2026-107350: https:\u002F\u002Fsecurity-tracker.debian.org\u002Ftracker\u002FCVE-2026-107350\n\nبطاقة Mend لـ CVE-2026-107350: https:\u002F\u002Fwww.mend.io\u002Fvulnerability-database\u002FCVE-2026-107350\u002F\n\nمستودع apt لـ PostgreSQL: https:\u002F\u002Fwiki.postgresql.org\u002Fwiki\u002FApt\n\nمستودع yum لـ PostgreSQL: https:\u002F\u002Fyum.postgresql.org\u002F\n\nDocker وجدران الحماية: https:\u002F\u002Fdocs.docker.com\u002Fengine\u002Fnetwork\u002Fpacket-filtering-firewalls\u002F","خادم تتحكم أنت في إصداره وجدار حمايته","على VPS Cloud بصلاحية root تختار إصدار PgBouncer، وتغلق المنفذ 6432 إلا أمام الأجهزة المقصودة، وتقرأ سجلاتك بنفسك. ويتيح خيار إدارة VPS تفويض هذه المتابعة.","عرض خوادم VPS Cloud","\u002Fvps-cloud",[165,189,205],{"id":166,"slug":167,"slugs":168,"title":172,"excerpt":173,"readTime":174,"views":18,"isPinned":19,"publishedAt":175,"updatedAt":176,"category":177,"categories":183,"featuredImage":30,"bgImage":31,"posterImage":185,"relatedSolution":186},56,"postgresql-على-خادم-vps-قاعدة-بيانات-موثوقة-ومتحكم-بها",{"fr":169,"en":170,"ar":167,"es":171},"heberger-postgresql-vps","postgresql-on-a-vps-a-reliable-and-controlled-database","alojar-postgresql-en-un-vps","‎PostgreSQL على خادم VPS: قاعدة بيانات موثوقة ومتحكَّم بها","‎استضف PostgreSQL على VPS: إعداد الإنتاج، نسخ pgBackRest، HA بالبث، مقارنة RDS\u002FSupabase\u002FNeon واستكشاف أخطاء OOM.",9,"2026-04-25T00:00:00+00:00","2026-10-21T15:21:37+00:00",{"id":178,"name":179,"slug":180,"color":181,"icon":182},6,"قواعد البيانات","bases-de-donnees","bg-teal-500\u002F10 text-teal-400","database",[184],{"id":178,"name":179,"slug":180,"color":181,"icon":182},"\u002Fblog\u002Fcovers\u002Fheberger-postgresql-vps-poster.svg",{"categorySlug":187,"appSlug":188},"قواعد-البيانات","postgresql-stack",{"id":190,"slug":191,"slugs":192,"title":196,"excerpt":197,"readTime":198,"views":18,"isPinned":19,"publishedAt":199,"updatedAt":200,"category":201,"categories":202,"featuredImage":30,"bgImage":31,"posterImage":204,"relatedSolution":30},115,"تهيئة-جدار-الحماية-ufw-على-خادمك-vps",{"fr":193,"en":194,"ar":191,"es":195},"pare-feu-ufw-vps","configure-your-vps-firewall-with-ufw","configurar-firewall-ufw-vps","تهيئة جدار الحماية UFW على خادمك VPS","هيّئ جدار حماية خادمك VPS باستخدام UFW خطوة بخطوة: القواعد والمنافذ وتحديد معدّل SSH وأفضل الممارسات لتقليص سطح الهجوم.",4,"2026-02-25T00:00:00+00:00","2026-09-07T11:26:10+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":27},[203],{"id":23,"name":24,"slug":25,"color":26,"icon":27},"\u002Fblog\u002Fcovers\u002Fpare-feu-ufw-vps-poster.svg",{"id":206,"slug":207,"slugs":208,"title":212,"excerpt":213,"readTime":198,"views":214,"isPinned":19,"publishedAt":215,"updatedAt":200,"category":216,"categories":217,"featuredImage":30,"bgImage":31,"posterImage":219,"relatedSolution":220},109,"fail2ban-enhanced-على-خادم-vps-حجب-الهجمات-المتكررة",{"fr":209,"en":210,"ar":207,"es":211},"proteger-vps-fail2ban","fail2ban-enhanced-on-vps-blocking-repeated-attacks","fail2ban-en-vps-bloquear-ataques-repetidos","Fail2Ban Enhanced على خادم VPS: حجب الهجمات المتكرّرة","اربط Fail2Ban Enhanced بكتالوج ServOrbit: حظر SSH\u002FNginx، وسجلات مقروءة، ووثائق رسمية.",1,"2026-03-03T00:00:00+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":27},[218],{"id":23,"name":24,"slug":25,"color":26,"icon":27},"\u002Fblog\u002Fcovers\u002Fproteger-vps-fail2ban-poster.svg",{"categorySlug":221,"appSlug":222},"securite","fail2ban-enhanced",1793251153858]