Skip to content

Posts

Use Yubikey for sudo authentication

I recently got myself a Yubikey 5 NFC for Multi Factor Authentication. I’ve started using it for my SSH-keys and also instead of typing my password when sudoing, i just touch the hardware key.

To set this up in Ubuntu, do the following:

WARNING: during installation, also have a terminal open with root privileges, otherwise you can lock yourself out.

1. Install required packages
sudo apt-get install libpam-u2f pamu2fcfg

2. Check your hostname and remember it for later
hostname

3. Setup /etc/u2f_mappings
Login as the user under which you want your token.
Run this command and then touch your Yubikey to generate the token.

pamu2fcfg -u `whoami` -opam://`hostname` -ipam://`hostname`

Output should be username:looooongstringforyubikey1

Repeat this for every Yubikey you want and then combine these lines into one single line per user.
username1:looooongstringforyubikey1:looooongstringforyubikey2
username2:looooongstringforyubikey1:looooongstringforyubikey2

Create the file and paste the results and then save the file.
sudo nano /etc/u2f_mappings

4. Setup /etc/sudoers (optional)
This makes the sudo password expire after 0 seconds and you will have to enter it every time you use the sudo command.

sudo visudo

Append “timestamp_timeout=0” to the row Defaults env_reset, like this and save the file.

Defaults    env_reset,timestamp_timeout=0


5. Setup /etc/pam.d/sudo
There are three different scenarios you can use.

A. If you want the Yubikey AND enter the password.
B: If you want only the Yubikey.
C. If you want only the Yubikey but fallback to password if Yubikey fails or not connected.

sudo nano /etc/pam.d/sudo

At the top of the file just below #%PAM-1.0 use the the method you prefer. All in one line. Replace both $HOSTNAME with your actual hostname that you got in step 2 and then save the file.

A = auth required pam_u2f.so origin=pam://$HOSTNAME appid=pam://$HOSTNAME authfile=/etc/u2f_mappings cue

B = auth [success=done new_authtok_reqd=done default=die] pam_u2f.so origin=pam://$HOSTNAME appid=pam://$HOSTNAME authfile=/etc/u2f_mappings cue

C = auth sufficient pam_u2f.so origin=pam://$HOSTNAME appid=pam://$HOSTNAME authfile=/etc/u2f_mappings cue

The most secure alternative are of course to implement step 4 in combination with alternative A. Make sure to test all of your Yubikeys so you don’t end up getting locked out.

Use WiFi to upload photos from your GX80/85

So i recently bought a camera, the Lumix GX80. I’m very happy with it but transferring a few pictures every time i use it using a SD card is really… old and boring. The camera has WiFi and i want to use it to transfer my photos to my PC/NAS/Server/whatever.

So how did i do it? First of all your camera and network device (PC/NAS) needs to be on the same network (for the techies; same subnet, the camera doesn’t use a gateway some how).

You will need a shared, accessible folder on your PC/NAS before we begin.

This will be a guide with a lot of pictures, so look closely and let’s start.

Go in to Menu -> Setup -> WiFi

WiF Function

New Connection

Send Images Stored in the Camera (if you want continuous upload, chose “Send Images While Recording” instead).

PC. Yes, chose PC even if you’re uploading to a NAS.

Via Network

From List

Now all the WiFi networks that the camera finds will show up. Chose your network.

Enter your WiFi password

Now the camera will scan for public available folders. If you don’t see your folder chose Manual Input.

Enter the IP address of the device you want to connect to (PC or NAS).

Chose what folder you want to upload you photos to.

If you’re happy with the settings just continue.

Multi Select

Select some pictures

And we’re cookin!

Next time you can use Select a destination from History. Or save it as a favorite.

Physical volume controller – part 2

Since this post will be linked from the Deej project showcase i’ll write it in English. Maybe i’ll continue to do so, who knows?

Anyway, i built an early version of the volume control box which is working quite good now. The design was a prototype and actually found this design on Thingiverse. Since i have knobs and not sliders i decided to redesign the top part from scratch.

It’s not very complicated really, just import the .stl file to Fusion 360 and take all the measurements. Then start make your own design. I also added logos (import .SVG files and extrude the part you want).

So the backside cut outs is for the potentiometers to fit correctly. And some half assed cable management of course.

I 3D printed this on my brand new Prusa i3 MK3S with Addnorths black E-PLA filament. And
i used the “Hilbert Curve” for top infill pattern in PrusaSlicer to get the rugged look. I think it turned out awesome!

