Перейти к содержимому
Secret Knock

Клиент knockd для iPhone, iPad и Mac

knockd открывает порт, когда один адрес вовремя обращается к секретной последовательности портов. Secret Knock отправляет эту последовательность с вашего iPhone, iPad, Mac или Apple Watch, проверяет, отвечает ли порт, и открывает ваше приложение SSH.

Что отправляет Secret Knock

Каждый шаг двери — это TCP- или UDP-стук в один порт с необязательной задержкой перед ним и, для UDP, необязательной полезной нагрузкой в виде текста или шестнадцатеричных данных. TCP-стук — это одна попытка подключения: приложение отправляет один SYN и сразу закрывает попытку, поэтому операционная система не передаёт его повторно — knockd 0.8 сбрасывает последовательность при повторном SYN.

Одноразовые последовательности (one_time_sequences в knockd) тоже поддерживаются: выберите «Тип стука» › «Одноразовые последовательности стуков (knockd)» и введите список; после стука, открывшего дверь, Secret Knock переходит к следующей последовательности. При импорте knockd.conf файл последовательностей не считывается — это указано при импорте, — поэтому введите этот список вручную.

Настройте сервер

Минимальный раздел knockd, который открывает SSH для выполняющего стук адреса на 10 секунд. Выберите собственные порты — никогда не используйте повторно опубликованные примеры.

[options]
    UseSyslog

[openSSH]
    sequence      = 7311:tcp,8822:tcp,9133:udp
    seq_timeout   = 10
    tcpflags      = syn
    start_command = /usr/sbin/iptables -I INPUT -s %IP% -p tcp --dport 22 -j ACCEPT
    cmd_timeout   = 10
    stop_command  = /usr/sbin/iptables -D INPUT -s %IP% -p tcp --dport 22 -j ACCEPT
/etc/knockd.conf

Добавьте дверь в приложении

  1. 1Новая дверь › Начать с шаблона › knockd (пример: 7000, 8000, 9000) заполняет последовательность из трёх TCP-портов и SSH в качестве проверяемого порта; замените порты на свои.
  2. 2Или + › Импортировать из файла и выберите knockd.conf: каждый раздел с последовательностью становится дверью.
  3. 3Закрепите IPv4 или IPv6 для двери, если knockd на вашем сервере прослушивает только одно семейство адресов.
  4. 4Нажмите и удерживайте латунное дверное кольцо. Когда порт 22 ответит, дверь отобразит «Дверь приоткрыта», а «Открыть SSH» передаст управление вашему приложению SSH.

Все примеры на GitHub → Все конфигурации с этой страницы, готовые к копированию: github.com/mobilcomm/secretknock-examples (общественное достояние).

Вопросы

Работает ли это с tcpflags = syn в knockd?

Да. Каждый TCP-стук — это один SYN, именно это учитывает tcpflags = syn.

Можно ли увидеть этот же стук в виде команды?

Да. В редакторе двери стук отображается как команда knock для терминала, готовая к вставке.

Руководства по настройке