PDA

Ver la Versión Completa : Port Knocking


ElChicoNuevo
26-10-2018, 21:36:12
Hola a todos,

Me estreno con mi primer post con una consultita. Hace AÑOS ya hice algunas cositas en delphi (v3 de hecho) pero la vida me llevó por otros caminos y abandoné la programación. Ahora, a modo de pasatiempo, he retomado y me he propuesto hacer un software para una necesidad muy concreta que tengo: hacer port knoking a firewals que administro.

En esencia, la técnica de Port Knock consiste en "tocar" determinados puertos de un router, en una secuencia concreta. El router previamente configurado para ello, permite entonces el acceso administrativo. Esos "toques" pueden ser en TCP o UDP... pero para no hacerlo más largo, quizás os interese buscar en Wikipedia Port knoking o Golpeo de puertos.

Pues bien, resulta que no he encontrado una aplicación que me permita almacenar un listado de routers (IP/Puertos/Protocolo) y he decidido hacérmelo yo mismo (ya... ambicioso para empezar.)


El problema inicial con el que me encuentro es con el propio golpeo de puertos. Lo consigo fácilmente con IdTCPClient y de hecho, veo el intento de conexión en el router (eso es correcto), pero al tocar el puerto (IdTCPClient1.Connect;) y no haber respuesta, me encuentro con un "socket error, connection refused" porque, obviamente, el router no contesta al intento de conexión (es así).

Lo lindo del asunto es que todo funciona, pero me gustaría saber cómo controlar ese error para no mostrarlo y quede todo más bonito.

Por otro lado, si hay una forma más elegante de hacerlo y que no contemple el uso de IdTCPClient, estoy abierto a sugerencias.


Paciencia conmigo... estoy re-aprendiendo :-D

Casimiro Notevi
27-10-2018, 02:58:36
Lee sobre try except.
Página 229 de La cara oculta de delphi (http://terawiki.clubdelphi.com/Delphi/Manuales/?download=La_Cara_Oculta_De_Delphi_4_pdf_.zip)

ElChicoNuevo
28-10-2018, 10:43:39
Muchas gracias @Casimiro!

ElChicoNuevo
28-10-2018, 10:54:11
Tan sólo confirmarte que tengo el error dominado y puedo seguir avanzando. Nuevamente ¡GRACIAS!