إصلاح الوصول إلى FTP من كمبيوتر عميل Linux مع تمكين جدار الحماية
اليوم ، أود أن أشارك تجربتي الشخصية مع الوصول إلى FTP في Linux. بفضل أنظمة التشغيل الجديدة من Microsoft ، والتي لا أجدها مناسبة للاستخدام اليومي ، تحولت إلى Linux منذ بضع سنوات. أنا أقوم بتشغيل خادم FTP في شبكتي المنزلية ، ولم أتمكن من الوصول إليه من جهاز الكمبيوتر العميل الخاص بي الذي يعمل Linux الذي يحتوي على قواعد جدار ناري لحظر الاتصالات الواردة ، أي تم تعيين سياسة INPUT على REJECT in iptables. إليك كيفية إصلاح المشكلة.
أفترض أن سياسة الإخراج مقبولة على كل من أجهزة العميل والخادم.
الحل رقم 1. استخدم وحدة kernel nf_conntrack_ftp
تسمح لك وحدة kernel nf_conntrack_ftp بإلغاء حظر الوصول إلى المنفذ المطلوب لخادم FTP تلقائيًا في كل مرة تقوم فيها بإجراء اتصال. الشرط الوحيد لهذه الوحدة هو السطر التالي في قواعد iptables (عادةً ما يكون /etc/iptables/iptables.rules) على كمبيوتر العميل:
$ IPT -A INPUT -i eth0 -m state - الحالة ذات الصلة ، المنشأة -j قبول
هناك eth0 هو اسم جهاز الشبكة الخاص بك.
بعد ذلك ، تحتاج إلى تحميل nf_conntrack_ftp إذا لم يتم تحميله. قم بتشغيل الأمر التالي كجذر على جهاز الكمبيوتر العميل
# modprobe nf_conntrack_ftp
إذا كان الخادم الخاص بك يستخدم منفذًا غير افتراضي (بخلاف المنفذ 21) ، فاستخدم الأمر التالي:
# modprobe منافذ nf_conntrack_ftp = your_port
سيوفر هذا اتصالاً تلقائيًا بجميع المنافذ المطلوبة بين خادم FTP وبرنامج العميل الخاص بك. يعمل هذا حتى تقوم بإعادة تشغيل جهاز الكمبيوتر الخاص بك.
لجعل هذا التغيير دائمًا ، تحتاج إلى إنشاء ملف نصي جديد ، /etc/modules-load.d/conntrack_ftp.conf ، وإضافة السطر التالي إلى هذا الملف:
nf_conntrack_ftp
في حالة وجود منفذ خادم غير افتراضي ، تحتاج إلى إنشاء ملف إضافي ، /etc/modprobe.d/conntrack_ftp.conf بالمحتوى التالي:
خيارات منافذ nf_conntrack_ftp =
يجب أن يكون هذا كافيا.
الحل رقم 2. استخدم نطاق المنافذ الخاملة الثابتة
إذا لم تتمكن من استخدام الوحدة النمطية nf_conntrack_ftp ، فيمكنك تعيين نطاق منفذ ثابت لبرنامج خادم FTP وفتحه على جهاز الكمبيوتر العميل. على سبيل المثال ، إليك كيفية القيام بذلك لتطبيق vsftpd.
- في ملف التكوين الخاص بـ vsftpd ، والذي يكون عادةً /etc/vsftpd.conf ، أضف الأسطر التالية:
pasv_min_port = 5500. pasv_max_port = 6500
يجب أن يتم ذلك من جانب الخادم. بعد ذلك يجب إعادة تشغيل vsftpd.
- في قواعد iptables الخاصة بك (عادةً ما تكون /etc/iptables/iptables.rules) على كمبيوتر العميل ، أضف القاعدة التالية:
$ IPT -A INPUT -p tcp -s
--dport 5500: 6500 -j قبول - طبق قواعد iptables على النحو التالي:
# iptables-استعادة
هذا كل شيء.