Testa säkerheten i WordPress del 2

Detta är del två av hur du kan själv testa säkerheten på Er WordPress-installation. Detta är del två och första delen hittar du här.

Denna del behandlar några mer automatiserade sätt samt är lättare för nybörjare.

WPScans

WPScans.com bygger på open-source mjukvaran WPScan och är en molntjänst som håller koll på dina eller dina kunders WordPress-installationer. Den kontrollerar plugins och själva WP-core så de är uppdaterade och inte innehåller några sårbarheter.

Disclaimer: Jag är ägare av tjänsten

DetectifyDetectify

Svenska startupen Detectify har en utmärkt bra tjänst för att söka igenom WordPress efter sårbarheter.

De har även ett tillhörande WordPress-plugin. Jag rekommenderar alla att testa eftersom kostnaden är ”det du är villig att betala”, dvs du bestämmer själv hur mycket du vill betala.

https://detectify.com

Och här hittar du pluginet https://wordpress.org/plugins/detectify-for-wp/

Exempel på en översiktsrapport kan se ut så här:

Detectify skärmdump

 

Sucuri

Sucuri är också en form av online-scanner som söker igenom Er sajt. Den tittar dock på lite andra saker än vad Detectify såsom om Er blogg dyker upp på Google med sökord som har med spam-sökord såsom viagra, cialis och liknande att göra.

https://sucuri.net

Google dorks

Sist men inte minst så måste jag nämna alla Google Dorks som finnes. Det kan lättast beskrivas som att man använder Google för att hitta intressanta saker på en blogg.

Ett exempel kan vara följande sökning:

intitle:"index of" site:utvbloggen.se

Som försöker hitta kataloger på min blogg/domän som tillåter fillistning. Här finnes en databas med många dorks:

http://www.exploit-db.com/google-dorks/

Kolla även in penetrationstest.se

Så testar du säkerheten i WordPress

Denna guide visar hur du kan genomföra ett penetrationstest av Er WordPress-installation. Fokus ligger på WordPress men det finns så klart andra delar att testa som också är relevanta såsom att testa såsom svaga SFT/FTP-lösenord men det är utanför denna guide.

Informationsinsamling

Först och främst så genomför vi informationsinsamling eller OSINT som det också kan kallas. Vi försöker kartlägga vilka användare som återfinnes samt eventuella plugins. Det går att göra genom att titta på källkoden på sidan och söka efter referenser till sökvägen /wp-content/plugins exempelvis.

Annars finns det ett plugin (script) till verktyget Nmap som kan lista användare:

 $ nmap -p 80,443 -v -sV --script http-wordpress-enum --script-args limit=25 utvbloggen.se

Och då erhåller du efter några minuter aktuella användarnamn, i mitt fall:

Username found: admin

Att det går att hitta användarnamn beror på att WordPress gladeligen berättar detta om en förfrågan genomföres till exempelvis URL:en //utvbloggen.se/?author=1 och 2 för andra användaren osv.

Även så avslöjar WordPress login-funktion om ett användarnamn är giltigt eller ej, se skillnaden mellan dessa två meddelanden:

WordPress felaktigt lösenord WordPress felaktigt användarnamn

Efter detta så testar vi att söka efter dom 500 vanligaste WordPress-plugintyperna som finnes:

$ nmap -p80,443 -v -sV --script=http-wordpress-plugins --script-args http-wordpress-plugins.search=500 utvbloggen.se

Och efter ett tag så finner vi att följande plugins används:

| search amongst the 500 most popular plugins
| akismet
| contact-form-7
| all-in-one-seo-pack
| google-sitemap-generator
| jetpack
| w3-total-cache
| worker
| only-tweet-like-share-and-google-1
| timthumb-vulnerability-scanner
| wordpress-23-related-posts-plugin
|_ syntaxhighlighter

Eftersom vi är intresserad av säkerheten så kontrollerar vi sedan om dessa innehåller några sårbarheter som uppdagats. Secunia erbjuder bl.a. en sådan tjänst här.

Även så kan det vara intressant att hitta övriga plugins som används som kanske inte är lika vanliga och ladda hem dessa samt söka efter sårbarheter. Och med detta menar jag att genomföra kodgranskning.

Forcering av lösenord

Nu när vi vet att det finns ett konto med användarnamnet ’admin’ så är det dags att testa några vanliga lösenord. Det finns hur många lösenordlistor som helst med vanliga lösenord så det är inte helt lätt att hitta en bra lista.

