وضع FTP النشط والسلبي. مميزات بروتوكول FTP

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

مشاكل FTP في الشبكات الحديثة

على الشبكات الحديثة (NAT، وجدار الحماية، وموازن التحميل)، لا تسمح الميزات التالية لـ FTP بالعمل بشكل صحيح:

  1. اتصالان منفصلان لـ TCP/IP: لنقل البيانات ونقل الأوامر؛
  2. يمكن إنشاء اتصال البيانات على رقم منفذ عشوائي؛
  3. يمكن أن يأتي اتصال البيانات إما من خادم إلى عميل أو من عميل إلى خادم؛
  4. يتم التفاوض على عنوان الوجهة لاتصال البيانات (اختيار وضع التشغيل) بسرعة بين العميل والخادم عبر اتصال الأوامر؛
  5. يكون اتصال الأمر خاملاً أثناء نقل البيانات عبر اتصال البيانات.

ترجع المشكلة الأولى إلى حقيقة أن جهاز التوجيه أو الموازن يجب أن يحافظ على اتصالين بين نفس المصدر والوجهة.

ترجع المشكلة الثانية إلى حقيقة أن FTP لا يمكنه العمل إذا كانت المنافذ الواردة تقتصر بشكل صارم على المنافذ المعروفة فقط. أولئك. في الوضع العادي، لا يمكن لـ FTP العمل مع 21 منفذًا واردًا مفتوحًا فقط يستخدمها الاتصال لإرسال الأوامر، كما يحتاج أيضًا إلى مجموعة من المنافذ المفتوحة ذات القيمة العالية (49152-65534) لنقل البيانات.

ترجع المشكلة 4 إلى حقيقة أنه عند استخدام NAT، فإنه يحتاج إلى تغيير محتويات حزم الاتصال بسرعة لإرسال الأوامر بحيث يتم استبدال العنوان الداخلي للخادم بعنوان خارجي، وكذلك إعادة توجيه الحزم التي تصل إلى الخارج العنوان إلى العنوان الداخلي للخادم.

ترجع المشكلة رقم 5 إلى حقيقة أن أجهزة التوجيه يمكنها إنهاء الاتصالات العالقة لإرسال الأوامر.

وضعان لنقل البيانات في FTP

يدعم FTP وضعين للتشغيل: نشط وسلبي. وهي تختلف في آلية إنشاء اتصال لنقل البيانات:

  • في الوضع النشط، يتصل الخادم من المنفذ العشرين الخاص به بمنفذ العميل المحدد.
  • في الوضع السلبي، يتصل العميل من منفذه العشوائي بمنفذ خادم محدد.

وبالتالي، فإن جميع عملاء FTP الحديثين يتفاوضون مع الخادم الذي يتم نقل البيانات منه والذي يبدأ الاتصال. يمكن للعميل تحديد الاستخدام الوضع النشط عن طريق إرسال أمر "PORT"، والذي سيخبر الخادم بالاتصال بعنوان IP ومنفذ عميل محدد والبدء في إرسال البيانات. أو يمكن للعميل استخدامها الوضع السلبي عن طريق إرسال أمر "PASV" إلى الخادم، والذي سيخبر الخادم أن العميل ينتظر عنوان IP الخاص بالخادم والمنفذ لبدء تلقي البيانات.

نظرًا لأن العميل يتصل في البداية بالخادم لإنشاء اتصال لإرسال الأوامر، فسيكون من المنطقي أن يقوم العميل أيضًا بإنشاء اتصال البيانات، أي. كان يرسل أمر PASV (مع إصلاح المشكلة أيضًا بين FTP وجدار الحماية). ومع ذلك، فإن هذا ليس هو الحال؛ لسبب ما، قرر منشئو مواصفات FTP أن الوضع المفضل يجب أن يكون PORT، وأن دعم PASV من جانب العميل ليس ضروريًا.

يدعم FTP الوصول إلى تسجيل الدخول وكلمة المرور، ولكنه غير آمن لأنه... يتم نقلها بنص واضح. عند استخدام متصفح الويب، يمكنك تمريره مباشرة إلى عنوان URL.

بروتوكول نقل الملفات: // :@:/

مثال على الجلسات التي تستخدم أوضاع نقل البيانات النشطة والسلبية

مثال على الوضع النشط، حيث يتصل العميل بشكل مجهول ويقوم بنقل بيانات نشط مرة واحدة (تصفح الدليل).

