Datasvammel

Patrik Wallströms blog

Jag har en ny server

Jag har haft en del strul med den server som den här bloggen ligger på. Nu har jag uppdaterat allt innehåll i den servern utom PSU:n och lådan, och därmed också virtualiserat alla tjänster. Den här bloggen var den som låg sist i kön på saker att fixa, men nu är den uppe. Jag vet dock inte om allt är fixat riktigt, men det mesta tycks funka.

På att göra-listan står givetvis att fixa certifikatet, så att åtkomst över TLS fungerar. Kan därmed också passa på att göra lite reklam för seminariet #MeraKrypto som DFRI är med och arrangerar tillsammans med ISOC-SE, SNUS och Sunet.

Att ha återupplivat bloggen kanske också gör att jag bloggar mera här. Tills vidare kan man läsa mina andra blogginlägg hos iis.se.

Virtualisering som helgnöje

Jag har börjat roa mig med att lära mig mycket om virtualisering. Dvs, att köra låtsasdatorer inuti mina servrar. Fast virtualisering är inte så mycket på låtsas längre, det är en av de snabbast framväxande marknaderna på Internet. Och jag är väl en av de få en inte har köpt en VPS (Virtual Private Server) för att köra mina tjänster på. Jag har riktig hårdvara. Med ett riktigt nät. Det finns virtuella nät också.

Först måste jag erkänna att jag trodde det var väldigt enkelt att köra virtualisering. Och det är det ju också på ytan, ända tills man vill börja göra lite mer intressanta saker med virtualisering.

Den första frågan man ställer sig när man vill börja köra lite virtuella maskiner är förstås vilken virtualiseringprogramvara man vill köra (eller “hypervisor”). Den självklara plattformen att köra hypervisor på är för mig idag Linux. Det finns lite att välja bland, men själv kom jag att fundera på Xen, VirtualBox eller nånting jag aldrig tittat på, Qemu-KVM. VirtualBox har jag kört litegrann på min MacOS-maskin för att snabbt och enkelt testa lite saker under andra operativsystem. Men aldrig för att permanent köra en virtuell server. Vad jag visste är dock att KVM finns i Linux-kärnan sedan ett par år tillbaka, och det har känts som om det är den tekniken som utvecklas mest just nu. Så jag bestämde mig för att titta närmare på Qemu och KVM.

Steg ett var att titta närmare på Qemu och komma underfund med hur det fungerade. För att skapa en virtuell maskin måste man först skapa en image att installera ett operativsystem på. Qcow2 är det image-format som man vill använda idag för att köra virtuella servrar. Mycket arbete pågår för att förbättra tekniken för hur virtualiserade operativsystem fungerar på dessa images, både vad gäller hur de växer i storlek med att den virtuella maskinen använder diskytan, men också prestandan kan förbättras både i den virtuella maskinen och i hypervisorn.

Hur som helst, skapa en 10GB qcow2-image med följande kommando:

twobot$>qemu-img create -f qcow2 foo.img 10G
Formatting 'foo.img', fmt=qcow2 size=10737418240 encryption=off cluster_size=0

Man kan ha krypterade images, vilket ju är trevligt. Med AES-kryptering och ett långt lösenord borde det dessutom bli riktigt säkert.

Vad gäller dessa images i övrigt så verkar det finnas en del trevliga verktyg baserade på libguestfs att jobba med för att titta inuti dem. Med guestfish kan du manipulera filer direkt i en disk-image. Det är praktiskt om man vill duplicera många images, och därefter anpassa varje image med exempelvis hostnamn och annat. Görs lämpligast när maskinen inte körs förstås. Med guestmount används FUSE för att montera valt filsystem i en image direkt i det lokala filsystemet.

När man vill bygga sina virtuella servrar så vill man förstås att de ska få sina IP-adresser ut mot Internet, och inte bara vara lokalt åtkomliga från hypervisorn. Default-inställningen verkar vara att köra på väldigt lokala IP-adresser. I Linux kan man dock skapa ett bridge-interface för att hänga på de virtuella instanserna på det externa interfacet. Så i stället för att konfigurera eth0 som vanligt konfigurerar man upp sin br0 såhär:

auto br0
iface br0 inet static
      bridge_ports eth0
      bridge_stp off
      bridge_fd 0
      bridge_maxwait 0
      address 192.168.0.2
      netmask 255.255.255.0
      network 192.168.0.0
      gateway 192.168.0.1
      broadcast 192.168.0.255
      up ifconfig br0 add 2001:16d8:dead::dead/64

och sedan ersätter man sin eth0 såhär:

auto eth0
iface eth0 inet manual

br0 blir då statiskt konfigurerad. Hypervisorn kan dock köra en DHCP-server så att de virtuella servrarna får en automatiskt konfigurerad IP-adress. (Exemplet ovan är en Debian.)

Nu har vi en image och ett nätverk som är rätt konfigurerat. Då återstår bara att installera ett operativsystem. Mitt första försök använde qemu direkt för att installera operativsystemet. Man konfigurerar upp qemu för att montera på en cdrom, eftersom så fort man kör igång qemu så är det ju en virtuell maskin man startar.

sudo qemu -enable-kvm -k sv -ctrl-grab -hda foo.img -m 1024 -net nic,macaddr=DE:AD:BE:EF:A7:A2 -net tap,ifname=tap2 -monitor pty -vnc 0.0.0.0:1 -name foo-dator -cdrom debian-testing-i386-businesscard.iso -boot d

Tyvärr verkar det som om man måste köra qemu som root för att kunna köra mot bridge-interfacet. Kör man qemu såhär så når man den via VNC på den första lediga porten (VNC körs från port 5900 och uppåt). Anlut och se datorn boota upp, och förhoppningsvis boota från cdrom. Sedan när du installerat operativsystemet är det bara att boota om och köra igång det installerade systemet.

Vill man inte köra qemu-kommandona för hand kan man istället välja att köra ytterligare ett abstraktionslager högre upp. Det finns antagligen flera. Jag vet att Ubuntu har baserat något på virsh för att via grafiska gränssnitt för att konfigurera upp qemu, och förmodligen har alla OS sina verktyg. Virsh är dock ett CLI som verkar vanligt, och motsvarande qemu-kommando är detta:

virt-install --connect qemu:///system --virt-type kvm --accelerate --name demo --ram 1024 --disk path=debian.img,size=10,format=qcow2 -w bridge:br0 --mac=DE:AD:BE:EF:A7:A2 --graphics vnc,listen=0.0.0.0,keymap=sv,password='foo' --noautoconsole --cdrom debian-testing-i386-businesscard.iso

Det är viktigt att sätta olika MAC-adresser för de virtuella nätverksgränssnitten, annars kommer de att kollidera på ditt LAN. Hur som helst, poängen med att köra virsh framför qemu direkt är att du får ett management-lager ovanpå qemu som har koll på vilka virtuella maskiner som finns tillgängliga, vilka som är igång, hur mycket CPU de drar, och så vidare. Dessutom blir det enklare att skapa kloner av en maskin du kan utgå ifrån för att skapa nya projekt.

Jag inser vid det här laget att jag skulle kunna skriva tio bloggposter till, så det kommer jag att göra. Kan du inte slita dig från att lära dig så vet jag inte riktigt var man ska börja läsa. Men själv sitter jag och pluggar presentationerna från KVM-konferensen som var nu i augusti. Och jag har inte ens börjat skriva om user-mode-linux som jag tycker är väldigt trevligt. Eller virtuella nätverk.

Med ett oerhört kommersiellt intresse för virtualisering har jag insett att det händer oerhört mycket inom det här området. Mycket går givetvis mot att klämma in fler och fler virtuella maskiner i en och samma hypervisor för att kunna sälja till fler kunder, men också mot management och monitoring. Men det är ju intressant även för mig, som vill kunna använda min hårdvara till roliga saker också.

Vad har ni för erfarenheter av virtualisering?

Utlämning av IP-adresser

IP-adresser kan tydligen utgöra en fara för rikets säkerhet. Finns det någon som tror på det?

Nåja. Med anledning av artikeln om hur Reinfeldt hävdar just detta, så sitter jag och funderar på om jag inte skulle ta och skruva till Creeper en aning. Jag har ju aldrig velat spåra enskilda individer, så därför sparar jag endast träffar från myndigheter osv, utan vidare analys. Men om jag t.ex. skulle sätta kakor för varje träff, skulle jag faktiskt kunna spåra enskilda användare. Jag skulle också vidare kunna matcha kakor som jag tidigare satt från andra nät än myndigheternas egna. Och då skulle jag kunna göra en ganska grov spårning.

Många tjänster har ofta användarnamn och liknande i URL-fältet. I kombination med analys av detta, samt kakspårningen, skulle det vara rätt trivialt (om än mer jobb för mig), att göra en ganska grov spårning av enskilda individer på exempelvis Regeringskansliet.

Så fort man använder IP-adressen är den ju liksom utlämnad. Så … fara för rikets säkerhet? Det för ni fundera själva kring…

