Site blog

Sida: 1 2 ()
Bild av Mats Johannesson
av Mats Johannesson - Thursday, 7 March 2019, 09:28
Vem som helst (även för gäster)




Docker in Docker (DiD)

Det finns möjlighet att låta Docker container starta och köra en annan Docker container. Detta görs genom att köra en Docker Unix socket inuti en container. Socket är en endpoint på nätverket där information skickas mellan olika mjuvaror. Docker.sock är en Unix socket som ger möjlighet för Docker daemon, dockerd, att kommunicera med kommandoradsgränssnittet via REST API.

Socket blir som en fil, /var/run/docker.sock, eftersom det är en fil kan administratörer dela och köra docker.sock inuti container och använda den för att starta och kommunicera med denna. En container som kör docker.sock kan starta eller stoppa andra containers, skapa avspeglingar på värd eller skriva till värds filsystem.

Dock finns det några säkerhetsrisker med detta och det är viktigt att administratör är medveten om detta.

 

Risker med möjligheten

Docker.sock kommer att utöka attackytan för container och det kan bli ett sätt att kompromettera värd. Om en icke auktoriserad användare får tillgång till container som kör docker.sock, kommer hen att få rooträttigheter på värd och i Docker. Rootanvändare kan förändra värd och denna användare har även möjlighet att starta, stoppa eller exekvera vilket kommando i Docker som helst. Dessutom kan hen lyssna på eller ansluta till API, då denna person har tillgång till Docker socket.


Använda funktionen säkert

Detta bästa sättet att undvika dessa säkerhetsrisker, är att inte alls använda sig av docker socket. Men om organisationen måste använda sig av docker.sock, följ dessa rekommendationer:

  • Innan du monterar docker.sock till container, funderar på information som denna container kommer att dela eller innehålla – ju mer känslig information, desto högre säkerhetsrisk. Tilldela bara tillgång för container till den information som den behöver genom att använda docker.sock. Som minsta åtgärd, sätt information i container till endast read-only, eftersom detta kommer att förhindra ickeauktoriserad användare att ändra informationen. Denna åtgärd kommer dock inte att förhindra att denna användaren från root-rättigheter på värd.
  • För att sätta restriktioner på vad användare kan göra, slå på Transport Layer Security (TLS) eller använd sk authorization proxies. Docker kan också blockera tillgång till socket över http och tillhandahålla ytterligare funktioner för auktorisation och autentisering genom konfigurationer för rollbaserade rättigheter. Som ett tillägg kan du använda Docker Bench for Security, ett skript som automatiserar kontroll av container via riktlinjer från Center för Internet Security och rekommendationer för implementeringar av containers.


Alternativ för docker.sock

Det finns inte många direkta alternativ for funktionen, men genom att använda proxies kan säkerheten förhöjas.

HAProxy är en lastbalanserare för TCP och http som är öppen källkod. Administratörer kan sätta upp HAProxy för att lyssna på docker.sock och även för att stödja specificerade endpoints eller att ta bort  tillgången till docker.sock.

Ett annat alternativ är docker-proxy-acl, som är en Unix socket-proxy. Med denna produkt kan du låsa ner eller tillåta tillgång till endpoints och detta inkluderar containers, avspeglingar, volymer, händelser, arbetsuppgifter och nätverk. Docker-proxy-acl kan också förhindra att användare bygger egna Dockerfile där de kan lägga till instruktioner av misstänkt natur och på detta sätt få in dessa instruktioner i en avspegling som organisationen använder sig av.

 

Produkter som nämns i denna artikel:

Docker Bench Security: https://github.com/docker/docker-bench-security

HAProxy: http://www.haproxy.org/

docker-proxy-acl: https://github.com/titpetric/docker-proxy-acl



[ Modifierad: Thursday, 7 March 2019, 10:46 ]
 
Vem som helst (även för gäster)



Åtta principer för Continuous Delivery

 

1.     Process för release/produktionssättning måste kunna repeteras och måste vara pålitlig.

 

2.     Automatisera allting. Manuell produktionssättning kan aldrig beskrivas som repeterbar eller pålitlig.

 

3.     Om något är svårt eller jobbigt, gör det ofta. Om du gör något som är arbetsamt oftare, leder detta till att du troligtvis automatiserar det eller hittar dellösningar. Exempelvis tycker du det är arbetsamt att implementera schema för databas, brukar detta leda till att du inte gör detta så ofta. Det du egentligen skulle göra, är att göra detta en gång om dagen istället för kanske en gång i månaden.

 

4.     Ha allting i source control. Detta kanske låter lite konstigt idag. Och vem har inte allt i source control? Eller?

 

5.     Gjord, eller done, betyder släppt eller released. Detta handlar om ägandeskap för projektet, efter detta steg har ägandeskapet överförts till användare. En till utvecklarteam kontrollerar kontinuerligt funktion i produktion.

 

6.     Bygg in kvalitet! Ta tiden som krävs för att fundera på hur du kan mäta kvalitet för programkod. Projekt som har ett bra sätt att mäta kvalitet (unit test, sätt att koda, regelverk, mätning komplexitet) kommer att vara bättre än projekt som inte användare och dessutom långsiktigt vara lättare att underhålla.

 

7.     Alla har ett ansvar för processen för release. Ett program som körs på utvecklarens dator, kommer inte att generera pengar för företaget. På ett liknade sätt så kommer ett projekt utan någon plan för utrullning, att aldrig bli släppt och återigen kommer inga pengar in till företaget. Företag får in pengar när produkter släpps till kunder och därför skall processen vara av intresse för alla. Utvecklare skall utveckla sina projekt med tanke på hur utrullning skall ske. Projektledare skall planera projektet med tanke på utrullning. Testare skall förutom att testa själva programmet, lägga fokus på att testa utrullningen. Tester av den sistnämnda typen skall vara automatiserade och inbyggda i själva utrullningen.

8.     Förbättring – pågående process. Luta dig inte tillbaka och vänta på att ditt system kommer att bli gammalt och omöjligt att underhålla. Förbättringsprocessen pågår alltid och blir mycket lättare att genomför om du redan har tänkt på detta.

 

Dessa åtta principer leder till dessa fyra praxis:


1.     Bygg exekverbara filer endast en gång. Exekverbara filer skall lagras på en plats och denna plats skall endast vara nårbar av mekanism för utrullning.

 

2.     Använd exakt samma mekanism för utrullning till varje miljö.

 

3.     Testa din utrullning. Även om utrullningen har varit lyckad, behöver detta inte innebära att allting verkligen finns på plats. Skriv ett test som kontrollerar så att allting finns där det skall vara. Exempelvis jämför från en lista över filer så att dessa finns, eller jämför konfiguration utifrån en lista, i denna lista finns den förväntade konfigurationen, denna jämförs med hur det verkligen ser ut.

 

4.     Om något fallerar, stoppa allting! Ta bort utrullningen och starta om processen igen, patcha inte eller förändra någonting, istället gör du en rollback på utrullningen, fixa problemet på ett ordentligt sätt. Gör aldrig förändringar i ett system som lever! Inte ens om det är ont om tid. Detta leder alltid till en dålig kvalité på din programkod.


 
Bild av Mats Johannesson
av Mats Johannesson - Tuesday, 8 January 2019, 09:12
Vem som helst (även för gäster)

Orkestrering i Docker


Ny kurs från .easec, Orkestrering i Docker.

Två dagars kurs med följande innehåll:

Docker

Modulen ger bakgrundsinformation om Docker och kunskaper hur du installerar Docker.

Lektioner: Bakgrund, Docker bas och Arkitektur


Kommando

I denna modul får du lära dig användbara kommando för att arbeta med Docker och containers.

Lektioner: Kommando och Hantera container


Dockerfile

Dockerfile är en vital funktion för att skapa avspeglingar, men används även av många andra funktioner i Docker. I denna modul tittar vi på grunderna i Dockerfile.

Lektioner: Skapa avspegling och Dockerfile


Orkestrering

I denna modul tittar vi på Docker Compose, Docker Swarm, Docker Machine och Docker Cloud. Alla dessa är inbyggda verktyg för att hantera orkestrering av Docker. I modulen nämns även andra tredjepartstjänster.

