Домашняя » как » Как проникнуть в вашу сеть, часть 2 Защита вашего VPN (DD-WRT)

    Как проникнуть в вашу сеть, часть 2 Защита вашего VPN (DD-WRT)

    Мы показали вам, как запускать WOL удаленно, используя «Port Knocking» на вашем маршрутизаторе. В этой статье мы покажем, как использовать его для защиты VPN-сервиса..

    Изображение Aviad Raviv & bfick.

    Предисловие

    Если вы использовали встроенную функциональность DD-WRT для VPN или у вас есть другой VPN-сервер в вашей сети, вы можете по достоинству оценить возможность защитить его от атак методом перебора, скрывая его за последовательностью стука. Делая это, вы будете отфильтровывать сценариев, которые пытаются получить доступ к вашей сети. С учетом сказанного, как указывалось в предыдущей статье, стук портов не является заменой хорошего пароля и / или политики безопасности. Помните, что при достаточном терпении злоумышленник может обнаружить последовательность и выполнить повторную атаку.
    Также имейте в виду, что недостатком реализации этого является то, что когда любой клиент / клиенты VPN хотят подключиться, они должны запустить последовательность стука заранее и что если они по какой-либо причине не смогут выполнить последовательность, они вообще не смогут подключиться к VPN.

    обзор

    Чтобы защитить * службу VPN, мы сначала отключим всю возможную связь с ним, заблокировав экземплярный порт 1723. Для достижения этой цели мы будем использовать iptables. Это потому, что именно так фильтруется связь в большинстве современных дистрибутивов Linux / GNU в целом и в DD-WRT в частности. Если вам нужна дополнительная информация о iptables, ознакомьтесь с его статьей в вики и посмотрите нашу предыдущую статью на эту тему. Как только служба защищена, мы создадим последовательность стуков, которая временно откроет порт для создания экземпляра VPN, а также автоматически закроет его через заданный промежуток времени, сохраняя при этом уже установленный сеанс VPN подключенным.

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

    Предпосылки, предположения и рекомендации

    • Предполагается / требуется наличие у вас маршрутизатора DD-WRT с поддержкой Opkg.
    • Предполагается / требуется, что вы уже выполнили шаги, описанные в руководстве «Как проникнуть в вашу сеть (DD-WRT)».
    • Предполагается некоторое знание сетей.

    Давайте взломать.

    По умолчанию Правило «Блокировать новые VPN» в DD-WRT

    Хотя приведенный ниже фрагмент «кода», вероятно, подойдет для каждого уважающего себя iptables-дистрибутива Linux / GNU, поскольку существует так много вариантов, мы покажем, как его использовать только в DD-WRT. Ничто не мешает вам, если вы хотите, реализовать это непосредственно на VPN-сервере. Однако, как это сделать, выходит за рамки этого руководства.

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

    Из веб-интерфейса DD-WRT:

    • Зайдите в «Администрирование» -> «Команды».
    • Введите ниже «код» в текстовое поле:

      inline = "$ (iptables -L INPUT -n | grep -n" state RELATED, ESTABLISHED "| awk -F: 'print $ 1')"; рядный = $ (($ рядный 2 + 1)); iptables -I INPUT "$ inline" -p tcp --dport 1723 -j DROP

    • Нажмите «Сохранить брандмауэр».
    • Готово.

    Что это за команда «Вуду»?

    Приведенная выше команда «волшебство вуду» выполняет следующие действия:

    • Находит, где находится линия iptable, которая позволяет проходить через уже установленную связь. Мы делаем это потому, что: A. На маршрутизаторах DD-WRT, если служба VPN включена, она будет расположена чуть ниже этой линии, а B. Для нашей цели важно продолжать разрешать уже установленным сеансам VPN жить после стук событие.
    • Вычитает два (2) из ​​выходных данных команды перечисления для учета смещения, вызванного заголовками информационных столбцов. Как только это будет сделано, добавьте один (1) к указанному выше номеру, чтобы добавляемое нами правило появилось сразу после правила, разрешающего уже установленную связь. Я оставил здесь эту очень простую «математическую проблему», просто чтобы прояснить логику «почему нужно убрать одно с места правила вместо того, чтобы добавить одно к нему».

    Конфигурация KnockD

    Нам нужно создать новую последовательность запуска, которая позволит создавать новые VPN-соединения. Для этого отредактируйте файл knockd.conf, введя в терминале:

    vi /opt/etc/knockd.conf

    Добавьте к существующей конфигурации:

    [Включить VPN-]
    последовательность = 02,02,02,01,01,01,2010,2010,2010
    seq_timeout = 60
    start_command = iptables -I INPUT 1 -s% IP% -p tcp --dport 1723 -j ПРИНЯТЬ
    cmd_timeout = 20
    stop_command = iptables -D INPUT -s% IP% -p tcp --dport 1723 -j ПРИНЯТЬ

    Эта конфигурация будет:

    • Установите окно возможности завершить последовательность до 60 секунд. (Рекомендуется сделать это как можно короче)
    • Прослушайте последовательность из трех ударов по портам 2, 1 и 2010 (этот порядок является преднамеренным, чтобы сбить сканеры портов с пути).
    • Как только последовательность будет обнаружена, выполните команду start_command. Эта команда «iptables» поместит «принимать трафик, предназначенный для порта 1723, откуда поступили стуки», в верхней части правил брандмауэра. (Директива% IP% специально обрабатывается KnockD и заменяется IP-адресом источника ударов).
    • Подождите 20 секунд, прежде чем выдать «stop_command».
    • Выполните команду «stop_command». Где эта команда «iptables» выполняет обратное действие и удаляет правило, разрешающее связь.
    Вот и все, ваш VPN-сервис теперь должен быть подключен только после успешного «стука».

    авторсоветы

    В то время как вы должны быть готовы, есть пара моментов, которые я должен упомянуть.

    • Поиск проблемы. Помните, что если у вас возникли проблемы, сегмент «Устранение неполадок» в конце первой статьи должен быть вашей первой остановкой.
    • Если вы хотите, вы можете сделать так, чтобы директивы «start / stop» выполняли несколько команд, разделяя их с помощью полуколена (;) или даже сценария. Это позволит вам сделать некоторые изящные вещи. Например, я knockd отправил мне * электронное письмо, сообщающее, что последовательность была запущена и откуда.
    • Не забывайте, что «для этого есть приложение», и хотя оно не упомянуто в этой статье, вам предлагается воспользоваться программой для Android-пользователя от StavFX..
    • Что касается Android, не забывайте, что есть PPTP VPN-клиент, обычно встроенный в ОС от производителя..
    • Метод первоначальной блокировки чего-либо, а затем продолжения разрешения уже установленной связи, можно использовать практически для любой связи на основе TCP. На самом деле, в фильмах Knockd на DD-WRT 1–6 я уже делал это тогда, когда использовал протокол удаленного рабочего стола (RDP), использующий порт 3389 в качестве примера..
    Примечание: чтобы сделать это, вам нужно будет получить функциональность электронной почты на вашем маршрутизаторе, который в настоящее время действительно не работает, потому что снимок SVN пакетов opkg OpenWRT находится в беспорядке. Вот почему я предлагаю использовать knockd непосредственно на VPN-боксе, который позволяет вам использовать все опции отправки электронной почты, которые доступны в Linux / GNU, такие как SSMTP и sendEmail, чтобы упомянуть некоторые.

    Кто беспокоит мой сон?