إعداد وتشغيل خادم نقل الملفات في نظام التشغيل أوبونتو 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

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني.