
نحوه نصب سرور FTP با Vsftpd در Raspberry Pi
در این آموزش با ما همراه باشید تا شما عزیزان را با نحوه نصب و کانفیگ سرور FTP در Raspberry Pi را که برای اشتراک فایل بین دستگاه های خود استفاده می کنید توضیح دهیم. ما از vsftpd استفاده می کنیم ، که یک سرور FTP پایدار ، امن و سریع است. ما همچنین نحوه کانفیگ vsftpd را برای محدود کردن کاربران به دایرکتوری اصلی خود و رمزگذاری کل انتقال با SSL/TLS به شما نشان خواهیم داد. برای این پروژه ، باید Raspbian را بر روی Raspberry Pi خود نصب کرده باشید. اجرای سرور FTP نیازی به رابط گرافیکی ندارد ، بنابراین توصیه ما استفاده از تصویر Raspbian Lite و فعال کردن SSH است.
نصب vsftpd در Raspberry Pi :
بسته vsftpd در مخازن استاندارد Raspbian موجود است. برای نصب آن ، دستورات زیر را اجرا کنید:
sudo apt update
sudo apt install vsftpd
سرویس ftp پس از اتمام مراحل نصب به طور خودکار شروع می شود. برای تأیید آن ، وضعیت سرویس را نمایش دهید:
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 :
سرور vsftpd را می توان با ویرایش فایل /etc/vsftpd.conf کانفیگ کرد. اکثر تنظیمات در داخل فایل کانفیگ به خوبی مستند شده اند. با باز کردن فایل کانفیگ 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 به فایل های خارج از home directories با chroot جلوگیری کنید.
chroot_local_user=YES
هنگامی که chroot فعال است ، vsftpd در صورت قابل نوشتن بودن در دایرکتوری که کاربران در آن قفل شده اند ، از آپلود فایل خودداری می کنند. این امر برای جلوگیری از آسیب پذیری امنیتی است. از یکی از راه حل های زیر برای نوشتن محیط chroot استفاده کنید:
روش اول: روش پیشنهادی برای آپلود ، فعال کردن chroot و کانفیگ دایرکتوری های FTP است. در این مثال ، ما یک دایرکتوری ftp در داخل Home کاربر ایجاد خواهیم کرد که به عنوان chroot و یک دایرکتوری آپلود قابل نوشتن برای آپلود فایل ها استفاده می شود.
user_sub_token=$USER
local_root=/home/$USER/ftp
روش دوم: روش دیگر این است که دستورالعمل زیر را در فایل کانفیگ vsftpd اضافه کنید. اگر می خواهید به کاربر دسترسی تغییرات در home directory دهید ، از این گزینه استفاده کنید.
allow_writeable_chroot=YES
۴_ اتصالات 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 (یک کاربر در هر خط) به صراحت مشخص کنید که کدام کاربران می توانند وارد سیستم شوند.
۶_ ایمن سازی انتقال با SSL/TLS :
برای رمزگذاری انتقال FTP با SSL/TLS ، باید گواهی SSL داشته باشید و سرور FTP را برای استفاده از آن کانفیگ کنید. می توانید از یک گواهینامه SSL موجود که توسط یک مرجع معتبر گواهی امضا شده است استفاده کنید یا یک گواهی self-signed ایجاد کنید. اگر دامنه یا ساب دامنه ای دارید که به آدرس IP سرور FTP اشاره می کند ، می توانید به راحتی یک مجوز رایگان Let’s Encrypt SSL تولید کنید. در این آموزش ، ما با استفاده از دستور openssl یک self-signed SSL certificate ایجاد می کنیم. دستور زیر را برای ایجاد یک کلید خصوصی ۲۰۴۸ بیتی و گواهی self-signed با اعتبار ۱۰ سال اجرا کنید. کلید خصوصی و گواهی نامه در یک فایل ذخیره می شوند:
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 (به استثنای comments ) باید چیزی شبیه به دستور زیر باشد:
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/tcp
sudo ufw allow 30000:31000/tcp
با غیرفعال کردن و دوباره فعال کردن UFW ، قوانین UFW را آپلود کنید:
sudo ufw disable
sudo ufw enable
ایجاد کاربر FTP :
برای آزمایش سرور FTP ، یک کاربر جدید ایجاد می کنیم.
- اگر از قبل کاربری دارید که می خواهید به FTP دسترسی داشته باشید ، مرحله اول را رد کنید.
- اگر allow_writeable_chroot = YES را در فایل کانفیگ خود تنظیم کرده اید ، مرحله سوم را رد کنید.
۱_ یک کاربر جدید با نام newftpuser ایجاد کنید:
sudo adduser newftpuser
در صورت درخواست ، رمز عبور کاربر را تنظیم کنید.
۲_ کاربر را به لیست کاربران مجاز FTP اضافه کنید:
echo "newftpuser" | sudo tee -a /etc/vsftpd.user_list
۳_ FTP directory tree را ایجاد کرده و مجوزهای صحیح را تنظیم کنید:
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 به سرور خود متصل شوید.
غیرفعال کردن دسترسی Shell :
به طور پیش فرض ، هنگام ایجاد یک کاربر ، اگر به صراحت مشخص نشده باشد ، کاربر به SSH سرور دسترسی خواهد داشت. برای غیرفعال کردن دسترسی به Shell ، یک Shell جدید ایجاد کنید که به سادگی پیامی را نمایش می دهد که به کاربر می گوید حساب آنها فقط به دسترسی FTP محدود شده است. برای ایجاد شل /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 جدید را به لیست Shellهای معتبر در فایل /etc /shells اضافه کنید:
echo "/bin/ftponly" | sudo tee -a /etc/shells
Shell کاربر را به /bin /ftponly تغییر دهید:
sudo usermod newftpuser -s /bin/ftponly
برای تغییر Shell برای سایر کاربرانی که می خواهید فقط به FTP دسترسی داشته باشید ، از همان دستور استفاده کنید.
جمع بندی :
ما به شما نحوه نصب و کانفیگ سرور FTP امن و سریع را در سیستم Raspberry Pi خود نشان دادیم.
امیدواریم مطالب مورد پسند بوده و از آن بهره لازم را برده باشید. خوشحال میشویم نظرات و سوالات خود را در قسمت دیدگاه به اشتراک بگذارید و ما را در شتابان هاست همراهی کنید.😊
برچسب ها: دستورات لینوکس
ارسال دیدگاه جدید