Mobin@Freedom

این بلاگ در زمینه ی شبکه،امنیت شبکه و برنامه نویسی فعالیت دارد و ضمن ارائه ی اطلاعات پاسخگوی سئوالات شما نیز خواهد بود

Mobin@Freedom

این بلاگ در زمینه ی شبکه،امنیت شبکه و برنامه نویسی فعالیت دارد و ضمن ارائه ی اطلاعات پاسخگوی سئوالات شما نیز خواهد بود

مصدق زمـــانه

 از سالها پیش در کتابهای دوران مدرسه میخواندیم دکتر مصدق یکی از دو عامل اصلی در ملی شدن صنعت نفت است.

دکتر مصدق

 چند سال دیگر نام دکتر لاریجانی هم نقش برجسته ای در کتابهای آموزشی تاریخ خواهد بود.

دکتر لاریجانی

 

بلاک کردن ترافیک ICMP و جلوگیری از Ping شدن

سلام
 امروز هستم در خدمتتون با آموزش Block کردن بسته های ICMP روی سرور که در نهایت باعث جلوگیری از Ping شدن خود سرور و کلاینت هایی که به سرور متصل هستند میشه.خوب ممکن هست این سئوال براتون مطرح بشه که این کار چه سودی داره ببینید همونطور که میدونید اولین گام برای نفوذ به شبکه شناسایی شبکه ی هدف هست.به عنوان مثال اگر فردی قصد نفوذ به شبکه شما رو داشته باشه اولین چیزی که نیاز داره range IP شبکه ی شما خواهد بود تا کامپیوترهای فعال رو پیدا کنه و نقاط آسیب پذیرشون رو مورد هدف قرار بده.
 خوب، range IP شبکه ی شما (مثلاً ISP) برای نفوذگر کاملاً مشخص هست چون range IP تمام شبکه هایی که با valid IP فعالیت دارند در مراکزی مثل "مرکز هماهنگی های RIPE" ثبت میشه و نفوذگر میتونه به راحتی بهشون دسترسی داشته باشه چون دسترسی به این اطلاعات برای عموم آزاد هست.بعد از بدست آوردن range IP نفوذگر بر روی یک چیز تمرکز میکنه و اون هم پیدا کردن کامپیوترهای فعال روی شبکه ی شما هست.برای اینکار برنامه های متعددی مثل NMAP نوشته شدن و این قابلیت رو دارن که با Ping Scan در عرض چند ثانیه با Ping کردن Range IP شبکه شما گزارش آدرسهای IP فعال بر روی شبکه رو به نفوذگر بـــــِـدن،نمونه ای از یک Scan که با همین نرم افزار انجام شده رو در زیر میبینید :

*.D:Tools map>nmap -sP 192.168.1

