Мы показали вам как запускать WOL удаленно с помощью «Port Knocking» на вашем маршрутизаторе . В этой статье мы покажем, как использовать его для защиты службы VPN.
Автор изображения Авиад Равив & 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.conf
Добавить к существующей конфигурации:
[enable-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 отправил мне * электронное письмо с сообщением о том, что последовательность была запущена и откуда.
- Не забывайте, что " Для этого есть приложение »И даже если это не упомянуто в этой статье, вам рекомендуется StavFX Android программа молотка .
- Говоря об Android, не забывайте, что в ОС обычно встроен клиент PPTP VPN от производителя.
- Метод, который сначала блокирует что-то, а затем продолжает разрешать уже установленную связь, может использоваться практически в любой связи на основе TCP. Фактически в Удар по DD-WRT 1 ~ 6 фильмы, я уже делал это раньше, когда я использовал протокол удаленного рабочего стола (RDP), который использует порт 3389 в качестве примера.