آموزش تصویری راه اندازی FTP سرور در 3 مرحله

سلام دوسان؛
در این آموزش قصد داریم  نحوه تنظیم و راه اندازی FTP سرور با سیستم عامل اوبونتو را با هم بررسی کنیم. FTP یا پروتکل انتقال فایل، واسطه ای برای ارسال و دریافت فایل ها از طریق اتصال به شبکه است. با استفاده از چارچوب client/server و با موارد امنیتی SSL / TLS، FTP به کاربران این امکان را می دهد که فایل های خود را از طریق کامپیوترها به صورت کاملا امن، کارآمد و قابل اطمینان انتقال دهند. (با استفاده از پروتکل TCP / IP).

راه اندازی FTP سرور

راه اندازی FTP سرورتوابع FTP همانند پروتکل های HTTP یا SMTP عمل می کنند؛ اگر بخواهیم آن ها را مقایسه کنیم این طور می توان گفت که تنها تفاوت این پروتکل ها این است که در اینترنت به جای ارسال صفحات وب از سرور به یک کاربر یا ایمیل، مسئولیت انتقال امن فایل ها از یک فرستنده به گیرنده را دارد.

توجه: این آموزش راه اندازی FTP سرور بر مبنای سیستم عامل اوبونتو 16.04 است. اما باز هم می توان همین مراحل را در هنگام ایجاد یک سرور FTP با سیستم عامل اوبونتو  14.04 یا پایین تر نیز اعمال کرد.

مرحله 1: نصب Vsftpd

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

sudo apt-get update
در اینجا باید منتظر بمانیم تا همه فرآیندها تکمیل شوند. مطابق تصویر زیر پس از اتمام پروسه، پیغام تایید به روزرسانی پیکیج ها نمایش داده خواهد شد.
راه اندازی FTP سرورهنگامی که مراحل بالا به صورت کامل انجام شد، به کمک دستور زیر vsftpd را نصب می کنیم:
sudo apt-get install vsftpd
بعد از اجرای مراحل نصب، پیغامی دریافت می کنیم که آیا قصد ادامه مراحل را داریم یا خیر؟ برای تایید و ادامه دادن حرف Y را وارد کرده و سپس کلید Enter را فشار می دهیم تا مراحل نصب ادامه یابد.

پس از اتمام پروسه نصب، یک نسخه پشتیبان از فایل اصلی ایجاد می کنیم. در ادامه کار  را با یک فایل پیکربندی خالی شروع می کنیم:

sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.original
سپس باید به مرحله بعدی برویم و فایروال را پیکربندی کنیم.

مرحله 2: پیکربندی های FTP و فایروال

برای اینکه سرور FTP اوبونتو بتواند با دنیای بیرونی خود ارتباط برقرار کند، باید تنظیمات پیکربندی  آن را از طریق فایروال انجام داد. ابتدا ببینید آیا فایروال سیستم فعال است یا خیر. برای بررسی وضعیت، دستور زیر را اجرا کنید:

sudo ufw status
در صورتی که خروجی زیر را مشاهده کردید یعنی فایروال نصب نشده است بنابراین باید مراحل بعدی را دنبال کنید.
ufw: command not found

اگر بعد از وارد کردن دستور بالا یکسری قوانین تعریف شده یا پیامی را مشاهده کردید که نشان می داد فایروال فعال است، سوال اجازه ترافیک های FTP که از شما پرسیده می شود را تایید کنید. در ادامه پورت های 20 و 21 را برای ترافیک FTP باز می کنیم؛ رنج 40000-50000 طیف وسیعی از پورت های منفعل که در فایل پیکربندی، تنظیم شده است و پورت 990 هم زمانی که TLS فعال باشد، استفاده می شود. برای انجام این پیکربندی ها دستورات زیر را اجرا کنید:

sudo ufw allow 20/tcp
sudo ufw allow 21/tcp
sudo ufw allow 990/tcp
sudo ufw allow 40000:50000/tcp
در این مرحله از  راه اندازی FTP سرور باید دوباره وضعیت را بررسی کنیم:
sudo ufw status
بعد از وارد کردن دستورات، خروجی باید چیزی شبیه به پیغام های زیر باشد:
Output
Status: active
To                         Action      From
--                              ------      ----
990/tcp                    ALLOW       Anywhere
20/tcp                     ALLOW       Anywhere
21/tcp                     ALLOW       Anywhere
40000:50000/tcp            ALLOW       Anywhere
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: ساخت user directory

برای ایجاد یک سرور FTP اوبونتو، باید کاربری را انتخاب کنیم که از دسترسی FTP استفاده می کند. در ادامه بررسی می کنیم که چطور می توان با دستورات لینوکسی کاربر جدیدی را اضافه کرد. برای ایجاد کاربری، از دستور زیر استفاده کنید:
sudo adduser alex
بعد از وارد کردن دستور، یک رمز عبور مناسب برای کاربر وارد کنید. برخی جزئیات مرتبط با کاربر از شما سوال می شود، آن ها را هم تکمیل کنید.  بهتر است که کاربر FTP به دلایل امنیتی کمی محدود شود.  Vsftpd از محدودیت chroot برای انجام این کار استفاده می کند.  Chroot باعث می شود که کاربر به طور پیش فرض تنها به پوشه اصلی خود دسترسی داشته باشد. در ادامه باید تمام دسترسی هایی که یک کاربر دارد را بررسی کرد چون ممکن است کاربر قادر به نوشتن در دایرکتوری باشد. دقت داشته باشید مجوز نوشتن را از پوشه روت کاربر حذف نمی کنیم، بلکه یک پوشه ftp ایجاد خواهیم کرد که مجوز نوشتن دارد و  برای نگهداری فایل های مربوطه کاربر خواهد بود. برای ایجاد پوشه FTP از دستور زیر استفاده کنید:
sudo mkdir /home/alex/ftp
در ادامه مراحل راه اندازی FTP سرور مالکیت یا ownership را با استفاده از دستور زیر تنظیم کنید:
sudo chown nobody:nogroup /home/alex/ftp
در آخر، مجوزهای نوشتن را حذف کنید:
sudo chmod a-w /home/alex/ftp
اکنون برای تأیید مجوزها از دستور زیر استفاده کنید:
sudo ls -la /home/alex/ftp
خروجی باید چیزی شبیه به متن زیر باشد:
total 8
dr-xr-xr-x 2 nobody nogroup 4096 Jun 29 11:32 .
drwxr-xr-x 3 alex   alex    4096 Jun 29 11:32 ..
در مرحله بعدی یک دایرکتوری ایجاد می کنیم و مالکیت آن را به کاربر اعطا خواهیم کرد:
sudo mkdir /home/alex/ftp/files
sudo chown alex:alex /home/alex/ftp/files
در نهایت برای اینکه مطمئن شوید تمامی تنظیمات راه اندازی FTP سرور به دسترسی اعمال شده، یک فایل تست را ایجاد و به دایرکتوری اضافه کنید.
echo "vsftpd sample file" | sudo tee /home/alex/ftp/files/sample.txt

جمع بندی نهایی

برای انتقال فایل ها می توان از پروتکل ftp استفاده کرد که مخفف File Transfer Protocol است. از طریق این پروتکل می توان به صورت امن، قابل اعتماد و بدون دردسر فایل های خود را منتقل کرد. راه اندازی FTP سرور کار سختی نیست اما در شروع باید کلیه تنظیمات پیکربندی را اعمال کرد تا در مراحل بعدی با مشکل مواجه نشویم. در این آموزش با سه گام اول پیکربندی های انتقال فایل آشنا شدید. همچنین می توانید تنظیمات دلخواه مرتبط با vsftpd را اعمال و یا تنظیمات پیش فرض آن را تغییر دهید. در آموزش های بعدی به تنظیمات امنیتی ftp و تست کانکشن از طریق FileZilla می پردازیم.
امیدواریم که از  آموزش راه اندازی FTP سرور راضی بوده باشید. موفق باشید. 🙂