انقل الملفات باستخدام SFTP والأقفاص على Debian و Ubuntu

مرحبا اصدقاء! اليوم أقدم لكم بديلاً لاستخدام خادم FTP لنقل الملفات بأمان. بالفعل الزميل KZKG ^ جارا نشرت واحدة على أساس الحزمة jailkit. الحزمة التي سنقوم بتطويرها تعتمد على الحزم التي لدينا المزيد في متناول اليد في مستودعنا.
سنرى:

  • أدخل مطلوب
  • كيف نقوم بتكوين خادم Openssh؟
  • كيف ننشئ المستخدمين؟
  • كيف يمكننا تعديل أدلة المنزل لجعل القفص يعمل؟

أدخل مطلوب
نحتاج غالبًا إلى نسخ الملفات من أجهزة الكمبيوتر البعيدة إلى أجهزتنا. سألني الكثير عن ذلك. هل أقوم بتثبيت FTP؟ كيف أقوم بتثبيت SAMBA؟ حسنًا ، دعنا ننتقل من البسيط إلى المعقد. بادئ ذي بدء ، لماذا نعقد أنفسنا إذا كان لدينا خادم OpenSSH المثبتة ؟. وإذا لم يكن لدينا ، باستخدام الأمر البسيط:

تثبيت aptitude opensh-server

لدينا بالفعل! ومن ثم سنتمكن من نقل الملفات بأمان عبر بروتوكول SFTP (بروتوكول نقل الملفات الآمن) ، الذي يستخدم SSH (Secure Shell) للتشفير.

افتراضيًا ، المستخدمون الذين لديهم إذن ببدء جلسة عن بُعد عبر مستخدم ssh @ فريقي، سيكونون قادرين على رؤية جميع الملفات المخزنة في نظامنا تقريبًا ، والتي قد لا تروق لنا ، أو لأسباب أمنية لا يجب أن نسمح بذلك.

ستساعدنا هذه المقالة في تكوين ملف خادم OpenSSH بحيث يقتصر المستخدمون الذين نريدهم على دليلهم الشخصي / المستخدمين المنزليين. نوضح ذلك ، بهذه الطريقة ، لن يتمكن المستخدمون المعلنون من بدء جلسة عن بُعد من خلال وحدة تحكم ssh أو من خلال PuTTy. سيكونون قادرين فقط على نقل الملفات من وإلى دليلهم الشخصي على جهاز الكمبيوتر أو الخادم الخاص بنا.

الطريقة الموضحة هنا صالحة لإصدارات دبيان 5 (Lenny) أو أعلى ، ولإصدارات Ubuntu 9.04 أو أعلى. إصدار حزمة SSH من Hardy أو Ubuntu 8.04 قديم جدًا ولا يدعم التكوين الذي سنصفه أدناه.

كيف نقوم بتكوين خادم Openssh؟
كمستخدم جذر نقوم بتحرير الملف / الخ / سه / sshd_config مع أي محرر نصوص بسيط. نوصي باستخدام نانو في وضع وحدة التحكم.

nano / etc / ssh / sshd_config

نريد أن يكون السطر التالي موجودًا:

النظام الفرعي sftp

يوجد في Lenny و Squeeze:

النظام الفرعي sftp / usr / lib / openssh / sftp-server

في حالة عدم وجوده نضيف في نهاية الملف:

النظام الفرعي sftp داخلي sftp

نواصل تحرير الملف sshd_config ونضيف في النهاية:

مطابقة المجموعة- sftp ChrootDirectory٪ h X11 إعادة التوجيه بدون AllowTcpForwarding no ForceCommand internal-sftp

نحفظ التغييرات ونعيد تشغيل الخدمة:

/etc/init.d/ssh إعادة التشغيل

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

addgroup group-sftp adduser user1 adduser user2 [----] usermod -G group-sftp user1 usermod -G group-sftp user2

