برای مطالعه قسمت قبل آموزش رایگان دوره CEH اینجا کلیک کنید.
Network Address Translation
در ابتدا NAT برای رفع نیاز روزافزون به آدرسهای IPv4 طراحی شد و در سند RFC 1631 به شکل دقیق به آن پرداخته شد. برگردان نشانی شبکه (NAT) سرنام Network Address Translation تکنیکی است که برای ارسال و دریافت ترافیک شبکه از رویکرد مسیریابی که بر پایه بازنویسی آیپی یا شماره درگاهها یا شماره درگاههای TCP/UDP که بستههای آیپی از آنها عبور میکند دلالت دارد. به عبارت دیگر، برگردان نشانی شبکه تکنیکی است که به منظور حفظ تعداد آدرسهای آیپی که یک شبکه به آنها نیاز دارد استفاده میشود. گیتوی که میان یک شبکه خصوصی و سایر شبکهها قرار میگیرد، زمانی که کامپیوترها روی یک شبکه خصوصی قصد دارند به شبکهای دیگر یا اینترنت متصل شوند، آدرسهای آیپی خصوصی که کامپیوترهای عضو یک شبکه خصوصی از آنها استفاده میکنند را به آدرسهای عمومی آیپی تبدیل میکند. به این فرآیند تبدیل برگردان آدرس میگویند. تکنیک NAT ضمن آنکه یک آدرس آیپی عمومی در اختیار یک شبکه خصوصی قرار میدهد، در ارتباط با مباحث امنیتی نیز تاثیر مثبتی دارد. گیتوی میتواند یک شبکه خصوصی را پشت یک آدرس پنهان کند. گیتوی چگونه اطلاع پیدا میکند چه میزبان محلی باید پاسخ ارسالی از میزبانی که روی اینترنت قرار دارد را دریافت کند؟ این مشکل را تکنیکی موسوم به برگرداندن نشانی درگاه (PAT) سرنام Port Address Translation حل میکند که یک درگاه TCP جداگانه را به هر نشستی که میان یک میزبان محلی و یک میزبان روی اینترنت قرار دارد اختصاص میدهد. شکل زیر نشان میدهد که چگونه زمانی که یک میزبان روی اینترنت به یک میزبان محلی پاسخ میدهد. گیتوی از PAT برای تعیین اینکه چه میزبان محلی باید پاسخ را دریافت کند استفاده میکند. RFC 1918 سه محدوده آدرس خصوصی به شرح زیر را تعریف میکند:
■ 192.168.0.0–192.168.255.255
■ 172.16.0.0–172.31.255.255
■ 10.0.0.0–10.255.255.255
NAT دیوارآتش یا روتر را قادر میسازد به عنوان واسطی بین اینترنت و شبکه محلی عمل کند. دیوارآتش یا روتر طیف وسیعی از آدرسهای خصوصی را در شبکه محلی قابل استفاده میکند، در حالی که فقط یک آدرس آیپی منحصر به فرد برای نشان دادن یک گروه از کامپیوترها به دنیای واقعی را استفاده میکند. NAT امنیت کمی دارد، زیرا تنها میتواند آدرسهای داخلی را از سیستمهای خارجی پنهان کند. NAT به دلیل اینکه اقدام به بازنویسی بستهها میکند ممکن است باعث بروز مشکلاتی شود. هر پروتکل سطح لایه کاربرد همچون IPsec که نیاز به استفاده از آدرسهای آیپی واقعی دارد ممکن است به سختی در محیطهای مبتنی بر NAT قابل استفاده باشد. همچنین دقت کنید برخی آدرسهای غیرقابل بازگرداندنی ممکن است به عنوان آدرسهای جعلی یا باگ شناخته شوند.
فیلترهای بسته
فیلترهای بستهای در ابتدا به صورت دیوارآتش بودند که توسط بسیاری از سازمانها در سراسر جهان مورد استفاده قرار گرفتند. قابلیت پیادهسازی فیلتر بستهها در روترها تعبیه شده بود و به لحاظ فنی ایده درستی بود، زیرا روترها نقطه دسترسی به شبکهها هستند. فیلتر بستهها از طریق فهرستهای کنترل دسترسی (ACL) پیکربندی میشوند. ACLها مجموعهای متشکل از قواعد از پیش ساخته شده هستند که ترافیک را بر اساس اطلاعات سرآیند مسدود یا غیر مسدود میکنند. زمانیکه ترافیک از روتر عبور میکند، هر بسته با قاعده تنظیم شده ارزیابی میشود و در ادامه تصمیمگیری میشود که بسته به شبکه ورود پیدا کرده یا رد شود. بهطور مثال، یک فیلتر بسته ممکن است ترافیک وب را در پورت 80 مجاز تعریف کند و ترافیک Telnet را در پورت 23 مسدود کند. این دو قاعده اساسی نمونهای از فیلتر بستهها را نشان میدهد. یک نمونه ACL که دستورات اجازه و رد را تعریف میکند به شرح زیر است:
no access-list 111
access-list 111 permit tcp 192.168.13.0 0.0.0.255 any eq www
access-list 111 permit tcp 192.168.13.0 0.0.0.255 any eq ftp
access-list 111 deny udp any any eq netbios-ns
access-list 111 deny udp any any eq netbios-dgm
access-list 111 deny udp any any eq netbios-ss
access-list 111 deny tcp any any eq telnet
access-list 111 deny icmp any any
interface ethernet1
ip access-group 111 in
برای اطلاعات بیشتر در ارتباط با ACL به مقاله فهرست کنترل دسترسی چه نقشی در مدیریت شبکهها و ایمنسازی آنها دارد مراجعه کنید.
اگرچه فیلترهای بسته یک لایه حفاظتی خوب ارائه میکنند، اما کامل نیستند. آنها میتوانند آدرسهای IP را فیلتر کنند، اما نمیتوانند جلوی فعالیتهای مخربی همچون کلاهبرداری را بگیرند. آنها همچنین میتوانند پورتها و پروتکلهای خاص را مسدود کنند، اما نمیتوانند بارداده بستهها را بررسی کنند. از همه مهمتر، فیلترهای بسته نمیتوانند وضعیت را حفظ کنند. این عدم توانایی در حفظ وضعیت یک آسیبپذیری مهم است، زیرا به این معنی است که فیلترهای بسته نمیتوانند درک کنند که آیا ارتباطی در داخل یا خارج از سازمان آغاز به کار کرده یا خیر.
برای روشنتر شدن موضوع مثال زیر را در نظر بگیرید: سازمانی اجازه میدهد تا ترافیکی به خارج از شبکه از طریق پورت 21 FTP انجام شود، اما ترافیک ورودی FTP را فیلتر میکند. اگر یک هکر اقدام به پویش کامل پورت 21 کند به یک سرویسدهنده داخلی میرسد و در ادامه پویش توسط روتر مسدود میشود، اما اگر هکر اسکن ACK را در پورت 21 روی همان کلاینت داخلی انجام دهد چه میشود؟ پاسخ این است که مستقیماً به کلاینت میرسد، زیرا روتر نمیتواند وضعیت را حفظ کند. روتر نمیتواند یک بسته FTP ورودی را از دیگری متمایز کند. حتی هنگامی که اسکن مسدود شد، یک روتر هنوز هم میتواند اطلاعات ارزشمندی در اختیار هکر قرار دهد. به این دلیل است که وقتی یک فیلتر بسته درخواستی را برای پورت مجاز دریافت میکند که احراز هویت نشده، ممکن است درخواست را رد کند یا به سادگی آنرا قبول کند. یک بسته رد شده یک پیام ICMP از نوع 3 و کد 13 تولید میکند که اعلام میدارد مدیریت ارتباطات را ممنوع کرده است. این پیامها معمولاً از یک روتر فیلترکننده بسته ارسال میشود و میتواند نشان دهند که یک ACL ترافیک را مسدود کرده است. این پیام به وضوح مشخص میکند که روتر عامل انجام اینکار است. مفاهیم اساسی مربوط به دور زدن و شناسایی فیلترهای بسته در شکل زیر نشان داده شده است.
گیتوی سطح مداری و لایه کاربردی
هر دو مدل میان یک کلاینت و یک وبسرور قرار میگیرند و از طرف کلاینت با سرور ارتباط برقرار میکنند. آنها با ضبط مستمر صفحاتی که مورد دسترسی قرار گرفتهاند، در شناسایی صفحاتی که ممکن است مورد توجه هکرها قرار گرفته باشد به کارشناسان امنیتی کمک میکنند. گیتویهای سطح مداری و کاربردی (Application and circuit gateways) باعث افزایش امنیت و جلوگیری از دسترسی مستقیم به داخل یا خارج از شبکه میشوند. گیتویهای سطح مداری در لایه جلسه مدل OSI کار میکنند و میتوانند روی بستههای TCP نظارت کنند. دیوارهای آتش لایه کاربرد میتوانند بستههای موجود در لایه کاربرد را بررسی کنند. دیوارهای لایه کاربرد همچنین میتوانند دستورات خاص برنامه را فیلتر کنند و به عنوان یک پراکسی وب پیکربندی شوند.
بازرسی دارای حالت
دیوارهای آتش بازرسی دارای حالت عملکردی شبیه به فیلترهای بسته دارند به جز اینکه قابلیت ردیابی وضعیت یک اتصال را دارند. به عنوان مثال، اگر یک بسته ACK وارد دیوارآتش شود که ادعا میشود از طرف یک اتصال منتشر شده آماده است، دیوارآتش دارای حالت اگر هیچ اطلاعاتی در ارتباط با دستدهی سه مرحلهای مرتبط با آنرا دریافت نکند، اتصال را رد میکند. فیلتر بسته، بسته را با یک قاعده مقایسه میکند و به شکل غیرمطمئنی ارتباط را تایید کرده یا آنرا رد میکند. بازرسی حالت با نگه داشتن جدول حالتها که اشاره به سابقه ارتباطات دارند، وضعیت ارتباطات را حفظ میکند تا روند شناسایی ارتباطات مشکوک سادهتر شود.
در بیشتر سازمانها ترکیبی از دیوارآتش، فیلترهای بسته، پروکسیسرورها و بازررسی دارای حالت استفاده میشود. آنها ترکیی از فناوریهای مختلف را در DMZ استفاده میکنند تا به شکل دقیقتر از زیرساختها محافظت کنند. DMZ یک شبکه محافظت شده است که میان اینترنت غیر مطمئن و شبکه داخلی مطمئن قرار میگیرد. در این معماری سرورها در DMZ قرار میگیرند تا در امنیت کامل قرار داشته باشند.
شناسایی دیوارهای آتش
اکنون که آشنایی کلی با دیوارهای آتش بهدست آوردیم، اجازه دهید برخی از روشهای به کار گرفته شده توسط دیوارهای آتش را بررسی کنیم. دیوارهای آتش از سه روش اصلی زیر برای شناسایی موارد مشکوک استفاده میکنند:
■ Port scanning
■ Firewalking
■ Banner grabbing
اسکن پورت یکی از رایجترین ابزارهایی است که دیوارهای آتش از آن استفاده میکنند و سعی میکنند مجموعه قواعدی را در این رابطه تنظیم کنند. بسیاری از دیوارهای آتش پورتهای باز خاصی دارند. از جمله این دیوارهای آتش قدیمی میتوان به Microsoft Proxy Server اشاره دارد که دارای پورتهای باز در 1080 و 1745 است، دیوارآتش NetGuard GuardianPro است که در درگاههای TCP 1500 و UDP 1501 به ارتباطات گوش میدهد و FireWall-1 که روی پورتهای 256 ، 257 و 258 به درخواستها گوش میدهد.
Traceroute میتواند یک ابزار مفید باشد. در لینوکس میتوانید از گزینه –i استفاده کنید تا به جای بستههای UDP از بستههای ICMP استفاده کند. اگرچه 100 درصد قابل اعتماد نیست، اما کمک میکند تا ببینید آخرین هاپ چه پاسخی را نشان میدهد و اینکه با یک دیوارآتش یا فیلتر بستهای روبرو هستید. خروجی ابزار فوق به شرح زیر است:
Hping ابزار مفید دیگری است که برای پیدا کردن دیوارهای آتش و شناسایی کلاینتهای داخلی استفاده میشود. ابزار فوق این امکان را میدهد تا آزمایشی مشابه با حالت بالا را انجام دهید. ابزار فوق نه تنها از ICMP و UDP بلکه از TCP نیز استفاده کند. از Hping میتوان برای ردیابی میزبانهای مستقر در پشت دیوارهای آتش استفاده کرد که امکان شناسایی آنها با ابزارهایی شبیه به traceroute با شکست همراه میشود. Hping همچنین قادر به انجام کارهای زیر است:
انجام اسکن در زمانهای بیکاری
آزمایش قواعد دیوارآتش
آزمایش سامانههای تشخیص نفوذ
از آنجایی که Hping از TCP استفاده میکند، میتواند برای تأیید این موضوع که میزبان بستههای ICMP را مسدود کرده یا خیر استفاده شود. از بسیاری جهات، Hping شبیه Netcat است، زیرا به هکرها اجازه میدهد روی بستهها کنترل سطح پایینی اعمال کنند. تفاوت ابزار فوق با Netcat در کنترل بخش دادهای بستهها نهفته است. Hping روی سرآیند تمرکز میکند. این ابزار مبتنی بر لینوکس میتواند در بررسی و سرشماری تنظیمات دیوارآتش فایروال استفاده شود. بهطور مثال نشان میدهد که Hping تلاش میکند از مکانیمهای شناسایی دیوارآتش بگریزد.
[root]# hping -I eth0 -S -a 192.168.123.175 -p 80 50.87.146.182 –i u1000
hping [ -hvnqVDzZ012WrfxykQbFSRPAUXYjJBuTG ] [ -c count ] [ -i wait
] [ --fast ] [ -I interface ][ -9 signature ] [ -a host ] [ -t ttl ]
[ -N ip id ] [ -H ip protocol ] [ -g fragoff ] [ -m mtu ] [ -o tos ]
[ -C icmp type ] [ -K icmp code ] [ -s source port ] [ -p[+][+] dest
port ] [ -u end ] [ -O tcp offset ] [ -M tcp sequence number ] [ -L
tcp ack ] [ -d data size ] [ -E filename ] [ -e signature ] [
--icmp-ipver version ] [ --icmp-iphlen length ] [ --icmp-iplen
length ] [ --icmp-ipid id ] [ --icmp-ipproto protocol ] [
--icmp-cksum checksum ] [ --icmp-ts ] [ --icmp-addr ] [
--tcpexitcode ] [ --tcp-timestamp ] [ --tr-stop ] [ --tr-keep-ttl ]
[ --tr-no-rtt ]
Firewalking ابزار بعدی سرشماری دیوارهای آتش است. Firewalk ابزاری برای کشف دیوارآتش است که برای این منظور بستههایی با مقادیر (TTL) سرنام Time To Live تنظیم میکند تا تاریخ انقضای یک هاپ عبور داده شده از دیواره آتش را بررسی کند. اگر دیوارآتش به بسته اجازه عبور دهد، بسته را به هاپ بعدی منتقل میشود، جایی که تاریخ انقضای بسته تمام شده و یک پیغام TTL expired in transit متعلق به پروتکل ICMP تولید میشود. اگر دیوارآتش اجازه عبور ترافیک را ندهد، بسته رها شده و هیچ جوابی تولید نمیشود یا یک پیام administratively prohibited توسط ICMP ایجاد میشود. برای استفاده از Firewalk شما به آدرس آیپی آخرین گیتوی که قبل از دیوارآتش قرار دارد و آدرس آیپی میزبان واقع در پشت دیوارآتش نیاز دارید. نتایج بسته به دیوارآتش استفاده شده متفاوت هستند. اگر سرپرست شبکه بستههای ICMP را مسدود کرده باشد، ابزار فوق هیچگونه کارایی ندارد. شکل زیر نمونهای از نحوه کار ابزار فوق را نشان میدهد.
در این مثال، هدف روتر 3 است که به عنوان دستگاه لبه مشخص شده است. به این ترتیب، هدف این است که مشخص کنیم کدام پورتهای روتر 3 اجازه عبور ترافیک را میدهند و کدام پورت مسدود است. مراحل Firewalk به شرح زیر است:
مرحله 1. Hopcount ramping: Firewalk مجموعهای از بستهها را برای مقصد با TTL = 1 ، 2 ، 3 و غیره ارسال میکند. با رسیدن به روتر 3، TTL برای مرحله بعدی تنظیم میشود. در شکل بالا، روتر 3 در TTL 3 قرار دارد، بنابراین تمام بستههای بعدی از TTL = 4 استفاده میکنند.
مرحله 2. Firewalking: بستههای TCP یا UDP از روتر 3 عبور کردهاند. تمامی بستهها دارای TTL 4 هستند. اگر یک بسته به مقصد برسد، یک پیام ICMP TTL نوع 11 ایجاد میشود. اگر روتر 3 بستههای ICMP را مسدود کند، هیچ پاسخی بازگردانده نمیشود.
در شماره آینده مبحث فوق را ادامه میدهیم.
برای مطالعه رایگان تمام بخشهای دوره CEH روی لینک زیر کلیک کنید:
ماهنامه شبکه را از کجا تهیه کنیم؟
ماهنامه شبکه را میتوانید از کتابخانههای عمومی سراسر کشور و نیز از دکههای روزنامهفروشی تهیه نمائید.
ثبت اشتراک نسخه کاغذی ماهنامه شبکه
ثبت اشتراک نسخه آنلاین
کتاب الکترونیک +Network راهنمای شبکهها
- برای دانلود تنها کتاب کامل ترجمه فارسی +Network اینجا کلیک کنید.
کتاب الکترونیک دوره مقدماتی آموزش پایتون
- اگر قصد یادگیری برنامهنویسی را دارید ولی هیچ پیشزمینهای ندارید اینجا کلیک کنید.
نظر شما چیست؟