1

Я знаю что такое Port Knocking. Но я где-то читал, писал URL Knocking . Я не нашел никакой полезной ссылки о URL Knocking . Теперь я действительно хочу знать, что это такое и чем оно отличается от Port Knocking . Заранее спасибо.

2 ответа2

1

URL Стучит непрерывно, читая журнал apache (или другого веб-сервера), и если он видит какой-то URL (например, https://example.com/TheSecretStringHere/), обход которого совпадает с предустановкой на стороне сервера "TheSecretStringHere", строка с запрошенным URL, затем просто манипулируйте правилами брандмауэра, открывая доступ к указанному на стороне сервера порту. Это решение можно использовать без какого-либо стороннего программного обеспечения, используя только обычно устанавливаемые утилиты ОС.

Преимущество этого метода в том, что - если вы используете протокол https , то он исключает наблюдателей типа «человек посередине», поскольку фактический URL-адрес невидим, поскольку он зашифрован. Другой - легко реализовать собственное решение на основе вашего рабочего процесса.

Недостаток - все это основано на реализации.

В предоставленной мной ссылке скрипт постоянно читает журнал веб-сервера, используя эффективную функцию
tail -f (который использует уведомление ядра inotify об изменениях файла) и фильтрует URL с помощью grep . Если URL совпадает с секретной строкой, скрипт запускает какое-то действие.

Существуют дополнительные дополнительные утилиты, которые можно использовать в пользовательском пространстве, такие как inotifywait которые могут эффективно отслеживать журнал веб-сервера и, если есть какие-либо изменения, запускать некоторые действия (которые могут быть не просто открытием порта).

В отличие от Port Knocking , обычно это сторонние программы, которые не защищены от посредников, но делают то же самое, что и URL Knocking .

В заключение, если вы настроите любой веб-сервер, который может создавать файлы журналов и поддерживать https то IMO URL Knocking является более безопасным способом открытия портов по требованию.


Пример URL-стука (по ссылке выше):

#!/bin/sh

open_port() {
    /sbin/iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 443 -j REDIRECT --to-port 22  
    /sbin/iptables -I INPUT -p tcp --dport 22 -j ACCEPT
}

close_port() {
    /sbin/iptables -t nat -D PREROUTING -i eth0 -p tcp --dport 443 -j REDIRECT --to-port 22 
    /sbin/iptables -D INPUT -p tcp --dport 22 -j ACCEPT 
}

tail -n0 --follow=name /var/log/apache2/access.log | 
(while read line; do 
    if echo $line | grep "/SOME SECRET THING/"; then
        echo OPEN
        open_port
        sleep 60
        echo CLOSE    
        close_port
    fi
done)

Кредит на сценарий собирается: Джейсон Спашетт

0

URL Knocking - та же идея, что и Port Knocking, но вместо того, чтобы наблюдать за попытками подключения к секретной серии портов, он ищет HTTP-запросы для секретной серии URL. Он был изобретен для случаев, когда внешнее устройство, выполняющее стук, находится за брандмауэром с ограничительными правилами выхода, поэтому оно не может стучать ни в какие порты, кроме, возможно, 80 и 443. Таким образом, он соединяется через HTTP [S] и "стучит", запрашивая волшебную последовательность URL-адресов.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .