Blog Image

Linux funkar!

Slackware – Installera om Lilo

Tips och tricks Posted on Thu, August 08, 2019 12:05:50

Problem: Går inte att boota Linux på grund av att bootloadern (Lilo) är trasig eller felaktigt installerad.

Lösning:
Installera om Lilo genom att boota med installationsskivan eller bootbart usbminne.

Montera rootpartitionen (i exemplet nedan /dev/sdb1) på /mnt:

mount /dev/sdb1 /mnt

Gör chroot till /mnt:

chroot /mnt

Kontrollera/ändra konfigurationen för Lilo:

joe /etc/lilo.conf

Lägg till raden “compact” för en snabbare bootsekvens.

Lägg till eventuella kernelparametrar med raden append = “<kernelparametrar>”.

Installera om Lilo:

Testa först (-t) för att se hur Lilo kommer att installeras.

lilo -t -v

Kör utan -t om allt ser bra ut.

lilo -v

Avsluta chrooten och avmontera rootpartitionen:

exit
umount /mnt

Överkurs:
Hantera ramdisken initrd.gz (används där mer kontroll eller funktionalitet behövs i bootsekvensen):

Se till att följande rad finns i /etc/lilo.conf:

initrd = /boot/initrd.gz

Gör eventulla ändringar i ramdisken:

cd /boot/initrd-tree

Tex.

Kopiera in alla kernelmoduler (drivrutiner) till ramdisken:

cp -a /lib/modules/4.19.62 lib/modules

Lägg till moduler som ska laddas manuellt vid boot:

joe load_kernel_modules

Lägg till för varje modul som ska laddas
Ex.
modprobe -v xhci-hcd

Lägg till en fördröjning (10s) innan rootpartitionen monteras (behövs om den tex ligger på ett USB-minne):

echo 10 > wait-for-root

Skapa och komprimera ramdisken så att den kan användas av Lilo:

mkinitrd

OBS: Glöm inte att installera om Lilo (lilo -v) efter att ramdisken har ändrats.



Automatisk SSH-inloggning

Tips och tricks Posted on Fri, May 17, 2019 21:36:47

Automatisk SSH-inloggning med kryptonycklar istället för lösenord

Referenser:

https://www.ssh.com/ssh/
https://www.ssh.com/ssh/keygen
http://www.rebol.com/docs/ssh-auto-login.html
https://www.benhup.com/freebsd/openssh-configuration-with-elliptic-curve
https://www.techrepublic.com/article/how-to-easily-add-an-ssh-fingerprint-to-your-knownhosts-file-in-linux/

Vad behövs:

Ett kryptonyckelpar (med en publik nyckel och en privat nyckel) för varje klient som vill ansluta mot servern (SSH-server).
Den publika nyckeln läggs på servern och den privata används av klienten för att logga in på servern.

1. Skapa nyckelparet (inloggad på servern som den användare som ska ansluta från klienten):

På servern:

Nycklarna skapas som default i katalogen ~/.ssh

cd ~/.ssh
ssh-keygen -t ed25519

Tryck retur vid varje prompt. Ange en passphrase om du vill kryptera den privata nyckeln för ökad säkerhet.

Generating public/private ed25519 key pair.
Enter file in which to save the key (/home/maup/.ssh/id_ed25519):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/maup/.ssh/id_ed25519.
Your public key has been saved in /home/maup/.ssh/id_ed25519.pub.

2. Konfigurera servern att använda den publika nyckeln (id_ed25519.pub):

På servern:

cat ~/.ssh/id_ed25519.pub >> ~/.ssh/authorized_keys

Ändra filrättigheter så att filen authorized_keys inte är läsbar för andra.

chmod 600 ~/.ssh/authorized_keys

Observera >> som lägger till nyckeln i slutet av filen authorized_keys som kan innehålla flera publika nycklar.

3. Kopiera den privata nyckeln (id_ed25519) till klienten:

På klienten:

cp /media/MyUSB/id_ed25519 ~/.ssh/

Ändra filrättigheter så att den inte är läsbar för andra.

chmod 600 ~/.ssh/id_ed25519

4. Konfigurera klienten så att den privata nyckeln kopplas ihop med servern som har den publika nyckeln.

På klienten (byt ut “some.server.or.ip.com” mot serverns namn eller IP):

echo “Host myserver” >> ~/.ssh/config
echo “Hostname some.server.or.ip.com” >> ~/.ssh/config
echo “IdentityFile ~/.ssh/id_ed25519” >> ~/.ssh/config

5. Lägg in serverns host-fingerprint i klientens ~/.ssh/known_hosts för att vara säker på att det är rätt server som klienten ansluter mot.

