Віддалене включення комп'ютера безкоштовно, без смс і без хмар, за допомогою Mikrotik

… а так само без прокидання портів, SSH/telnet і встановлення сторонніх додатків. З будь-якого комп'ютера, підключеного до інтернет і навіть з телефону!
Періодично мені буває потрібно включити домашній комп'ютер, коли я не вдома. Зазвичай я не запарюється і дзвонив або відправляв повідомлення з таким проханням дружині, яка сидить вдома в декреті. Дуже зручний засіб віддаленого управління з голосовим інтерфейсом. Однак у цього способу є ряд недоліків — пішла гуляти, укладає дитини, або ще чимось зайнята. Хотілося простого рішення з того що є під рукою.

Першим ділом включаємо Wake on LAN в bios'і материнської плати, у всіх це робиться по-своєму, у багатьох включено за замовчуванням. На одному з моїх ПК навіть такої опції немає — завжди включено.

Далі переходимо в WinBox і підключаємося до вашого роутеру (якщо хочете, можете через SSH або через HTTP(S), я все роблю в WinBox'е). Якщо відкрити текстову консоль RouterOS і понишпорити там в розділі /tool (або в wiki-мануалах), то можна знайти утиліту wol з наступним синтаксисом:
/tool wol mac=XX:XX:XX:XX:XX:XX interface=ifname
 

Де ifname — ім'я інтерфейсу, з якого буде розсилатися чарівний пакет, XX:XX:XX:XX:XX:XX — mac-адресу вашого комп'ютера.

Начебто все просто, але Winbox з телефону не особливо запускається і mac-адресу по пам'яті замучишся вводити. Можна запускати SSH і відправляти в нього одну єдину команду, але це теж довго і нудно. Використовуємо фаєрвол!

Безпосередньо з правил фільтру запускати виконання команд не можна, з усіх дій нам найбільше підійде додавання адреси address-list, оскільки воно дозволяє створити новий об'єкт в операційній системі роутера, доступний з скриптів.
Додамо нове правило для ланцюжка input і розташуємо його серед інших дозвільних правил цього ланцюжка. Зазначимо протокол tcp і dst-port — будь-який з верхніх портів.

Дія виберемо add src (можна і dst) to address list, вкажемо ім'я аркуша.


Для відстеження появи записів використовуємо планувальник. Заходимо System -> Sheduler, створюємо завдання планувальника, задаємо ім'я. Вказуємо Start time: startup, і бажаний інтервал, наприклад кожні 15 секунд.
У полі on event напишемо простенький скрипт:
:local WAKEPC [/ip firewall address-list find where list="WAKEPC"]
 
:if ($WAKEPC!="") do={
 
/tool wol mac=00:11:22:33:44:55 interface=bridge_lan
 
/ip firewall address-list remove [find where list="WAKEPC"]
 
}
 

не забуваємо вказати правильний mac, ім'я користувача та адресу-листа.

Даний скрипт при виявленні елементів на адресу-листі виконає команду, відправляє магічні пакети на ваш комп'ютер, після чого видаляє запис з адресу-листа.

Для включення вашого комп'ютера досить відкрити браузер і перейти на IP вашого микротика, вказавши порт, який ми задали в правилі фаєрволу: http://your.router.net:port, після чого фаєрвол створює запис в адресу-аркуші, завдання планувальника виявить цю запис, виконає запуск утиліти wol, і видалить запис з адресу-листа. Простіше паренной ріпи, можемо додати адресу в обране, щоб кожного разу не вводити.

Тільки не забувайте про безпеку, даний спосіб нічим не захищений і хто завгодно може включити Ваш комп'ютер, знаючи або підібравши потрібний порт. Для захисту можна використовувати VPN, port knocking, whitelist або метод Невловимого Джо — вирішувати Вам. Якщо Вам потрібно включати таким чином окремо кілька комп'ютерів, створіть відповідну кількість правил на різних портах, кожне з яких буде кидати адреси в свою адресу-лист, скрипт в завданні планувальника також множимо через Ctrl+C, Ctrl+V, або створюємо окремі завдання для кожного — як хочете.
Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.