En la parte que escucha (Servidor), no creo que puedas utilizar un puerto aleatorio pues aquel que trate de conectarse debe saber a que puerto.
Lo más lógico es utilizar valores altos para evitar valores (20, 21, 25, 80, 110..) de los puertos que habitualmente se asignan y utilizan aplicaciones de la red (FTP, HTTP,Correo etc.).
En cuanto a seguridad te diré que lo más lógico es que establezcas un protocolo de entendimiento en el cual los clientes se identifiquen, incluso puedes generar un pooling que analice la IP remota, lo comparas con una tabla y si no se encuentra entre las conocidas, pues no aceptas la conexión..
Má complicado es que un Jacker se te haya inroducido en el equipo y el abra su puerto particular para enviar información a un lugar remoto y desconocido para tí. En este caso lo único efectivo es un Firewall que rastrea sistemáticamente todos los puertos, avisándo y cerrando todo aquello que no reconoce o parece sospechoso... |