![]() |
| ||
| به انجمن Perisan Networks خوش آمدید. این انجمن محیطی برای بحث و تبادل نظر در مورد مسائل مختلف موجود در شبکه های کامپیوتری است. در این انجمن می توانید پرسشهای خود را مطرح نمایید و در مورد آنها با دیگران به تبادل نظر بپردازید، از تجربیات دیگران استفاده کنید و تجربیات و دانش خود را با دیگران به اشتراک بگذارید. مشاهده مطالب نوشته شده و خواندن نوشته های دیگران آزاد است، ولی برای دسترسی به تمامی قابلیتهای انجمن (نظیر نوشتن مطلب و دریافت فایل ها و ...) حتما باید ثبت نام کنید. پیش از ثبت نام قوانین انجمن به شما نمایش داده می شود، خواهشمندیم حتما با دقت قوانین را مطالعه فرمایید. برای ثبت نام در انجمن از این صفحه استفاده کنید. اگر در حین ثبت نام و یا ورود به انجمن با مشکلی مواجه شدید، از طریق این صفحه و با پر کردن فرم مربوطه به مدیر انجمن اطلاع دهید تا مشکلتان بررسی و برطرف گردد. |
| |||||||
| ثبت نام | قوانین انجمن | جستجو | نوشته های امروز | علامت گذاری انجمن ها به عنوان خوانده شده |
![]() |
| | LinkBack | امکانات بيشتر | جستجو در اين بحث | رتبه بدهيد | نحوه نمايش |
| | #1 (permalink) |
| Registered User Join Date: Oct 2004 Location: Iran,Mazandaran,chalous نوشته ها: 310 Thanks: 0 Thanked 36 Times in 25 Posts Groans: 0 Groaned at 0 Times in 0 Posts | آشنایی با ابزار IPTables در این مقاله به معرفی يكي از ابزارهاي قدرتمند تصفيه كننده بسته*ها به* نام IPtables مي*پردازيم. IPtables به عنوان نسل چهارم پياده*سازي شده از ابزارهاي تصفيه كننده سيستم*عامل لينوكس معرفي مي*شود. این مقاله شامل بخش*های زیر است.
معرفی سيستم تصفيه کننده بسته*ها يك سيستم تصفيه*كننده بسته*ها (همان*طور كه از نامش پيداست) براي كنترل ترافيك ورودي و خروجي بسته*ها بين يك شبكه داخلي و شبكه خارجي به* كار مي*رود. به كمك يك تصفيه كننده مي*توان:
انواع سيستم*های تصفيه کننده بسته*ها سيستم*های تصفيه کننده بسته*ها به* طور کلی به دو نوع تقسيم می*شوند:
تاريخچه محصولات ارائه شده تحت عنوان تصفيه کننده بسته*ها چهار نسل تکامل را پشت سر گذاشته*اند:
جدول*ها و زنجیرها در IPtables جدول و زنجیر دو مفهوم اساسی در IPtables هستند که شناخت اين ابزار و نحوه عملکرد آن و نوشتن قوانين مورد نظر مستلزم درک کامل اين مفاهيم می*باشد. در IPtables جدول*ها مجموعه*ای از قوانين مرتبط را در برمی*گيرند. اين قوانين در ساختار ديگری تحت عنوان زنجیرها معنی پيدا می*کنند. زنجیرها انواع نحوه عبور بسته*ها از حفاظ را بيان می*کنند. بسته به اينکه هر بسته در ورود، خروج يا عبور از حفاظ چه مسيری را بپيمايد، بخشی از قوانين جدول*ها روی آن اعمال می*شود. نحوه اعمال قوانين جدول به اين صورت است که بسته*های رسيده با تک تک قوانين آن مقايسه می*شوند و اولين قانونی که با شرايط بسته مطابق باشد، در مورد آن اعمال می*شود. در غير اين صورت سياست پيش فرض حفاظ روی آن اعمال می شود. (قبوليا دور ریختن ) سه جدول عمده مورد استفاده در IPtables عبارتند از:
![]() شکل 1 : پيکربندی شبکه*ی داخلی با استفاده از NAT اين کار در نهايت منجر به تغيير آدرس مبداء يا مقصد بسته*های گذرنده از حفاظ يا ايجاد شده در آن می*گردد. اعمال انجام شده روی بسته*ها در اين جدول عبارتند از:
جدول Mangle عموماً برای تغيير ويژگي*های خاصی از بسته*ها، از جمله TTL، ToS و يا برچسب زدن روی آنها به*کار می*رود. شکل زير ساختار کلی زنجیرهای استاندارد تعريف شده در IPtables و نحوه پيمايش بسته*ها از مسيرهای مختلف را نشان می*دهد. شکل 2 - جريان هدايت بسته*ها از حفاظ IPtables همانطور که از شکل پيداست، يک بسته ممکن است به سه صورت مختلف از زنجیرهای IPtables عبور کند.
![]() 2. بسته*هايی که در ماشين محلی توليد می*شوند قبل از اينکه چنين بسته*ای بتواند ماشين محلی را ترک کند، از زنجیرهای زير می*گذرد و قوانين جداول زير روی آنها قابل اعمال است: ![]() 3. بسته*هايی که از حفاظ عبور می*کنند قبل از اينکه چنين بسته*ای بتواند از کارت واسط شبکه ورودی به کارت واسط شبکه خروجی منتقل شود، از زنجیرهای زير می*گذرد و قوانين جداول* زير روی آنها قابل اعمال است: ![]() قوانين IPtables قوانين ابزار اصلی کار با هر حفاظی را تشکيل می*دهند. پيچيده*ترين و پرهزينه*ترين سياست*های امنيتی يک سازمان در نهايت برای تصفيه بسته*ها به قوانين نه چندان پيچيده حفاظ تبديل می*شوند. فرمت کلی دستورات IPtables را می*توان به صورت زير بيان کرد:iptables [-t table] Packet-Criteria-Specification target گزينه –t برای مشخص کردن جدول حاوی دستور به*کار می*رود.Packet-Criteria-Specification برای تعيين ويژگي*های بسته مورد استفاده قرار می*گيرد. target بيانگر عملی است که در صورت انطباق بسته با قانون مورد نظر، بايد روی آن انجام شود. در ادامه این گزارش فرمت کلی این دستور توضیح داده می*شود.
iptables –I chain [rulenum] rule-specification دستور فوق يک قانون جديد قبل از قانون با شماره rulenum به زنجیر chain اضافه می*کند. اين قانون به صورت پيش*فرض به ابتدای قوانين اضافه می*شود.
iptables –A chain rule-specification
iptables –R chain rulenum rule-specification
iptables –D chain rule-specification
iptables –F chain
iptables –N newchain
iptables –X newchain
iptables –L chain در دستورات IPtables شماره اولين قانون 1 منظور می*شود.2. پارامترهای مهم دستورات IPtable بعضی از ويژگي*های بسته*ها که برای تعيين انطباق آنها در دستورات IPtables بکار می*رود، عبارتند از:
--source-port [!] port[: port] Examples: --source-port 0: 1023 --source-port ! 80 -- destination- port [!] port[: port]
iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 3128 (3128 پورت استاندارد squid می باشد.)Jump: همچنين هدف می*تواند پرش به يک زنجیر از پيش تعريف شده از همان جدول باشد. پياده سازی چند سياست ساده امنيتی در ادامه سعی می*کنيم با استفاده از قوانين معرفی شده در IPtables بعضی از سياست*های امنيتی ساده را پياده*سازی کنيم. در اين مثال*ها فرض کنيد که کارت واسط شبکه eth0 به LAN و کارت واسط شبکه eth1 به WAN متصل است. آدرس*های شبکه محلی دارای آدرس*های مجازی 192.168.x.y و آدرس IP حفاظ برابر 192.168.1.1 می*باشد.
iptables -N block دستورات فوق عمل تصفيه بسته*ها را در داخل زنجیر تعريف شده block انجام می*دهند. تنها کافی است بسته*های گذرنده از حفاظ را به سمت اين زنجیر هدايت کنيم:iptables -A block -m state -- state ESTABLISHED, RELATED -j ACCEPT iptables -A block -m state -- state NEW -i ! eth1 -j ACCEPT iptables -A block -j DROP iptables -A INPUT -j block 2. می*خواهيم درگاه*های خاصی را برای ارتباط با حفاظ از شبکه اينترنت مسدود يا باز نماييمiptables -A FORWARD -j block
iptables –I INPUT 1 -- dport 0:1023 –i eth1 –p tcp –j DROP iptables –I INPUT 2 -- dport 0:1023 –i eth1 –p udp –j DROP
iptables -I INPUT 1 --dport 80 –p tcp –i eth1 –j ACCEPT
iptables -I INPUT 1 –dport 22 -p tcp -s 123.45.67.89 –j ACCEPT 3. می خواهيم آدرس همه بسته های خروجی از شبکه را با استفاده از گزينه MASQUERADE پنهان کنيم. اين کار می تواند به روشهای زير انجام پذيرد :
//Using Dynamic WAN Address iptables –t nat -A POSTROUTING -o eth1 –s 192.168.0.0/16 -j MASQUERADE
iptables –t nat –A POSTROUTING -o eth1 -s 192.168.0.0/16 -j SNAT -- to 12.34.56.78 لازم به ذکر است که اضافه کردن قانون ساده زير نياز ما را برآورده می*کند، ولی در آن صورت به بسته*های خارجی از شبکه داخلی نيز اجازه می*دهيد که آدرس خود را با استفاده از حفاظ شما تغيير دهند:iptables -t nat -A POSTROUTING -j MASQUERADE راه*اندازی و استفاده از IPtables ابزار IPtables در بسياری از نسخه*های سيستم*عامل لينوکس، بويژه RedHat بصورت پيش فرض همراه ساير بسته*های نرم*افزاری نصب می*شود. برای اينکه از نصب IPtables در دستگاه خود مطمئن شويد، کافی است دستور IPtables را در خط فرمان تايپ کنيد. برای اجرای چنين دستوری يا بايد با شناسه کاربری root به سيستم وارده شده باشيد و يا با استفاده از sudo حق اجرای IPtables را داشته باشيد. در صورتی که IPtables روی دستگاه شما نصب شده باشد، پيغامی مشابه پيغام زير روی صفحه نمايش ظاهر می شود: iptables v1.2.8: no command specified در غير اين صورت بايد سورس يا بسته نرم*افزاری قابل نصب IPtables را دريافت کرده و آن را نصب کنيد. نصب برنامه از روی RPM به سادگی امکان*پذير است. در اينجا نحوه*ی نصب IPtables از روی سورس آن توضيح داده می*شود:Try 'iptables -h' or 'iptables --help' for more information
tar -xvjf ./iptables-1.*.*.tar.bz2 -C /usr/src
cd /usr/src/iptables-1.*.*
# /bin/sh -c make # /bin/sh -c make install نبشته راه*اندازی برای اينکه دستورات جاری IPtables در سيستم مانا شوند و در هر بار راه*اندازی سيستم بصورت خودکار در داخل حافظه بار شوند، بايد از يک نبشته راه*اندازی استفاده کرد. اين نبشته در مسير /etc/init.d قرار گرفته و بعد از هر مرتبه راه*اندازی سيستم بصورت خودکار اجرا می شود. البته اين سرويس را می*توان بصورت دستی و با استفاده از دستور زير فعال کرد:# /etc/init.d/iptables start يک نمونه از نبشته راه اندازی به همراه دستورات پيش فرض آن در اين آدرس آمده است. شما می*توانيد دستورات دلخواه خود را در هر يک از بدنه*های start، stop يا restart اضافه کنيد.ذخيره و بازيابی دستورات دستورات IPtables مقيم در حافظه را همچنين می*توان با استفاده از دو دستور سودمند iptables-save و iptables-restore که توسط خود ابزار IPtables در اختيار کاربران قرار می*گيرد، در داخل فايل ذخيره و بازيابی کرد. برای ذخير دستورات IPtables در فايلی با نام IPtables-save کافی است دستور زير را اجرا کنيم:iptables-save > /etc/iptables-save مشابه دستور فوق می*توانيم دستورات ذخيره شده در يک فايل را با استفاده از دستور IPtables-restore بازيابی کنيم. ابزارهای کمکی پيکربندی IPtables شايد پيکربندی IPtables با استفاده از دستورات خط فرمان برای کسانی که تجربه عملی زيادی با لينوکس ندارند، آسان نباشد. بدين*منظور ابزارهای گرافيکی ديگری برای اين اشخاص که نمی*خواهند دستان خود را با خط فرمان لينوکس کثيف کنند(!)، در دسترس می*باشد.در ادامه به بعضی از اين ابزارهای اشاره می*شود:
Knetfilter يک ابزار با واسط گرافيکی مناسب برای پيکربندی حفاظ*های مبتنی بر ميزبان می*باشد. اين ابزار امکاناتی برای ذخيره و بازيابی قوانين، تست آنها، اجرای ابزارهای پويش شبکه از جمله tcpdump و نيز ترجمه و مخفی*سازی آدرس*ها را فراهم می*سازد. يکی از کمبودهای Knetfilter اين است که از پروتکل PPP پشتيبانی نمی*کند. در نتيجه نمی*توان از آن برای پيکربندی حفاظ سيستم*هايی که با خط تلفن به اينترنت متصل می*شوند، استفاده کرد. gShield کامل*ترين ابزار پيکربندی گرافيکی IPtables به نظر می*رسد. چرا که بصورت کامل مستندسازی شده و فايل*های پيکربندی آن قابل فهم است. علاوه بر اين از امکانات ترجمه آدرس بسته*ها و پيکربندی استاتيک (اتصال از طريق واسط ppp0) و پويای (اتصال از طريق واسط eth0) حفاظ برخوردار است. با اين وجود به نظر می*رسد هيچ يک از اين ابزارها نمی*توانند به کلی جايگزين امکانات فراوانی شوند که از طريق خط فرمان IPtables در اختيار کاربران قرار می*گيرد. ضمن اينکه به هيچ وجه شما را از درک عميق ساختار داخلی (دستورات، جدول*ها، زنجیرها، ...) IPtables بی*نياز نمی*کنند. جهت مطالعه بيشتر سايت netfilter به نوعی سايت رسمی IPtables محسوب می*شود که آخرين نسخه*های اين حفاظ به همراه اخبار آخرين تغييرات، مستندات آموزشی و راهنمای کاربر مربوط به آن را در برگرفته و به عنوان يکی از معتبرترين و در دسترس ترين مراجع می تواند مورد استفاده قرار گيرد.سايت LinuxGuruz مجموعه کامل و مفيدی از لينک*های مرتبط با IPtables را گردآوری کرده است. يک صفحه آموزنده و جامع برای يادگيری IPtables توسط Oskar Andreasson در اين آدرس جمع*آوری شده است.يک صفحه پرسش و پاسخ مناسب در مورد حفاظ*ها از اين آدرس قابل دسترسی است. مراجع : [1] کارگاه آموزشی IPtables، دوره آموزشی برگزارشده توسط مرکز امنيت شبک شريف در شرکت ايزايران، مهدی صمدی، زمستان 1381. [2] http://www.jollycom.ca/iptables-tuto...-tutorial.html [3] http://www.securityfocus.com/infocus/1410 [4] https://www.cae.wisc.edu/fsg/linux/linux-iptables.html گرد آورنده : رضا سعدالدین انتشار: مجله الکترونیکی فتا آخرین ویرایش توسط sinaeslami در 2005-09-14 ساعت 03:53 PM. |
| | |
| | ilia_nad (2008-10-19) |
![]() |
| امکانات بيشتر | جستجو در اين بحث |
| نحوه نمايش | Rate This Thread |
| |
مطالب مشابه | ||||
| مطلب | آغازگر | انجمن | پاسخ | آخرین نوشته |
| كامل ترين مرجع خطاهاي مودم | sinaeslami | مقالات عمومی شبکه -ا- | 0 | 2005-08-09 02:27 AM |
| شبکه VPN چیست؟ | masood_y | مقالات عمومی شبکه -ا- | 0 | 2005-08-02 12:11 PM |
| مروري بر مهمترين تنظيمات Internet Explorer | sinaeslami | مقالات عمومی شبکه -ا- | 0 | 2005-07-24 02:33 AM |
| پشتیبانگیری از اطلاعات در لینوکس | sinaeslami | Linux -ا- | 0 | 2005-07-21 01:08 AM |
| درباره DNS | masood_y | مقالات عمومی شبکه -ا- | 0 | 2005-06-01 09:08 PM |