نحوه نصب سرور FTP با Vsftpd در Raspberry Pi

نحوه نصب سرور FTP با Vsftpd در Raspberry Pi

سعیده مهاجری

در این آموزش نحوه نصب سرور FTP با Vsftpd در Raspberry Pi که برای به اشتراک گذاشتن فایل ها بین دستگاه های خود استفاده می کنید ، توضیح خواهیم داد. از vsftpd که یک سرور FTP پایدار ، ایمن و سریع است استفاده کنید. ما همچنین نحوه کانفیگ vsftpd را برای محدود کردن کاربران به فهرست اصلی آنها و رمزگذاری کل انتقال با SSL / TLS به شما نشان خواهیم داد.برای این کار شما باید Raspbian را روی Raspberry Pi خود نصب کنید. اجرای سرور FTP نیازی به رinterface گرافیکی ندارد ، بنابراین توصیه ما استفاده از تصویر Raspbian Lite و فعال کردن SSH است.

نصب vsftpd در Raspberry Pi :

vsftpd package در مخازن استاندارد Raspbian موجود است. برای نصب آن ، دستورات زیر را اجرا کنید:

sudo apt updatesudo apt install vsftpd

ftp service پس از اتمام مراحل نصب به طور خودکار شروع می شود. برای تأیید آن ، دستور زیر را اجرا کنید:

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 Wed 2020-10-21 19:00:41 BST; 9s ago

کانفیگ vsftpd :

با ویرایش فایل /etc/vsftpd.conf می توان سرور vsftpd را کانفیگ کرد.بیشتر تنظیمات به خوبی در داخل فایل کانفیگ ثبت شده است. برای همه گزینه های موجود ، به صفحه رسمی vsftpd مراجعه کنید.با باز کردن فایل کانفیگ vsftpd شروع کنید:

sudo nano /etc/vsftpd.conf

۱_ دسترسی به FTP :

برای اطمینان از اینکه فقط کاربران local می توانند به سرور FTP دسترسی پیدا کنند ، دستورالعمل های anonymous_enable و local_enable را جستجو کنید و مطابقت کانفیگ خود را با اجرای دستورات زیر تأیید کنید:

anonymous_enable=NO
local_enable=YES

۲_ امکان آپلود :

دستورالعمل write_enable را پیدا کرده و از آن کامنت بگیرید تا امکان تغییر در سیستم وجود داشته باشد ، مانند آپلود و حذف فایل ها.

write_enable=YES

۳_ Chroot Jail :

برای جلوگیری از دسترسی کاربران FTP به فایل  های خارج از فهرست اصلی آنها ، دستورالعمل chroot را از حالت کامنت خارج کنید.

chroot_local_user=YES

اگر قابلیت chroot فعال باشد ، در صورت نوشتن پوشه ای که کاربران در آن قفل شده اند ، vsftpd از آپلود فایل ها خودداری خواهد کرد.برای نوشتن محیط chroot از یکی از راه حل های زیر استفاده کنید:

روش اول – گزینه پیشنهادی برای اجازه آپلود ، فعال نگه داشتن chroot و کانفیگ فهرستهای FTP است. در این مثال ، یک دایرکتوری ftp در داخل user home ایجاد کنید ، که به عنوان chroot و یک فهرست آپلود قابل نوشتن برای آپلود فایل ها عمل می کند.

user_sub_token=$USER
local_root=/home/$USER/ftp

روش دوم – گزینه دیگر افزودن دستورالعمل زیر در فایل کانفیگ vsftpd است. اگر میخواهید اجازه نوشتن به کاربر خود را به فهرست اصلی آن بدهید ، از این گزینه استفاده کنید.

allow_writeable_chroot=YES

۴_ اتصالات Passive FTP :

به طور پیش فرض ، vsftpd از حالت فعال استفاده می کند. برای استفاده از حالت غیرفعال ، حداقل و حداکثر دامنه پورت ها را تنظیم کنید:

pasv_min_port=30000
pasv_max_port=31000

vsftpd می تواند از هر پورتی برای اتصالات FTP غیرفعال استفاده کند. وقتی حالت غیرفعال ، فعال است ، سرویس گیرنده FTP در یک پورت تصادفی در محدوده ای که انتخاب کرده اید ، یک اتصال به سرور باز می کند.

۵_ محدود کردن ورود کاربر :

می توانید vsftpd را طوری کانفیگ کنید که فقط به کاربران خاصی اجازه ورود بدهد. برای این کار ، دستورات زیر را در انتهای فایل اضافه کنید:

userlist_enable=YES
userlist_file=/etc/vsftpd.user_list
userlist_deny=NO

هنگامی که این ویژگی فعال است ، باید صریحاً مشخص کنید که کدام کاربران می توانند با افزودن نام کاربری به فایل /etc/vsftpd.user_list وارد سیستم شوند.

۶_ ایمن سازی Transmissions با SSL/TLS :

