Tag Archive | Säkerhet

Testa säkerheten med Kali

Jag är lite smått intresserad av olika Linux distributioner och testar gärna och ofta sådana som jag inte provat tidigare. I det här fallet så har blicken fallit på Kali från ”Offensive Security”.

Distributionen framställs som en säkerhetsdistribution ämnad för bland annat penetrationstester av trådlösa nätverk, men bortsett från detta så är jag som sagt nyfiken så om du läser vidare så skall jag berätta vad jag hittar. Läs mer…

setMasterPassword()

Då har en vecka gått och jag har kanske inte provat QGIS 2.12 så mycket som jag velat, men tillräckligt mycket för att börja experimentera med modifieringar.

Om du som jag använder datakällor som kräver inloggningsuppgifter så kanske du använder den nya funktionen med att lagra dessa uppgifter i en krypterad databas skyddat av ett masterlösenord.

Skärmbild från 2015-10-27 17:33:56Vilket innebär att du i och för sig slipper att ange alla separata inloggningar, men så fort QGIS startar så måste du fylla i ditt masterlösenord i en dialogruta.

Det går att trycka ”Esc” och hoppa förbi dialogen om man inte behöver resurserna, men lite bökigare blir det.

Det jag nu kommer att visa måste du vara lite försiktig med! Tänk igenom vilka konsekvenser det kan få och prova olika scenarion innan du inför det permanent. Genom att följa instruktionerna här så sätter du nämligen en del av den nya säkerheten ur spel. Läs mer…

Välkommen ”Lyon”

Då har så den senaste QGIS versionen släppts och finns för nedladdning och installation på http://qgis.org.

Beroende på vilket operativsystem du använder så kan det dröja ett litet tag innan installationsfiler är färdiga och upplagda, men Linux är klart och jag har testat! (För Windows kan du använda OSGeo4W installationen för att få 2.12.)

splashNär du uppdaterar så kan du råkar på en nyhet direkt, nämligen den nya säkerhetshanteringen med certifikat:

Skärmbild från 2015-10-25 08:29:59Detta är ett ”fel” som förekom även i masterversionen av QGIS, men som inte egentligen påverkar funktionen. Du kan klicka på Ignorera eller Avbryt utan att något mer påverkas. Använder du Windows så kommer du sannolikt inte att se denna varning.

När du lägger in ett ”Masterlösenord” i din personliga autentiseringsdatabas så kommer dialogrutan att försvinna. Däremot så kommer du att behöva ange detta Masterlösenord för att låsa upp din autentiseringsdatabas varje gång du behöver komma åt resurser som kräver inloggning. Som bonus så kommer alla dina login som används för olika tjänster i QGIS att lagras krypterat och säkert, samt att du inte behöver mata in dessa varje gång. Det räcker med Masterlösenordet.

Skärmbild från 2015-10-25 08:35:59

Du kan lägga in dina verifieringar i databasen i anslutningsinformationen eller direkt i inställningarna för Verifiering (Inställningar / Alternativ…).

Har du gamla projekt med lagrade användarnamn och lösenord så fungerar dessa precis som förut, men du bör uppdatera dessa filer så snart du kan för ökad säkerhet.

I de gamla projektfilerna finns en eller flera parametrar med motsvarande innehåll som nedanstående:

<datasource>
dbname='geodata' 
host=localhost 
port=5432 
user='postgres' 
password='xxxxxxx' 
sslmode=disable 
key='id' 
srid=4326 
type=MultiPolygon 
table="Sverige"."OSM_buildings" (geom) sql=
</datasource>

I nya filer där du lagt in användarnamn och lösen i autentiseringsdatabasen kan det i stället se ut som nedan:

<datasource>
dbname='geodata' 
host=localhost 
port=5432 
sslmode=disable 
authcfg=hzq35w1 
key='id' 
srid=4326 
type=MultiLineString 
table="Sverige"."OSM_roads" (geom) sql=
</datasource>

Du kan redigera filerna manuellt till ny struktur, så länge du vet vilket ”id” i autentiseringsdatabasen som motsvarar det användarnamn och lösenord som skall användas. Använd en texteditor och sök efter texten med ”user” och ”password” för att ersätta dessa med ”authcfg” med rätt id. Du hittar exempel på genererat id i Verifieringsdialogen i en av bilderna ovan.

