Related Articles
Login
| intermediate - Port Knocking ... bussa è ti sarà aperto! |
|
|
|
| Scritto da Andrea Crisafulli - Xanio |
![]()
Tantissime volte mi trovo la necessità a dover esporre un servizio su internet, ma sopratutto quando il servizio non ha la necessità che sia reperibile h24, o per semplice paranoia, che fare? Ecco che in aiuto viene il servizio Port Knocking! Per tutte le informazioni in merito al progetto vi rimando al sito principale www.portknocking.org dove trovate tutte le informazioni necessarie, qui prenderò in esame un’installazione base su un sistema Debian Gnu/Linux e analisi di un solo servizio, sshd. Tipologia di utilizzo di port knockingLa cosa che dobbiamo tenere in considerazione è che port knocking può lavorare in 3 modi principali, che dobbiamo scegliere in fare si configurazione:
Mappatura porta fissaCon questa configurazione si ha l’utilizzo più semplice, mando una sequenza di bussate a determinate porte (scelte da me in configurazione) e viene aperta la porta associata. Questo configurazione è semplice da implementare, ma per ogni servizio/porta che voglio aprire sono costretto a creare una relativa regola e gestione di sequenze. PRO: facile da configurare; CONTRO: ogni porta che voglio abilitare necessita una sequenza / configurazione dedicata Mappatura porta dinamica;Con questa configurazione abbiamo la possibilità di impostare una regola universale per gestire l’aperta dinamica di diverse porte, ovvero decido di utilizzare un range di poter da bussare e la loro sequenza mi permette di aprire la porta da me indicata nella sequenza, attraverso un checksum finale. Per esempio supponiamo di utilizzare le porte da 100 e 109, potremmo avere una configurazione del tipo: Le prime e le ultime tre porte vengono “bussate” dal frammento iniziale e finale della sequenza, gli altri quattro frammenti devono corrispondere alla sequenza (abcd mod 10) per essere accettati. L’elemento finale della sequenza è il checksum che convalida la sequenza, esempio: Connessione alla porta 143; Quindi; Knocking alle porte 100, 101, 104, 103; Il checksum è 108 = 10(100 + 101 + 104 + 103 mod 10) Quando questa sequenza viene rilevata, possiamo avere accesso alla porta 143. Se questa è già aperta, verrebbe chiusa. PRO: possibilità di poter gestire più porte con una sola regola di configurazione CONTRO: la configurazione e la gestione della sequenza è molto + complessa Mappatura porta con crittografiaLa configurazione è molto simili alla mappatura dinamica, con la sola eccezione che il checksum finale viene crittografato. PRO: possibilità di poter gestire più porte con una sola regola di configurazione con crittografia finale CONTRO: la configurazione e la gestione della sequenza è molto + complessa
Installazione ServizioPrendendo in esame una distro Debian Gnu/Linux basterà digitare: apt-get install knockd l’installazione deve essere fatta sia lato server che lato client, in quando il package contiene anche il client, e non abbiamo necessità di preoccuparci in quando il demone non parte di default, ma deve essere attivato da file di configurazione. Configurazione lato serverLa configurazione lato server è molto semplice, consideriamo il caso di configurazione con mappatura fissa e che vorremmo gestire la porta 22 del demone SSHD, e che la nostra sequenza di bussata è composta da 3 porte (7000 – 8000 – 9000) da interrogare con pacchetto TCP entro 5 secondi, mentre la sequenza inversa si occupa di chiudere la porta Attiviamo il servizio port knockingModificare il file
Settare a 1 la variabile START_KNOCKD, abilitare l’interfaccia di ascolto su cui deve stare in ascolto il servizio, nel mio caso eth0
adesso ci occupiamo del file di configurazione per la gestione della porta 22 per il servizio SSHD, editiamo il file /etc/knockd.confe aggiungiamo:
adesso riavviamo il servizio, et voila, tutto configurato, controllando con un port scanning noteremo che la porta 22 è chiusa, quindi avviamo la seguenza dal nostro client e vediamo cosa cambia:
se rifacciamo un port scanning sul nostro server noteremo che la porta 22 adesso è aperta, ma attenzione SOLO PER NOI, o meglio dall’ip pubblico del nostro client! Adesso saremo ingrado di poterci collegare al nostre server tramite ssh ed effettuare tutto il lavoro che vogliamo, appena finito, basta chiudere la porta
Grazie alle regole blockSSHD sarà possibile impostare una regola iptables che blocca in maniera incondizionata tutte le connessioni al nostro server dall’ IP del nostro client, basta richiamare la sequenza et voila, un port scanning dal nostro client e vedremo tutto CHIUSO.
PS: nel caso in cui dal nostro server vogliamo eliminare la regola iptables di blocco dell’IP basterà digitare:
Good Auditing!! |





Commenti
RSS feed dei commenti di questo post.