Skrota Mailvelope och köra ProtonMail

Med hänvisning till min förra post.
Ja det visade ju sig att ProtonMail som jag kikat på lite tidigare har stöd krypteringen som används.
Exportera den publika nyckeln från ProtonMail och lägg in i Anonaddy så är allt klart.
Det förutsätter ju såklart att man använder ProtonMail. Men jag har letat efter en ersättare till G Suite så det får nog bli ProtonMail med nya domänen.

Unik e-postadress för varje tjänst med Anonaddy

Låter jobbigt? Det är jättejobbigt om man behöver hantera det manuellt. Men varför skulle man vilja ha en unik e-postadress på varje tjänst man använder, och varför kan jag inte bara använda subadressering (t.ex tjänstA+namn@domän.se)?
Först och främst måste subadressering ha stöd av din e-postleverantör. Men det är även väldigt lätt att gissa sig till den riktiga e-postadressen och nästan ännu enklare att skripta bort “tjänstA+” för att få fram den riktiga e-postadressen.

Fördelarna med att ha en unik e-postadress är många, bland annat att du skyddar din riktiga e-postadress från spam. Du ger ju bara ut tjänstA23813@domän2.se och inte namn@domän.se.
Skulle tjänstA23813@domän2.se läckas ut eller börja få spam, då inaktiverar du bara det aliaset.
En annan fördel är att du kan se om någon sålt din data. Om du börjar få spam på tjänstA23813@domän.se2 så vet du att de har hittat på något fuffens.
Beroende på hur man väljer att skapa sina alias är det väldigt svårt för utomstående att gissa sig till din identitet.

Att skapa ett alias manuellt varje gång man ska registrera sig någonstans är ju ohållbart. Då stötte jag på Anonaddy där man automatiskt kan skapa e-postalias (med deras eller din egen domän). Jag hoppade på deras betalvariant direkt (Lite-versionen) och köpte mig en helt ny domän. Jag har satt min vanliga privata e-postadress som mottagare i Anonaddy så att allt som kommer in på nya alias skickas automatiskt vidare till mig.
Men alla som redan har din gamla adress och skickar spam nu då? Jag vet! Jag håller på med en helt ny domän för det också. Som inte hela Internet kommer att känna till.

Så om jag nu registrerar mig på tjänstB och anger e-postadress tjänstB348592@minnyadomän.se så skapas automatiskt det aliaset hos Anonaddy när det kommer ett mail dit och jag får mailet vidarebefordrat till min vanliga e-postadress då. Riktigt smidigt!

Hela processen var inte speciellt komplicerad att sätta upp. Det som däremot tog lite tid var krypteringen av mail som skickas till mig från Anonaddy.
Varför vill man ha krypterade mail då?
Jag föredrar om det endast är jag som kommer åt mina mail, ingen annan. Om du kör Gmail t.ex använder Google din e-post till diverse skojigheter. Även tredjepartsapplikationer och människor kan läsa din e-post enligt en artikel på BBC.

Kort sagt så behöver vi då en publik nyckel att skicka med mailet som kommer från Anonaddy till din maillåda och sedan en privat nyckel för att dekryptera mailet och läsa det.
Det finns lite olika sätt att göra det på men jag fastnade för Mailvelope som är ett tillägg för din webbläsare (jag kör Brave).

När du installerat tillägget och är igång klickar du på Generate, fyller i ditt namn, e-postadress och ett unikt lösenord som du sparar i din lösenordshanterare (jag använder LastPass) och klickar på Generate.


När din nyckel är skapad klickar du på den och väljer Export. Var noga med att du väljer din PUBLIKA nyckel. Den privata är din och ska inte delas med någon annan.
Så, kopiera din publika nyckel och ta bort raderna med “Version” och “Comment”.

Nyckeln ska sedan läggas in i Anonaddy under Recipients. Klicka på “Add public key” och du får ett mail med en länk för verifiering.

That’s it! Mailvelope-tillägget dekrypterar e-posten i din inkorg och varken Google, din ISP eller någon annan kan läsa dina mail. Se till att spara ner din privata och publika nyckel och lägg dem på ett säkert ställe.

Men, telefonen då? Jodå, det finns en lösning för det med.
E-postklienten FairEmail har stöd för OpenKeychain där din privata nyckel läggs in.
Importera din privata nyckel i OpenkeyChain och i FairEmail under Settings -> Encryption bockar du i “Automatically decrypt messages” (om du vill ha det såklart, men det blir ganska jobbigt att hantera annars).

Har jag missat något? Är något oklart? Hojta!

Är min dumma dörr låst? Nu vet jag.

Mitt hem är någorlunda “smart”. Jag har koll på elförbrukning i realtid, pris per timme, hur mycket öl som finns kvar i mina fat osv. Men något jag funderat över ett tag är hur jag kan kontrollera om ytterdörren är låst eller inte. Inte stängd eller öppen, utan låst.

Jag plockade isär en Aqara magnetkontakt och satt fast i hålet och limmade fast en liten magnet på själva låsregeln som går in i dörrkarmen. Ja, så simpelt är det. Det tog max 15 minuter!

In i HomeAssistant med det så blir det toppen.

Fysisk volymkontroll till datorn

Jag har länge letat efter en fysisk pryl jag kan koppla till datorn och styra volymen i olika applikationer. Tillexempel om jag spelar och vill höja/sänka ljudet på Spotify, TeamSpeak eller spelet själv så kan jag göra det utan att tabba ur spelet och leta upp volymkontrollen i Windows.
Visst, det finns PCPanel men den applikationen bygger på Java. Det vet ju både ni och jag att vi flyr som pesten.
Jag har sneglat lite på GO XLR Mini som jag var nära att köpa när jag stötte på ett projekt som heter Deej.

Man bygger alltså hårdvaran själv och sedan kör man bara applikationen med en konfigurationsfil. Smidigt!
Inköpslistan var följande:
1st Arduino Nano Every
5st Potentiometrar
5st Rattar
Lite röd, svart och gul kabel.

Jag börjar med att installera Arduino IDE så jag får in drivrutiner för Arduino-kortet och sedan trycker jag på koden för projektet.

Det kopplas enligt följande ritning, jag valde runda potentiometrar istället för de på bild. Det är viktigt att potentiometrarna är linjära. Inte logaritmiska.

Jag börjar med att kolla så grejerna fungerar. Ett tips är att köpa en breadboard med olika kablar så blir det mycket lättare att testa.

Som synes på bilden nedan är alltså överst 5v, mitten output och längst ner jord.

Nu när allt fungerar och är ihopkopplat behöver det någonstans att bo. Bara att hoppa in i Fusion360 (CAD-programvara). Jag tänkte mig något i stil med det här. Men mest troligt vill jag ha mute-knappar osv senare. Så den första prototypen lär väl inte vara med särskilt länge.

Några timmar i 3D-skrivaren så är det klart! Jag skippade ikonerna för att printen skulle gå snabbare. Fortsättning följer.


Grillmårran – jakten på en perfekt pizza

Jag fick upp ögonen för napolitansk pizza och köpte en 300 sidor tjock bok om ämnet. En viktig del i att baka napolitansk pizza är temperaturen. 450-500 grader vill man komma upp i och det går inte i en vanlig hemma ugn. Vad gör man då? Man bygger “Grillmårran”!

Vi befinner oss på Gotland där min sambos mamma och hennes man har ett hus (de driver Bed & Breakfast, skittrevligt).

En klotgrill – vi köpte på Jula för 199:-.
Lecablock för att stadga upp kol- och grillgaller.
En bit plåt – 170x25x1mm.
Brandmatta (brandisolering) – 5cm tjock
Ståltråd
Skruv eller popnit att hålla ihop plåten med
Kalksten, spiktegel eller biscottigolv för att baka pizzan på. Kalksten finns det gott om på Gotland så det hittade vi på gården.
Taket körde vi också med kalksten, men optimalt är en bit plåt på 55x55x6mm.

Vi börjar med att rita upp och kapa till kalkstenen som ska agera golv i ugnen. Vi lämnar en bit fritt där vi sedan ska elda.

Dammar utav bara fan men bra blev det.

Vi kapar till lecablock så att de ger stöd till både kolgaller och grillgaller. Båda galler ska vila på sin originalplats men även mot lecablocken så de inte böjs av den höga temperaturen.
Vi böjer plåten till rätt storlek och skruvar ihop den. Passar perfekt!

Vi ritar ut öppningen och kapar plåten och skruvarna som stack ut.

Vi borrar dubbla hål längs ovankanten på plåten som vi sedan fäster isoleringen i med ståltråd. Vi mäter ut isoleringen och kapar den med en kniv och avbitartång.

Vi skär ut öppningen på isoleringen och trär den sedan över grillen. Kapar en bit kalksten till tak och en bit isolering.

För att elda igång den lägger vi lite kol på kolgallret och drar igång. När det har bra glöd lägger vi på ett par klabbar ved så de får ta sig. Sedan lägger vi på galler och kalksten.

Vi lägger på några klabbar på gallret ovanför och när de har tagit sig lägger vi på locket och isoleringen. Termometern hittade jag på en loppis i närheten. Varmt blev det.

Då bakar vi pizza! Ja, West Coast IPAn är min, inte Sort Guld…

Sammanfattningsvis måste jag säga att det blev jävligt bra. Kan nämna att vedkorgen som syns på ett par bilder använde vi för att vi trodde att grillen inte var stabil nog. Men efter att ha kapat till några brickor av spillbiten plåt vi fick över och satt på skruvarna till benen blev den mycket stabilare.
Några saker vi skulle gjort annorlunda är grillen, vi skulle köpt en 56cm istället för 46cm. Taket vi använde kalksten till har redan börjat spricka så det får vi ersätta med plåt.

Uppgradera till TMC2208 på Anycubic i3 Mega

Varför uppgradera?

De nya TMC2208 är SÅ mycket tystare än original (A4988).
Jag beställde mina från AliExpress [Länk] och utöver priset fick jag betala 76:- i tull och moms.


Så, vi börjar med att ta en bild på hur det ser ut innan vi börjar så vi har något att gå tillbaka till om vi gör något tokigt. Det högra inringade området är de stepper drivers vi ska byta ut. Det vänsta inringade området är kablarna vi behöver vända på. Man måste inte vända på kablarna utan man kan istället lägga in en annan firmware i skrivaren. Något av de två alternativen måste göras. Jag valde att vända på kablarna.

Vi börjar med att plocka bort de gamla drivarna. Dra rakt ut men försiktigt så man inte böjer pinnarna. De kan ju vara bra att ha kvar om en TMC2208 skulle vara trasig.

Efter det monterar vi på kylflänsarna på de nya drivarna och trycker de på plats. Se till att den blåa delen av drivern är riktad mot framsidan av chassit.


Nu ska vi vända på kablarna. Vi tar en i taget så vi inte förväxlar någon. Ryck ur kabeln och ta med hjälp av en tång försiktigt bort plastguiden. Man kan behöva dra lite i varje ände några gånger innan den släpper.
Antingen så monterar man dit den igen fast omvänt som jag gjort till höger nedan. Eller så låter man den vara av och bara kopplar in kabeln igen (omvänt också såklart).

Här har jag monterat de två nedersta. Bara att fortsätta med resten.

Alla kablarna är vända, den tomma slotten lät jag bli eftersom den inte används.

Det som återstår nu är att ställa in spänningen på drivarna. Innan vi går vidare så dubbelkollar vi att allt är på rätt plats och rätt kopplat. Det hade varit surt att bränna något…

Drivarna levereras inställda på ca 1,2 volt. Men 0,85 volt är det vanligaste så det tänkte jag också köra på. Vi ställer multimetern på DC (inte AC) och mäter på punkterna enligt bilden nedan. Justera spänningen gör vi med en skruvmejsel i hålet som är inringat. Det är väldigt känsligt så man behöver inte skruva mycket för att det ska ändras.

Det var det. Drivarna installerade och skrivaren är ordentligt mycket tystare. Som dag och natt!

Uppgradering av datorn

Det är snart två år sedan jag köpte datorn. Lite uppgraderingar längs vägen. Bland annat så var suget efter 144hz i 1440p för stort så det blev både grafikkort och skärm. Nu håller den nog i några år till.

Moderkort – ASUS Z170 PRO GAMING
CPU – Intel Core i7 6700K 4.0 GHz 8MB med kylpasta och ESD-armband
CPU-kylning – be quiet! Pure Rock
Minne – 2st Corsair 16GB (2x8GB) DDR4 2133MHz CL13 Vengeance LPX Svart
PSU – EVGA Supernova G2 750W
SSD – Primär Samsung 970 EVO 500GB, Sekundär Samsung 850-Series EVO 500GB
GPU – ASUS GeForce GTX 1080 Ti 11GB STRIX GAMING OC
Chassi – Fractal Design Define S Svart

Skärmar
Primär – Acer 27″ Predator XB271HU G-Sync IPS
Sekundär – Dell 27″ UltraSharp UP2716D

Mus – SteelSeries Rival 310
Tangenbord – QPAD MK-85 MX Red
Headset – SteelSeries Siberia 840
Hörlurar – Philips Fidelio X2
Högtalare – Klipsch R-14PM