Come funziona knockd?

3

È piuttosto semplice configurare knockd for ex .: sshd su un server di Ubuntu (10.04):

========================================================================
0)
# install knockd on the SERVER side
apt-get install knockd

========================================================================
1)
# 
vi /etc/default/knockd
START_KNOCKD=1

========================================================================
2)
# the default config file looks sexy
$ cat knockd.conf 
[options]
    UseSyslog

[openSSH]
    sequence    = 7000,8000,9000
    seq_timeout = 5
    command     = /sbin/iptables -I INPUT -s %IP% -p tcp --dport 22 -j ACCEPT
    tcpflags    = syn

[closeSSH]
    sequence    = 9000,8000,7000
    seq_timeout = 5
    command     = /sbin/iptables -D INPUT -s %IP% -p tcp --dport 22 -j ACCEPT
    tcpflags    = syn

========================================================================
3)
/etc/init.d/knockd
 * Usage: /etc/init.d/knockd {start|stop|restart|reload|force-reload}
/etc/init.d/knockd start
 * Starting Port-knock daemon knockd    [ OK ] 
netstat -tulpn | grep -i knockd
ps -ef | grep -i knockd
root     25069     1  0 11:44 ?        00:00:00 /usr/sbin/knockd -d 

========================================================================
4)
# install knock on the CLIENT side
apt-get install knockd

========================================================================
5)
# first disable the INPUT for port 22
iptables -I INPUT -p tcp --dport 22 -j DROP

# save your firewall rules if needed to be permanent
service iptables save

========================================================================
6)
# try to connect without knocking: 
telnet 1.2.3.4 22

# knock on the SERVER from the CLIENT to open port for 22
knock -v 1.2.3.4 7000 8000 9000

# try to connect after knocking: 
telnet 1.2.3.4 22
========================================================================

Funziona, ottimo ..

QUESTION : Ma. Se bussare significa che dobbiamo inviare i pacchetti a determinate porte, allora non dovrebbe esserci un " OPEN PORT " in attesa di bussare? Come funziona? Knockd dà più sicurezza? (Voglio dire che l'SSHD è ben controllato, e non so di knockd ..)

    
posta gasko peter 18.06.2012 - 18:19
fonte

1 risposta

4

ssh sulla porta 22 è una porta ben nota. Se lasci la porta 22 aperta con ssh in esecuzione su Internet e controlla i tuoi registri; potresti vedere un paio di migliaia di tentativi al giorno (provando una varietà di nomi utente).

knockd non richiede che una porta sia aperta o vincolata a un processo mentre sshd richiede che la porta sia aperta e vincolata a un processo. knockd richiede al router di inoltrare i pacchetti inviati alle porte specifiche sul server, ma un firewall software può rilasciare (ignorare, non rispondere) o rifiutare (inviare indietro icmp-port-unreachable o simili) i pacchetti. Dal momento che knockd ascolta solo la tua interfaccia ethernet (e non esamina il contenuto dei pacchetti in modi diversi dai più superficiali), può rilevare che i pacchetti sono stati inviati a queste porte chiuse senza eseguire alcuna elaborazione aggiuntiva sui pacchetti che poi vengono rilasciati dal firewall del software (ad es. iptables).

Quindi se definisci un knock personalizzato con dire tre porte scelte a caso; hai appena aggiunto 48 bit di entropia (ogni porta è compresa tra 0 e 2 16 -1) prima che chiunque possa accedere al tuo server. Certo; non rilassare la tua sicurezza su sshd ; come chiunque annusando il traffico può osservare il tuo modello di bussare alla porta segreta e riprodurlo; a quel punto possono iniziare a provare ad attaccare sshd.

    
risposta data 18.06.2012 - 18:53
fonte

Leggi altre domande sui tag