Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Raspberry i Tinc

Raspberry i Tinc

Presentació de Xisco al creantbits sobre Raspberry i el programari per crear vpn Tinc

creantbits

July 26, 2013
Tweet

More Decks by creantbits

Other Decks in Programming

Transcript

  1. www.apsl.net Origen i objectius Origen • 2006 - Eben Upton

    i els seus companys (Cambridge University) observaren una disminució en les matrícules d'informàtica. També disminuïen les habilitats dels nous estudiants. • Els estudiants no havien tengut l'oportunitat d'experimentar amb la tecnologia de base com si ho havien fet els estudiants de les dècades de 1980 i 1990. Objectius • Pal·liar el problema observat, aprofitant l'aparició de maquinari assequible per dispositius mòbils. Aconseguiren dissenyar un ordinador complet, de característiques bàsiques i preu assequible. • Per la gestió del desenvolupament, fabricació i distribució es va crear l'ONG, The Raspberry Pi Foundation. www.raspberrypi.org
  2. www.apsl.net Situació actual Eben Upton a TEDGLOBAL 2013 “De 1.300.000

    unitats venudes, s'estima que, entre el 30% i el 40%, està en mans de nins” ¡La gent està usant la Raspberry Pi Per EXPERIMENTAR! “Ja no es tracta només d'informàtica. Es tracta de que la gent s'emocioni amb quelcom més ample, que anomenam STEM – ciència, tecnologia, enginyeria i matemàtiques” Fotografia: James Duncan Davidson / TED Conferences, LLC
  3. www.apsl.net Models Model A Model B rev.1 Model B rev.2

    256 MB 256 MB 512 MB 1 x USB 2 x USB Fast Ethernet 100Mbps RJ45
  4. www.apsl.net Raspberry Pi – Model B 2xUSB LEDs Àudio Jack

    3,5mm Vídeo RCA Memòria SD LEDs Alimentació Micro USB Xarxa RJ45 100Mbps GPIO CPU+GPU+Memòria Broadcom BCM2835 Vídeo+àudio HDMI CSI DSI
  5. www.apsl.net Principals característiques SoC Broadcom BCM2835 CPU ARM1176JZFS (700MHz) GPU

    Videocore 4 (OpenGL ES, OpenVG, H.264, MPEG-2, VC-1, 1080p) SDRAM 512MB 2 x USB2 Entrada vídeo CSI Sortida vídeo HDMI, RCA compost, DSI Sortida àudio HDMI, Jack 3,5mm Emmagatzematge SD/MMC/SDIO Alimentació Micro-USB 700mA (3,5W) Xarxa Fast Ethernet 100Mbps (USB) Mida aproximada de targeta de crèdit Entrada/Sortida: GPIO (UART, I2C, SPI, I2S) Pes: 45g
  6. www.apsl.net GPIO General Purpouse Input/Output Línies programables de entrada/sortida per

    la comunicació amb el SoC i la seva connexió a dispositius, sensors i actuadors externs. UART I2C SPI I2S Captura: Projecte WebIOPi – Fotografia: Adafruit
  7. www.apsl.net Inconvenients Plataforma hardware no lliure • Firmware i controladors

    de sistema privatius. • Activació de la decodificació hardware per llicència (MPEG-2, VC-1). Potència de càlcul limitada i hardware senzill • Límits evidents de velocitat i capacitat. • Tans sols un core (sense processament paral·lel). • No és possible ampliar-ne la memòria. • Sense BIOS ni RTC. Velocitat d'accés a la targeta de memòria · Velocitat d'accés lenta a pesar d'usar targetes d'alta velocitat. Limitació de potència elèctrica • Tant sols és capaç d'alimentar dispositius USB de consum baix. Alguns inconvenients...
  8. www.apsl.net Sistemes operatius / Aplicacions GNU/Linux Altres sistemes Xarxes /

    seguretat Telefonia Raspbian FreeBSD Pi Point Elastix VOIP System Debian NetBSD IPFire Incredible Pi Arch Linux Risc OS PwnPi Thin Client Fedora Remix Plan 9 ha-pi Raspberry Pi Thin Client Pidora Aros Broadway Jocs Occidentalis Haiku Chameleon Moebius Media center Gentoo OpenELEC PiBang Linux DarkELEC OpenWRT Xbian Slackware Raspbmc Alguns exemples...
  9. www.apsl.net Raspbian Raspbian • Distribució completa GNU/Linux • Optimitzada per

    Raspberry Pi • Basada en Debian Linux. • Escriptori lleuger LXDE. • Elecció d'aplicacions lleugeres. • Orientada a la programació. www.raspbian.org
  10. www.apsl.net Origen i objectius “there is no cabal” tinc-vpn.org Origen

    • 1997 – Ivo Timmermans (zarq) i Guus Sliepen (guus) - Usenet Objectius Desenvolupar una VPN • Segura: Privada, codi depurat, bona gestió de les claus, permisos de fitxers... • Confiable i estable: El dimoni ha de gestionar bé totes les situacions. • Eficient: S'ha d'eliminar tot allò innecessari (ie: overhead). • Escalable: Manejar centenars/milers de dimonis sense pèrdua de rendiment. • Fàcil de configurar i usar I a més... • • Lliure: GPL2.
  11. www.apsl.net Característiques Seguretat Xifrada, autenticada, comprimida • Ús de llibreries

    estàndard (OpenSSL, RSA) • liblzo, zlib. • chroot. • Bon codi: buffer overflows, memory leaks... • Gestió dels permisos i les claus. • Auditable. Confiabilitat i estabilitat Gestió de les situacions adverses • Reconnexió en cas d'error o timeout. • Redundància.
  12. www.apsl.net Transport Transport • Ethernet virtualitzada (TUN/TAP) • Tantes com

    necessitem. • Mode router (capa 3) o switch (capa 2) • Tràfic unicast vs broadcast... • Suport complet per IPv4 i IPv6 • Alternativa per muntar túnels IPv6 dins IPv4 • Meta-connexió sobre TCP • Informació de rutes, sessions, control... • El túnel va encapsulat dins UDP • UDP és més adequat pels encapsulaments. • Fall back a TCP si no és possible usar UDP • Obriu UDP i TCP als tallafocs.
  13. www.apsl.net Eficiència Enrutament automàtic en malla (mesh) Connexió de múltiples

    llocs sense un servidor central • Cada node passa la informació que té dels altres. • Sempre es tria el camí més directe. • Els nodes enruten el tràfic dels altres si no hi ha camí directe. • Local discovery. Basta configurar alguns enllaços. La resta és automàtica. Passam d'un model clàssic centralitzat a un altre descentralitzat.
  14. www.apsl.net Model d'enrutament A E D C B Connexions configurades:

    Connexions apreses: Local discovery: Internet:
  15. www.apsl.net Escalabilitat A D C B Model tradicional Afegir 1

    node → Afegir n enllaços A D C B Model en malla Afegir 1 node → Afegir 1 enllaç Escalabilitat • Fitxers de configuració simples i sistema d'enrutament eficient. • Afegir un node implica afegir només un enllaç (configurar dos nodes). • Mantenir múltiples enllaços no suposa una gran càrrega de sistema ni ús de memòria.
  16. www.apsl.net Multi-plataforma Plataformes • Linux, FreeBSD, OpenBSD, NetBSD,Solaris, Darwin, Windows

    (Cygwin i natiu)... • Paquet per OpenWRT (obre la porta a la integració dins routers, punts d'accés...). • Android, iOS. Branca estable 1.0 Branca de desenvolupament 1.1 Actualitzacions de seguretat Backend criptogràfic seleccionable Inclusió d'un socket de control + tincctl Gestió de connexions (control) automàtica Configuració automàtica de nous nodes Sobre Linux • Debian, Ubuntu, Arch Linux, Gentoo, openSUSE... Plans de futur
  17. www.apsl.net Exemple simple /etc/tinc/ ├── creantbits │ ├── hosts │

    │ ├── nagios │ │ └── raspi │ ├── rsa_key.priv │ ├── tinc.conf │ └── tinc­up └── nets.boot Address = nagios.apsl.net 657 Subnet = 192.168.77.1/32 ­­­­­BEGIN RSA PUBLIC KEY­­­­­ MIIBCgKCAQEA6Hvl8vT7DIommBROan [...] h9wZpYjqdg/UpJoA8Yca81mBdZI6rn ­­­­­END RSA PUBLIC KEY­­­­­ Subnet = 192.168.77.3/32 ­­­­­BEGIN RSA PUBLIC KEY­­­­­ MIIBCgKCAQEA0lQtZeQBwr8LzioP/k [...[ GNFerDXAuw2hyT/lZ6dVMafiOBgTwD ­­­­­END RSA PUBLIC KEY­­­­­ Name = raspi Device = /dev/net/tun Port = 657 AddressFamily = ipv4 Mode = router ConnectTo = nagios #!/bin/sh ifconfig $INTERFACE 192.168.77.3 netmask 255.255.255.0 creantbits
  18. www.apsl.net Preguntes? Fotografía: Petr Kratochvil Més informació $ man tincd

    $ man tinc.conf tinc-vpn.org i per suposat... RTFM! ;-)