نصب و پیکربندی vsftp در CentOS/RHLE/Fedora

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

useradd -g ftpusers -d /var/ftpfalearn falearn

با اجرای دستور های بالا یک گروه و کاربری که مالک دایرکتوری var/ftpfalearn/ هستند ایجاد می شود. در واقع این دایرکتوری به عنوان دایرکتوری خانگی کاربر است. سپس فایل 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