vsftpd یا Very Secure FTP Daemon یک FTP Server برای سیستمهای خانواده یونیکس است. vsftpd تحت اجازهنامه GPL عرضه شده و از IPv6 و SSL پشتیبانی میکند. vsftpd بسیار امن و سریع بوده و توسط شرکتها و پروژههای بزرگی استفاده میشود.
نصب
vsftpd از طریق پورتهای FreeBSD قابل نصب است. کافی است دستورات زیر را اجرا کنید:
cd /usr/ports/ftp/vsftpd make install clean
منویی باز شده و از شما خواسته میشود تا برنامه را برای کامپایل کردن پیکربندی کنید. اگر میخواهید از قابلیت SSL استفاده کنید، گزینه VSFTPD_SSL را تیک بزنید.
اجرا
برای اینکه vsftpd در هنگام بوت شدن سیستم اجرا شود، خط زیر را به فایل /etc/rc.conf اضافه کنید:
vsftpd_enable=”YES”
vsftpd را میتوانید در دو حالت اجرا کنید: standalone یا تحت مدیریت inetd
در حالت standalone سرویس vsftpd به صورت کاملا مستقل اجرا شده و خودش به درخواست ها پاسخ میدهد. بدین ترتیب همیشه یک نسخه از vsftpd در حال اجرا بوده و بر روی پورت خاصی به درخواست ها گوش میدهد. اما شما میتوانید vsftpd را تحت کنترل و مدیریت inetd اجرا کنید. در این حالت vsftpd فقط موقعی اجرا میشود که کاربری قصد استفاده از سرویس را داشته باشد.
پیکربندی
فایل پیکربندی vsftpd در مسیر /usr/local/etc/vsftpd.conf قرار دارد. این فایل از قالب بسیار سادهای برخوردار است. توضیحات با استفاده از # درج میشوند. هر دایرکتیو قالبی به صورت زیر دارد:
option=value
دقت داشته باشید که در دو طرف = هیچ فاصلهای قرار نگرفته باشد.
این فایل را با استفاده از یک ویرایشگر دلخواه باز کنید:
vi /usr/local/etc/vsftpd.conf
این فایل دایرکتیوهای بسیار زیادی دارد که ما فقط مهمترین آنها را شرح میدهیم
anonymous_enable
این دایرکتیو تعیین میکند که آیا کاربران مهمان می توانند از سرویس استفاده کنند یا نه. اگر این گزینه فعال باشد، تمام افراد میتوانند از سرویس شما استفاده کنند. برای اینکار باید از نام کاربری anonymous یا ftp استفاده کنند.
local_enable=YES
این گزینه تعیین میکند که آیا کاربران محلی میتوانند از سرویس استفاده کنند یا نه. کاربران محلی کاربرانی هستند که یک حساب کاربری در سیستم داشته و نام آنها در فایل/etc/passwd وجود داشته باشد.
write_enable=YES
این خط مشخص میکند که آیا کاربران مجاز به نوشتن بر روی فایلها هستند یا نه.
listen
اگر این گزینه را فعال کنید، vsftpd در حالت standalone شروع به کار خواهد کرد. این یعنی vsftpd تحت مدیریت inetd اجرا نخواهد شد و خودش به طور مستقل به درخواست ها پاسخ میدهد. اگر میخواهید vsftpd را تحت کنترل inetd به اجرا درآورید، این گزینه را با NO مقدار دهی کنید.
xferlog_file
این گزینه محل فایل log را مشخص میکند.
allow_anon_ssl
فقط زمانی اثر دارد که ssl_enable فعال باشد. اگر مقدار YES بگیرد کاربران مهمان (anonymous) می توانند از اتصال امن (ssl) استفاده کنند.
anon_mkdir_write_enable
اگر مقدار YES بگیرد، کاربران anonymous هم می توانند تحت شرایط خاصی اقدام به ایجاد دایرکتوری کنند. برای این کار گزینه write_enable باید فعال باشد. و کابر ftp باید مجوز write در پوشه والد را داشته باشد.
anon_other_write_enable
اگر مقدار YES بگیرد، به کاربران مهمان اجازه انجام کارهای نوشتاری غیر از آپلود و ساخت دایرکتوری مثل پاک کردن و تغییر نام فایلها داده می شود. این کار معمولاً توصیه نمی شود ولی برای تکمیل امکانات گنجانده شده است.
anon_upload_enable
اگر مقدار YES بگیرد کاربران anonymous می توانند تحت شرایطی اقدام به آپلود فایل هایشان نمایند. برای این کار گزینه write_enable باید فعال باشد و کاربر ftp باید مجوز نوشتن write در مکان آپلود فایل ها باشد.
delete_failed_uploads
اگر فعال باشد، همه آپلودهای ناقص پاک خواهند شد.
ls_recurse_enable
اگر فعال باشد می توان از دستور ls -R برای لیست گرفتن بازگشتی استفاده کرد. این یک ریسک کوچک امنیتی است. چون اگر این دستور در جایی اجرا شود که خروجی زیادی داشته باشد، منابع به شدت درگیر می شوند.
listen_port
مشخص میکند که vsftpd باید بر روی کدام پورت به درخواست ها گوش دهد. فقط وقتی تاثیر دارد که vsftpd در حالت standalone اجرا شده باشد.
max_clients
اگر vsftpd در حالت standalone باشد، این گزینه بیشترین تعداد کلاینت هایی را مشخص می کند که می توانند همزمان وصل شوند. هر موقع تعداد کلاینت های موجود پر شد، کلاینت های اضافه پیغام خطا دریافت می کنند.
اجرا تحت مدیریت inetd
ابتدا فایل پیکربندی vsftpd را باز کرده و خط زیر را به آن اضافه کنید:
listen=NO
حالا فایل /etc/inetd را باز کرده و این خط را به آن اضافه کنید:
ftp stream tcp nowait root /usr/local/libexec/vsftpd vsftpd
سپس این دستور را اجرا کنید تا inetd فایل پیکربندیاش را بازخوانی کند:
# /etc/rc.d/inetd reload
برای اجرا در حالت standalone هم خط مقدار listen را به YES تغییر داده و دستور زیر را اجرا کنید:
/usr/local/etc/rc.d/vsftpd start
فایلهای مورد نظر خود را در مسیر /var/ftp کپی کنید تا کاربران بتوانند از آنها استفاده کنند.