Servicios de comunicaciones (i)
-
Upload
dani-gutierrez-porset -
Category
Documents
-
view
1.674 -
download
1
Transcript of Servicios de comunicaciones (i)
- 1. Dani Gutirrez Porset [email_address]
-
- Servicios de Comunicaciones (i)
-
2. ndice
- Comunicacin entre procesos
- Sockets
- Protocolos y Servicios. Ej. protocolo ftp
- Servidor de comunicaciones
- Comandos gnu de inters
- Comando netcat
- Licencia de uso
3. Comunicacin entre procesos
- Mecanismos IPC:
-
- Seales
-
- Pipes. Named pipes o FIFOs.
-
- Sockets
-
- 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)
-
- Dominio AF_INET
- Protocol family (kernel Linux):
-
- PF_UNIX: locales, en filesys
-
- PF_INET: TCP/IP
-
- PF_PACKET: enlace (nivel 2)
-
- PF_KEY: IPSec
-
- PF_NETLINK: config. avanzada de networking
5. Sockets
- Dominio AF_UNIX
-
- Los procesos han de estar en la misma mquina.
-
- Tipos:
-
-
- stream
-
-
-
- datagram
-
-
- 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
- Dominio AF_INET:
-
- Los procesos pueden estar en distintas mquinas.
-
- Tipos:
-
-
- tcp o stream
-
-
-
- udp o datagram
-
-
-
- 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):
-
- Nivel 3:
-
-
- ip: 0
-
-
-
- icmp: 1
-
-
-
- ipv6: 41
-
-
-
- ospf: 89
-
-
- Nivel 4:
-
-
- tcp: 6
-
-
-
- udp: 17
-
-
-
- sctp: 132
-
-
- Encapsulamiento y tunelado
-
-
- gre: 47
-
-
-
- esp: 50
-
-
-
- ah: 51
-
-
-
- ipip: 94
-
-
-
- l2tp: 115
-
8. Protocolos y Servicios
- /etc/services
9. Ej. Protocolo ftp
- 2 canales, ambos sobre tcp:
-
- Canal de comandos. Puerto tcp 21
-
- Canal de datos. Puerto tcp dependiente del modo.
- Modos:
-
- 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
- Securizacin:
-
- FTP sobre SSH (secure FTP o FTP/SSH): actuando en modo pasivo, con un cliente ssh que acte de proxy SOCKS.
-
- FTP sobre SSL (FTPS)
- Otros no exactamente FTP:
-
- scp
-
- sftp
- Otros de intercambio de ficheros:
-
- webdav
-
- pando
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
- Inicio/parada/relectura:
-
- /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
- Logs del servicio
-
- Importantes para revisar el funcionamiento normal y el errneo.
-
- Puede haber ms o menos nivel de detalle
-
- Suelen estar en/var/log/nombreservicio
- Interfaces a servicios
-
- Interfaces de usuario:
-
-
- Comandos de shell (bash, perl,...)
-
-
-
- Programas con GUI (gtk, qt, UI java, web).
-
-
- APIs para lenguajes: C, java, php,...
14. Comandos gnu de inters
-
- ifconfig, route
-
- brctl
-
- netstat
-
- arp
-
- ebtables, iptables
-
- ip
-
- iproute
-
- dig
-
- whois
-
- lynx, wget, curl
-
- netcat, netcat6, socat
-
- netsed
-
- ping, fping, hping2, hping3
-
- traceroute, tracepath
-
- nmap
-
- tcpdump, wireshark
15. Comando netcat
- netcat o nc
- Establece conexiones TCP o UDP, funcionando en modos cliente o servidor.
- Versiones:
-
- 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
- Modo cliente:
-
- 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
- Usos:
-
- 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/