Hola de nuevo NASeros. Ya estamos de vuelta. Ya me conocéis, yo soy @macjosan en twitter y este es el canal de youtube
del blog de NASeros. Hoy vamos a ver el sexto capítulo del curso sobre redes y
vamos a profundizar en los puertos vamos a ver exactamente qué tipos de puertos
hay vamos a ver cómo funcionan realmente según dependiendo qué tipo de puerto sea
y vamos a ver también distintas variaciones o combinaciones en función
del número de clientes, de servidores, en función de qué es lo que queramos hacer.
En primer lugar bueno y luego en el próximo vídeo no creo que lo metan este
porque no me dará tiempo veremos todo lo que es el tema de la conexión exterior
que es algo que a vosotros os lleva bastante de cabeza y es en el momento
que queremos acceder a nuestra red desde el exterior de nuestra red que es lo que
tenemos que hacer porque está relacionado con el dns y con los puertos
pero eso seguramente lo voy a dejar para el próximo vídeo
en primer lugar existen tres tipos de puertos existen tres tipos de puertos en función
del número que tienen porque dependiendo el número que tengan vais a ver por qué
lo voy a explicar ahora que tiene una función distinta por decirlo de alguna
manera ya sabéis que estos puertos van desde el 0 hasta el 65 mil y pico 65 mil
535 y el expliqué en el vídeo pasado y los tres tipos de puertos que hay son
los siguientes son los puertos bien conocidos los puertos registrados y
luego tenemos los puertos efímeros o puertos dinámicos vamos a ver cada uno
de ellos qué características tiene en primer lugar tenemos los puertos bien
conocidos se llaman así porque como su nombre indica todo el mundo los conoce
son como unos puertos fijos son unos puertos que casi todos vosotros los
conocéis porque van desde el 0 hasta el 1023.
Hay 1024 puertos y son los
primeros del rango de puertos por decirlo de alguna manera y una
característica muy importante de estos puertos es que solo puede acceder a
ellos o sólo puede abrirlos por decirlo de alguna manera o sólo puede asignarlos
el sistema operativo cuando estás con como un superusuario como un root por
decirlo de alguna manera porque porque son puertos críticos tened en cuenta que
en estos 1023 o 1024 primeros puertos tenemos el SSH, el telnet, el ftp, el
servidor de correo el servidor web, tenemos pues servicios bastante críticos
que como es lógico si cualquiera cualquier aplicación pudiera acceder a
asignarse el servidor de correo o pudiera asignarse no sé el SSH pues
podríamos tener problemas porque esa aplicación tendría unos privilegios que
podría hacer cosas maliciosas por decirlo de alguna manera entonces los
1024 primeros que van del 0 al 1023 son para el sistema están asignados se
llaman bien conocidos precisamente por eso porque básicamente casi todos
vosotros ya los conocéis aquí los dejo aquí os dejo unos cuantos para que los
veáis y bueno pues eso es lo que son los puertos bien conocidos en segundo lugar
tenemos los registrados después tenemos los puertos registrados
que estos van desde el 1024 hasta el 49.151 estos puertos los asigna la
IANA que es un organismo internacional por decirlo de alguna manera tampoco voy
a explicar ahora que es la IANA porque no viene al caso y estos puertos serían
los puertos que tienen las aplicaciones que no son críticas es decir casi todas
las aplicaciones estos son los puertos que podéis tener vosotros en cualquier
juego o en cualquier aplicación que os instaléis en el ordenador en el
smartphone donde sea aquí tendríamos pues Plex por ejemplo tiene el 32.400 si
os instaláis el call of duty o cualquier otro juego vais a ver que tiene unos
puertos vais a google y vais a ver que tiene asignados unos puertos o en el
mismo juego lo podéis ver o los que abren los puertos en el emule en el
torrent es decir serían los puertos que tiene cualquier aplicación los asigna la
jana y cada cada aplicación tiene un puerto asignado o un rango de puertos
asignados por decirlo de alguna manera como es lógico eso se puede cambiar pero
por defecto tú ya sabes qué flex va en un puerto determinado y que el call of
duty en otro y que tal aplicación el torrent
donde no la aplicación que sea va en otro eso serían los registrados y de
aquí ya pasamos a los efímeros que son los los más lioso son los que quiero que
entendáis bien que son los puertos efímeros los puertos es y menos como es
lógico irían desde el 49.152 hasta el final hasta 65.535 estos puertos
efímeros son unos puertos que asigna el sistema operativo a cada aplicación y se
llaman efímeros porque son como si dijéramos de usar y tirar
por ejemplo cuando nosotros abrimos una pestaña de un navegador como vamos a ver
luego los ejemplos que voy a poner le asigna un puerto un puerto efímero es un
puerto que va a estar funcionando mientras dura la conexión abrimos una
pestaña nos conectamos un servidor vemos una página web y cuando termina de hacer
esa conexión cuando ya cerramos la pestaña ese puerto se desecha ese puerto
se vuelve a reutilizar en otra conexión porque ya no hace falta son puertos de
usar y tirar por decirlo de alguna manera
y sencilla estos puertos como ya he dicho tienen
unos rangos muy específicos los que acabo de comentar en función de que sean
efímeros o de que sean registrados o bien conocidos pero los únicos que por
decirlo de alguna manera se respeta este esta numeración son los puertos bien
conocidos que como ya he dicho van del 0 al 1023 en el resto no dependiendo
cada sistema operativo incluso a cada versión de cada sistema operativo pueden
utilizar unos u otros hay una recomendación de laviana que es utilizar
los que os acabo de comentar este rango de puertos que os acabo de comentar pero
como podemos ver aquí en la imagen por ejemplo windows xp y los anteriores
utilizaban como puertos efímeros en vez de las la el rango alto del 49000 en
adelante del 1025 al 5000.
Funcionaban así linux por debajo de las 2.4 y freeBSD utilizaban como puertos efímeros lo mismo de la 1024 a la 5000 sin embargo
en freeBSD por encima de la 4.6 y ya windows vista y los siguientes es decir
ya los sistemas operativos – de windows sí que se ciñen a lo que
recomienda la llana y sí que utilizan como puertos efímeros del 49.152
hasta el final hasta el 65.535 lo mismo ocurriría con linux a partir de la
2.4 de solaris de por ejemplo en marco es utiliza los puertos que recomienda la
llana y esto realmente a vosotros es algo que lo comento para que lo sepáis
pero realmente a vosotros tampoco os interesa tanto es decir vosotros cuando
abrís una aplicación un navegador web y los conectamos para consultar una página
web por poner el ejemplo que estoy poniendo siempre realmente a vosotros
nos da igual qué sistema operativo cumpla estas especificaciones o no es
decir orden igual que el sistema operativo a este navegador web le asigne
el 60.000 y pico que está dentro del rango que debería asignar o que le asigne
uno que sea más bajo por ejemplo el 10.000 y pico.
Realmente a vosotros en
vuestro funcionamiento horda igual y ahora vamos a ver distintas casuísticas
vamos a ver distintas maneras de trabajar y vamos a ver cómo funcionan
por ejemplo vamos a ver en primer lugar el caso más sencillo el caso
normal que es cuando nosotros nos queremos conectar desde un cliente a un
servidor por ejemplo sería el caso que vengo comentando de un navegador web que
se quiere conectar un servidor imaginad que queremos consultar un precio en
amazon a través de nuestro ordenador abrimos una pestaña por ejemplo de
firefox y nos queremos conectar a amazon en primer lugar amazon tendrá que tener
un puerto a la escucha tendrá que estar siempre atento a cualquier petición que
le llegue es lo que se llama estar a la escucha lo que se llama tener un puerto
abierto como ya he mencionado amazon el servidor web lo tendrá en un puerto bien
conocido que será el 80 o si es el la conexión a través del puerto seguro de
una conexión segura una conexión web segura será a través de 443 por lo cual
cuando se vaya a conectar nuestro cliente web cuando se vaya a conectar
nuestro nuestro navegador sabrá que tiene que ir a buscar el puerto 80 o el
443 en función de que hagamos la conexión segura o no
y cómo va a funcionar cuando nosotros abrimos el navegador lo que hace el
sistema operativo será asignarle un puerto un puerto efímero abrimos firefox
y le asigna por ejemplo el 60.200 por poner el caso que está dentro del
rango que os he comentado de los puertos efímeros establece la conexión envía el
paquete como ya sabemos todos la ip origen ip destino puerto origen por todo
destino y ya está le devuelve el paquete y esa sería la manera de funcionar qué
ocurre si ahora nosotros abrimos una segunda pestaña del navegador para
conectarnos a amazon para consultar el precio de otro artículo pues el
navegador lo que hará será le dará un puerto efímero distinto a la segunda
pestaña en vez de 60.200 le dará por ejemplo las 60.201 si nosotros
queremos abrir una tercera pestaña le dará al 60.202 y así
sucesivamente que luego nosotros queremos abrir otro navegador distinto
por ejemplo el chrome también para consultar ese precio en otro servidor o
en cualquier otra tienda lo que haría sería lo mismo le asignaría
por ejemplo el 60.204 y así sucesivamente cada pestaña y cada
navegador tendrá una conexión única es decir cuando le llegue al router y
cuando le llega al ordenador la información que va a ir dirigida a cada
pestaña como la conexión es única en cada pestaña porque va a tener un socket
origen y un socket destino va a saber a qué pestaña enviarle el ordenador la
información por lo cual en cada pestaña o en cada navegador vamos a ver la
información correspondiente que queramos ver y como he mencionado antes cuando
nosotros cerramos una pestaña o cerramos el navegador esos puertos quedan
liberados esos puertos se podrán volver a utilizar por otro navegador o por
cualquier otra aplicación no tiene por qué ser un navegador.
Ahora imagina que nosotros tenemos un
servidor o un ordenador o unas urnas para el que no lo sepa de bien el nombre
de la serós es una especie de ordenador que está siempre conectado a internet
con muchos discos es un ordenador conectado a una red o varios discos
conectados a una red y que puede correr diferentes servicios lo vamos a dejar
ahí imaginad que nosotros tenemos un servidor en el que corren varios
servicios eso es muy habitual nosotros por ejemplo tenemos un NAS y tenemos un
servidor de Plex para ver nuestra multimedia tenemos un servidor de correo
tenemos un servidor web porque hemos alojado una web para que la vean
nuestros amigos y tenemos un servidor ftp cada uno de ellos iría o bien en un
puerto registrado o bien iría en un puerto bien conocido dependiendo del
sistema o del servicio que sea por ejemplo imaginad que tenemos un ftp
corriendo irían el 21 iría en el puerto 21 luego tenemos un servidor de Plex en
el 32.400 luego tenemos el servidor ssh porque nos queremos conectar a
programarlo en ssh pues lo mismo 22 el ftp er ya en el 21 y así todos los
servicios es decir podemos tener todos los servicios que queramos en un
ordenador bien sea en un puerto registrado o en un puerto bien conocido
en función de el tipo de privilegios que tenga por decirlo de alguna manera
qué ocurre y como es lógico todas las peticiones que vaya recibiendo de
diferentes equipos que se quieren conectar a él lo único que hará será
abrir un socket y con su ip y con su puerto como he explicado hasta ahora
pero ahora imaginad que nosotros tenemos el caso contrario que nosotros tenemos
dos servicios iguales dentro de una misma red qué ocurre si nosotros queremos tener
por ejemplo dos ordenadores en nuestra casa o en una oficina tenemos dos
ordenadores en una red y queremos poder acceder a ellos por ejemplo por ftp
queremos poder acceder para consultar ficheros o datos que están dentro de ese
ordenador o queremos acceder a ellos por por ssh para configurarlos qué ocurre
que ahora ya no pueden tener el puerto bien conocido o ya no pueden compartir
puerto y imaginad que por ejemplo tuviéramos dos ordenadores con dos
servidores de flex uno en cada uno no podrían tener los dos de 32.400 en este
caso lo que tenemos que tener son puertos diferentes uno podría ser el
bien conocido o el registrado el puerto registrado que le corresponde porque si
lo han asignado así de los demás no vamos por ejemplo al caso del ftp
tenemos dos ordenadores con un servidor ftp uno podría ir en el
21 pero el otro tendríamos que llevarlo a otro puerto diferente yo por ejemplo
me lo llevaría a un puerto cualquiera por ejemplo al 10.000 por poner el caso
uno cualquiera por qué ocurre esto muy sencillo como ya sabéis cuando se
estableció una conexión hace falta una ip origen un ip destino un puerto origen
y un puerto destino de esos usos de origen socket de destino y la conexión
es única si nosotros tenemos el mismo puerto en dos ordenadores o en dos
servicios por decirlo de alguna manera que en los dos ordenadores tuviéramos el
puerto 21 que es lo que ocurriría que cuando nosotros salimos hacia fuera
hacia internet como yo os he explicado todos los ordenadores de la misma red
comparten la misma ip pública por lo cual los dos ordenadores tendrían el
mismo solo que tendría la ip pública que le corresponde pero luego tendrían el
mismo puerto el puerto en este caso 21 cuando le llegará
de vuelta a un ser un paquete a routers no sabría dónde enviarlo porque los dos
ordenadores tendrían el mismo solo que los dos ordenadores serían la misma
conexión tendrían el mismo a la misma ip de origen que sería la misma ip pública
y el mismo puerto entonces que lo que hay que hacer darle otro puerto distinto
uno tendría que ir en el 21 y el otro como ya he dicho en el 10.000 ahora sí
ahora tendrán la misma ip pública cuando salen pero el uno tendrá el 21 y el otro
el 10.000 si tuviéramos en en nuestra red dos servidores web
distintos porque tenemos dos páginas web distintas ocurriría lo mismo uno podría
ir en el puerto 80 pero el otro no el otro tendría que ir en el 10.001 por
seguir la analogía para que tuvieran socket distintos cuando nosotros nos
queremos conectar a través del ftp desde fuera de la red a esos ordenadores uno
iría en el 21 es decir la conexión se habría que por defecto va en el 21 pero
al segundo cliente que se quiere conectar al segundo ordenador habría que
indicarle oye que no va en el 21 que va en el puerto 10.000 y habría que decirle
que es el puerto 10.000.
Y lo mismo cuando nos queremos conectar a nuestras
web ocurriría exactamente lo mismo el primer navegador sabía que va en el 80
no habría ningún problema pero el segundo navegador habría que decirlo y
esta es la ip pública pero que sepas que aunque es una conexión web que va en el
10.001 había que poner los dos puntitos 10.001 para indicarle que tiene que ir a
otro sitio distinto porque si no va a ir al puerto 80 que es el puerto por
defecto el puerto bien así que podemos tener todos los
servicios que queramos dentro de nuestra red pero eso sí siempre que queramos
repetir servicios tienen que ser con puertos distintos aunque lo explicaré en
el próximo vídeo lo que es el acceso remoto esto cuando vosotros os abráis un
puerto en el router ya sabéis que no podéis abrir el mismo puerto para dos
ordenadores o dos equipos distintos por otro servicio un ordenador imaginad que
queréis abrir un puerto para un ordenador que tiene un torrent tiene el
cliente torrent instalado y abrís el puerto el rango de puertos del torrent
pero cuando luego vosotros queréis hacer lo mismo en un segundo ordenador no os
deja volver a poner los mismos puertos cuando vosotros vais a abrir esos mismos
puertos para otra ip otra privada en este caso serían IPs privadas porque en
el router ponemos la 192.168.1.xx lo que sea.
Tenemos que poner
IPs distintas no podemos poner la misma el mismo puerto para distintas
ips privadas es precisamente por eso porque si no cuando saliéramos hacia
afuera lo que ocurriría sería que al tener de la misma ip pública cuando
luego le llega al router no sabría a cuál de los dos ordenadores enviarlo
porque sería la misma conexión yo creo que la idea ha quedado clara y luego ya
por último está un caso pues más raro que sería en el caso de que nosotros
tengamos dentro de una estructura dos servidores que no tengamos clientes
servidos sino que sea servidor servidor o cliente cliente por decirlo de alguna
manera es el caso del p2p en el p2p en la compartición de archivos torrent o
p2p como lo queréis decir el peer-to-peer peer-to-peer quiere decir
eso una conexión entre iguales porque los dos son servidores los dos actúan
como servidor y como cliente porque los dos están compartiendo archivos en eso
se basa el torrent los dos están compartiendo archivos por lo cual los
dos lo que están haciendo es servir archivos a otros ordenadores y a su vez
como clientes recibirá archivos de otros ordenadores
entonces bueno yo creo que lo podemos ir dejando por aquí yo creo que la idea de
hoy ha quedado clara yo creo que tienes que tener claro que hay diferentes
puertos los los registrados los bien conocidos y los efímeros el papel de los
efímeros yo creo que también es una cosa que aunque a vosotros nos afecta mucho
pero he considerado que era importante que la conocieras para que supieras cómo
funciona una conexión además todo esto nos hará falta cuando explique lo que
son las conexiones de TCP y UDP, que bueno ya lo veremos más adelante ya
sabéis que de hecho cuando vais a abrir un puerto en el router aparte de la IP y
del puerto os pide qué es: TCP o UDP.
Ya lo explicaré más adelante y todo esto
que estamos viendo hoy nos va a valer para adelante porque porque es algo que
nos que nos va a hacer falta y bueno sin más lo dejo aquí os emplazo para el
próximo vídeo que vamos a ver la conexión remota cuando queremos acceder
desde fuera de nuestra red a nuestra red está muy ligado con esto que acabo de
explicar y bueno si queréis más información como ya sabéis podéis ir a
www.naseros.com está todo centralizado los vídeos los
podcast los dos grupos de telegram recordad que ahora tenemos dos grupos el
general y el de nas ceros para la gente que está empezando si te ha gustado el
vídeo dale un like compartirlo con gente que creas que esto le puede interesar y
nos vemos en la próxima un saludo adiós bye bye