Gå til indhold
Secret Knock

Skjul SSH bag port knocking

En åben SSH-port modtager loginforsøg fra hele internettet. Port knocking holder porten lukket, indtil du beviser, at du kender en hemmelighed — og åbner den derefter kun for din adresse i nogle få sekunder.

Med knockd og nftables

Drop SSH som standard, og acceptér det kun fra adresser i et sæt med en timeout. knockd føjer den bankende adresse til sættet; nftables fjerner den, når timeouten udløber, og den etablerede SSH-session fortsætter med at fungere.

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

Afsnittet i knockd, der udfylder sættet:

[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

Hold permanent adgang adskilt

Hvis du også tillader nogle adresser permanent, skal du opbevare dem i et separat sæt uden en timeout. Tilføjelse af en adresse, der allerede er i et tidsbegrænset sæt, nulstiller ikke dens timeout, så hvis begge typer poster blandes i ét sæt, kan du blive låst ude, når timeren udløber.

Eller brug fwknop

fwknop SPA er stærkere end en sekvens: én krypteret, godkendt pakke, der ikke kan genafspilles. Se vejledningen til fwknop.

Fra din iPhone til SSH

  1. 1Hold messingdørhammeren nede. Secret Knock kontrollerer, at port 22 svarer, og viser, hvor længe den forbliver åben.
  2. 2Åbn SSH åbner din SSH-app med et ssh://-link til serveren.
  3. 3Indstillingen "Hold døren åben, mens dens skærm vises" banker igen kort før tidsvinduet udløber, mens døren vises på skærmen.

Alle eksempler på GitHub → Alle konfigurationer på denne side, klar til kopiering: github.com/mobilcomm/secretknock-examples (public domain).

Spørgsmål

Er dette en erstatning for SSH-nøgler?

Nej. Port knocking skjuler tjenesten; behold stærke SSH-nøgler, og deaktiver også login med adgangskode.

Vejledninger til din opsætning