В вычислительной сети, port knocking (с англ. — «стук по портам», отсылка на особый стук в дверь в качестве пароля) — автоматизированный метод внешнего открытия TCP- и UDP-портов в брандмауэре отправкой определённых пакетов на заранее указанные закрытые порты. Когда будет получена верная последовательность, правила брандмауэра автоматически изменятся для разрешения клиенту, который её отправил, подключаться к ранее защищённым портам. Существует также вариант под названием Single Packet Authorization (SPA, с англ. — «Авторизация по одному пакету»), где необходим только один «стук», состоящий из зашифрованного пакета.
Основной целью этого метода является защита потенциально уязвимого программного обеспечения от брутфорса и прочих атак, ибо если атакующий не знает верную последовательность, то защищённые порты будут казаться закрытыми, тем самым создавая вид, что на них ничего не работает. Зачастую этот метод используется для защиты SSH.
Общее представление
Данный метод зачастую реализуется конфигурацией демона (например, ), который проверяет лог брандмауэра на попытки подключения к определённым портам, и после чего изменяет его правила в случае обнаружения верной последовательности. Также он может быть реализован на уровне ядра, например, использованием iptables, работающим на таком уровне.
Сама же последовательность похожа на секретное рукопожатие (с англ. — «secret handshake») и может состоять из любого количества TCP и UDP портов, а также в некоторых случаях ICMP и прочих пакетов из прочих протоколов. Сложность последовательности может быть любая, начиная от списка портов (например, TCP порт 1000, TCP порт 2000 и UDP порт 3000) заканчивая зависимостью от времени, IP-адреса или же зашифрованного хэша.
Для отправки самой последовательности клиенту необходимо использовать дополнительную утилиту, начиная от простого netcat и заканчивая генератором определённого хэша, и только после её отправки ему будет разрешено подключаться к системе самым обычным образом.
Большинство реализаций являются stateful системами и всегда проверяют последовательность на её корректность, прежде чем изменять правила брандмауэра. Так, например, если клиент верно отправит нужный пакет на нужный порт и после чего отправит неверный пакет на верный/неверный порт, ему придётся начинать сначала. При этом сама реализация не даёт никакого знака на то, что была отправлена неверная последовательность.
Недостатки
Метод зависит от работоспособности самого демона и также от его оперативности. Его падение приведёт к ограничению доступа к защищённым портам всем пользователям, и с точки зрения безопасности, это является единой точкой отказа этого метода.
Реализации, не использующие криптографические хэши, подвержены спуфингу IP-адреса.
Также, port knocking нельзя использовать как единую систему аутентификации, не установив другие системы защиты (IDS, аутентификация по специальным ключам/паролям и прочее): с точки зрения безопасности, банальное наличие этого метода является безопасностью через неясность и если атакующий каким-либо образом узнает последовательность (например, MITM-атакой), вся система будет уязвима.
Примечания
- Michael Rash (2004) Combining Port Knocking and Passive OS Fingerprinting with fwknop
- Michael Rash (2006). Single Packet Authorization with Fwknop.
- Michael Rash (2007). Protecting SSH Servers with Single Packet Authorization.
- Moxie Marlinspike (2009). Using knockknock for Single Packet Authorization.
- Port knocking или как обезопасить себя от брута по ssh . Хабр (10 мая 2013). Дата обращения: 10 июля 2024.
- PortKnocking - Community Help Wiki . help.ubuntu.com. Дата обращения: 8 июля 2023.
- Justin Ellingwood. How To Configure Port Knocking Using Only Iptables on an Ubuntu VPS . digitalocean.com (17 января 2014). Дата обращения: 24 апреля 2016.
Википедия, чтение, книга, библиотека, поиск, нажмите, истории, книги, статьи, wikipedia, учить, информация, история, скачать, скачать бесплатно, mp3, видео, mp4, 3gp, jpg, jpeg, gif, png, картинка, музыка, песня, фильм, игра, игры, мобильный, телефон, Android, iOS, apple, мобильный телефон, Samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Сеть, компьютер
V vychislitelnoj seti port knocking s angl stuk po portam otsylka na osobyj stuk v dver v kachestve parolya avtomatizirovannyj metod vneshnego otkrytiya TCP i UDP portov v brandmauere otpravkoj opredelyonnyh paketov na zaranee ukazannye zakrytye porty Kogda budet poluchena vernaya posledovatelnost pravila brandmauera avtomaticheski izmenyatsya dlya razresheniya klientu kotoryj eyo otpravil podklyuchatsya k ranee zashishyonnym portam Sushestvuet takzhe variant pod nazvaniem Single Packet Authorization SPA s angl Avtorizaciya po odnomu paketu gde neobhodim tolko odin stuk sostoyashij iz zashifrovannogo paketa Osnovnoj celyu etogo metoda yavlyaetsya zashita potencialno uyazvimogo programmnogo obespecheniya ot brutforsa i prochih atak ibo esli atakuyushij ne znaet vernuyu posledovatelnost to zashishyonnye porty budut kazatsya zakrytymi tem samym sozdavaya vid chto na nih nichego ne rabotaet Zachastuyu etot metod ispolzuetsya dlya zashity SSH Obshee predstavlenieDannyj metod zachastuyu realizuetsya konfiguraciej demona naprimer kotoryj proveryaet log brandmauera na popytki podklyucheniya k opredelyonnym portam i posle chego izmenyaet ego pravila v sluchae obnaruzheniya vernoj posledovatelnosti Takzhe on mozhet byt realizovan na urovne yadra naprimer ispolzovaniem iptables rabotayushim na takom urovne Sama zhe posledovatelnost pohozha na sekretnoe rukopozhatie s angl secret handshake i mozhet sostoyat iz lyubogo kolichestva TCP i UDP portov a takzhe v nekotoryh sluchayah ICMP i prochih paketov iz prochih protokolov Slozhnost posledovatelnosti mozhet byt lyubaya nachinaya ot spiska portov naprimer TCP port 1000 TCP port 2000 i UDP port 3000 zakanchivaya zavisimostyu ot vremeni IP adresa ili zhe zashifrovannogo hesha Dlya otpravki samoj posledovatelnosti klientu neobhodimo ispolzovat dopolnitelnuyu utilitu nachinaya ot prostogo netcat i zakanchivaya generatorom opredelyonnogo hesha i tolko posle eyo otpravki emu budet razresheno podklyuchatsya k sisteme samym obychnym obrazom Bolshinstvo realizacij yavlyayutsya stateful sistemami i vsegda proveryayut posledovatelnost na eyo korrektnost prezhde chem izmenyat pravila brandmauera Tak naprimer esli klient verno otpravit nuzhnyj paket na nuzhnyj port i posle chego otpravit nevernyj paket na vernyj nevernyj port emu pridyotsya nachinat snachala Pri etom sama realizaciya ne dayot nikakogo znaka na to chto byla otpravlena nevernaya posledovatelnost NedostatkiMetod zavisit ot rabotosposobnosti samogo demona i takzhe ot ego operativnosti Ego padenie privedyot k ogranicheniyu dostupa k zashishyonnym portam vsem polzovatelyam i s tochki zreniya bezopasnosti eto yavlyaetsya edinoj tochkoj otkaza etogo metoda Realizacii ne ispolzuyushie kriptograficheskie heshi podverzheny spufingu IP adresa Takzhe port knocking nelzya ispolzovat kak edinuyu sistemu autentifikacii ne ustanoviv drugie sistemy zashity IDS autentifikaciya po specialnym klyucham parolyam i prochee s tochki zreniya bezopasnosti banalnoe nalichie etogo metoda yavlyaetsya bezopasnostyu cherez neyasnost i esli atakuyushij kakim libo obrazom uznaet posledovatelnost naprimer MITM atakoj vsya sistema budet uyazvima PrimechaniyaMichael Rash 2004 Combining Port Knocking and Passive OS Fingerprinting with fwknop Michael Rash 2006 Single Packet Authorization with Fwknop Michael Rash 2007 Protecting SSH Servers with Single Packet Authorization Moxie Marlinspike 2009 Using knockknock for Single Packet Authorization Port knocking ili kak obezopasit sebya ot bruta po ssh rus Habr 10 maya 2013 Data obrasheniya 10 iyulya 2024 PortKnocking Community Help Wiki neopr help ubuntu com Data obrasheniya 8 iyulya 2023 Justin Ellingwood How To Configure Port Knocking Using Only Iptables on an Ubuntu VPS neopr digitalocean com 17 yanvarya 2014 Data obrasheniya 24 aprelya 2016