Men ni som har Creeper-bilden på era sajter? Vore det ok att börja experimentera med kakor? Nu har jag ju inget licensavtal på nåt sätt för någon användning alls här, eftersom jag inte har någon relation med de som lägger upp Creeper-bilden.

Tänkte prova Soundcloud

Jag har provat Soundcloud ett tag. Men jag har aldrig lekt med deras inbäddade spelare. Så nu provar jag det.

Och det tycks ju funka. Men kanske inte om innehållet syndikeras till andra tjänster, vi får se. Prova gärna mina andra gamla låtar här. Det ligger en del annat runt nätet och skräpar också.

(Och så har jag bytt tema på min Wordpress.)

Alla borde köra SSL

Nu när det till och med går att köra både Facebook och Twitter krypterat med hjälp av SSL tycker jag att de flesta argument mot att köra SSL på sin webbplats faller. Det största argument som framhålls är att det kräver så mycket av webbservern. Det var säkert sant för 10 år sedan. Processorerna har utvecklats sedan dess och har numera bra funktioner för att även hjälpa till med de kryptooperationer som krävs. Ett annat vanligt argument är att det är dyrt. Det är det inte. Ifall man inte tycker att gratis är dyrt.

Jag vill gärna föregå med gott exempel, men tyvärr är det lite svårt. Helst av allt vill jag göra en 302 redirect från HTTP till HTTPS på alla mina webbplatser, men den enda jag har lyckats göra det med gott resultat på är vic20.blipp.com. Både blipp.com och gnuheter.com har jag slagit på SSL för. Problemet där beskrivs på engelska som “origin poisioning”. Som bloggare använder man gärna resurser på andra webbplatser, och dessa andra webbplatser saknar tyvärr ofta stöd för SSL. Vilket innebär att om man surfar till den här bloggen, pawal.blipp.com över SSL så får man inte det skinande fina hänglåset som markör som visar att sajten man surfar till är säker. Jag använder nämligen resurser hos exempelvis Flickr för att hämta några bilder. Flickr har inte stöd för SSL.

Men för att komma en liten bit på vägen så har jag för er som vill köra SSL hela vägen, sett till att ha stöd för det på Creeper. Så om man länkar till bilden med “https” istället, så funkar det bra. Jag har lagt till detta som en liten instruktion på howto-sidan för Creeper. Så ni som kör Creeper och läser detta, kan ni prova att byta ut era länkar? Då kan jag se om det blir något problem med att köra det på min sida. Det borde som sagt inte krävas särskilt mycket extra CPU för detta, och jag har en hel del CPU över om det ändå skulle göra det.

För är det så att du fortfarande länkar osäkra resurser på din webbsida så kan den som vill avlyssna trafiken hos läsaren fortfarande se vilka sidor användaren är inne på, även om inte klartexten på sajten går att läsa. Jag tycker att vi kan höja kvaliteten på den svenska webben nu, och göra läsaren lite extra trygg. Inte minst så att datalagringsdirektivet blir ännu lite mer tandlöst. För varför konstra med nya krypton och p2p-nät, när vi inte ens lyckas skydda den befintliga infrastrukturen med de verktyg som faktiskt finns tillgängliga?

(Certifikat som fungerar helt gratis hittar du bl.a. hos startssl.com.)

Topp 10 Internethändelser 2010

Nu är ju 2010 slut. Så jag tänkte sammanfatta de största Internethändelserna 2010 så som jag ser det. Jag hoppas jag kommer ihåg rätt bara. Men det här är ungefär min uppfattning:

  1. Wikileaks - ingen har väl undgått effekterna av Wikileaks. Diplomatin, politiken och näringslivet är raaaaasande! Det fria och öppna Internet som vi känner är i farozonen. Julian Assange är konstig. Openleaks utannonseras. Det finns hur mycket stoff för journalister och allmänheten som helst att hämta här.
  2. HTML5 - växer med stormsteg. Allt fler viktiga sajter kör allt mer bitar ur HTML5. Hur ska det gå för Flash?
  3. DNSSEC-signerad root. Som vi har väntat. .SE har varit signerad i över fem år. Men det är först nu när root är signerad som vi ser storskalig utrullning.
  4. Molnet - det använder du väl? Lite? Vänta, vad är det för något? Ingen vet, men alla talar om det.
  5. DDoS - 2010 blev året då allt DDoS:ades hela tiden. Av Anonymous. Och främmande makt.
  6. App Stores. Både Apple och Google har insett det som Linux-världen har förstått i över tio år. Att man vill ha ett praktiskt sätt att installera uppgradera sin programvara. Nu väntar vi bara på vettiga paketsystem.
  7. Facebook - är större än någonsin. Och en Hollywood-film.
  8. Google Chrome - en verkligt seriös utmanare till de andra webbläsarna, Firefox, Internet Explorer och Opera. Firefox tar dock fortfarande marknadsandelar, men Chrome har vi knappt sett början på. Webbläsarkriget bara fortsätter och fortsätter, men med nya fronter.
  9. iPad - har förändrat mångas användarbeteenden. Inte minst har den förvridit huvudet på tidningsredaktioner världen över. Snart vaknar de ur Apples dröm. Se andra-platsen.
  10. Domännamnsbyten. Alla gör det. Sveriges Radio. Bloggar. En del webbsajter flyttar till och med in på Facebook. Länkrötan tar över.