Ta för säkerhets skull en kopia på din projektfil innan du gör detta!

Översättning

Några avslutande ord om översättningen av QGIS till svenska.

Det var lite uppförsbacke mot slutet och det vår många som gjorde heroiska insatser för att nå hela vägen, men tyvärr så återstår det några hundra fraser.

Förhoppningsvis har vi inte bommat för många fraser i GUI, men jag vet att det finns brister i delar av ”Geobearbetning”. Detta beror bland annat på att det för 2.12 funnits många fler möjliga fraser att översätta för just dessa. Det har dessutom introducerats en hel del nya, översättningsintensiva funktioner.

Jag skulle nu vilja be om att översättare inte väntar till nästa Feature Freeze med att börja översätta fokuserat. Jag tror att vi skall försöka ta några fraser då och då i stället, så kanske det blir en mindre ansträngning när det väl börjar närma sig nästa Long Term Release (LTR). Det kan ju även komma en 2.12.1 release i närtid och då kan det vara bra att ha så mycket översatt som möjligt.

Jag skulle också vilja be alla översättare som inte varit inne och översatt på länge att antingen göra det så att ni har någorlunda aktuella översättningarna i databasen. Anledningen är att det finns översättare som inte gjort översättningar på väldigt länge, och en del ser inte ut att gjort några alls. Jag kommer att ta bort de mest oproduktiva översättarna från listan, men så länge du har skickat in en översättning det senaste året via Transifex så kommer du att vara kvar.

Slutligen ett stort tack till alla som hjälpt till med översättningen av det som i mitt tycke är den viktigaste QGIS uppdateringen hittills.

Skapa ett Transifexkonto och hjälp till med översättningen.

Säker Open Source GIS

Med jämna mellanrum hör man om säkerhetshål och säkerhetsbrister i operativsystem, program och plug-in. Ofta handlar detta om stora, eller vanliga produkter och mera sällan om öppen källkod inom GIS.

Jag är nu långt ifrån en säkerhetsexpert, men jag är inte så naiv att jag tar detta som intäkt för att öppen källkod eller Open Source GIS är mycket säkrare.

Det är väl mera sannolikt så att det finns precis lika mycket säkerhetsbrister inom OS GIS, och i takt med att användandet av denna typ av system ökar så kommer dessa problem att bli vanligare.

Vad kan man då göra om man inte är expert men ändå vill använda delvis oprövade mjukvarulösningar i sina system. Läs mer…

Varför skall jag ”Virtualisera”?

Det kan finnas flera anledningar men en är säkerhet, vilket jag återkommer till.

Först och främst, vad är virtualisering? Själv är jag nybörjare och är nog lite svag när det gäller detaljer men det gör mig perfekt för att ta reda på och sammanfatta begreppet generellt.

Kortfattat innebär virtualisering att man låter datorhårdvara köra flera operativsystem samtidigt, vilket får det att se ut som det finns flera datorer på nätverket. För att det skall fungera så behövs det en dator i grunden som kör någon form av vitrualiseringsprogramvara som i sin tur simulerar olika datorer. När man konfigurerat dessa virtuella datorer så kan man installera operativsystem och program precis som med en fysisk dator.

De virtuella datorerna delar då på de resurser som finns i den fysiska datorn och man kan ganska enkelt fördela om resurser mellan dessa om det skulle visa sig att trycket är högre på någon av dem.

Det börjar bli vanligt med specialiserad serverhårdvara för att virtualisera klienter (exempel från Vimmerby) men här fokuserar jag på servervirtualisering.

Det behöver inte ens vara en fysisk dator som man kör sina virtuella datorer på. Det kan vara ett ”kluster” av datorer i stället. Ett kluster är hårdvarumotsvarigheten till virtualisering där man låter flera fysiska datorer agera som en enda rent logiskt. Varje dator kör ett speciellt operativsystem och en eller flera av datorerna samlar all kapacitet och presenterar denna som en gigantisk server med superprestanda.

För att återkomma till säkerhet så finns det en enkel förklaring till varför virtualisering är en bra idé. Tänk dig att någon lyckas utnyttja en svaghet i Apache webbserver och tar sig in i servern. Då kan de teoretiskt även komma åt din GeoServer, PostGIS-databas, mail och dina filer…

