Denne siden er arkivert, og kan inneholde utdatert, gammel eller feil informasjon.
Kvadratsky
Kvadratsky (som i «firkantet sky» – det har ingenting med Russland å gjøre) er en slags tunnelbroker for folk internt i ITK, basert på litt shell, Perl og BGP (tidligere OSPF). Høydepunkter er:
- En tunnelbroker holder orden på IP-adressene til alle deltagerne, også når de forandrer seg.
- Alle kobler til alle (derav «kvadrat» – antall tilkoblinger vokser som O(n²)) samt altersex og pannekake (så langt det lar seg gjøre), med GRE-tunneler.
- BGP (via Quagga) fikser resten.
Kvadratsky erstatter med andre ord statisk tunneloppsett, og tilbyr en viss redundans mot at én serverboks er nede. Grabb et IPv6-subnett fra IPv6-siden, route det opp lokalt og resten skjer i skyen.
Hvordan sette opp kvadratsky på maskinen din
- Grabb et privat AS-nummer fra området [64512..65535] (se tabellen nedenfor), om du ikke mot formodning allerede har et offisielt et.
- Grabb et IP-nett fra IPv6-noden. Rut det ut på lokalnettet ditt med ip -6 addr add 2001:700:300:180x::/64 e.l.
- Registrer deg i databasen kvadratsky: INSERT INTO users (username,password,as_number) VALUES ('brukernavn','passord',12345);.
- Installer quagga og en liten Perl-modul på maskinen din: aptitude install quagga libdigest-hmac-perl.
- Hent ned basekonfigurasjon fra http://kvadratsky.samfundet.no/zebra.conf og http://kvadratsky.samfundet.no/bgpd.conf (se i begge filer for konfigurasjon som skal endres). Legg begge i /etc/quagga.
- Skru på quagga ved å redigere /etc/quagga/daemons; du skal ha zebra=yes og bgpd=yes. Start quagga med /etc/init.d/quagga start.
- Hent oppdateringsscriptet fra http://kvadratsky.samfundet.no/update-kvadratsky-bgp.sh på maskinen din. Husk å endre på brukernavnet.
- Kjør update-kvadratsky-bgp.sh for å bekrefte at det fungerer. Hvis alt går som planlagt, skal du dukke opp i http://kvadratsky.samfundet.no/cloud_bgp, og du skal få masse router (inkl. defaultroute via k_altersex, eller k_pannekake om altersex er nede) på maskinen din. Eventuelt kan du få opp Quagga-konsollet med "VTYSH_PAGER=cat vtysh", hvor du kan kjøre f.eks. "show ipv6 bgp route" eller andre festlige IOS-lignende kommandoer.
- Legg update-kvadratsky-bgp.sh i cron hvert femte minutt, kjørt av root.
- Tillat trafikk på interfacet k_$brukernavn i ip6tables på altersex. Se eksisterende kvadratsky-regler for å finne en passende å koke. dette vil skje automatisk ved omstart.
- Dokumenter router-ID-en og AS-nummeret du har valgt under, så ikke flere velger den samme.
Kvadratsky på OpenWrt
For å kjøre Kvadratsky på OpenWrt er det nødvendig å bygge en firmware som inkluderer nødvendige pakker. OpenSSL benyttes istedenfor perl til HMAC-generering.
Quagga-pakkene som skal benyttes må ha støtte for IPv6. For tiden kan disse hentes herfra.
Her er et eksempel som benytter OpenWrt 10.03 (Backfire) ImageBuilder (med Quagga-pakker backportet fra 10.03.1):
trygve@fiskekake:~/OpenWrt-ImageBuilder-brcm47xx-for-Linux-i686$ make image PROFILE="Broadcom-b43" PACKAGES="kmod-ipv6 -dnsmasq -iptables -firewall -kmod-ipt-nathelper -ppp -ppp-mod-pppoe kmod-b43 kmod-b43legacy ntpdate ip radvd openssl-util quagga quagga-bgpd quagga-libzebra quagga-vtysh kmod-gre"
Merk at iptables og dnsmasq m/venner er fjernet for å frigjøre plass, så dette lar seg ikke kombinere med IPv4 NAT ruting.
Ettersom perl-støtten i OpenWrt er laber, bytter vi ut perl-linjen i update-kvadratsky-bgp.sh med følgende linje:
echo -n "$1" | openssl dgst -sha1 -hmac "$MY_PASSWORD"
Resten av oppsettet er identisk med det som er beskrevet over.
router-id
Alle trenger hver sin unike router-id og AS-nummer på BGP. Om du har en fast IPv4-adresse, velg den – hvis ikke, velg noe annet som ikke er tatt. (Router-IDer i BGP kan ikke være multicastadresser, men 10.0.0.x går fint.)
AS-nummer | router-id | maskin | eier |
---|---|---|---|
58302 | 129.241.93.30 | altersex | ITK |
58302 | 129.241.93.35 | pannekake | sesse |
64513 | 10.0.0.1 | moccamaster | sesse |
64514 | 10.0.1.1 | fjernsyn | molven |
48908 | 80.218.216.227 | morgental | sesse |
64515 | 44.141.7.2 | vega | magne |
64516 | 192.168.1.2 | distraction | klette |
64517 | 192.168.1.1 | iskapet | berge |
50213 | 92.62.47.98 | uw-border1 | akai |
64518 | 10.37.3.10 | kih | jodal |
64519 | 10.10.10.10 | krydderkake | trygve |
64520 | 192.168.1.3 | trikken | klette |
64521 | 192.168.0.1 | oyarsa | sandsmark |
64523 | 10.0.1.2 | vegglus | molven |
64524 | 81.167.19.103 | server | h-con |
64525 | 80.86.216.26 | vognskjul | torvaldl |
64526 | 10.11.12.2 | mrslave | dennis |
Tilfeldige tanker rundt sikkerhet
Det er i utgangspunktet ikke ønskelig å kunne la eksterne aktører rute inn vilkårlige IPv6-nett, selv om altersex kun er i stand til å svare for 2001:700:300:1800::/56 eksternt. (Mao.: om noen i skyen ruter inn 2001:4860::/32, Googles nett, vil folk på f.eks. trådløsnettet få redirigert Google, men ingen på trådnettet.) I teorien burde man ikke stole på at IPer peker dit man venter uansett, men det er nå engang en del ting som gjør det i mer eller mindre grad, så man ønsker om ikke annet å holde unna de enkleste angrepene. Følgende elementer er relevante:
- Vi stoler i utgangspunktet på (de legitime) brukerne våre. Folk som har tilgang til kvadratsky, har også root på altersex, og alle relevante angrep du kan gjøre mot kvadratskyen som vanlig deltager kan du også gjøre om du har root på altersex.
- Klientscriptet verifiserer data det får fra tunnelbrokeren, for å unngå at den kan kjøre vilkårlig kode på klientene.
- signin, dvs. prosedyren som annonserer ditt eget IPv4-endepunkt, er beskyttet med et timestamp (for å hindre replay-angrep) og en HMAC (av timestamp+brukernavn, for å hindre tilfeldige sign-ins). Et MITM-angrep kan i praksis redirigere hvor tunnelen peker til (hvorpå man kan rute inn hva man måtte ønske), men om man først kan det, kan man like gjerne hijacke selve tunnelen i stedet for signin.
- BGP har passord- og filtreringsmuligheter vi strengt tatt burde bruke. Slik sett kan en angriper ikke rute inn tilfeldige nett, selv om han/hun har hijacket en tunnel.
- Ideellt sett burde man ha IPsec, men dette ser ikke ut til å være spesielt realistisk, selv på sikt.
Merete har BGP-kobling til altersex og pannekake (via iBGP) og derfor til kvadratskyen, men har filtre slik at man ikke kan annonsere inn vilkårlige nett.
Lenker: Start, gammel dokumentasjon, ipv6multicast
Epost: itk@samfundet.no | Telefon: 992 15 925 | Sist endret: 2024-05-24 13:37 | Revisjon: 62 (historie, blame) | Totalt: 1905 kB | Rediger