tisdag 26 oktober 2010

Backup

Jag har råkat ta bort en mapp med 80 GB data i.

Hinner tänka en del fula ord, eftersom den varit exkluderad från mitt normala backupsystem baserat på rsync+hårdlänk+ssh+extern plats. Men, första regeln vid dataförlust är dont panic. Jag konstaterar kallt att jag råkat ta bort mappen på något sätt, och att data förmodligen inte är överskrivna eftersom ingen ytterligare aktivitet skett på partitionen. Jag monterar av partitionen, gör en lvm snapshot och kopierar den råa partitionen med dd till en extern disk. Data finns där, möjligtvis osammanhängande och utan metainformation om filnamn och datum men filerna borde gå att återvinna iallafall.

Innan jag hinner inspektera det stället den backupas till dagligen oroar jag mig att jag synkroniserar - och att borttagningen av mappen kan ha synkroniserats även den. För att se om det går att vinna data söker jag på "undelete file ext3" och liknande och hittar en hel del intressanta script. Jag hinner testa några och visst går det att hitta filerna igen! Tidsstämplarna är fel och filnamnen är borta, men själva filinnehållet är bevarat.
Jag prövade bland annat photorec som finns tillgängligt i ubuntu. Några andra intressanta uppslag är ext3grep och ext3undel.

Ungefär samtidigt hinner jag inspektera målet för backupen, och visst, där finns alla filerna. Jag har kört med rsync utan flaggan --delete. Skönt att jag tänkte till när jag satte upp det scriptet.

Några nygamla slutsatser:
  • backupen ska vara på en annan fysisk plats
  • på annat fysiskt media (följer av föregående :-)
  • ske automatiskt (annars blir den aldrig gjord)
  • vara skyddad mot användarmisstag (demonstreras av det som hänt mig)
Min normala backuprutin uppfyller alla krav ovan. Det är denna mapp som inte omfattas av den normala backupen, som på grund av sin storlek fått en separat rutin. Det blir ändring på det nu. Jag lutar åt ett alternativ med rsync+hårdlänk. Jag funderar även på vilket filsystem som är bäst ur återskapningssynpunkt. Verkar som att ext2 är bättre än ext3, men det tar alldeles för lång tid vid filkontroll för att vara praktiskt.

När backupade du senast?

fredag 15 oktober 2010

Att ringa supporten

Återigen har min favoritserie xkcd prickat in en fullträff:
xkcd: tech support

torsdag 14 oktober 2010

Höstsegling

Höstens troligen sista segling idag, från Tyresö till Värmdö. Väldigt fint väder och en riktigt fin höstdag med varmt och sol. Vi såg tre havsörnar ovanför Baggensfjärden!
Det blåste ordentligt, Stavsnäs hade 11 m/s medelvind och 19 m/s i byarna (inklippt nedan). Skummet blåste av vågtopparna och det var fullt med vita gäss. Vi gjorde ungefär 6 knop när vi med nedtagna segel drev in mot hamnen.
Tyvärr hade vi ett litet motorhaveri, så vi fick låna en motor med kort rigg. Det finns en anledning till att man har extra lång rigg på utombordsmotorer, propellern gick i luften ganska ofta och det var svårt att komma mot vinden.
Segla är fantastiskt. Segla i skärgården är ännu bättre. Segla trimaran är ännu bättre!

2010-10-14 kl 17:00


Station: Stavsnäs
Vindriktning: Nordväst
Vindhastighet: 11 m/s
Byvindhastighet: 19 m/s
Lufttemperatur: 8.1 °C
Sikt: --- km
Stationshöjd: 16 m

måndag 11 oktober 2010

Rate limit a pipe

Something I often do while developing is replaying recorded network traffic.
Something along
$nc host port
to send data in the traffic.bin to host, via tcp. This will however dump the data as fast as possible, which makes it difficult to keep up with the data pace at the other end (which I try to study/debug).
A solution is to use pipe viewer which can do many things, one of them to rate limit data.
Running
$pv -L 100
gives 100 bytes per second rate. pipe viewer is installed by
$apt-get install pv
on Debian. I was just about to write a tool like this, but searched for an existing solution instead!

lördag 2 oktober 2010

Skicka krypterade filer för ickeavancerade användare

Jag använder sedan ett par år krypterad epost. Jättebra och ganska enkelt, men en stor sak är fel: att det är få som använder det. Nu har jag ibland behov av att skicka saker krypterat med användare som ibland inte är särskilt datorkunniga eller inte har tillräckliga rättigheter att bestämma över sin egen dator.

När en sådan användare ska skicka något hemligt till mig kan jag be personen att komprimera filen med 7-zip lösenordsskyddat och välja något lösenord som meddelas mig på något annat sätt. Problemet är att användaren då behöver komma över tröskeln att installera och/eller använda 7zip. Samt något annat jobbigt och potentiellt svårt: att meddela lösenordet. Och inte minst, att komma på ett tillräckligt varierat lösenord som dessutom inte missuppfattas över en raspig mobilanslutning.

En lösning skulle vara att jag sätter upp en säker (https) sida för filuppladdning på min webserver som i sin tur får kryptera och maila mig, med pgp och min publika nyckel. Nackdelen är att https är tungt för servern, samt att servern får jobba hårt för att kryptera ytterligare en gång. Fördelen är att användaren inte behöver veta något annat än adressen till min sida.

En väldigt bra ide är att låta användaren stå för datorkraften själv, genom att låta krypteringen ske hos användaren. Den krypterade filen kan sedan skickas över nätet utan några speciella åtgärder. Som med andra lösningar löser det inte problemet med autentisering (att jag kan vara säker på vem som skickat det) på samma sätt som "riktig" krypterad epost gör.

Såhär skulle det kunna se ut:
  • jag sätter upp en sida som användaren går in på, https-skyddad för att hindra man in the middle-attack på java-scripten. Typ "https://www.pauldreik.se/laddauppfiler.php" eller något sådant. Här finns javascripen inbäddade som senare sköter krypteringen. Den lilla trafik som måste krypteras är själva htmlkoden för sidan samt scripten, enbart några kb.
  • jag sätter även upp en normal (http) sida med ett php-script eller vad som helst, t ex "http://www.pauldreik.se/mottagare.php" som accepterar indata i form av uppladdade filer. användaren ser ej denna, så denna kan vara vad som helst.
  • användaren väljer en fil ifrån en vanlig htmlform, som de flesta användare använt väldigt många andra ställen, t ex när man laddar upp en bilaga till webmail. Filen läses sedan lokalt på användarens dator, krypteras lokalt med javascript och min publika nyckel, och postas sedan till "http://www.pauldreik.se/mottagare.php" i krypterad form över vanlig http. 
  • på webservern skickas den mottagna filen i ett mail till mig.  Eftersom bara jag har den privata nyckeln är det bara jag som kan läsa filen. Kringdetaljer som datum och ev namn och så som användaren skrivit in samt avsändande ipadress följer med. Dessa går naturligtvis att mixtra med på samma sätt som vem som helst kan skicka mig en fil och hävda att de heter något annat.Detta problem löses genom signering, som finns stöd för i "riktig" krypterad epost.
På detta sätt behöver användaren inte ha några rättigheter, inte installera något, och kan skicka mig filer utan yttre insyn. Jag behöver inte ha en kraftig server eftersom den inte gör någon kryptering.

Byggstenar kommer från hanewin.net (se länk i texten ovan), pgp och standard html samt javascript.