FTP یا File Transfer Protocol، پروتکلی برای انتقال فایل از یک ماشین به ماشین دیگر. ابزار های زیادی مانند wu-ftpd و … برای پیاده سازی ftp در توزیع های لینوکسی وجود دارد اما پر استفاده ترین نرم افزار پیاده سازی ftp در توزیع لینوکسی بسته نرم افزاری vsftpd که مخفف Very Secure File Transfer Protocol Daemon است. در این مطلب می توانید اطلاعات بیشتری درباره آن و پارامتر های فایل پیکربندی آن یعنی فایل vsftpd.conf مطالعه کنید.برای نصب آن در توزیع های CentOS/RHLE و فدورا از دستور زیر استفاده کنید.
yum -y install vsftpd
هدف از این مطلب پیکربندی vsftpd عدم دسترسی به صورت Anonymous است و آنرا طوری تنظیم می کنیم که تنها کاربری خاص (به طور مثال falearn) بتواند به ftp دسترسی داشته باشد. چگونگی تنظیم vsftpd را به صورت Anonymous می توانید از اینجا به خوانید. توضیح تمامی پارامتر هایی که در ادامه می بینید در لینک فوق گفته شده است. برای شروع باید گروه و کاربری ایجاد کنیم که به عنوان Authenticated User عمل می کند.
groupadd ftpusers
mkdir /var/ftpfalearn
useradd -g ftpusers -d /var/ftpfalearn falearn
سپس فایل etc/vsftpd/vsftpd.conf/ را باز کنید.
vi etc/vsftpd/vsftpd.conf
و پارامتر های زیر را پیدا کنید و مقادیر آنها را به صورت زیر تغییر دهید. اعمال تغییرات یا به این صورت است که باید NO را به YES و یا بلعکس تغییر دهید و یا به این صورت سات که باید خط آن پارامتر را Uncomment کنید، یعنی علامت # را از ابتدای آن خط بردارید. توجه کنید که YES و NO بزرگ هستند. البته برخی پارامتر های زیر شاید از قبل با مقدار دلخواه ما باشیند و همچنین Uncomment نیز باشند. (مابقی پارامتر ها را نیز تغییر ندهید)
anonymous_enable=NO
local_enable=YES
ascii_upload_enable=YES
ascii_download_enable=YES
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
در مورد آخرین پارامتر بالا، نام و مسیر فایل پارامتر chroot_list_file دلخواه است اما من از خود مقداری که از قبل در فایل vsftpd.conf در CentOS/RHLE/Fedora آورده شده است استفاده می کنم. البته این فایل وجود ندارد و می بایست آنرا ایجاد کنیم.
touch /etc/vsftpd/chroot_list
و بقیه پارامتر ها
ftpd_banner=Welcome to Falearn.ir FTP service
ls_recurse_enable=YES
listen=YES
listen_ipv6=NO
use_localtime=YES
seccomp_sandbox=NO
پس از اعمال تغییرات در پارامتر های بالا، با دستور زیر فایل chroot_list را باز کنید و نام کاربری را که ایجاد کرده بودیم در آن وارد کنید.
vi /etc/vsftpd/chroot_list
در هر خط آن نام یک کاربر محلی (کاربری که بر روی ftp server) قرار می گیرد.
falearn
سپس در توزیع های CentOS/RHLE نسخه 5 و 6 و فدورا 15 به قبل دستور زیر را اجرا کنید.
service vsftpd start
chkconfig vsftpd on
در توزیع فدورا 16 به بعد دستور های زیر را اجرا کنید.
systemctl start vsftpd.service
systemctl enable vsftpd.service