در این مقاله قصد داریم نحوه راه اندازی یک سرور FTP در سرور مجازی لینوکس اوبونتو را یاد بگیریم. ما از یک سرور vsftpd استفاده خواهیم کرد که به طور گسترده ای به عنوان سریع ترین و امن ترین سرور FTP برای سیستم های یونیکس مانند در نظر گرفته می شود.
اگر نیاز به خرید سرور مجازی بورس یا سرور مجازی ترید دارید می توانید آن ها را از روناک هاست تهیه کنید.
FTP چیست؟
FTP یا پروتکل انتقال فایل ابزاری برای اشتراک گذاری فایل ها بین رایانه ها از طریق اتصال اینترنت با استفاده از پروتکل TCP/IP است. همچنین از یک چارچوب کلاینت-سرور و امنیت SSL/TLS برای اطمینان از انتقال امن و قابل اعتماد داده استفاده می کند.
این پروتکل تا حدودی شبیه به HTTP (پروتکل انتقال ابرمتن) یا SMTP (پروتکل انتقال ایمیل ساده) است. تفاوت این پروتکل این است که FTP مسئول انتقال فایل ها از طریق اینترنت است در حالی که HTTP و SMTP به ترتیب انتقال صفحات وب و ایمیل ها را انجام می دهند.
قبل از شروع، به خاطر داشته باشید که ما شما را از طریق پیکربندی یک سرور FTP در اوبونتو 18.04 راهنمایی می کنیم. بنابراین، باید مطمئن شوید که سرور مجازی شما روی آن سیستم عامل خاص اجرا می شود.
نحوه راه اندازی یک سرور FTP در اوبونتو
برای راه اندازی این پروتکل حتما باید از طریق SSH به سرور مجازی لینوکس اوبونتو خود متصل شوید.
مرحله 1 راه اندازی سرور FTP در لینوکس اوبونتو – نصب vsftpd
اول از همه، ما باید قبل از نصب vsftpd بهروزرسانیهای بسته لینوکس خود را دریافت کنیم. برای شروع، دستور زیر را اجرا کنید:
sudo apt-get update
منتظر بمانید تا تمام فرآیندها تکمیل شوند و به محض اتمام به روز رسانی، تاییدیه را مشاهده خواهید کرد.
پس از اتمام کار، دیمون vsftpd را با استفاده از دستور زیر نصب کنید:
sudo apt-get install vsftpd
یک پیام تأیید از شما خواسته می شود که برای ادامه نصب، باید Y را تایپ کرده و Enter را فشار دهید.
پس از اتمام نصب، باید از فایل اصلی نسخه پشتیبان تهیه کنید تا بتوانید با یک فایل پیکربندی خالی شروع کنید:
sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.original
اکنون آماده پیکربندی فایروال هستیم.
مرحله 2 راه اندازی سرور FTP در لینوکس اوبونتو – اجازه دادن به ترافیک FTP از فایروال
برای اینکه سرور FTP اوبونتو از طریق اینترنت ارتباط برقرار کند، باید راه خود را از طریق فایروال باز کند. اما ابتدا، بیایید ببینیم که آیا فایروال از قبل روی دستگاه شما فعال است یا خیر. برای بررسی وضعیت به سادگی این دستور را اجرا کنید:
sudo ufw status
در صورت مشاهده پیغام زیر:
ufw: command not found
یعنی فایروال نصب نیست. می توانید آن را با تایپ کردن نصب و فعال کنید:
sudo apt-get install ufw
sudo ufw enable
اگر قبلاً فایروال شما فعال شده است، هنوز باید مطمئن شوید که ترافیک FTP مجاز است. برای انجام این کار، دستورات زیر را یکی یکی اجرا کنید:
sudo ufw allow OpenSSHsudo ufw allow 20/tcpsudo ufw allow 21/tcpsudo ufw allow 990/tcpsudo ufw allow 40000:50000/tcp
این سری از دستورات چندین پورت را باز می کند:
- اگر همچنان می خواهید از طریق SSH به سرور خود دسترسی داشته باشید، OpenSSH لازم است. گاهی اوقات این گزینه به صورت پیش فرض فعال می شود.
- پورت های 20 و 21 برای ترافیک FTP می باشند.
- پورت های 40000:50000 برای محدوده پورت های غیرفعال که در نهایت در فایل پیکربندی تنظیم می شوند، رزرو می شود.
- وقتی TLS فعال باشد از پورت 990 استفاده می شود.
حالا بیایید دوباره به وضعیت نگاه کنیم:
sudo ufw status
خروجی باید چیزی شبیه به این باشد:
Status: active
To Action From
— —— —-
OpenSSH ALLOW Anywhere
990/tcp ALLOW Anywhere
20/tcp ALLOW Anywhere
21/tcp ALLOW Anywhere
40000:50000/tcp ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
20/tcp (v6) ALLOW Anywhere (v6)
21/tcp (v6) ALLOW Anywhere (v6)
990/tcp (v6) ALLOW Anywhere (v6)
40000:50000/tcp (v6) ALLOW Anywhere (v6)
مرحله 3 راه اندازی سرور FTP در لینوکس اوبونتو – ایجاد دایرکتوری کاربر
هنگامی که فایروال راه اندازی شد، باید کاربری را ایجاد کنیم که قرار است از دسترسی FTP استفاده کند. به همین دلیل باید به صورت زیر عمل کنید:
sudo adduser hostinger
به یاد داشته باشید که نام کاربری را مطابق با اولویت خود تغییر دهید.
سپس یک رمز عبور برای کاربر وارد کنید و تمام مشخصات مورد نیاز را تایپ کنید.
در حالت ایده آل، FTP باید به یک فهرست خاص برای اهداف امنیتی محدود شود. به همین دلیل است که vsftpd از زندان های chroot استفاده می کند که به طور پیش فرض یک کاربر محلی را به فهرست اصلی خود محدود می کند.
با این حال، ممکن است به دلیل امنیت vsftpd، یک کاربر نتواند در آن دایرکتوری بنویسد. برای رفع این مشکل، ما مجبور نیستیم امتیازات نوشتن را از پوشه اصلی حذف کنیم. در عوض، یک دایرکتوری ftp ایجاد می کنیم که به عنوان chroot عمل می کند. این شامل یک دایرکتوری قابل نوشتن است که مسئول نگهداری فایل های مورد نیاز خواهد بود.
برای ایجاد پوشه FTP از دستور زیر استفاده کنید:
sudo mkdir /home/hostinger/ftp
سپس، مالکیت را با استفاده از:
sudo chown nobody:nogroup /home/hostinger/ftp
در نهایت، مجوز نوشتن را حذف کنید:
sudo chmod a-w /home/hostinger/ftp
حال از دستور زیر برای تایید مجوزها استفاده کنید:
sudo ls -la /home/hostinger/ftp
خروجی باید چیزی شبیه به این باشد:
total 8
dr-xr-xr-x 2 nobody nogroup 4096 Oct 8 11:32 .
drwxr-xr-x 3 hostinger hostinger 4096 Oct 8 11:32 ..
سپس، دایرکتوری نگهداری فایل را ایجاد می کنیم و مالکیت را به آن اختصاص می دهیم:
sudo mkdir /home/hostinger/ftp/filessudo chown hostinger:hostinger /home/hostinger/ftp/files
در نهایت، یک فایل آزمایشی را به دایرکتوری اضافه کنید که وقتی همه چیز را بعداً آزمایش می کنیم، استفاده می شود:
مرحله 4 راه اندازی سرور FTP در لینوکس اوبونتو – پیکربندی vsftpd
مرحله بعدی پیکربندی vsftpd و دسترسی FTP ما است. در این مثال، به یک کاربر اجازه میدهیم با استفاده از یک حساب محلی پوسته متصل شود. دو پیکربندی کلیدی مورد نیاز برای این کار قبلاً در فایل پیکربندی (vsftpd.conf) تنظیم شده است.
برای شروع، از دستور nano برای باز کردن فایل پیکربندی vsftpd استفاده کنید.
sudo nano /etc/vsftpd.conf
بررسی کنید که محتوا تنظیمات مشابه این را دارد:
. . . # Allow anonymous FTP? (Disabled by default). anonymous_enable=NO # # Uncomment this to allow local users to log in. local_enable=YES . . .
در همان فایل، # (uncomment) را حذف می کنیم و مطمئن می شویم که write_enable را فعال کرده ایم.
. . . write_enable=YES . . .
همچنین باید chroot را از کامنت بردارید تا مطمئن شوید که کاربر FTP فقط به فایلهای داخل دایرکتوری مجاز دسترسی دارد. مقدار NO را نیز به YES تغییر دهید. به خاطر داشته باشید که دو خط مانند این وجود دارد و شما باید هر دوی آنها را از کامنت بردارید.
. . . chroot_local_user=YES . . .
چند مقدار جدید وجود دارد که باید آنها را به آخر فایل اضافه کنید. اولین مورد user_sub_token در مسیر دایرکتوری local_root است. این مورد به پیکربندی اجازه می دهد تا با کاربر فعلی یا هر کاربر دیگری که متعاقباً اضافه می شود کار کند:
user_sub_token=$USER local_root=/home/$USER/ftp
برای اطمینان از در دسترس بودن تعداد قابل توجهی از اتصالات، تعداد پورتهای فایل پیکربندی را محدود میکنیم:
pasv_min_port=40000 pasv_max_port=50000
در این آموزش قصد داریم به صورت موردی اجازه دسترسی را بدهیم. بنابراین، پیکربندی را طوری تنظیم میکنیم که فقط به کاربرانی که شما صریحاً به لیست اضافه کردهاید، دسترسی داشته باشند:
userlist_enable=YES userlist_file=/etc/vsftpd.userlist userlist_deny=NO
وقتی userlist_deny flag را روی NO تنظیم کنید، فقط کاربران مشخص شده اجازه دسترسی خواهند داشت. پس از اتمام، روی CTRL+X و سپس Y کلیک کنید تا آن را ذخیره کنید، سپس Enter را برای تایید تغییرات فایل کلیک کنید.
در نهایت یک لیست کاربری ایجاد می کنیم و یک کاربر به فایل اضافه می کنیم:
echo “hostinger” | sudo tee -a /etc/vsftpd.userlist
با اجرای دستور زیر مطمئن شوید که کاربر اقعاً فعال است:
cat /etc/vsftpd.userlist
همانطور که در این اسکرین شات نشان داده شده است، خروجی باید “میزبان” باشد:
برای بارگذاری تغییرات پیکربندی، دیمون را با استفاده از دستور زیر راه اندازی مجدد کنید:
sudo systemctl restart vsftpd
مرحله 5 راه اندازی سرور FTP در لینوکس اوبونتو – ایمن کردن FTP
بهطور پیشفرض، FTP دادهها را رمزگذاری نمیکند، بنابراین از گواهی SSL/TLS برای انتقال امن دادهها استفاده میکنیم. اولین قدم این است که باید گواهی SSL را برای سرور FTP اوبونتو ایجاد کنیم.
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem
پرچم –days گواهی را به مدت یک سال معتبر می کند و ما یک کلید خصوصی RSA 2048 بیتی را در همان دستور قرار داده ایم.
پس از درخواست، مشخصات شخصی مربوطه را در فیلد ارائه شده وارد کنید.
پس از اتمام ساخت گواهی، فایل پیکربندی را دوباره باز کنید:
sudo nano /etc/vsftpd.conf
انتهای فایل باید شامل دو خط باشد که با rsa شروع می شود.
# rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem# rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
اکنون، فایل پیکربندی را به گواهینامه ای که به تازگی ایجاد کرده ایم ، متصل می کنیم. دایرکتوری های زیر را درست زیر خطوط قبلی اضافه کنید:
rsa_cert_file=/etc/ssl/private/vsftpd.pem
rsa_private_key_file=/etc/ssl/private/vsftpd.pem
در مرحله بعد، ما SSL را فعال می کنیم و اطمینان حاصل می کنیم که فقط مشتریانی که SSL فعال دارند می توانند با ما ارتباط بگیرند. به سادگی این خط را وارد کنید:
ssl_enable=YES
سپس، خطوط زیر را اضافه کنید تا هرگونه اتصال ناشناس از طریق SSL ممنوع شود:
allow_anon_ssl=NOforce_local_data_ssl=YESforce_local_logins_ssl=YES
سرور را برای استفاده از TLS با استفاده از کد زیر تنظیم می کنیم:
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO
حالا دو گزینه دیگر را تغییر می دهیم. ابتدا استفاده مجدد SSL را غیرفعال کنید تا از خراب شدن کلاینت های FTP جلوگیری کنید. ثانیا، ما از مجموعههای رمزگذاری با رمزگذاری بالا استفاده خواهیم کرد، که اطمینان حاصل میکنند که طول کلید برابر یا بیشتر از 128 بیت باشد.
require_ssl_reuse=NOssl_ciphers=HIGH
با فشردن CTRL+X و سپس Y و سپس Enter فایل را دوباره ذخیره کنید.
بیایید vsftpd را دوباره راه اندازی کنیم تا تنظیمات جدید را اعمال کنیم:
sudo systemctl restart vsftpd
تبریک میگویم! شما اکنون سرور FTP را در سرور مجازی اوبونتو خود راه اندازی کرده اید تا با پروتکل SSL/TLS کار کند.
مرحله 6 – تست اتصال با برنامه FileZilla
امروزه اکثر مشتریان FTP از تنظیمات رمزگذاری TLS پشتیبانی می کنند. این یک راه عالی برای آزمایش اینکه آیا سرور اوبونتو FTP شما به درستی کار می کند یا خیر است. برای آزمایش اتصال، از FileZilla FTP Client استفاده خواهیم کرد.
برای شروع، FileZilla را اجرا کنید و روی نماد مدیریت سایت کلیک کنید. سپس، روی دکمه New Site در پنجره درخواست شده کلیک کنید تا جزئیات سرور FTP Ubuntu را وارد کنید.
تمام ستون های مورد نیاز را با اطلاعات سرور اوبونتو FTP تازه ایجاد شده خود پر کنید. از آنجایی که ما آن را برای استفاده از TLS پیکربندی کردیم، ممکن است گزینه Use explicit FTP over TLS را نیز انتخاب کنیم. پیکربندی نهایی باید به شکل زیر باشد:
پس از آماده شدن، روی Connect کلیک کنید و صفحه ای ظاهر می شود که از شما می خواهد رمز عبور کاربر FTP را وارد کنید. پس از آن، OK را بزنید.
در نهایت، باید گواهی SSL سرور FTP خود را در Ubuntu VPS تأیید کنید. پس از تایید، دایرکتوری ROOT ریشه با فایل تست اکنون باید روی صفحه نمایش شما ظاهر شود.
همین! اکنون می توانید فایل های مختلفی را از کامپیوتر خود به سرور FTP اوبونتو و بالعکس انتقال دهید.
نتیجه گیری و جمع بندی
داشتن یک سرور FTP اوبونتو به اشتراک گذاری فایل ها بین VPS/سرور اوبونتو و کامپیوتر را برای شما آسان تر می کند. به لطف امنیت SSL/TLS و پروتکل TCP/IP، این یک روش امن و قابل اعتماد برای انتقال داده ها است.
در این آموزش نحوه راه اندازی سرور FTP در اوبونتو 18.04 با استفاده از vsftpd را یاد گرفتید. پنج مرحله وجود دارد که باید دنبال کنید. بیایید یک بار دیگر نگاهی به آنها بیندازیم.
- vsftpd را روی سرور اوبونتو نصب کنید و از فایل پیکربندی اصلی نسخه پشتیبان تهیه کنید.
- اتصالات FTP را از طریق فایروال مجاز کنید.
- یک فهرست کاربری ایجاد کنید که فقط توسط کاربران مشخص شده قابل دسترسی باشد.
- vsftpd را پیکربندی کنید.
- سرور FTP را ایمن کنید.
- اتصال FTP خود را با FileZilla تست کنید.
موفق باشید، و مطمئن شوید که دیگر آموزش های سرور مجازی لینوکس ما را نیز مطالعه کنید!