ذكري المظهر

كيفية إعداد sftp chroot السجن

تثبيت سيرفر FTP : التشغيل المبدئي

تثبيت سيرفر FTP : التشغيل المبدئي

جدول المحتويات:

Anonim

في هذا البرنامج التعليمي ، سنشرح كيفية إعداد بيئة SFTP Chroot Jail التي ستقيّد المستخدمين على أدلة منازلهم. سيكون للمستخدمين وصول SFTP فقط ، سيتم تعطيل الوصول إلى SSH. يجب أن تعمل هذه التعليمات مع أي توزيع Linux حديث بما في ذلك Ubuntu و CentOS و Debian و Fedora.

إنشاء مجموعة SFTP

بدلاً من تكوين خادم OpenSSH لكل مستخدم على حدة ، فإننا سننشئ مجموعة جديدة ونضيف جميع المستخدمين المشجعين إلى هذه المجموعة.

قم بتشغيل الأمر groupadd التالي لإنشاء مجموعة مستخدم sftponly :

sudo groupadd sftponly يمكنك تسمية المجموعة كما تريد.

إضافة مستخدمين إلى مجموعة SFTP

الخطوة التالية هي إضافة المستخدمين الذين تريد sftponly مجموعة sftponly .

إذا كان هذا إعدادًا جديدًا وكان المستخدم غير موجود ، يمكنك إنشاء حساب مستخدم جديد عن طريق الكتابة:

sudo useradd -g sftponly -s /bin/false -m -d /home/username username

  • -g sftponly الخيار -g sftponly إلى إضافة المستخدم إلى المجموعة sftponly.The -s /bin/false يعين مجموعة تسجيل دخول المستخدم. من خلال تعيين shell login إلى /bin/false ، لن يتمكن المستخدم من تسجيل الدخول إلى الخادم عبر SSH. تخبر خيارات -m -d /home/username useradd بإنشاء دليل المستخدم الرئيسي.

قم بتعيين كلمة مرور قوية للمستخدم الذي تم إنشاؤه حديثًا:

sudo passwd username

وإلا إذا كان المستخدم الذي تريد تقييده موجودًا بالفعل ، فأضف المستخدم إلى المجموعة sftponly وتغيير غلاف المستخدم:

sudo usermod -G sftponly -s /bin/false username2

يجب أن يكون الدليل الرئيسي للمستخدم مملوكًا من قبل الجذر وأن يكون لديه 755 أذونات:

sudo chown root: /home/username sudo chmod 755 /home/username

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

sudo mkdir /home/username/{public_html, uploads} sudo chmod 755 /home/username/{public_html, uploads} sudo chown username:sftponly /home/username/{public_html, uploads}

إذا كان تطبيق الويب يستخدم دليل public_html الخاص بالمستخدم كجذر للمستند ، فقد تؤدي هذه التغييرات إلى حدوث مشكلات في الأذونات. على سبيل المثال ، إذا كنت تقوم بتشغيل WordPress ، فستحتاج إلى إنشاء تجمع PHP سيتم تشغيله كمستخدم يمتلك الملفات وإضافة sftponly مجموعة sftponly .

تكوين SSH

SFTP هو نظام فرعي لـ SSH ويدعم جميع آليات مصادقة SSH.

افتح ملف التكوين SSH /etc/ssh/sshd_config مع محرر النصوص الخاص بك:

sudo nano /etc/ssh/sshd_config

ابحث عن السطر الذي يبدأ بـ Subsystem sftp ، عادةً في نهاية الملف. إذا كان السطر يبدأ بعلامة # فقم بإزالة علامة التجزئة وتعديلها لتبدو كما يلي:

/ الخ / سه / sshd_config

Subsystem sftp internal-sftp

قرب نهاية الملف ، كتلة الإعدادات التالية:

/ الخ / سه / sshd_config

Match Group sftponly ChrootDirectory %h ForceCommand internal-sftp AllowTcpForwarding no X11Forwarding no

يحدد التوجيه ChrootDirectory المسار إلى دليل chroot. %h تعني دليل المستخدم الرئيسي. يجب أن يكون هذا الدليل مملوكًا من قِبل مستخدم الجذر ولا يمكن كتابته بواسطة أي مستخدم أو مجموعة أخرى.

كن حذرًا عند تعديل ملف تكوين SSH. قد يتسبب التكوين غير الصحيح في فشل خدمة SSH.

بمجرد الانتهاء من حفظ الملف وإعادة تشغيل خدمة SSH لتطبيق التغييرات:

sudo systemctl restart ssh

في CentOS و Fedora ، تم تسمية خدمة ssh بـ sshd :

sudo systemctl restart sshd

اختبار التكوين

الآن بعد أن قمت بتكوين SFTP chroot ، يمكنك محاولة تسجيل الدخول إلى الجهاز البعيد من خلال SFTP باستخدام بيانات اعتماد المستخدم chrooted. في معظم الحالات ، سوف تستخدم عميل SFTP لسطح المكتب مثل FileZilla ولكن في هذا المثال ، سوف نستخدم الأمر sftp.

افتح اتصال SFTP باستخدام الأمر sftp متبوعًا باسم مستخدم الخادم البعيد وعنوان IP للخادم أو اسم المجال:

sftp [email protected]

سيُطلب منك إدخال كلمة مرور المستخدم. بمجرد الاتصال ، سيعرض الخادم البعيد رسالة تأكيد و sftp> المطالبة:

[email protected]'s password: sftp>

قم بتشغيل الأمر pwd ، كما هو موضح أدناه ، وإذا كان كل شيء يعمل كما هو متوقع ، فيجب أن يعود الأمر / .

sftp> pwd Remote working directory: /

يمكنك أيضًا سرد الملفات والدلائل البعيدة باستخدام الأمر ls وسترى الأدلة التي أنشأناها مسبقًا:

sftp> ls public_html uploads

استنتاج

في هذا البرنامج التعليمي ، تعلمت كيفية إعداد بيئة SFTP Chroot Jail على خادم Linux وتقييد وصول المستخدم إلى الدليل الرئيسي.

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

ssh الأمن sftp