Ves al contingut
Secret Knock

Exemples de knockd.conf

knockd llegeix /etc/knockd.conf: una secció [options] i una secció per a cada porta. Cada secció té una seqüència, un límit de temps i l’ordre que s’executarà per a l’adreça que fa la trucada, %IP%. Trieu els vostres propis ports; no reutilitzeu mai els dels exemples.

Obriu SSH durant uns segons

La configuració més habitual: una trucada obre SSH i knockd el torna a tancar després de cmd_timeout. Les sessions que ja hàgiu obert continuaran funcionant si el tallafoc accepta connexions establertes.

[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

Seqüències independents per obrir i tancar

Sense temporitzador, el port es manté obert fins que feu la seqüència de tancament. És pràctic, però fàcil d’oblidar; és preferible la versió temporitzada.

[options]
    UseSyslog

[openSSH]
    sequence    = 7311:tcp,8822:tcp,9133:udp
    seq_timeout = 10
    tcpflags    = syn
    command     = /usr/sbin/iptables -I INPUT -s %IP% -p tcp --dport 22 -j ACCEPT

[closeSSH]
    sequence    = 9133:udp,8822:tcp,7311:tcp
    seq_timeout = 10
    tcpflags    = syn
    command     = /usr/sbin/iptables -D INPUT -s %IP% -p tcp --dport 22 -j ACCEPT
/etc/knockd.conf

Seqüències d’un sol ús

En lloc d’una seqüència fixa, knockd pot llegir un fitxer de seqüències i acceptar-ne cadascuna només una vegada, de manera que una trucada enregistrada no es pugui reproduir. Secret Knock manté la mateixa llista i passa a la seqüència següent després d’una trucada que ha obert la porta.

[openSSH]
    one_time_sequences = /etc/knockd/ssh_sequences
    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/ssh_sequences — one sequence per line, each used once
2222:udp,3333:tcp,4444:udp
5555:tcp,6666:udp,7777:tcp
8888:udp,9999:tcp,1111:tcp
/etc/knockd.conf i el fitxer de seqüències

Amb nftables

En sistemes amb nftables, deixeu que knockd afegeixi l’adreça a un conjunt amb un temps d’espera; la guia per amagar SSH mostra la taula nftables corresponent.

[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

Després d’editar

  1. 1A Debian i Ubuntu, establiu la interfície en què knockd escolta a /etc/default/knockd (KNOCKD_OPTS="-i eth0") i reinicieu knockd.
  2. 2Observeu-ne el funcionament amb journalctl -u knockd -f mentre feu la trucada.
  3. 3A Secret Knock, + › Importa des d’un fitxer converteix cada secció amb una seqüència en una porta; introduïu manualment les llistes de seqüències d’un sol ús.

Tots els exemples a GitHub → Totes les configuracions d’aquesta pàgina, a punt per copiar: github.com/mobilcomm/secretknock-examples (domini públic).

Preguntes

He d’utilitzar passos TCP o UDP?

Tots dos funcionen. Barrejar-los fa que sigui més difícil endevinar una seqüència a partir d’un escaneig de ports. Els passos UDP poden incloure una càrrega útil a Secret Knock si la configuració la comprova.

Guies per a la vostra configuració