Salt la conținut
Secret Knock

Ascundeți SSH în spatele bătăilor în porturi

Un port SSH deschis atrage încercări de autentificare de pe întregul internet. Bătăile în porturi mențin portul închis până când demonstrați că știți un secret — apoi îl deschid numai pentru adresa dvs., timp de câteva secunde.

Cu knockd și nftables

Blocați SSH în mod implicit și acceptați-l numai de la adresele dintr-un set cu expirare. knockd adaugă în acel set adresa de la care s-a bătut; nftables o elimină când expiră timpul, iar sesiunea SSH deja stabilită continuă să funcționeze.

table inet filter {
    set knocked4 {
        type ipv4_addr
        flags timeout
    }
    chain input {
        type filter hook input priority 0; policy drop;
        ct state established,related accept
        iif "lo" accept
        tcp dport 22 ip saddr @knocked4 accept
    }
}
/etc/nftables.conf (extras)

Secțiunea knockd care completează setul:

[openSSH]
    sequence      = 7311:tcp,8822:tcp,9133:udp
    seq_timeout   = 10
    tcpflags      = syn
    start_command = /usr/sbin/nft add element inet filter knocked4 { %IP% timeout 30s }
/etc/knockd.conf

Păstrați accesul permanent separat

Dacă permiteți permanent și anumite adrese, păstrați-le într-un set separat, fără expirare. Adăugarea unei adrese care se află deja într-un set cu expirare nu îi resetează timpul de expirare, astfel că amestecarea ambelor tipuri de intrări într-un singur set vă poate bloca accesul când expiră temporizatorul.

Sau utilizați fwknop

fwknop SPA este mai sigur decât o secvență: un singur pachet criptat și autentificat, care nu poate fi reutilizat. Consultați ghidul fwknop.

De pe iPhone la SSH

  1. 1Țineți apăsat ciocănelul din alamă. Secret Knock verifică dacă portul 22 răspunde și afișează cât timp rămâne deschis.
  2. 2Deschideți SSH deschide aplicația dvs. SSH cu un link ssh:// pentru server.
  3. 3Opțiunea „Mențineți ușa deschisă cât timp ecranul ei este afișat” repetă bătaia cu puțin timp înainte de încheierea intervalului, cât timp ușa este pe ecran.

Toate exemplele pe GitHub → Fiecare configurație de pe această pagină, gata de copiat: github.com/mobilcomm/secretknock-examples (domeniu public).

Întrebări

Înlocuiește aceasta cheile SSH?

Nu. Bătăile în porturi ascund serviciul; păstrați și chei SSH puternice și dezactivați autentificarea cu parolă.

Ghiduri pentru configurarea ta