Om du i stället kört databasen, mail- och filserver på egna virtuella servrar utan Apache så är de bättre skyddade. Webbservern kanske skadas och information kan läcka, men information som inte publiceras via webben ligger relativt säkert på de andra servrarna.

När man beräknar hur många servrar man behöver så kan man börja med att titta på vilka program som är installerade och börja med att avinstallera det som inte behövs. Detta kan vara lite vanskligt då det är svårt att reda ut alla beroenden, men det skadar inte att lista det som är installerat.

dpkg -l

Vill du sedan lista alla tjänster som körs så finns det ett kommando för det också.

service --status-all

I listan så står det +, – och ? framför tillgängliga tjänster och det betyder att de körs (+), är stoppade (-) eller att statusen är okänd (?).

Vill man lista de portar som servern lyssnar på så kan man använda:

netstat -ntlp

Med det sista kommandot så kan man ganska grovt räkna ut hur många virtuella servrar man behöver. En del portar kanske skall köras på varje server för att exempelvis kunna komma åt och administrera dessa. Detta brukar göras via SSH och port 22. Andra vanliga portar finns i listan nedan.

21 FTP filöverföring
23 Telnet (gammal okrypterad teknik, undvik!)
25 SMTP mail
80 HTTP eller Webbserver
139 NetBIOS namnuppslagning
443 HTTPS krypterad webbsida
445 SMB Windows fildelning

Det finns många fler och även ytterligare portar som inte är standardiserade på riktigt samma sätt men dock registrerade. Ett sådant exempel är PostgreSQL som lyssnar på port 5432. En komplett lista med portnummer kan man hitta på nätet.

Vill du söka igenom ”alla” portar och kontrollera vilka som är öppna/aktiva så kan du köra följande kommando.

sudo nmap -sT -O localhost

Du kan byta ut localhost mot ett servernamn eller en ip-adress för att testa portar på en annan dator i nätverket. Testa exempelvis att köra det mot din egen klient eller din brandvägg…

Säkerhet är ett komplicerat område och man kan sätta säkerhet på så många nivåer. Fysisk säkerhet för att skydda mot direkt tillträde till hårdvaran, inloggning med olika behörigheter, rättigheter i tjänster och filsystem, policy för olika säkerheter, etc. Det blir snabbt svåröverskådligt och är därför säkerhet viktigt så skall man alltid se till att anlita expertis. En ganska bra checklista att börja med kan du hitta på http://www.cyberciti.biz/tips/linux-security.html. Många av kommandona ovan har jag hämtat från denna sida.

Egen server för geodatatjänster – Del 9

Säkerhet är ett stort och viktigt ämne och det lämnas inga garantier för att instruktionerna här ger ett heltäckande skydd. Är säkerhet viktigt så skall man utan tvekan ta hjälp av experter på området. Det som visas här är enkla principer för hur man täpper igen de största hålen i den standardinstallation som är gjord. Jag har inte plats att ta upp alla detaljer jag vill ha med här, men jag kommer att försöka vara mer detaljerad i den kommande boken som sammanfattar och kompletterar alla inlägg i den här serien.

Samba

Det första man kan göra är att ändra rättigheterna på de utdelade katalogerna på servern. Det finns några olika sätt att göra detta och här redovisas endast ett.

Ändra raderna med guest ok = yes till guest ok = no, i filen /etc/samba/smb.conf. När man sedan startat om smbd-tjänsten så kommer man att bli tillfrågad om ett lösenord när man vill ansluta till katalogen.

Samba känner dock inte till detta lösenord, så det måste skapas på servern. Till att börja med så kan man skapa en användare för varje resurs man vill ha ett unikt användarnamn för. Sedan ger man denna användare ett Sambalösenord.

bok24

Kommandot useradd lägger till användaren qgisuser och flaggan -M gör att det inte skapas en hemkatalog på servern för användaren. Egentligen behöver man inte sätta ett Unixlösenord som görs i bilden ovan, utan det räcker med att sätta sambalösenordet med kommandot smbdpasswd -a användare. Sedan kan man dessutom lägga till en rad för varje utdelad resurs som styr vilka som skall kunna ansluta till dessa.

valid users = qgisuser, admin

När redigeringen är klar så skall man åter igen starta om smbd-tjänsten.

