إعداد وتشغيل خادم نقل الملفات في نظام التشغيل أوبونتو 18.04 باستخدام VSFTPD

  • لتثبيت مكونات خادم نقل الملفات VSFTPD على نظام التشغيل أوبونتو
$ sudo apt-get install vsftpd
  • تعديل ملف التهيئة vsftpd.config

أولا سننقل ملف التهيئة كنسخة إحتياطية قبل التعديل

$ sudo mv /etc/vsftpd.conf /etc/vsftpd.conf_bkup

ثم نقوم بإنشاء ملف تهيئة جديد بنفس اﻹسم اﻷصل

$ sudo nano /etc/vsftpd.conf

سنقوم بكتابة هذه اﻹعدادات اﻷساسية في ملف تهيئة الخادم أولا وبعد أن نتأكد من عمله نقوم بتعديلها لتتناسب مع بيئة التشغيل الخاصة بنا.

listen=NO
listen_ipv6=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
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=NO
pasv_enable=Yes
pasv_min_port=50000
pasv_max_port=51000
allow_writeable_chroot=YES

إعدادات أخري يمكن استخدامها

    anonymous_enable=NO
    local_enable=YES
    write_enable=YES
    local_umask=022
    dirmessage_enable=YES
    xferlog_enable=YES
    connect_from_port_20=NO
    xferlog_file=/var/log/vsftpd/vsftpd.log
    xferlog_std_format=YES
    ftpd_banner=Welcome to FTP service
    chroot_local_user=YES
    listen=YES
    pam_service_name=vsftpd
    tcp_wrappers=YES
    userlist_file=/etc/vsftpd/vsftpd.userlist
    userlist_enable=YES
    userlist_deny=NO
    pasv_max_port=51000
    pasv_min_port=50000
    port_enable=YES
    pasv_enable=YES
    pasv_address=YOUR_SERVER_URL
    pasv_addr_resolve=YES
    check_shell=NO
    passwd_chroot_enable=YES

كما تري في اﻹعدادات السابقة:

  • منع اﻹتصال بالخادم بدون كلمة سر anonymous_enable=NO
  • إنشاء سجل تقارير مخصص /var/log/vsftpd/vsftpd.log
  • تفعيل سجل التقارير الخاص xferlog_std_format=YES
  • إضافة رسالة الترحيب الخاصة بنا ftpd_banner=Welcome to FTP service
  • تفعيل اﻹتصال للمستخدمين المسجلين في نظام التشغيل userlist_enable=YES
  • تحديد قائمة المستخدمين غير المسجلين في نظام التشغيل userlist_file=/etc/vsftpd/vsftpd.userlist
  • تفعيل قائمة المستخدمين غير المسجلين userlist_enable=YES
  • تفعيل قائمة المستخدمين كقائمة موثوق بها userlist_deny=NO
  • تمكين مستخدم نظام نقل الملفات FTP من الكتابة write_enable=YES
  • إعداد اﻹختار العام umask إلى 022 لتعديل صلاحية الوصول للملفات إلى (644) والمجلدات إلى (755) بشكل تلقائي عند رفعها للسيرفر. local_umask=022
  • تحديد المنافذ رقم 50000-51000 لنقل الملفات في الوضع Passive Mode pasv_max_port=51000 pasv_min_port=50000 (اﻷرقام للمثال فقط , استخدم أرقام أخري خاصة بك لمزيد من اﻷمان)
  • تحديد معرف اﻹنترنت IP أو اسم النظاق DomainName لسيرفر نقل الملفات للإتصال به YOUR_SERVER_URL
  • في حالة استخدام اسم النطاق DomainName يتم تعديل اﻹختيار pasv_addr_resolve=YES
  • في حالة استخدام IP يمكن تعديل الإختيار pasv_addr_resolve=NO

إذا كان جدار الحماية UFW مفعلا على الخادم فينبغي تنفيذ اﻷمر التالي لفتح منافذ اتصال FTP لخادم نقل الملفات.

$ sudo ufw allow from any to any port 20,21,50000:5100 proto tcp

اﻵن نقوم بإنشاء مجلد ومستخدم جديد باسم ftp_user لخدمة نقل الملفات FTP وتخصيص المجلد للمستخدم الجديد كمجلد شخصي رئيسي له

$ sudo mkdir -p /var/log/vsftpd/
$ sudo mkdir -p /var/www/ftp
$ sudo useradd -d /var/www/ftp/ -s /sbin/nologin ftp_user
$ sudo passwd ftp_pass
Enter new UNIX password:                                                                                                                                                                       
Retype new UNIX password:                                                                                                                                                                      
passwd: password updated successfully

ثم نقوم بتسجيل المستخدم الجديد في قائمة المستخدمين الموثوق بهم وإنشاء مجموعة جديدة باسم ftpgroup لمستخدمي خادم نقل الملفات FTP وإلحاق المستخدم ftp_user بها

$ sudo echo "ftp_user" > /etc/vsftpd/vsftpd.userlist
$ sudo groupadd ftpusers
$ sudo usermod -G ftpusers ftp_user
$ sudo chown ftp_user /var/www/ftp/ -R

أعد تشغيل خادم نقل الملفات لتطبيق اﻷعدادات السابقة

$ sudo service vsftpd restart

سنقوم بتسجيل الدخول لنظام التشغيل باسم المستخدم الجديد وإضافة ملف لمجلد المستخدم الجديد الشخصيﻹختبار إمكانية الكتابة والقراءة منه باستخدام اﻷمر التالي

$ sudo bash -c "echo FTP TESTING > /home/ftpuser/FTP-TEST"

اﻵن خادم نقل الملفات جاهز للإتصال به من قبل المستخدم ftp_user كما يلي:

$ ftp Server IP/DomainName
Name : 
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>

إذا كنت ترغب في اﻹتصال بالخادم عن طريق اﻹنترنت فينبغي إضافة الإعدادات الخاصة بالتأمين إلى ملف التهيئة vsftpd.conf

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *