iptables – part 2

فوریه 9, 2008 با omid mohajerani

یادآوری :

تصمیم در مورد پکت با توجه به مقصد آن گرفته می شود .

  • اگر مقصد بسته ها خود فایروال باشد برای تصمیم گیری در مورد آن پکت از قوانین زنجیر INPUT استفاده می شود .
  • اگر مقصد پکت ها کارت شبکه دیگر فایروال باشد و شما ipforwarding را فعال کرده باشید . ( در واقع ماشینی که دسترسی به آن از طریق کارت شبکه دیگر فایروال میسر باشد) پکت با قوانین زنجیر Forward کنترل می شود .
  • اگر خود فایروال نیاز به ارسال پکت به شبکه خارج داشت آن پکت با توجه به قوانین زنجیر OUTPUT کنترل می شود.


در جداول زیر چندین پارامتر دستور iptables بیان شده است . ادامه پارامتر ها را در جداول بعدی با توجه به مثال ها کامل می کنیم .

-t < table >

برای مشخص کردن جدول ( Filter ، NAT ، MANGLE ) از این پارامتر استفاده می شود . جدول پیش فرض Filter است و در صورت استفاده نکردن از این پارامتر به طور خود کار در نظر گرفته می شود.

-j

مشخص می کند که چه تصمیم گیری در مورد پکت انجام شود . ( شامل DROP ، REJECT ، ACCEPT و … (

-A

A مخفف عبارت Append بوده و قانون مشخص شده در جلوی آن را به انتهای زنجیر اضافه می کند .

-F

F مخفف عبارت Flush بوده و تمامی قوانین موجود در جدول انتخاب شده را حذف می کند .

-L

تمامی قوانین موجود در زنجیر ها را لیست می کند.

-E

برای تغییر نام یک زنجیر به کار می رود .

-N

برای ایجاد یک زنجیر جدید توسط کاربر به کاربر می رود .

-X

از این پارامتر برای حذف زنجیر های تعریف شده توسط کاربر استفاده می شود .

-p

برای کنترل پروتوکل به عنوان مثال icmp, tcp, udp به کار می رود .

-s

برای تطبیق آدرس مبدا پکت استفاده می شود .

-d

برای تطبیق آدرس مقصد پکت استفاده می شود

-i

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

-o

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


مثال ۱:

iptables -A INPUT -s 192.168.0.55 -j ACCEPT

۱- قوانین به زنجیر input از جدول Filter ( جدول پیش فرض ( اضافه ) APPEND ) می شود .( در نتیجه مقصد پکت ها خود فایروال است .)

۲- قواننین فقط در مورد packet هایی اعمال می گردد که آدرس مبدا آنها 192.168.0.55 است .

۳ – سیاست اعمالی در مورد پکت هایی با ویژگی های بالا ACCEPT است .

در نتیجه :

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


مثال ۲ :

iptables -A INPUT -j DROP -i eth0 -s 192.168.0.45

۱ – قوانین به زنجیر input از جدول Filter ( جدول پیش فرض ( اضافه ) APPEND ) می شود .( در نتیجه مقصد پکت ها خود فایروال است .)

۲- قواننین فقط در مورد packet هایی اعمال می گردد که آدرس مبدا آنها 192.168.0.45 است .

۳- قوانین فقط در مورد پکت هایی اعمال می گردد که از کارت اترنت شماره صفر واردمی شوند .

۴ – سیاست اعمالی در مرود پکت هایی با شرایط بالا DROP است .

در نتیجه :

پکت های ورودی با آدرس مبدا 192.168.0.45 که ازکارت شبکه اترنت صفر وارد می شوند حذف می شوند .


مثال ۳ :

iptables -A INPUT -s 0/0 -i eth0 -d 192.168.1.1 -p TCP -j ACCEPT

۱- قوانین به زنجیر input از جدول Filter ( جدول پیش فرض ( اضافه ) APPEND ) می شود .( در نتیجه مقصد پکت ها خود فایروال است .)

۲ – قوانین بر روی پکت هایی با هر آدرس مبدا ) 0/0 به معنی هر آدرسی است ( اعمال می گردد.

۳ – قوانین فقط در مورد پکت هایی اعمال می گردد که از کارت اترنت شماره صفر واردمی شوند .

۴ – قوانین در مورد پکت هایی اعمال می گردد که آدرس مقصد آنها 192.168.1.1 باشد .

۵ – قوانین فقط در مورد پکت های tcp اعمال می گردد .

۶ – سیاست اعمالی در مورد پکت هایی با شرایط بالا accept است .

در نتیجه :

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


مثال ۴ :

iptables –L INPUT

لیستی از قوانین موجود در زنجیره INPUT را نمایش می دهد .


مثال ۵ :

iptables –D FORWARD 1

دستور بالا قانون شماره 1 را در زنجیر FORWARD حذف می کند .


مثال ۶ :

iptables –D INPUT -s 0/0 -i eth0 -d 192.168.1.1 -p TCP -j ACCEPT

روش دیگر حذف قانونی خاص نوشتن کامل دستور با استفاده از پارامتر –D است . قانونی را که در مثال 3 به زنجیر INPUT اعمال کردیم در این مثال حذف نمودیم .


مثال ۷ :

iptables -A INPUT -s www.myjunk.com -j DROP

تمامی پکت هایی که از آدرس مشخص شده به سوی فایروال می آیند حذف می شوند.( البته استفاده از ای پی بجای نام دامنه ارجحیت دارد .)


در iptables از علامت ! می توان برای معکوس کردن استفاده کرد .


مثال ۸ :

iptables -A INPUT -j ACCEPT ! -s 192.168.0.45

پکت ها از هر مبدا ای بجز 192.168.0.45 که به سوی فایروال می آیند پذیرفته می شوند .


مثال ۹ :

iptables –A INPUT –p ICMP –d 192.168.0.1 –j DROP

پکت های ICMP که مقصد آنها 192.168.0.1 است . ( کارت شبکه ای از فایروال با این آدرس آی پی ) DROP می شوند . در نتیجه اگر 192.168.0.1 را ping کنیم . جوابی دریافت نمی کنیم .


مثال ۱۰ :

iptables –A INPUT –p tcp –dport 21 –j DROP

با این دستور پورت سرویس دهنده ftp ( پورت شماره ۲۱ ( بسته می شود .


مثال ۱۱ :

iptables –p tcp –h

نیازی به حفظ کردن تمامی دستورات iptables نیست . help پرقدرت iptables همیشه به شما کمک می کند . فقط کافی است از پارامتر –h استفاده نمایید . به عنوان مثال دستور بالا پارامتر هایی را که می توان برای اعمال محدودیت بر روی پروتوکل tcp از آنها استفاده کرد نمایش می دهد .


در iptables می توان پکت ها را با توجه به پورت مشخص شده در هدر آنها هدایت کرد .

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

–sport

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

–dport


مثال ۱۲ :

iptables -A FORWARD -s 0/0 -i eth0 -d 192.168.1.58 -o eth1 -p TCP \

–sport 1024:65535 –dport 80 -j ACCEPT

1- قوانین به زنجیر FORWARD از جدول Filter اعمال می گردد.( در نتیجه مقصد پکت ها ماشینی است که از طریق کارت شبکه دیگر این فایروال قابل دستیابی است .)

2 – قوانین بر روی پکت هایی با هر آدرس مبدا ) 0/0 به معنی هر آدرسی است ( اعمال می گردد.

3 – قوانین فقط در مورد پکت هایی اعمال می گردد که از کارت اترنت شماره صفر واردمی شوند و از کارت شبکه شماره 1 خارج می شوند .

4 – قوانین در مورد پکت هایی اعمال می گردد که آدرس مبدا آنها 192.168.1.58 است .

5 – قوانین فقط در مورد پکت های tcp اعمال می گردد .

6 – پورت مبدا پکت ارسالی باید در رنجه 1024 تا 65535 باشد و پورت مقصد پکت باید 80 باشد .

7 – سیاست اعمالی در مورد پکت هایی با ویژگی های بالا ACCEPT است .

در نتیجه :

با استفاده از این قانون به فایروال اجازه داده می شود تا پکت های tcp ای را با هر آدرس مبدا ای که از کارت شبکه شماره 0 وارد می شوند و از کارت شبکه شماره 1 خارج می شوند و مقصد آنها 192.168.1.85 است را مسیر یابی کند . البته با این شرط که پورت مبدا پکت ارسالی در رنجه 1024 تا 65535 باشد و پکت تصمیم به برقراری ارتباط با پورت 80 ماشین هدف داشته باشد .


استفاده از آدرس mac برای اعمال محدودیت ها ی مختلف در شبکهکاربرد زیادی دارد . زیرا آدرسی یکتا است و تغییر آن به روش های ساده و توسط کاربران مبتدی به راحتی انجام نمی گیرد . ( بر خلاف آدرس ip که تغییر آن به راحتی در صورت داشتن دسترسی root امکان پذیر است .) فرمت آدرس دهی mac به صورت

XX:XX:XX:XX:XX:XX

است.

–mac-source 00:00:00:00:00:01

از این پارامتر برای تصمیم گیری در مورد پکت ها بر اساس آدرس مک مبدا ای است که آنرا ارسال کرده است استفاده می شود .


مثال ۱۳ :

iptables –A INPUT –mac-source 00:00:00:00:11:12 -j DROP

پکت های ارسالی از ماشینی با آدرس مک 00:00:00:00:11:12 DROPکه مقصد آنها فایروال است DROP می شوند .


ذخیره کردن تنظیمات iptables :

با صادر کردن دستور های iptables قوانین فایروال به صورت موقت در سیستم اجرا می شوند و تا راه اندازی مجدد سیستم یا سرویس iptables به کار خود ادامه می دهند . برای ذخیره این تنظیمات از دستور

Service iptables save استفاده می شود.

این قوانین درون دایرکتوری /etc/sysconfig/iptables در فایل هایی


lokkit:

برای راحتی کار با iptables بعد از آشنایی با syntax های این دستورات میتوان از نرم افزار های مخصوص پیکربندی iptables استفاده کرد . lokkit یکی از این نرم افزار ها است که به طورپیش در نصب کامل فدورا نصب می شود و کار پیکربندی فایروال را بسیار ساده می سازد . البته فایل های تولید شده توسط این نرم افزار می تواند مثال بسیار خوبی برای آشنایی شما با دستورات iptables باشد.

این برنامه نیز فایل های حاوی دستورات iptables را درون دایرکتوری /etc/sysconfig نگهداری می کند .


itables-save و iptables-restore:

برای ذخیره قوانین iptables در فایلی خاص می توان از اسکریپت iptables-save استفاده کرد.

به عنوان مثال دستور زیر قواننی در حال اجرای iptables را درون فایل firewall-config ذخیره می کند .iptables-save > firewall-config

برای بازخوانی این اطلاعات از یک فایل نیز می توان از دستور iptables-restore استفاده نمود.

به عنوان مثال دستور زیر تنضیمات iptables موجود در فایل firewall-config را به عنوان تنضیمات جاری سیستم تعیین می کند .

iptables-restore < firewall-config

البته از این اسکریپت ها می توان در نسخه هایی مانند debian که نمی توان از دستور service iptables save استفاده کرد نیز بهره برد.

( در نسخه debian برای اجرای این دستور ابتدا باید وارد دایرکتوری /sbin شوید .)


iptables – part1

فوریه 9, 2008 با omid mohajerani
Iptables چیست ؟

Iptables که توسط گروه netfilter نوشته شده است از کرنل 2.4 به بعد جایگزین ipchains شد . و در حال حاضر به طور پیش فرض بر روی اکثر نسخه های لینوکس نصب است . از دو بخش اصلی تشکیل شده است . 1 – ماژول کرنل 2 – یک اینترفیس برای ارتباط با کاربر

ماژول iptables میتواند پکت های ورودی و خروجی را مدیریت و فیلتر کند و از جمله فایروال های حالت گرا است .


دانلود و نصب iptables

همانطور که گفته شد به صورت پیش فرض روی نسخه های مختلف لینوکس نصب است ولی به هر حال آخرین نسخه iptables را می توانید از خود وبسایت netfilter دریافت کنید .اگر از نسخه فدورا استفاده می کنید می توانید به راحتی از rpm

rpm –ivh iptables-1.2.9-1.i386.rpm


اجرا و متوقف کردن iptables

برای اجرا ، متوقف کردن یا راه اندازی دوباره سرویس iptables به ترتیب از دستورات :

service iptables start

service iptables stop

service iptables restart

استفاده می شود . وبرای نمایش وضعیت این سرویس از دستور service iptables status استفاده می شود برای را ه اندازی خودکار این سرویس بعد از هر بار ریستارت کردن سیستم هم باید از دستور

chkconfig iptables on

استفاده کرد .


برای اینکه بتوانیم قوانین iptables را با توجه به نیاز ها بنویسیم باید با مسیر پردازش پکت های ورودی و خروجی و همچنین ساختار و اصطلاحات مربوط به iptables از جمله جدول ( table ) و زنجیر( Chain ) آشنا شویم .

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

این مراحل شمال عبور از جداول و زنجیر ) chain ) های آنها است .


زنجیر ) chain )

همانند ipchains در هسته های قدیمی ،iptables نیز از یک سری قوانین زنجیروار استفاده می کند . سه زنجیر پیش فرض ، INPUT ، OUTPUT وForward هستند . یک زنجیر فهرستی ساده از قوانین است و مشخص می کند با هر پکت چطور رفتار شود . به عنوان مثال پکت DROP یا ACCEPT شود .

اولین تصمیمی که کرنل در هنگام دریافت یک بسته می گیرد درباره مقصد بسته است . اگر مقصد بسته ها خود ماشین لینوکس ( که iptables برروی آن در حال اجرا است . ) باشد برای تصمیم گیری در مورد آن پکت از قوانین زنجیر INPUT استفاده می کند .

اگر مقصد پکت ها کارت شبکه دیگر ( کلا ماشینی که تحت حمایت فایروال iptables است .) باشد و شما ipforwarding را فعال کرده باشید . پکت با قوانین زنجیر Forward کنترل می شود .

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

پس توجه داشته باشید که زنجیر های INPUT و OUTPUT مربوط به خود ماشین لینوکس می شوند نه تمامی پکت های ورودی و خروجی


جدول

در iptables به طور پیش فرض سه جدول وجود دارد که زنجیر ها در محدوده این جدول قرار می گیرند .

در واقع می توان گفت پکت ها از این جداول عبور می کنند که هر یک از این جداول حاوی زنجیر ( فهرستی از دستورات ) هستند.

۱ - جدول mangle :

این جدول وظیفه تغییر بیت ها در هدر TCP از جمله بیت های کنترلی QOS را بر عهده دارد .

۲ - جدول filter :

وظیفه فیلتر کردن پکت ها را بر عهده دارد . و از سه زنجیر INPUT ، OUTPUT و FORWARD تشکیل شده است .

۳ - جدول NAT :

وظیفه آن ترجمه آدرس شبکه ) Network Address Translation ) است .

که شامل دو زنجیر اصلی PREROUTING و POSTROUTING است .

PREROUTING : وقتی استفاده می شود که نیاز به تغییر ) ترجمه ( آدرس مقصد پکت باشد .

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

POSTROUTING : وقتی استفاده می شود که نیاز به تغییر ) ترجمه ( آدرس مبدا پکت باشد .

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


جدول

وظیفه

زنجیر

توضیحات

Filter

فیلتر کردن پکت

Forward

فیلتر کردن پکت هایی که مقصد آنها سرورهایی است که از طریق کارت شبکه دیگر ( خروجی) قابل دسترس هستند..

Input

فیلتر کردن پکت هایی که مقصد آنها خود لینوکس ( فایروال )است .

Output

فیلتر پکت های ارسالی از خود لینوکس (فایروال)

Nat

ترجه آدرس شبکه پکت

PREROUTING

قبل از عمل مسیریابی انجام گرفته و عمل تبدیل آدرس آی پی مقصد ( برای سازگار بودن با جدول مسیریابی فایروال) را تسهیل می کند . که به این عمل DNAT می گویند .

POSTROUTING

بعد از عمل مسیریابی انجام می گیرد و بیان می کند که نیازی به تغییر آدرس آی پی مقصد پکت در زنجیرPREROUTING نیست . به این نوع NAT اصطلاحا SNAT می گویند.

OUTPUT

عمل NAT برای پکت های ایجاد شده توسط خود فایروال انجام می شود . ( به ندرت در شبکه های کوچک تا متوسط کاربرد دارد . )

Mangle

تغییر هدر TCP پکت

PREROUTING POSTROUTING OUTPUT INPUT FORWARD

قبل از عمل مسیریابی رخ داده و بیت های TCP در QOS را تغییر می دهد .

( به ندرت در شبکه های کوچک تا متوسط کاربرد دارد . )

 


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

تصمیم گیری بر اساس مقصد پکت صورت می گیرد

همانطور که قبلا بیان کردیم کرنل با توجه به مقصد پکت ها در مورد آن تصمیم گیری می کند .در این شکل یک پکت TCP از اینترنت برای برقراری ارتباط وارد کارت شبکه فایروال در شبکه الف می شود .

قبل از تصمیم گیری در مورد پکت ، ابتدا از سه مرحله زیر عبور می کند :

مرحله اول : پکت وارد جدول Mangle شده و قوانین این جدول (برای تغییر بیت QOS ) بر آن اعمال می گردد .

مرحله دوم : پکت وارد جدول NAT شده و در صورت نیاز قوانین زنجیر PREROUTING برای عمل DNAT برروی آن اعمال می گردد .

مرحله سوم : پکت با توجه به مقصر مسیر یابی می شود .

در مرحله مسیر یابی اگر آدرس مقصد کلاینتی در شبکه تحت پوشش فایروال باشد که از طریق کارت شبکه دیگر فایروال قابل دسترسی است . ( این عمل در صورت فعال بودن ip_forwarding امکان پذیر است .)

قوانین زنجیر های FORWARD و POSTROUTING بر روی آن اعمال می گردد .

ولی اگر مقصد پکت خود ماشین فایروال باشد ، پکت برای دسترسی به برنامه کاربردی یا اجرای سرویسی خاص در خود ماشین فایروال ابتدا با قوانین زنجیر INPUT از جدول Mangle کنترل شده و سپس فیلترینگ پکت با توجه به قوانین زنجیر INPUT از جدول Filter انجام می شود .

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

برای درك بهتر اين موضوع به شكل زير كه در آن زنجيرها و ارتباط آنها رسم شده است توجه كنيد:

 

iptables.jpg


تا حالا در مورد تصمیم گیری در مورد پکت ورودی یا خروجی بحث کردیم در این قسمت این تصمیم گیری ها را بررسی می کنیم . در مستندات مربوط به iptables از این تصمیم گیری ها به عنوان Target به معنای هدف نام برده شده است .

Target

توضیحات

رایج ترین پارامتر

ACCEPT

Iptables پردازش بیشتر را متوقف می کند .

پکت امکان دسترسی به برنامه کاربردی یا … را پیدا می کند .

DROP

Iptables پردازش بیشتر را متوقف می کند .

پکت بدون ارسال پیام برای فرستنده آن نابود می شود .

LOG

اطلاعات پکت برای ثبت به syslog ارسال می شود .

Iptables با اجرای دستور بعدی به کار خود ادامه می دهد.

چون نم یتوان عمل log کردن و DROP ا به طور همزمان انجام شود معمولا ترتیبی از قوانین در نظر گرفته می شود که قانون اول عمل log کردن و قانون دوم عمل DROP را انجام می دهد .

–log-prefix “string”

این پارامتر به iptables می گوید تمامی پیام های log را با پیشوندی که کاربر در “string” مشخص می کند ذخیره کند . معمولا برای ثبت علت DROP شدن پکت ها استفاده می شود .

REJECT

همانند DROP عمل می کند با این تفاوت که بعد از، از بین بردن پکت پیامی به فرستنده آن مبنی بر نابودی پکت ارسال می کند.

–reject-with qualifier

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

icmp-port-unreachable (default)

icmp-net-unreachable

icmp-host-unreachable

icmp-proto-unreachable

icmp-net-prohibited

icmp-host-prohibited

tcp-reset

echo-reply

DNAT

برای ترجمه آدرس شبکه مقصد به کار می رود . به عنوان مثال تغییر آدرس مقصد در پکت

–to-destination ipaddress

توسط این پارامتر می توان آدرس مقصد در پکت را تغییر داد.

SNAT

برای ترجمه آدرس شبکه مبدا به کار می رود. به عنوان مثال تغییر آی پی مبدا در پکت

–to-source

[-

][:
-
]

آدرس آی پی و پورت های مبدا که در SNAT استفاده می شود را مشخص می کند.

MASQUERADE

برای ترجمه آدرس شبکه مبدا به کار می رود .ولی آدرس آی پی مبدا همان آی پی در نظر گرفته می شود که توسط کارت شبکه فایروال از آن استفاده می شود.

[--to-ports
[-
]]

این پارامتر رنجی از پورت ها که می تواند جایگزین پورت های اولیه در پکت شود را بیان می کند .

 


 

خوب بعد از همه این تفاسیر که به نظر من از دانستن دستورات iptables به مراتب خیلی مهم تره نوبت به نحوه نوشتن و ساختار خود دستورات iptables است

پیکربندی‎ Juniper Netscreen 50 ‎در حالت‎ transparent‎

فوریه 8, 2008 با omid mohajerani

دستگاههای juniper Netscreen در سه حالت پیکربندی می شوند :

1- NAT

2 – Route

3- transparent

توضیحات این سه حالت را در پست قبلی به تفصیل دادم . ولی چون در این پست به طریقه پیکربندی این فایروال در حالت transparent می پردازم نحوه کار فایروال در این حالت و همچنین مزیت های این حالت را براتون توضیح میدم.

در حالت شفاف کارت شبکه های فایروال آدرس دهی آی پی نمی شوند و در نتیجه قابل شناسائی نبوده و عملیاتی نظیر پویش پورت نمی تواند علیه آنهاصورت پذیرد. در این حالت دستگاه مانند یک رابط بین اینترنت و شبکه قرار گرفته و ترافیک عبوری را با توجه به سیاست های تعریف شده permit یا Deny می کند . شاید بزرگترین مزیت پیکربندی فایروال در این حالت عدم نیاز به آدرس دهی آی پی و در نتیجه عدم نیاز به تغییر توپولوژی شبکه باشد . البته باید توجه داشت که در این حالت به علت تبدیل شدن دستگاه به یک دستگاه لایه 2 از قابلیت های آن در لایه 3 مانند مسیریابی یا NAT نمی توان بهره برد.

 

NetScreen00_P2

ZONE :

قبل از ادامه مطلب باید با مفهوم zone دردستگاه های Juniper آشنا شوید .اگر تا به حال DNS را برای یک شبکه چندین قسمتی پیکربندی کرده باشید خوب با این مفهوم آشنایی دارید . zone را یک منطقه مدیریتی تعریف می کنند که در اینجا کارت های شبکه فایروال روی آنها سوار می شوند . به عنوان مثال در فایروال های juniper با zone از قبل تعریف شده ای به نام Trust برخورد می کنید . که به طور پیش فرض کارت شبکه شماره 1 روی آن سوار شده . این zone ها هنگام تعریف policy ها یا جلوگیری از حملات کاربرد دارند . ممکنه است شما با توجه به نیاز شبکه بخواهید تعداد بیشتری کارت شبکه را روی یک zone سوار کنید . مثلا شبکه داخلی شما از دو سگمنت اداری و فروش تشکیل شده که در vlan های جدا هستند ولی تعریف سیاست های دسترسی ار بیرون شیکه به آنها یا بلعکس مثل هم باشد . در اینصورت می توانید 2 تا کارت شبکه را در trust zone قرار بدهید و سیاست های را به trust zone اعمال کنید .

Juniper NS50 سه zone پیش فرض در لایه دوم به نام های V1-Trust ، V1-Untrust و V1-DMZ دارد. و در لایه سوم نیز سه zone پیشفرض Trust ، Untrust و DMZ وجود دارد .

:Vlan Zone در NS50 یک zone دیگر به نام vlan zone نیز داریم که یک واسط مجازی به نام vlan1 را میزبانی میکند. این واسط مجازی در پیکربندی تونل های vpn و همچنین مدیریت فایروال کاربرد دارد. همانطور که گفتم در حالت شفاف کارت های شبکه ( واسط های فیزیکی ( آدرس دهی آی پی نمی شوند و در لایه 2 عمل می کنند . در این حالت برای مدیریت و پیکربندی فایروال باید از واسط مجازی Vlan1 استفاده کردکه قابلیت آدرس دهی آی پی را دارد .

روش های BroadCast :

وقتی که فایروال های netscreen در حالت شفاف در لایه دوم کار می کنند چگونه ترافیک را عبور می دهند ؟ قبل ازپاسخ به این سوال باید در نظر داشت که فایروال های Juniper در حالت پیش فرض با سیاست deny any any پیکربندی شده اند . یعنی بدون تعریف سیاست های مناسب اجازه ی عبور هیچ ترافیکی را نمی دهند . و اما جواب سوال :

.در حالت شفاف دستگاه از جدول Arp برای مسیر یابی استفاده می کند .

وقتی که سیاست های مناسب اعمال گشتند ( نحوه تعریف سیاست های مورد نیازرا در ادامه توضیح خواهم داد . ) امکان عبور ترافیک شبکه از جمله درخواست های ARP فراهم می گردد.و هنگامی که آدرس MAC معادل یک ip در جدول arp دستگاه موجود نباشد فایروال از دو طریق زیر اقدام به ساختن جدول arp می کند

1- :Flood Method

در این حالت اگر فایروال یک فریم اترنت دریافت کند که در جدول MAC موجود نیست پکت ها را برروی تمامی پورت ها ارسال می کند . و در صورت گرفتن جواب آنرا به جدول MAC اضافه می کند .

2- ARP/Traceroute :

در این حالت اگر فایروال آدرسی را دریافت کند که در جدول MAC آن موجود نباشد مراحل زیر را انجام می دهد :

الف – آدرس MAC موجود در پکت را ذخیره کرده و پکت را Drop می کند .

ب- فایروال ، دو پکت را تولید می کند یکی برای query ARP و دیگری traceroute

ARP query ) بجای آدرس MAC موجود در پکت دریافتی از آدرس MAC واسط مجازیVlan1 استفاده می کند .

پکت traceroute یک ICMP Echo است که مقدار ttl آن یک می باشد.)

ج – در مرحله سوم دو نوع پکت تولید شده به تمامی واسط های شبکه فایروال بجز واسطی که پکت از آن دریافت شده ارسال می شوند.

د – اگر جواب ARP query در سابنت یکسان با واسط مجازی موجود باشد .در جدول ARP فایروال ذخیره شده و پکت به مقصد هدایت می شود.

ه – اگر آدرس آی پی پکت در سابنت دیگری باشد پکت traceroute با آدرس آی پی و MAC روتر که پکت باید با آن هدایت شود بر می گردد.سپس فایروال MAC روتر را ثبت کرده و پکت را به سوی آن هدایت می کند .

روش ARP/Traceroute امن ترین روش شناسائی مسیر ها است زیرا برای شناسائی آدرس های MAC ، پکت ها را به تمامی واسط ها ارسال ) شاید بهتر باشد بگویم Flood ( نمی کند .نکته دیگر اینکه انتخاب قابلیت Traceroute اختیاری است . اگر تمامی آدرس ها در یک سابنت هستند نیازی به این قابلیت نیست . اگر چه در Juniper NS ها به صورت پیش فرض فعال است .

پیکربندیNS50 در حالت شفاف :

خوب رسیدیم به کار عملی – همانطور که گفتم تمامی دستگاه های Juniper Netscreen یک واسط مجازی به نام Vlan1 دارند .برای دیدن لیستی از تمامی واسط های فیزیکی یا مجازی دستگاه خود می توانید از دستور get int استفاده کنید .

 

getinte_Netscreen_P2

 

برای آدرس دهی آی پی به واسط های مجازی یا فیزیکی می توانید از دستور set int به صورت زیر استفاده کنید .

set int vlan1 ip 192.168.100.100/24

و اگر از محیط تحت وب استفاده می کنید در مسیر Network | Interfaces | Vlan1 تنظیمات را انجام دهید .

برخی گزینه های خاص که مربوط به واسط مجازی vlan1 است در زیر آمده است :

Broadcast : همان طور که توضیح دادم با توجه به نیاز های شبکه می توانید ARP/Traceroute یا Flood را انتخاب کنید . اگر پیکربندی را با telnet انجام می دهید از دستورات زیر استفاده کنید :

set int vlan1 broadcast arp

unset int vlan1 broadcast arp traceroute

set int vlan1 broadcast flood

save

Bypass Non-IP packets : که شامل سه انتخاب زیر است :

1- All : که اجازه عبور هر نوع ترافیک از جمله IPX را می دهد .

2 – Broadcast/Multicast: فقط اجازه عبور ترافیک IP را می دهد .

3 –off : این قابلیت ها را غیر فعال می کند .

در حالت پیش فرض Broadcast/Multicast انتخاب شده است .

برای تنظیم این پارامترها در حالت متنی از دستورات زیر استفاده کنید :

set int vlan1 bypass-non-ip

set int vlan1 bypass-none-ip-all

save

Bypass IPSec Packet For Others : با انتخاب این گزینه ترافیک IPSec می تواند از فایروال عبور کند .در این حالت می توان در صورت نیاز از یک vpn server برای terminate کردن کانکشن ها استفاده کرد .

set int vlan1 bypass-others-ipsec

بعد از پیکربندی واسط vlan1 برای وارد کردن فایروال به حالت شفاف باید تمامی واسط ها را از zone های لایه سوم به zone های لایه دوم منتقل کنید .

قبل از تبدیل zone واسط ها از لایه سوم به لایه دوم باید آدرس های آی پی واسط ها را به 0.0.0.0/0 تغییر دهید .

در محیط پیکربندی تحت وب به منوی : Network | Interfaces | ethernet1 بروید و در قسمت انتخاب zone ،v1trust را انتخاب کنید .در قسمت آدرس آی پی و ماسک شبکه 0.0.0.0/0 را وارد کنید . و قسمت manage ip را خالی رها کنید .

برای انجام مراحل بالا در محیط متنی از دستورات زیر استفاده کنید .

unset int eth1ip

set int eth1 zone v1-trust

save

اکنون ارتباط شما با دستگاه که قبلا از طریق واسط فیزیکی شماره 1 بود قطع می شود . برای ارتباط مجدد جهت ادامه پیکربندی دستگاه باید ازآی پی واسط مجازی vlan1 استفاده کنید .

و به همین ترتیب باید واسط های شماره 2 و 3 را به لایه 2 تبدیل کنید .

unset int eth2ip

set int eth2 zone v2-dmz

unset int eth3ip

set int eth3 zone v3-untrust

save

بعد از تبدیل واسط ها به واسط های لایه دوم با استفاده از دستور get sys فایروال را به حالت شفاف وارد

کنید .

getsys_Netscreen_P2

 

همان طور که در شکل مشاهده می کنید دستگاه به حالت شفاف وارد شد . ولی هنوز کار تمام نشده است . همانطور که قبلا گفتم دستگاه های juniper Netscreen با سیاست پیش فرض deny any any یعنی عدم دسترسی هیچ آدرس آی پی به هیچ سرویسی یا قطع ارتباط کامل است . پس گام بعدی تعریف سیاست ها ) policy ) است . به منوی wizard بروید و policy wizard را انتخاب کنید . شکل های زیر گویای نحوه تعریف policy ها هستند .

 

Netscreen01_P2

 

در این مرحله مشخص می کنید سیاست بر روی چه پکت ها یی (با چه مبدا و مقصدی ) اعمال گردد.

 

Netscreen02_P2

 

 

در این مرحله می توان سیاست را برای اعمال بر روی ای پی یا رنج آی پی مشخص محدود کنید .

 

NetScreen03_P2

 

نوع سرویس را مشخص کرده و با انتخاب Access یا Deny اجازه دسترسی یا عدم دسترسی به آن را مشخص کنید .

 

 

NetScreen04_P2

 

در این مرحله می توانید یک رنج آی پی را که از آن برای NAT استفاده می شود .مشخص کنید . ( برای مخفی ماندن آی پی ها ) فعال کردن این ویژگی فقط در حالات خاص ممکن است .

 

NetScreen05_P2

 

در این مرجله می توان عمل log کردن و هشدار دادن را با توجه به میزان عبور پکت ها فعال کرد

 

NetScreen06_P2

 

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

 

NetScreen07_P2

 

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

 

NetScreen08_P2

 

در این مرحله سیاست ایجاد شده برای تایید نهایی و همچنین دستور معادل آن نیز برای اجرا از طریق telnet نمایش داده می شود .

 

NetScreen09_P2

 

با کلیک کردن Next و سپس Finish سیاست مورد نظر اعمال می گردد . برای مثال لیستی از سیاست های تعریف شده برای یک شبکه با سرویس های مختلف در زیر آمده است :

 

NetScreen10_P2

 

 

برای مثال لیستی از سیاست های تعریف شده برای یک شبکه با سرویس های مختلف در زیر آمده است :

 

NetScreen11_P2

 

 

 

Juniper Netscreen 50

فوریه 8, 2008 با omid mohajerani

NetScreen01_P1

 

Console Port : پورت کنسول که همانند device های سیسکو برای پیکربندی این فایروال استفاده می شود . کافی است پورت کنسول را با کابل مخصوصی که به همراه فایروال است مستقیم به یک کامپیوتر وصل کنید و از طریق hyper terminal یا برنامه های مشابه دیگر آنرا پیکربندی کنید.

Modem Port : که توسط کابل RS232 به مودم های External قابل اتصال بوده و برای اتصال به این دستگاه و پیکربندی آن از طریق مودم ( معمولا از راه دور ) قابل استفاده است .

Compact Flash Card Slot : این اسلات برای قرار گیری کارت های فلش (SanDisk Compact Flash) با ظرفیت های مختلف است . از این حافظه برای دانلود یا آپلود نرم افزار مخصوص یا فایل های پیکربندی استفاده می شود . بعد از قرار گیری حافظه فلش در این اسلات فایروال NS50 به طور اتوماتیک آنرا شناسائی می کند.

Power and Status LED : این LED ها برای نمایش وضعیت های مختلف NS50 استفاده می شود .

 

NetScreen02_P1


Power LED : که وضعیت برق رسانی به دستگاه را بیان می کند .که رنگ سبز نشان دهنده وضعیت عادی ( دستگاه روشن است ) است .

Alarm LED : برای نمایش هشدار های سیستم به کار می رود.که در وضعیت های مختلف به رنگ های زیر تغییر رنگ می دهد :

قرمز: که نشان دهنده هشدار بحرانی است و به معنای خرابی سخت افزار یا اشکال در ماژول های نرم افزاری از جمله الگوریت های رمزنگاری مورد استفاده می باشد.

کهربایی ( amber ) : که از آن به عنوان هشدار اصلی ( Major Alarm ) یاد می شود .و می تواند ناشی از موارد زیر باشد:

حافظه کم ( کمتر از 10 درصد حافظه خالی باشد. )

درصد استفاده از cpu بالاتر از 90 درصد باشد.

حافظه مورد استفاده جهت ذخیره سازی فایل های log کاملا پر باشد.

تعداد session های اتصالی پر باشد و امکان برقراری session دیگری فراهم نباشد.

ماکزیمم تونل های vpn استفاده شده باشد.

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

Status LED : نمایش دهنده وضعیت کلی دستگاه می باشد. که سبز چشمک زن نشان دهنده حالت نرمال دستگاه و رنگ سبز در هنگام بوت شدن نرمال دستگاه روشن می شود.