.Host 192.168.1.1 appears to be up
.Host AClient (192.168.1.2) appears to be up
Nmap finished: 256 IP addresses (2 hosts up) scanned in 8.360 seconds

 حالا به جواب سئوال رسیدیم،جلوگیری از Ping شدن شبکه میتونه راهی باشه برای کوتاه نگاه داشتن دست نفوذگر از پویش در شبکه.در ادامه نحوه ی جلوگیری از Ping شدن شبکه با تعریف یک Policy در IPSec رو با هم مرور میکنیم.بسم الله...
 ابتدا در Run عبارت SecPol.msc رو تایپ و Enter کنید.با انجام این عمل پنجره ای مشابه شکل زیر رو مشاهده خواهید کرد.

 خوب... دقت کردید من تو پست هام همش میگم "خوب"؟! چی بگم خوب؟!
 خوب! حالا قبل از اینکه کاری انجام بدیم باید بدونیم چیکار داریم میکنیم! هدف ما ایجاد یک Policy یا همون "سیاست" هست که بر طبق این سیاست تمام ترافیک ICMP روی شبکه Block بشه.برای اینکار باید دو چیز برای IPSec مشخص باشه،اولی پروتکل ICMP و دومی مفهوم Block هست.خوشبختانه IPSec به خودی خود بسته های ICMP رو تشخیص میده و تنها چیزی که نیاز به تعریفش داریم مفهوم Block هست.
 برای تعریف مفهوم Block به صورت زیر بر روی IP Security Policies on Local Machine راست کلیک و گزینه ی Manage IP filter lists and filter actions رو انتخاب کنید.

 حالا پنجره ای مقابل شما قرار گرفته که باید سربرگ دومش یعنی Manage Filter Actions رو انتخاب کنید.در این سربرگ بعد از حصول اطمینان از اینکه چک باکس Use AddWizard در پایین پنجره فعال هست بر روی دکمه ی Add کلیک کنید.با انجام این کار پنجره ی Filter Action Wizard باز میشه که در اینجا فقط گذرا گزینه هایی که در هر مرحله باید انتخاب کنید رو عنوان میکنم.

 1- در اولین مرحله که مرحله ی خوش آمد گویی! هست Next رو کلیک کنید.
 2- در مرحله ی بعد در قسمت مربوط به Name که بالا قرار داره بنویسید "Block" و در قسمت مربوط به Description عبارت "Block Access" رو تایپ کنید و Next رو بزنید.
 3- در مرحله ی بعد دکمه ی رادیویی Block رو انتخاب کنید و Next رو بزنید.
 4- در آخر هم بر روی Finish کلیک کنید.

 تا اینجای کار مفهوم Block مشخص شد،حالا باید بگید ICMP رو Block کن! این کار با تعریف یک Policy امکان پذیر هست بنابراین برای تعریف این Policy مراحل زیر رو دنبال می کنیم.
 دوباره در پنجره ی اصلی روی IP Security Policies on Local Machine راست کلیک کنید اما این بار گزینه ی اول یعنی Create IP Security Policy رو به صورت زیر انتخاب کنید.

  با انجام این عمل پنجره ی IP Security Policy Wizard باز میشه.مراحلی که در این Wizard باید انجام بدید رو هم در ادامه به صورت مرحله به مرحله و سریع به عرض میکنم خدمتتون.
 1- در مرحله ی اول که همون پنجره ی خوش آمد گویی هست و اول همه Wizard ها وجود داره دکمه ی Next رو انتخاب کنید.
 2- در مرحله ی بعد در قسمت Name عبارت "Block ICMP" و در قسمت Description عبارت "Preventing ICMP Echo Replies" رو تایپ کنید و Next رو بزنید.
 3- در مرحله ی بعد چک باکس Active the Default response rule رو غیر فعال کنید و Next رو کلیک کنید.
 4- در مرحله ی آخر چک باکس Edit Properties رو فعال نگه دارید تا بعد از کلیک روی دکمه ی Finish پنجره ی Properties مربوط به Policy باز بشه.روی Finish کلیک کنید!

 حالا میرسیم به آخرین بخش،در پنجره ای زیر که الان رو به روی شما قرار داره پس از حصول اطمینان از فعال بودن چک باکس Use Add Wizard روی دکمه ی Add کلیک کنید.
 

  پنجره ای که بعد از کلیک روی دکمه ی Add مقابل شما قرار میگیره آخرین Wizard ای هست که باید اطلاعات لازم رو بهش بدید.این Wizard رو هم مرحله به مرحله دنبال می کنیم.

 1- در مرحله ی اول روی دکمه ی Next کلیک کنید.
 2- در مرحله ی بعد هم بدون انجام تغییرات روی Next کلیک کنید.
 3- در مرحله ی سوم، اولین دکمه ی رادیویی که All Network Connections هست رو انتخاب کنید و روی Next کلیک کنید.
 4- در مرحله ی بعد هم نیاز به انجام تغییری نیست،روی Next کلیک کنید.با کلیک روی Next پنجره ای باز میشه که در اون Yes رو انتخاب کنید.
 5- در این مرحله دکمه ی رادیویی All ICMP Traffic رو انتخاب کنید و Next رو بزنید.
 6- در مرحله بعد دکمه ی رادیویی Block رو انتخاب کنید و روی Next کلیک کنید.
 7- در مرحله ی آخر هم دکمه ی Finish رو بزنید و تمام...

 اگر پنجره های اضافه رو ببندید و به پنجره ی اصلی توجه کنید میبینید که به صورت زیر یک Policy به نام Block ICMP به پنل راست صفحه اضافه شده.

 حالا در مرحله نهایی باید این Policy رو فعال کنیم.برای فعال کردن هر Policy باید به صورت زیر روی اون راست کلیک و گزینه ی Assign رو انتخاب کنید.


 بعد از انتخاب Assign در سطر مربوط به Block ICMP در ستون Policy Assigned کلمه ی Yes نوشته میشه بدین معنا که این Policy فعال هست.حالا اگر از روی هر کامپیوتری اقدام به Ping کردن کامپیوتر شما و یا کامپیوترهایی که از طریق کامپیوتر شما به شبکه متصل هستند بکنند تنها پاسخی که دریافت میکنند Request timed out هست.بدین معنا که بر روی IP ای که در حال Ping کردنش هستید کامپیوتری جهت پاسخگویی وجود نداره.
 حالا اگر دوباره مایل باشید ICMP رو فعال بکنید می تونید روی Policy ای که درست کردید راست کلیک کنید و گزینه ی Un-assign رو انتخاب کنید،به همین سادگی...

 آخیش...تموم شد! خسته شدم اینقدر تایپ کردم.امیدوارم استفاده کرده باشید از این مطلب.

 در بخش نظرات پست قبل دوستی دو تا سئوال مطرح کرده بودند که در پایان در حد سوادم پاسخ ایشون رو مینویسم.

 پرسش
 "من چون توی دانشگاه ترم ۱ بهمون زبان سی رو درس دادن و الان دارن سی شارپ رو درس می دن و فکر کنم زبان خیلی عالی هستش. من خودم پاسکال و کیو بیسیک رو از قبل بلد بودم. به نظر شما زبان بعدی که باید بخونم چیه؟ یعنی چی رو انتخاب کنم؟ "
 پاسخ
  اینکه چه زبان برنامه نویسی ای رو دنبال کنید برمیگرده به هدفتون.اگر هدف شما از دنبال کردن برنامه نویسی نوشتن برنامه های تجاری مثل حسابداری،انبارداری و ... باشه زبانهایی مثل VB و Delphi رو به صورت حرفه ای دنبال کنید.اگر مثل من به دنبال لذت بردن از برنامه نویسی با نوشتن برنامه های تحت شبکه باشید C حرف نداره.اگر مایل هستید برنامه هایی مثل برنامه ی مدیریت شبکه بنویسید Visual C میتونه انتخاب خوبی باشه و ...
  همونطور که گفتم این بستگی به هدفتون داره،من تمام زبان های برنامه نویسی رو کار نکردم اما بین زبان های Visual Basic ، C ، C++ ، Visual C++ ، Assembly که کار کردم ++Visual C رو برای نوشتن برنامه های کاربردی از همه قدرتمندتر دیدم.

