¿Cómo funciona knockd?

3

Es bastante fácil de configurar knockd para ej .: en un servidor Ubuntu (10.04) sshd:

========================================================================
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
========================================================================

Funciona, genial ..

PREGUNTA : Pero. Si la detonación significa que tenemos que enviar paquetes a los puertos dados, ¿no debería haber un " PUERTO ABIERTO " esperando la detonación? ¿Cómo funciona? ¿Tiene knockd más seguridad? (Quiero decir que la SSHD está bien auditada, y no sé sobre knockd ..)

    
pregunta gasko peter 18.06.2012 - 18:19
fuente

1 respuesta

4

ssh en el puerto 22 es un puerto bien conocido. Si deja el puerto 22 abierto con ssh ejecutándose en Internet y verifique sus registros; es posible que veas un par de miles de intentos de entradas por día (para varios nombres de usuarios).

knockd no requiere que un puerto esté abierto o enlazado a un proceso mientras que sshd requiere que el puerto esté abierto y enlazado a un proceso. knockd requiere que su enrutador reenvíe los paquetes enviados a los puertos específicos de su servidor, pero un firewall de software puede descartar (ignorar; no responder) o rechazar (devolver icmp-port-unreachable o similar) los paquetes. Ya que knockd solo está escuchando su interfaz Ethernet (y no examina el contenido de los paquetes de otra manera que no sea la más superficial), puede detectar que los paquetes se enviaron a estos puertos cerrados sin realizar ningún procesamiento adicional en los paquetes que luego se eliminan. por el firewall del software (por ejemplo, iptables).

Entonces, si define una llamada personalizada con, digamos, tres puertos elegidos al azar; acaba de agregar 48 bits de entropía (cada puerto está entre 0 y 2 16 -1) antes de que alguien pueda acceder a su servidor. Concedido; no relajes tu seguridad en sshd ; como cualquier persona que olfatee el tráfico puede observar su patrón de detonación de puerto secreto y reproducirlo; en qué punto pueden comenzar a intentar atacar a sshd.

    
respondido por el dr jimbob 18.06.2012 - 18:53
fuente

Lea otras preguntas en las etiquetas