۱۳۸۸/۰۵/۰۵

تنظيمات امنيتي SMTP Server متعلق به IIS 6.0 جهت قرارگيري بر روي اينترنت


فرض كنيد يك سرور را بر روي اينترنت قرار داده‌ايد و از SMTP Server متعلق به IIS قصد داريد جهت ارسال ايميل توسط برنامه‌هاي خود استفاده نمائيد. در اين حالت مواردي را بايد رعايت نمود تا اين سرور تبديل به سرور رايگان ارسال spam توسط "دشمنان" نشود.



1- پورت پيش فرض را عوض كنيد
پورت پيش فرض اتصال به SMTP Server مساوي 25 است. از آنجائيكه به سادگي در برنامه‌هاي خود مي‌توان اين پورت را نيز تنظيم نمود، بهتر است به عنوان اولين قدم، اين پورت را تغيير داد. يك شماره پورت دلخواه خالي را يافته و بجاي 25 قرار دهيد. براي اين منظور مسير زير را طي كنيد:
بر روي Default SMTP Virtual Server در كنسول IIS كليك راست كرده و گزينه خواص را انتخاب كنيد. در برگه General روي دكمه Advanced كليك كرده و در صفحه باز شده سطر مربوط به پورت 25 را يافته، بر روي دكمه Edit كليك نموده و آن‌را به عددي ديگر تغيير دهيد.



2- دسترسي عموم را به سرور قطع كنيد!
متاسفانه تنظيمات پيش فرض SMTP Server متعلق به IIS در جهت قطع دسترسي "دشمنان" كاملا نادرست بوده و بر مبناي ايده حداقل دسترسي صورت نگرفته‌ است. اگر سرور را به اين حال رها كنيد فقط "دشمنان" را خوشحال كرده‌ايد.
براي قطع دسترسي دشمنان سه مرحله بايد صورت گيرد:
الف) در برگه Access مربوط به تنظيمات SMTP server ، روي دكمه relay كليك كرده، ابتدا تيك مربوط به Allow all computers which successfully authenticated to relay‌ را برداريد (اين مورد در يك شبكه داخلي حائز اهميت مي‌شود و ساير كامپيوترها را منع مي‌كند). سپس در قسمت بالاي صفحه گزينه only the list below را انتخاب كرده و IP آن‌را مساوي 127.0.0.1 وارد كنيد (يعني فقط اين كامپيوتر مجاز است كه از اين سرويس جهت ارسال ايميل استفاده كند؛ نه دشمنان خارجي).



ب) مورد الف را درباره‌ي قسمت مرتبط با دكمه connections نيز تكرار كنيد. (پيش فرض آن تمام عالم است!)



ج) در همين برگه‌ي Access بر روي دكمه Authentication كليك كرده و فقط تيك مربوط به integrated windows authentication را قرار دهيد. (هميشه تحت ويندوز اين روش authentication يكي از امن‌ترين‌ها است. همچنين در حالت قرارگيري سرور بر روي اينترنت سخت گيرانه‌ترين حالت ممكن را در اينجا انتخاب كرده‌ايم.)



خوب، با اين تنظيم قسمت (ج) ديگر برنامه‌ها با روش متداول قابل به ارسال ايميل نخواهند بود. يك يوزر معمولي local را به كامپيوتر افزوده (با حداقل دسترسي) و پسورد آن‌را در حالت never expires قرار دهيد. از اين يوزر ويندوزي جهت برقراري امكان اتصال به ميل سرور محلي در برنامه‌هاي خود استفاده خواهيم كرد (فرض بر اين است كه برنامه‌اي هم كه قرار است ايميل ارسال كند بر روي همان كامپيوتر سرور قرار دارد).

پس از اعمال اين تنظيمات بر روي دكمه apply كليك كنيد، تا تنظيمات اعمال شوند. يكبار نيز ميل سرور را استاپ و استارت كنيد.

3- تنظيمات ويژه برنامه‌ها براي ارسال ايميل:
در اين حالت برنامه‌هاي دات نت شما نياز به چهار تنظيم اضافه‌تر پيش از فراخواني تابع Send دارند:

MailMessage message = new MailMessage("from@site.com", strTo, subject, body)
{
IsBodyHtml = true,
BodyEncoding = Encoding.UTF8
};

SmtpClient client = new SmtpClient("127.0.0.1",portNumber);//portNumber is new
client.UseDefaultCredentials = false; //new
client.DeliveryMethod = SmtpDeliveryMethod.Network; //new
client.Credentials = new NetworkCredential("mail_user", "pass"); //new
client.Send(message);

همانطور كه ملاحظه مي‌كنيد بايد شماره پورت جديد را معرفي نمود، همچنين روش authentication و معرفي مشخصات يوزر ويندوزي كه اضافه كرديم را نيز نبايد فراموش كرد.

4- تمامي رخ‌دادهاي ميل سرور را ثبت كنيد.
براي اين منظور در برگه general ، تيك مربوط به enable logging را فعال كنيد. سپس بر روي دكمه خواص كنار آن كليك كرده و در صفحه باز شده به برگه extended properties مراجعه نموده و تمامي موارد را تيك بزنيد. به ازاي هر يك روز فعاليت سرور، يك فايل متني در مسير C:\WINDOWS\System32\LogFiles تشكيل خواهد شد.


سؤال چگونه تشخيص دهم كه ميل سرور من هك شده است يا خير؟!
اگر موارد فوق را رعايت نكنيد، در قسمت current sessions كنسول IIS مي‌توانيد "دشمنان" را مشاهده كنيد! همچنين مصرف CPU پروسه inetinfo.exe عملكرد سرور را مختل كرده، بعلاوه در مسير C:\Inetpub\mailroot\Queue احتمالا چند هزار ايميل درصف قرار گرفته شده براي ارسال را مي‌توانيد مشاهده كنيد! (همينطور در مسير C:\Inetpub\mailroot\Badmail نيز اين تعرض قابل مشاهده است)
اگر اين موارد را مشاهده كرديد، ابتدا سرور را استاپ كنيد، سپس محتويات پوشه‌هاي ياد شده را تخليه كرده و از مرحله يك فوق شروع به اعمال تنظيمات نمائيد.