حدود ۴۳ سال از عمر پروتکل FTP می گذرد. عموما تکنولوژی هایی با این طول عمر، یک تکنولوژی مرده به حساب می آیند. اما در کمال تعجت پروتکل FTP همچنان یکی از پر مصرف ترین پروتکل های اینترنتی است.
همچنین این پروتکل یکی تکنولوژی های بسیار محبوب برای مهاجم ها و هکر ها به حساب می آید و طی سال های اخیر ضعف هایی امنیتی در مقابل حملات Brute Force، Packet capture و …از خود به نمایش گذاشته است. خوشبختانه با معرفی IIS 8 و ویندوز سرور ۲۰۱۲، پیشرفت محسوسی در امنیت این پروتکل مشاهده شد. استفاده از احراز هویت (Authentication) در این سرویس، یکی از پیش فرض های امنیت این سرویس است. در ادامه، راه های دیگر برای ارتقا سطح امنیت این پروتکل معرفی می شود.
FTP Logon Attempt Restrictions
یکی از محبوب ترین و در عین حال پیش پا افتاده ترین انواع حمله، Dictionary Attack و یا حمله لغت نامه ای است. در این نوع از حمله، فرد مهاجم با استفاده از ابزار های خودکار و مجموعه ای از هزاران هزار لغت، سعی بر احراز هویت (Authenticate) و ورود (Login) غیر مجاز به سرور می کند.
در IIS 8 قابلیتی با نام FTP Logon Attempt Restrictions برای جلوگیری از این نوع حملات معرفی شده است. این قابلیت در IIS ورژن ۷ و ۷.۵ وجود نداشت. برای انجام تنظیمات این Feature در کنسول مدیریت IIS در قسمت FTP بر روی FTP Logon Attempt Restriction کلیک نمایید.
تنظیمات این ماژول بسیار ساده است. تیک گزینه enable FTP Logon Attempt Restrictions را فعال نموده و در قسمت maximum number of failed login attempts تعداد لاگین مورد نظر و در قمست Time period مدت زمانی که تعداد لاگین نا موفق در آن محاسبه می شود را وارد نمایید. به طور مثال در صورتی که کاربری ۴ لاگین نا موفق در ۳۰ ثانیه داشته باشد، آی پی کاربر لاک شده و دیگر امکان لاگین از طریق این آی پی را نخواهد داشت. (این قابلیت تنها بر روی ورود به سرویس FTP تاثیر گذار است و هیچ محدودیت دیگری برای آی پی کاربر ایجاد نخواهد کرد.)
FTP Over SSL
پروتکل انتقال فایل اساسا از ابتدا برای رمزنگاری (Encrypt) شدن طراحی نشده است. اما با استفاده از IIS ورژن ۷ و ۸ ، امکان Encrypt شدن ارتباطات FTP با استفاده از SSL فراهم شده است.
برای انجام تنظیمات FTPS و یا FTP Over SSL می توانید در کنسول مدیریت IIS هنگام اضافه کردن FTP Publishing به یک وبسایت، SSL را فعال نمایید. همچنین امکان Force کردن این پروتکل به تمامی Connection ها نیز وجود دارد. در ویندوز سرور ۲۰۱۲ یک گواهی نامه پیش فرض برای استفاده وجود دارد. با این حال شما امکان استفاده از Certificate خود را نیز دارید.
پس از انجام تنظیمات سرور، نیاز است در نرم افزار FTP Client خود نیز پروتکل مورد نظر را تغییر دهید. در تصویر زیر، بخش تنظیمات پروتکل نرم افزار Cute FTP نمایش داده شده است.
نکته: هنگام اتصال به سرور FTP برای اولین بار با استفاده از SSL از شما در مورد پذیرش این گواهی نامه سوال می شود که می بایست Accept را انتخاب نمایید.
FTP User Isolation
طراحی سرویس FTP با ارائه IIS 7 کاملا دگرگون شد. پس از رسوایی های بزرگ IIS 6 در ارائه سرویس FTP، این سرویس با زاویه دید اصلی امنیت مجدد از ایتدا طراحی شد و پس از ارائه آپدیت ۷.۵ و سپس ورژن ۸ ، نمره قبولی را از کارشناسان امنیت شبکه دریافت کرد. در IIS ورژن ۷، علاوه بر قابلیت جدید FTPS، قابلیت FTP User Isolation نیز ارائه شد.
در این قابلیت، امکان محدود کردن دسترسی کاربران، به مسیر های تعریف شده برای آنها وجود دارد به طوری که به فایل ها و مسیر های دیگر کاربران و یا حتی مسیر والد، دسترسی نداشته باشند.
قوانین FTP Authorization کار را برای شناسایی چندین یوزر برای دسترسی به سرور FTP آسان می کند. پس از ایجاد یک دایرکتوری مجازی با نام LocalUser و سپس انتخاب گزینه User name directory – disable global virtual directories در بخش Isolate users، فرایند User isolation به پایان می رسد. در نظر داشته باشید دایرکتوری مجازی LocalUser به مسیر روت سرویس FTP اشاره می کند. برای یوزر ها، مانند تصویر زیر به صورت جداگانه دایرکتوری مجازی ایجاد شده و به مسیر مربوط به هر کاربر Point می شود.
با فعالسازی FTP User Isolation حتی با فرض این که کاربری، مسیر دایرکتوری کاربری دیگر را حدس بزند، امکان دسترسی به آن و یا مسیر والد دایرکتوری خود را نخواهد داشت.
محدودیت در ورود از طریق FTP در IIS 8
در IIS 7.5 و ورژنهای قبلی ویژگی بنام احراز هویت برای جلوگیری از حملات brute-force و بازیابی کلمات عبور معرفی گردید. این ویژگی در IIS 8.0 بعنوان یک ویژگی امنیتی بدون نیاز به ایجاد توابع احراز هویت بطور مستقل ارائه گردیده است. در این قسمت مراحل مورد نیاز جهت فعالسازی محدودیت ورود FTP برای جلوگیری از حملات Brute-force را بررسی خواهیم کرد.
۱- از طریق اکانت administrator در ویندوز سرور لاگین نمایید.
۲- IIS Manager را باز نمایید.
۳- سرور خود را انتخاب نمایید و گزینه FTP Logon Attempt Restrictions را کلیک کنید.
۴- گزینه Enable FTP Logon Attempt Restrictions را انتخاب نمایید و تعداد لاگینهای اشتباه و محدوده زمانییکه دسترسی فرد مورد نظر به سایت خارج می شود را در این صفحه وارد نمایید.
۵- سپس برروی Apply کلیک نمایید.