در این مقاله قصد داریم نحوه ی راه اندازی و پیکربندی یک سرور FTP را در سیستم عامل های CnetOS 7 / 8 به کمک سرویس VSFTPD را آموزش دهیم.
FTP مخفف File Transfer Protocol می باشد، یک پروتکل انتقال دیتا می باشد که از دهه ها پیش یک روش استاندارد برای انتقال دیتا بین دستگاه های مختلف بوده است.
در این آموزش قصد نصب سرویس VSFTPD در سرور را داریم (VSFTPD مخفف “Very Secure FTP Daemon software package”) می باشد. که یک سرویس مناسب و کاربردی برای ایجاد یک سرور FTP می باشد.
پیش نیازها :
- ایجاد یک یوزر با دسترسی sudo
- پکیج منیجر yum که به صورت پیش فرض نصب می باشد.
- یک ویرایشگر متن به دلخواه که در این مقاله از ویرایشگر متن vi استفاده شده است.
قدم اول : راه اندازی FTP با نصب سرویس VSFTPD
- در ابتدا با استفاده از دستور زیر اقدام به آپدیت پکیج ها و ریپازیتوری های سیستم عامل میکنیم تا با آخرین آپدیت ها در حال کار باشیم.
sudo yum update
- برای نصب سرویس VSFTPD لازم است دستور زیر را در سرور اجرا نمایید:
sudo yum install vsftpd
- پس از نصب با دو دستور زیر ابتدا سرویس VSFTPD را اجرا میکنیم و با دستور دوم تنظیم میکنیم که سرویس در هنگام boot سیستم عامل به صورت خودکار اجرا گردد:
sudo systemctl start vsftpd
sudo systemctl enable vsftpd
- در قدم اخر نیاز است که پورت 21 که پورت پیش فرض سرویس FTP می باشد را در فایروال سرور خود allow نمایید که این مورد با توجه به نوع فایروال سرور متفاوت می باشد در آموزش فایروال سرور CSF می باشد برای allow کردن پورت 21 در این فایروال لازم است مسیر زیر را با ویرایشگر متن خود باز نمایید:
vi /etc/csf/csf.conf
در فایل کانفیگ csf در قسمت TCP_IN و TCP_OUT پورت 21 یا پورت دلخواه برای استفاده سرویس FTP را وارد نمایید و از فایل با کلید Esc خارج شده و با :wq اقدام به ذخیره ی تغییرات نمایید.
سپس با دستور زیر یک مرتبه فایروال سرور را ریستارت نمایید:
csf -r
قدم دوم : پیکربندی VSFTPD
تنظیمات و رفتار سرویس FTP در سرور شما در فایل کانفیگ موجود در مسیر زیر قابل تغییر می باشد:
/etc/vsftpd/vsftpd.conf
- قبل از انجام هر تغییری از فایل کانفیگ vsftpd یک بک آپ تهیه نمایید تا در صورت به وجود امدن مشکل، تنظیمات اولیه ی این فایل را در اختیار داشته باشیم. برای تهیه ی بک آپ از دستور زیر استفاده نمایید:
sudo cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.default
با این دستور یک نسخه بک آپ با نام vsftpd.conf.default در مسیر بالا ایجاد میگردد.
- در مرحله ی بعد اقدام به باز کردن و ویرایش فایل کانفیگ با دستور زیر نمایید:
sudo vi /etc/vsftpd/vsftpd.conf
- سرور FTP خود را تنظیم کنید تا دسترسی کاربران ناشناس غیرفعال شود و به کاربران تعریف شده اجازه ی دسترسی دهد. پارامترهای زیر را در فایل کانفیگ پیدا کنید و آنها را ویرایش کنید تا با موارد زیر مطابقت داشته باشد:
anonymous_enable=NO
local_enable=YES
این مرحله برای امنیت سرور بسیار حیاتی می باشد و دسترسی کاربر ناشناس دارای ریسک بالایی می باشد و نیاز هست حتما آنرا غیر فعال نمایید.
- در قدم بعد لازم است در فایل کانفیگ پارامتر زیر را از حالت کامنت خارج نماییم:
write_enable=YES
با خارج کردن خط بالا از حالت کامنت با پاک کردن # در فایل کانفیگ به یوزر این دسترسی داده می شود که امکان آپلود فایل در سرور را از طریق اتصال ftp داشته باشد.
- کاربران ftp لازم است تنها به home directory خودشان دسترسی داشته باشند و دسترسی آنها به سایر directory ها باید مسدود گردد که به این کار در اصطلاح jail یا chroot jail گفته می شود، برای انجام این کار دو پارامتر زیر را در فایل کانفیگ پیدا کرده و مقادیر آنرا چک نمایید تا همانند دو خط زیر باشد:
chroot_local_user=YES
allow_writeable_chroot=YES
- یکی از آپشن های vsftpd این می باشد که به شما اجازه میدهد تا بتوانید یک لیست کاربران تایید شده ایجاد نمایید. برای مدیریت کاربران از این طریق ، خط userlist_enable را در فایل کانفیگ پیدا کنید ، سپس به صورت زیر اقدام به ویرایش آن نمایید:
userlist_enable=YES
userlist_file=/etc/vsftpd/user_list
userlist_deny=NO
در حال حاضر با اعمال تغییرات بالا میتوانید لیست یوزر هایی که میتوانند به ftp دسترسی داشته باشند در فایل /etc/vsftpd/user_list وارد نمایید. با تغییر userlist_deny=yes فایل مورد نظر به کاربرانی که نمیتواند دسترسی داشته باشند تغییر پیدا میکند.
- در پایان نیاز هست یک مرتبه سرویس vsftpd را به منظور اعمال تغییرات انجام شده با دستور زیر ریست نمایید:
sudo systemctl restart vsftpd
قدم سوم : ساخت یک کاربر ftp جدید:
- به منظور ساخت یک اکانت ftp مراحل زیر را دنبال نمایید:
sudo adduser testuser
با دستور زیر برای یوزر ftp یک پسوورد دلخواه ست نمایید:
sudo passwd testuser
- در مرحله ی بعد لازم است یوزر جدید ساخته شده را به فایل user_list اضافه نماییم:
echo “testuser” | sudo tee –a /etc/vsftpd/user_list
- در قدم بعد لازم است مطابق دستورات زیر اقدام به ساخت دایرکتوری مربوط به یوز جدید و ایجاد دسترسی برای یوزر جدید به منظور دسترسی read/write یوزر در دایرکتوری مشخص نمایید:
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
در حال حاضر شما میتوانید با یوزر ساخته شده اقدام به اتصال به سرور FTP خود نمایید.
همچنین به منظور تست سرور ftp به صورت local و remoteمیتوانید از کامندهای زیر استفاده نمایید:
ftp localhost
ftp your.ftp.server.com
با تشکر از همراهی شما برای مشاهده ی مقاله های بیشتر میتوانید به بخش مقالات مراجعه بفرمایید.