للتحقق من إنشاء المجموعة والمستخدمين ، يمكننا القيام بما يلي:

less / etc / password less / etc / group ls -l / home

ويجب أن يظهر المستخدمون usuario1 y usuario2وكذلك المجموعات مجموعة sftp وتلك المقابلة للمستخدمين الذين تم إنشاؤهم. أيضا ، عند سرد الدليل / الرئيسية، ستظهر الدلائل الرئيسية لكل مستخدم تم إنشاؤه.

كيف نقوم بتعديل أدلة المنزل بحيث يعمل القفص بشكل فعال؟
يجب علينا زيادة أمان المجلدات الشخصية لكل مستخدم تم إنشاؤه حتى لا يتمكنوا من إنشاء مجلدات إضافية ضمن دليلهم الشخصي ، وبأذونات الكتابة حيث نريد (وليس المكان الذي يريدون) 🙂:

chown root: root / home / user1 / home / user2 chmod 755 / home / user1 / home / user2 cd / home / user1 مستندات mkdir html_public chown user1: user1 * cd / home / user2 mkdir documents html_public chown user2: user2 *

المستخدمون الذين ينتمون إلى المجموعة مجموعة sftp، من الآن فصاعدًا ، سيتمكنون من تسجيل الدخول بأسمائهم وكلمات المرور الخاصة بهم عبر SFTP فقط ، وسيكونون قادرين على نقل الملفات من وإلى المجلدات الموجودة أسفل مجلدهم الشخصي والتي تم إنشاؤها من قبلنا ، لكن لن يتمكنوا من رؤية بقية الملفات نظام الملفات لدينا.

لنقل الملفات والمجلدات ، يمكننا استخدام Nautilus و Konqueror و WinSCP و FileZilla وغيرها التي تدعم بروتوكول SFTP. في حالة كونكيور ، يجب أن نستخدم الأسماك: // user @ remotecomputer.

نأمل أن يكون هذا المقال مفيدًا لنا عمليًا!
حتى المغامرة القادمة ، أيها الأصدقاء!

sftp_nautilus


اترك تعليقك

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها ب *

*