عميل: المستخدم مجهول
الخادم:
عميل: تمرير NcFTP@
الخادم: 230 تم تسجيل الدخول بشكل مجهول.
عميل: المنفذ 192,168,1,2,7,138 يريد العميل أن يتصل الخادم بالمنفذ 1930 وعنوان IP 192.168.1.2.
الخادم: تم تنفيذ الأمر 200 PORT بنجاح.
عميل: قائمة
الخادم: 150 فتح اتصال بيانات وضع ASCII لـ /bin/ls. يتصل الخادم من المنفذ 21 إلى المنفذ 1930 وعنوان IP 192.168.1.2.
الخادم: 226 اكتملت القائمة. تم نقل البيانات بنجاح.
عميل: يترك
الخادم: 221 وداعا.

مثال الوضع السلبي

عميل: المستخدم مجهول
الخادم: 331 تسجيل دخول الضيف حسنًا، أرسل عنوان بريدك الإلكتروني ككلمة مرور.
عميل: تمرير NcFTP@
الخادم: 230 تم تسجيل الدخول بشكل مجهول.
عميل: PASV يطلب العميل معلومات الاتصال من الخادم.
الخادم: 227 الدخول في الوضع السلبي
(172,16,3,4,204,173)
يستجيب الخادم للعميل بأنه يحتاج إلى الاتصال بالمنفذ 52397 وعنوان IP 172.16.3.4.
عميل: قائمة
الخادم: 150 اتصال بيانات مقبول من
172.16.3.4:52397; بدء النقل.
العميل متصل بالخادم على المنفذ 52397 وعنوان IP 172.16.3.4.
الخادم: 226 اكتملت القائمة. تم نقل البيانات بنجاح.
عميل: يترك
الخادم: 221 وداعا.

المشاكل الخاصة:

    وضع المنفذ - عميل FTP خلف NAT أو جدار الحماية

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

    الحل 1: يجب تكوين عميل FTP لاستخدام الوضع السلبي.

    الحل 2: تكوين NAT لتتبع اتصالات FTP. عندما يستخدم العميل الوضع النشط، يجب على جهاز NAT إعادة كتابة العنوان الداخلي للعميل واستبداله بالعنوان الخارجي للجهاز. بعد ذلك، سيتم إعادة توجيه اتصال نقل البيانات من خادم FTP، بعد الوصول إلى عنوان NAT الخارجي للجهاز، إلى العنوان الداخلي لعميل FTP خلف NAT.

    وضع PASV - خادم FTP خلف جدار الحماية

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

    الحل 1: يمكن للمسؤول فتح مجموعة من المنافذ على جدار الحماية والتي يمكن من خلالها إجراء اتصالات بخادم FTP.

    الحل 2: إذا كان هناك دعم لجدار الحماية، فيمكن للمسؤول تكوين المنافذ لفتحها تلقائيًا لإنشاء اتصال سلبي بخادم FTP. يشبه هذا الإعداد ما تم وصفه للعميل النشط خلف NAT. وبالتالي، عندما يراقب جدار الحماية استجابة خادم FTP لطلب عميل سلبي، فإنه يفتح المنفذ المحدد في الاستجابة مؤقتًا، وفقط لعنوان IP الذي نشأ منه الطلب السلبي.

    وضع PASV - خادم FTP خلف NAT

    في وضع PASV FTP، يستجيب الخادم للعميل بعنوان IP الداخلي الخاص به والمنفذ، مما يحكم على العميل بعدم القدرة على الاتصال.

    الحل 1: تكوين NAT لمراقبة اتصالات بيانات FTP. عندما يرسل الخادم استجابة في الوضع السلبي، يجب على جهاز NAT إعادة كتابة العنوان الداخلي للخادم واستبداله بالعنوان الخارجي للجهاز. بعد ذلك، سيتم إعادة توجيه اتصال نقل البيانات من عميل FTP، بعد الوصول إلى عنوان NAT الخارجي للجهاز، إلى العنوان الداخلي لخادم FTP خلف NAT.

    وضع PASV - خادم FTP خلف موازن التحميل

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

    الحل 1. قم بتعيين عنوان IP شرعي لكل خادم FTP خلف الموازن ويمكن الوصول إليه من الخارج. في هذه الحالة، سيتمكن خادم FTP من خدمة عملاء FTP بشكل مستقل في الوضع السلبي، متجاوزًا الموازن.

    الحل 2: تكوين موازن لمراقبة اتصالات FTP لنقل البيانات. عندما يرسل الخادم استجابة في الوضع السلبي، يجب على الموازن إعادة كتابة العنوان الداخلي للخادم واستبداله بالعنوان الخارجي للموازن. بعد ذلك، سيتم إعادة توجيه اتصال نقل البيانات من عميل FTP، بعد الوصول إلى العنوان الخارجي للموازن، إلى العنوان الداخلي لخادم FTP خلف الموازن.

    الحل 3: قم بتكوين خادم FTP بحيث تحتوي استجاباته في الوضع السلبي على العنوان الخارجي للموازن، وليس الخادم، ونأمل أن يقوم الموازن بإعادة توجيه الاتصال إلى الخادم المنتظر.

    مشكلة غير قابلة للحل - جدران الحماية على كلا الطرفين

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

    خادم FTP على منفذ غير قياسي

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

    ولكن حتى في هذه الحالة، يمكن لجدار الحماية من جانب العميل أن يعيق الطريق. يمكن أن يحدث هذا إذا كان جدار الحماية من جانب العميل يتطلب بشكل صارم أن ينشأ اتصال بيانات FTP من خادم FTP من المنفذ 20 (في الوضع النشط). إذا كان خادم FTP يعمل على المنفذ N، فوفقًا لمواصفات FTP، ستنشأ اتصالات البيانات الخاصة به من المنفذ N - 1 وسيتم حظرها بواسطة جدار الحماية الخاص بالعميل.

    المشاكل الناجمة عن قيام جدران الحماية بإنهاء جلسات FTP قبل الأوان

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

    الحل لهذه المشكلة هو جهاز يحافظ على الاتصال لنقل الأوامر في حالة نشطة، على الرغم من عدم نقل أي حزم عبره لفترة طويلة. هناك خيار آخر وهو تمكين وظيفة "Keep Alive" في حزمة بروتوكول TCP/IP على جانب العميل أو الخادم، والتي ترسل حزمة التحقق من التوفر على فترات زمنية معينة، وإذا لم يستجب الجانب الوجهة، يتم إغلاق الاتصال بشكل طبيعي. إذا استجاب الجانب المتلقي، فسيتم اعتبار الاتصال من جانب جدار الحماية نشطًا.

  • استخدم الوضع السلبي كلما أمكن ذلك (هذا هو الوضع الافتراضي في متصفحات الويب)
  • إذا كان الاتصال بخادم FTP ناجحًا، ولكن تصفح الدلائل أو نقل الملفات ينتهي بفشل الاتصال، فمن المرجح أن تكون المشكلة في مؤقتات نشاط الاتصال على جدار الحماية
  • استخدم الأجهزة التي تدعم ميزات FTP
