آموزش نصب و راه اندازی ftp سرور در لینوکس اوبونتو و centos
FTP مخفف File Transfer Protocol است که یک روش استاندارد برای برای انتقال فایل ها بین رایانه ها است و اگر شما کمی در حوزه وب فعالیت کنید، با این پروتکل آشنا خواهید بود. در صورتی که شما بخواهید از طریق شبکه فایلی را انتقال دهید، شبکه FTP به کمک فراهم کردن مجموعه از قوانین، این شرایط را برای شما فراهم می کند.
برای انتقال فایل به صورت آنلاین در لینوکس نیاز به پروتکل ftp است. FTP مخفف File Transfer Protocol است
FTP پروتکل client-server است که در آن کسی که گیرنده سرویس است، فایلی که می خواهد را درخواست می کند و سرور هم فایل درخواست شده را ارائه می دهد. این پروتکل معمولا در لینوکس کاربرد بیشتری دارد و ما هم در اینجا می خواهیم به شما آموزش دهیم که چگونه FTP را در اوبونتو و centos (که از توزیع های پرطرفدار لینوکس هستند) نصب و راه اندازی کنید. این مقاله را از دست ندهید؛ چرا که از کامل ترین مقالات تخصصی در این حوزه به شمار می رود. همراهمان باشید.
پروتکلFTP چیست؟
تا اینجا تا حدودی در رابطه با پروتکلFTP صحبت کردیم؛ اما اینکه پروتکل FTP چیست و چه عملکردی دارد، در این جا بیشتر می پردازیم.
همانطور که گفتیم که این پروتکل برای انتقال فایل بین کامپیوترها استفاده می شود که این کار را به کمک اتصال های TCP/IP انجام می دهد. در این پروتکل یکی از سیستم ها نقش سرور را ایفا می کند و اگر هر دو به اینترنت متصل باشند، انتقال فایل انجام می شود. در صورتی که پیکربندی سرور برای اجرا FTP به درستی انجام نشود و سرویس گیرنده نرم افزار FTP را برای دسترسی به این سرویس نصب نکند، در این صورت نمی توان انتظار عملکرد موفقیت آمیز از این پروتکل را دریافت کرد. موضوعی که دوست داریم در مورد این پروتکل با صداقت بیان کنیم، این است که FTP از رمزنگاری استفاده نمی شود و احراز هویت بر پایه یوزرنیم و پسورد است و این موضوع سبب می شود که این پروتکل در برابر روش هایی مانند eavesdropping (شنود) و جعل هویت، چندان امن نباشد.
در ادامه ابتدا روش های نصب و راه اندازی FTP روی سرور centos را بیان می کنیم.
پیش نیازهای نصب و راه اندازی FTPسرور در centos
برای آن که بتوانید FTP سرور در centos را نصب و راه اندازی کنید، نیاز است که پیش نیازهای لازم را فراهم کنید. 3 پیش نیاز برای این کار لازم است:
- دسترسی داشتن به یک حساب کاربری که دارای امتیازات sudoاست.
- مدیر بسته yum، به طور پیش فرض نصب شده است
- یک ویرایشگر متن به انتخاب شما
* در صورت نیاز به یک سرور حرفه ای برای راه اندازی FTP می توانید به صفحه خرید سرور مجازی لینوکس (Linux VPS Hosting) مراجعه کنید و پلن مناسب خود را سفارش دهید.
سرور FTP را روی CentOS 7 نصب کنید
نصب FTP روی centos کار سختی نیست و شما به راحتی می توانید این کار را انجام دهید. البته در نظر داشته باشید که ما در این جا از centos 7 استفاده کرده ایم.
مرحله 1: سرویس FTP را با VSFTPD نصب کنید
برای شروع مدیر بسته را بروز رسانی کنید؛ این کار را می توانید به کمک کد زیر انجام دهید.
sudo yum update
اجازه دهید فرآیند تکمیل شود.
ما در اینجا از VSFTPD استفاده کرده ایم که مخفف عبارت Very Secure FTP Daemon software package است و یک ابزار نرم افزاری است که به شما این امکان را می دهد تا بتوانید به آسانی یک سرور FTP ایجاد کنید.
نرم افزار VSFTPD را با دستور زیر نصب کنید:
sudo yum install vsftpd
وقتی از شما خواسته شد، Y را تایپ کنید تا عملیات کامل شود.
سرویس را راه اندازی کنید و آن را طوری تنظیم کنید که هنگام بوت شدن سیستم با موارد زیر راه اندازی شود:
sudo systemctl start vsftpd
sudo systemctl enable vsftpd
سپس، یک قانون برای فایروال خود ایجاد کنید تا به ترافیک FTP در پورت 21 اجازه دهد:
sudo firewall-cmd --zone=public --permanent --add-port=21/tcp
sudo firewall-cmd --zone=public --permanent --add-service=ftp
sudo firewall-cmd –-reload
توجه: اگر از برنامه فایروال دیگری استفاده می کنید، به مستندات مراجعه کنید تا آن را به درستی برای پورت 21 پیکربندی کنید. همچنین، برخی از سرویس گیرندگان FTP از پورت 20 استفاده می کنند، بنابراین ممکن است بخواهید آن قانون را نیز لحاظ کنید. به سادگی خط اول را کپی کنید و 21 را با 20 جایگزین کنید.
مرحله 2: پیکربندی VSFTPD
رفتار سرویس FTP روی سرور شما توسط فایل پیکربندی/etc/vsftpd/vsftpd.conf
تعیین می شود.
قبل از شروع پیکربندی، یک کپی از فایل تنظیمات پیش فرض ایجاد کنید:
sudo cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.default
این کار تضمین میکند که راهی برای بازگشت به پیکربندی پیشفرض دارید، در صورتی که تنظیماتی را تغییر دهید که ممکن است مشکلاتی ایجاد کند.
فایل پیکربندی را با دستور زیر ویرایش کنید:
sudo nano /etc/vsftpd/vsftpd.conf
سرور FTP خود را طوری تنظیم کنید که کاربران ناشناس را غیرفعال کند و به کاربران محلی اجازه دهد.
ورودی های زیر را در فایل پیکربندی پیدا کنید و آن ها را برای مطابقت با موارد زیر ویرایش کنید:
anonymous_enable=NO
local_enable=YES
این کار یک گام مهم به شمار می رود. در نظر داشته باشید که دسترسی ناشناس خطرناک است و باید از آن اجتناب کنید مگر اینکه خطرات را به خوبی شناسایی کنید.
کاری که باید در مرحله بعدی انجام دهید، این است که به یک کاربر وارد شده اجازه دهید فایل ها را در سرور FTP شما آپلود کند.
ورودی زیر را بیابید و مطابق زیر ویرایش کنید:
write_enable=YES
توجه: بهطور پیشفرض، این خط با علامت # شروع میشود تا نشان دهد که یک کامنت است. کامنت گذاشتن یک راه مفید برای روشن و خاموش کردن دستورات است. علامت # همچنین می تواند برای یادداشت برداری در فایل استفاده شود بدون اینکه سیستم آنها را به عنوان دستورالعمل تفسیر کند.
کاربران FTP را به فهرست اصلی خود محدود کنید. این اغلب jail یا chroot jail نامیده می شود. ورودی را برای مطابقت با موارد زیر پیدا کرده و تنظیم کنید:
chroot_local_user=YES
allow_writeable_chroot=YES
توجه: برای اهداف آزمایشی، گزینه allow_writeable_chroot=YES یک سرور FTP کارآمد ایجاد می کند که می توانید آن را آزمایش و استفاده کنید. برخی از مدیران استفاده از گزینه user_sub_token برای امنیت بهتر را توصیه می کنند.
ابزار vsftpd راهی برای ایجاد یک لیست کاربر تایید شده فراهم می کند. برای مدیریت کاربران به این روش، ورودی userlist_enable را پیدا کنید، سپس فایل را به شکل زیر ویرایش کنید:
userlist_enable=YES
userlist_file=/etc/vsftpd/user_list
userlist_deny=NO
اکنون می توانید فایل /etc/vsftpd/user_list را ویرایش کنید و لیست کاربران خود را اضافه کنید. (در هر خط یکی را فهرست کنید.) گزینه userlist_deny به شما امکان می دهد تا کاربرانی را که شامل شوند مشخص کنید. تنظیم آن روی بله، لیست را به کاربرانی که مسدود شده اند تغییر می دهد.
پس از اتمام ویرایش فایل پیکربندی، تغییرات خود را ذخیره کنید. برای اعمال تغییرات، سرویس vsftpd را مجددا راه اندازی کنید:
sudo systemctl restart vsftpd
مرحله 3: یک کاربر FTP جدید ایجاد کنید
برای ایجاد یک کاربر FTP جدید موارد زیر را وارد کنید:
sudo adduser testuser
sudo passwd testuser
سیستم باید از شما بخواهد که یک رمز عبور برای کاربر جدید وارد و تأیید کنید.
کاربر جدید را به لیست کاربران اضافه کنید:
echo “testuser” | sudo tee –a /etc/vsftpd/user_list
یک دایرکتوری برای کاربر جدید ایجاد کنید و مجوزها را تنظیم کنید:
sudo mkdir –p /home/testuser/ftp/upload
sudo chmod 550 /home/testuser/ftp
sudo chmod 750 /home/testuser/ftp/upload
sudo chown –R testuser: /home/testuser/ftp
با این کار، با یک فهرست ویژه برای آپلود یک دایرکتوری home/testuser برای کاربر جدید ایجاد میکنید. مجوزها را برای آپلودها فقط در پوشه /uploads تنظیم می کند.
اکنون می توانید با کاربری که ایجاد کرده اید وارد سرور FTP خود شوید:
ftp 192.168.01
این آدرس IP را با آدرسی از سیستم خود جایگزین کنید. با دستور ip addresses می توانید آدرس IP خود را در لینوکس پیدا کنید.
سیستم باید از شما یک نام کاربری بخواهد – هر نام کاربری که قبلا ایجاد کرده اید را وارد کنید. رمز عبور را تایپ کنید و سیستم باید شما را وارد کند.
مرحله 4: سرور FTP را تست کنید
برای آزمایش سرور FTP به صورت محلی، از دستور زیر استفاده کنید:
ftp localhost
برای تست از راه دور از دستور زیر استفاده کنید:
ftp your.ftp.server.com
توجه: در حالی که برخی از اقدامات امنیتی در این راهنما گنجانده شده است، اکیداً توصیه می شود قبل از اجرای یک سرور FTP در محیط فعالیت، با آخرین پروتکل های امنیتی آشنا شوید. این امر به ویژه در صورت ایجاد یک سرور FTP که برای اینترنت باز است مهم است – بسیاری از موارد نقض امنیتی از طریق پروتکل FTP منشا می گیرند.
تا اینجا گام به گام مراحل نصب و راه اندازی FTP روی centos را بیان کردیم. اکنون نوبت آن است که این مراحل را در سرور اوبونتو پیاده سازی کنیم.
آموزش نصب و راه اندازی ftp سرور در اوبونتو
ما در اینجا نحوه نصب یک سرور FTP در اوبونتو با vsftpd را بررسی می کنیم.
پیش نیازهای نصب FTP در اوبونتو
- برخورداری از دسترسی به یک حساب کاربری که دارای امتیازات sudo است.
- دسترسی به پنجره ترمینال/خط فرمان (Ctrl-Alt-T)
- مدیر بسته مناسب، به طور پیش فرض موجود است
مرحله 1: اولین کاری که باید انجام دهید، این است که بسته های سیستم را به روز کنید. این کار را با آپدیت کردن مخازن باید شروع کنید، که در قدم اول کامند زیر را باید در پنجره ترمینال نصب کنید.
sudo apt update
پس از وارد کردن این کد سیستم اقدام به روز رسانی مخازن می کند.
مرحله 2: سرور vsftpd را در اوبونتو نصب کنید
برای نصب vsftpd دستور را وارد کنید:
sudo apt install vsftpd
عکسی که مشاهده می کنید، نمونه ای از خروجی در اوبونتو است.
برای راه اندازی سرویس و فعال کردن آن در هنگام راه اندازی، دستورات زیر را اجرا کنید:
sudo systemctl start vsftpd
sudo systemctl enable vsftpd
مرحله 3: پشتیبان گیری از فایل های پیکربندی
قبل از هر گونه تغییر، مطمئن شوید که از فایل های پیکربندی خود نسخه پشتیبان تهیه کرده اید.
با وارد کردن موارد زیر یک نسخه پشتیبان از فایل تنظیمات پیش فرض ایجاد کنید:
sudo cp /etc/vsftpd.conf /etc/vsftpd.conf_default
مرحله 4: کاربر FTP ایجاد کنید.
یک کاربر FTP جدید با دستورات زیر ایجاد کنید:
sudo useradd -m testuser
sudo passwd testuser
سیستم باید از شما بخواهد که یک رمز عبور برای حساب کاربری آزمایشی جدید ایجاد کنید.
مرحله 5: فایروال را برای اجازه ترافیک FTP پیکربندی کنید.
اگر از UFW استاندارد با اوبونتو استفاده می کنید، به طور پیش فرض ترافیک FTP را مسدود می کند. برای باز کردن پورت های 20 و 21 برای ترافیک FTP دستورات زیر را وارد کنید:
sudo ufw allow 20/tcp
sudo ufw allow 21/tcp
توجه: اگر از فایروال دیگری استفاده میکنید، به دستورالعملها برای اجازه دسترسی به پورت 20 و پورت 21 مراجعه کنید. اینها پورتهای گوش دادن برای سرویس FTP هستند.
مرحله 6: به سرور اوبونتو FTP متصل شوید ( از دستور زیر می توانید برای این کار کمک بگیرید).
sudo ftp ubuntu-ftp
ubuntu-ftp را با نام سیستم خود (برگرفته از خط فرمان) جایگزین کنید.
با استفاده از حساب کاربری آزمایشی و رمز عبوری که به تازگی تنظیم کرده اید، وارد شوید. اکنون باید با موفقیت وارد سرور FTP خود شوید.
پیکربندی و ایمن سازی سرور اوبونتو vsftpd
در این قسمت به شما یاد می دهیم که چگونه سرور ابونتو را به کمک VSFTPD پیکربندی و ایمن سازی کنید.
اولین کار این است که دایرکتوری پیش فرض را تغییر دهید
به طور پیش فرض، سرور FTP از دایرکتوری /srv/ftp به عنوان دایرکتوری پیش فرض استفاده می کند. شما می توانید این مورد را با ایجاد یک دایرکتوری جدید و تغییر دایرکتوری اصلی کاربر FTP تغییر دهید.
برای تغییر فهرست اصلی FTP، موارد زیر را وارد کنید:
sudo mkdir /srv/ftp/new_location
sudo usermod -d /srv/ftp/new_location ftp
برای اعمال تغییرات، سرویس vsftpd را مجددا راه اندازی کنید:
sudo systemctl restart vsftpd.service
اکنون، میتوانید هر فایلی را که میخواهید از طریق FTP به اشتراک بگذارید، در پوشه /srv/ftp (اگر آن را به عنوان پیشفرض گذاشتهاید)، یا پوشه /srv/ftp/new_location/ (اگر آن را تغییر دادهاید) قرار دهید.
احراز هویت کاربران FTP
اگر می خواهید به کاربران احراز هویت شده اجازه دهید فایل ها را آپلود کنند، فایل vsftpd.conf را با وارد کردن موارد زیر ویرایش کنید:
sudo nano /etc/vsftpd.conf
ورودی با برچسب write_enable=NO را پیدا کنید و مقدار را به “YES” تغییر دهید.
فایل را ذخیره کنید، خارج شوید، سپس سرویس FTP را با دستور زیر راه اندازی مجدد کنید:
sudo systemctl restart vsftpd.service
این به کاربر اجازه می دهد تا تغییراتی را در فهرست اصلی خود ایجاد کند.
ایمن سازی FTP
اکسپلویت های متعددی از سرورهای FTP ناامن بهره می برند. در پاسخ، چندین گزینه پیکربندی در vsftpd.conf وجود دارد که می تواند به امنیت سرور FTP شما کمک کند.
محدود کردن دسترسی کاربر
یک روش محدود کردن کاربران به فهرست اصلی آنها است. vsftpd.conf را در یک ویرایشگر باز کنید و دستور زیر را حذف کنید:
chroot_local_user=YES
این یک نمونه از فایل در نانو است:
یک فایل لیست کاربر ایجاد کنید
برای ایجاد یک فایل لیست، /etc/vsftpd.chroot_list را ویرایش کنید و در هر خط یک کاربر اضافه کنید.
به سرور FTP خود دستور دهید تا با ویرایش vsftpd.conf، این لیست از کاربران را به فهرست های اصلی خود محدود کند:
chroot_local_user=YES
chroot_list_file=/etc/vsftpd.chroot_list
تصویر زیر ویرایش های انجام شده را نشان می دهد:
سرویس vsftpd را مجددا راه اندازی کنید:
sudo systemctl restart vsftpd.service
به طور پیش فرض، لیست کاربران مسدود شده از دسترسی FTP در /etc/ftpusers ذخیره می شود. برای افزودن کاربران مسدود شده، این فایل را ویرایش کنید و در هر خط یک کاربر اضافه کنید.
رمزگذاری ترافیک با FTPS
روش دیگر برای ایمن سازی سرور FTP رمزگذاری ترافیک است. این کار با استفاده از پروتکل انتقال فایل FTPS از طریق SSL (لایه سوکت ایمن) انجام می شود.
برای این کار، کاربران باید با یک حساب پوسته در سرور FTP راه اندازی شوند. این یک لایه رمزگذاری امن به ترافیک FTP شما اضافه می کند.
با ایجاد یک گواهی جدید با openssl شروع کنید. برای انجام این کار، دستور را اجرا کنید:
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem
- هنگامی که از شما خواسته شد اطلاعات مورد نیاز را ارائه دهید یا با فشار دادن Enter پیکربندی پیش فرض را حفظ کنید.
سپس فایل vsftpd.conf خود را در یک ویرایشگر باز کنید و خط ssl_enable=NO را به ssl_enable=YES تغییر دهید:
ssl_enable=YES
سپس، خطوط زیر را اضافه کنید:
rsa_cert_file=/etc/ssl/private/vsftpd.pem
rsa_private_key_file=/etc/ssl/private/vsftpd.pem
allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO
require_ssl_reuse=NO
ssl_ciphers=HIGH
pasv_min_port=40000
pasv_max_port=50000
- تغییرات را ذخیره کرده و از فایل خارج شوید.
- در نهایت، سرویس را مجددا راه اندازی کنید تا تغییرات اعمال شود:
sudo systemctl vsftpd.service
را مجددا راه اندازی کنید.
سخن آخر
در این مقاله به شما یاد دادیم که چگونه بتوانید نصب و راه اندازی ftp در سرور اوبونتو و centos را انجام دهید. همانطور که دیدید، این کار سخت نیست، اما کمی طولانی است و اندکی صبر می طلبد! اگر مراحلی که گفتیم را مو به مو انجام دادید، اما موفق نشدید، حتما در قسمت نظرات مطرح کنید تا در سریع ترین زمان پاسخ دهیم.
سوالات متداول:
FTP چیست؟
FTP مخفف عبارت File Transfer Protocol است که برای انتقال فایل بین به صورت آنلاین استفاده می شود.