# Port knocking!

## specialk74

Avrei bisogno di implementare il port knocking su un paio di pc.

Ho installato "knock" però purtroppo, per come bisogna utilizzarlo, io ho accesso solo alla porta ssh mentre "knock" vuole varie porte per poter funzionare.

Ho letto di Doorman ma non c'è l'ebuild e poi mi sembra un po' vecchiotto.

Qualcuno può aiutarmi?

----------

## lavish

Spostato da Forum italiano (Italian) a Forum di discussione italiano.

----------

## Kernel78

 *specialk74 wrote:*   

> Avrei bisogno di implementare il port knocking su un paio di pc.
> 
> Ho installato "knock" però purtroppo, per come bisogna utilizzarlo, io ho accesso solo alla porta ssh mentre "knock" vuole varie porte per poter funzionare.

 

Premetto che ci sono di sicuro altre discussioni a riguardo.

Non ho capito assolutamente quale sia il tuo problema ...

Knock non "vuole" varie porte per funzionare, viene configurato per ricevere una bussata su una o più porte (normalmente si usano più porte per maggiore sicurezza) ma le porte le decidi tu quando lo configuri.

Prova a spiegare meglio il tuo problema, la tua situazione e quello che vorresti ottenere.

----------

## specialk74

Cercherò di spiegarmi meglio:

ho un pc dietro un router che fa il forwarding della sola porta 22/tcp (per ssh) e devo potergli accedere da internet.

Se utilizzo knock, da quanto ho visto, questi mi chiede di fare varie bussate su varie porte per potermi avviare il servizio ssh. Se il router mi fa passare solo richieste dalla porta 22 non posso da internet bussare alla porta per esempio 9000, 7000, 6000 perchè le bussate si fermano al router e non raggiungeranno mai il mio pc. Giusto?

Non c'è un modo di fare il port knocking utilizzando solo la porta 22 e passargli, che ne so', un file hash che il pc riconosce per potermi abilitare il servizio ssh?

Grazie e bye.

----------

## Dece

 *specialk74 wrote:*   

> Se il router mi fa passare solo richieste dalla porta 22 non posso da internet bussare alla porta per esempio 9000, 7000, 6000 perchè le bussate si fermano al router e non raggiungeranno mai il mio pc. Giusto?
> 
> 

 

Si ma allora a che ti serve il portknocking se sei dietro ad un router...? Ti servirebbe se potessi farlo sul router, in modo che ti apra la porta 22 quando fai il knock, ovvero: il router ha tutte le porte chiuse quindi un ipotetico portscan non rileva nulla, mentre dopo che hai mandato i giusti pacchetti ti apre la porta 22 (forwardata dove vuoi tu)

----------

## specialk74

Purtroppo il router non è mio e non posso modificare nulla: mi hanno lasciato aperta solo quella porta e vedendo i log sul pc ho notato una svalangata di tentati accessi alla porta ssh. Se utilizzo il port knocking solo sulla porta 22, aumento la sicurezza del mio pc senza alterare la configurazione del router.

----------

## Dece

 *specialk74 wrote:*   

> Purtroppo il router non è mio e non posso modificare nulla: mi hanno lasciato aperta solo quella porta e vedendo i log sul pc ho notato una svalangata di tentati accessi alla porta ssh. Se utilizzo il port knocking solo sulla porta 22, aumento la sicurezza del mio pc senza alterare la configurazione del router.

 

Allora knock non ti è di aiuto: l'idea che sta alla base è che tu puoi accedere a tutte le porte "bussando" solo su alcune, se la porta disponibile è una sola allora il tutto ha poco senso...

Io più semplicemente metterei qualche regola iptables per droppare i pacchetti provenienti dall'host (o dagli host) che tentano di accedere

----------

## specialk74

Purtroppo anche questo non posso farlo perchè io accedo sempre da un indirzzo ip diverso.

Ma non posso spedirli un file, con la porta chiusa, in modo che il pc lo riconosca e mi apra il servizio ssh?

----------

## Kernel78

Si potrebbe anche far si che normalmente il firewall del pc droppi le connessioni nuove e permetta quelle già stabilite.

In questo modo di default non sarà possibile collegarsi.

Si configura knock in modo che dopo X bussate sulla 22 rimuova la regola del firewall che droppa le nuove connessioni e dopo Y secondi la ripristini, in questo modo dopo la bussata ci si può collegare solo per pochi secondi, trascorsi i quali il firewall consentirà solo le connessioni stabilite e impedirà le nuove.

Resta da vedere quale sia la reale utilità e sicurezza di un simile accrocchio ma dovrebbe funzionare.

----------

## Kernel78

 *specialk74 wrote:*   

> Purtroppo anche questo non posso farlo perchè io accedo sempre da un indirzzo ip diverso.
> 
> Ma non posso spedirli un file, con la porta chiusa, in modo che il pc lo riconosca e mi apra il servizio ssh?

 

Se non hai un qualche server che stia in ascolto aspettando il file è difficile riuscire a inviarglielo ...

A questo punto non ti conviene configurare ssh in modo che accetti solo connessioni con chiave, tutti i tentativi di brute force che sporcano i log diventerebbero inutili al 100%

----------

## specialk74

 *Quote:*   

> Si potrebbe anche far si che normalmente il firewall del pc droppi le connessioni nuove e permetta quelle già stabilite.
> 
> In questo modo di default non sarà possibile collegarsi.
> 
> Si configura knock in modo che dopo X bussate sulla 22 rimuova la regola del firewall che droppa le nuove connessioni e dopo Y secondi la ripristini, in questo modo dopo la bussata ci si può collegare solo per pochi secondi, trascorsi i quali il firewall consentirà solo le connessioni stabilite e impedirà le nuove.
> ...

 