HA LED : HA که مخفف High Availibilty می باشد. و رنگ سبز نشان دهنده master بودن پورت و رنگ کهربایی نمایش دهنده slave بودن پورت در redundancy cluster می باشد.

Session LED : که نمایش دهنده درصد برقراری session ها می باشد و رنگ کهربایی به معنای 70 تا 90 درصد و قرمز به معنای بالای 90 درصد می باشد.

Flash LED : که رنگ سبز نمایش دهنده این است که فلش در دستگاه وجود دارد و رنگ سبز چشمک زن نمایش دهنده دسترسی خواندنی- نوشتنی به فلش ( Read-Write ) است .

Asset Recovery Pinhole :همان طور که از اسمش مشخصه این قسمت برای ریست کردن تنظیمات به حالت اولیه استفاده می شود . .( هنوز هیچی نشده مجبور شدم دستگاه را ریست کنم . چون آی پی و username و pass را قبل از عید به دستگاه داده بودم ولی چند روز که می خواستم کانفیگش کنم هیچی یادم نبود.)

بد نیست همین جا طریقه ریست کردن را هم بگم چون به دلیل عدم مطالعه داکیومنت مربوطه 2 ساعت معطل این کار شدم. برای ریست کردن باید از یه فلز مثله سوزن برای فشاربه کلیدی که درون این سوراخ کوچک است استفاده کنید. 5 یا 6 ثانیه نگه دارید. بعد 2 ثانیه اونو بیرون بیارین و بلافاصله این کارو برای 5 یا 6 ثانیه دیگر تکرار کنید .

Ethernet Interfaces : این دستگاه 4 تا پورت اترنت داره که بسته به شبکه شما می تواند سرعت 10 یا 100 مگابیت بر ثانیه را داشته باشه.هر پورت همانطور که در شکل مشاهده می کنید دو تا LED داره که سمت چپی نشان دهنده ترافیک عبوری و سمت راستی نشان دهنده up یا down بودن لینک است . ( آیا پورت به یک دستگاه فعال وصل است یا خیر)

 

NetScreen03_P1

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

NetScreen04_P1

 

برای تامین برق این دستگاه می توان از برق AC یا DC استفاده کرد .

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

 

NetScreen05_P1

 

حالت های اجرایی NS50:

NS50 می تواند در دو حالت زیر پیکربندی شود .