*

  1. المسؤول عن البيانات: ميغيل أنخيل جاتون
  2. الغرض من البيانات: التحكم في الرسائل الاقتحامية ، وإدارة التعليقات.
  3. الشرعية: موافقتك
  4. توصيل البيانات: لن يتم إرسال البيانات إلى أطراف ثالثة إلا بموجب التزام قانوني.
  5. تخزين البيانات: قاعدة البيانات التي تستضيفها شركة Occentus Networks (الاتحاد الأوروبي)
  6. الحقوق: يمكنك في أي وقت تقييد معلوماتك واستعادتها وحذفها.

  1.   هيكسبورغ قال

    مادة جيدة. طريقة آمنة للغاية لمشاركة الملفات. شكرا جزيلا على التفسير. 🙂

  2.   الحرب الخاطفة قال

    ممتاز

  3.   لولو قال

    أليس استخدام sshfs أكثر راحة؟

    بالنسبة لفريقنا ، سيظهر المجلد البعيد كمجلد آخر بنفس الخصائص.

  4.   جاكوبو هيدالغو قال

    مرحبا فيديريكو ، كما هو الحال دائما مقالة ممتازة. يسعدني جدًا أن أتمكن من قراءة مشاركاتك من الإنترنت الآن.
    عناق ،
    جاكو

    1.    صائد قال

      ماذا عن جاكوبو ، لا يتفق فيديريكو بشكل مباشر. مرحبًا عندما لا تعود إلى ubuntu بعد الآن ، فإنك ترسم استخدامات خضراء وكاملة. عناق. 😉

  5.   KZKG ^ جارا قال

    أنت تقدم مساهمات ممتازة ، استمر في ذلك 😀

    1.    فيديريكو قال

      شكرًا ألف KZKG ^ Gaara ، وشكرًا للجميع على ملاحظاتك

  6.   جينينس قال

    هل يمكن وضع مستخدم في قفص في مجلد آخر غير / home / user /… ..؟

    ما أريد فعله هو وضع المستخدم في قفص في المجلد / media / hdd / ...
    أحتاج إلى القيام بذلك بهذه الطريقة نظرًا لأن الخادم هو Raspberry Pi مع Raspbian ، ولديه المجلد / home / ... / على بطاقة sd ، والتي ستمتلئ في وقت قصير

    لقد جربته بعدة طرق والنتيجة في العميل دائمًا هي "الأنبوب المكسور" ، والنتيجة في الخادم الفادح: ملكية سيئة أو أوضاع لمكون دليل chroot «/ media / HDD /»

    شكرا جزيلا على كل ما

    1.    فيديريكو قال

      أعتقد أنه سيتعين عليك إخبار النظام بأن المجلد الرئيسي لهذا المستخدم هو / home / HDD ، طالما أن هذا القسم يحتوي على تنسيق Linux أصلي ، أي ext4 ؛ ext3 ؛ إلخ على سبيل المثال ، إذا كان المستخدم هو jae - باختصار - يجب عليك تنفيذ شيء مثل هذا:

      : ~ # usermod –move-home –home / home / HDD jae

      انظر أيضا الرجل usermod. في صحتك

  7.   ايرفينغ هيرنانديز قال

    لدي مشكلة ، أو لدي خدمة في أمازون مع صديق عام ويجب علي الدخول عبر sftp لوضع الملفات أو إزالتها.
    لقد فعلت ذلك من قبل وكل شيء على ما يرام لكنها اليوم فعلت شيئًا لي لم يحدث لي
    يوجد داخل ami سلسلة من المجلدات أحدها بوابة إنترنت مقيدة (صفحة للمستخدمين لدي). أذونات الجذر وتمرير الجذر
    لقد منحت chmod 777 لأذونات الكتابة وسار كل شيء على ما يرام
    لكن اليوم عند تحديث الويب وتحميل ملف index.html وملفاته الأخرى ، أعطاني الأسماء ولكنه لم يترك لي أي بايت أي أن أقول صفرًا (فارغًا) الآن أنت لا ترى أي شيء على الويب الخاص بي
    لقد أغلقت الجلسة ودخلت مرة أخرى ، ومنحت أذونات مرة أخرى ، وتغيير المستخدم ، والتحديث ، ومحاولة وضع ملفات أخرى ، وإنشاء ملفات جديدة ، وهو يفعل نفس الشيء دائمًا
    يعطيني الملفات ولكن ليس لديهم بيانات
    يمكن لأي شخص أن يساعدني ؟؟؟
    سأكون ممتنا كثيرا إجاباتك
    بادئ ذي بدء ، شكرًا
    أت
    ليس إيرفينغ هيرنانديز

  8.   لجنة الاتصالات الفدرالية قال

    مرحبًا بكيفية استخدام Filezilla ، لقد رأيته بالفعل بعدة طرق وما زلت غير قادر على الاتصال.
    هذا خطأ.

  9.   بيدرو قال

    مساء الخير،

    نفذ الإجراء وسيعمل القفص بشكل مثالي ، ولكن عند محاولة الكتابة في المجلد «وثائق» أو «html_publico» ، فإن ذلك يمنحني حق الوصول مرفوضًا. لديه الأذونات المذكورة ولا شيء يسمح بذلك.

    drwxr-xr-x. 2 user1 user1 4096 Mar 11 13:16 docs
    drwxr-xr-x. 2 user2 user2 4096 مارس 11 13:16 html_publico

    والنتيجة هي رفض الوصول عند محاولة الكتابة إلى أي مجلد. ومع ذلك ، فإن إجراء الحصول يسمح بذلك.

    آمل أن تتمكن من مساعدتي في أقرب وقت ممكن.

    تحية.