PDA

مشاهده نسخه کامل : روشن کردن سیستم از راه دور



Security
25-10-07, 09:02
0.مقدمه

در مواقعی که در یک شبکه فعالیت می‌کنید، گاهی این اتفاق می‌افتد که نیاز به روشن کردن سیستم از راه دور دارید، البته بسیاری مواقع افراد به جای روشن کردن از راه دور عکس قضیه را عملی می‌کنند یعنی کامپیوتر را برای تمام مدت روشن می‌گذارند، چنین عملی باعث می‌شود تا افرادی که مجاز به دسترسی نیستند مدت زمان بیشتری برای دسترسی به سیستم داشته باشند. اما آیا راهی برای روشن کردن سیستم از راه دور وجود دارد؟!

بسیاری از کاربران هنگامی که یک کارت شبکه خریداری می‌کنند در دفترچه‌ی راهنما یا برروی جعبه‌ی کارت شبکه "Wake On Lan" را دیده‌اند.در این مقاله قصد دارم تا شما را با روش استفاده از این قابلیت در سیستم گنو/لینوکس آشنا کنم. آنچه شمانیاز خواهید داشت یک کارت شبکه‌ که از قابلیت «Wake on Lan» پشتیبانی کند و روشی برای ارسال سیگنال برای چنین کارت شبکه‌ای است.

بسیاری از کارت‌های شبکه امروزی از قابلیت «WakeOn Lan» پشتیبانی می‌کنند، اگر کارت شبکه‌ی شما «on-board» است، به دفترچه راهنمای مادربورد خود مراجعه کنید، اغلب مادربوردهای جدید درای کارت شبکه‌هایی با امکان «Wake On Lan» هستند. برای فعال کردن این قابلیت در چنین مادربوردهایی کافیست در زمان بالا آمدن سیستم وارد قسمت تنظیم BIOS شوید و در قسمت «Power Management» گزینه‌ها‌ی «wakeonlan» یا «netboot» یا «wake onring events» را جستجو کنید. بسته به نوع مادربورد (نوع چپ‌ست بایوسی که در آن استفاده شده است) یکی از گزینه‌های بالا برای فعال کردن قابلیت Wake on Lan استفاده خواهند شد.
1.بسته‌های جادویی

برای روشن کردن یک کامپیوتر از راه دور باید از طریق یک نرم افزار یک پیغام برای کارت شبکه بفرستید. این پیغام‌ها را «بسته‌های جادویی شبکه» یا «Magic Network Packets» می‌نامند. برای استفاده از از این بسته‌های جادویی همان‌طور که اشاره کردیم نیاز به یک کارت شبکه با قابلیت Wake on Lan و نیز برنامه‌ای برای ارسال این بسته‌ها در شبکه دارید. نیازهای سخت افزاری به کارت شبکه‌ی شما بسته است. اما برنامه‌ای که این بسته‌ها را ارسال کند و بتوانید از طریق آن این قابلیت را مدیریت کنید را به سادگی می‌توانید در توزیع خودتان پیدا کنید. برای این کار من از برنامه‌های "ethtool" و"wakeonlan" استفاده کرده‌ام. البته می‌توانید از "etherwake" به جای "wakeonlan" استفاده کنید.
2.اجرا

برای نصب برنامه‌های ذکر شده می‌توانید در توزیع‌هایی که بر اساس دبیان هستند از دستور "apt-get" استفاده کنید، اگر از SuSE استفاده می‌کنید از YaST و در سایر توزیع‌ها از مدیر بسته‌های همان توزیع استفاده کنید. پس از نصب برنامه‌ی ethtool برای بررسی وضعیت در خط فرمان دستور زیر رامی‌نویسیم:


root@tux:~# ethtool eth0
Settings for eth0:
Supports Wake-on: g
Wake-on: d
Link detected: yes

