29- استخدام ftp sftp
جدول المحتويات:
- المتطلبات الأساسية
- تثبيت vsftpd على CentOS 7
- تكوين vsftpd
- 1. FTP الوصول
- 2. تمكين التحميلات
- 3. Chroot السجن
- 4. اتصالات FTP السلبي
- 5. الحد من تسجيل دخول المستخدم
- 6. تأمين عمليات الإرسال باستخدام SSL / TLS
- أعد تشغيل خدمة vsftpd
- فتح جدار الحماية
- إنشاء مستخدم FTP
- تعطيل شل الوصول
- استنتاج
FTP (بروتوكول نقل الملفات) هو بروتوكول شبكة خادم عميل قياسي يسمح للمستخدمين بنقل الملفات من وإلى شبكة بعيدة.
هناك العديد من خوادم FTP مفتوحة المصدر متوفرة لنظام Linux. الأكثر شعبية وتستخدم على نطاق واسع هي PureFTPd ، ProFTPD ، و vsftpd.
في هذا البرنامج التعليمي ، سنقوم بتثبيت vsftpd (برنامج Safe Secure Ftp Daemon) على CentOS 7. إنه خادم FTP آمن ومستقر وسريع. سنبين لك أيضًا كيفية تكوين vsftpd لتقييد المستخدمين بدليلهم الرئيسي وتشفير الإرسال بالكامل باستخدام SSL / TLS.
لنقل البيانات بشكل أكثر أمانًا وأسرع ، استخدم SCP أو SFTP.
المتطلبات الأساسية
قبل المتابعة مع هذا البرنامج التعليمي ، تأكد من تسجيل الدخول كمستخدم لديه امتيازات sudo.
تثبيت vsftpd على CentOS 7
تتوفر حزمة vsftpd في مستودعات CentOS الافتراضية. لتثبيته ، قم بإصدار الأمر التالي:
sudo yum install vsftpd
بمجرد تثبيت الحزمة ، ابدأ تشغيل البرنامج الخفي vsftpd وتمكينه من البدء تلقائيًا في وقت التمهيد:
sudo systemctl start vsftpd
sudo systemctl enable vsftpd
يمكنك التحقق من تشغيل خدمة vsftpd من خلال طباعة حالتها:
sudo systemctl status vsftpd
سيبدو الإخراج كما يلي أدناه ، حيث يوضح أن خدمة vsftpd نشطة وتعمل:
● vsftpd.service - Vsftpd ftp daemon Loaded: loaded (/usr/lib/systemd/system/vsftpd.service; enabled; vendor preset: disabled) Active: active (running) since Thu 2018-11-22 09:42:37 UTC; 6s ago Main PID: 29612 (vsftpd) CGroup: /system.slice/vsftpd.service └─29612 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf
تكوين vsftpd
يتضمن تكوين خدمة vsftpd تحرير ملف التكوين
/etc/vsftpd/vsftpd.conf
. يتم توثيق معظم الإعدادات جيدًا داخل ملف التكوين. للاطلاع على جميع الخيارات المتاحة ، تفضل بزيارة صفحة vsftpd الرسمية.
في الأقسام التالية ، سنتجاوز بعض الإعدادات المهمة المطلوبة لتكوين تثبيت vsftpd آمن.
ابدأ بفتح ملف تكوين vsftpd:
sudo nano /etc/vsftpd/vsftpd.conf
1. FTP الوصول
سنسمح بالوصول إلى خادم FTP للمستخدمين المحليين فقط ، والعثور على التوجيهات
anonymous_enable
و
local_enable
والتحقق من مطابقة التكوين للخطوط أدناه:
anonymous_enable=NO local_enable=YES
2. تمكين التحميلات
قم
write_enable
تحديد الإعداد
write_enable
للسماح بالتغييرات في نظام الملفات مثل تحميل الملفات وحذفها.
3. Chroot السجن
منع مستخدمي FTP من الوصول إلى أي ملفات خارج الدلائل الرئيسية الخاصة بهم عن طريق إلغاء التوجيه
chroot
.
chroot_local_user=YES
بشكل افتراضي ، عندما يتم تمكين chroot ، سيرفض vsftpd تحميل الملفات إذا كان الدليل الذي يقفله المستخدمون قابل للكتابة. هذا لمنع ثغرة أمنية.
استخدم إحدى الطرق أدناه للسماح بالتحميلات عند تمكين chroot.
-
الطريقة الأولى - الطريقة الموصى بها للسماح بالتحميل هي الحفاظ على تمكين chroot وتكوين دلائل FTP. في هذا البرنامج التعليمي ، سنقوم بإنشاء دليل
/etc/vsftpd/vsftpd.confftp
داخل منزل المستخدم والذي سيكون بمثابة دليل التحميل والكتابة للتحميل لتحميل الملفات.user_sub_token=$USER local_root=/home/$USER/ftp
الطريقة الثانية - خيار آخر هو إضافة التوجيه التالي في ملف تكوين vsftpd. استخدم هذا الخيار إذا كان عليك منح حق الوصول للكتابة إلى المستخدم الخاص بك إلى الدليل الرئيسي الخاص به.
/etc/vsftpd/vsftpd.confallow_writeable_chroot=YES
4. اتصالات FTP السلبي
يمكن أن يستخدم vsftpd أي منفذ لاتصالات FTP السلبية. سنقوم بتحديد الحد الأدنى والأقصى لنطاق المنافذ وفتح النطاق في وقت لاحق في جدار الحماية الخاص بنا.
أضف الأسطر التالية إلى ملف التكوين:
/etc/vsftpd/vsftpd.conf
pasv_min_port=30000 pasv_max_port=31000
5. الحد من تسجيل دخول المستخدم
للسماح لبعض المستخدمين فقط بتسجيل الدخول إلى خادم FTP ، أضف الأسطر التالية بعد
userlist_enable=YES
line:
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/vsftpd/vsftpd.pem -out /etc/vsftpd/vsftpd.pem
بمجرد إنشاء شهادة SSL ، افتح ملف تكوين vsftpd:
sudo nano /etc/vsftpd/vsftpd.conf
ابحث عن توجيهات
rsa_private_key_file
و
rsa_private_key_file
وتغيير
rsa_private_key_file
إلى مسار ملف
pam
وتعيين التوجيه
ssl_enable
إلى
YES
:
rsa_cert_file=/etc/vsftpd/vsftpd.pem rsa_private_key_file=/etc/vsftpd/vsftpd.pem ssl_enable=YES
إذا لم يتم تحديد خلاف ذلك ، فسيستخدم خادم FTP TLS فقط لإجراء اتصالات آمنة.
أعد تشغيل خدمة vsftpd
بمجرد الانتهاء من التحرير ، يجب أن يبدو ملف تكوين vsftpd (باستثناء التعليقات) كما يلي:
/etc/vsftpd/vsftpd.conf
anonymous_enable=NO local_enable=YES write_enable=YES local_umask=022 dirmessage_enable=YES xferlog_enable=YES connect_from_port_20=YES xferlog_std_format=YES chroot_local_user=YES listen=NO listen_ipv6=YES pam_service_name=vsftpd userlist_enable=YES userlist_file=/etc/vsftpd/user_list userlist_deny=NO tcp_wrappers=YES user_sub_token=$USER local_root=/home/$USER/ftp pasv_min_port=30000 pasv_max_port=31000 rsa_cert_file=/etc/vsftpd/vsftpd.pem rsa_private_key_file=/etc/vsftpd/vsftpd.pem ssl_enable=YES
احفظ الملف وأعد تشغيل خدمة vsftpd لتصبح التغييرات نافذة المفعول:
فتح جدار الحماية
لفتح المنفذ
21
(منفذ أمر FTP) ، والمنفذ
20
(منفذ بيانات FTP) و
30000-31000
(نطاق المنافذ السلبية) ، أصدر الأوامر التالية:
sudo firewall-cmd --permanent --add-port=20-21/tcp
sudo firewall-cmd --permanent --add-port=30000-31000/tcp
أعد تحميل قواعد جدار الحماية عن طريق الكتابة:
إنشاء مستخدم FTP
لاختبار خادم FTP الخاص بنا ، سنقوم بإنشاء مستخدم جديد.
- إذا كان لديك بالفعل مستخدم ترغب في منح حق الوصول إلى FTP ، فقم بتخطي الخطوة الأولى. إذا قمت بتعيين allow_writeable_chroot
allow_writeable_chroot=YES
في ملف التكوين الخاص بك ، فتخط الخطوة الثالثة.
-
قم بإنشاء مستخدم جديد باسم
newftpuser
:sudo adduser newftpuser
بعد ذلك ، ستحتاج إلى تعيين كلمة مرور المستخدم:
sudo passwd 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
استخدم نفس الأمر لتغيير shell للمستخدمين الآخرين الذين تريد منحهم حق الوصول إلى FTP فقط.
استنتاج
في هذا البرنامج التعليمي ، تعلمت كيفية تثبيت خادم FTP آمن وسريع على نظام CentOS 7 الخاص بك وتكوينه.
بروتوكول نقل الملفات centosكيفية إعداد واستخدام خادم بروتوكول نقل الملفات على الروبوت
هل تريد نقل الملفات من جهاز Android الخاص بك إلى جهاز الكمبيوتر بدون كابل USB؟ جرب طريقة خادم FTP لمشاركة الملفات بين Android والكمبيوتر لاسلكيًا.
كيفية إعداد خادم بروتوكول نقل الملفات مع vsftpd على ديبيان 9
في هذا البرنامج التعليمي سنقوم بتثبيت vsftpd. إنه خادم FTP آمن ومستقر وسريع. سنبين لك أيضًا كيفية تكوين vsftpd لتقييد المستخدمين بدليلهم الرئيسي وتشفير الإرسال بالكامل باستخدام SSL / TLS.
كيفية إعداد خادم بروتوكول نقل الملفات مع vsftpd على أوبونتو 18.04
في هذا البرنامج التعليمي سنقوم بتثبيت vsftpd. إنه خادم FTP آمن ومستقر وسريع. سنبين لك أيضًا كيفية تكوين vsftpd لتقييد المستخدمين بدليلهم الرئيسي وتشفير الإرسال بالكامل باستخدام SSL / TLS.