پرسش
 "سی پلاس پلاس اصولا تفاوت ماهوی با سی داره یا نه؟ "
پاسخ
 زمان کمی نیست که C کار میکنم اما الان که کم و بیش با ++C آشنا شدم میبینم این زبان حرف های زیادی برای گفتن داره.++C تفاوت های بسیاری با C داره و خیلی گسترده تر از C هست.C یک زبان تابع گرا هست اما ++C یک زبان شیء گرا که میتونید در اون از کلاسها استفاده کنید.++C بر خلاف C که توابع محدودی داره دارای امکانات بسیار فوق العاده ای هست که نوشتن یک برنامه رو برای شما بسیار ساده میکنه.در کل C رو میشه پایه ای فرض کرد برای ++C بطوریکه بسیاری از اصول برنامه نویسی در هر دو یکسان هست اما ++C اونقدر پیشرفت داشته که تقریباً با C غیرقابل مقایسه هست.


 با آرزوی موفقیت  وسربلندی برای جامعه ی ایرانی در سراسر دنیا...


 

طراحی یک مرورگر وب ساده

سلام
 حال همگی خوبه؟ خدا رو شکر...با عرض پوزش بابت اینکه آپدیت یه خورده دیر شد،این چند رو کلی کار پیش اومد.
 در خدمت شما هستم با یک مطلب برنامه نویسی در سطح متوسط.چیزی که امروز میخوایم یاد بگیریم طراحی یک Web Browser ساده با Visual C هست که اگر حتی یه خورده هم با Visual C آشنا باشید میتونید با دنبال کردن توضیحات یک مرورگر وب ساده رو با کنترل Web Browser طراحی کنید.
 خوب،اگر Visual Studio 6.0 رو نصب دارید که چه بهتر،اگر ندارید نصب کنید و Microsoft Visual C++ 6.0 رو باز کنید.برای طراحی یک Web Browser احتیاج به استفاده از MFC داریم،بنابراین از منوی File گزینه ی New رو انتخاب کرده و در پنجره ی باز شده از سربرگ Projects گزینه ی MFC AppWizard رو انتخاب کنید.حالا نام پروژه رو WebBrowser یا هر چیزی که دوست دارید بدید و Ok کنید.
 الان پنجره ای مقابل شما هست که از شما میپرسه برنامه ای که دارید طراحی می کنید چطوریاست؟! شما Dialog based رو انتخاب کنید و Next رو کلیک کنید.در مرحله ی بعد هم Finish رو کلیک کنید و در آخر Ok رو بزنید تا محیط کار در اختیار شما قرار بگیره.
 حالا اولین کاری که میکنید این هست که Label و Botton ها رو پاک کنید.بعد از این کار ، به صورت زیر یک کنترل Web Browser رو روی فرم قرار بدید.
 1- روی فرم راست کلیک کنید و Insert ActiveX Control رو انتخاب کنید.
 2- از لیست ظاهر شده Microsoft Web Browser رو انتخاب و روی Ok کلیک کنید.

 الان روی فرم شما باید یک کنترل Web Browser قرار داشته باشه که میتونید اندازش رو تغییر بدید.حالا در مرحله ی بعدی نیاز به یک Edit Box و Button دارید تا آدرس سایت رو توی Edit Box تایپ کنید و با کلیک رو Button از سایت بازدید کنید پس اول یک Edit Box روی فرم قرار داده و نامش رو بدید IDC_URL و بعد از اضافه کردن یک Button در کنارش نام اون رو IDC_BROWSE بگذارید.بعد از این عمل برای اینکه به مقداری که در Edit Box نوشته میشه و همچنین کنترل Web Browser دسترسی داشته باشید باید دو تا متغیر برای این دو کنترل تعریف کنید.
 برای نسبت دادن یک متغیر به  کنترل Web Browser روی فرم راست کلیک و ClassWizard رو انتخاب کنید.حالا در سربرگ Member Variables کنترل IDC_EXPLORER1 رو انتخاب کنید و Add Variable رو بزنید.اول دو تا پنجره باز میشه که اول رو اوکی بزنید،دومی رو هم برای اضافه شدن کلاس مورد نیاز برای استفاده از کنترل Web Browser اوکی کنید.در مرحله سوم پنجره ای نمایش داده میشه که نام متغیر در اون خواسته میشه،من دادم m_browser شما هم میتونید همین یا هر نامی که دوست دارید رو بدید.بعد از این کنترل نوبت به کنترل Edit Box میرسه،از طریق همون ClassWizard این دفعه از سربرگ Member Variables کنترل IDC_URL رو انتخاب و مثل کنترل قبل یه اسم بهش بدید.من نامش رو m_URL دادم.
 حالا رسیدیم به مرحله ی آخر که دو خط کد نویسی هست،خداییش نوشتن برنامه به این راحتی حال آدم رو به هم میزنه! ولی چه کنم که بعد از سالیان دراز به این نتیجه رسیدم که همین چیزاست که واسه آدم پول میشه نه برنامه های نفوذ به شبکه ی Command Line که نوشتنشون گاه هفته ها طول میکشه،بگذیم...
 برای راحتی کار روی دکمه ی Browse دوبار کلیک کنید و در پنجره باز شدن Ok رو بزنید.در این قسمت کل کدی که قرار هست بنویسید چیزی هست که در زیر براتون نوشتم.

