كيفية تقييد مستخدمي SSH بمجلدات محددة على نظام Ubuntu 24.04 (دليل SFTP Chroot)

لا ينبغي أن يمنح منح المقاول صلاحية تحميل بعض الملفات جلسة طرفية تلقائية تتيح له رؤية الخادم بأكمله. في نظام أوبونتو 24.04 LTS، يُمكن لبرنامج OpenSSH تقييد حساب نقل الملفات إلى دليل مُحدد باستخدام ChrootDirectoryقاعدة وخادم مُدمج internal-sftp. والفرق الجوهري هو أن هذا التقييد خاص ببروتوكول SFTP فقط ، وليس طريقة سهلة لتوفير واجهة Bash كاملة الوظائف ولكنها مُقيدة.

يشرح هذا الدليل ما تحميه الإعدادات فعليًا، ثم يستعرض عملية إعداد قابلة للعكس من ثماني مراحل لحسابات متعددة، لكل منها دليلها الخاص. تستخدم الأوامر حسابًا افتراضيًا باسم contractorومضيفًا افتراضيًا باسم server.example.com؛ استبدلهما بقيمك الخاصة. هذه أمثلة على التكوين، وليست نتائج مؤكدة من اختبار خادم حقيقي.

أي نوع من القيود تحتاج إليه فعلاً؟

ثلاثة عناصر تحكم غالبًا ما يتم الخلط بينها. تحدد صلاحيات لينكس الملفات التي يمكن لحساب ما قراءتها أو تعديلها؛ ويحدد تغيير الدليل الرئيسي للحساب موقعًا أوليًا؛ بينما يغير chroot جذر نظام الملفات المقدم لعملية ما. هذه العناصر ليست قابلة للتبادل.

الهدفنقطة بداية مناسبةقيد هام
التحميل والتنزيل فقط داخل مجلد مخصصChrootDirectoryمعForceCommand internal-sftpلا يوفر واجهة سطر أوامر لينكس تفاعلية
السماح بوجود واجهة سطر أوامر مع التحكم في القراءة والكتابةملكية يونكس، والمجموعات، وقوائم التحكم بالوصول، وأقل الامتيازاتقد يتمكن مستخدم سطر الأوامر العادي من اجتياز مسارات أخرى قابلة للقراءة
توفير بيئة سطر أوامر معزولةبيئة معزولة (chroot) مصممة بعناية أو حاوية/آلة افتراضية مزودة بضوابط أمان منفصلةيتطلب الأمر إعدادًا ومراجعة عزل أكثر بكثير

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

وثائق OpenSSH ChrootDirectory، Matchوفي دليل sshd_configForceCommand الرسمي لنظام Ubuntu 24.04 .

قم بإعداد بيئة معزولة لدليل SFTP فقط في ثماني مراحل

قبل تعديل SSH عن بُعد، أبقِ جلسة المسؤول الحالية مفتوحة وتأكد من امتلاكك صلاحية الوصول إلى وحدة التحكم أو الاسترداد. استخدم حسابًا منفصلاً غير مميز لعمليات النقل؛ ولا تُضِف حساب المسؤول إلى المجموعة المقيدة.

1. تحقق من OpenSSH واحتفظ بجلسة استرداد

على الخادم، قم بتثبيت OpenSSH إذا لزم الأمر، وتحقق من الخدمة، واحفظ الإعدادات الرئيسية. تدعم وثائق خادم أوبونتو الرسمية مسارات الخدمة والإعدادات هذه.

sudo apt update
sudo apt install openssh-server
sudo systemctl status ssh
sudo cp -a /etc/ssh/sshd_config /etc/ssh/sshd_config.pre-sftp
طرفية أوبونتو تعرض أمر systemctl status ssh وتفاصيل خدمة SSH
عرض طرفي لحالة خدمة SSH، مفيد للتحقق من توفر OpenSSH قبل تغيير قواعد الوصول.

إذا كان بإمكانك إدارة الجهاز عبر SSH فقط، فلا تغلق الجلسة الحالية أثناء التحرير أو الاختبار. راجع دليل تكوين خادم OpenSSH الخاص بنظام Ubuntu قبل تغيير البرنامج الخفي.

