سرویس FTP یا File Transfer Protocol از راه های استاندارد و قدیمی برای انتقال اطلاعات بین دو سیستم است که این دو سیستم می توانند سرور با سرور یا سرور با کامپیوتر کاربر باشد که بدون احراز هویت اشخاص صورت می پذیرد که همین مورد از دلایل ایمن نبودن انتقال فایل ها با FTP به صورت پیش فرض است.
نکته: راه اندازی سرویس FTP همانند سرویس های دیگر نیاز به اجرای دستورات لینوکسی متعددی دارد
نصب سرویس FTP روی CentOS
نصب VSFTPD
در ابتدا با استفاده از دستور زیر اقدام به آپدیت پکیج ها و ریپازیتوری های سیستم عامل میکنیم تا با آخرین آپدیت ها در حال کار باشیم:
sudo yum update
برای نصب سرویس VSFTPD لازم است دستورات زیر را در سرور اجرا نمایید:
sudo yum install -y vsftpd
س از نصب با دو دستور زیر ابتدا سرویس VSFTPD را اجرا میکنیم و با دستور دوم تنظیم میکنیم که سرویس در هنگام boot سیستم عامل به صورت خودکار اجرا گردد:
sudo systemctl start vsftpd
sudo systemctl enable vsftpd
نکته: برای اجرای سرویس در سطح چند کاربره دستور زیر را وارد کنید
chkconfig vsftpd on
حالا نیاز است که پورت 21 که پورت پیش فرض سرویس FTP می باشد را در فایروال سرور خود allow نمایید که این مورد با توجه به نوع فایروال سرور متفاوت می باشد در آموزش فایروال سرور CSF می باشد برای allow کردن پورت 21 در این فایروال لازم است مسیر زیر را با ویرایشگر متن خود باز نمایید:
همچنین بخوانید: آموزش تغییر پورت SSH در CentOS
vi /etc/csf/csf.conf
در فایل کانفیگ csf در قسمت TCP_IN و TCP_OUT پورت 21 یا پورت دلخواه برای استفاده سرویس FTP را وارد نمایید و از فایل با کلید Esc خارج شده و با :wq اقدام به ذخیره تغییرات نمایید.
سپس با دستور زیر یک مرتبه فایروال سرور را ریستارت نمایید:
csf -r
پیکربندی VSFTPD
قبل از انجام هر تغییری از فایل کانفیگ vsftpd یک بک آپ تهیه نمایید تا در صورت به وجود امدن مشکل، تنظیمات اولیه این فایل را در اختیار داشته باشیم. برای تهیه ی بک آپ از دستور زیر استفاده نمایید:
sudo cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/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 persianmizban
با دستور زیر برای یوزر FTP یک پسوورد دلخواه ست نمایید:
sudo passwd persianmizban
در مرحله ی بعد لازم است یوزر جدید ساخته شده را به فایل user_list اضافه نماییم:
echo “persianmizban” | sudo tee –a /etc/vsftpd/user_list
در قدم بعد لازم است مطابق دستورات زیر اقدام به ساخت دایرکتوری مربوط به یوزر جدید و ایجاد دسترسی برای یوزر جدید به منظور دسترسی Read/Write یوزر در دایرکتوری مشخص نمایید:
sudo mkdir –p /home/persianmizban/ftp/upload
sudo chmod 550 /home/persianmizban/ftp
chmod 750 /home/persianmizban/ftp/upload
sudo chown –R persianmizban: /home/persianmizban/ftp
در حال حاضر شما میتوانید با یوزر ساخته شده اقدام به اتصال به سرور FTP خود نمایید. همچنین به منظور تست سرور FTP به صورت Local و Remote میتوانید از کامند های زیر استفاده نمایید:
ftp localhost
ftp your.ftp.server.com