På klienten (byt ut “some.server.or.ip.com” mot serverns namn eller IP):

ssh-keyscan -H some.server.or.ip.com >> ~/.ssh/known_hosts

(för paranoida) Jämför innehållet i ~/.ssh/known_hosts med *.pub-filerna i /etc/ssh på servern:

ls /etc/ssh/*.pub
/etc/ssh/ssh_host_ecdsa_key.pub /etc/ssh/ssh_host_ed25519_key.pub /etc/ssh/ssh_host_rsa_key.pub

6. Testa

På klienten:

ssh myserver



Säker VNC

Tips och tricks Posted on Sun, February 24, 2019 21:53:47

Det är mycket viktigt att tänka på säkerheten vid användning av VNC. Nedan visas några exempel där säkerheten utgörs av SSH med port forward, TLS-kryptering och lösenordsskydd av VNC-anslutningen och att det endast är tillåtet att ansluta mot vncservern från localhost (endast interna anslutningar tillåtna).

Anslut från dator A (myclient.net) till skrivbord på dator B (myserver.net)

A (VNC-klient) -> B (VNC-server)

1. Starta ett skrivbord (:1 anger skrivbordets nummer) på dator B för användaren “vncuser”.

Porten som ska användas för att ansluta mot skrivbordet blir implicit 5900+skrivbordsnummer=5901.

su – vncuser -c ‘tigervncserver :1 -SecurityTypes=TLSVnc -localhost=yes’

2. Anslut med SSH och gör “port forward” för att koppla port 5901 på dator B till lokal port 20000 på dator A.

Kan göras som valfri användare.

ssh myserver.net -f -N -o Compression=yes -L 20000:localhost:5901

3. Anslut med VncViewer via tunneln

xtigervncviewer localhost:20000 -SecurityTypes=TLSVnc

Omvänd “port forward” (reverse tunneling) kan användas för VNC-anslutning från dator A till dator B om det inte är tillåtet med inkommande anslutningar mot dator B

A (SSH-server) <- B (SSH-klient)

A (VNC-klient) -> B (VNC-server) (via reverse-tunnel)

1. Starta ett skrivbord (:1 anger skrivbordets nummer) på dator B för användaren “vncuser”.

Porten som ska användas för att ansluta mot skrivbordet blir implicit 5900+nummer=5901.

su – vncuser -c ‘tigervncserver :1 -SecurityTypes=TLSVnc -localhost=yes’

2. Anslut med SSH och gör “reverse tunneling” till datorn som kör vncservern genom att göra en SSH-anslutning från B till A.

Kan göras som valfri användare.

ssh -f -N -o Compression=yes -R 20000:localhost:5901 myclient.net

3. Anslut med VncViewer på A via reverse-tunneln mot B

xtigervncviewer -SecurityTypes=TLSVnc localhost:20000

Lista aktiva vncservrar

Lista startade vncservrar för användaren vncuser.

su – vncuser -c ‘tigervncserver -list’



Bygg en retrospelkonsol och återanvänd dina gamla C64/Amiga-joystickar!

Raspberry Pi Posted on Mon, March 21, 2016 09:32:41



Bygg en retrospelkonsol och återanvänd dina gamla C64/Amiga-joystickar!

Vad behövs?

Hårdvara:

1. Raspberry Pi2/3 Model B (900Mhz, 1GB RAM)

2. SD-kort 32GB (ju större desto fler spel ryms!)

3. 2st 9-pols D-SUB hankontakter.

4. Några sladdar som kan anslutas mot I/O-listen.

5. Gamla joystickar (C64 eller Amiga). Det går även bra med USB-gamepads eller liknande men det är ju inte lika coolt..

6. Tangentbord

Mjukvara:

RetroPie (http://blog.petrockblock.com/retropie)

ArcadeJoystick (https://github.com/recalbox/mk_arcade_joystick_rpi)

Gör så här:

Anslut I/O-listen mot D-SUB-kontakterna:


Joystick-1
Pinout D-SUB1 -> I/O-list
1 -> 7
2 -> 11
3 -> 13
4 -> 15
5 -> 10
6 -> 22
7 -> 12
8 -> 20
9 -> 18

Joystick-2
Pinout D-SUB2 -> I/O-list
1 -> 23
2 -> 29
3 -> 31
4 -> 33
5 -> 26
6 -> 40
7 -> 32
8 -> 34
9 -> 38

Hämta diskavbild för RetroPie:

wget https://github.com/RetroPie/RetroPie-Setup/releases/download/3.6/retropie-v3.6-rpi2_rpi3.img.gz

Packa upp:

gunzip retropie-v3.6-rpi2_rpi3.img.gz

Kopiera till SD-kortet:

(https://www.raspberrypi.org/documentation/installation/installing-images/linux.md)

dd bs=4M if=retropie-v3.6-rpi2_rpi3.img of=/dev/sdX

(Byt /dev/sdX mot SD-kortets enhetsnamn)

sync

Sätt i SD-kortet i Raspberryn och koppla därefter in skärm, tangentbord, nätverkskabel och ström.

När det står “No gamepads detected”:
Ställ in tangentbordskontrollerna genom att hålla in nån tangent. Viktigt för att kunna navigera i menyerna.

Gå till menyn RetroPie och välj “Show IP” för att se vilken IP-adress som Raspberryn har fått:

Logga in på Raspberryn’s IP-adress med SSH från annan dator:

ssh -l pi 192.168.11.131

(lösenord: raspberry)

Hämta installationskript för ArcadeJoystick:

mkdir mkjoystick
cd mkjoystick
wget https://github.com/digitalLumberjack/mk_arcade_joystick_rpi/releases/download/v0.1.4/install.sh

Kör installationskriptet:

sudo sh ./install.sh updatesystem

Ignorera felmeddelande..
sudo: rpi-update: command not found
ERROR : Unable to updta the firmware

Starta om:

sudo reboot

Raspberryn bootar om.

Logga in igen med SSH och kör installationskriptet på nytt.

cd mkjoystick
sudo sh ./install.sh

Lägg till följande rad i /etc/modules:
mk_arcade_joystick_rpi

sudo nano /etc/modules

Skapa filen /etc/modprobe.d/mk_arcade_joystick.conf och lägg till följande rad:
options mk_arcade_joystick_rpi map=1,2

sudo nano /etc/modprobe.d/mk_arcade_joystick.conf

Starta om:
sudo reboot

Tryck “S” och välj “Configure Inputs” för att ställa in joystickarna. Om joysticken endast har en knapp så välj “X” för den.

Lägg in spel:

Kopiera spel till /home/pi/RetroPie/roms:

scp -r c64/* pi@192.168.11.131:/home/pi/RetroPie/roms/c64

Länkar:

http://raspivan.weebly.com/retropie.html#

http://www.freeroms.com/dl_roms/rom_download.php?title=gauntlet_rev_14&system=MAME&game_id=5746

http://blog.m.nu/raspberry-pi-med-retropie-del-2-forsta-uppstarten/



Öppet brev till IT-ansvarig/rektor på alla skolor i Sverige

Varför TreSjuor? Posted on Mon, March 16, 2015 18:01:43

Är ni nöjda med er nuvarande IT-miljö för lärare och elever? Om svaret är ja använder ni troligen redan Linux!

Om ni inte är nöjda så kan jag ge er ett antal argument för att använda Linux i en skolmiljö: http://linuxfunkar.tresjuor.se/#post1

Själv arbetar jag som konsult inom elektronik och datateknik och
använder Linux till 90% i mitt dagliga arbete. Det är möjligt idag (till
skillnad mot för några år sedan) tack vare trenden i IT-världen att
utveckla standardiserade produkter med öppna gränssnitt.

En viktig företagsprincip (som alltid har funnits) är att inte vara
beroende av en enda specifik leverantör eller råvara. Denna princip har
varit ignorerad eller obrukbar länge när det gäller operativsystem..
Lägg inte alla ägg i samma (microsoft)korg!

Ett bra exempel på en öppen standard är HTML5 som möjligör avancerade applikationer och multimedia i en vanlig webbläsare. http://www.hongkiat.com/blog/48-excellent-html5-demos/
Ett annat givet exempel är Android som i grunden bygger på Linux och
bevisligen fungerar på extremt många olika hårdvaror (telefoner,
surfplattor, TV-apparater mm).

Om det här låter intressant – tveka inte att ta kontakt för ett kostnadsfritt och förutsättningslöst möte!

Med vänliga hälsningar

Magnus Uppman

Elektronik och programvaruingenjör
www.tresjuor.se
073-0423651
magnus.uppman@tresjuor.se



Glöm dyra supportavtal! (*host* Volvo-IT *host*)

Varför TreSjuor? Posted on Mon, March 09, 2015 16:12:06

Vår målsättning är att alla kunder ska klara av att sköta den löpande driften själva eller vid behov med hjälp av valfritt konsultföretag.
Det ska inte finnas några inlåsande avtal varken vad det gäller hårdvara eller program.
Det vara lika enkelt att använda en dator som en TV! Användarna ska inte behöva lära sig hur ett operativsystem fungerar, det som är viktigt är vilka program som används och dokumentation för dessa.

För att lyckas med ovanstående använder vi endast licensfri, öppen programvara och operativsystemet Linux. Det som duger åt NASA (http://phys.org/news/2013-05-international-space-station-laptop-migration.html) och Google (http://en.wikipedia.org/wiki/Goobuntu) duger åt oss..
Vi tror även på decentralisering som går tvärtemot dagens trend med molntjänster och tunna klienter till höger och vänster.

Vi anser att en dator ska kunna fungera till 100% UTAN en fet internetuppkoppling. Användaren ska också ges mer makt över sin egen dator för till exempel säkerhetskopiering, programinstallation och hårdvaruändringar.

Fördelen med ett decentraliserat system är också att säkerheten kan tillåtas vara lägre (hög säkerhet innebär oftast minskad flexibilitet för användaren) då det endast är en dator som blir drabbad av eventuella intrång. Självklart ska säkerheten initialt vara hög men poängen är att det ska vara möjligt för användaren att tillåta lägre säkerhet vid behov (installation av program/videosamtal/fjärrsessioner mm).



Vilka fördelar?

Varför Linux? Posted on Fri, February 13, 2015 09:36:19


Vilka fördelar finns det att anlita en konsult som använder program/hårdvara baserade på öppen källkod (open source)?

Ej inlåsning av kunden till proprietär programvara eller hårdvara.

Alla konsultens verktyg (program) som används är öppen källkod och tillgängliga för kunden för anpassningar och vidareutveckling.

Nyutvecklade program ägs av kunden som själv får avgöra licensform vid eventuell vidaredistribution.

Bara för att verktygen är öppen källkod så innebär det inte att produkter som utvecklas med verktygen också måste vara det.
Dessutom innebär det att skript och konfigurationsfiler till program som är öppen källkod inte behöver vara öppna, det är upp till kunden att avgöra.

Vilka fördelar finns det med program som är baserade på öppen källkod (open source)?

Kan supportas även om den som ursprungligen skapade programmet har övergivit det eller av annan anledning inte vill eller kan.

Kan felsökas av vem som helst då programkoden är fritt tillgänglig.

Kan optimeras och anpassas för olika behov.

Inga licenskostnader eller administration av licenser.

Obegränsat antal användare för alla program.



Vad är Linux?

Varför Linux? Posted on Fri, February 13, 2015 09:26:37


Direkt från Wikipedia
(http://sv.wikipedia.org/wiki/Linux):

Linux eller GNU/Linux är ett Unix-liknande operativsystem som till största delen, och i några varianter helt, består av fri programvara. Det består i allmänhet av central programvara från GNU-projektet, kärnan Linux samt annan programvara från tusentals andra projekt. Det är ett av de mer framstående exemplen på vad utveckling med fri programvara och öppen källkod har åstadkommit.

En GNU/linuxdistribution är en samling programvara som förutom Linuxkärnan och GNU-systemet innehåller det som behövs för att få ett komplett, fungerande datorsystem. Det finns ett stort antal distributioner skapade av företag, privatpersoner och öppna projekt. En del distributioner är främst tänkta att användas på persondatorer, andra är avsedda för servrar. De större distributionerna är avsedda att kunna användas i de flesta sammanhang, och programvara som inte ingår i en viss distribution går ändå att installera där med måttligt besvär.

GNU/Linux är idag det klart dominerande operativsystemet bland superdatorer. Linux-kärnan används ofta också i inbyggda system, men resten av operativsystemet kan skilja sig väsentligt från GNU/Linux. Android, det dominerande operativsystemet för mobiltelefoner, är ett exempel på ett sådant annorlunda GNU/Linux-baserat operativsystem.

GNU/Linux blev vanligt på internetservrar redan i mitten av 1990-talet. Användningen på persondatorer var länge begränsad av framförallt tillgången på kontorsprogram. Installation av tidiga GNU/Linux-distributioner krävde relativt stora kunskaper i datorteknik. Större institutioner med Windows-miljö har också dragit sig för den skolning av administratörer och användare som en övergång kräver, och framförallt för att upprätthålla dubbla system, i de fall GNU/Linux inte helt kan ersätta den tidigare miljön.

GNU/Linux erbjuder sedan länge ett gott programurval på nästan alla områden. Installationen av de flesta distributioner sker med ett grafiskt användargränssnitt och är automatiserad, inklusive detektering av hårdvara och val av drivrutiner. För en icke-teknisk användare är byte från Windows till en välanpassad Linux-variant knappast svårare än byte från en generation Windows-system till nästa. Flera distributioner är avsedda för mindre avancerade användare.



Next »