Port Knocking: la migliore sicurezza che puoi avere sul tuo computer o server (distribuzione + configurazione)

Porti sorprendenti (in inglese porta bussando) È indubbiamente una pratica che tutti noi che gestiamo i server dovremmo conoscere bene, qui spiego nel dettaglio di cosa si tratta e come implementarla e configurarla 😉

In questo momento quelli di noi che gestiscono un server hanno accesso SSH a quel server, alcuni cambiamo la porta predefinita di SSH e non usa più la porta 22 e gli altri la lasciano così (cosa non consigliata), tuttavia il server ha abilitato l'accesso SSH attraverso alcune porte e questa è già una "vulnerabilità".

Con Bussare al porto possiamo ottenere quanto segue:

1. L'accesso SSH non è abilitato da nessuna porta. Se abbiamo SSH configurato per la porta 9191 (ad esempio) quella porta (9191) sarà chiusa per tutti.
2. Se qualcuno vuole accedere al server tramite SSH, ovviamente non sarà in grado di farlo, poiché la porta 9191 è chiusa ... ma, se usiamo una combinazione 'magica' o segreta, quella porta verrà aperta, ad esempio:

1. Mi telnet alla porta 7000 del server
2. Faccio un altro telnet alla porta 8000 dell'assistente
3. Faccio un altro telnet alla porta 9000 dell'assistente
4. Il server rileva che qualcuno ha effettuato la combinazione segreta (tocca le porte 7000, 8000 e 9000 in quest'ordine) e aprirà la porta 9191 in modo che il login sia richiesto da SSH (la aprirà solo per l'IP da cui è stata effettuata la combinazione numero di porta soddisfacente).
5. Ora per chiudere SSH devo solo telnet alla porta 3500
6. Farò un altro telnet alla porta 4500
7. E infine un altro telnet sulla porta 5500
8. L'esecuzione di questa altra combinazione segreta rilevata dal server chiuderà nuovamente la porta 9191.

In altre parole, spiegandolo ancora più semplicemente ...

Con Bussare al porto il nostro server potrebbe avere alcune porte chiuse, ma quando il server lo rileva da X IP è stata effettuata la corretta combinazione di porte (configurazione precedentemente definita in un file di configurazione) eseguirà un certo comando su se stesso ovviamente (comando definito anche nel file di configurazione).

Non si è capito? 🙂

Come installare un demone per Port Knocking?

Lo faccio con il pacchetto kock, che ci consentirà di implementare e configurare in modo molto, molto semplice e veloce Bussare al porto.

Installa il pacchetto: knockd

Come configurare Port Knocking con knockd?

Una volta installato andiamo a configurarlo, per questo modifichiamo (come root) il file /etc/knockd.conf:

nano /etc/knockd.conf

Come puoi vedere in quel file c'è già una configurazione predefinita:

 Spiegare le impostazioni predefinite è davvero semplice.

- Primo, Usa Syslog significa che per registrare l'attività (log) che useremo / Var / log / syslog.
- Secondo, nella sezione [apriSSH] È lì che andranno ovviamente le istruzioni per aprire SSH, prima abbiamo la sequenza delle porte (la combinazione segreta) che è configurata di default (porta 7000, porta 8000 e infine porta 9000). Ovviamente le porte possono essere cambiate (anzi lo consiglio) in quanto non devono essere necessariamente 3, possono essere più o meno, dipende da voi.
- Terzo, seq_timeout = 5 indica il tempo di attesa per la combinazione di porte segrete. Di default è impostato 5 secondi, questo significa che una volta che iniziamo ad effettuare il port knocking (cioè quando ci telnet sulla porta 7000) abbiamo un massimo di 5 secondi per terminare la sequenza corretta, se passano 5 secondi e noi non hanno finito di bussare alla porta, allora sarà semplicemente come se la sequenza non fosse valida.
- Il quarto, command non ha bisogno di molte spiegazioni. Questo sarà semplicemente il comando che il server eseguirà quando rileva la combinazione definita sopra. Il comando che è impostato di default quello che fa è aprire la porta 22 (cambia questa porta per la tua SSH) solo sull'IP che ha creato la corretta combinazione di porte.
- Quinto, tcpflags = sin Con questa riga si specifica il tipo di pacchetti che il server riconoscerà come validi per la porta knocking.

Poi c'è la sezione per chiudere SSH, che la configurazione predefinita non è altro che la stessa sequenza di porte sopra ma nell'ordine opposto.

Ecco una configurazione con alcune modifiche:

 Come avviare il demone knockd?

Per avviarlo dobbiamo prima modificare (come root) il file / etc / default / knockd:

nano /etc/default/knockd

Lì cambiamo la riga numero 12 che dice: «START_KNOCKD = 0»E cambialo 0 in 1, avremmo:«START_KNOCKD = 1«

Fatto ciò, lo avviamo semplicemente:

service knockd start

E voilà, è configurato e funziona.

Port Knocking con knockd up and running!

Come puoi vedere nella configurazione precedente, se un port knock viene eseguito sulla porta 1000, quindi su 2000 e infine su 3000, si aprirà la porta 2222 (il mio SSH), beh qui un altro computer che esegue il port knock:

Una volta premuto [Enter] su Knock No.1, su No.2 e infine su No.3 la porta si aprirà, ecco il log:

Come puoi vedere, quando si bussa alla porta 1000, lo stadio 1 è stato registrato, poi il 2000 sarà lo stadio 2 e infine il 3 con 3000, quando si fa questo viene eseguito il comando che ho dichiarato nel .conf e il gioco è fatto.

Quindi per chiudere la porta sarebbe solo bussare 9000, 8000 e infine 7000, ecco il log:

E bene qui la spiegazione dell'uso finisce 😀

Come puoi vedere, Port Knocking è davvero interessante e utile, perché sebbene non vogliamo semplicemente aprire una porta dopo una certa combinazione di porte, il comando o l'ordine che il server eseguirà può variare, cioè ... invece di aprendo una porta possiamo dichiarare di uccidere un processo, fermare un servizio come apache o mysql, ecc ... il limite è la tua immaginazione.

Port Knocking funziona solo quando si dispone di un server fisico o quando il server virtuale è la tecnologia KVM. Se il tuo VPS (server virtuale) è OpenVZ allora Port Knocking non penso che funzioni per te perché non puoi manipolare direttamente iptables

Bene e finora l'articolo… Non sono di gran lunga un esperto in questa materia ma volevo condividere con voi questo processo molto interessante.

Saluti 😀


Lascia un tuo commento

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati con *

*