Mi sembra, x me, un gran passo avanti: se il servizio non è aperto non troverò più nessuno che cerca di entrare in modo bruto anche perchè un port scanning non vede più nulla. Ma come lo implemento?

Avevo tirato fuori l'idea del file perchè tempo fa avevo letto un'articolo di "hacking9" sul programma Doorman che permetteva di spedire un file md5 per l'autenticazione della "bussata". Comunque già questo suggerimento mi leva qualche rogna.

 *Quote:*   

> 
> 
> A questo punto non ti conviene configurare ssh in modo che accetti solo connessioni con chiave, tutti i tentativi di brute force che sporcano i log diventerebbero inutili al 100%
> 
> 

 

Scusa ma non capito che cosa mi vuoi dire.

----------

## Peach

butto lì un'altra soluzione con solo l'uso di ssh.

configura ssh per non accettare autenticazioni tastiera, ma solo per chiave.

Robbins ha scritto una guida su ssh abbastanza interessante a riguardo proprio tra la documentazione ufficiale gentoo.

----------

## Onip

se cerchi sul forum ci sono svariate discussioni per accedere a ssh senza password ma con un certificato. Più sicuro di così...

EDIT: quello che dice Peach

----------

## specialk74

Gli do un'occhiata.

Comunque grazie a tutti (per il momento).

x Kernel78: se hai un link dove poter scaricare un script ben venga.

 :Very Happy: 

----------

## specialk74

A chi può interessare esiste:

http://gentoo-wiki.com/HOWTO_sshdfilter

Bye.

----------

## Kernel78

 *specialk74 wrote:*   

> Gli do un'occhiata.
> 
> Comunque grazie a tutti (per il momento).
> 
> x Kernel78: se hai un link dove poter scaricare un script ben venga.
> ...

 

Basta prendere il secondo esempio dal sito di knock e modificare leggermente la regola di iptables ...

```
  [options]

        logfile = /var/log/knockd.log

  [opencloseSSH]

        sequence      = 22, 22 ,22

        seq_timeout   = 15

        tcpflags      = syn,ack

        start_command = /usr/sbin/iptables -A INPUT -s %IP% -p tcp --syn -m state --state NEW --dport 22 -j ACCEPT

        cmd_timeout   = 10

        stop_command  = /usr/sbin/iptables -D INPUT -s %IP% -p tcp --syn -m state --state NEW --dport 22 -j ACCEPT

```

Ti assicuri che di default iptables droppi tutti gli input e il gioco dovrebbe essere fatto ...

Potrei essermi dimenticato qualcosa quindi attento a non tagliarti fuori quando fai le prove  :Wink: 

----------

## GiRa

Mi sembra una soluzione un po' puerile, basta che uno provi tre volte e poi ha ssh aperto no?

Ci sono un miliardo di script che lo fanno.

Io userei l'autenticazione solo tramite chiave.

----------

## Kernel78

 *GiRa wrote:*   

> Mi sembra una soluzione un po' puerile, basta che uno provi tre volte e poi ha ssh aperto no?
> 
> Ci sono un miliardo di script che lo fanno.
> 
> 

 

No, gli script in circolazione iniziano a sparare utente/password solo verso le macchine su cui trovano ssh, se vedono la porta ssh chiusa non si mettono nemmeno a tentare, certo chi frequenta questo forum e vede questa mia proposta potrebbe decidere di creare uno script così furbo da tentare N volte di accedere anche a macchine sulle quali non sembra esserci ssh attivo ... certo la probabilità che un utente così indifferente alla sicurezza da usare username e password uguali si ingegni al punto da far risultare chiusa la porta ssh.

Queste considerazioni diventano però un po' troppo OT ...

Cmq sulla effettiva utilità di tale soluzione sono stato il primo a esprimere dei dubbi.

----------

## GiRa

 *Kernel78 wrote:*   

> Cmq sulla effettiva utilità di tale soluzione sono stato il primo a esprimere dei dubbi.

 

Infatti il mio commento non era destinato a te ma a specialk74.

----------

## cloc3

 *Kernel78 wrote:*   

> 
> 
> Premetto che ci sono di sicuro altre discussioni a riguardo.
> 
> 

 

questa, per esempio, mi sembra una cosa divertente.

----------

## Kernel78

 *cloc3 wrote:*   

>  *Kernel78 wrote:*   
> 
> Premetto che ci sono di sicuro altre discussioni a riguardo.
> 
>  
> ...

 

Mi sembra di aver partecipato anche ad altre discussioni su knock ma non ho voglia di mettermi a cercarle (equo rapporto tra pigrizia e troppo lavoro).

P.S. non capisco cosa ci trovi di divertente  :Confused: 

----------

## federico

Penso che intendesse divertente da mettere in piedi  :Smile: 

Fede

----------

## Frez

Questo thread potrebbe essere interessante. Si parlava di accessi tramite ssh e ci fu un simpatico scambio di insulti & sprangate (  :Smile:  ) tra i sostenitori dell'accesso con password e quelli che invece spostano sshd su porte a 5 cifre.

In particolare venne fuori l'idea di utilizzare denyhost per bloccare l'accesso agli indirizzi IP dai quali siano pervenute troppe richieste di accesso che non siano andate a buon fine.

Personalmente non l'ho mai provato, ma in teoria questo renderebbe abbastanza sicuro anche l'utilizzo su porta 22 con accesso tramite password (e giù sputi & insulti    :Smile:  )

----------

## funkoolow

la pigrizia autunno-invernale mi ha al massimo concesso l'implementazione di questo comodo tool.

----------

