ProFTPD یک سرور اف تی پی است (FTP Server). با امکان اختصاص چند دامنه و آی پی مختلف و مدیریت هر یک از سرور های مربوط به هر آی پی. همچنین امکان پیاده سازی TLS نیز بر روی این نرم افزار وجود دارد. با فعال سازی TLS عملا از FTPS بهره خواهید برد. و این باعث می شود که تبادل اطلاعات در FTP با امنیت بالاتری انجام شود. در Webmin ماژول هایی برای استفاده از برخی از ftp server ها وجود دارد که یکی از آنها ProFTPD است. کنترل پنل Plesk نیز به صورت پیش فرض از این نرم افزار برای مدیریت حساب های FTP خود بهره می برد.
در نظر داشته باشید که در سرور های لینوکس برای ایجاد کاربر FTP دو حالت وجود دارد. در نوع اول کاربر به صورت سیستمی و از طریق سرور لینوکس تعریف می شود. در نوع دوم برای ایجاد کاربر از پایگاه داده استفاده می شود و کاربران FTP به صورت مجازی تعریف می شوند. در این مطلب از روش اول برای تعریف کاربران استفاده خواهیم کرد که در بسیار از نرم افزار های مدیریت از این روش استفاده می شود.
برای راه اندازی یک سرور ftp در سرور های لینوکس بایستی به چند نکته مهم دقت کرد. امنیت اصلی ترین نکته ایست که باید در نظر گرفت.
برای نصب نرم افزار ProFTPD در Webmin از بخش Un-used Modules نرم افزار ProFTPD را انتخاب کرده و نصب نمایید.
در صورتی نیاز میتوانید با استفاده از دستور زیر در Ubuntu این نرم افزار را نصب نمایید.

پس از نصب, از طریق وب مین و از بخش Servers گزینه ی ProFTPD را انتخاب نمایید.

webmin-proftpd

تصویر فوق بخش مدیریت نرم افزار است. در ProFTPD چندین لایه تنظیمات داریم که به ترتیب اولویت به شرح زیر است :

  • global setting
  • virtual servers setting
  • anonymous FTP options
  • per-directory options
  • per command options

تنظیمات global بر روی کل سرور FTP اعمال می شود و زیر مجموعه آن Virtual Server ها هستند که هر یک میتوانند تنظیمات مشابه ای داشته باشند.

Virtual Server ها در واقع سرور FTP شما را میتوانند بر اساس تعداد آی پی موجود بر روی سرور تقسیم نمایند تا به عنوان FTP Server های مجزایی قابل تنظیم باشند. به صورت پیش فرض Default Server میتواند نیازهای ما به یک سرور FTP را برطرف نماید.

برای شروع تنظیمات به بخش Networking Options در Global Setting وارد شوید. گزینه ی Client connection message را تغییر دهید تا پیغام خوش آمد گویی ProFTPD که به صورت پیش فرض شامل نسخه و نوع سرور می باشد تغییر کند. از نظر امنیتی بهتر است اطلاعاتی نمایش داده نشود و می تواند فقط شامل یک پیغام ساده باشد.