Lektioner: Docker Compose, Docker Swarm och Docker Machine


Kubernetes

I denna modul tittar vi på och arbetar med Kubernetes.

Lektioner: Koncept och arkitektur, Deklarativ och imperativ, Nätverksmodell och Första kontakt med kubectl.


På utbildningscenter i Sverige eller via molnet!


 
Vem som helst (även för gäster)

Installera och konfigurera NAT med Windows PowerShell


PDF beskriver hur du använder Windows PowerShell för att installera och konfigurera NAT på Windows Server 2016 Core 1809.


PDF hittar du här: https://stordevsumj.blob.core.windows.net/easec/Konfigurera_router_pa_Windows_Server_Core.pdf

[ Modifierad: Friday, 4 January 2019, 14:18 ]
 
Bild av Mats Johannesson
av Mats Johannesson - Thursday, 3 January 2019, 12:49
Vem som helst (även för gäster)

Släktforskning


Det är ingen hemlighet att .easec gillar Docker, varför inte kombinera släktforskning med Docker? Pdf beskriver hur du tillverkar container i Docker med verktyget Webtrees. Webtrees är ett opensource projekt för släktforskning.


Vill du se hur det ser ut, gå till: http://famjohannesson.se . 


Hur jag har gjort, finns beskrivit här: https://stordevsumj.blob.core.windows.net/easec/Skapa_avspegling_for_Webtrees.pdf

[ Modifierad: Thursday, 3 January 2019, 12:52 ]
 
Bild av Mats Johannesson
av Mats Johannesson - Wednesday, 10 October 2018, 01:24
Vem som helst (även för gäster)

Promo


Denna nya kurs har fokus på Windows Server 2016/2019, men Linux finns med på ett hörn.


Direktlänk till kursen: https://portal.easec.se/moodle/enrol/index.php?id=19

[ Modifierad: Sunday, 14 October 2018, 11:46 ]
 
Vem som helst (även för gäster)

Feed

Bästa sättet att hålla sig uppdaterad, är att prenumerera på .easec:s RSS-feed. URL: https://portal.easec.se/moodle/rss/file.php/1/9fe237c93201a297a6631bc26a3b6aa1/blog/user/2/rss.xml

etiketter:
[ Modifierad: Monday, 8 October 2018, 14:26 ]
 
Vem som helst (även för gäster)

Kursmiljö



.easec:s kursmiljö uppdaterad till Windows Server 2019 1809 och Windows 10 1809. 

 
Bild av Mats Johannesson
av Mats Johannesson - Monday, 10 September 2018, 20:38
Vem som helst (även för gäster)

Azure


Azure Container Registry

 Du kan implementera ditt egna privata förråd av container genom att använda Container Registry service i Azure. Detta ger möjlighet till att skapa och underhålla din egen samling av avspeglingar för dina Docker containers, samtidigt som du kan dra nytta av fördelarna med plattformen för Azure, när det gäller tillgänglighet, prestanda och flexibilitet.

Du kan läsa mer här: https://stordevsumj.blob.core.windows.net/easec/Skapa_Container_Registry_service.pdf

Från .easec:s kurs Docker.


[ Modifierad: Monday, 10 September 2018, 20:41 ]
 
Vem som helst (även för gäster)

Nya kurser

.easec ångar på! Två nya kurser: Docker och npm, Node.js, TypeScript och Angular.


Docker 2 dagars kurs med följande innehåll: Docker, Kommando, Dockerfile, Optimering av Dockerfile, Orkestrering och nätverk. Cirka 6 timmars videomaterial 260 sidor.

npm, Node.js, TypeScript och Angular 4 dagars kurs med fokus på Angular. Introduktion till npm, Node.js, TypeScript, Introduktion till Angular, Arkitektur Angular, Components, Structural Directives, Services i Angular, Routing i Angular och formulärshantering. Cirka 12 timmars videomaterial 556 sidor.


På gång i slutet av september: Windows Server 2016 och identitetshantering med Azure AD och Docker - Nätverk.

 
Sida: 1 2 ()

  
RSS