ما هو الوضع النشط وما هو الغرض منه؟
يعد الوضعان النشط والسلبي نوعين مختلفين من الاتصالات التي تحدد كيفية الاتصال بالمستخدمين الآخرين والترتيب الذي تتلقى به الملفات.

الوضع السلبي هو الأسهل في الاستخدام ويجب أن يعمل في أي ظروف تقريبًا. لكن البساطة لها ثمن. يحتوي الوضع الخامل على قيود على الاتصال (لا يمكن للمستخدمين الخاملين الاتصال بمستخدمين سلبيين آخرين) ويتسبب أيضًا في تحميل إضافي على لوحة الوصل، نظرًا لأن جميع اتصالات الوضع الخامل تمر عبر لوحة الوصل. يجب استخدام هذا الوضع فقط عندما لا يمكن استخدام الوضع النشط.

مقارنة

يوضح الجدول التالي الاختلافات بين وضعي الاتصال


ضبط الوضع النشط

فيما يلي وصف لكيفية تكوين الوضع النشط وفقًا لهيكل الشبكة.

الطوبولوجيا أ

جهاز كمبيوتر متصل مباشرة بالإنترنت عبر "مودم" (تناظري، ISDN، DSL، وما إلى ذلك)، مع عنوان IP ديناميكي أو ثابت.

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

إذا كنت تستخدم جدار حماية، فحدد منفذًا محددًا في DC++. في إعدادات جدار الحماية، قم بالسماح باتصالات DC++ على المنفذ المحدد.

الطوبولوجيا ب

جهاز كمبيوتر كجزء من شبكة متصلة بالإنترنت من خلال جهاز توجيه. يحتوي الكمبيوتر على عنوان IP خارجي ثابت أو ديناميكي. لا يتم استخدام تقنيات ترجمة العناوين (على سبيل المثال NAT).


يتم تكوين الوضع النشط بشكل مشابه للطوبولوجيا A.

الطوبولوجيا ج

جهاز كمبيوتر متصل بالإنترنت من خلال جهاز توجيه أو بوابة تستخدم تقنية NAT (ترجمة عنوان الشبكة). NAT هي تقنية تسمح لأجهزة كمبيوتر متعددة بالوصول إلى الشبكة من خلال عنوان IP واحد. في هذه الحالة، يكون للكمبيوتر عنوان IP خاص به للشبكة الداخلية (العناوين التي تبدأ بـ 192.168.*.* أو 10.*.*.* أو 172..*.*).

تستخدم الشبكات المنزلية عادةً هذا النوع من الاتصال.


يتطلب إعداد الوضع النشط خطوتين:

* تكوين إعادة توجيه المنفذ على جهاز التوجيه/البوابة.
* ضبط الوضع النشط في DC++.

إعداد إعادة توجيه المنفذ

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