Och årets icke-händelse går nog till Pirate Bay-rättegång nummer två. Same procedure as last year. Men tråkigare.

Uppdatering: Jag visste att jag skulle glömma en sak på listan. Stuxnet var ju årets säkerhetshändelse, alla kategorier. Masken som innehöll fyra 0-days, och använde stulna certifikat, och attackerade väldigt specifik mjukvara för att attackera hårdvara. Konspirationsteorierna har svämmat över på nätet. Symantec har en riktigt bra analys (pdf).

När DNS ljuger

Man kan väl minst sagt konstatera att DNS hamnat i fokus den senaste veckan, inte minst i ljuset av Verisigns ompekningar av ett större antal domäner, men också Wikileaks problem med att vara tillgängliga. Senast ut med Wikileaks är att deras DNS-tjänst som sköttes av EveryDNS plockade bort wikileaks.org från sina namnservrar. Anledningen är att namnservrarna utsattes för en DDoS-attack, vilket skulle få nästan vilken leverantör som helst att ta bort det domännamn som är orsaken till problemet, eftersom detta går ut över alla andra kunder.

Företaget Renesys, känt för sina rapporter om olika aspekter av Internet, mer eller mindre bra, har i en bloggpost skissat på ett litet betygssystem för hur DNS hanteras i olika länder. Vi vet ju att man från operatörshåll i Sverige filtrerar visst innehåll. Så hur illa är detta i Renesys betygssystem? Först listar jag detta betygsystem här:

★★★★★

Entirely safe. Providers in this country respect DNS integrity and never rewrite DNS responses. Even if you mistype a domain, you get an obvious non-existent domain (NXDOMAIN) error message and not an advertisement. When asking questions you always receive the intended answers.

★★★★

Mostly safe. Providers in this country are allowed to rewrite queries to unknown domains to make money, but otherwise they leave DNS alone.

★★★

Use caution. In this country, DNS providers may be required to modify the recursive resolver responses in order to enforce local content laws.

★★

Strong caution. In this country, ISPs may be required to modify the recursive resolver responses in flight in order to enforce local content laws. In other words, ISPs listen in on your requests and alter the responses, no matter which server you query.

Danger. In this country, root server responses as well as recursive responses may be modified in flight, without warning, by any infrastructure providers.

Så var hamnar Sverige på betygsskalan? Den filtrering som görs sker ju på frivillig basis, men där Rikskriminalen tar fram blocklistorna. Dessa blocklistor är dock inte offentliga. Jag skulle nog påstå att Sverige får ★★★★. Men detta kan ju snabbt ändras. Vi har ju inga lagar om att innehåll måste blockeras av operatörerna genom DNS.

Men som vanligt, kör din egen DNS om du inte litar på hur andra gör. Och använd DNSSEC för att detektera omskrivningar av DNS-svar. Vid DNSSEC-validering måste man dessvärre signera sina domäner med DNSSEC, och till en utbredd användning här har vi en bit kvar.

En kommande fragmentering av DNS

Med anledningen av att den “amerikanska regeringen” (Immigration & Customs Enforcement inom Department of Homeland Security) för snart en vecka bad Verisign peka om ett antal .com-domäner till en spärrsida liknande den som svenska ISP:er på frivillig basis implementerat mot barnpornografi, så har piratnördarna med Peter Sunde i spetsen skapat något slags initiativ för att bygga en P2P-baserad DNS-toppdomän, .p2p.

