تدابير امنيتي در IPv6 (قسمت دوم)

در این قسمت مقاله نحوه پياده‌سازي IPv6 را با استفاده از متداول‌ترين سيستم‌عامل‌ها بررسي مي‌كنيم. پروتكل IPv6 در اغلب پلتفرم‌ها و سيستم‌عامل‌ها پشتيباني‌شده‌است و اغلب تنها لازم است يك دستور ساده به اجرا...
چهارشنبه، 30 شهريور 1390
تخمین زمان مطالعه:
موارد بیشتر برای شما
تدابير امنيتي در IPv6 (قسمت دوم)

تدابير امنيتي در IPv6 (قسمت دوم)
تدابير امنيتي در IPv6 (قسمت دوم)


 





 

پشتيباني سيستم‌عامل‌ها از IPv6
 

در این قسمت مقاله نحوه پياده‌سازي IPv6 را با استفاده از متداول‌ترين سيستم‌عامل‌ها بررسي مي‌كنيم. پروتكل IPv6 در اغلب پلتفرم‌ها و سيستم‌عامل‌ها پشتيباني‌شده‌است و اغلب تنها لازم است يك دستور ساده به اجرا درآيد تا اين پروتكل فعال شود. در ادامه متداول‌ترين ابزارهاي پيكربندي و اشكال‌زدايي IPv6 را بررسي مي‌كنيم (در صورت نياز به مشاوره به آدرس www.ipv6.org/impl/index.html مراجعه كنيد).

لينوكس
 

در اغلب توزيع‌هاي لينوكس به طور پيش‌فرض از IPv6 پشتيباني شده است، با وجود اين، اگر IPv6 به‌طور پيش‌فرض روي رابط eth فعال نشده، كافي است دستور زير را (به عنوان‌مثال در توزيع BackTrack Linux) اجرا كنيد:

root@bt: # modprobe ipv6
root@bt: # cat /proc/net/if_net6
00000000000000000000000000000001 01 80 10 80 lo
fe80000000000000020c29fffea089cf 02 40 20 80 eth0
 

براي تأييد شماره پورت‌هاي باز از دستور netstat -a -A inet6 استفاده كنيد. براي فهرست‌كردن تمام مسيرهاي IPv6 از دستور netstat -rnA inet6 يا ip -6 route استفاده‌كنيد. براي حصول اطمينان از عملكرد ميزبان به صورت يك روتر IPv6 فايل مختص شبكه يا رابط را با استفاده از دستور ifcfg-eth0 بررسي كنيد تا ببينيد هريك از اين فايل‌ها حاوي عبارت IPV6FORWARDING=yes/no هستند ياخير؛ همچنين با استفاده از دستور sysctl فايل sysctl.conf را بررسي كنيد. براي اين كار كافي است دستور sysctl | grep ipv6 را اجرا‌ كرده و خروجي را بررسي كنيد. وجود ديمن radvd به اين معني است كه ميزبان مي‌تواند پيغام‌هاي RA منطبق بر RFC 2461 را براي ساير ميزبان‌هاي موجود روي رابط LAN ارسال كند (فايل radvd.conf). با استفاده از دستور ip neighbor show مي‌توان ميزان حافظه Cache مجاور را بررسي كرد. براي پاك‌سازي تمام اقلام ورودي كافي است دستور neighbor flush را اجرا كنيد. دستور iptunnel show تمام تونل‌هاي ميزبان را نشان مي‌دهد. اگر تونل از نوع IPv6 روي IPv4 (يا 6in4) باشد، به طور معمول، با اسامي sit0، sit1 و... نام‌گذاري مي‌شود و معمولاً روترهايي با آدرس 2002::/16 آن را ارسال مي‌كنند. در صورتي كه تونل از نوع كپسول‌سازي متداول اطلاعات باشد، معمولاً به صورت gre0 نام‌گذاري مي‌شود. اگر رابط‌هاي تونل از نوع IPv4 روي IPv4 باشند، با اسامي tun0 يا ipipo فهرست مي‌شوند. براي مشاهده رابط‌هاي روي سيستم از دستور ip link show و براي مشاهده آدرس‌هاي IP روي هر رابط از دستور ip addr show استفاده كنيد. براي بررسي وجود تونل‌هايي كه پس از راه‌اندازي دوباره سيستم ايجاد مي‌شوند بايد فايل پيكربندي شبكه را بازبيني كنيد. اگر دو عبارت زير در اين فايل وجود داشته باشد، تونل‌هاي 6to4 فعال شده‌اند:

NETWORKING_IPV6=”yes”
IPV6DEFAULTDEV=”tun6to4”
 

براي اطلاع از فعال شدن اين نوع تونل‌ها روي يك رابط خاص دستور ipcfg-eth0 را اجرا كنيد. دو عبارت زير نيز بيانگر فعال بودن تونل‌هاي 6to4 هستند:

IPV6INIT=yes
IPV6TO4INIT=yes
 