Nu kan man styra varje resurs till om det krävs inloggning eller om gäster är ok. Det går att bestämma om vilken användare som helst skall komma åt katalogen, eller om det bara är vissa.

PostGIS

Egentligen så är det inte PostGIS utan Postgresql som sätter säkerheten för databaserna. Det går att skapa enskilda användare för varje sak, men om det är en stor organisation så kanske man vill ha flera användare med samma behörigheter och då är användargrupper att föredra.

bok25

När man skapat en grupp eller ”roll” så är det dags att skapa användare till denna. Det görs på motsvarande sätt som för grupper/roller, men man anger användarnamn i stället. Grupper och användare är egentligen båda två olika typer av roller, där användarrollen kan ”logga in”.

Sedan sätter man lösenordet på fliken ”Definition” och vilken roll/grupp som användaren tillhör på fliken ”Role membership”.

bok26

I egenskaperna för databaserna så kan man sedan lägga till privilegier för olika användargrupper. I bilden ovan så ges gruppen ”qgisusers” alla rättigheter i databasen.

Sedan så sätter man rättigheter på den nivå som behövs för de befintliga resurserna. Det kan vara på tabellnivå eller högre om man vill skilja på vilka användare och grupper som skall ha access till olika resurser.

GeoServer

I GeoServer så kan man vidta ett antal säkerhetsåtgärder ganska enkelt. Alla dessa finns det instruktioner för på startsidan.

bok27

De två första är helt enkelt borttagning av två filer på servern. Öppna och läs dock den första filen innan den raderas, där står nämligen det genererade lösenordet för användaren ”root”. Detta kan vara bra att förvara på ett säkert ställe, om olyckan skulle vara framme.

rm /var/lib/opengeo/geoserver/security/masterpw.info
rm /var/lib/opengeo/geoserver/security/users.properties.old

Att ändra standardkryptering för lösenorden från ”Week PBE” till rekommenderade ”Digest” görs genom att ändra ”settings” för ”default” under ”User, Group Services”. Klicka på länken ”Users, Groups, Roles” till vänster.

bok28

För att ändra lösenordet för admin finns det en länk i varningsmeddelandet och det går att komma åt samma sida via samma länk som ovan, men genom att ändra från fliken ”Services” till ”Users/Groups” i stället.

När man ändå är här så kan man fundera på vilka användare och grupper man behöver för att sköta om GeoServern och tjänsterna där. Man bör hur som helst undvika användarnamnet ”admin” om man är flera som skall jobba med servern. Skapa i stället personliga konton och behåll ”admin” som backup.

Mera säkerhet

Ytterligare detaljer och tips kommer du att kunna läsa om i boken som jag håller på att färdigställa. Jag tror inte det dröjer så länge innan det är dags att släppa den, inte minst då jag använt en annan metod och layout än för förra boken. Det kommer en PDF version som ser ut som jag vill, men även en version i ePub, som kommer att se ut som denna typ av böcker brukar se ut.

QGIS säkerhetsvarning…

Jag kanske slår in öppna dörrar, men jag var inte medveten om detta, så det kanske det är fler som inte är.

När man använder lager i QGIS som kommer från exempelvis PostGIS, där man har olika rättigheter för olika roller i databasen, så sparas inloggningsuppgifterna i klartext i projektfilen.

Skärmbild från 2013-12-30 16:49:51

I bilden ovan så framgår att lagret ”test3” ansluter till databasen ”geodata” på IP-adressen 192.168.0.25, porten 5432 och med användaren ”qgis1” och lösenordet ”qgis1″…

Mycket praktiskt om alla som kommer åt projektfilen skall kunna göra allt med dessa data, men om det bara är vissa som skall redigera data i databasen och resten bara skall kunna läsa så har man problem.

Lösningen är att lägga till roller i Postgresql som delas av alla och som ger endast läsrättigheter.  Innan någon sparar ett projekt så att andra kommer åt det så ändrar man användare och lösenord genom att antingen ta bort lagret och ansluta till databasen med den gemensamma rollen, eller att redigera direkt i projektfilen.

Risken är att man av slentrian har använt root-användaren och det lösenordet för att lägga till PostGIS-data, och då kan vem som helst som kommer åt projektfilen ta reda på dessa uppgifter med en vanlig texteditor.

Om man använder andra typer av lager med användaruppgifter så lagras dessa sannolikt på samma sätt.