;(UpdateData(TRUE
;(m_browser.Navigate(m_URL,NULL,NULL,NULL,NULL

 تابع UpdateData با پارامتر TRUE برای این هست که مقدار موجود در Edit Box به متغیرش که m_URL باشه نسبت داده بشه و بتونیم ازش در متد Navigate استفاده کنیم.متد Navigate هم که مشخصه،آدرس رو با استفاده از متغییر m_URL میگیره و در کنترل Web Browser نمایش میده.

 امیدوارم این مطلب مورد پسندتون واقع شده باشه،از این مطالب زیاد هست و زیاد هم میشه نوشت اما بیشتر دنبال چیزایی هستم که بیشتر کاربردی و تخصصی تر باشه.
 تا بعد...

آهنگ QUE HICISTE

سلام
 برنامه نویسی و شبکه کار نداریم که بد حال باشه،پس حال همگی خوبه...
 گفتم آپدیت امشب رو یه موزیک مهمون من باشید.آهنگی که براتون upload کردم از آلبوم جدید خانم لوپز هست و می تونید از لینک زیر دریافتش کنید.
 دریافت فایل
 حجم فایل : 2MB
 یک خورده مشغول انجام تحقیق هایی که هفته آینده باید تحویلشون بدم هستم،انشاالله فردا پس فردا سرم خلوت شد یک مطلب برنامه نویسی پست میکنم تا دوستان علاقه مند به برنامه نویسی گله مند نشن که چرا اینقدر مطالب شبکه پست می کنی!

 تا فردا...

راه اندازی یک وب سرور

سلام
 حال شما خوبه؟
 داشتم فکر میکردم امروز چی بنویسم اما چیزی به ذهنم نمی رسید تا اینکه اومدم دیدم یکی از دوستان چند تا سئوال پرسیدن.باور کنید اگر در بخش نظرات مطالب و اطلاعاتی رو که در زمینه ی شبکه هست و علاقه دارید در موردشون بیشتر بدونید رو بفرمایید خیلی خوشحال میشم تا جایی که سواد و وقت اجازه میده در خدمتتون باشم.

 سئوال اول :
  " ۱.من می خوام یک سرور خانگی بزنم.(برای سه سایت شخصی) طبعا اینترنت مورد نیاز من فراتر از ۶۴ باید باشد (برای کشوری مثل ایران که حد اکثر سرعت آن ۵۶ است) برا همین یک ای دی اس ال می گیرم (۲۵۶/۲۵۶) آیا بهتر از  ای دی اس ال هست و چه اشتراکات اینترنتی دیگری می شود گرفت(با ذکر قیمت لطفا)؟ "
 پاسخ :
  اگر ترافیک سایت ها رو هم می گفتید خیلی خوب میشد.پهنای باند مورد نیاز برای هاست کردن سه تا سایت بستگی به ترافیک اونها داره،به صورت ساده یعنی چند نفر به صورت همزمان از این سه تا سایت بازدید میکنند؟
  اگر فرض کنیم حداکثر 16 بازدید کننده به طور همزمان درخواستشون برای دریافت صفحات وب به سمت سرور شما بفرستند با در نظر گرفتن 4 کیلوبایت پهنای باند برای هر بازدید کننده یک سرویس ADSL با 512 کیلوبیت Send جواب کار شما رو میده.16 کاربر به صورت همزمان یعنی از این سه سایت هر کدوم به طور متوسط 5 بازدید کننده داشته باشند و به طور همزمان درخواست دریافت صفحات وب رو به سمت سرور شما بفرستند.
  سرویس ADSL با 512 کیلوبیت ارسال و 1024 کیلوبیت دریافت بدون محدودیت ماهیانه 400 هزار تومن هزینش هست و سخت میدونم بتونید این سرویس رو بگیرید.کلاً سرویسهای بالای 128 کیلوبیت به کاربران خانگی ارائه نمیشه،مگر اینکه با سرویس دهنده به توافق برسید یا از طرف یک شرکت درخواست بدید که در این صورت میتونید از سرویسهای با سرعت بالاتر استفاده کنید،حتی بالاتر از 512/1024.در صورتی که مودم شما ADSL2 پلاس باشید میتونید تا 8 مگابیت دریافت و 1 مگابیت ارسال هم داشته باشد.اگر این پهنای باند کافی نیست ساده ترین راه پیش رو و ممکن استفاده از سرویس های Wireless هست که حداکثر امکان انتقال 54 مگابیت داده رو در واحد ثانیه رو دارن.اگر مایل به استفاده از سرویس های وایرلس هستید در خرید تجهیزات دقت کنید.تجهیزات با استاندارد 802.11b حداکثر سرعت 11 مگابیت رو دارند اما استاندارد های 802.11a و 802.11g توانایی انتقال دادها تا حداکثر 54 مگابیت در ثانیه رو دارن.تجهیزات وایرلس یا به صورت امانی از طرف ISP به شما داده میشه و اگر اینطور نبود حداقل 150 هزار تومن باید هزینه خرید Access Point و آنتن وایرلس کنید.

  سئوال دوم :
  "   ۲.یک کامپیوتربرای سرور شدن(طبعا بدون نیاز به مانیتور و موس و...)چه قد واسم خرج ور میداره؟(چیزایی که لازم دارم:یک هارد۲۰ یک سی پی یو (سرعتش رو شما بگین) یک مادر بورد و یک کیس و رم (بازم سرعتش با شما))(ویندوز چی نصب کنم ؟طبعا سرور ۲۰۰۳) " 
  پاسخ :
   این مسئله هم بستگی به ترافیک سایت های هاست شده ، سیستم عامل سرور و برنامه ی نصب شده بر روی اون و قابلیت های سرور شما داره.منظور از قابلیت ها به عنوان مثال توانایی در اجرای فایلهای php یا asp هست که برای اجرا شدن نیاز به استفادهاز توانایی پردازش CPU دارند.برای کاری که شما قصد انجامش رو دارید یک CPU ی 2.4 گیگاهرتز Full Cache با یک گیگابایت RAM و هارد دیسک دور بالا مناسب هست.البته سخت افزار تخصص من نیست و نمیتونم بیشتر از این در این زمینه کمکتون کنم اما فکر نمیکنم برای هاست کردن کمتر 10 سایت با ترافیک متوسط به کامپیوتری با مشخصات خاص و بالاتر از این نیاز داشته باشید.در مورد قیمت هم باید بگم بین کامپیوتر های سرور و دسکتاپ اختلاف قیمت وجود داره،به عنوان مثال یک مادربورد برای سرور که Dual Processor باشه هزینه ی بیشتری رو برای شما داره بنابراین اول باید نوع کامپیوتری که میخواید تهیه کنید مشخص بشه.
   سیستم عامل هم میتونید از Windows 2000 Advanced Server یا هر سیستم عامل دیگه ای که امکان نصب وب سرور بر روی اون باشه استفاده کنید.

  سئوال سوم :
  "  ۳.سایت یا کتابی برای آموزش اینکه چگونه سرور کنیم یک کامپوتر را؟ "
  پاسخ :
   من تا به حال چنین کتاب یا سایتی ندیدم اما میتونید آموزش های نصب وب سرور ( به عنوان مثال Apache ) و سایر چیزهایی که نیاز دارید رو به طور جداگانه به روی اینترنت پیدا کنید.

  در آخر فکر کنم همونطور که خودتون هم متوجه شدید این کار صرفه ی اقتصادی نداره و پشتیبانی و تامین امنیت سرور براتون مشکل ساز خواهد بود اما به هر حال اگر قصد انجام چنین کاری رو دارید سعی کنید سرویس اینترنتی که میگیرد به نسبت یک به هشت Send بالا و Receive پایین داشته باشد چون برای ارسال فایلهای هاست شده به سمت بازدید کنندگان نیاز به Send بالایی دارید.

 بهترین سرویس هم فکر میکنم سرویس ADSL با سرعت  128/128 که هزینه ی تقریبی 25 هزار تومان در ماه رو داره باشه.در این حالت در صورت در نظر گرفتن 4 کیلوبایت پهنای باند برای هر بازدید کننده میتونید به طور همزمان پاسخگوی 4 بازدید کننده باشید.کمتر پیش میاد وب سایتی با حداکثر 400 بازدید کننده در روز چهار درخواست به طور همزمان داشته باشه.

 سئوال شبکه ای و برنامه نویسی و نرم افزاری داشتید در حدتوان و امکاناتی که در اختیارم هست در خدمتتون هستم...

 به امید دیدار