Anche se non l'ho ancora implementato, conosco molte persone che lo hanno distribuito. Ciascuno di loro ha notato una riduzione significativa della quantità di larghezza di banda consumata da cose come attacchi di forza bruta SSH come risultato.
Tuttavia, questo non vuol dire che non ci siano aspetti negativi. AFAIK, non ci sono implementazioni di knocking delle porte basate sul kernel disponibili, che per me sarebbe la vera chiave per l'adozione. I daemon di Port knocking si basano sulla lettura di voci di log non riuscite (e filtrate / proibite) da un sistema firewall. Va tutto bene e dandy, ma cosa succede se il filesystem si riempie? Cosa succede quando il demone viene ucciso a causa di qualche processo di fuga che consuma la RAM e lo scambio del sistema? Cosa succede se qualcos'altro che una di queste due cose dipende da solo e smette di funzionare? Molto probabilmente finirai con un server a cui dovrai accedere fisicamente. Questo potrebbe finire per essere più costoso di quanto sia ragionevole, specialmente se sei a più di poche decine di miglia dal server e non hai nessuno che puoi chiamare per arrivare in fretta.
Una cosa che posso dire è che non è "sicurezza attraverso l'oscurità". Port knocking è una forma di autenticazione e, come ogni sistema di autenticazione, può essere reso semplice o complesso come desiderato. Qualcosa di semplice come "knock on port 10.000 + realPortNumber" può essere fatto, il che equivarrebbe a una banale interruzione, o il knockoff potrebbe essere usato per trasmettere qualche forma di autentica autenticazione (diciamo, 1 blocco di dati codificati AES dati un chiave derivata da qualche altro metodo). Non sarebbe fattibile utilizzare il knocking della porta per trasmettere grandi quantità di dati, però, perché richiederebbe molto più tempo rispetto all'invio di un singolo pacchetto, e se il pacchetto è su TCP, almeno lo si può sapere se è stato ricevuto con successo o incontrato qualche forma di errore.
Una domanda interessante che questo porta in evidenza, tuttavia, è come gestire i file di log --- le implementazioni userland richiedono principalmente i file di log per determinare se un knock è stato inviato con successo e cosa succede se quei log sono trapelati? I dati di autenticazione diventano noti e ovviamente non è una cosa molto buona.
Non posso dirti se usare o meno il knockout della porta nel tuo setup. Non lo sono ancora, e non sono sicuro al 100% di esserlo. Per me è più sensato usare sistemi di autenticazione forti basati su crittografia avanzata (come un'infrastruttura PKI) di quanto non facciano per ostacolare la porta. Inoltre, aggiungere un singolo punto di errore per accedere all'infrastruttura critica, a me comunque, sembra una cattiva idea, e molto più difficile da supportare adeguatamente con qualsiasi tipo di garanzia. Di nuovo, tuttavia, ciò si basa sulla nozione che il software port-knocking non sia integrato con il firewall a livello del kernel del sistema operativo; se questo dovesse cambiare, potrei anche cambiare il mio modo di usarlo.