وارد بخش Authentication شوید. در این مرحله دو روش برای مشخص کردن نحوه استفاده از FTP وجود دارد. روش اول این است که فقط به کاربرانی که به شل معتبری (مانند bin/bash, bin/sh و …) دسترسی دارند اجازه ورود بدهید که در این صورت در نظر داشته باشید اگر کاربری با این دسترسی از شل ایجاد کنید کاربر مورد نظر امکان دسترسی به سرور از طریق SSH را نیز خواهد داشت(در این صورت بر اساس دسترسی کاربر امکان مشاهده تمام دایرکتوری های سرور را خواهد داشت)  اما برای برطرف شدن این مشکل میتوانید زمانی که کاربر جدیدی ایجاد میکنید (از طریق دستورات لینوکس یا بخش مدیریت کاربران وب مین) دسترسی شل کاربر مورد نظر را بر روی bin/false  و یا usr/sbin/nologin (پیشنهادی) قرار دهید. با این تنظیم کاربر مورد نظر امکان ورود از طریق SSH و FTP را نخواهد داشت. اما برای فعال کردن دسترسی FTP برای کاربر میتوانید در فایل etc/shells خط جدیدی اضافه نمایید که بر اساس انتخاب قبلی میتواند bin/false و یا usr/sbin/nologin باشد. سپس سرور SSH را رستارت نمایید. افزودن این خط مشکلی برای سرور به وجود نخواهد آورد و همچنان کاربر مورد نظر امکان دسترسی از طریق SSH را نخواهد داشت. اما به دلیل اینکه برخی نرم افزار ها از این فایل برای تشخیص دسترسی های معتبر شل استفاده میکنند سرور FTP نیز کاربر مورد نظر را به عنوان کاربر معتبری دانسته و اجازه ورود به FTP را خواهد داد.

اما روش دوم این است که در بخش Authentication گزینه ی Only allow login by users with valid shell را بر روی No تنظیم نمایید. اما ریسک امنیتی این مورد بیشتر از روش اول است چرا که با این تنظیم هر کاربر معتبری (کاربر POP3 یا سرویس های دیگر) امکان ورود به FTP را خواهند داشت. گرچه دسترسی به پوشه خاص محدود می شود اما از نظر من روش اول روش مناسب تری است که در برخی منابع نیز همین روش پیشنهاد شده است.

به صورت پیش فرض ProFTPD بخش Anonymous را برای دسترسی غیر فعال نموده است. این بخش برای این است که بتوانید دسترسی FTP را به صورت عمومی آزاد بگذارید. البته قابلیت محدود کردن دستورات و مسیر نیز وجود دارد.

در بخش Authentication گزینه ی Allow login by root را بر روی No تنظیم نمایید.

برای اینکه بتوانید هر کاربر را به دایرکتوری تنظیم شده همان کاربر  (در هنگام تعریف کاربر home directory) محدود کنید و اجازه دسترسی به سایر پوشه ها ی سرور را به کاربران ندهید میتوانید از Global Setting به بخش Files and Directories وارد شده و در بخش Limit users to directories گزینه ی Set Home directory را فعال کرده و Unix groups را بر روی Everyone تنظیم نمایید. در همین بخش میتوانید با انتخاب گزینه ی Fake group in directory listings و تنظیم آن (Yes) و انتخاب گروه ftp, گروه مجازی تعریف نمایید تا هنگامی که کاربر از طریق FTP به لیست فایل های خود دست پیدا میکند عنوان گروه اصلی کاربر نمایش داده نشود و به جای گروه کاربر کلمه ftp نمایش داده شود.

پس از اعمال تنظیمات گزینه Apply Changes را انتخاب نمایید تا سرور اف تی پی تنظیمات اعمال شوند.

در نهایت برای ایجاد کاربر جدید به بخش System / Users and Groups مراجعه کرده و کاربر جدیدی ایجاد نمایید و دسترسی شل را بر روی usr/sbin/nologin تنظیم نمایید. برای اینکار میتوانید از Terminal لینوکس نیز استفاده نمایید.

در مطلب بعدی در رابطه با نحوه فعال کردن FTPS بر روی ProFTPD بحث خواهیم کرد. این روش با اینکه سرعت نسبتا پایین تری دارد اما امنیت بالاتری را برای ما فراهم میکند. و از ارسال و دریافت اطلاعات به صورت Clear Text جلو گیری می کند.

 

 

محمد باقر رستمی

برنامه نویسی رو دوست دارم و از کارم و بیشتر از اون از یادگرفتن لذت می برم. دوست دارم از این طریق برای مردم دنیا مفید باشم. فارغ از رنگ، نژاد، ملیت و جنسیت.

Latest posts by محمد باقر رستمی (see all)

دیدگاه

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

*

*