- 1. Dani Gutirrez Porset [email_address]
-
- Servicios de Comunicaciones (i)
2. ndice
- Comunicacin entre procesos
- Protocolos y Servicios. Ej. protocolo ftp
- Servidor de comunicaciones
3. Comunicacin entre procesos
-
- Pipes. Named pipes o FIFOs.
-
- Colas de mensajes (System V y POSIX)
-
- Semforos (System V y POSIX)
-
- Memoria compartida (System V y POSIX)
4. Sockets
- Son entidades del S.O. para conexiones y se agrupan en dominios
(AF=Address Family):
-
- Dominio AF_UNIX (Unix Domain socket, UDS o IPC socket)
- Protocol family (kernel Linux):
-
- PF_UNIX: locales, en filesys
-
- PF_PACKET: enlace (nivel 2)
-
- PF_NETLINK: config. avanzada de networking
5. Sockets
-
- Los procesos han de estar en la misma mquina.
-
- Son ficheros, ej. al hacersudo find / -type s -lsaparecen unos
cuantos en/var/runutilizados por distintos servicios (xdm,
mysql,...).
-
- Tambin pueden verse connetstat -xapn
6. Sockets
-
- Los procesos pueden estar en distintas mquinas.
-
-
- raw sockets: empleados para desarrollar nuevos protocolos o
hacer uso de funcionalidades internas de los existentes
-
- Los puertos < 1024 son privilegiados (limitados a root). Ej.
$nc -l -p 1023 $Can't grab 0.0.0.0:1023 with bind : Permission
denied
7. Protocolos y Servicios
- /etc/protocols Ejs. (segn IANA):
-
- Encapsulamiento y tunelado
8. Protocolos y Servicios
9. Ej. Protocolo ftp
- 2 canales, ambos sobre tcp:
-
- Canal de comandos. Puerto tcp 21
-
- Canal de datos. Puerto tcp dependiente del modo.
-
- Activo: el cliente abre un puerto aleatorio>1023 y lo enva
al servidor junto con su IP para que el servidor empiece la conexin
por su puerto 20. Problemtico para filtrado por firewall.
-
- Pasivo: el servidor abre un puerto aleatorio>1023 y lo enva
al cliente junto con su IP para que el cliente empiece la
conexin.
-
- Pasivo extendido: slo enva el puerto, y no la IP del
servidor
10. Ej. Protocolo ftp
-
- FTP sobre SSH (secure FTP o FTP/SSH): actuando en modo pasivo,
con un cliente ssh que acte de proxy SOCKS.
- Otros no exactamente FTP:
- Otros de intercambio de ficheros:
11. Servidor de Comunicaciones
- Un proceso que atiende peticiones de otros procesos, de la
misma o de otras mquinas. Ej:netstat -apn
- En cada mquina, interfaces de escucha:
-
- Slo local: localhost o 127.0.0.1
-
- Slo por determinadas interfaces: 192.168.3.1
-
- Por cualquier interface: 0.0.0.0 o *
- En cada interface de escucha, sockets (Inet o Unix)
12. Servidor de Comunicaciones
-
- /etc/init.d/servicio [start|stop|restart|reload|...]
-
- Automtico al arranque de la mquina:/etc/rcX.d/...
- Configuracin del servicio
-
- Mediante uno o varios ficheros que suelen estar
en/etc/nombreservicio
-
- Relectura de la configuracin: consiste en hacer que el proceso
servidor relea los ficheros de configuracin. Posibilidades:
-
-
- Reiniciar el proceso (siempre posible):
/etc/init.d/nombre_servicio restart
-
-
- Recargar la configuracin (disponible slo a veces):
/etc/init.d/nombre_servicio reload
13. Servidor de Comunicaciones
-
- Importantes para revisar el funcionamiento normal y el
errneo.
-
- Puede haber ms o menos nivel de detalle
-
- Suelen estar en/var/log/nombreservicio
-
-
- Comandos de shell (bash, perl,...)
-
-
- Programas con GUI (gtk, qt, UI java, web).
-
- APIs para lenguajes: C, java, php,...
14. Comandos gnu de inters
-
- ping, fping, hping2, hping3
15. Comando netcat
- Establece conexiones TCP o UDP, funcionando en modos cliente o
servidor.
-
- Original (v1.10 de 1996). Es la incluida en Ubuntu.
-
- GNU (v0.7.1 de 2004). Compatible con la original, con ms
prestaciones ej. tunneling, y con licencia GPL.
16. Comando netcat
-
- Enva al servidor desde stdin (o redireccin con ) lo que recibe
del cliente.
-
- Enva al cliente lo que lee de stdin. Redirecciones &1 |
grep open
-
- Captura hexadecimal de comunicacin. Ej: nc -v -o captura
servidor_mail 25
20. Comando netcat
-
- Tneles y reenvo de puertos:
-
-
- TCP sobre UDP. Lo que se enve a un puerto TCP va hacia otro
equipo sobre UDP: mkfifo /tmp/f nc -l -p p_tcp /f | nc -u ip p_udp
>/tmp/f
-
-
- UDP sobre TCP. Lo que se enve a un puerto UDP va hacia otro
equipo sobre TCP: mkfifo /tmp/f nc -l -u -p p_udp /f | nc ip p_tcp
>/tmp/f
-
-
- Otros: TCP sobre TCP, UDP sobre UDP
21. Licencia de uso
-
- http://creativecommons.org/licenses/by-sa/3.0/