Для всех моих друзей, кто любит port knock, я написал графическое приложение для Windows. Оно может постучать по TCP и/или UDP... к тому же вы даже можете добавить текст в UDP port knock. Загляните, друзья мои. http://gregsowell.com/?p=2020
Отлично! Похоже, я тоже начну это использовать. Хотя, честно говоря, ничто не сравнится с mAP lite + DHCP клиентом и скриптом, который делает порт-нокинг и устанавливает IPsec-туннель домой, когда путешествуешь.
Я понимаю смысл использования порт-стука, но предпочитаю использовать DDNS-клиенты на мобильных управляемых устройствах. Настройте ваши роутеры на разрешение «ddnshostname.domain.com».
Сомневаюсь, что Грег включает трояны в свои файлы. Скорее всего, это ложное срабатывание. Загрузите файл на https://www.virustotal.com/#/home/upload и посмотрите, что там обнаружится.
В программе есть маленькое отдельное приложение, которое распаковывается, чтобы запускать индивидуальные "стуки" (tcp.exe). Некоторые антивирусные программы не любят, когда распаковывается и добавляется дополнительное приложение. Это был мой ленивый способ заставить программу запускать подключения.
Да, многие антивирусы его детектируют (и это еще до запуска приложения, чтобы оно извлекло tcp.exe): https://www.virustotal.com/#/file/148f082f18ded2bceea7316cf950d3f6faf124e66da023f5e8d3e1887083aaa0/detection. Уверен, что любые утилиты, созданные для проверки сетевых портов, будут часто давать ложные срабатывания, потому что это основная задача большинства вирусных пакетов для распространения. Я пытаюсь сделать задание в планировщике задач, которое можно было бы автоматизировать для ежедневных проверок фаервола. Пока нашёл такие варианты: Powershell: Test-NetConnection -port — тут слишком долгие таймауты, надо посмотреть, можно ли их сократить. Утилиты Sysinternals: psping, tcping.exe — https://www.elifulkerson.com/projects/tcping.php. Может, кто-то подскажет что-то ещё, что уже встроено в Windows и вызывается из командной строки? Наверняка есть однострочник, который справится с этой задачей.
Я точно не помню, почему сделал именно так; кажется, когда я писал это, autoit зависал, ожидая подключения, прежде чем переходить к следующему порту. Думаю, могу быстро переписать, чтобы проверить, будет ли работать как задумано.
Нет. Это метод снижения риска того, что кто-то взломает ваш VPN, который открыт для входа откуда угодно, потому что заранее вы не знаете, откуда подключитесь в следующий раз. Злоумышленники нацеливаются на VPN, потому что все ими пользуются и при этом не могут оценить их реальную безопасность. Поэтому, если вам нужно оставлять VPN открытым для входа откуда угодно, использование порт-нокинга — полезное дополнительное средство защиты от возможных уязвимостей VPN-программы. Его недостатки в том, что если не использовать какую-то «скользящую» (rolling) кодировку, он совершенно не защищает от повторной атаки (replay attack), которую может провести «человек посередине» (например, айтишник в отеле, через который вы подключаетесь, или кто-то, взломавший точку доступа отеля, или сосед по комнате, который записывает беспроводной трафик вашего ПК, использующего общий WPA-пароль для всех клиентов сети отеля). Еще один минус — если вы пытаетесь «стучать» из-за NAT, который случайным образом распределяет соединения между несколькими публичными IP-адресами, ваш роутер не пропустит вас, потому что все «стуки» должны идти с одного и того же IP в течение всей последовательности.
Port knocking кажется неплохим способом добавить дополнительный уровень безопасности. Я использовал его, когда только начал работать с продуктами Mikrotik, но потом перешёл на другие методы. DDNS (на моём оборудовании для управления есть клиент DDNS, который обновляет динамическую DNS-запись с IP-адресом управляемого устройства. Если DDNS IP не менялся больше x часов, он меняется на 127.0.0.1). Даже если DDNS окажется скомпрометирован, злоумышленник не будет знать, какое устройство следит за этой записью. Linux-сервер с OpenVPN и двухфакторной аутентификацией для удалённого управления. Даже если его взломают, никто не узнает, к какому оборудованию разрешён доступ с этого VPN IP.