Ya he subido a la forja el código de la última versión en el que corregimos un montón de fallos y que debería haber subido este lunes pero al final debido a un cúmulo de circunstancias y hechos desafortunados no pudo ser.
Esta versión debe ser considerada la 0.1 de la suite SharpKnocking y está compuesta por:
- Demonio KnockingDaemon que permanece a la escucha de los paquetes entrantes y busca secuencias de llamada. Actualmente los paquetes son udp con un payload de 8 bytes.
- Manager Doorman. Permite crear las secuencias que aceptará el daemon. Se comunica con el daemon para hacerle recargar las secuencias activas y para comenzar el modo interactivo (no implementado del todo).
- Llamador PortKnocker. Permite abrir un puerto remotamente usando una secuencia de llamada que tiene que haber sido previamente creada y aplicada con Doorman y luego exportada para poder ser usada por PortKnocker.
Actualmente el sistema permite "cerrar" totalmente un sistema y dar acceso a las ips desde las cuales se reciban llamadas correctas para un puerto dado cada vez.
Las cosas que encabezan la lista de todo son:
- Timeout de acceso: Tras un tiempo que se quite la regla que da acceso a una ip. Hay una regla que permitirá que siga el acceso para las conexiónes establecidas por lo que si se realizá una conexión el usuario no lo notará.
- Detección de intentos de accesos duplicados. Si alguien llama estando ya el acceso concedido se meterá una regla duplicada (el comando iptables lo permite sin chistar). Eso no es buena cosa.
- Estadísticas de uso. Guardaremos información de los paquetes válidos obtenidos en la captura y sobre las secuencias correctas que se vayan recibiendo.
- Pensar en maneras de mejorar la seguridad. Hay que hacer que sea muy dificil adivinar las secuencias de knocking y detectar que un sistema está usando SharpKnocking.
- Rango de puertos protegido. Puede ser intersante que el SharpKnocking se aplique sólo a un cierto rango de puertos.
- Terminar de implementar el modo interactivo. Si el doorman está abierto permite un modo interactivo en el que se le pide al administrador su permiso para dar acceso a los que realizan llamadas.
- ...
Un saludo a todos y suerte.