1 – حالت شفاف ( Transparent Mode ) : در این حالت دستگاه به عنوان یک بریج ( bridge ) لایه 2 عمل می کند چون در این حالت نمی تواند آدرس آی پی packet های عبوری را ترجمه کند . در این حالت همچنین نمی توان از قابلیت NAT در این نوع دستگاه ها استفاده کرد . در نتیجه برای هر آدرس آی پی در شبکه قابل اطمینان ( Trusted Network ) شما ( که در واقع همان شبکه lan داخلی شما است ) باید قابل مسیر یابی و دستیابی توسط شبکه غیر قابل اطمینان ( Untrusted Network ( شبکه ( به عبارتی همان اینترنت) باشد. واین به معنای استفاده شبکه داخلی از آدرس های آی پی Public که در اصطلاح به آنها آی پی ولید می گوییم می باشد.

در حالت شفاف آدرس آی پی Zone های trusted و untrusted 0.0.0.0 در نظر گرفته می شود که این عمل موجب نامرئی شدن آن در شبکه می شود .اگرچه فایروال می تواند کارهای فایروالینگ و vpn و مدیریت و کنترل ترافیک شبکه را انجام دهد .

2- حالت مسیریابی ( Route Mode) :

در این حالت دستگاه در لایه 3 کار می کند .و چون شما می توانید به هر کارت شبکه (interface ) ای پی بدهید می توانیدعلاوه بر قابلیت های عادی از هر یک از این کارت شبکه ها برای NAT کردن بهره ببرید .

انواع کارت شبکه در NS50 :

این مدل از فایروال های NetScreen علاوه بر بهره بردن از چهار کارت شبکه فیزیکی ، دارای کارت شبکه های مجازی نیز می باشد که کار های خاصی در لایه دوم یا برخی کارهای مدیریتی دستگاه کاربرد دارند.

Ethernet1 ( Trusted Zone ) : این اترنت را توسط کابل های utp (کانکتور های Rj45 ) به شبکه داخلی متصل کنید .

Ethernet2 ( DMZ Zone ) : این پورت را به شبکه DMZ ( مخففDelimetered Zone است و سگمنتی از شبکه است که سرور ها در آن قرار گرفته اند) متصل نمایید.

Ethernet3(Untrusted Zone) :این کارت شبکه را به شبکه خارجی ( معمولا اینترنت) متصل نمایید.

Ethernet4( HA Zone ) : که به zone Haigh Availabilty متصل می گردد.

Layer 2 interfaces : از این گونه واسط ها که به نام های vlan1 vlan n نامگذاری می شوند برای مدیریت دستگاه وvpn traffic termination در حالت شفاف استفاده می شود.

Tunnel Interfaces : که به نام های tunnel1 تا tunneln نامگذاری می شوند و برای عبور ترافیک vpn مورد استفاده قرار می گیرند.


متصل کردن دستگاه به شبکه:

برای اتصال مستقیم NS50 به روتر یا یک کامپیوتر( برای پیکربندی اولیه ) باید از کابل cross over استفاده کرد.

نحوه قرار گیری فایروال های NetScreen در ساده ترین حالت در شکل زیر نمایش داده شده است .

 

NetScreen06_P1


همانطور که در شکل مشاهده می کنید Ethernet Port3 توسط یک کابل cross over به روتر خارجی و et hernet port1 توسط یک کابل straight-through به شبکه Lan متصل شده اند.

در قسمت های قبل در مورد پورت HA مطالبی گفتیم. در شبکه هایی که تحمل خطا و up بودن لینک بسیار مهم است می توان از کلاستر هایی از دستگا ههای شبکه از جمله NetScreen برای برقراری لینک های Backup بهره برد. شکل زیر تا حد زیادی این مطلب را روشن می کند ولی چون فعلا من با همچین شبکه ای سروکار ندارم فقط به همین شکل اکتفا می کنم . ( امیدوارم یه روزی مجبور شم و برگردم و این قسمت را کامل کنم .)

NetScreen07_P1

پیکربندی فایرول NETSCREEN :

دو روش برای پیکربندی فایروال های NetScreen وجود دارد .

1 – از طریق محیط متنی چیزی شبیه روتر های سیسکو که به آن CLI ( Command Line Interface ( می گویند.

2 – از طریق وب

فکر کنم با یک مثال این موضوع را توضیح بدم مفید تر باشه. من شخصا اولین چیزی که برام مهم بود وصل کردن این دستگاه به اینترنت و update کردن attack signature ها (که برای شناسائی حملات در سیستم گشف نفوذ استفاده میشه) بود . خوب برای این کار باید به دستگاه ip داد . همچنین DNS و Gateway .

برای وارد شدن به محیط تنظیم گرافیکی دستگاه کافی است اترنت شماره 1 را به سوییچ شبکه خود متصل کنید یا این پورت را با یک کابله Cross مستقیم به کارت شبکه کامپیوتر متصل نمایید. سپس در web browser به آدرس http://192.168.1.1 بروید. و نام کاربری و پسوورد که به طور پیش فرض هردو netscreen می باشند را وارد کنید.

اگر برای اولین بار دستگاه شما پیکربندی می شود یک wizarad چندین سوال ابتدایی از شما می پرسد از جمله آدرس ip کارت شبکه های trusted ، untrusted و DMZ .

همانطور که گفتم untrusted کارت شبکه ای است که به اینترنت متصل می شود . trusted کارت شبکه در رنجه شبکه LAN شما و DMZ هم که آدرس ip در رنجه شبکه DMZ ( قسمتی از شبکه که سرورها در آن قرار می گیرند .و معمولا با فایروال ها و روتر های مجزا دسترسی به آنها محدود شده است . )

البته همانطور که درادامه خواهم گفت پیکربندی دوباره ی تمامی این پارامتر ها به راحتی امکان پذیر است.

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

 

NetScreen08_P1

 

 

پیکربندی فایروال برای وصل شدن به اینترنت با استفاده از محیط گرافیکی تحت وب ) WebGUI):

مرحله 1 : تنظیم آدرس آی پی کارت شبکه ها :

برای پیکربندی آدرس های آی پی واسط ها به مسیر Network > Interfaces بروید.

 

 

NetScreen09_P1

 

 

همانطور که مشاهده می کنید تمامی واسط ها لیست شده است .که می توانید با انتخاب هریک تنظیمات لازم را انجام دهید.

 

مرحله دوم : تنظیم آدرس DNS Server :

برای تنظیم آدرس آی پی DNS Server ها برای عمل Name Resolution به مسیرNetwork > DNS بروید .در اینجا از سرور دی ان اس مخابرات استفاده کردیم. (217.218.127.104)

NetScreen10_P1

مرحله سوم : تنظیم Gateway :

برای تنظیم کردن gateway باید یک مسیر ( route ) تعریف کنید . ابتدا به

Network > Routing > Routing Entries

بروید و یک مسیر جدید برای اینترفیس untrusted تعریف کنید.

 

NetScreen11_P1

خوب الان دستگاه شما به اینترنت متصل شده است.