اگر لازم است يك تونل با پيكربندي دستي را از بين ببريد، از دستورات زير استفاده كنيد:
براي پاك‌كردن تمام مسيرهاي مربوط به تونل دستور ip route delete default را از طريق next-hop-IPv6-addr اجرا كنيد.
براي پاك‌‌كردن آدرس روي تونل از دستور زير استفاده كنيد:


 

ip address del IPv6-prefix dev tun0
 

براي پاك‌‌كردن رابط تونل (tun0) از دستور ip tunnel delete name tun0 استفاده كنيد.
رابط ISATAP در صورت وجود به‌صورت is0 نام‌گذاري شده است. اگر تونلي با اين نام در خروجي دستور ifconfig مشاهده‌كرديد، با استفاده از دستور ip tunnel delete name is0 مي‌توانيد آن را پاك كنيد. براي اطلاع از وجود ديوارآتش ip6tables و تشخيص نگارش آن روي سيستم از دستور ipv6tables –V استفاده كنيد. براي مشاهده محتواي جدول فيلترسازي كنوني دستور ipv6tables -L را اجرا كنيد. براي فعال و غيرفعال كردن فيلترسازي ip6tables كافي است سرويس ip6tables [stop | start] را اجرا كنيد.

سيستم‌عامل Mac OS X
 

در سيستم‌عامل Mac OS X لئوپارد (نگارش 10.5.x كلاينت و سرور) پروتكل IPv6 به‌طور پيش‌فرض فعال شده است:

mascalzone@mymac $ ifconfig en0 | grep inet6
inet6 fe80::21b:63ff:fe96:7353%en0 prefixlen 64 scopeid 0x4
 

به‌منظور پيكربندي IPv6 منوي System Preferences را باز كرده و روي گزينه Network كليك كنيد. سپس رابط شبكه را انتخاب و روي گزينه Advanced كليك كنيد. تنظيمات مقتضي را براي گزينه Configure IPv6 انتخاب كنيد. سيستم‌عامل Mac OS X بر‌اساس سيستم‌عامل BSD و با كرنل Mach ساخته شده و به همين دليل، مؤلفه‌هاي شبكه‌سازي اين سيستم‌عامل ميراث لايه BSD است؛ بنابر اين مي‌توان سرويس‌هاي TCP يا UDP را با استفاده از دستور netstat - a - f inet6 - p tcp يا netstat -a -f inet6 -p udp در يك ترمينال فهرست كرد. دستور netstat -s -f inet6 كه بيانگر وضعيت پروتكل است، اطلاعات بسياري را درباره ترافيك روي رابط‌ها به همراه تعداد بسته‌هاي اطلاعاتي IPv6‌ در اختيار كاربرمي‌گذارد.
براي نمايش فهرست مسيرهاي IPv6 دستور netstat -nr -f inet6 را اجرا كنيد. ورودي‌هاي فعلي حافظه cache مجاور (neighbor) را مي‌توان با دستور ndp-a بررسي كرد و ndp-I مي‌تواند رابط پيش‌فرض مورد استفاده براي يافتن مجاورين (Neigbor discovery) را تعيين كند. همچنين دستور ndp- I eno مي‌تواند رابط eno را به عنوان پيش‌فرض يا defuult تنظيم كند. دستور ndp -c تمام ورودي‌هاي فعلي را پاك كرد. (امكان بازسازي طبيعي آن‌ها را فراهم مي‌كند.) سيستم‌عامل Mac OS X سه ابزار ip6 ، ip6config و ip6fw را نيز در اختيار كاربر مي‌گذارد. ابزار ip6 در واقع يك ابزار پيكربندي است كه براي فعال و غيرفعال كردن IPv6 روي رابط‌هاي فعال به صورت زير كاربرد دارد:

mascalzone@mymac $ ip6
Usage:
Start up IPv6 on ALL interfaces: -a
Shut down IPv6 on ALL interfaces: -x
Start up IPv6 on given interface: -u [interface]
Shut down IPv6 on given interface: -d [interface]
 

ابزار ip6config نيز براي تونل‌سازي IPv6 و 6to4 به‌صورت زير كاربرد دارد:

mascalzone@mymac $ ip6config -h
Usage: /usr/sbin/ip6config
start-v6 all | stop-v6 all
start-v6 [interface] | stop-v6 [interface]
start-stf [interface] | stop-stf
start-rtadvd | stop-rtadvd
 

ابزار ip6fw در واقع يك ابزار كنترلي براي ديوار آتش IPv6 است (فهرست 1). دستور ifconfig stf0 فعال بودن يا نبودن يك تونل 6to4 را مشخص مي‌كند. هر آدرس 2002::/16 نيز سرنخي از فعال بودن تونل مذكور است. دستور ifconfig ist0 فعال بودن تونل ISATAP را مشخص مي‌كند و با دستور ifconfig ist0 deleteisataprtr ISATAP-address مي‌توان تونل ISATAP را حذف كرد. ساير دستورات مربوط به تونل‌سازي عبارتند از:

ifconfig gif0 inet6 delete ipv6-prefix
ifconfig gif0 deletetunnel
ifconfig gif0 destroy
 

