Ga naar inhoud
Secret Knock

Verberg SSH achter port knocking

Een open SSH-poort verzamelt inlogpogingen van overal op het internet. Port knocking houdt de poort gesloten totdat je bewijst dat je een geheim kent — en opent deze vervolgens alleen voor jouw adres, gedurende enkele seconden.

Met knockd en nftables

Blokkeer SSH standaard en sta het alleen toe vanaf adressen in een set met een time-out. knockd voegt het adres waarvan wordt geklopt toe aan die set; nftables verwijdert het wanneer de time-out afloopt, terwijl de bestaande SSH-sessie blijft werken.

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 (fragment)

De knockd-sectie die de set vult:

[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

Houd permanente toegang gescheiden

Als je sommige adressen ook permanent toestaat, houd ze dan in een aparte set zonder time-out. Het toevoegen van een adres dat al in een set met time-out staat, stelt de time-out niet opnieuw in. Door beide soorten vermeldingen in één set te combineren, kun je jezelf dus buitensluiten wanneer de timer afloopt.

Of gebruik fwknop

fwknop SPA is sterker dan een reeks: één versleuteld, geverifieerd pakket dat niet opnieuw kan worden gebruikt. Zie de fwknop-handleiding.

Van je iPhone naar SSH

  1. 1Houd de messingklopper ingedrukt. Secret Knock controleert of poort 22 antwoordt en toont hoe lang deze open blijft.
  2. 2Open SSH opent je SSH-app met een ssh://-link voor de server.
  3. 3Met 'De deur openhouden terwijl het scherm ervan aan staat' klopt de app kort voordat het tijdvenster sluit opnieuw, terwijl de deur in beeld is.

Alle voorbeelden op GitHub → Elke configuratie op deze pagina, klaar om te kopiëren: github.com/mobilcomm/secretknock-examples (publiek domein).

Vragen

Is dit een vervanging voor SSH-sleutels?

Nee. Port knocking verbergt de service; behoud ook sterke SSH-sleutels en schakel wachtwoordaanmeldingen uit.

Handleidingen voor je configuratie