Kære EkstraBlad … glæd jer over at jeg i det hele taget gider besøge jeres hjemmeside!

Hvordan min browser er sat op skal jeg nok selv bestemme! Ekstra Bladet gav mig den her da jeg i en brandet kom til at klikke på et link til en artikel hos dem på Facebook:

Jeg “Blokerer for annoncer” … hvilket jeg ikke gør, jeg har intet imod at de viser mig annoncer … dem har jeg et mentalt filter for, næh det jeg blokerer er alle deres fucking trackere:

Og af den årsag får jeg ikke lov at læse deres sprøjt af en avis … det er noget fjolleri, og det gider jeg selvfølgelig ikke finde mig i … jeg har jo “betalt” … jeg vil netop gerne bruge min cpu-kraft og båndbrede på at se deres latterlige reklamer … jeg kan ikke gøre for at de vælger at bundle deres reklame-lort med trackere og at det hele derfor ryger i filteren.

Du gør således, i Chrome højreklikker du på det store sorte felt der skjuler siden og klikker “Undersøg”:

Derefter vil den forhåbentligt vise dig kode-examinatoren med det aktuelle element fremhævet.

Højreklik på blokken og vælg “Delete element”

og så læste jeg den, iøvrigt udemærkede, artikel.

Kære dagblade, aviser og generelle klassiske presse … i er ude og skide, i står i den silende regn udenfor døren mens en sulten Tyrannosaurus lurker rundt og så hjælper det altså ikke at skide på fyren med nøglen til bunkeren, våbendepotet eller helikopteren … så var det måske smartere at demonstrere sin værdi som uundværligt medlem af flokken og således gøre sig værdig til et sæde i helikopter, en seng i bunkeren eller som minimum en riffel …

I kommer ikke tilbage i varmen ved at overvåge os, forsøge at bestemme over os og spærre jeres til tider udmærkede artikler inde bag en paywall, internettet skal nok klare jer uden jer … ingen tvivl om det. Men kan i klare jer uden internettet? I don’t think so!

Årh … *suk* … kunder!

Jeg blev for nogen måneder siden hyret ind til en webshop der skulle have hjælp til noget markedsføring … de vidste faktisk ikke rigtig hvad de solgte, og de havde ikke overblik over hvor de tjente deres penge og slet ikke over resultatet af deres noget spontane seo arbejde.

Jeg arbejdede meget med dem, og forsøgte at få dem til at tage nogle beslutninger ifht. fokus-områder men det var svært for kunden var ikke selv særlig IT Kyndig, og desuden også enormt konservativt anlagt.

Så her for et par måneder siden ringer kunden pludselig til mig og meddeler at “Den nye webshop skal snart online, så de skulle lige bruge adgangskoden til DNS Serveren” … og så sad jeg der som et spørgsmåltegn “Øhh … hvilken webshop?”

Det viste sig at de havde hyret en eller anden tilfældig gut til at bygge en webshop … fuldstændig uden at konsultere den marketingskonsulent som de allerede havde betalt for (mig).

Jeg fik sat et møde op, og kom ud og kigge på det. Shoppen var som sådan god nok, deres URL Struktur var helt hen i vejret og jeg sagde til dem at de skulle få ham til at sørge for at den nuværende URL Struktur skulle bibeholdes – “Jaja … det skal vi nok få ham til at sørge for”

Så for et par uger siden blev jeg ringet op, og blev bedt om DK-Hostmaster koderne … det viste sig at den her nye webfyr de havde ansat ville hoste webshoppen i holland og gemme den bagved Cloudflare … det undrede mig lidt, så jeg tog kontakt til ham for at høre hvordan serveren var sat op … og den her stakkels mand gik i forsvars-mode med det samme, det var klar for mig, og tilsyneladende også for ham at han var kommet ud hvor han ikke kunnde bunde og han begyndte at bortforklare og komme med alle mulige undskyldninger for hvorfor han ikke ville svare på mine spørgsmål.

Det endte dog med at han lovede at sende en mail “i næste uge”. Men ligeså snart han havde lagt på ringede han til kunden, og afleverede en flæbe-historie til kunden om at jeg hindrede hans arbejde, og kunden ringede til mig og skældte ud … så måtte jeg forklare kunden at når en leverandør tilbageholder den slags detaljer så svarer det til at købe et hus uden tilstandsrapport.

Jeg forklarer kunden hvorfor det er afgørende at vi får styr på de her ting, men det ser ikke ud til at kunden forstår det. Men jeg får ham da forklaret at webmanden har lovet at sende mig de detaljer i løbet af ugen og at jeg forventer at alt falder på plads når først vi har fået styr på de ting.

Webfyren sender dog ikke de detaljer som aftalt, og da jeg rykker for dem kommer der en besked om at han holder nytårsferie. Jeg informerer selvfølgelig kunden om dette, og skriver samtidig at jeg tager sagen op igen efter nytår.

Idag har jeg så opdaget at de har kørt den nye side online hen over hovedet på mig … og jeg må sku indrømme jeg forstår det ikke, de _har_ betalt for mine ydelser, jeg har fået flere penge en webmanden har fået for at lave webshoppen … alligevel lader de sig tage ved næsen i fuld dagslys på trods af at jeg står ved siden af og fægter med arme og ben og forsøger at advare dem …

Sometime i really don’t get people!

Heldigvis har jég da fået min betalingen, så jeg kan jo i princippet være ligeglad.

Skjul indhold baseret på brugerens IP Adresse

Her til aften var jeg til WordPress meetup i Viborg hvor fik jeg stillet et spørgsmål om hvordan man kunne skjule dele af et site for almindelige brugere så man kunne udvikle nye features på et live-site uden at gøre det public med det samme.

Så det tager vi lige op her på bloggen, der er to metoder:

 

Skjul hvad som helst med kode i templaten:

Den nemmeste måde er at bruge en if-sætning direkte i templaten, hvis du f.eks. vil skjule en knap så den kun vises for en bestemt bruger:

Hvis du gerne vil kunne matche på flere forskellige ip adresser kan du f.eks. gøre sådan her:

Og filen test.ip indeholder så den liste af ip adresser der skal gives adgang:

Ovenstående kan også bruges i samarbejde med det

Skjul menu-punkter ud fra eksempelvis IP Adresser: 

Der findes et godt lille plugin med det mundrette navn “Menu Items Visibility Control“, den giver dig et “Visibility”-felt i menu editoren hvor du kan indsætte en stump php-kode der afgør hvorvidt menupunktet skal vises:

skaermbillede-2016-11-30-kl-03-05-14

Det kunne f.eks. være “true” eller “false”, eller “1==2”, måske ikke så brugbare eksempler, men det kunne f.eks. også være:

skaermbillede-2016-11-30-kl-03-07-07

Hvilket bevirker at menu-punktet “Forside” kun virker når man kommer fra den specifikke ip adresse, hvis du gerne vil bruge en liste istedet kan du indsætte den kode jeg brugte i ovenstående eksempel, i functions.php eller et tilsvarende sted:

Derefter skriver du blot “is_allowed()” i visibility feltet.

Håber det kommer dig til nytte ;-D

Sikkerhedsfejl i WordPress

WordPress er i sikkerhedsbranchen kendt som en blanding af et mareridt og en syg joke, primært fordi at WordPress er enten direkte eller indirekte skyld i at rigtig mange websites bliver hacket.

Meget af det skyldtes godtnok temaer, plugins og dovne admins, men det her er altså et eksempel på en hjerneblødning fra udviklernes side.

wordpress

WordPress’ login rutine lækker information, navnligt kan du bruge den til at gætte brugernavne med, idet fejlbeskeden varierer alt afhængig af om du har tastet brugernavn eller password forkert, som du kan se herover.

Det betyder at du kan starte med at prøve en lang liste af brugernavne, hvor af “admin”, “administrator” osv. typisk vil være det første, men at køre en liste over alle danske navne igennem vil f.eks. ikke tage længere end en dags tid. En af konsekvenserne heraf er at WordPress rigtig ofte er udsat for såkaldte bruteforce angreb, dvs. angreb hvor en angriber simpelthen prøver samtlige ord i ordbogen som passwords.

Hvordan løser vi det så?

Jo jeg har fundet et plugin, WordPress Login LockDown, og ved et hurtigt gennemsyn opfylder det mine minimumskrav til plugins:

  • Det virker 😉
  • Det er aktivt udviklet, i skrivende stund er sidste opdatering 3mdr gammel, og den er testet med den aktuelle WordPress version.
  • Der tigges ikke om penge eller donationer på upassende måder, der indsættes et link på login siden, men dette kan dog slåes fra.
  • Kildekoden er letlæseligt og der er ikke umiddelbart gjort forsøg på at skjule noget. (Ja jeg har læst kildekoden.)

Opsætningen er nem, jeg anbefaler disse 3 tjekbokse udover default indstillingerne:

wordpress1

Grunden til at jeg skjuler credit-link er at jeg ikke ønsker at fortælle en potentiel angriber hvilke plugins jeg kører, da det er en viden der af en potentiel angriber kan misbruges.

Derudover får du beskyttelsen mod bruteforce-angreb, hvis du er god til at glemme dine kode kan du roligt sætte tallet lidt op, jeg vil foreslå max 10 forsøg.

Herefter ser et ugyldig login, uanset om det er brugernavn eller password der er forkert, således ud:

wordpress2

Nok snak … se så at få det installeret! 🙂

Skype er retarderet – det var dråben.

Jeg har længe været modstander af Skype, men jeg har brugt det fordi det var “det bedste der fandtes”, på trods af at vores data bliver  opbevaret i USA og at der uden tvivl bliver afleveret en kopi til NSA hvis de ønsker det.

Men efter Microsoft opkøbte forretningen er det begyndt at gå ned af bakke, jeg har på sidelinien observeret et fedt produkt langsomt falde fra hinanden. Her for et par uger siden fik jeg en besked om at min account var blevet hacket, jeg fik ikke mere info end det og mailen i sig selv så ud til at være spam – så jeg slettede den.

Men et par dage efter opdagede jeg at jeg ikke kunne ringe ud fra min Skype account mere, jeg gik ind på websitet for at forsøge at logge ind … men blev straks stillet videre til en Microsoft login formular, som krævede et login i formen “konti@domæne.dk” og mit Skype login ér og har altid været af formen “konti” – så jeg kunne ikke logge ind.

Da jeg deaktiverede Javascript kunne jeg dog få lov at bruge den gamle formular, og hvis jeg aktiverede Javascript igen efter formularen var færdig med at loade kunne jeg logge ind. Jeg konkluderede at Skype var noget amatør-juks og arbejdede videre.

Så idag her til morgen opdagede jeg at min Skype-account havde sendt spam ud, og efter jeg brugte tricket med at deaktivere Javascript kom jeg ind på min konto. Jeg gav mig straks til at lede efter en sikkerheds-log for at få bekræftet log-ind fra ukendte ip-adresser, dette lykkedes ikke og efter en snak med Skype-supporten blev jeg ikke klogere, personen forstod ikke problematikken og syntes derudover lige at jeg skulle svines lidt til.

Jeg står nu i en situation at jeg er blevet kompromitteret uden at kunne efterforske dette. Det er dråben der for mig får bægret til at flyde over. Jeg vil derfor gå igang med at afvikle min Skype-konto, jeg har ikke fundet et  Instant-messenger-alternativ til Skype så jeg ved ikke hvad jeg skifter til.

Men jeg kan kontaktes på tlf. +45 41 28 28 08 (Evt. via Signal) og/eller mikkel@mikjaer.com (GPG Signatur) jeg foretrækker disse kommunikationformer hvis vi skal snakke seriøst og/eller fortroligt. Hvis du bare har lyst til at sige hej og pludre er du også velkommen på ovenstående, men i tillæg til dette kan jeg også kontaktes på Facebook eller Twitter hvor du er velkommen til at følge/friende mig.

Har du forslag til en god fri, sikker og åben instant messaging platform, gerne med mulighed for skærmdeling, og selv-hosting … så hører jeg meget gerne fra dig.

Apache2 mod_log_forensic

Er du også træt af at hackere roder rundt på dit webhotel? Nåh ikke … nå men jeg har altså et par kunder der koder cirka ligeså godt som smeden laver konfekture … og det har været lidt en udfordring at finde ud af hvordan hackerne kommer ind når man ikke kender koden. I den situation er det rart at kunne genskabe de requests en angriber laver … og der kommer mod_log_forensic ind i billedet, det er et modul til Apache der logger hele requesten.

Rediger /etc/apache2/sites-enabled/000-default og sæt flg. ind i VirtualHost blokken:

og ret:

til:

Afslut med:

Tast nu serverens ip i din browser og refresh et par gange, og tjek så din accesslog:

Her ser du din almindelige log-linie, med med et forensics id tilføjet. Første del af forensics id’et (11709) er process-id på den apache process der har serviceret klienten. Forensics id kan bruges til at slå op i forensics loggen med:

Har har du både post og get variabler, http headers, coockies, url … ja generelt alt hvad du skal bruge for at kunne genskabe requesten.

Lige pt. anvender jeg det bare som beskrevet her, men jeg har overvejet at koble noget automatik på der automatisk detekterer og logger hackerangreb.

Tripwire

Her er en quick’n’dørty guide til at få Tripwire op at køre og monitorere et websites webdir … sådan just-in-case du forventer at få ubudne gæster, så er det rart at vide hvad de har pillet i 🙂

Først installeres softwaren:

Under install skal du indtaste (oprette) password til den krypterede database.

Så redigerer du tw.pol og kører

efterfulgt af

Begge gange bliver du bedt taste din kode.

Du kan efterfølgende, for at teste, køre

Der skulle også være sat et cronjob op til at køre den én gang om dagen.

Her er et eksempel på en config fil:

 

Sådan bygger du en ny kerne på Debian og Ubuntu Linux

Ja det er faktisk ret simpelt men jeg havde selv brug for at få det opfrisket da jeg rendte ind i et USB netkort som havde den mest bizare fejl jeg nogensinde er rendt på … netkortet døde når jeg loggede ind på maskinen via ssh på det ramte netkort, og f.eks. cat’ede en logfil.

Jeg talte med nogle forskellige folk og vi kom frem til at det nok var smart at prøve den nyeste kerne og se om ikke problemet var løst, der var et par bugs i driveren som var blevet rettet men som Debian ikke havde fulgt op på.

Ideen er at vi ender med en .deb pakke som vi efterfølgende kan installere på flere maskiner, start med at hente linux kernen:

Der skal bruges lidt pakker til arbejdet:

Pak tarballen ud og hent config fra dit nuværende system, dette bevirker at alle compile-indstillinger som debian folkene har valgt at køre med automatisk overføres til din kommende build:

Derefter køres config processen:

Jeg ændrede ikke noget, jeg gemte blot config som den var … jeg er ikke klar over om det ændrede noget, men umiddelbart vil jeg forvente at evt. nye parametre vil blive tilføjet i den process om nødvendigt, og hvis du har behov for at slå noget til/fra giver det jo sig selv 🙂

Selve build processen kører i ét snuptag (-j 2, skal ændres til antallet af kerner på det system der kompillerer kernen):

Revisionen bestemmer du selv, og er primært til internt brug. Så hvis du f.eks. bygger en kerne til alle dine webservere kunne du kalde den 1.0-web og så rulle versionsnummeret hvergang du bygger en ny kerne.

Lav en kop kaffe, se et afsnit af Dr. who eller hvad du nu har lyst til for det tager lidt tid, når den er færdig har du to .deb filer som du kan installere:

Reboot og nu skulle din nye kerne gerne boote automatisk.

Godnat, og sov godt 🙂

DSB / Securitas siger “IT Sikkerheden er i orden”

Den første automat-reaktion på sådan en udtalelse ér og bør altid være “BULLSHIT!” – sådan en sætning kan ikke stå alene den bør altid efterfølges af en eller anden form for “Fordi …”-sætning.

Det gør den skam også i det her tilfælde, problemet er bare, at argumentet er “Fordi TDC Siger det” og det de blandt andet siger er, at den telefon vagterne er udstyret med kun bruges til at tage billeder af passagernes ID med og, at det efterfølgende opbevares på én central server som kún DSB og det Svenske Politi får adgang til.

For de af jer der ikke helt er med vil jeg lige tillade mig, at opsummere, den Svenske stat har indført  ID Kontrol ved grænsen til Danmark, de politiske og samfundsmæssige omstændigheder herved behandler jeg ikke i dette indlæg, det betyder også, at blandt andet DSB har fået pålagt transportør ansvar – hvilket er en mekanisme der gør, at et transport selskab der flyver / kører / sejler en person til et andet lands grænse også er forpligtet til, at transportere denne person tilbage hvis personen bliver afvist ved grænsen.

Det er blandt andet den mekanisme der gør, at flygtningene ikke bare tager et fly til Danmark, men begiver sig ud på, at krydse middelhavet i hjemmelavede både og andet skidt.

DSB Håndterer sagen ved at kontrollere folk inden de får lov at stige på toget, dette har de ansat Securitas til, og en af de to har så valgt at TDC skal lave et system så de kan affotografere folks ID så de senere kan bevise. at de faktisk har tjekket personen.

Problemerne er at hverken TDC eller DSB har nogen sønderlig god track-record ifht. IT og da slet ikke IT Sikkerhed, når de pointerer at, der er styr på tingene fordi data er krypteret så demonstrere de samtidig en enorm uvidenhed mht. IT Sikkerhed, derudover beder de os stole på, at de siger sandheden når de påstår, at telefonerne ikke bruges til andet end og at, billederne ikke opbevares på telefonen.

Det jeg vil vide før jeg er tilfreds ér:

  1. Hvilken uafhængig trediepart har bekræftet, at det foregår som de påstår? At billederne kun er på telefonen i kort tid og at telefonen ikke bruges til andet?
  2. Hvad har de gjort for at sikre sig at fremmede magter ikke har bagdøre i den telefon og den server/serversoftware de benytter?
  3. Hvad er de præcise procedurer for at nogen får adgang til data? Og hvem kontrollerer at disse procedurer bliver overholdt?

Jeg kender, med rimelig stor sandsynlighed svarene: 1: ingen, 2: intet, 3: “Hvad mener du?”, Ingen!

Og dét er dét der bekymrer mig!

Mén når det så er sagt, så er sikkerheden formodentligt ligeså god som resten af det offentlige og dine personlige data er i lige god hænder hos TDC som de er hos CSC, og det Svenske politi har efter min bedste vurdering (*host*hackersagen*host*) en væsentlig bedre forståelse for IT Sikkerhed end den danske.

Så bør du være harm og fornærmet over det her tiltag og den mangel på respekt der udvises, ja gu bør du det!

Bør det afholde dig fra at rejse med DSB til Sverige … nej, du bliver i forvejen registreret i hoved og røv af en flok inkompetente mennesker der hverken respekterer dig eller dine rettigheder.

Velkommen til Danmark anno 2016 …

Pound Loadbalancer Quick Reference

I just stumbled upon this thing at a clients setup … so im in the process of learning this.

Status of the Load Balancer:

To disable 192.168.1.21 :

To enable:

 

Vi mangler et smart slogan ;-)