به فايل‌هاي 6to4.conf, rtadvd.conf واقع در پوشه /etc نيز نگاهي بياندازيد. دستور sysctl net.inet6 تمام تنظيمات مربوط به IPv6 مانند ارسال دوباره، ارسال، icmp و... را نمايش مي‌دهد. به عنوان مثال:

mascalzone@mymac $ sysctl net.inet6.ip6.forwarding
 

net.inet6.ip6.forwarding: 0

ويندوز XP
 

سيستم‌هاي مايكروسافت مجموعه‌ وسيعي از تونل‌هاي ايستا و پويا را (شامل ISATAP، Teredo و 6to4 ) ايجاد مي‌كنند. در سيستم‌هاي ويندوز XP پروتكل IPv6 به‌طور پيش‌فرض فعال نيست، اما به‌سادگي مي‌توان آن را فعال كرد. براي اين كار در سطر فرمان دستور زير را درج كنيد:

C:\>netsh interface ipv6 install
 

پس از نصب IPv6 با اجراي دستور ipconfig /all فعال‌بودن پروتكل را بررسي‌كنيد. به عنوان راه‌حل جايگزين مي‌توانيد دستور زير را اجرا كنيد:

C:\>netsh interface ipv6 show address
 

ويندوز ويستا
 

در ويندوز ويستا امكان حذف IPv6 وجود ندارد و با اجراي يكي از اقدامات زير تنها مي‌توان آن را غيرفعال كرد:
در پوشه Connections and Adapters با كليك راست روي تمام اتصالات و مبدل‌ها مراجعه و به گزينه Properties علامت مربوط به مؤلفه Internet Protocol version 6 (TCP/IP) را از فهرست واقع در بخشThis connection uses the following items حذف كنيد. اين روش IPv6 را روي رابط‌ها و اتصالات LAN غيرفعال مي‌كند، اما آن را روي رابط‌هاي تونل يا رابط loopback Ipv6 غيرفعال نمي‌كند.
مدخل زير را در رجيستري ويندوز ايجاد كرده و به آن مقدار 0xFFFFFFFF را نسبت دهيد:

HKEY‌_‌LOCAL‌_‌MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip6\Parameters\DisabledComponents
 

اين شيوه IPv6 را در تمام رابط‌هاي LAN، اتصالات و رابط‌هاي تونل غيرفعال مي‌كند، اما رابط loopback IPv6 را غيرفعال نمي‌كند. به‌طور پيش‌فرض مقدار متغير DisabledComonents برابر عدد صفر است. متغير DisabledComonents يك bitmask است كه مقادير زير را كنترل كرده و كار خود را از اولين مقدار (Bit0) آغاز مي‌كند:
Bit 0- با تنظيم اين مقدار روي عدد 1 تمام رابط‌هاي تونل IPv6 شامل ISATAP، 6to4 و Teredo غيرفعال مي‌شوند. مقدار پيش‌فرض اين متغير عدد صفر است.
Bit 1- با تنظيم اين مقدار روي عدد 1 تمام رابط‌هاي مبتني بر 6to4 غيرفعال مي‌شوند. مقدار پيش‌فرض اين متغير عدد صفر است.
Bit 2-: با تنظيم اين مقدار روي عدد 1، تمام رابط‌هاي مبتني بر ISATAP غير فعال مي‌شوند. مقدار پيش‌فرض آن 0 است
Bit 3- با تنظيم اين مقدار روي عدد 1 تمام رابط‌هاي مبتني بر Tredo غيرفعال مي‌شوند. مقدار پيش‌فرض اين متغير عدد صفر است.
Bit 4- با تنظيم اين مقدار روي عدد 1 تمام رابط‌هاي غير تونلي شامل رابط‌هاي LAN و رابط‌هاي مبتني بر PPP (سرنام Point-to-Point Protocol) غيرفعال مي‌شوند. مقدار پيش‌فرض اين متغير عدد صفر است.
Bit 5- با تنظيم اين مقدار روي عدد 1 جدول پيشوندهاي پيش‌‌فرض به‌گونه‌اي تغيير مي‌كند كه هنگام تلاش براي برقراري اتصالات IPv4 نسبت به IPv6 مقدم باشد. مقدار پيش‌فرض اين متغير عدد صفر است.
به‌منظور تعيين مقدار متغير DisabledComponents براي مجموعه خاصي از بيت‌ها يك عدد باينري متشكل از بيت‌ها و مقادير مناسب آن‌ها ايجاد شده و عدد حاصل به يك عدد در مبناي شانزده تبديل مي‌شود. به عنوان مثال، به‌منظور غيرفعال‌كردن رابط‌هاي 6to4 و Teredo در در عين حال حفظ تونل‌هاي IPv4 به IPv6 بايد عدد باينري 101010 را بسازيد. هنگامي كه اين عدد به مبناي شانزده تبديل شود، مقدار متغير DisabledComponents برابر 0x2A خواهد بود.
منبع:ماهنامه شبکه
ارسال توسط کاربر محترم سایت :hasantaleb
ادامه دارد...




 



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