De krav (eller “mål”) som man har med detta är att få till en toppdomän där innehållet inte går att filtrera på det sätt som gjorts ovan. Men för att ta ett mål i taget, från deras wiki:

  • Undgå den “kontroll” som ICANN har idag. Ja, ICANN har inte särskilt mycket kontroll över ccTLD:er som t.ex. .se idag. De kan förstås tillsammans med NTIA ta bort .se från kartan, men det blir med största sannolikhet förhållandevis ganska komplicerade diplomatiska förhållanden mellan Sverige och USA då, samtidigt som ICANN förminskar sin egen roll genom minskat förtroende. Risken för detta är minimal. Att servera sina domäner under .com som drivs av ett amerikanskt företag har ju visat sig vara ödesdigert, men då borde slutsatsen vara att köra sina domäner under toppdomäner som har lagstiftning och myndigheter som man vet hur man uppför sig.
  • Kryptera DNS-uppslagningarna genom mekanismer i P2P-lösningen. Visst, det är ju bra. Men allt som skjuts långt bort i nätet, och bygger på någon form av realtidskrypto sänker prestandan. Nu kan man ju argumentera för att med högre säkerhet och anonymitet, så kan man offra prestanda. Nu har P2P-nät mycket sämre prestanda än DNS ändå, så oavsett vad man gör så blir uppslagningarna långsammare än vanlig DNS. Dessutom vill man inte göra särskilt mycket avancerad krypto i sådana här protokoll, eftersom detta lätt leder till DoS-attacker riktade mot den som ska validera signaturer eller dekryptera information.
  • Återanvända så mycket färdig bittorrent-kod som möjligt. Jag förstår inte varför detta ska vara ett mål, det känns som en teknikerlösning på ett teknikerproblem. Först designar man ett protokoll, sedan tittar man på om det finns färdig kod som kan lösa implementationsbiten.
  • Stöd för .p2p i alla OS och applikationer, genom “open source”. Ja, det är ju bra. Men det är inte så man designar protokoll. Man gör det genom att skriva extremt bra specifikationer som har flera oberoende implementationer, som faktiskt fungerar mellan varandra.
  • Denna uppslagningsmekanism ska inte påverka det övriga DNS-systemet, och här vill man inte betraktas som ett malware. Bra. Men svårt att undvika, eftersom vem som helst kommer att prångla ut “Phree Warez for the .p2p-domainz!1!”-applikationer, eftersom detta inte kommer att ingå som en standardkomponent i ditt operativsystem.
  • Zeroconf. Bra, men det är ju egentligen ingen protokollfråga, utan upp till den specifika applikationen att avgöra. Dessutom kan ju implementationen bara bli zeroconf i klientläge, knappast i den del som ska servera namn till .p2p-namnrymden.
  • Uppslagningsmekanismen ska vara säker och krypterad (sista punkten, end2end…). Ja, why not. DNS är ju inte krypterat idag, även om det förekommit flera förslag på hur man gör detta. Och med DNSSEC kan du vara säker på att DNS-svaren inte är manipulerade.

Min betraktelse här är att kravspecifikationen på ett nytt DNS-liknande protokoll så här långt är väldigt luddiga. Det är en massa önskemål. Men ingen information om hur man publicerar namn, vilka nycklar man ska lita på, och vem som litar på vem. (Det finns något obegripligt om web-of-trust och GPG.) Men mycket Alice and Bob blir det.

Rick Falkvinge har ökat på förvirringen genom att hävda att DNS redan är fragmenterat. Detta baserat på att man i Danmark har lagstiftat att operatörers resolvrar måste filtrera ut piratebay.org. Lösningen ovanför (vad den nu blir) kommer inte att lösa andra resolvrars DNS-filtrering. Här är lösningen givetvis att köra sin DNS-resolver själv. Men det måste man ju ändå om man ska få DNSSEC att skydda DNS-informationen hela vägen till klient-datorn. För det gör ni väl?

Jag är positiv till allt som utvecklar Internet och DNS. Men man löser inte diffusa problem med diffusa tekniska lösningar. Jag gissar att målet i förlängningen är att helt ersätta DNS, men att man vill börja med .p2p, eftersom det är något rimligare. Det är bra. Men då måste man modellera protokollet med vad DNS idag hanterar. Annars kommer det att bli något annat, och då ska man nog inte parasitera på DNS-namnrymden ens.

Öppet brev till scenen

Man hittar mycket kul när man gräver i gamla gömmor. Men det jag hittade nyligen måste jag publicera här. Inte minst därför att det gått ganska bra för avsändarna. Det handlar om ett öppet brev till “scenen” om det dåliga med piratkopiering. Detta är publicerat i ett litet scen-fanzine i april 1992.

In Medias Res

Svaret från medlemmen Strider i Fairlight (inte FAGlight) följde på nästa:

In Medias Res

Man kan väl sammanfatta detta med att det faktiskt gick ganska bra för Digital Illusions. Och jag tror inte att någon av ovanstående skribenter var medvetna om Bill Gates berömda brev Open Letter to Hobbyists.

Vad jag själv skrev på den här tiden hoppas jag är preskriberat.