إعداد العاصمة ++

في قائمة "الإعدادات - إعدادات الاتصال"، حدد الوضع النشط. أدخل عنوان IP الخارجي. أدخل رقم المنفذ، ويجب أن يكون هذا هو المنفذ الذي تم تكوينه لإعادة التوجيه في القسم السابق.

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


دعونا نصحح سوء الفهم هذا.


تأكد من حفظ الملف الأصلي terminerv.dll. لنقم بتشغيل سطر الأوامر كمسؤول والتنفيذ

انسخ c:\Windows\System32\termsrv.dll termsrv.dll_old

ثم ننظر إلى الإصدار الخاص بك. انقر بزر الماوس الأيمن على الملف c:\Windows\System32\termsrv.dll وحدد الخصائص.


قم بتنزيل الملف المعدل المتوافق مع الإصدار الخاص بك

إذا كنت تريد إصلاح كل شيء بنفسك، فقم بنسخ ملف termrv.dll من المجلد c:\Windows\System32\ إلى سطح المكتب. افتحه باستخدام أي محرر سداسي عشري، على سبيل المثال محرر HxD المجاني. واستبدل البايتات في السطر المحدد.

في العمود الأول القيمة التي ينبغي أن تكون، وفي الثاني القيمة الأصلية.

ويندوز 7 SP1 64 بت:

173C0:B8 8B
173C1: 0087
173C2: 01 38
173C3: 00 06
173C5: 90 00
173ج6: 89 39
173C8: 38 3C
173 سي سي: 90 0 فهرنهايت
173 قرص مضغوط: 90 84
173م: 90 قبل الميلاد
173 سي إف: 90 سي 2
173D0: 90 00
173D1: 90 00
176FA: 00 01
5AD7E:EB 74
بالنسبة لنظام التشغيل Windows 8.1 (64 بت)، استبدل السطر بأكمله !
في الإصدار 6.3.9600.16384
خط
8B 81 38 06 00 00 39 81 3C 06 00 00 0F 84 1B 70 00 00
على
B8 00 01 00 00 89 81 38 06 00 00 90 90 90 90 90 90 90

إلى 6.3.9600.16384 إلى 6.3.9600.17095
خط
39 81 3C 06 00 00 0F 84 9E 31 05 00
على

6.3.9600.17095 إلى 6.3.9600.17415
خط
39 81 3C 06 00 00 0F 84 D3 1E 02 00
على
ب8 00 01 00 00 89 81 38 06 00 00 90
دعونا نستخدم أداة الاستبدال مع نوع القيم السداسية العشرية

بعد الاستبدال، احفظ التغييرات.

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



بعد ذلك، قم بإيقاف خدمة سطح المكتب البعيد


استبدل الملف terminerv.dll لتحميلها أو تغيرت.

تحتاج أيضًا إلى تغيير قيمة المفتاح في التسجيل HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\fSingleSessionPerUser إلى 0!

ونبدأ الخدمة مرة أخرى!

دعونا نتواصل ونبتهج! الآن لم يتم طرد المستخدم المحلي من النظام!

لنظام التشغيل Windows XP
1) تحرير الملف
termrv.dll (SP2 5.1.2600.2180) 295,424 بايت

128 ب ب: 75 -> 74
217D3: 8B -> 33
217D4: C7 -> C0
2192 د: 8 ب -> 33
2192E: C7 -> C0
225ب7: 54 -> 20
termrv.dll (SP3 5.1.2600.5512) 295,424 بايت
22أ17: 74 -> 75
22A69: 7F -> 90
22A6A: 16 -> 90
2) استبدال ملف في الدليل جيم:\ويندوز\System32\تحتاج إلى استخدام الوضع الآمن لأن حماية ملفات النظام ممكّنة افتراضيًا. للقيام بذلك، قم بإعادة تشغيل جهاز الكمبيوتر الخاص بك أثناء الضغط باستمرار F8، حدد الوضع الآمن.
3) إضافة مفاتيح التسجيل

EnableConcurrentSessions”=dword:00000001

EnableConcurrentSessions”=dword:00000001
السماح بجلسات TSS المتعددة”=dword:00000001

4) البدء التالي -> تشغيل، gpedit.msc. في نافذة محرر نهج المجموعة، تكوين الكمبيوتر -> قوالب الإدارة -> مكونات Windows -> الخدمة الطرفية. تمكين تحديد عدد الاتصالات وضبط عدد الاتصالات على 3 أو أكثر.
5) إعادة التشغيل والاتصال!

    الوضع النشط- يتم أيضًا تعريف حالة الجهاز الذي يتم تشغيله وتوصيله بشبكة الراديو لتبادل معلومات المستخدم (الصوت أو البيانات) على أنها وضع حركة المرور (ITU T K.49). )