Jag skulle rekommendera att bygga en egen lösenordlista med ord som förekommer på den blogg som vi vill testa och sedan köra den genom John the Rippers filter för att lägga till 01 osv på slutet på orden.

Först och främst så skapar vi filen users.txt dit vi lägger användarnamnet som vi hittade från föregående steg för att hitta användarnamn. Ett användarnamn per rad.

Sedan kör vi igång Nmap igen med modulen som heter http-wordpress-brute:

nmap -p 80,443 --script http-wordpress-brute --script-args 'userdb=users.txt,passdb=500-worst-passwords.txt' utvbloggen.se

Här använder jag lösenordsfilen 500-worst-passwords.txt men det går även bra att använda swedish.txt.

Så här kan det se ut då du hittar rätt lösenord som i detta fall är sexy123fox på denna blogg:

WordPress bruteforce passwordOch ovan statistik visar även på att det tog 107 sekunder att testa 1002 lösenord. Om vi vill få upp hastigheten i lösenordstesterna så kan vi använda ett annat verktyg som heter Hydra (även så fungerar Burp Suite eller WPscan.rb).

Här kan vi se när Hydra hittar rätt lösenord med en annan lösenordslista som innehåller 370 lösenord som Twitter förbjuder som även hittar rätt lösenord sexy123fox:

WordPress hydra passwordOch sist men inte minst så  använder vi WPscan för att göra en analys:

WPscan wordpressDenna analys visar förutom det vi ser ovan 6 st plugins som identifierades samt eventuella sårbarheter som dessa innehåller.

WordPress version 3.9.1 är senaste versionen vilket är bra.

Övrigt att kontrollera

Finns många andra viktiga saker att testa samt kontrollera. Några har jag nämnt tidigare såsom att även testa lösenord på SFTP/FTP. Men även viktigt är att kontrollera säkerheten på webbservern i övrigt och då titta i exempelvis robots.txt, sitemaps eller dylikt.

Söka efter phpmyadmin samt andra liknande script som finnes installerade men även databasdumpar som kan ha namn såsom http://utvbloggen.se/utvbloggen.sql exempelvis.

Mitt företag Triop erbjuder även denna typ av IT-säkerhetstest, läs mer här.

Uppdatering: Nu finns det en del två av denna guide som du kan läsa här.

Tarsnap – Backup för den paranoide

Tarsnap är en backuptjänst i molnet för den som är paranoid. Kryptering genomförs på klientsidan innan datan skickas upp till Amazon S3-tjänst. Tarsnap är utvecklat av Colin Percival som är övermänsklig, han har bl.a. utvecklat scrypt och är säkerhetschef för FreeBSD.

Tarsnap har inget GUI och stödjer operativsystem såsom Mac OS X, Ubuntu, FreeBSD osv. Stöd till Windows finnes via Cygwin.

Så kommer du igång med Tarsnap

Först och främst laddar du hem tarsnap till din server eller klient:

$ wget https://www.tarsnap.com/download/tarsnap-autoconf-1.0.35.tgz

Och verifierar sedan nedladdningen:

$ sha256 tarsnap-autoconf-1.0.35.tgz
SHA256 (tarsnap-autoconf-1.0.35.tgz) = 6c9f6756bc43bc225b842f7e3a0ec7204e0cf606e10559d27704e1cc33098c9a

Sedan installerar du eventuella beroenden som kan behövas. Detta är för Ubuntu:

$ sudo apt-get install libssl-dev zlib1g-dev e2fslibs-dev make

Vi extraherar tarsnap och bygger koden:

$ tar xvfz tarsnap-autoconf-1.0.35.tgz
$ cd tarsnap-autoconf-1.0.35/
$ ./configure && make
$ sudo make install

Och förhoppningsvis gick allt bra och tarsnap är installerat. Om du inte har något konto på tarsnap.com så är det läge att skapa det nu.

Nu skapar vi en nyckel för denna server och anger våra uppgifter som vi använde när vi skapade kontot på tarsnap.com:

$ tarsnap-keygen --keyfile /root/https-tarsnap.key --machine https.se --user [email protected]

Viktigt här är att du sparar undan nyckelfilen https-tarsnap.key på ett annat system än det du gör backup på. För förlorar du denna fil så kan du ej återskapa data från servern samt ser till att enbart användaren som gör backup får läsa denna nyckelfil.

