Как проникнуть в вашу сеть, часть 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» выполняет обратное действие и удаляет правило, разрешающее связь.
авторсоветы
В то время как вы должны быть готовы, есть пара моментов, которые я должен упомянуть.
- Поиск проблемы. Помните, что если у вас возникли проблемы, сегмент «Устранение неполадок» в конце первой статьи должен быть вашей первой остановкой.
- Если вы хотите, вы можете сделать так, чтобы директивы «start / stop» выполняли несколько команд, разделяя их с помощью полуколена (;) или даже сценария. Это позволит вам сделать некоторые изящные вещи. Например, я knockd отправил мне * электронное письмо, сообщающее, что последовательность была запущена и откуда.
- Не забывайте, что «для этого есть приложение», и хотя оно не упомянуто в этой статье, вам предлагается воспользоваться программой для Android-пользователя от StavFX..
- Что касается Android, не забывайте, что есть PPTP VPN-клиент, обычно встроенный в ОС от производителя..
- Метод первоначальной блокировки чего-либо, а затем продолжения разрешения уже установленной связи, можно использовать практически для любой связи на основе TCP. На самом деле, в фильмах Knockd на DD-WRT 1–6 я уже делал это тогда, когда использовал протокол удаленного рабочего стола (RDP), использующий порт 3389 в качестве примера..
Кто беспокоит мой сон?