تثبيت وتكوين خادم Linux FTP. إعداد واستخدام خادم FTP في Ubuntu Linux Ubuntu FTP الوصول إلى المجلد

F TP (بروتوكول نقل الملفات) هو بروتوكول شبكة قياسي يستخدم لنقل الملفات إلى شبكة عن بعد ومنه. لنقل البيانات أكثر أمانا وسريعة، استخدم SCP.

بالنسبة ل Linux، تتوفر مجموعة متنوعة من خوادم FTP مفتوحة المصدر. الأكثر شعبية واستخدامها على نطاق واسع هي pureftpd، proftpd و vsftpd. في هذه المقالة سنقوم بتثبيت VSFTPD. هذا هو خادم FTP مستقر وآمن وسريع. سنصبح أيضا كيفية تكوين VSFTPD للحد من الوصول إلى المستخدم إلى الدليل الرئيسي والتشفير لجميع الإرسال باستخدام SSL / TLS.

على الرغم من أن هذه المقالة مكتوبة لأبونتو 18.04، إلا أن نفس التعليمات تنطبق على Ubuntu 16.04 وأي توزيع يستند إلى دبيان، بما في ذلك ديبيان ونما لينكس ونظام التشغيل الابتدائي.

المتطلبات الأساسية

تثبيت VSFTPD على Ubuntu 18.04

تتوفر حزمة VSFTPD في مستودعات. لتثبيته، ما عليك سوى إجراء الأوامر التالية:

Sudo Apt Update Sudo Apt تثبيت VSFTPD

ستبدأ خدمة VSFTPD تلقائيا بعد اكتمال عملية التثبيت. التحقق من ذلك، طباعة حالة الخدمة:

SUDO SYSTEMCTL الحالة VSFTPD

ستبدو النتيجة شيئا مثل هذا يظهر أن خدمة VSFTPD نشطة ويعمل:

* vsftpd.service - vsftpd ftp server loadd: تحميل (/lib/systemd/system/vsftpd.service؛ تمكين؛ البائع مسبقا: تمكين) نشط: نشط (تشغيل) منذ Mon 2018-10-15 03:38:52 PDT؛ منذ 10 دقائق الرئيسية PID: 2616 (VSFTPD) المهام: 1 (الحد: 2319) cgroup: /system.slice/vsftpd.service `-2616 / usr / sbin / vsftpd /etc/vsftpd.conf

إعداد vsftpd.

يمكن تكوين خادم VSFTPD عن طريق تحرير ملف /etc/vsftpd.conf. يتم توثيق معظم الإعدادات داخل ملف التكوين. لجميع الخيارات المتاحة، تفضل بزيارة صفحة VSFTPD الرسمية.

في الأقسام التالية، سننظر إلى بعض الإعدادات المهمة اللازمة لتكوين تثبيت VSFTPD الآمن.

ابدأ بفتح ملف تكوين VSFTPD:

Sudo Nano /etc/vsftpd.conf.

1. الوصول إلى بروتوكول نقل الملفات

نسمح بالوصول إلى خادم بروتوكول نقل الملفات فقط إلى المستخدمين المحليين فقط، نجد التوجيه المجهول والمناطق المحلي والتحقق من امتثال التكوين الخاص بك إلى الأسطر التالية:

/etc/vsftpd.conf.

Anonymous_Enable \u003d No Local_enable \u003d نعم

2. تشغيل التنزيل

قم بإزالة الإعداد القابل للكتابة للسماح بالتغييرات في نظام الملفات، مثل تنزيل الملفات وحذفها.

/etc/vsftpd.conf.

Write_enable \u003d نعم.

3. chroot.

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

/etc/vsftpd.conf.

chroot_local_user \u003d نعم.

بشكل افتراضي لمنع ثغرة الأمن الأمنية عند تمكين Chroot، سترفض VSFTP تنزيل الملفات إذا تم حظر الدليل الذي يتم فيه حظر المستخدمين، متاح للتسجيل.

  • طريقة 1. - طريقة الموصى بها للسماح بالتنزيل - تمكين Chroot وتكوين أدلة FTP. في هذه المقالة، سنقوم بإنشاء دليل FTP ضمن المستخدم المنزلي الذي سيخدم الدليل Chroot وكتابة الدليل لتنزيل الملفات.

    /etc/vsftpd.conf.

    user_sub_token \u003d $ user local_root \u003d / home / $ المستخدم / ftp

  • الطريقة 2. خيار آخر هو إضافة التوجيه التالي إلى ملف تكوين VSFTPD. استخدم هذا الخيار إذا كان يجب عليك توفير الوصول إلى المستخدم الخاص بك إلى الدليل الرئيسي الخاص بك.

    /etc/vsftpd.conf.

    السماح_Writeable_chroot \u003d نعم.

4. اتصالات FTP السلبي

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

أضف الأسطر التالية إلى ملف التكوين:

/etc/vsftpd.conf.

pasv_min_port \u003d 30000 pasv_max_port \u003d 31000

5. الحد من تسجيل الدخول المستخدم

للسماح للمستخدمين المحددين فقط بإدخال خادم FTP، أضف الأسطر التالية إلى نهاية الملف:

/etc/vsftpd.conf.

userlist_enable \u003d نعم userlist_file \u003d / etc / vsftpd.user_list userlist_deny \u003d لا

عند تمكين هذا الخيار، يجب عليك تحديد المستخدمين الصريحين الذين يمكن للمستخدمين الذين يمكنهم الدخول عن طريق إضافة أسماء المستخدمين إلى ملف /etc/vsftpd.user_list (مستخدم واحد في الخط).

6. ضمان انتقال استخدام SSL / TLS

لتشفير ناقل الحركة FTP باستخدام SSL / TLS، تحتاج إلى الحصول على شهادة SSL وتكوين خادم FTP لاستخدامه.

يمكنك استخدام مرجع مصدق موثوق به، أو إنشاء شهادة موقعة ذاتية.

إذا كان لديك مجال أو مجال فرعي، مشيرا إلى عنوان IP لخادم FTP، فيمكنك بسهولة إنشاء شهادة SSL مجانية للتشفير.

في هذه المقالة، سنقوم بإنشاء شهادة موقعة ذاتية SSL باستخدام أمر Openssl.

سيؤدي الأمر التالي إلى إنشاء مفتاح مغلق 2048 بت وشهادة موقعة ذاتيا صالحة لمدة 10 سنوات. سيتم حفظ كل من المفتاح الخاص والشهادة في نفس الملف:

SUDO OPENSSL REQ -X509 -Nodes -days 3650 -Newkey RSA: 2048 -ENOUT /etC/SSL/Private/vsftpd.pem -Out /etc/ssl/private/vsftpd.pem

الآن بعد إنشاء شهادة SSL، افتح ملف تكوين VSFTPD:

Sudo Nano /etc/vsftpd.conf.

ابحث عن توجيهات RSA_Cert_Filei_File RSA_Private_Key_File، وتغيير PAM إلى مسار الملف وتثبيت التوجيه SSL_Enable على نعم:

/etc/vsftpd.conf.

RSA_CERT_FILE \u003d / ETC / SSL / Private / vsftpd.pem rsa_private_key_file \u003d / ETC / SSL / Private / vsftpd.pem ssl_enable \u003d نعم \u003d نعم

ما لم يتم تحديد خلاف ذلك، فإن خادم FTP سيستخدم فقط TLS لتوفير اتصالات آمنة.

أعد تشغيل خدمة VSFTPD

بعد الانتهاء من التحرير، يجب أن يبدو ملف تكوين VSFTPD (باستثناء التعليقات) شيء مثل هذا:

/etc/vsftpd.conf.

الاستماع \u003d لا listen_Ipv6 \u003d نعم anonymous_enable \u003d no local_enable \u003d نعم dirmessage_enable \u003d نعم use_localtime \u003d نعم xferlog_enable \u003d نعم connect_from_port_20 \u003d نعم chroot_local_user \u003d نعم secure_chroot_dir \u003d / vsftpd / vsftpd / vsftpd / فارغة pam_service_name \u003d vsftpd rsa_cert_file \u003d / etc / ssl / private / vsftpd.pem rsa_private_key_file \u003d / etc / ssl / private / vsftpd.pem ssl_enable \u003d yes user_sub_token \u003d $ user user_root \u003d user _to.root \u003d / home / $ user / ftp pasv_min_port \u003d 30000 pasv_max_port \u003d 31000 userlist_file \u003d نعم userlist_deny \u003d رقم

احفظ الملف وأعد تشغيل خدمة VSFTPD لتغيير التغييرات إلى:

sudo systemctl إعادة تشغيل vsftpd

فتح جدار الحماية

إذا كنت تستخدم جدار حماية UFW، فأنت بحاجة إلى حل حركة مرور FTP.

لفتح المنفذ 21 (منفذ الأمر FTP)، منفذ 20 (منفذ بيانات FTP) و 30000-31000 (نطاق المنفذ السلبي)، اتبع هذه الأوامر:

تسمح Sudo UFW 20: 21 / TCP Sudo UFW السماح 30000: 31000 / TCP

لتجنب حظر، سنفتح المنفذ 22:

Sudo UFW السماح للمفتوحة

أعد تشغيل قواعد UFW، وتشغيل وعلى UFW مرة أخرى:

Sudo UFW DisableDo UFW تمكين

للتحقق من تنفيذ التغييرات:

Sudo UFW حالة الحالة: نشط إلى العمل من - ------------------ 20: 21 / TCP السماح في أي مكان 30000: 31000 / TCP السماح لأي مكان Openssh السماح في أي مكان 20: 21 / TCP (V6) السماح بأي مكان (V6) 30000: 31000 / TCP (V6) السماح لأي مكان (V6) Openssh (V6) السماح بأي مكان (V6)

إنشاء مستخدم FTP

لاختبار خادم FTP الخاص بنا، سنقوم بإنشاء مستخدم جديد.

  • إذا كان لديك بالفعل مستخدم تريد تقديم وصول FTP، فتخط الخطوة الأولى.
  • إذا قمت بتثبيت ANTALL_WRITELE_CHROOT \u003d نعم في ملف التكوين الخاص بك، تخطي الخطوة الثالثة.
  1. إنشاء مستخدم جديد يسمى Newftpuser: Sudo Add Sweftpuser
  2. أضف أحد المستخدمين إلى قائمة مستخدمي FTP المسموح بهم: ECHO "Newftpuser" | sudo tee -a /etc/vsftpd.user_list
  3. إنشاء شجرة دليل FTP وتعيين الأذونات الصحيحة: sudo mkdir -p / الصفحة الرئيسية / newftpuser / ftp / uploadsudo chmod 550 / home / newftpuser / ftpsudo chmod 750 / الرئيسية / newftpuser / ftp / uploadsudo chown chown newftpuser: / home / newftpuser / FTP.

    كما تمت مناقشته في القسم السابق، سيتمكن المستخدم من تحميل ملفاته إلى دليل FTP / Upload.

في الوقت الحالي، يعمل خادم FTP الخاص بك بشكل كامل، ويجب أن تكون قادرا على الاتصال بخادمك مع أي، والتي يمكن تكوينها لاستخدام تشفير TLS، مثل FileZilla.

إيقاف الوصول إلى قذيفة

بشكل افتراضي، عند إنشاء مستخدم، إذا لم يتم تحديد ذلك بشكل واضح، فسيتم الوصول إلى المستخدم إلى خادم SSH.

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

إنشاء قذيفة / بن / FTPONLY وجعلها تؤدي:

صدى -e "#! / bin / sh \\ necho" هذا الحساب يقتصر الوصول إلى FTP فقط. "" | Sudo TEE -A / BIN / FTPONLYSUDO ChMOD A + X / BIN / FTPONLY

أضف قذيفة جديدة إلى قائمة الأصداف المسموح بها إلى ملف / إلخ / قذائف

صدى "/ بن / FTPONLY" | سودو تي -A / الخ / قذائف

تغيير شل المستخدم على / bin / ftponly:

Sudo Usermod Newftpuser -s / بن / FTPONLY

استنتاج

في هذه المقالة، تعلمت كيفية تثبيت وخادم FTP آمن وسريع على نظام Ubuntu 18.04.

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

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

البرنامج متاح من مستودع رسمي، لذلك يجب ألا تسبب تثبيت FTP على خادم Ubuntu 16.04 مشاكل. أولا، قم بتحديث قائمة الحزم الموجودة في المستودعات، ثم قم بتعيين البرنامج نفسه:

تحديث Sudo Apt.
$ sudo apt تثبيت vsftpd

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

sudo SystemCtl بدء VSFTPD
سودو SystemCtl تمكين VSFTPD

إذا قمت بتثبيت جدار حماية UFW، ويحدث هذا الموقف عند محاولة تثبيت FTP على خادم Ubuntu، فأنت بحاجة إلى فتح المنافذ 20 و 21 للتشغيل العادي. للقيام بذلك، قم بتنفيذ الأوامر:

سودو UFW السماح 20 / TCP
$ sudo ufw alow 21 / tcp
$ sudo ufw الوضع

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

إعداد FTP Ubuntu.

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

sudo CP /etc/vsftpd.conf /etc/vsftpd.conf.orig

ثم افتح الملف في المحرر:

sudo vi /etc/vsftpd.conf.

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

anonymous_enable \u003d رقم

اسمحوا لي أن أستخدم أسماء المستخدمين المحليين للدخول:

write_enable \u003d نعم.

تعيين القيمة umask. للحصول على ملفات جديدة تم إنشاؤها بواسطة FTP:

local_umask \u003d 022.

قم بتضمين رسالة حول الحاجة إلى تحديد دليل بعد التسجيل:

dirmessage_enable \u003d نعم.

سجل في ملف السجل جميع المعاملات لنقل الملفات واستخدام تنسيق السجل القياسي:

xiferlog_enable \u003d نعم
xiferlog_std_format \u003d نعم

استخدم المنفذ 20 لنقل البيانات بدلا من عشوائي، فمن الضروري التشغيل العادي لجدار الحماية:

connect_from_port_20 \u003d نعم.

نحدد أنك بحاجة إلى توقع اتصالات واردة:

استخدام خدمة PAM vsftpd.:

pam_service_name \u003d vsftpd.

عند الانتهاء، السماح بمصادقة المستخدمين المدرجين فقط في الملف قائمة المستخدم.:

userlist_enable \u003d نعم

حدد الملف مع المستخدمين الظاهريين لدينا:

userlist_file \u003d / etc / vsftpd.userlist

بشكل افتراضي، يحظر هؤلاء المستخدمين في التسجيل، لكننا نريد عكسنا تماما، لذلك أضف مثل هذا الخط:

userlist_deny \u003d رقم

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

chroot_local_user \u003d نعم.
السماح_Writeable_chroot \u003d نعم.

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

sudo systemctl إعادة تشغيل vsftpd

اختبار VSFTPD.

الخادم جاهز، ولكن لا يتم تكوين النظام بالكامل. أولا إنشاء مستخدم اختبار لدينا مع useradd.:

sudo UseradD -M -C "اختبار المستخدم" -s / bin / bash testuser
$ sudo passwd testuser

كما نريد الاتصال من اسمه إلى خادم FTP، ثم نحتاج إلى إضافته إلى VSFTPD.Userlist:

صدى "TestUser" | Sudo TEE -A /etc/vsftpd.userlist
$ cat /etc/vsftpd.userlist.

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

لن ننجح. الآن دعونا نحاول الدخول نيابة عن مستخدم اختبارنا، وسيعمل كل شيء حسب الحاجة.

يرجى ملاحظة أنه من الخطير منح المستخدمين الوصول إلى مجلدهم المنزلي. افعل ذلك فقط إذا كنت متأكدا من أنه ضروري وآمن.

إعداد مجلدات المنزل

إلى ما لا يقل عن شيء ما، يمكنك تحقيق مشاكل أمنية، يمكنك استخدام مجلد آخر بدلا من المنزل لتزويده بالمستخدم. أولا إنشاء مثل هذا المجلد لمستخدمنا:

sudo MKDIR -P / Home / Testuser / FTP / FILE

سنقوم بإزالة الحق في الكتابة لمجلد FTP:

sudo Chown لا أحد: Nogroup / الصفحة الرئيسية / Testuser / FTP
$ sudo chmod a-w / الرئيسية / testuser / ftp

ثم امنح السلطات اللازمة للمستخدم للكتابة إلى المجلد الفرعي.

sudo Chown -r Testuser: Testuser / الصفحة الرئيسية / اختبار / FTP / الملفات
$ sudo chmod -r 0770 / الصفحة الرئيسية / testuser / ftp / الملفات /

الآن دعونا نعود إلى ملف التكوين vsftpd.conf. أولا، تعليق على الخط:

السماح_Writeable_chroot \u003d نعم.

أضف الآن هذه الخطوط:

user_sub_token \u003d مستخدم $
local_root \u003d / home / $ المستخدم / ftp

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

sudo systemctl إعادة تشغيل vsftpd

يمكنك الآن تسجيل الدخول نيابة عن هذا المستخدم ومعرفة أن المجلد المحدد من قبله يستخدم الآن.

تكوين اتصال آمن

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

sudo mkdir / etc / SSL / الخاص
$ sudo openssl req -x509 -Nodes -days 720 -Newkey RSA: 2048 -ETC/SSL/Private/VSFTPD.KEY -OUT /etc/ssl/private/vsftpd.pem

ثم تحتاج إلى السماح بالوصول إلى منافذ الاتصال الآمنة FTP مع Fervol UFW:

سودو UFW السماح 990 / TCP
$ sudo ufw alow 40000: 50000 / TCP
$ sudo ufw الوضع

وتبقى لعدة تعديلات في تكوين خادم FTP نفسه. نحن بحاجة إلى تضمين sSL_ENABLE. وتعطيل دعم التشفير sSLV2. و sSLV3.ونحن نترك فقط tLSV1.:

sSL_ENABLE \u003d نعم.
SSL_TLSV1 \u003d نعم
SSL_SLV2 \u003d رقم
SSL_SLV3 \u003d رقم

rSA_CERT_FILE \u003d / ETC / SSL / Private / vsftpd.pem
RSA_Private_Key_File \u003d / ETC / SSL / Private / vsftpd.key

تعطيل مدخلات المستخدمين المجهولين بواسطة SSL:

play_anon_ssl \u003d رقم
force_local_data_ssl \u003d نعم.
force_local_logins_ssl \u003d نعم.

الآن تثبيت الأكثر تعقيدا SSL Cipher:

ssl_cipers \u003d عالية

وتعيين نطاق منافذ البيانات:

pasv_min_port \u003d 40000.
pasv_max_port \u003d 50000.

يبقى لإعادة تشغيل خدمتنا:

sudo systemctl إعادة تشغيل vsftpd

الآن نحن نختبر أننا فعلنا:

الآن سيتم نقل جميع البيانات بواسطة مركب مشفير. يتم إكمال تثبيت خادم FTP Ubuntu.

الاستنتاجات

في هذه المقالة، نظرنا إلى كيفية تثبيت FTP على Ubuntu Server 16.04، وكذلك كيفية تكوين FTP لأكثر عمل آمن، بما في ذلك إعداد عمل SSL. إذا كان لديك أي أسئلة، اسأل في التعليقات!

بروتوكول نقل الملفات (FTP) هو بروتوكول TCP لنقل الملفات بين أجهزة الكمبيوتر. في الماضي، تم استخدامه أيضا لتنزيل [الملفات على الإنترنت]، ولكن نظرا لأن هذه الطريقة لا تستخدم التشفير، فإن بيانات المستخدم عند إرسال محتويات الملفات إلى فتح وسهولة اعتراضها بسهولة. لذلك، إذا كنت هنا تبحث عن طريقة لإرسال الملفات بأمان وتحميل الملفات، فحض بشكل أفضل إلى مقالة OpenSSH في قسم الإدارة عن بعد.

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

vSFTPD - تثبيت خادم FTP

vsftpd. - هذه هي خدمة FTP المتاحة في Ubuntu. من السهل تثبيت وتكوين وصيانة. لتثبيت VSFTPD، يمكنك تنفيذ الأمر التالي:

Sudo Apt تثبيت VSFTPD

لبدء الخدمة، تحتاج إلى إضافته إلى Autoload. بدءا من Ubuntu 15.04، يتم استخدام SystemD، لذلك من الضروري إضافة الأوامر التالية لإضافة VSFTPD إلى التشغيل التلقائي:

SUDO SYSTEMCTL بدء تشغيل VSFTPD SUDO SYSTEMCTL تمكين VSFTPD

يمكن استخدام جدار حماية UFW في خادم Ubuntu. ثم ستحتاج إلى حل المنافذ 20 و 21

سودو UFW السماح 20 / TCP Sudo UFW السماح 21 / TCP

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

رجل 5 vsftpd.conf.

لتوضيح تفاصيل عن كل معلمة.

يمكن تنظيم الوصول إلى خادم FTP بطريقتين:

في وضع مجهول يمكن للعميل البعيد الوصول إلى خادم FTP باستخدام حساب المستخدم الافتراضي المسمى "مجهول" أو "FTP" ويمر عنوان البريد الإلكتروني ككلمة مرور. في الوضع المعتمد يجب أن يكون لدى المستخدم اسم حساب وكلمة مرور. هذا الخيار الأخير غير آمن للغاية ولا ينبغي استخدامه باستثناء الظروف الخاصة. إذا كنت ترغب في نقل الملفات بأمان، راجع SFTP في قسم خادم OpenSSH. يعتمد الوصول المخصص إلى الدلائل وملفات FTP على حقوق الوصول إلى المستخدم المحدد عند الدخول. كقاعدة عامة، تخفي خدمة FTP الدليل الجذر لخادم FTP من خلال استبداله إلى دليل FTP Home. يخفي جذر نظام الملفات من الجلسات البعيدة.

تكوين الوصول المجهول إلى بروتوكول نقل الملفات

يتيح تكوين VSFTPD الافتراضي تحميل مجهول. إذا كنت ترغب في حل تنزيل مجهول، فقم بتغيير ما يلي في /etc/vsftpd.conf:

Anonymous_Enable \u003d نعم.

في عملية التثبيت، يتم إنشاء مستخدم fTP. مع دليل الصفحة الرئيسية / SRV / FTP. هذا هو الدليل الافتراضي لبروتوكول نقل الملفات.

إذا كنت ترغب في تغيير موقعها، على سبيل المثال، ON / SRV / FILES / FTP، فما عليك سوى إنشاء دليل جديد وتغيير الدليل الرئيسي لمستخدم FTP:

sudo mkdir / srv / الملفات / ftp sudo usermod -d / srv / files / ftp ftp

بعد التغييرات، أعد تشغيل VSFTPD:

في ظل الطرف، انسخ جميع الملفات والدلائل التي تريد إجراء ftp غير معروف في / srv / srv / ftle / ftp (أو / srv / ftp إذا كنت ترغب في ترك الإعدادات الافتراضية).

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

anon_upload_enable \u003d نعم.

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

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

قبل إجراء أي تغييرات في ملف التكوين، يوصى بنسخ العينة لإعادة تثبيت حزمة Sudo CP /etc/vsftpd.conf /etc/vsftpd.conf.orig

لمصادقة المستخدمين المحليين تحتاج إلى جدولة خط

local_enable \u003d نعم.

بشكل افتراضي، تم تكوين VSFTPD لمصادقة مستخدمي النظام مع القدرة على تلقي الملفات. إذا كنت ترغب في السماح لك للمستخدمين بتنزيل الملفات، فقم بالتغيير في /etc/vsftpd.conf:

Write_enable \u003d نعم.

بعد ذلك إعادة تشغيل VSFTPD:

Sudo Service VSFTPD إعادة تشغيل

الآن، عند إدخال مستخدمي النظام في بروتوكول نقل الملفات، سيقعون في أدلة المنازل الخاصة بهم، حيث سيتمكنون من تنزيل، قم بتنزيل [الملفات]، وإنشاء الدلائل، إلخ.

حماية FTP.

تقييد المستخدمين

في /etc/vsftpd.conf توجد خيارات للمساعدة في جعل VSFTPD أكثر أمانا. على سبيل المثال، يتيح لك هذا الخيار وضع مستخدم محلي في Chroot () "السجن"، أعلاه (على شجرة الكتالوج) لن يكون قادرا على الارتفاع.

chroot_local_user \u003d نعم.

يمكنك أيضا تحديد قائمة المستخدمين بالوصول فقط إلى الدليل الرئيسي:

chroot_list_enable \u003d نعم chroot_list_file \u003d / etc / vsftpd.chroot_list

بعد إزالة التعليقات من هذه الخيارات، قم بإنشاء /etc/vsftpd.chroot_list، والذي يحتوي على قائمة المستخدمين واحدا تلو الآخر إلى السلسلة. ثم أعد تشغيل vsftpd:

Sudo Service VSFTPD إعادة تشغيل

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

وبالمثل، يحتوي ملف / ETC / FTPUSERS على قائمة المستخدمين الذين تم رفض الوصول إلى FTP. بشكل افتراضي، يشمل الجذر، الخفي، لا أحد، إلخ. لحظر الوصول إلى FTP للمستخدمين الإضافيين، ما عليك سوى إضافتها إلى هذه القائمة.

إذا حاولت الاتصال، فسترى خطأ:

الجواب: 500 عفوا: VSFTPD: رفض تشغيله مع الجذر القابل للكتابة داخل chroot ()

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

    تعطيل الدخول إلى الدليل الرئيسي للمستخدم المحلي (ليس مناسبا دائما)

Sudo Chmod A-W / الصفحة الرئيسية / المستخدم / السماح_Writeable_chroot \u003d نعم.

    سجل / دليل الصفحة الرئيسية، حيث سيقع المستخدمون المحليون بعد تسجيل الدخول إلى خادم FTP. ثم كل منهم سيكون قادرا على الكتابة فقط في الدليل الرئيسي الخاص بهم

local_root \u003d / home

تشفير

يمكن تشفير FTP عند استخدامها FTPS.وبعد على عكس SFTP., FTPS. - هذا هو FTP عبر SSL. SFTP. - هذه جلسة مشابهة لبروتوكول نقل الملفات، على اتصال SSH المشفرة. الفرق الرئيسي هو أن مستخدمي SFTP يجب أن يكون لديهم حساب مع البيئة الخاصة بهم (حساب شل) بدلا من قذيفة nologin. قد لا يكون توفير الوصول إلى جميع مستخدمي الوصول إلى Shell هو أفضل حل لبعض الأنظمة، مثل خادم مشاركة الويب. ومع ذلك، فمن الممكن الحد من حسابات SFTP وحظر التفاعل مع Shell. راجع قسم Openssh لمزيد من المعلومات.

لتكوين FTPS، أضف ما يلي إلى نهاية ملف /etc/vsftpd.conf:

SSL_ENABLE \u003d نعم.

لاحظ أيضا شهادة وخيارات المفاتيح:

RSA_CERT_FILE \u003d / ETC / SSL / CERTS / SSL-CERT-Snakeoil.pem RSA_Private_Key_File \u003d / ETC / SSL / Private / SSL-CERT-Snakeoil.key

بشكل افتراضي، يتم تعيين هذه الخيارات على القيم التي توفرها الحزمة. sSL-CERT.وبعد بالنسبة لبيئة العمل، يجب استبدالها بشهادة ومفتاح تم إنشاؤه لجهاز كمبيوتر محدد. لمزيد من المعلومات، انظر الشهادات.

الآن سيستخدم المستخدمون الزائد VSFTPD وعدم استخدام المستخدمين FTPS:

خدمة سودو إعادة تشغيل VSFTPD

للسماح للمستخدمين ب AUD / USR / SBIN / NOLOGIN للوصول إلى بروتوكول نقل الملفات، ولكن لا توفر الوصول إلى Shell أو Edit / etc / shells، مضيفا إلى قذيفة Nologin:

# / et al / shells: قذائف تسجيل الدخول الصحيحة / بن / csh / bin / sh / usr / bin / es / USR / bin / rc / usr / bin / tcsh / bin / tcsh / usr / bash / bash / bin / bash / bash / rbash / bash / bash / rbash بن / بن / الشاشة / USR / SBIN / NOLOGIN

هذا ضروري، نظرا لأن VSFTPD الافتراضي يستخدم إذن PAM، ويتضمن ملف إعدادات /etc/pam.d/vsftpd:

مصادقة المطلوبة pam_shells.so.

وحدة بام. اصداف. حدود الوصول إلى شل المدرجة في ملف / إلخ / قذائف.

يمكن تكوين عملاء FTP الأكثر شعبية لاستخدام FTPS. FTP يحتوي عميل سطر الأوامر LFTP أيضا على القدرة على استخدام FTPS.

وهذا الدرس سوف نعرض لك تثبيت وتكوين VSFTPD في. VSFTPD هو اختصار من بروتوكول نقل ملفات DAEMON آمن للغاية. هذا مصدر مجاني ومفتوح وخادم FTP سريع ومستقر وسهل وآمن للغاية لأنظمة التشغيل UNIX و Linux مثبتة وفقا لترخيص GNU General Public. يعد VSFTPD أحد أكثر خوادم FTP الأكثر استخداما لنظام التشغيل Linux ويستخدم كخادم افتراضي FTP في بعض أكبر التوزيعات، مثل Fedora و Ubuntu و Nimblex و Slackware و Rheel.

من أجل تثبيت VSFTPD على خادم Ubuntu 16.04 الخاص بك، يجب عليك تسجيل الدخول عبر SSH كمستخدم جذر

SSH. [البريد الإلكتروني المحمي]_عنوان

بادئ ذي بدء، تأكد من تحديث جميع الحزم المثبتة.

apt-get تحديث && apt-احصل على ترقية

كل ما عليك القيام به لتثبيت VSFTPD على Ubuntu 16.04 VPS هو تنفيذ الأمر التالي في محطة Linux الخاصة بك

apt-get -y install vsftpd

بعد تثبيته بنجاح، يجب علينا إجراء بعض التغييرات في تكوينه. فتح الملف /etc/vsftpd.conf، ابحث وتغيير الأسطر التالية:

vim /etc/vsftpd.conf # التحكم مجهول مسموح به أو لا. Anonymous_Enable \u003d no # المستخدمين المحليين لتسجيل الدخول المحلي_ENABLE \u003d نعم # تعيين "Write_Enable"، من أجل السماح بتغييرات في Write_Enable \u003d نعم # نظام الملفات لتمكين الإرسال إلى ASCII (لمنع النصوص تنزيل، إلخ. من القرصنة)، # بدون المخاطرة بناء على الحجم والتنزيل بتنسيق ASCII. يجب أن يكون ASCII # على العميل في أي حال .. ASCII_UPLAAD_ENALABLE \u003d نعم ASCII_DODINALOAD_ENABLE \u003d نعم # يمكنك ضبط الدليل الجذر لمستخدمي FTP. ما لم يتم تحديده، فإن الدليل الرئيسي للمستخدم يساوي الدليل الجذر ل FTP Local_root \u003d Public_html

احفظ ملف التكوين وأعد تشغيل خادم بروتوكول نقل الملفات بحيث دخلت التغييرات حيز التنفيذ.

systemctl إعادة تشغيل vsftpd.

تثبيت VSFTPD على البداية التلقائية عند تحميل النظام

SystemCtl تمكين VSFTPD.

يمكنك العثور على قائمة بجميع الخيارات في ملف التكوين على http://vsftpd.beast.org/vsftpd_conf.html.

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

Adduser FTPUSER.

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

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

من وقت لآخر، يحتاج كل مسؤول النظام إلى حاجة إلى خادم FTP، في معظم الأحيان يكون هذا بسبب الحاجة إلى ضمان تبادل المعلومات في الوضع التلقائي بين التطبيقات، على سبيل المثال، عندما تكون قاعدة بيانات المعلومات الموزعة 1C أو للوصول إليها الملفات الموجودة على خادم الويب. اليوم سوف نقول كيف تخلق أقل من نصف ساعة من هذا الخادم على منصة Ubuntu.

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

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

لخادمنا سوف نستخدم vsftpd. - خادم FTP بسيط وسريع وآمن. نظرا لأنها ستخدم كل من الشبكة الخارجية والداخلية، فمن المنطقي إضافة هذا الدور لدينا. تثبيت الخادم بسيط للغاية:

APT-احصل على تثبيت VSFTPD

يتم تنفيذ إعداد الخادم من خلال ملف التكوين. /etc/vsftpd.conf. لديها هيكل بسيط، علق جيدا ويسمح لك بتكوين الخادم دون أي تعليمات في وجود الحد الأدنى من المعرفة. النظر في المعايير الأساسية.

يمكن أن يبدأ الخادم باستمرار كخدمة أو ابدأ إذا لزم الأمر، فنحن أكثر ملاءمة للخيار الأول:

الاستماع \u003d نعم.

يحتوي هذا الخيار على سجل حصري متبادل، والذي يجب تقديمه إلى الذهن:

listen_ipv6 \u003d No.

السماح بتسجيل الدخول فقط للمستخدمين المحليين:

Anonymous_enable \u003d رقم
local_enable \u003d نعم.

يمكنني تمكين المستخدمين من تسجيل الملفات وحدد الخادم لضبط الحقوق اللازمة تلقائيا (755 على المجلدات و 644 إلى ملفات):

Write_enable \u003d نعم.
local_umask \u003d 022.

إذا كنت ترغب في تثبيت مجموعة أخرى من الحقوق: 775 و 664، فيجب أن يكون UMASK 002.

بشكل افتراضي، يستخدم الخادم وقت GMT بحيث يتم تثبيت ملفات المنطقة الزمنية الخاصة بك، استخدم الخيار:

use_localtime \u003d نعم

قم بتضمين سجل الملفات القابلة للتحميل وتنزيلها:

xiferlog_enable \u003d نعم

السماح للخادم بتثبيت اتصالات لنقل البيانات إلى المنفذ 20 (الوضع النشط):

connect_from_port_20 \u003d نعم.

تحدد الخيارات التالية موقع تخزين السجلات:

xiferlog_file \u003d / var / log / vsftpd.log
xiferlog_std_format \u003d نعم

دعونا نسأل مهلة الجلسة:

idle_session_timeout \u003d 600.
data_connection_timeout \u003d 120.

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

chroot_local_user \u003d نعم.
السماح_Writeable_chroot \u003d نعم.

للعمل بشكل صحيح مع البيانات النصية، يمكنك تمكين دعم ASCII، وسيسمح ذلك عند نقل ملف نصي مع نظام Windows في Unix (Linux) إلى استبدال رموز نقل السلسلة بشكل صحيح باستخدام CR + LF إلى LF لعرض المحتويات والأداء بشكل صحيح التحول العكسي عند نقله مرة أخرى.

ASCII_UPLAAT_ENABLE \u003d نعم.
aSCII_DOWDELLOAD_ENABLE \u003d نعم.

يمكنك تمكين خيار واحد فقط للتنزيل أو التنزيل. يرجى ملاحظة أنه عند نقل ملف ثنائي في وضع ASCII، قد يكون الأخير تالفا.

خيار مثير للاهتمام بسرعة:

ls_recurse_enable \u003d نعم.

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

يتم ترك جميع الخيارات الأخرى افتراضيا، على الرغم من أنه يمكنك تحرير تحية الخادم عن طريق كتابة كل ما تريد:

FTPD_BANNER \u003d مرحبا بكم في Roga I Kopyta LLC FTP

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

pasv_enable \u003d نعم.
pasv_min_port \u003d 62000.
pasv_max_port \u003d 62999.

أعد تشغيل الخادم (يجب أن يتم ذلك في كل مرة بعد إجراء تغييرات على التكوين):

خدمة vsftpd إعادة تشغيل.

ونحن نحاول توصيل أي عميل FTP باستخدام بيانات اعتماد مستخدم موجودة. يجب أن ننصل إلى دليل منزله وتكون معزولة فيه.

في حالة وجود خطأ مرتبط بعمل VSFTPD غير صحيح وأنظمة أمان SECCOMP:

500 عفوا: فشل PRCTL PR_SET_SECCOMP

أضف خيارا غير موثق للملف:

SECCOMP_SANDBOX \u003d رقم

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

userlist_enable \u003d نعم

وإنشاء ملف قائمة المستخدمين:

touch /etc/vsftpd.user_list.

افتراضيا vsftpd. ممنوع الوصول إلى الخادم إلى المستخدمين المحددين في هذه القائمة قبل إدخال كلمة المرور، I.E. تنفذ المبدأ المسموح به لجميع الذين لا يحظرون. ولكن سيكون من الأفضل تنفيذ نهج آخر: يحظر على جميع الذين لا يسمح بهم. أولئك. تسمح الوصول فقط إلى المستخدمين المحددين. للقيام بذلك، أضف الخيار:

userlist_deny \u003d رقم

يمكنك الآن الوصول إلى خادم FTP للمستخدمين المحددين فقط بشكل صريح، يجب تحديدها vsftpd.user_list. واحد في سلسلة، على سبيل المثال:

إيفانوف.
بتروف.

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

local_root \u003d / var / ftp

مما سيعيد توجيه جميع المستخدمين إلى الدليل المحدد وعزلهم هناك.

هذا هو أبسط الوضع، وعادة ما تكون المهام الحقيقية أكثر صعوبة، دعنا نسمح لنا بتثبيت المستخدم Ivanov كدليل جذر /var/www/example1.com.، وبيتوف /var/www/example2.com..comحتى يعمل كل منهم مع مجلده. لهذه الأغراض، يمكنك استخدام ميزة VSFTPD أخرى - إعدادات مخصصة تتداخل في إعدادات ملف التكوين الرئيسي.

للقيام بذلك، أضف الخيار:

user_config_dir \u003d / etc / vsftpd_user_conf

ثم قم بإنشاء الدليل نفسه

mkdir / etc / vsftpd_user_conf

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

إنشاء ملف مع إعدادات Ivanov:

TOCUH / ETC / VSFTPD_USER_CONF / IVANOV

وأدخل الخيار:

local_root \u003d / var / www / example1.com

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

إذا كنت بحاجة إلى إخفاء المالكين الحقيقيين للملفات والمجلدات، فيمكنك استخدام الخيار:

Hide_ids \u003d نعم

في هذه الحالة، بدلا من المالكين والجماعات الحقيقية، سيتم تحديد FTP: FTP، قد يكون مفيدا في حالة خادم عام أو توفره في قائمة مستخدمي الأشخاص غير المصرح لهم الذين لا يريدون الكشف عن أسماء المستخدمين الحقيقيين من نظامك.

كما ترون، فقد أنشأنا حقا خادم FTP يعمل في أقل من نصف ساعة.