Как попасть в вашу сеть (DD-WRT)

Вы когда-нибудь хотели иметь такой специальный «стук в общежитие» с вашим маршрутизатором, чтобы он только «открыл дверь», когда секретный стук был распознан? TutoryBird объясняет, как установить демон Knock на DD-WRT.

Изображение Bfick и Авиад Равив

Если вы еще этого не сделали, обязательно прочитайте предыдущие статьи серии:

  • Превратите свой домашний маршрутизатор в сверхмощный маршрутизатор с DD-WRT
  • Как установить дополнительное программное обеспечение на домашнем маршрутизаторе (DD-WRT)
  • Как удалить рекламу с Pixelserv на DD-WRT

Предполагая, что вы знакомы с этими темами, продолжайте читать. Имейте в виду, что это руководство является немного более техническим, и новички должны быть осторожны при модификации своего маршрутизатора.

обзор

Традиционно, чтобы иметь возможность общаться с устройством/службой, необходимо инициировать полное сетевое соединение с ним. Однако при этом подвергается, как это называется в эпоху безопасности, поверхность атаки. Демон Knock — это своего рода сетевой анализатор, который может реагировать, когда наблюдается предварительно сконфигурированная последовательность. Поскольку не требуется устанавливать соединение для того, чтобы демон-стук распознал сконфигурированную последовательность, поверхность атаки уменьшается при сохранении требуемой функциональности. В некотором смысле, мы предварительно подготовим маршрутизатор с помощью требуемого ответа «два бита» (в отличие от бедного Роджера…).

В этой статье мы будем:

  • Покажите, как использовать 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]
sequence = 56,56,56,43,43,43,1443,1443,1443
seq_timeout = 30
команда =/usr/sbin/wol aa: bb: cc: dd: ee: 22 -i $ (nvram get lan_ipaddr | вырезать -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 get wan_ifname)"

Это запустит демон Knock на интерфейсе «WAN» вашего маршрутизатора, чтобы он прослушивал пакеты из Интернета.

Стук с Android

В эпоху мобильности почти обязательно иметь «приложение для этого»… поэтому StavFX создал приложение для этой задачи 🙂
Это приложение выполняет последовательности ударов прямо с вашего Android-устройства и поддерживает создание виджетов на домашних экранах.

  • Установите приложение Knocker с рынка Android (также, пожалуйста, будьте добры и оцените его).
  • После установки на вашем устройстве, запустите его. Вас должно встретить что-то вроде:
  • Вы можете долго нажимать значок примера, чтобы отредактировать его, или нажать «меню», чтобы добавить новую запись. Новая запись будет выглядеть так:
  • Добавьте строки и заполните информацию, необходимую для вашего стука. Для примера конфигурации WOL сверху это будет:
  • При желании можно изменить значок, нажав и удерживая значок рядом с именем Knock.
  • Сохранить стук.
  • Один раз нажмите новый Knock на главном экране, чтобы активировать его.
  • При желании создать виджет для него на главном экране.

Имейте в виду, что, хотя мы настроили пример файла конфигурации с группами по 3 для каждого порта (из-за раздела Telnet ниже), в этом приложении нет ограничений на количество повторов (если оно вообще есть) для порта.
Получайте удовольствие, используя приложение, которое подарил StavFX 🙂

Стук из Windows/Linux

Хотя Knocking можно выполнить с помощью самой простой сетевой утилиты a.k.a «Telnet», Microsoft решила, что Telnet представляет собой «угрозу безопасности», и впоследствии больше не устанавливает ее по умолчанию в современных окнах. Если вы спросите меня: «Те, кто может отказаться от необходимой свободы, чтобы получить немного временной безопасности, не заслуживают ни свободы, ни безопасности. ~ Бенджамин Франклин ”, но я отвлекся.

Причина, по которой мы устанавливаем пример последовательности для групп по 3 для каждого порта, заключается в том, что когда telnet не может подключиться к нужному порту, он автоматически попытается еще 2 раза. Это означает, что telnet будет стучать 3 раза, прежде чем сдаться. Поэтому все, что нам нужно сделать, это выполнить команду telnet один раз для каждого порта в группе портов. Это также причина, по которой был выбран интервал ожидания 30 секунд, так как мы должны ждать тайм-аута telnet для каждого порта, пока мы не выполним следующую группу портов. После завершения фазы тестирования рекомендуется автоматизировать эту процедуру с помощью простого Batch/Bash-скрипта.

Используя наш пример последовательности, это будет выглядеть так:

  • Если вы на Windows, следуйте инструкциям 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. попадают в маршрутизатор так, как вы думаете, они должны B. выполнить команду/как и ожидалось. Для этого вы можете запустить Knockd, будучи привязанным к интерфейсу локальной сети, с помощью:

    knockd -d -i "$ (nvram get lan_ifnameq)" -c /opt/etc/knockd.conf

    Выполнив вышеперечисленное, вы можете направить клиент Knocking на внутренний IP-адрес маршрутизатора, а не на его внешний.
    Совет: поскольку knockd слушает на уровне «интерфейса», а не на уровне IP, вы можете захотеть, чтобы экземпляр KnockD работал на интерфейсе LAN все время. Поскольку «Knocker» был обновлен для поддержки двух узлов для стука, это будет сделано для упрощения и консолидации ваших профилей стука.

  • Помните, на чьей стороне вы находитесь — Невозможно выбить интерфейс WAN из интерфейса LAN в описанной выше конфигурации. Если вы хотите иметь возможность стучать независимо от того, «с какой стороны вы находитесь», вы можете просто запустить демона дважды, один раз привязанный к WAN, как в статье, и один раз связанный с LAN, как на шаге отладки сверху.Нет проблем запустить их одновременно, просто добавив команду сверху к одному и тому же скрипту geek-init.

замечания

Хотя приведенный выше пример может быть выполнен различными другими методами, мы надеемся, что вы сможете использовать его, чтобы научиться выполнять более сложные задачи.
Вторая часть этой статьи, которая скрывает службу VPN за стуком, так что следите за обновлениями.

С помощью Knocking вы сможете: динамически открывать порты, отключать/включать службы, удаленно подключать компьютеры WOL и многое другое …

Оцените статью
TutoryBird.Ru
Добавить комментарий