*

  1. Responsabile dei dati: Miguel Ángel Gatón
  2. Scopo dei dati: controllo SPAM, gestione commenti.
  3. Legittimazione: il tuo consenso
  4. Comunicazione dei dati: I dati non saranno oggetto di comunicazione a terzi se non per obbligo di legge.
  5. Archiviazione dati: database ospitato da Occentus Networks (UE)
  6. Diritti: in qualsiasi momento puoi limitare, recuperare ed eliminare le tue informazioni.

  1.   erunamoJAZZ suddetto

    Ottimo articolo, è piuttosto interessante e non sapevo che esistesse ... sarebbe fantastico se continuassi a pubblicare articoli per i neofiti degli amministratori di sistema e che 😀

    Saluti e grazie ^ _ ^

    1.    KZKG ^ Gaara suddetto

      Grazie per il commento.
      Sì ... è che con gli articoli sui DNS di Fico non voglio essere lasciato alle spalle LOL !!!

      Niente sul serio. Diversi mesi fa ho sentito qualcosa su Port Knocking e ha immediatamente attirato la mia attenzione, ma poiché pensavo che sarebbe stato molto complesso in quel momento non ho deciso di approfondirlo, proprio ieri rivedendo alcuni pacchetti repo ho scoperto knockd e ho deciso per provarlo, ed ecco il tutorial.

      Mi è sempre piaciuto inserire articoli tecnici, alcuni potrebbero non essere abbastanza interessanti ma ... spero che altri lo siano 😉

      saluti

    2.    Mario suddetto

      Ciao, so che questo articolo è in circolazione da un po 'di tempo ma invio la mia domanda per vedere se qualcuno può risolverlo per me.
      Il fatto è che ho implementato il port knocking sul mio lampone per cercare di migliorare la sicurezza quando mi collego ad esso dall'esterno della rete locale. Affinché funzioni, ho dovuto aprire la gamma di porte sul router 7000-9990 indirizzandole alla macchina. È sicuro aprire quelle porte sul router o, al contrario, quando cerco di avere più sicurezza, sto facendo il contrario?

      Saluti e grazie.

  2.   mai suddetto

    Fantastico, sono amministratore di sistema da anni e non lo conoscevo.
    Una domanda ... come si fanno i "colpi"?
    Telnet contro quelle porte? Cosa ti risponde telnet? O c'è qualche comando d'onda "knock"?
    L'articolo è fantastico. Spettacolare. molte grazie

    1.    KZKG ^ Gaara suddetto

      Ho fatto il test con telnet e tutto ha funzionato a meraviglia ... ma, curiosamente, c'è un comando 'knock', fai un l'uomo bussa così puoi vedere 😉

      Il telnet non mi risponde affatto, iptables con la politica DROP lo fa non rispondere affatto e il telnet rimane lì in attesa di una risposta (che non arriverà mai), ma il demone knockd riconoscerà il knockd anche se no si risponde 😀

      Grazie mille per il tuo commento, è un piacere sapere che i miei articoli piacciono ancora ^ _ ^

  3.   st0rmt4il suddetto

    Aggiunto ai preferiti! : D!

    Grazie!

    1.    KZKG ^ Gaara suddetto

      Grazie 😀

  4.   cacciatore suddetto

    Ahh sicurezza, quella piacevole sensazione di quando mettiamo in sicurezza il pc al piombo, e poi giorni / settimane dopo proviamo a connetterci da qualche posto remoto a cui non possiamo accedere perché il firewall è in modalità "nessuno per nessuno", questo è chiamato stare fuori castello in termini di amministratori di sistema. 😉

    Ecco perché questo post è così utile, con knockd puoi accedere da qualsiasi luogo che possa inviare un pacchetto alla tua rete locale e gli aggressori perdono interesse quando vedono che la porta ssh è chiusa, non penso che busseranno alla forza bruta per aprire il porto.

  5.   Manuale suddetto

    Ehi, l'articolo è fantastico.

    Una cosa: serve per connettersi dall'esterno della rete locale?

    Dico questo perché ho il router con le porte chiuse meno quella che corrisponde a ssh che viene reindirizzato al server.

    Immagino che per poter funzionare dall'esterno della rete locale sarà necessario aprire le porte del router corrispondenti a Port Knocking e farle reindirizzare anche al server.

    Mmm ...

    Non so quanto sia sicuro farlo.

    Cosa ne pensi?

    1.    KZKG ^ Gaara suddetto

      Non sono molto sicuro, non ho fatto il test ma penso di sì, dovresti aprire le porte sul router altrimenti non potresti mandare in tilt il server.

      Fai il test senza aprire le porte del router, se non funziona per te è un peccato, perché sono d'accordo con te, non è consigliabile aprire queste porte sul router.

      1.    Manuale suddetto

        In effetti, dobbiamo aprire le porte e reindirizzarle al computer che stiamo chiamando.

        Pietà.

  6.   rabba08 suddetto

    Grande grazie mille! Sto appena iniziando a studiare networking e questi tutorial sono fantastici per me! grazie per aver dedicato del tempo a condividere la conoscenza

    1.    KZKG ^ Gaara suddetto

      Ho imparato molto negli anni con la comunità globale di Linux ... da alcuni anni anch'io ho voluto dare il mio contributo, proprio per questo scrivo 😀

  7.   janus981 suddetto

    Grazie mille, non sai come mi aiuta, sto per configurare un server e per me sta andando benissimo.

    saluti

    1.    KZKG ^ Gaara suddetto

      Questo è quello che ci serve, per aiutare 😉

  8.   Jean ventura suddetto

    Ottimo articolo! Non ne sapevo nulla e mi aiuta molto (sto usando RackSpace che usa KVM, quindi mi sta bene come un guanto!). Aggiunto ai preferiti.

    1.    KZKG ^ Gaara suddetto

      Grazie per aver commentato 🙂

  9.   Algave suddetto

    Come sempre DesdeLinux ci offre post eccellenti con tutorial davvero utili da mettere in pratica, grazie per la condivisione!! 🙂

    1.    KZKG ^ Gaara suddetto

      Grazie per il tuo commento 🙂
      Sì, cerchiamo sempre di soddisfare quella sete di conoscenza che hanno i nostri lettori 😀

  10.   Timbleck suddetto

    Interessante, non conoscevo l'opzione.
    Vai subito ad ingrassare la mia libreria di chop.
    Grazie!

    1.    KZKG ^ Gaara suddetto

      Un piacere per me 😀
      saluti

  11.   Federico. A. Valdes Toujague suddetto

    Saluti KZKG ^ Gaara !!! Hai spremuto. Articolo straordinario per proteggere i server. Nessuna idea @% * & ^ che una cosa del genere esista. Lo proverò. Grazie

  12.   Collana bianca ^ suddetto

    questo è fantastico…. ^ - ^

  13.   LearnLinux suddetto

    Ciao, potresti spiegare come installarlo in CentOS 5.x?

    Ho scaricato gli rpm:
    http://pkgs.repoforge.org/knock/knock-0.5-3.el5.rf.x86_64.rpm

    Installato:
    rpm -i knock-0.5-3.el5.rf.x86_64.rpm

    Configura il file di configurazione con 15 secondi di tempo e la porta che utilizzo per connettermi tramite ssh al mio vps

    Il demone inizia:
    / usr / sbin / knockd &

    Mi telnet e niente la porta non si chiude, di default la porta è aperta, ma non si chiude.

    Sto facendo qualcosa di sbagliato?

  14.   hola suddetto

    Mmmm, le richieste telnet a quelle porte potrebbero essere apprese dall'amministratore della nostra rete locale, o dal nostro fornitore di servizi, no? Bloccherebbe le persone esterne ma non loro, quindi se vogliono attivare la nostra porta potrebbero farlo perché Vedi le richieste che facciamo, mmm diciamo che protegge ma non al 100%

    1.    Roberto suddetto

      Potrebbe essere, ma non credo che immagineranno che un certo telnet esegua un'azione X. A meno che non vedano che vengono seguiti gli stessi schemi telnet.

  15.   Pablo Andrés Diaz Aramburo suddetto

    Articolo interessante, ho una domanda. Penso che ci sia un errore nell'immagine del file di configurazione, perché se analizzi bene, in entrambe le righe del comando stai usando ACCEPT in Iptables. Penso che uno dovrebbe essere ACCETTO e un altro dovrebbe essere RIFIUTATO.

    Altrimenti ottima iniziativa. Grazie mille per aver dedicato del tempo a spiegare le tue conoscenze agli altri.

    saluti