..::آبی دل::..
متخصص بخش
.مقدمه
اگر شمارههای مختلف مجلهی الکترونیکی «ایرانتاکس» را پیگیری میکنید، حتما سری مقالات با نام «نکتهها و ترفندها» را به یاد دارید. مدتی است که به دلایل مختلف این بخش فعالیت نمیکند. بر آن شدیم تا از این شماره این سر مقالات را ادامه بدهیم و در هر شماره شما را با تعدادی از دستورات جدید سیستم عامل گنو/لینوکس در قالب نکتهها و ترفندها آشنا کنیم. در این شماره شما را با چند ترفند در ابزارهای شبکه آشنا میکنیم.
1.تنطیم ip برای کارت شبکه
برای دادن یک IP به کارت شبکهی خود میتوانید از دستور ifconfig استفاده کنید. این دستور مخفف Interface Configure است. برای نمونه اگر IP کارت شبکهی شما 192.168.3.77 است و Netmask آن 255.255.255.0 است، میتوانید از این دستور استفاده کنید.
#ifconfig eth0 192.168.3.77 netmask 255.255.255.0 up
دقت کنید که کارت شبکهی ما eth0 است، در برخی از سیستمها برای نامگذاری کارت شبکه از lan0 استفاده می شود. کارت شبکهی دوم شما eth1 یا lan1 خواهد بود. اگر میخواهید کارت شبکه را غیر فعال کنید میتوانید از این دستور استفاده کنید:
دقت داشته باشید که این IP تا زمانی قابل استفاده است که شما سیستم خود را Restart نکرده باشید. پس از Restart کردن سیستم باید از ابتدا به کارت شبکهی خود IP بدهید. (برای اجرای این دستور به مجوز ریشه یا root نیاز دارید)
2.استفاده از DHCP
اگر در شبکهی شما سرویس dhcp در حال اجرا و استفاده است، برای دریافت ip از سرور dhcp نمیتوانید از ifconfig استفاده کنید و باید از دستور زیر استفاده کنید:
پس از چند پیغام و درخواست IP کارت شبکهی شما IP و تنطیمات شبکه را از سرور DHCP دریافت خواهد کرد. در برخی توزیعهای لینوکس dhclient با نام dhclient3 قابل دسترسی است. (برای استفاده از این دستور در اغلب توزیعها به مجوز ریشه نیاز خواهید داشت)
3.اضافه کردن Default Gateway
برای افزودن Default Gateway به تنطیمات شبکه میتانید از دستور route استفاده کنید. برای نمونه اگر Default Gateway شما 192.168.3.2 باشد به این ترتیب اقدام میکنیم:
اگر اشتباهی در وارد کردن آدرس IP رخ داده و یا دیگر به Default Gateway نیاز ندارید میتوانید کلمهی add را به del تغییر بدهید و دستور را دوباره اجرا کنید.
برای اضافه کردن و یا کاستن یک Route به جدول مسیریابی هسته نیاز به مجوز ریشه دارید.
4.دیدن جدول مسیربابی شبکه
در صورتی که به اینترنت متصل هستید ولی ارسال و دریافت ندارید یا در شبکه نمیتوانید آدرسهایی را که در subnetهای دیگر هستند ببینید ممکن است مشکل از جدول مسیر یابی هسته یا Kernel Routing Table باشد. برای دیدن این جدول کافیست از دستور route -n استفاده کنید.
برای نمونه به این دستور دقت کنید:
$route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
10.0.0.0 255.0.0.0 U 0 0 0 eth0
0.0.0.0 10.1.0.0 U 0 0 0 eth0
روش دیگر استفاده از دستور netstat -rn میباشد. دقت داشته باشید که نتایج همسان خواهد بود.
$ netstat -rn
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
10.0.0.0 255.0.0.0 U 0 0 0 eth0
0.0.0.0 10.1.0.0 U 0 0 0 eth0
در صورتی که در دستور netstat -rn گزینهی n- را استفاده نکنید، آدرسها از طریق سیستم DNS شما ترجمه میشوند.
5. دیدن کانکشنهای فعال
در صورتی که مایل به دیدن کانکشنهای فعال در سیستم خود هستید و میخواهید ببینید کدام ابزار از چه پورتی استفاده میکند میتوانید از دستور netstat -ta استفاده کنید. در این دستور به Netstat میگوییم، تمام ورودیها را نمایش بدهد. (a-) و نیز از او میخواهیم فقط کانکشنهای نوع TCP را نمایش بدهد.(t-) البته میتوانید با افزودن گزینهی u- از netstat بخواهید تا کانکشنها یا اتصالاتی را که از پروتوکل UDP استفاده میکنند را نیز نمایش دهد.
برای نمونه به خروجی دستور زیر دقت کنید:
$netstat -ta
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 diz.navid:mysql *:* LISTEN
tcp 0 0 *:sunrpc *:* LISTEN
tcp 0 0 diz.navid:1111 *:* LISTEN
tcp 1 0 201.11.44.67:45464 192.169.22.11:www CLOSE_WAIT
tcp6 0 0 *:9418 *:* LISTEN
tcp6 0 0 *:www *:* LISTEN
و مقایشه کنید با netstat -u :
netstat -ua
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
udp 0 0 *:sunrpc *:*
6. پیگیری مسیر
ممکن است تمام تنطیمات شما صحیح باشد اما نمیتوانید به آدرس خواسی دسترسی داشته باشید. در چنین مواردی میتوانید مسیری را که بستهی شما طی میکند، پیگیری یا ردگیری کنید. برای این کار از دستور traceroute استفاده میکنند. برای نمونه برای آنکه بدانید از چه مسیری به سایت irantux.com متصل میشوید کافیست این دستور را وارد کنید:
$traceroute irantux.com
traceroute to irantux.com (80.68.87.19), 30 hops max, 40 byte packets
1 210.217.29.19 (210.217.29.19) 128.340 ms 190.858 ms 114.928 ms
2 210.27.29.10 (210.27.29.10) 106.911 ms 204.885 ms 111.903 ms
3 * * *
4 81.91.128.121 (81.91.128.121) 110.924 ms 106.936 ms 364.832 ms
5 81.91.128.233 (81.91.128.233) 121.896 ms 118.867 ms 122.971 ms
6 195.146.63.209 (195.146.63.209) 339.909 ms 129.945 ms 114.943 ms
7 pos4-11.ar03.ldn01.pccwbtn.net (63.218.52.9) 277.943 ms * 284.589 ms
8 pos11-1.br02.ldn01.pccwbtn.net (63.218.12.182) 277.318 ms 277.901 ms 266.932 ms
9 linx-224-gw.rbsov.bogons.net (195.66.224.228) 276.973 ms linx-226-gw.thdo.bogons.net (195.66.226.228) 330.901 ms 257.786 ms
10 193.178.223.218 (193.178.223.218) 322.894 ms 43-242.rbsov.bogons.net (85.158.43.242) 331.905 ms 193.178.223.218 (193.178.223.218) 320.900 ms
11 43-242.rbsov.bogons.net (85.158.43.242) 324.928 ms 272.918 ms 336.950 ms
12 80.68.80.90 (80.68.80.90) 327.929 ms 324.903 ms zeus.dh.bytemark.co.uk (80.68.87.195) 405.940 ms
همان طور که مشاهده میکنید اطلاعات بسیار مفیدی برای عیبیابی در مسیر شبکه میتوان از این دستور دریافت نمود. با استفاده از خروجیهای این دستور میدانید که چند Routing Node در مسیر شما تا مقصد قرار دارد، برای رسیدن به هر نقطهی مسیریابی چقدر زمان طول میکشد و آدرس Ipهای هر نقطهی مسیریابی مشخص میشود. البته ممکن است گاهی با *** مواجه شوید که دلیل بر مشکلی نیست. فقط مسئولین شبکه در آن قسمت صلاح دیدهاند تا IP خود را به صورت عمومی اعلام نکنند.
7.تغییر آدرس MAC
در صورتی که بنا بر هر دلیل نمیخواهید از آدرس MAC حال حاضر خود استفاده کنید میتوانید به سادگی این آدرس را تغییر دهید. برای این کار نیاز به نصب هیچ برنامهی جدیدی نیست. دستور ifconfig را که به خاظر دارید. میتوانید از طریق این دستور آدرس کنونی MAC خود را بیابید. برای نمونه:
$ ifconfig eth0
eth0 Link encap:Ethernet HWaddr 00:BB:CE:13:E4:1A
inet addr:10.0.0.1 Bcast:10.255.255.255 Mask:255
همان طور که در خروجی نمونهی بالا میبینید آدرس سختافزاری کارت شبکه یا MAC آدرس برابر مقدار زیر است:
«00:BB:CE:13:E4:1A»
خوب برای تغییر آدرس MAC میتوانید، از دستور ifconfig به این ترتیب استفاده کنید:
#ifconfig eth0 hw ether 002244:55
توجه داشته باشید که قبل از اعمال تغییرات بایداز طرق دستور ifconfig eth0 down و یا ifdown eth0 کارت شبکهی مورد نظر را غیر فعال کنید. سپس MAC را تغییر بدهید و دوباره با استفاده از روشی که در قسمت 1. ذکر شد، کارت شبکه را فعال کنید. برای تغییر آدرس MAC کارت شبکه (اینترفیس شبکه) نیاز به مجوز کاربر ریشه یا root خواهید داشت.
اگر شمارههای مختلف مجلهی الکترونیکی «ایرانتاکس» را پیگیری میکنید، حتما سری مقالات با نام «نکتهها و ترفندها» را به یاد دارید. مدتی است که به دلایل مختلف این بخش فعالیت نمیکند. بر آن شدیم تا از این شماره این سر مقالات را ادامه بدهیم و در هر شماره شما را با تعدادی از دستورات جدید سیستم عامل گنو/لینوکس در قالب نکتهها و ترفندها آشنا کنیم. در این شماره شما را با چند ترفند در ابزارهای شبکه آشنا میکنیم.
1.تنطیم ip برای کارت شبکه
برای دادن یک IP به کارت شبکهی خود میتوانید از دستور ifconfig استفاده کنید. این دستور مخفف Interface Configure است. برای نمونه اگر IP کارت شبکهی شما 192.168.3.77 است و Netmask آن 255.255.255.0 است، میتوانید از این دستور استفاده کنید.
#ifconfig eth0 192.168.3.77 netmask 255.255.255.0 up
دقت کنید که کارت شبکهی ما eth0 است، در برخی از سیستمها برای نامگذاری کارت شبکه از lan0 استفاده می شود. کارت شبکهی دوم شما eth1 یا lan1 خواهد بود. اگر میخواهید کارت شبکه را غیر فعال کنید میتوانید از این دستور استفاده کنید:
#ifconfig eth0 down
دقت داشته باشید که این IP تا زمانی قابل استفاده است که شما سیستم خود را Restart نکرده باشید. پس از Restart کردن سیستم باید از ابتدا به کارت شبکهی خود IP بدهید. (برای اجرای این دستور به مجوز ریشه یا root نیاز دارید)
2.استفاده از DHCP
اگر در شبکهی شما سرویس dhcp در حال اجرا و استفاده است، برای دریافت ip از سرور dhcp نمیتوانید از ifconfig استفاده کنید و باید از دستور زیر استفاده کنید:
#dhclient eth0
پس از چند پیغام و درخواست IP کارت شبکهی شما IP و تنطیمات شبکه را از سرور DHCP دریافت خواهد کرد. در برخی توزیعهای لینوکس dhclient با نام dhclient3 قابل دسترسی است. (برای استفاده از این دستور در اغلب توزیعها به مجوز ریشه نیاز خواهید داشت)
3.اضافه کردن Default Gateway
برای افزودن Default Gateway به تنطیمات شبکه میتانید از دستور route استفاده کنید. برای نمونه اگر Default Gateway شما 192.168.3.2 باشد به این ترتیب اقدام میکنیم:
#route add default gw 192.168.3.2
اگر اشتباهی در وارد کردن آدرس IP رخ داده و یا دیگر به Default Gateway نیاز ندارید میتوانید کلمهی add را به del تغییر بدهید و دستور را دوباره اجرا کنید.
#route del default gw 192.168.3.2
برای اضافه کردن و یا کاستن یک Route به جدول مسیریابی هسته نیاز به مجوز ریشه دارید.
4.دیدن جدول مسیربابی شبکه
در صورتی که به اینترنت متصل هستید ولی ارسال و دریافت ندارید یا در شبکه نمیتوانید آدرسهایی را که در subnetهای دیگر هستند ببینید ممکن است مشکل از جدول مسیر یابی هسته یا Kernel Routing Table باشد. برای دیدن این جدول کافیست از دستور route -n استفاده کنید.
برای نمونه به این دستور دقت کنید:
$route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
10.0.0.0 255.0.0.0 U 0 0 0 eth0
0.0.0.0 10.1.0.0 U 0 0 0 eth0
روش دیگر استفاده از دستور netstat -rn میباشد. دقت داشته باشید که نتایج همسان خواهد بود.
$ netstat -rn
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
10.0.0.0 255.0.0.0 U 0 0 0 eth0
0.0.0.0 10.1.0.0 U 0 0 0 eth0
در صورتی که در دستور netstat -rn گزینهی n- را استفاده نکنید، آدرسها از طریق سیستم DNS شما ترجمه میشوند.
5. دیدن کانکشنهای فعال
در صورتی که مایل به دیدن کانکشنهای فعال در سیستم خود هستید و میخواهید ببینید کدام ابزار از چه پورتی استفاده میکند میتوانید از دستور netstat -ta استفاده کنید. در این دستور به Netstat میگوییم، تمام ورودیها را نمایش بدهد. (a-) و نیز از او میخواهیم فقط کانکشنهای نوع TCP را نمایش بدهد.(t-) البته میتوانید با افزودن گزینهی u- از netstat بخواهید تا کانکشنها یا اتصالاتی را که از پروتوکل UDP استفاده میکنند را نیز نمایش دهد.
برای نمونه به خروجی دستور زیر دقت کنید:
$netstat -ta
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 diz.navid:mysql *:* LISTEN
tcp 0 0 *:sunrpc *:* LISTEN
tcp 0 0 diz.navid:1111 *:* LISTEN
tcp 1 0 201.11.44.67:45464 192.169.22.11:www CLOSE_WAIT
tcp6 0 0 *:9418 *:* LISTEN
tcp6 0 0 *:www *:* LISTEN
و مقایشه کنید با netstat -u :
netstat -ua
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
udp 0 0 *:sunrpc *:*
6. پیگیری مسیر
ممکن است تمام تنطیمات شما صحیح باشد اما نمیتوانید به آدرس خواسی دسترسی داشته باشید. در چنین مواردی میتوانید مسیری را که بستهی شما طی میکند، پیگیری یا ردگیری کنید. برای این کار از دستور traceroute استفاده میکنند. برای نمونه برای آنکه بدانید از چه مسیری به سایت irantux.com متصل میشوید کافیست این دستور را وارد کنید:
$traceroute irantux.com
traceroute to irantux.com (80.68.87.19), 30 hops max, 40 byte packets
1 210.217.29.19 (210.217.29.19) 128.340 ms 190.858 ms 114.928 ms
2 210.27.29.10 (210.27.29.10) 106.911 ms 204.885 ms 111.903 ms
3 * * *
4 81.91.128.121 (81.91.128.121) 110.924 ms 106.936 ms 364.832 ms
5 81.91.128.233 (81.91.128.233) 121.896 ms 118.867 ms 122.971 ms
6 195.146.63.209 (195.146.63.209) 339.909 ms 129.945 ms 114.943 ms
7 pos4-11.ar03.ldn01.pccwbtn.net (63.218.52.9) 277.943 ms * 284.589 ms
8 pos11-1.br02.ldn01.pccwbtn.net (63.218.12.182) 277.318 ms 277.901 ms 266.932 ms
9 linx-224-gw.rbsov.bogons.net (195.66.224.228) 276.973 ms linx-226-gw.thdo.bogons.net (195.66.226.228) 330.901 ms 257.786 ms
10 193.178.223.218 (193.178.223.218) 322.894 ms 43-242.rbsov.bogons.net (85.158.43.242) 331.905 ms 193.178.223.218 (193.178.223.218) 320.900 ms
11 43-242.rbsov.bogons.net (85.158.43.242) 324.928 ms 272.918 ms 336.950 ms
12 80.68.80.90 (80.68.80.90) 327.929 ms 324.903 ms zeus.dh.bytemark.co.uk (80.68.87.195) 405.940 ms
همان طور که مشاهده میکنید اطلاعات بسیار مفیدی برای عیبیابی در مسیر شبکه میتوان از این دستور دریافت نمود. با استفاده از خروجیهای این دستور میدانید که چند Routing Node در مسیر شما تا مقصد قرار دارد، برای رسیدن به هر نقطهی مسیریابی چقدر زمان طول میکشد و آدرس Ipهای هر نقطهی مسیریابی مشخص میشود. البته ممکن است گاهی با *** مواجه شوید که دلیل بر مشکلی نیست. فقط مسئولین شبکه در آن قسمت صلاح دیدهاند تا IP خود را به صورت عمومی اعلام نکنند.
7.تغییر آدرس MAC
در صورتی که بنا بر هر دلیل نمیخواهید از آدرس MAC حال حاضر خود استفاده کنید میتوانید به سادگی این آدرس را تغییر دهید. برای این کار نیاز به نصب هیچ برنامهی جدیدی نیست. دستور ifconfig را که به خاظر دارید. میتوانید از طریق این دستور آدرس کنونی MAC خود را بیابید. برای نمونه:
$ ifconfig eth0
eth0 Link encap:Ethernet HWaddr 00:BB:CE:13:E4:1A
inet addr:10.0.0.1 Bcast:10.255.255.255 Mask:255
همان طور که در خروجی نمونهی بالا میبینید آدرس سختافزاری کارت شبکه یا MAC آدرس برابر مقدار زیر است:
«00:BB:CE:13:E4:1A»
#ifconfig eth0 hw ether 002244:55
توجه داشته باشید که قبل از اعمال تغییرات بایداز طرق دستور ifconfig eth0 down و یا ifdown eth0 کارت شبکهی مورد نظر را غیر فعال کنید. سپس MAC را تغییر بدهید و دوباره با استفاده از روشی که در قسمت 1. ذکر شد، کارت شبکه را فعال کنید. برای تغییر آدرس MAC کارت شبکه (اینترفیس شبکه) نیاز به مجوز کاربر ریشه یا root خواهید داشت.