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

Мы показали, как удаленно запускать WOL с помощью «Стука портов» на вашем маршрутизаторе. В этой статье мы покажем, как использовать его для защиты службы 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" состояние ОТНОШЕНО, УСТАНОВЛЕНО "| 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.конф

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

[включить-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 knocker от StavFX.
  • Что касается Android, не забывайте, что есть PPTP VPN-клиент, обычно встроенный в ОС от производителя.
  • Метод первоначальной блокировки чего-либо, а затем продолжения разрешения уже установленной связи, можно использовать практически для любой связи на основе TCP. На самом деле в фильмах Knockd на DD-WRT 1–6 я уже давно вернулся к тому, когда использовал в качестве примера протокол удаленного рабочего стола (RDP), использующий порт 3389.

Примечание. Чтобы сделать это, вам нужно получить на своем маршрутизаторе функцию электронной почты, которая в настоящее время действительно не работает, поскольку снимок SVN пакетов opkg в OpenWRT находится в беспорядке. Вот почему я предлагаю использовать knockd непосредственно на VPN-боксе, который позволяет вам использовать все опции отправки электронной почты, доступные в Linux/GNU, такие как SSMTP и sendEmail, чтобы упомянуть некоторые.

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

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