Клиент 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 Добавьте дверь в приложении
- 1Новая дверь › Начать с шаблона › knockd (пример: 7000, 8000, 9000) заполняет последовательность из трёх TCP-портов и SSH в качестве проверяемого порта; замените порты на свои.
- 2Или + › Импортировать из файла и выберите knockd.conf: каждый раздел с последовательностью становится дверью.
- 3Закрепите IPv4 или IPv6 для двери, если knockd на вашем сервере прослушивает только одно семейство адресов.
- 4Нажмите и удерживайте латунное дверное кольцо. Когда порт 22 ответит, дверь отобразит «Дверь приоткрыта», а «Открыть SSH» передаст управление вашему приложению SSH.
Все примеры на GitHub → Все конфигурации с этой страницы, готовые к копированию: github.com/mobilcomm/secretknock-examples (общественное достояние).
Вопросы
Работает ли это с tcpflags = syn в knockd?
Да. Каждый TCP-стук — это один SYN, именно это учитывает tcpflags = syn.
Можно ли увидеть этот же стук в виде команды?
Да. В редакторе двери стук отображается как команда knock для терминала, готовая к вставке.