Як стукати у вашу мережу (DD-WRT)
Чи хотіли ви коли-небудь, щоб у вашому маршрутизаторі був спеціальний «стук у гуртожитку», якби він «відкрив двері» тільки тоді, коли розпізнається таємний стук? How-To Geek пояснює, як встановити демон Knock на DD-WRT.
Зображення Бфіка і Авіада Равіва
Якщо ви ще цього не зробили, переконайтеся, і перевірте попередні статті серії:
- Перетворіть ваш домашній маршрутизатор на супер-рушій з DD-WRT
- Як встановити додаткове програмне забезпечення на домашньому маршрутизаторі (DD-WRT)
- Як видалити оголошення з Pixelserv на DD-WRT
Припускаючи, що ви знайомі з цими темами, продовжуйте читати. Майте на увазі, що цей посібник є трохи більш технічним, і початківці повинні бути обережними при модифікації свого маршрутизатора.
Огляд
Традиційно для того, щоб мати можливість спілкуватися з пристроєм / службою, треба було б ініціювати a повний мережеве з'єднання з ним. Однак це робить, що називається в віці безпеки, поверхнею атаки. Демон Knock - це свого роду мережевий сніфер, який може реагувати, коли спостерігається попередньо налаштована послідовність. Оскільки з'єднання не потрібно встановлювати для того, щоб демон детонації розпізнавав сконфігуровану послідовність, поверхня атаки зменшується, зберігаючи бажану функціональність. У певному сенсі ми будемо передумовувати маршрутизатор a бажаного Відповідь "два біти" (на відміну від бідного Роджера…).
У цій статті ми:
- Покажіть, як використовувати Knockd, щоб мати маршрутизатор Wake-On-Lan у вашій локальній мережі.
- Покажіть, як ініціювати послідовність Knock з програми Android, а також з комп'ютера.
Примітка: Незважаючи на те, що інструкції з установки більше не актуальні, ви можете переглядати серіали фільмів, які я створив «назад, коли», щоб побачити весь випадок налаштування до стуку. (Просто вибачте грубу презентацію).
Наслідки безпеки
Дискусія про те, наскільки безпечним є Knockd, довгий і сягає багатьох тисячоліть (в інтернет-роки), але суть у цьому:
Knock - це рівень безпеки через невідомість посилення інші засоби, такі як шифрування і не повинні використовуватися на власному рівні, як кінець, все це буде мірою безпеки.
Передумови, припущення та рекомендації
- Передбачається, що у вас є маршрутизатор DD-WRT з активацією Opkg.
- Деяке терпіння, як це може зайняти "час", щоб налаштувати.
- Настійно рекомендується отримати обліковий запис DDNS для вашого зовнішнього (зазвичай динамічного) IP.
Дозволяє отримати тріщини
Встановлення та основна конфігурація
Встановіть демон Knock, відкривши термінал маршрутизатору та видавши:
opkg update; opkg встановлює knockd
Тепер, коли встановлено Knockd, нам потрібно налаштувати послідовності запуску та команди, які будуть виконуватися після їх запуску. Для цього відкрийте файл "knockd.conf" у текстовому редакторі. На маршрутизаторі це буде:
vi /opt/etc/knockd.conf
Зробіть його вміст таким:
[варіанти]
logfile = /var/log/knockd.log
UseSyslog
[wakelaptop]
послідовність = 56,56,56,43,43,43,1443,1443,1443
seq_timeout = 30
command = / usr / sbin / wol aa: bb: cc: dd: ee: 22 -i $ (nvram отримує lan_ipaddr | cut -d. -f 1,2,3) .255
tcpflags = sync
Давайте пояснимо вище:
- Сегмент "options" дозволяє конфігурувати глобальні параметри для демона. У цьому прикладі ми доручили демону зберігати журнал як у системному журналі, так і у файлі. Хоча це не завдає шкоди, використовуючи обидва варіанти в поєднанні, ви повинні розглянути питання про збереження тільки одного з них.
- Сегмент "wakelaptop" є прикладом послідовності, яка ініціює команду WOL для вашої локальної мережі для комп'ютера з MAC-адресою aa: bb: cc: dd: ee: 22.
Примітка: Наведена вище команда передбачає поведінку за замовчуванням, яка має підмережу класу C..
Щоб додати більше послідовностей, просто скопіюйте та вставте сегмент "wakelaptop" і налаштуйте його за допомогою нових параметрів та / або команд, які виконуватимуть маршрутизатори.
Стартап
Щоб маршрутизатор викликав демон під час запуску, додайте нижче до сценарію "geek-init" з керівництва OPKG:
knockd -d -c /opt/etc/knockd.conf -i "$ (nvram отримати wan_ifname)"
Це запускає демон Knock на інтерфейсі "WAN" вашого маршрутизатора, щоб він слухав пакети з Інтернету.
Вибийте з Android
У епоху переносимості її практично необхідно «мати додаток для цього»… Отже, StavFX створив для неї завдання :)
Ця програма виконує стукіт послідовності прямо з вашого пристрою Android, і він підтримує створення віджетів на домашніх екранах.
- Встановіть програму Knocker з ринку Android (також будь ласка, будьте добрими і дайте йому хороший рейтинг).
- Після встановлення на пристрої запустіть його. Вас чекає щось на зразок:
- Ви можете довго натиснути значок прикладу, щоб відредагувати його, або клацнути «меню», щоб додати новий запис. Новий запис виглядатиме так:
- Додайте рядки та заповніть інформацію, необхідну для Вашого стука. Для прикладу WOL конфігурація зверху:
- За бажанням можна змінити піктограму довгим натисканням на значок поруч із назвою Knock.
- Збережіть стук.
- Один раз торкніться нового Knock у головному екрані, щоб активувати його.
- За бажанням створіть віджет для нього на головному екрані.
Майте на увазі, що в той час, як ми налаштували прикладний файл конфігурації з групами 3 для кожного порту (через тему розділу Telnet), з цим додатком не існує обмежень на кількість повторів (якщо взагалі) для порту.
Отримуйте задоволення, використовуючи програму, яку StavFX подарував :-)
Knock з Windows / Linux
Хоча можна виконати стук з найпростішою мережевою утилітою a.k.a "Telnet", Microsoft вирішила, що Telnet є "ризиком для безпеки" і згодом більше не встановлює його за замовчуванням на сучасних вікнах. Якщо ви запитаєте мене: «Вони, які можуть відмовитися від істотної свободи, щоб отримати трохи тимчасової безпеки, не заслуговують ні свободи, ні безпеки. ~ Бенджамін Франклін, але я відступаю.
Причина, по якій ми встановлюємо приклад послідовності для груп з 3 для кожного порту, полягає в тому, що, коли telnet не може підключитися до потрібного порту, він автоматично повторить ще двічі. Це означає, що telnet дійсно стукне 3 рази, перш ніж відмовитися. Отже, все, що нам потрібно зробити, це виконати команду telnet один раз для кожного порту в групі портів. Це також є причиною вибору інтервалу тайм-ауту 30 секунд, оскільки ми повинні чекати тайм-ауту telnet для кожного порту, доки не виконаємо наступну групу портів. Рекомендується, щоб після завершення етапу тестування автоматизувати цю процедуру за допомогою простого сценарію Batch / Bash.
Використовуючи нашу прикладну послідовність, це виглядатиме так:
- Якщо у вашому вікні, слідуйте інструкції MS, щоб встановити Telnet.
- Перетягніть до командного рядка та видайте:
telnet geek.dyndns-at-home.com 56
telnet geek.dyndns-at-home.com 43
telnet geek.dyndns-at-home.com 1443
Якщо все пройшло добре, то це має бути.
Вирішення проблем
Якщо маршрутизатор не реагує на послідовності, можна виконати декілька дій з усунення несправностей:
- Переглянути журнал - Knockd буде зберігати журнал, який ви можете переглянути в реальному часі, щоб побачити, чи потрапили послідовності стукань до демона, і якщо команда виконана правильно.
Припускаючи, що ви, принаймні, використовуєте лог-файл, як у наведеному вище прикладі, щоб побачити його в режимі реального часу, видайте в терміналі:tail -f /var/log/knockd.log
- Звертайте увагу на брандмауери - Іноді ваш інтернет-провайдер, робоче місце або інтернет-кафе, беруть на себе право блокувати комунікацію для вас. У такому випадку, поки ваш маршрутизатор може прослуховувати, удари по портах, які заблоковані будь-якою частиною ланцюга, не дістануться до маршрутизатора і йому буде важко реагувати на них. Саме тому рекомендується спробувати комбінації, які використовують відомі порти, такі як 80, 443, 3389 і так далі, перш ніж спробувати більше випадкових. Знову ж таки, ви можете переглянути журнал, щоб побачити, які порти досягають інтерфейсу WAN маршрутизатора.
- Спробуйте виконати послідовності внутрішньо - Перед тим, як залучити вищевказану складність, яку можуть ввести інші частини ланцюжка, рекомендується, щоб ви спробували виконати послідовності всередині, щоб побачити, що вони A. потрапили в маршрутизатор, як ви думаєте, що вони повинні виконувати команду як і очікувалося. Щоб виконати це, ви можете запустити Knockd під час прив'язки до інтерфейсу LAN за допомогою:
knockd -d -i "$ (nvram get lan_ifnameq)" -c /opt/etc/knockd.conf
Як тільки це буде виконано, ви можете спрямувати клієнта на внутрішній IP маршрутизатора замість його зовнішнього.
Порада: Оскільки нокаут слухає на рівні "інтерфейсу", а не на рівні IP, ви можете мати примірник KnockD, який постійно працює на інтерфейсі LAN. Оскільки "Knocker" було оновлено для підтримки двох хостів для збивання, це зробить так, щоб спростити і консолідувати ваші стукаючі профілі. - Пам'ятайте, на якій стороні - включення інтерфейсу WAN з інтерфейсу LAN у вказаній вище конфігурації. Якщо ви хочете бути в змозі постукати незалежно від того, «на якій стороні», ви можете просто запустити демона двічі, як тільки пов'язаний з WAN, як у статті, і один раз прив'язаний до локальної мережі, як на етапі налагодження зверху. Немає жодних проблем з одночасним додаванням команди зверху до того самого скрипта-ініціатора.
Зауваження
Хоча наведений вище приклад може бути виконаний різними іншими методами, ми сподіваємося, що ви зможете використовувати його, щоб дізнатися, як виконати більше завдань. Частина друга до цієї статті, яка приховує сервіс VPN за стуком, наближається, тому залишайтеся з нами.Через стукання, ви зможете: динамічно відкривати порти, відключити / включити служби, віддалено комп'ютери WOL і багато іншого ...