در اینجا "g" به این معناست که قابلیت wakeonlan در کارت شبکه‌ی شما وجود دارد اما "d" در خط پایینی فعال نبودن این قابلیت را اعلام می‌کند. برای فعال کردن بسته‌های جادویی شبکه دستور زیر را به کار می‌بریم:


root@tux:~# ethtool -s eth0 wol g

برای اطمینان از این که این قابلیت فعال شده است می‌توانید دستور اول را دوباره وارد کنید :


root@tux:~# ethtool eth0
Settings for eth0:
Supports Wake-on: g
Wake-on: g
Link detected: yes

دومین "g" که در خط "Wake-on: g" آمده است به معنی فعال بودن قابلیت کار با بسته‌های جادویی شبکه است.

دیگر مطمئن هستیم که این قابلیت فعال شده، حال به آدرس کامپیوتر مورد نظر در شبکه نیاز داریم. طبیعی است که آدرس کامیپیوتر مقصد برای روشن کردن آن نیاز است. در اصل ما به آدرس MAC کامپیوتر مورد نظر نیاز داریم. برای اطلاع از این آدرس کافیست در کامپیوتر مقصد دستور ifconfig را اجرا کنید:


tux@target:~$ /sbin/ifconfig
eth0 Link encap:Ethernet HWaddr FF:AA:BB:CC:DD:EE
inet addr:192.168.0.1 Bcast:192.168.0.255 Mask:255.255.255.0
inet6 addr: fe80::20a:e6ff:fef6:a3f4/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:2218390 errors:0 dropped:0 overruns:0 frame:0
TX packets:3098440 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:1624008578 (1.5 GiB) TX bytes:1368310661 (1.2 GiB)
Interrupt:10 Base address:0xd400

در اینجا FF:AA:BB:CC:DD:EE آدرس MAC است.اگر کامپیوتر مقصد در دسترستان نیست برای پیدا کردن آدرس MAC آن کافیست ابتدا به آن کامپیوتر "ping" کنید،سپس به "arp cache" سری بزنید. برای نمونه اگر در شبکه‌ی من ماشینی با نام sun.my.flat وجود داشته باشد و بخواهم آدرس MAC آن را به دست بیاورم در خط فرمان تایپ می‌کنم:


gnu@myflat:~$ ping -c 1 sun
PING sun.my.flat (192.168.1.1) 56(84) bytes of data.
64 bytes from sun (192.168.1.1): icmp_seq=1 ttl=64 time=0.202 ms

--- sun.my.flat ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.202/0.202/0.202/0.000 ms

gnu@myflat:~$ /usr/sbin/arp sun
Address HWtype HWaddress Flags Mask Iface
sun ether FF:AA:BB:CC:DD:EE C eth0

دستور "arp" در اینجا برای یافتن آدرس MAC استفاده شده است. فقط توجه داشته باشید که شما باید ابتدا ماشین مقصد را از طریق IP یا نام ماشین ping کنید و سپس از دستور "arp" استفاده کنید. بسیار خوب، پس از آموختن آدرس MAC کامپیوتر مقصد حالا می‌توانید از راه دور روشن یا خاموشش کنید.برای این کار به برنامه‌ای نیاز دارید تا بسته‌های "wakeonlan" را ارسال کند. برنامه‌های مشهور "etherwake" و "wakeonlan" هستند که در اینجا من از "wakeonlan" استفاده کرده‌ام. یکی از مزایای "wakeonlan" امکان استفاده توسط تمام کاربران است که درباره‌ی "etherwake" قضیه عکس است و فقط کاربر ریشه می‌تواند از آن استفاده کنید.

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


gnu@myflat:~$ wakeonlan
Sending magic packet to 255.255.255.255:9 with FF:AA:BB:CC:DD:EE

همان طور که می‌دانید FF:AA:BB:CC:DD:EE آدرس MAC کامپیوتر مقصد یا کامپیوتری است که می‌خواهید از راه دور روشن کنیدش. به همین سادگی .... اگر همه چیز درست پیش رفته باشد کار تمام است.

منبع مقاله : GNUIran.org