2. أنشئ مستخدمًا مخصصًا ومجموعة وصول SFTP

تُعدّ المجموعة مفيدةً عند توقع وجود أكثر من حساب مقيّد. يمنح هذا المثال كل عضو بيئة معزولة منفصلة باستخدام %uالرمز المميز، الذي يُحوّله OpenSSH إلى اسم المستخدم المتصل. /uploadمن المفترض أن يكون مسار الصفحة الرئيسية موجودًا داخل بيئة chroot المستقبلية، لذا لا تُنشئ دليلًا على مستوى المضيف /upload.

sudo groupadd sftpclients
sudo adduser --home /upload --no-create-home --shell /usr/sbin/nologin contractor
sudo usermod -aG sftpclients contractor
id contractor

قد يطلب منك النظام adduserتعيين كلمة مرور. في الأنظمة التي تُعطّل مصادقة كلمة مرور SSH، أنشئ مفتاحًا عامًا وقم بتفويضه؛ لا تُفعّل تسجيل الدخول بكلمة مرور بشكل عام لمجرد اتباع مثال. nologinيُعدّ استخدام سطر الأوامر إجراءً وقائيًا إضافيًا، ولكن الأمر المُطبّق internal-sftpهو ما يجعل هذا التكوين قابلاً للنقل فقط. اختبر هذه التركيبة على نظام المصادقة الخاص بك.

يعرض طرفية أوبونتو إنشاء حساب المقاول باستخدام adduser مع تعيين مسار الصفحة الرئيسية للتحميل
يحدد أمر إنشاء الحساب الحساب المقيد ومسار الصفحة الرئيسية الذي سيكون متاحًا بعد تطبيق chroot.

3. أنشئ دليل chroot مملوكًا للمستخدم الجذر

هذا هو الخطأ الذي يقع فيه العديد من الأدلة. يتطلب OpenSSH أن يكون كل مكون من مسار chroot مملوكًا للمستخدم الجذر (root) وغير قابل للكتابة من قبل مستخدمين أو مجموعات أخرى. لا تجعل جذر السجن نفسه قابلاً للكتابة من قبل حساب SFTP.

sudo install -d -o root -g root -m 0755 /srv/sftp
sudo install -d -o root -g root -m 0755 /srv/sftp/contractor
namei -l /srv/sftp/contractor

/تحقق من المكونات الموجودة /srvأيضًا؛ فالأوامر المذكورة أعلاه لا تُصلح تلقائيًا أذونات الأصل غير الآمنة. إذا كان أي مكون قابلًا للكتابة من قِبل المجموعة أو مملوكًا للمستخدم، فصحح ملكيته ووضعه فقط بعد التحقق مما إذا كانت تطبيقات أخرى تعتمد عليه.

طرفية أوبونتو تعرض المجلدات /srv/sftp و /srv/sftp/contractor المملوكة للمستخدم الجذر مع الصلاحيات
يتم عرض دليل السجن ودليله الأصل مع ملكية الجذر، وهو الشرط الذي يتحقق منه OpenSSH عند بدء الجلسة.

4. أضف دليلاً فرعياً قابلاً للكتابة داخل السجن

يمكن للحساب الكتابة إلى مجلد فرعي دون السماح له بتغيير جذر chroot. أنشئ /srv/sftp/contractor/uploadملفًا لملفات الحساب الفعلية؛ سيظهر هذا الملف من داخل SFTP على النحو التالي /upload: .

sudo install -d -o contractor -g contractor -m 0750 /srv/sftp/contractor/upload
sudo stat -c '%U:%G %a %n' /srv/sftp/contractor /srv/sftp/contractor/upload

تختلف ملكية الملفات المتوقعة عمدًا: root:rootبالنسبة لجذر السجن، وبالنسبة contractor:contractorلمجلد التحميل القابل للكتابة. تجنب استخدام الأمر `cd` chmod 777، لأنه سيؤدي إلى تعريض النظام لمخاطر غير ضرورية، وسيتم رفضه إذا طُبِّق على جذر السجن.

طرفية أوبونتو تعرض مجلد تحميل منفصل مملوك للمقاول ضمن بيئة SFTP المعزولة المملوكة للمستخدم الجذر
يمكن كتابة المجلد الفرعي الخاص بالتحميل بواسطة الحساب المقيد، بينما يظل المجلد المغلق مملوكًا للمستخدم الجذر.