Så gör du backup med Tarsnap

Finurligt så fungerar tarsnap precis som tar men med lite extra argument. Jag brukar skapa en fil vid namn backup.sh som även dumpar ut MySQL-databas så den följer med i backupen.

Så här ser min backup.sh ut som körs via cronjobb varje natt av root. Se även till att enbart root kan läsa filen backup.sh då den innehåller lösenord.

mysqldump -u root -plösenord https > /var/www/https.se/backup/`date +"%Y%m%d"`.sql
tarsnap --keyfile /root/https-tarsnap.key --cachedir /usr/local/tarsnap-cache -c -f https.se-`date +%F` /var/www/https.se/docs/ /var/www/https.se/backup/ /etc/nginx/sites-enabled/default-ssl /etc/nginx/sites-enabled/default 
tarsnap --cachedir /usr/local/tarsnap-cache --keyfile /root/https-tarsnap.key -d -f https.se-`date -d "2 days ago" +%F`

Den sista raden med tarsnap -d ser till att ta bort lagrade backuper som är äldre än två dagar. Du kan även behöva skapa katalogen /usr/local/tarsnap-cache/

Uppdatering: Kolla in denna gist som underlättar installationen.

Skicka E-post via API med Mailgun

Sedan 2011 så har jag använt Amazon Simple E-mail Service (Amazon SES) för utskick av E-post men nu har jag blivit avstängd för att jag skickat E-post med för många studs. Dvs inaktiva eller på annat sätt E-postkonton som ej fungerar.

Därför tittade jag mig omkring lite och valet föll för Mailgun som verkade kompetent. Installerade deras PHP bibliotek som pratar mot API:et men tyvärr så fungerade det dåligt med konstiga felmeddelanden om felaktig API Endpoint. Till slut så hittade jag en annan kod som använder sig av curl .

Så koden blev till slut så här:

Tidigare så har jag definerat MAILGUN_API som innehåller min API-nyckel samt DOMAIN som innehåller domännamnet som används. Även så måste funktionerna br2nl() och error() skapas och du kan nog lista ut vad dom gör.

Än så länge fungerar det bra, men måste nog implementera rate-limiting med Redis så det inte skickas ut för mycket mail av misstag.

Lär dig programmering med Scratch

.SE har nu lagt upp en spellista på YouTube med 7 avsnitt om hur du kommer igång med Scratch. Videofilmerna riktar sig främst till barn men fungerar även bra för andra som vill lära sig programmering. Jag tycker det är viktigt att vi sprider kunskapen om programmering och speciellt att fler döttrar lär sig programmering.

Måns Jonassson berättar här hur du gör:

Denna bild är från då jag var med min älsta dotter som fick lära sig programmering vid 6 års ålder:

Barnhack hos .SE

Jag startar konsultfirma

Inte direkt någon nyhet men jag har kört lite konsultgig sedan en bra tid tillbaka och tänkte att det nu är dags att formalisera och åtminstone starta upp en webbsida som är någorlunda beskrivande.

Konsult-tjänsterna riktar sig framförallt mot IT-säkerhet och DevOps inom följande områden:

Jag kommer så klart att köra vidare på ett antal andra projekt för egen räkning såsom HittaRabatt som tuffar på som tåget med nya grymma rabattkoder.

Anslut gärna via LinkedIn:

Visa Jonas Lejons profil på LinkedInGå till Jonas Lejons profil

Jury till Hack for Sweden

I helgen har Hack for Sweden gått av stapeln och jag har medverkat som jury tillsammans med Pernilla Rydmark, Peter Krantz och Kristofer Sjöholm. Det var ingen lätt match att hitta vinnare i de olika kategorierna samt ta fram en bra motivering till varje vinnare.

Vinnare av det stora priset vid namn Hack for Sweden Award blev en app som visar hur farliga utsläpp från exempelvis en tankbil eller liknande påverkar området i närheten.

Motiveringen blev enligt följande:

För att på ett nyskapande sätt byggt en tjänst som visualiserar och simulerar konsekvenserna av giftiga utsläpp. Priset Hack for Sweden Award 2014 går till Ge0Hack3rs för RSN (Risk Simulation and Notification System).

Här skrev DN om vinnarna av stora priset. Och här delar jag ut priset till den yngsta hackern blott 11 år gammal som fick juryns specialpris:

Mest lovande hacker

Bildcredd till Malin Crona

Bonnier Accelerator

Var just och lyssnade på Bonnier föreläsa om Bonnier Accelerator på deras fina huvudkontor beläget på Kungsgatan i Stockholm.

Bonnier Accelerator är en del av D2D vilket står för Decide to Develop som är ett program som riktar sig till digitala talanger inom och utom företaget, långsiktigt. Och från och med i dag så går det att ansöka om att vara med i deras inkubator.

Föreläste gjorde bl.a:

  • Ulrika Saxon som är VD för företaget Bonnier Growth Media.
  • Adrian Swartz berättade om resan som Cruitway (tidigare Studentlänken) gjorde då de blev antagna till första och förra omgången av Bonnier Accelerator.
  • Tyler Crowley berättade om hur man pitchar och når ut med sin idé bland mängden av ansökningar.

Vad är Bonnier Accelerator?

Det är ett tre månaders program då Bonnier hjälper till att stötta en idé och framförallt en produkt eller företag som redan finns på marknaden. De berättade att vid förra omgången så stöttade de även enbart idéer men inget som de avser att göra igen.

Bonnier kräver inget delägarskap och stöttar med lön samt kontorsplats på huvudkontoret under tre månader. För bra för att vara sant? Ansöker gör du genom att fylla i ett formulär där du ska skicka in en video där du pitchar din idé senast 2:a Maj 2014.

Du får även tillgång till samt hjälp att nyttja Bonniers nätverk med otroligt många företag och varumärken.

Så pitchar du din Startup

Tyler berättade mycket bra ur du lyckas med din pitch. Han har över 7 års erfarenhet av att lära ut bra pitch-tekniker från bl.a. Launch-konferensen som han anordnar tillsammans med Jason Calacanis.

Följande saker är bra att fokusera på när du ska leverera en bra pitch:

  • Försök att förmedla en känsla och lägg krutet på den första minuten. För du tävlar mot Facebook, E-post och allt annat som publiken har i sina telefoner/laptops.
  • Du förmedlar en känsla lättast genom att bygga upp en bra story med drama. Skriv ner din berättelse och använder en karaktär, som inte är dig själv.
  • När du berättar din story så märks det om du övat in den från en skriven text.
  • Om din tjänst är i form av att du skriver in något som de flesta webbtjänsterna är, dvs input -> output så ska output vara 100x mer än vad du skriver in.
  • Berätta vilket problem du löser och blanda gärna in känslor såsom hat, kärlek eller andra saker som fäster människor
  • Använd ej svåra nummer såsom att: Vi når ut till 543000 singel-mammor. Använd i stället: Vi når ut till 1/5 av Sveriges alla singel-mammor.
  • Om du presenterar en berättelse så fokuserar människors hjärnor på att lyssna på historien istället för att hitta brister eller fel på din produkt
  • Ingen bryr sig om vem du är eller vilken skola du har gått i, skippa det
  • Istället för att säga ”Med denna tjänst så kommer du att kunna.. ” så säger du ”Med X så kan du” dvs försök att använda tjänstens ord så ofta du kan så den sätter sig samt så undvik vaga ord såsom kommer, kanske, kunde.

Wow fick nog nästan med allt i Tylers presentation. Många bra godbitar där, men glöm framförallt inte att läsa på innan vem du presenterar för. Exempelvis: Vilka portföljbolag har de sedan tidigare?

Vilka är dina bästa pitch-tips? Skriv en kommentar nedan.

Bonnier Tyler

Så testar du nya CoreOS

Psst! Du vet väl att du kan hyra mig för att göra underverk när det gäller DevOps, IT-säkerhet eller högprestandasystem. Kontakt hittar du här >

CoreOS är ett nytt spännande lättviktigt operativsystem som är byggt för att användas i klusterinfrastrukturer.

Opertivsystemet (OS) är även byggt för att användas till att köra flertalet Docker containers samt så har CoreOS automatiska säkerhetsuppdateringar med två root-filsystem som växlas mellan beroende om det enda uppdateras eller ej. Filsystemen är read-only samt os:et startas om automatiskt vid uppdateringar (eller kexec). Detta innebär så klart att du ej bör lagra något på lokala filsystemet permanent.

Fler fräsiga finneser är en key-value-storage motor inbyggt vid namn etcd (skriven i Go) som även kan användas för service discovery. Etcd synkroniseras automatiskt i hela ditt kluster vilket gör det ypperligt bra för att exempelvis peka ut var dina tjänster håller hus.

CoreOS kluster

CoreOS har tre utvecklare på heltid som jobbar med projektet samt är baserat på Chromium OS som Goolge står bakom. Har även fått in kapital från Andreessen Horowitz samt  Sequoia Capital.

För att testa CoreOS på Mac OS X med Vagrant gör du bara enligt följande:

$ git clone https://github.com/coreos/coreos-vagrant/
$ cd coreos-vagrant
$ vagrant up
$ vagrant ssh

Här är en skärmdump när jag ansluter via vagrant ssh:

CoreOS VagrantOch sedan är det bara att dra igång vår en container i Docker. I detta fall kör jag Ubuntu 13.10:

Docker Ubuntu 13 10

Och här skapade jag en screencast som visar hela förfarandet:

Har du testat CoreOS? Lämna gärna en kommentar om dina erfarenheter.

Docker med WordPress

Ni som läser denna blogg vet hur förälskad jag är i Docker. Jag tänkte nu försöka förklara hur du kan köra WordPress tillsammans med Docker. Det är ingen lätt process men det finns en stor uppsida:

  • Flexibilitet – Möjlighet att flytta komponenter mellan servrar lätt. Exempelvis lyfta ur databasmotorn eller webbservern.
  • Säkerhet – Allt separeras med hjälp av Linux Containers. Inte lika säkert som separata fysiska servrar eller virtuella maskiner.
  • Skalbarhet – Att växla upp delkomponenter är snabbt och enkelt. Lägga till och ta bort memcached exempelvis.
  • Driftsättning – Gå från utveckling, stage-miljö till driftsättning går snabbt och smidigt. Inga jobbiga beroenden som saknas eller är felaktiga.

Men hur gör man då? Jo först och främst är det några saker man måste tänka på:

  • En docker med Nginx + WordPress
  • Skrivbart filsystem för wp-content utanför dockern till WordPress.
  • En docker med MySQL (eller MariaDB, Percona)
  • Skrivbart filsystem för MySQL-databasen utanför dockern
  • Framtid: En docker med memcached.

Då sätter vi igång. Jag går ej igenom hur du installerar Docker utan det kan du läsa här eller köra Vagrant som jag gör på Mac OS X.

Installera NginxNginx

Den första dockern vi skapar ska ha Nginx samt WordPress installerat. Port 80 för http ska exponeras utåt.

Först och främst kör vi igång kommandotolken bash i Ubuntu 13.10 samt installerar Nginx.

# mkdir -p /data/wordpress/

Först enligt ovan kommando så skapar vi en gemensam katalog för våra containrar samt värdsystemet som ligger under /data.

# docker run -v /data/wordpress:/data/wordpress -p 80:80 -i -t ubuntu:13.10 /bin/bash
# apt-get update
# apt-get -y dist-upgrade
# apt-get -y install php5-fpm php5-gd php5-mysqlnd nginx php5-cli php5-curl php5-json

Ändra sedan /etc/nginx/sites-enabled/default och lägg till konfigurationsdirektiv enligt exempelvis den konfigg-template du hittar här. Du kan även konfigurera tonvis med andra inställningar i Nginx för att uppnå optimal prestanda, men det är ligger utanför denna guide.

Du måste även sätta root till den delade katalogen /data/wordpress/ i Nginx-konfen samt lägga till nedan i /etc/nginx/nginx.conf:

daemon off;

Vi avslutar dockern genom att trycka ctrl-D eller skriva exit.

Sedan kör vi följande för att spara ändringarna vi har genomfört i vår docker. Obs detta är viktigt annars går allt förlorat:

# docker ps -a

Kontrollera sedan vilket container ID den dockern vi just jobbade med och skriv ner ändringarna permanent genom en commit:

# docker commit 5d jonaslejon/nginx-wp:version1

Det räcker att skriva exempelvis de första två tecken i container ID. Ovan exempel så skriver jag bara 5d.

WordPress installationwordpress

Nästa steg är att ladda hem och installera WordPress. Detta görs genom att vi ansluter till dockern som vi just installerade Nginx på:

# docker run -v /data/wordpress:/data/wordpress -p 80:80 -i -t jonaslejon/nginx-wp:version1 bash

