Przejdź do treści
Secret Knock

Klient knockd na iPhone’a, iPada i Maca

knockd otwiera port, gdy jeden adres trafi w tajną sekwencję portów w odpowiednim czasie. Secret Knock wysyła tę sekwencję z iPhone’a, iPada, Maca lub Apple Watch, sprawdza, czy port odpowiada, i otwiera aplikację SSH.

Co wysyła Secret Knock

Każdy krok drzwi to puknięcie TCP lub UDP do jednego portu, z opcjonalnym opóźnieniem przed nim oraz — w przypadku UDP — opcjonalnymi danymi payload jako tekst lub kod szesnastkowy. Puknięcie TCP to jedna próba połączenia: aplikacja wysyła pojedynczy SYN i natychmiast zamyka próbę, dzięki czemu system operacyjny go nie retransmituje — knockd 0.8 resetuje sekwencję po powtórzonym SYN.

Sekwencje jednorazowe (one_time_sequences w knockd) również działają: wybierz Typ pukania › Sekwencje jednorazowe (knockd) i wprowadź listę; po pukaniu, które uchyliło drzwi, Secret Knock przechodzi do następnej sekwencji. Importowanie pliku knockd.conf nie odczytuje pliku sekwencji — import wyświetla taką informację — dlatego wprowadź tę listę ręcznie.

Skonfiguruj serwer

Minimalna sekcja knockd, która otwiera SSH dla pukającego adresu na 10 sekund. Wybierz własne porty — nigdy nie używaj ponownie opublikowanych przykładów.

[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

Dodaj drzwi w aplikacji

  1. 1Szablon Nowe drzwi › Zacznij od szablonu › knockd (przykład: 7000, 8000, 9000) wypełnia trzyportową sekwencję TCP oraz ustawia SSH jako port do sprawdzenia; zastąp porty własnymi.
  2. 2Możesz też wybrać + › Importuj z pliku i wskazać plik knockd.conf: każda sekcja z sekwencją staje się drzwiami.
  3. 3Ustaw IPv4 lub IPv6 na stałe dla drzwi, jeśli knockd na serwerze nasłuchuje tylko jednej rodziny adresów.
  4. 4Naciśnij i przytrzymaj mosiężną kołatkę. Gdy port 22 odpowie, drzwi pokażą stan Uchylone drzwi, a Otwórz SSH przekaże Cię do aplikacji SSH.

Wszystkie przykłady na GitHubie → Każda konfiguracja z tej strony, gotowa do skopiowania: github.com/mobilcomm/secretknock-examples (domena publiczna).

Pytania

Czy działa z tcpflags = syn w knockd?

Tak. Każde puknięcie TCP to pojedynczy SYN, czyli dokładnie to, co zlicza tcpflags = syn.

Czy mogę zobaczyć to samo puknięcie jako polecenie?

Tak. Edytor drzwi pokazuje puknięcie jako polecenie knock dla terminala, gotowe do wklejenia.

Przewodniki dotyczące Twojej konfiguracji