Servicios de comunicaciones (i)

Embed Size (px)

Citation preview

  • 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/