Sedan installerar vi wget samt går vi till root-katalogen för webbservern vilket i mitt fall är enligt följande:

# apt-get -y install wget
# chown www-data /data/wordpress/
# cd /data/wordpress/
# wget http://sv.wordpress.org/wordpress-3.8.1-sv_SE.tar.gz
# tar xvfz wordpress-3.8.1-sv_SE.tar.gz
# mv wordpress/* .
# exit

Då var WordPress och Nginx installerat. Och glöm framförallt inte att göra en commit på ändringarna:

# docker ps -a
# docker commit 7e6b550faa50 jonaslejon/nginx-wp:version3

Installation av MySQL, MariaDB eller Percona Server

Här ska vi inte glömma att skapa MySQL dockern i en helt ny docker och inte fortsätta med föregående Nginx-docker.

# mkdir -p /data/mysql

Först skapar vi en gemensam katalog där filerna till databasen ska leva kvar. Sen kör vi igång en docker och delar katalogen:

# docker run -v /data/mysql:/data/mysql -p 3306:3306 -i -t ubuntu:13.10 /bin/bash
# apt-get -y install mysql-server
# chown ubuntu /data/mysql
# vi /etc/mysql/my.cnf
# service mysql start
# echo "create database wordpress"|mysql -plösenord
# echo "GRANT ALL PRIVILEGES ON wordpress.* TO 'wordpress'@'localhost' IDENTIFIED BY 'wplösenord'" | mysql -plösenord
# exit 
# docker ps -a 
# docker commit 1f9b38696a7f jonaslejon/mysql:version1

Ovan så ändrar du även i konfigg-filen /etc/mysql/my.cnf där datadir finns (jag gör det med vi). Ändra katalogen från /var/lib/mysql till /data/mysql/.

Jag skapar även ovan en ny databas med namnet wordpress samt en användare med namnet wordpress och lösenordet wplösenord.

Om allt sedan fungerar och du har gjort en commit så kan du testa denna docker med:

# docker run -v /data/mysql:/data/mysql -p 3306:3306 -i -t jonaslejon/mysql:version1 /usr/bin/mysqld_safe

Starta upp allt

Då var två stycken Docker-containers skapade. Vi ska nu starta upp dessa och hoppas på att allt går vägen. Skillnaden här är att vi anger -d så att containrarna läggs i bakgrunden:

# docker run -d -v /data/mysql:/data/mysql -p 3306:3306 -i -t jonaslejon/mysql:version1 /usr/bin/mysqld_safe
Det vi gör sedan är att titta med docker ps:
docker ps
Samt kontrollera loggarna från containern:
docker logs

Ser bra ut! Då ska vi starta upp webbservern Nginx:

# docker run -v /data/wordpress:/data/wordpress -p 80:80 -i -t jonaslejon/nginx-wp:version3 sh -c "service php5-fpm start && service nginx start"
Verifiera att allt körs med hjälp av docker ps-kommandot.

Avslutande anmärkningar

Nu behöver du bara konfigurera WordPress genom att surfa till localhost:80. Detta står även under PORTS när du kör docker ps.

IP-adressen som du behöver när du konfigurerar WordPress-installationen till MySQL-databasen kan du få ut genom att köra inspect på rätt container:

# docker inspect c6e0c1e4e5f0|grep -i ipaddress
 "IPAddress": "172.17.0.2",

Om du ansluter via Vagrant mot containrarna så måste du även konfigurera i Vagrantfile alternativt när du kör vagrant up på följande sätt:

# FORWARD_PORTS=80,3306 vagrant [up|reload]

Övrigt

  • Du behöver inte ha en delad /data-katalog som jag kör med. Men bra om du vill ha data som ska leva en längre tid.
  • Du kan även köra Nginx och MySQL på samma container.
  • Supervisord kan vara bra att använda för att starta upp och hålla koll på processer.
  • Det finns färdiga containers i det centrala docker-indexet. Sök genom kommandot docker search wordpress eller klicka här >
  • Det finns ett fiffigt sätt att automatiskt koppla ihop två containers genom att använda -link argumentet. Då läggs miljövariablar innehållandes port samt IP-nummer till automatiskt på följande sätt:

docker link

Gillar du detta blogginlägg? Donera gärna till min Bitcoin-adress nedan eller dela detta inlägg i sociala medier.

  • 13cxyC2sFvNfAAShcAaSs2YMW3Q4ygstD4