Historias
Slashboxes
Comentarios
 
Este hilo ha sido archivado. No pueden publicarse nuevos comentarios.
Mostrar opciones Umbral:
Y recuerda: Los comentarios que siguen pertenecen a las personas que los han enviado. No somos responsables de los mismos.
  • por pobrecito hablador el Martes, 14 Octubre de 2003, 22:03h (#227951)
    Puede ser que estes confundiendo los "puertos" de la CPU (los de OUT y IN), con los puertos de los protocolos TCP y UDP? A ver si nos aclaramos...

    Creo que cuando dices que "windows deja los puertos abiertos" quieres decir que tiene muchos servicios escuchando en ellos (la mayoria innecesarios, vease RPC). Pero el hecho de tener puertos abiertos, de por si, no es ningun problema de seguridad.
    [ Padre ]
  • por pobrecito hablador el Miércoles, 15 Octubre de 2003, 10:04h (#228071)
    Claro claro, los puertos de conexión a redes ... pero de todas formas esos puertos no te los crea el router ni el firewall, existen en el PC como posiciones de memoria para comunicarse con los programas adecuados, que es lo que le comentaba al colega.
    Im prezionante... Esto que has dicho es para enmarcarlo.
    Bueno, aquí va un poco de teoría...SUPERSIMPLIFICADA...
    Las pilas de protocolos son eso, una pila de protocolos... Se dividen en niveles. ( OSI dice que son 7, con TCP/IP tenemos 5 normalmente ).
    Cada nivel trata de resolver un problema. Así el nivel 1 ( físico ) es el responsable de la compatibilidad eléctrica y piezas, el nivel 2 se encarga de mandar bits entre 2 equipos conectados a un mismo cable, y el nivel 3 resuelve el problema del rutado ( para ordenadores conectados a través de otros ordenadores ).
    Por encima tenemos los protocolos de transporte ( nivel 4 ) entre los que está TCP y UDP. Estos resuelven el problema de poder realizar múltiples conexiones/envíos/recepciones a/de distintas máquinas.
    El mecanismo que usa para ello son los puertos. Ciertos servicios estandares estan atentos a un puerto ( como el FTP al 21, el TELNET al 23, el SMTP al 25, etc... ). Cuando una máquina quiere contactar con un TELNET por ejemplo, le envía un paquete con un puerto de origen ( normalmente uno de los altos ) al puerto destino 23. Las direcciones IPs se rellenan convenientemente.
    ¿Y como funciona el proceso? Sencillo, cada nivel le pasa al que se sostiene lo que quiere enviar más unos datos extras ( llamados de control ). Así el nivel 2 le entrega unos bits de datos + MAC origen + MAC destino + CRC32 + LEN y algún dato más al nivel 1. Estos datos no son más que lo que le entrega el nivel 3. El nivel 3 le entregará como datos del 2, los datos que tiene que enviar + IP origen + IP destino + LEN + algunos datos. Los datos de IP son paquetes TCP / UDP. Estos paquetes tendrán datos de nivel 5 ( como siempre ) y además unos campos extras, como son el número de puerto origen y número de puerto destino. Y los datos que lleva este último paquete son los de TELNET ( los comandos que escribes y las letras que ves... el protocolo TELNET es uno bastante sencillo ). Así, cada nivel inferior encapsula lo del superior inmediato.
    Así que por ahora, no tienen nada que ver con los PCs.
    ¿Cómo se conjunta esto, con el que tú puedas usarlo desde tu SO preferido?
    La capa 1 la implementa la tarjeta de red, los cables, etc... La capa 2 la controla el SO y la tarjeta de red. La capa 3 y 4 ( de TCP/IP ) el SO. Y las capas 5 y superiores ( de existir ) las aplicaciones a nivel de usuario.
    Veamos el ejemplo de un demonio que escucha en el puerto 80. Llega una trama con mi direccion MAC destino -> el sistema operativo lo recoge. Analiza el contenido y ve que dentro tiene un paquete IP ( seguimos dentro del SO ). Compruebo que la IP es para mí ( coincide la dirección destino IP con mi IP ), pues entonces se lo pasa al nivel TCP/UDP. ( si no coincide quizá estemos actuando de router y mandaríamos el paquete por su ruta, otro temazo ;) ).
    La pila TCP vería que el puerto destino es el 80... Y sabe que hay un programa escuchando ahí ( el apache!! ), pues le manda el paquete a apache y este ya responderá y hará sus cositas...El apache para ponerse a escuchar tuvo que mandar un comando ( bind ) al SO. Y recibe los paquetes mediante otras funciones del SO.
    Veamos el otro caso... Quiero ver una página web desde mi navegador. El navegador lanza una conexión ( usa una llamada al SO ), el cual crea un socket ( una conexión TCP punto a punto ) en la que configura IP origen= la mia, Puerto Origen=uno cualquiera libre y alto, IP destino=lo que quiero ver, Puerto Destino=80. Así con esta información, el Apache sabe a quien tiene que responder.
    Así que los puertos no son más que un campo de datos, de 16 bits, que significa un numero entero 0-65535 que permite diferenciar distintas conexiones de un mismo ordenador.
    Nota: Bueno, he empleado término conexión y paquete sin exactitud
    [ Padre ]