برای رمزگذاری  FTP transmissions با SSL / TLS ، باید گواهینامه  SSL داشته باشید و سرور FTP را برای استفاده از آن کانفیگ کنید.می توانید از یک گواهینامه SSL موجود که توسط یک سازمان صدور گواهینامه معتبر امضا شده استفاده کنید یاید یک گواهینامه خود امضا ایجاد کنید.اگر دامنه یا زیر دامنه ای دارید که به آدرس IP سرور FTP اشاره دارد ، می توانید به راحتی یک گواهینامه SSL رایگان رمزگذاری کنید.با استفاده از دستور openssl یک گواهینامه SSL خود امضا ایجاد کنید.برای ایجاد یک راهنمای خصوصی ۲۰۴۸ بیتی و گواهینامه خود امضا شده معتبر برای ۱۰ سال ، دستور زیر را اجرا کنید. راهنمای خصوصی و گواهینامه در یک فایل ذخیره می شوند:

sudo openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem

پس از ایجاد فایل ها ، فایل کانفیگ را باز کنید:

sudo nano /etc/vsftpd.conf

دستورالعمل های rsa_cert_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 باید مانند دستور زیر باشد:

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
allow_writeable_chroot=YES
pasv_min_port=30000
pasv_max_port=31000
userlist_enable=YES
userlist_file=/etc/vsftpd.user_list
userlist_deny=NO
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd
rsa_cert_file=/etc/ssl/private/vsftpd.pem
rsa_private_key_file=/etc/ssl/private/vsftpd.pem
ssl_enable=YES

برای اعمال تغییرات ، فایل را ذخیره کرده و سرویس vsftpd را مجدداً راه اندازی کنید:

sudo systemctl restart vsftpd

باز کردن فایروال :

اگر از فایروال UFW استفاده می کنید ، باید ترافیک FTP را مجاز کنید.برای باز کردن پورت ۲۱ یا (پورت فرمان FTP) ، پورت ۲۰ یا (پورت داده FTP) و ۳۰۰۰۰-۳۱۰۰۰ یا (پورت پسیو) ، دستورات زیر را اجرا کنید:

sudo ufw allow 20:21/tcpsudo ufw allow 30000:31000/tcp

با غیرفعال کردن و فعال کردن مجدد  UFW rules ، UFW را دانلود کنید:

sudo ufw disablesudo ufw enable

ایجاد FTP User :

برای تست سرور FTP ، کاربر جدیدی ایجاد کنید.

  • اگر قبلاً کاربری دارید که می خواهید به FTP اجازه دسترسی دهید ، مرحله ۱ را نادیده بگیرید.
  • اگر در فایل کانفیگ خود allow_writeable_chroot = YES را تنظیم کرده اید ، مرحله ۳ را نادیده بگیرید.

۱_ کاربر جدیدی به نام newftpuser ایجاد کنید:

sudo adduser newftpuser

در صورت درخواست ، رمز ورود کاربر را تنظیم کنید.

۲_ کاربر را به لیست کاربران FTP مجاز اضافه کنید:

echo "newftpuser" | sudo tee -a /etc/vsftpd.user_list

۳_  پوشه  FTP tree را ایجاد کرده و مجوزهای صحیح را تنظیم کنید:

sudo mkdir -p /home/newftpuser/ftp/uploadsudo chmod 550 /home/newftpuser/ftpsudo chmod 750 /home/newftpuser/ftp/uploadsudo chown -R newftpuser: /home/newftpuser/ftp

همانطور که در بخش قبلی گفته شد ، کاربر می تواند فایل ها را در فهرست ftp / upload آپلود کند.در این مرحله ، سرور FTP شما کاملاً کاربردی است و شما باید بتوانید با استفاده از هر سرویس گیرنده FTP مانند FileZilla به سرور خود متصل شوید.

غیرفعال کردن Shell Access :

به طور پیش فرض ، هنگام ایجاد کاربر ، اگر صریحاً مشخص نشده باشد کاربر به SSH به دستگاه دسترسی پیدا می کند. برای غیرفعال کردن دسترسی shell ، shell جدیدی ایجاد کنید که به سادگی پیامی را چاپ کند که به کاربر بگویید حساب وی فقط به دسترسی FTP محدود شده است. /bin/ftponly shell را ایجاد کرده و قابل اجرا کنید:

echo -e '#!/bin/sh\necho "This account is limited to FTP access only."' | sudo tee -a  /bin/ftponlysudo chmod a+x /bin/ftponly

shell جدید را به لیست shells معتبر در فایل / etc / shell اضافه کنید:

echo "/bin/ftponly" | sudo tee -a /etc/shells

user shell را به / bin / ftponly تغییر دهید:

sudo usermod newftpuser -s /bin/ftponly

برای تغییر shell همه کاربرانی که می خواهید فقط به FTP دسترسی داشته باشید از همان دستور استفاده کنید.

جمع بندی :

ما به شما نحوه نصب و کانفیگ سرور FTP امن و سریع را بر روی سیستم Raspberry Pi نشان دادیم.

امیدواریم مطالب مورد پسند بوده باشد.

ما را در شتابان هاست همراهی کنید.

برچسب ها: دستورات لینوکس