5. أضف قاعدة مطابقة إلى ملف sshd_config

افتح الملف /etc/ssh/sshd_configوأضف الكتلة التالية في النهاية، بعد أي توجيهات وكتل موجودة Match. استخدم محرر نصوص مثل `/usr/bin/subscribe` sudoeditأو sudo nano`/usr/bin/subscribe`. راجع القواعد الموجودة Matchأولًا: إذا خصصت عدة كتل متطابقة نفس الكلمة المفتاحية، فسيستخدم OpenSSH أول مثيل مناسب. يعالج Ubuntu أيضًا الملفات الموجودة في `/usr/bin/subscribe` /etc/ssh/sshd_config.d/من ملف `/usr/bin/subscribe` سابق Include؛ قد تؤثر القواعد الموجودة هناك على الأولوية.

Match Group sftpclients
    ChrootDirectory /srv/sftp/%u
    ForceCommand internal-sftp -d /upload
    PermitTTY no
    DisableForwarding yes

Match Groupيستهدف أعضاء sftpclients. ChrootDirectoryيضع كل مستخدم تحت /srv/sftp/USERNAME. ForceCommand internal-sftp -d /uploadيشغل خدمة SFTP داخل العملية ويبدأ داخل الدليل القابل للكتابة. PermitTTY noيمنع تخصيص الطرفية، بينما DisableForwarding yesيعطل ميزات إعادة توجيه SSH للاتصالات المطابقة.

احتفظ Subsystem sftpبالتوجيه العام الذي توفره أوبونتو ما لم يكن لديك سببٌ آخر لتغييره؛ فأمر SFTP الداخلي الإجباري لا يتطلب استبدال هذا السطر العام. لا تُضِف توجيهًا عامًا إضافيًا Match Allلمجرد إنهاء كتلة برمجية دون فهم تأثيره.

محرر GNU nano يعرض قاعدة SFTP لمجموعة Match مع إعدادات ChrootDirectory و ForceCommand
تقوم كتلة تكوين OpenSSH المشروطة بتجميع قيود الدليل وأمر SFTP فقط معًا.

6. تحقق من بناء الجملة والإعدادات الفعالة قبل إعادة التحميل

لا يُثبت نجاح عملية التحليل صحة أذونات السجن، ولا يُثبت أن الحساب المقصود يطابق السياسة. لذا، يُرجى إجراء كلا الفحصين بشكل صريح.

sudo /usr/sbin/sshd -t
sudo /usr/sbin/sshd -T -C user=contractor,host=localhost,addr=192.0.2.10 | grep -E '^(chrootdirectory|forcecommand|permittty|disableforwarding) '
namei -l /srv/sftp/contractor

يجب أن يحدد التكوين الفعال مسار chroot المقصود، وأمر SFTP الإجباري، وتعطيل تخصيص TTY، وقيود إعادة التوجيه. عنوان المثال 192.0.2.10هو لأغراض التوثيق فقط؛ إذا كانت لديك Matchقواعد تعتمد على العنوان، فاستبدله بعنوان مصدر العميل الحقيقي. -T -Cالنموذج موثق في دليل sshd الخاص بنظام Ubuntu 24.04 .

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

7. أعد تحميل SSH واحتفظ بصلاحيات المسؤول الخاصة بك

بعد إجراء الفحوصات بنجاح، أعد تشغيل خدمة SSH لكي تستخدم الاتصالات الجديدة السياسة المُعدّلة. أبقِ اتصال المسؤول الحالي نشطًا أثناء فتح نافذة طرفية ثانية للتأكد من استمرار عمل الوصول الإداري بشكل طبيعي.

sudo systemctl reload ssh
sudo systemctl status ssh --no-pager
طرفية أوبونتو تعرض أوامر التحكم في خدمة SSH وحالة خدمة SSH النشطة
توضح نافذة إدارة خدمة SSH كيفية التحقق من سلامة الخدمة بعد تغيير التكوين.

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

8. اختبار عمليات النقل المسموح بها وحظر الوصول إلى واجهة سطر الأوامر

من جهاز كمبيوتر آخر، اتصل كمستخدم ذي صلاحيات محدودة. استخدم اسم المضيف الفعلي للخادم وملف اختبار مناسب. يجب أن يكون أول دليل SFTP هو /upload، ويجب أن يظهر جذر chroot كـ /بدلاً من مسار المضيف /srv/sftp/contractor.

sftp contractor@server.example.com
sftp> pwd
sftp> cd /
sftp> ls
sftp> cd /upload
sftp> put sample.txt
sftp> cd /etc
sftp> exit

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

جلسة طرفية SFTP تعرض دليل جذر افتراضي، ومجلد تحميلات، ومحاولة تنقل
يوضح موجه أوامر SFTP استعراض نظام ملفات محصور بدلاً من نظام ملفات المضيف.
ssh contractor@server.example.com

يجب عدم فتح جلسة SSH تفاعلية عادية لهذا الحساب. بدلاً من ذلك، قد يتم إغلاق الاتصال أو عرض رسالة متعلقة بالبروتوكول؛ لذا لا تعتمد على عبارة محددة. في حال فتح جلسة SSH، تعامل مع الإعدادات على أنها غير آمنة، وراجع عضوية المجموعة، Matchوالأولوية، sshd -T -Cوالمخرجات الفعلية قبل استخدام الحساب.

طرفية أوبونتو تعرض محاولة اتصال SSH تنتهي بدلاً من عرض واجهة تفاعلية
توضح محاولة الاتصال الطرفي عملية فحص الوصول إلى الصدفة التي تم إجراؤها بعد تمكين قيود SFTP فقط.

ماذا لو استخدمت مفاتيح SSH العامة؟

يعمل التوثيق باستخدام المفتاح العام مع بيئة SFTP المعزولة، ولكن وضع مسار المستخدم الرئيسي على مستوى المضيف /uploadيعني أن المسار الافتراضي ~/.ssh/authorized_keysقد لا يكون موجودًا خارج البيئة المعزولة. البديل العملي هو السماح لـ SSH بقراءة ملف مفتاح يتحكم فيه المستخدم الجذر قبل بدء تشغيل chroot. أضف هذا داخل نفس Match Group sftpclientsالكتلة إذا اخترت تخزين المفاتيح مركزيًا.

    AuthorizedKeysFile /etc/ssh/authorized_keys/%u

ثم أنشئ /etc/ssh/authorized_keys/contractorملفًا يحتوي على المفتاح العام المُصرَّح به للمقاول، مع منح المستخدم الجذر صلاحية الوصول إليه، ودون منح صلاحيات الكتابة للمجموعة أو المستخدمين الآخرين. على سبيل المثال، بعد نسخ ملف المفتاح العام المُدقَّق والمُسمّى بشكل آمن contractor.pubإلى دليل إداري مؤقت:

sudo install -d -o root -g root -m 0755 /etc/ssh/authorized_keys
sudo install -o root -g root -m 0644 contractor.pub /etc/ssh/authorized_keys/contractor
sudo /usr/sbin/sshd -t

لا تقم بنسخ المفتاح الخاص إلى الخادم. يعتمد إعداد مسار المفتاح، وإعدادات المصادقة الافتراضية، وفحوصات الحساب على سياسة SSH الحالية لديك؛ تحقق من إمكانية الوصول إلى المفتاح العام قبل تعطيل طريقة مصادقة تعمل بالفعل.

الإخفاقات الشائعة ودلالاتها

العرضالسبب الأكثر ترجيحًاالتحقق التالي
يتم قطع اتصال SFTP فورًا بعد المصادقةأحد مكونات مسار chroot قابل للكتابة أو غير مملوك للمستخدم الجذر؛ أو بدلاً من ذلك، يكون دليل البدء المطلوب غير موجود.قم بتشغيل سجلات الخدمة namei -l /srv/sftp/contractorوفحصها /uploadومراجعتها.
يتصل المستخدم لكن لا يمكنه التحميلالمجلد الفرعي القابل للكتابة له مالك أو وضع خاطئافحص statمخرجات المجلد الفرعي للتحميل؛ لا تُغيّر ملكية جذر السجن إلى المستخدم.
لا يزال بإمكانك فتح واجهة SSHعدم تطابق المجموعة أو قاعدة SSH سابقة ساريةاركض id contractorوsshd -T -C
تم رفض تسجيل الدخول باستخدام المفتاح العامملف المفاتيح المصرح بها غير موجود في المسار المُكوّن أو فشلت أذوناته في التحقق من الصحةافحص AuthorizedKeysFileموضع المفتاح، وملكية الملف، وسجل SSH
فشل عميل SCP قديموهو يتوقع بروتوكول SCP القديم، الذي يحتاج إلى واجهة طرفية عن بعداستخدم بروتوكول SFTP أو عميل SCP الذي يستخدم SFTP، وليسscp -O

تحقق من السجلات باستخدام sudo journalctl -u ssh -n 80 --no-pagerالأمر المناسب. يعتمد الخطأ المحدد على إعدادات PAM، وتكوين SSH، والوصول إلى نظام الملفات، وطريقة المصادقة. يستخدم OpenSSH 9.0 والإصدارات الأحدث بروتوكول SFTP لعمليات scpالنقل القياسية افتراضيًا، بينما يتطلب الوضع القديم استخدام سطر الأوامر، كما هو موضح في دليل استخدام scp في Ubuntu 24.04 .

هل يمكنك حصر جلسة SSH التفاعلية في مجلد واحد؟

لا يمكن تحقيق ذلك بتغيير دليل المستخدم الرئيسي أو باستخدام مثال SFTP فقط المذكور أعلاه. ChrootDirectoryيمكن أيضًا استخدام OpenSSH لجلسات سطر الأوامر، ولكن يجب أن تتضمن البيئة المعزولة (jail) بيئة سطر أوامر قابلة للاستخدام، ومكتباتها المشتركة، وعُقد الأجهزة المطلوبة، وأي تبعيات للأوامر. يتطلب بناء هذه البيئة بشكل آمن أكثر من مجرد إضافة سطر واحد sshd_config. من السهل إنشاء إعداد هش أو مُضلل، خاصةً عند استخدام أوامر سطر أوامر أو عمليات ربط عشوائية.

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

قائمة التحقق الأمني ​​قبل منح الوصول

  • حساب التحويل ليس حساب مسؤول وينتمي فقط إلى المجموعات الضرورية.
  • كل مكون يؤدي إلى السجن مملوك للمستخدم الجذر ولا يمكن الكتابة إليه من قبل المجموعة أو العالم.
  • يقع موقع التحميل القابل للكتابة داخل السجن، وليس في جذر السجن نفسه.
  • يتطابق المستخدم المقصود مع ChrootDirectory، ForceCommand internal-sftpوتم تعطيل إعادة التوجيه في التكوين الفعال.
  • تنجح عملية تحميل SFTP حقيقية، وتفشل محاولة الوصول إلى الملفات الموجودة على المضيف فقط، ويتم حظر الوصول العادي إلى واجهة سطر الأوامر SSH.
  • تتم إدارة النسخ الاحتياطي والاحتفاظ والحصص والمراقبة وإلغاء الحساب بشكل منفصل؛ ولا يقوم سجن الدليل بتنفيذ هذه السياسات تلقائيًا.

للحصول على مزيد من التفاصيل التقنية، يُرجى الرجوع إلى مرجع تكوين OpenSSH لنظام Ubuntu 24.04 ودليل خادم SFTP لنظام Ubuntu . هذه التعليمات مُخصصة لنظام Ubuntu 24.04 LTS؛ قد تُغير حزم البرامج ومقاطع SSH البرمجية الموجودة السلوك الفعلي، لذا فإنّ المرجع النهائي هو التكوين واختبارات الاتصال الفعلية على جهازك.

اترك تعليقاً

كيفية تقييد مستخدمي SSH بمجلدات محددة على نظام Ubuntu 24.04 (دليل SFTP Chroot)

كيفية تقييد مستخدمي SSH بمجلدات محددة على نظام Ubuntu 24.04 (دليل SFTP Chroot)

تقييد حسابات SSH في Ubuntu 24.04 إلى مجلدات SFTP المحددة باستخدام chroot والأذونات المناسبة وقواعد المطابقة والاختبارات الآمنة - دون منح الوصول إلى shell.

