اعداد سيرفر FTP على لينكس لنقل وتحميل الملفات في خطوتين
جدول المحتويات:
- المتطلبات الأساسية
- تثبيت vsftpd على ديبيان 9
- تكوين vsftpd
- 1. FTP الوصول
- 2. تمكين التحميلات
- 3. Chroot السجن
- 4. اتصالات FTP السلبي
- 5. الحد من تسجيل دخول المستخدم
- 6. تأمين عمليات الإرسال باستخدام SSL / TLS
- أعد تشغيل خدمة vsftpd
- فتح جدار الحماية
- إنشاء مستخدم FTP
- تعطيل شل الوصول
- استنتاج
FTP (بروتوكول نقل الملفات) هو بروتوكول شبكة قياسي يستخدم لنقل الملفات من وإلى شبكة بعيدة. لنقل البيانات بشكل أكثر أمانًا وأسرع ، استخدم SCP أو SFTP.
هناك العديد من خوادم FTP مفتوحة المصدر متاحة لنظام Linux. الأكثر شعبية وتستخدم على نطاق واسع هي PureFTPd ، ProFTPD ، و vsftpd.
يشرح هذا البرنامج التعليمي كيفية تثبيت وتكوين vsftpd (Secure Ftp Daemon) في Debian 9. vsftpd خادم FTP آمن ومستقر وسريع. سنبين لك أيضًا كيفية تكوين vsftpd لتقييد المستخدمين بدليلهم الرئيسي وتشفير الإرسال بالكامل باستخدام SSL / TLS.
المتطلبات الأساسية
المستخدم الذي قمت بتسجيل الدخول كما يجب أن يكون لديه امتيازات sudo لتتمكن من تثبيت الحزم.
تثبيت vsftpd على ديبيان 9
تتوفر حزمة vsftpd في مستودعات دبيان. التثبيت بسيط ومباشر:
sudo apt update
sudo apt install vsftpd
ستبدأ خدمة vsftpd تلقائيًا بعد اكتمال عملية التثبيت. تحقق من ذلك عن طريق طباعة حالة الخدمة:
sudo systemctl status vsftpd
سيبدو الإخراج كما يلي أدناه ، حيث يوضح أن خدمة vsftpd نشطة وتعمل:
● vsftpd.service - vsftpd FTP server Loaded: loaded (/lib/systemd/system/vsftpd.service; enabled; vendor preset: enabled) Active: active (running) since Mon 2018-12-10 11:42:51 UTC; 53s ago Main PID: 1394 (vsftpd) CGroup: /system.slice/vsftpd.service └─1394 /usr/sbin/vsftpd /etc/vsftpd.conf
تكوين vsftpd
يمكن تكوين خادم vsftpd عن طريق تعديل ملف
vsftpd.conf
، الموجود في الدليل
/etc
يتم توثيق معظم الإعدادات جيدًا داخل ملف التكوين. للاطلاع على جميع الخيارات المتاحة ، تفضل بزيارة صفحة vsftpd الرسمية.
في الأقسام التالية ، سنتجاوز بعض الإعدادات المهمة اللازمة لتكوين تثبيت vsftpd آمن.
ابدأ بفتح ملف تكوين vsftpd:
1. FTP الوصول
حدد توجيهات
anonymous_enable
و
local_enable
وتحقق من مطابقة التكوين للخطوط أدناه:
anonymous_enable=NO local_enable=YES
هذا يضمن أن المستخدمين المحليين فقط يمكنهم الوصول إلى خادم FTP.
2. تمكين التحميلات
قم
write_enable
تحديد الإعداد
write_enable
للسماح بالتغييرات في نظام الملفات مثل تحميل الملفات وحذفها.
3. Chroot السجن
لمنع مستخدمي FTP من الوصول إلى أي ملفات خارج الدلائل الرئيسية الخاصة بهم ، قم
chroot
تحديد إعداد
chroot
.
chroot_local_user=YES
افتراضيًا لمنع وجود ثغرة أمنية ، عندما يتم تمكين chroot ، فإن vsftpd سيرفض تحميل الملفات إذا كان الدليل الذي يقفله المستخدمون قابلًا للكتابة.
استخدم إحدى الطرق أدناه للسماح بالتحميلات عند تمكين chroot.
-
الطريقة الأولى - الطريقة الموصى بها للسماح بالتحميل هي الحفاظ على تمكين chroot وتكوين دلائل FTP. في هذا البرنامج التعليمي ، سنقوم بإنشاء دليل
/etc/vsftpd.confftp
داخل منزل المستخدم والذي سيكون بمثابة دليل التحميل والكتابة للتحميل لتحميل الملفات.user_sub_token=$USER local_root=/home/$USER/ftp
الطريقة الثانية - خيار آخر هو إضافة التوجيه التالي في ملف تكوين vsftpd. استخدم هذا الخيار إذا كان عليك منح حق الوصول للكتابة إلى المستخدم الخاص بك إلى الدليل الرئيسي الخاص به.
/etc/vsftpd.confallow_writeable_chroot=YES
4. اتصالات FTP السلبي
يمكن أن يستخدم vsftpd أي منفذ لاتصالات FTP السلبية. سنقوم بتحديد الحد الأدنى والأقصى لنطاق المنافذ وفتح النطاق في وقت لاحق في جدار الحماية الخاص بنا.
أضف الأسطر التالية إلى ملف التكوين:
/etc/vsftpd.conf
pasv_min_port=30000 pasv_max_port=31000
5. الحد من تسجيل دخول المستخدم
للسماح لبعض المستخدمين فقط بتسجيل الدخول إلى خادم FTP ، أضف الأسطر التالية في نهاية الملف:
userlist_enable=YES userlist_file=/etc/vsftpd.user_list userlist_deny=NO
عند تمكين هذا الخيار ، يتعين عليك تحديد المستخدمين الذين يمكنهم تسجيل الدخول بشكل صريح من خلال إضافة أسماء المستخدمين إلى ملف
/etc/vsftpd.user_list
(مستخدم واحد لكل سطر).
6. تأمين عمليات الإرسال باستخدام SSL / TLS
لتشفير عمليات نقل FTP باستخدام SSL / TLS ، ستحتاج إلى الحصول على شهادة SSL وتكوين خادم FTP لاستخدامها.
يمكنك استخدام شهادة SSL موجودة موقعة من قبل المرجع المصدق الموثوق به أو إنشاء شهادة موقعة ذاتياً.
في هذا البرنامج التعليمي ، سنقوم بإنشاء شهادة SSL موقعة ذاتيًا باستخدام أمر
openssl
.
سيُنشئ الأمر التالي مفتاحًا خاصًا 2048 بت وشهادة موقعة ذاتيًا صالحة لمدة 10 سنوات. سيتم حفظ المفتاح الخاص والشهادة في نفس الملف:
sudo openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem
بمجرد إنشاء شهادة SSL ، افتح ملف تكوين vsftpd:
sudo nano /etc/vsftpd.conf
ابحث عن توجيهات
rsa_private_key_file
و
rsa_private_key_file
وتغيير
rsa_private_key_file
إلى مسار ملف
pam
وتعيين التوجيه
ssl_enable
إلى
YES
:
rsa_cert_file=/etc/ssl/private/vsftpd.pem rsa_private_key_file=/etc/ssl/private/vsftpd.pem ssl_enable=YES
إذا لم يتم تحديد خلاف ذلك ، فسيستخدم خادم FTP TLS فقط لإجراء اتصالات آمنة.
أعد تشغيل خدمة vsftpd
بمجرد الانتهاء من التحرير ، يجب أن يبدو ملف تكوين vsftpd (باستثناء التعليقات) كما يلي:
/etc/vsftpd.conf
listen=NO listen_ipv6=YES anonymous_enable=NO local_enable=YES write_enable=YES dirmessage_enable=YES use_localtime=YES xferlog_enable=YES connect_from_port_20=YES chroot_local_user=YES secure_chroot_dir=/var/run/vsftpd/empty pam_service_name=vsftpd rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key ssl_enable=YES user_sub_token=$USER local_root=/home/$USER/ftp pasv_min_port=30000 pasv_max_port=31000 userlist_enable=YES userlist_file=/etc/vsftpd.user_list userlist_deny=NO
احفظ الملف وأعد تشغيل خدمة vsftpd لتصبح التغييرات نافذة المفعول:
فتح جدار الحماية
لفتح المنفذ
21
(منفذ أمر FTP) ، والمنفذ
20
(منفذ بيانات FTP) و
30000-31000
(نطاق المنافذ السلبية) ، قم بتشغيل الأوامر التالية:
sudo ufw allow 20:21/tcp
sudo ufw allow 30000:31000/tcp
لتجنب التعرض للحبس ، سنقوم أيضًا بفتح المنفذ
22
:
sudo ufw allow OpenSSH
إعادة تحميل قواعد UFW عن طريق تعطيل وإعادة تمكين UFW:
sudo ufw disable
sudo ufw enable
للتحقق من تشغيل التغييرات:
sudo ufw status
Status: active To Action From -- ------ ---- 20:21/tcp ALLOW Anywhere 30000:31000/tcp ALLOW Anywhere OpenSSH ALLOW Anywhere 20:21/tcp (v6) ALLOW Anywhere (v6) 30000:31000/tcp (v6) ALLOW Anywhere (v6) OpenSSH (v6) ALLOW Anywhere (v6)
إنشاء مستخدم FTP
لاختبار خادم FTP الخاص بنا ، سنقوم بإنشاء مستخدم جديد.
- إذا كان لديك بالفعل مستخدم ترغب في منح حق الوصول إلى FTP ، فقم بتخطي الخطوة الأولى. إذا قمت بتعيين allow_writeable_chroot
allow_writeable_chroot=YES
في ملف التكوين الخاص بك ، فتخط الخطوة الثالثة.
-
قم بإنشاء مستخدم جديد باسم
newftpuser
:sudo adduser newftpuser
أضف المستخدم إلى قائمة مستخدمي FTP المسموح بهم:
echo "newftpuser" | sudo tee -a /etc/vsftpd.user_list
قم بإنشاء شجرة دليل FTP وتعيين الأذونات الصحيحة:
sudo mkdir -p /home/newftpuser/ftp/upload
sudo chmod 550 /home/newftpuser/ftp
sudo chmod 750 /home/newftpuser/ftp/upload
sudo chown -R newftpuser: /home/newftpuser/ftp
كما تمت مناقشته في القسم السابق ، سيتمكن المستخدم من تحميل ملفاته إلى دليل
ftp/upload
.
في هذه المرحلة ، يعمل خادم FTP بشكل كامل ، ويجب أن تكون قادرًا على الاتصال بالخادم الخاص بك باستخدام أي عميل FTP يمكن تكوينه لاستخدام تشفير TLS مثل FileZilla.
تعطيل شل الوصول
بشكل افتراضي ، عند إنشاء مستخدم ، إن لم يكن محددًا بشكل صريح ، فسيتمتع المستخدم بوصول SSH إلى الخادم.
لتعطيل الوصول إلى shell ، سنقوم بإنشاء shell جديد يقوم ببساطة بطباعة رسالة تخبر المستخدم أن حسابه يقتصر على الوصول إلى FTP فقط.
إنشاء
/bin/ftponly
shell وجعلها قابلة للتنفيذ:
echo -e '#!/bin/sh\necho "This account is limited to FTP access only."' | sudo tee -a /bin/ftponly
echo -e '#!/bin/sh\necho "This account is limited to FTP access only."' | sudo tee -a /bin/ftponly
sudo chmod a+x /bin/ftponly
إلحاق shell الجديد بقائمة الأصداف الصالحة في ملف
/etc/shells
:
echo "/bin/ftponly" | sudo tee -a /etc/shells
قم بتغيير shell المستخدم إلى
/bin/ftponly
:
sudo usermod newftpuser -s /bin/ftponly
استخدم نفس الأمر لتغيير غلاف جميع المستخدمين الذين تريد منحهم حق الوصول إلى FTP فقط.
استنتاج
في هذا البرنامج التعليمي ، تعلمت كيفية تثبيت خادم FTP آمن وسريع على نظام دبيان 9 وتكوينه.
بروتوكول نقل الملفات ديبيانكيفية إعداد واستخدام خادم بروتوكول نقل الملفات على الروبوت
هل تريد نقل الملفات من جهاز Android الخاص بك إلى جهاز الكمبيوتر بدون كابل USB؟ جرب طريقة خادم FTP لمشاركة الملفات بين Android والكمبيوتر لاسلكيًا.
كيفية إعداد خادم بروتوكول نقل الملفات مع vsftpd على centos 7
في هذا البرنامج التعليمي سنقوم بتثبيت vsftpd. إنه خادم FTP آمن ومستقر وسريع. سنبين لك أيضًا كيفية تكوين vsftpd لتقييد المستخدمين بدليلهم الرئيسي وتشفير الإرسال بالكامل باستخدام SSL / TLS.
كيفية إعداد خادم بروتوكول نقل الملفات مع vsftpd على أوبونتو 18.04
في هذا البرنامج التعليمي سنقوم بتثبيت vsftpd. إنه خادم FTP آمن ومستقر وسريع. سنبين لك أيضًا كيفية تكوين vsftpd لتقييد المستخدمين بدليلهم الرئيسي وتشفير الإرسال بالكامل باستخدام SSL / TLS.