قم بإلغاء قفل APT الخاص بنظام Ubuntu بأمان وأكمل التحديث

قم بإلغاء قفل APT الخاص بنظام Ubuntu بأمان وأكمل التحديث

ابحث عن العملية التي تمتلك قفل واجهة dpkg الأمامية في Ubuntu، ودع عمل الحزمة يكتمل، وقم بإصلاح عمليات التثبيت المتقطعة دون حذف ملفات القفل.

كيفية إعداد لقطات Btrfs تلقائية على سطح مكتب أوبونتو

كيفية إعداد لقطات Btrfs تلقائية على سطح مكتب أوبونتو

قم بإعداد لقطات نظام Btrfs المجدولة على سطح مكتب Ubuntu باستخدام Timeshift، وتحقق من تخطيط وحدة التخزين الفرعية في Ubuntu، واختر فترة الاحتفاظ، وافهم ما لا يمكن للقطات حمايته.

كيفية ترحيل دبيان 12 إلى الإصدار التجريبي دون الإخلال بالتبعيات

كيفية ترحيل دبيان 12 إلى الإصدار التجريبي دون الإخلال بالتبعيات

خطط لعملية ترحيل أكثر أمانًا من Debian 12 إلى Testing: قم بالترقية من خلال Stable، وقم بعمل نسخة احتياطية، ونظف مصادر APT، وقم بمحاكاة تغييرات التبعية، وتحقق مما تغير.

تشغيل خادم أوبونتو في وضع الطوارئ: دليل إنقاذ خطوة بخطوة

تشغيل خادم أوبونتو في وضع الطوارئ: دليل إنقاذ خطوة بخطوة

قم بتشخيص وضع الطوارئ في خادم أوبونتو بأمان. اقرأ سجلات بدء التشغيل، وتحقق من مجلدات الجذر و fstab، وأصلح الوحدة المعطلة، وتعامل مع أخطاء نظام الملفات، وتحقق من إعادة التشغيل النظيفة.

كيفية إعداد شبكة VPN من نوع WireGuard Point-to-Site على نظام Debian 12

كيفية إعداد شبكة VPN من نوع WireGuard Point-to-Site على نظام Debian 12

قم بإعداد خادم VPN يعمل بنظام Debian 12 باستخدام WireGuard لعميل واحد عن بُعد. قم بتكوين المفاتيح، وتوجيه IPv4، و NAT باستخدام nftables، وإمكانية الوصول إلى جدار الحماية، وفحوصات الاتصال.

Step-by-Step Debian 12 Hardening Guide for CIS Compliance

Step-by-Step Debian 12 Hardening Guide for CIS Compliance

Harden a Debian 12 workstation with a careful CIS Benchmark workflow: select the right profile, patch safely, review services and access, configure nftables, and document evidence.

دبيان 12 على خادم افتراضي خاص ذي ذاكرة وصول عشوائي منخفضة: كيفية تقليل أعطال نفاد الذاكرة في MySQL

دبيان 12 على خادم افتراضي خاص ذي ذاكرة وصول عشوائي منخفضة: كيفية تقليل أعطال نفاد الذاكرة في MySQL

تشخيص عمليات إيقاف MySQL بسبب نفاد الذاكرة على Debian 12، والتحقق من حدود ذاكرة VPS، وتكوين التبديل، وضبط ذاكرة قاعدة البيانات والتزامن دون تقديم حل شامل.

كيفية إنشاء سطح مكتب دبيان كنظام غير قابل للتغيير قائم على OSTree

كيفية إنشاء سطح مكتب دبيان كنظام غير قابل للتغيير قائم على OSTree

تعلم كيفية إنشاء واختبار سطح مكتب OSTree مشتق من Debian في جهاز افتراضي، بما في ذلك إعداد شجرة النظام، وتكامل التمهيد، وفحوصات النشر، والتراجع.

How to Mount a Remote SSHFS Directory Automatically at Boot in Debian

How to Mount a Remote SSHFS Directory Automatically at Boot in Debian

Configure an SSHFS boot mount in Debian with SSH keys, fstab, and systemd automount. Includes reboot checks, permissions, timeouts, and troubleshooting.