Klienter: Skillnad mellan sidversioner

Från stackenwiki
Hoppa till navigering Hoppa till sök
Bättre råd
 
(24 mellanliggande sidversioner av 8 användare visas inte)
Rad 1: Rad 1:
Stacken har i dag tre kienter (datorer) i lokalen. Den gamla kurt-goedel och de två nya georg-scheutz (soffan) samt edvard-scheutz.
Stacken har i dag tre klienter (datorer) i lokalen. georg-scheutz, edvard-scheutz (båda PC) och hallonpag (RPi 5B).


== Sätt upp en maskin i Stackens miljö ==
== Sätt upp en maskin i Stackens miljö ==
Rad 5: Rad 5:
=== Ubuntu ===
=== Ubuntu ===


I dag är det georg-scheutz samt edvard-scheutz som kör Ubuntu. Här kommer en genomgång av vad som är gjort på dem.
I dag är det georg-scheutz samt edvard-scheutz som kör Ubuntu / Mint. Här kommer en genomgång av vad som är gjort på dem.


==== Installation ====
==== Installation ====
En standardinstallation med swap och /, inga konstigheter. Maskinen dual-bootar Windows.
En standardinstallation med swap och /, inga konstigheter. Maskinen dual-bootar Windows.
En stacken-användare är skapad och är administratör (rättigheter att köra sudo).
En stacken-användare är skapad och är administratör (rättigheter att köra sudo).
==== Installera några viktiga program för att folks login skall funka ====
$ sudo apt-get install tcsh twm zsh


==== Installera afs och kerberos ====
==== Installera afs och kerberos ====


  $ sudo apt-get install openafs-client
  $ sudo apt-get install openafs-client openafs-modules-dkms
  (stacken.kth.se, 5G cache)
  (stacken.kth.se, 5G cache!)
  $ sudo apt-get install heimdal-clients
  $ sudo apt-get install heimdal-clients
  (STACKEN.KTH.SE)
  (STACKEN.KTH.SE)
Rad 26: Rad 30:
==== Inloggning med stackens användare ====
==== Inloggning med stackens användare ====


$ sudo apt-get install libnss-db
Vi behöver libnss-db för att hantera en användardatabas (utan lösenord) på lämpligt vis, libpam-krb5 för att kunna autenticera mot kerberos, och openafs-krb5 för att få afstokens vid inloggning.
  $ sudo apt-get install libpam-krb5
 
  $ sudo apt-get install libnss-db libpam-krb5 openafs-krb5 libpam-afs-session
 
==== passwd ====


Det finns ett cron-jobb som hämtar stackens passwd, konventerar den till ett format som passar linux och skapar <code>/etc/stacken/passwd</code> samt <code>/etc/stacken/shadow</code>. shadow är en dummy-fil och innehåller inga hashar.
Det finns ett cron-jobb som hämtar stackens passwd, konventerar den till ett format som passar linux och skapar <code>/etc/stacken/passwd</code> samt <code>/etc/stacken/shadow</code>. shadow är en dummy-fil och innehåller inga hashar.
Rad 34: Rad 41:
  $ sudo ln -s /afs/stacken.kth.se/i386_linux6/etc/cron.hourly/update-stacken-passwd-db-deb
  $ sudo ln -s /afs/stacken.kth.se/i386_linux6/etc/cron.hourly/update-stacken-passwd-db-deb


Vi använder oss av libnns-db för att bygga en databas av passwd och shadow-filerna. Då våra stacken-filer inte ligger på det vanliga stället i /etc/ så måste vi uppdatera lite i en konfigurationsfil.
Vi använder oss av libnss-db för att bygga en databas av passwd- och shadow-filerna. Då våra stacken-filer inte ligger på det vanliga stället i /etc/ så måste vi uppdatera lite i en konfigurationsfil.


  sudo $EDITOR /etc/default/libnss-db
  $ sudo $EDITOR /etc/default/libnss-db


Ändra till följande rader
Ändra till följande rader
Rad 44: Rad 51:
Det som är kvar nu är att ändra så att vi använder våra nya filer.
Det som är kvar nu är att ändra så att vi använder våra nya filer.


  sudo $EDITOR /etc/nsswitch.conf
  $ sudo $EDITOR /etc/nsswitch.conf


Lägg till "db" i slutet på passwd och shadow-raden.
Lägg till "db" i slutet på passwd och shadow-raden.
Rad 51: Rad 58:
  shadow:        compat db
  shadow:        compat db


Du bör nu kunna testa att det funkar genom att manuellt köra <code>/etc/cron.hourly/update-stacken-passwd-db-deb</code>.
Du bör nu kunna testa att det funkar genom att manuellt köra <code>/etc/cron.hourly/update-stacken-passwd-db-deb</code> som root.


  $ /etc/cron.hourly/update-stacken-passwd-db-deb
  $ sudo /etc/cron.hourly/update-stacken-passwd-db-deb


Du kan testa att du kan hämta en användare med
Du kan testa att du kan hämta en användare med


  getent passwd USERNAME
  $ getent passwd USERNAME
 
=== Kerberos auth ===


Det finns en sak kvar, då vår shadow-fil inte innehöll lösenordshasharna så går det inte att logga in med våra användare än. Det som finns kvar att göra är att använda libpam-krb5 för inloggning.
Det finns en sak kvar, då vår shadow-fil inte innehöll lösenordshasharna så går det inte att logga in med våra användare än. Det som finns kvar att göra är att använda libpam-krb5 för inloggning.


  sudo $EDITOR /etc/pam.d/common-auth
  $ sudo $EDITOR /etc/pam.d/common-auth


Lägg till följande rad överst:
Lägg till följande rad överst:


  auth    sufficient      pam_krb5.so ccache=/tmp/krb5cc_%u
  auth    sufficient      pam_krb5.so ccache=/tmp/krb5cc_%u
''# Finns det nån config som gör att den där PAM modulen kollar keytabben innan den släpper in folk?''
Låt /etc/site vara en symlänk som pekar in i afs. site innehåller diverse filer som t.ex. bash_profile.
$ sudo ln -s /afs/stacken.kth.se/common/etc/site /etc/site
Det bör räcka för att du ska kunna logga in i en terminal, ssh.
==== Om det inte funkar att logga in i X ====


Det bör räcka för att du ska kunna logga in i en terminal, ssh. Av någon orsak så får du inte ut tokens när du loggar in med GDM (grafiskt, i X). Lösningen är att ändra i:
Kör bara det här om det inte funkar att logga in (få biljetter) från inlogg i X.


  sudo $EDITOR /etc/gdm/Xsession
  $ sudo $EDITOR /etc/gdm/Xsession


Lägg till följande rad på valfritt lämpligt ställe
Lägg till följande rad på valfritt lämpligt ställe


  . /afs/stacken.kth.se/common/etc/GdmAfsTokensDefault
  $ . /afs/stacken.kth.se/common/etc/GdmAfsTokensDefault


Det är ett litet ful-hack som kör afslog.
Det är ett litet ful-hack som kör afslog.
==== sshd GSSAPIKeyExchange ====
sudo apt-get install openssh-server
sudo rm /etc/ssh/*key* # de behövs ju inte
sudo /etc/init.d/ssh stop
Lägg till / korrigera följande options i /etc/ssh/sshd_config och stäng av password login:
PasswordAuthentication no
GSSAPIAuthentication yes
GSSAPIKeyExchange yes
GSSAPICleanupCredentials yes
# GSSAPIStrictAcceptorCheck ??
Fixa långt hostname i filen och verkligheten
Stoppa in datan i HOSTS.TXT och fixa DNS och DHCP
Stoppa in reversuppslagningen i /etc/hosts (optional)
sudo ktutil get -p $USER/admin -r STACKEN.KTH.SE host/`hostname`
/etc/init.d/sshd start
Gjort på edvard, todo på georg.
=== Raspberry Pi OS ===
Rekommenderas: release Trixie (kom 2025-11) eller senare för att afs ska fungera utan extra handpåläggning.
==== Installation ====
En standardinstallation. (Om man kör med M.2-SSD måste man boota från ett SD-kort först, sen köra RPi Imager för att bygga ett system på SSD:n.)
Skapa standardanvändaren som "stacken" istf "pi". Låt maskinen boota till desktop, auto-inloggad tills vidare.
Följ installationsanvisningarna för Ubuntu fram till "sshd GSSAPIKeyExchange".
=== koppla sshd till GSSAPIKeyExchange ===
Använd raspi-config (kommandorad) eller Start->Preferences->Control Center->Interfaces (desktop) för att slå på ssh.
sudo systemctl stop sshd
Skapa vår config som en separat fil, så överlever den uppgraderingar:
sudo nano /etc/ssh/sshd_config.d/stacken.conf
som ska innehålla:
PasswordAuthentication no
GSSAPIAuthentication yes
GSSAPIKeyExchange yes
GSSAPICleanupCredentials no
GSSAPIStrictAcceptorCheck no
Starta om servern:
sudo systemctl start sshd
=== Konsekvenser av AFS ===
Tidigt i Trixies livstid kom en uppdatering av paketet '''wfplug-connect''' (den kontrollpanel som hör ihop med "Raspberry Pi Connect").
Den misslyckades att installera, då dess postinstall-script försökte loopa över alla användares hemkataloger och "reparera" en configfil om den fanns. Med hemkatalogerna i afs så får inte ens root göra så. Eftersom den var ett krav för metapaketet wayland-core så blev det stopp.
Snabblösningen var att kortsluta scriptet, /var/lib/dpkg/info/wfplug-connect.postinst genom att sätta in en rad, "exit 0" i början, och köra om "apt install upgrade".

Nuvarande version från 4 december 2025 kl. 18.57

Stacken har i dag tre klienter (datorer) i lokalen. georg-scheutz, edvard-scheutz (båda PC) och hallonpag (RPi 5B).

Sätt upp en maskin i Stackens miljö

Ubuntu

I dag är det georg-scheutz samt edvard-scheutz som kör Ubuntu / Mint. Här kommer en genomgång av vad som är gjort på dem.

Installation

En standardinstallation med swap och /, inga konstigheter. Maskinen dual-bootar Windows. En stacken-användare är skapad och är administratör (rättigheter att köra sudo).

Installera några viktiga program för att folks login skall funka

$ sudo apt-get install tcsh twm zsh

Installera afs och kerberos

$ sudo apt-get install openafs-client openafs-modules-dkms
(stacken.kth.se, 5G cache!)
$ sudo apt-get install heimdal-clients
(STACKEN.KTH.SE)

Efter det bör du ha fungerande afs och kerberos på maskinen. Eventuellt kanske vi på sikt kan byta ut den lite "trasiga" versionen av heimdal till habas debian/ubuntu-rep. Men det som finns nu funkar.

Syns det inga filer i /afs så starta openafs med:

$ sudo service openafs-client start

Inloggning med stackens användare

Vi behöver libnss-db för att hantera en användardatabas (utan lösenord) på lämpligt vis, libpam-krb5 för att kunna autenticera mot kerberos, och openafs-krb5 för att få afstokens vid inloggning.

$ sudo apt-get install libnss-db libpam-krb5 openafs-krb5 libpam-afs-session

passwd

Det finns ett cron-jobb som hämtar stackens passwd, konventerar den till ett format som passar linux och skapar /etc/stacken/passwd samt /etc/stacken/shadow. shadow är en dummy-fil och innehåller inga hashar.

$ cd /etc/cron.hourly/
$ sudo ln -s /afs/stacken.kth.se/i386_linux6/etc/cron.hourly/update-stacken-passwd-db-deb

Vi använder oss av libnss-db för att bygga en databas av passwd- och shadow-filerna. Då våra stacken-filer inte ligger på det vanliga stället i /etc/ så måste vi uppdatera lite i en konfigurationsfil.

$ sudo $EDITOR /etc/default/libnss-db

Ändra till följande rader

ETC = /etc/stacken
DBS = passwd shadow

Det som är kvar nu är att ändra så att vi använder våra nya filer.

$ sudo $EDITOR /etc/nsswitch.conf

Lägg till "db" i slutet på passwd och shadow-raden.

passwd:         compat db
shadow:         compat db

Du bör nu kunna testa att det funkar genom att manuellt köra /etc/cron.hourly/update-stacken-passwd-db-deb som root.

$ sudo /etc/cron.hourly/update-stacken-passwd-db-deb

Du kan testa att du kan hämta en användare med

$ getent passwd USERNAME

Kerberos auth

Det finns en sak kvar, då vår shadow-fil inte innehöll lösenordshasharna så går det inte att logga in med våra användare än. Det som finns kvar att göra är att använda libpam-krb5 för inloggning.

$ sudo $EDITOR /etc/pam.d/common-auth

Lägg till följande rad överst:

auth    sufficient      pam_krb5.so ccache=/tmp/krb5cc_%u

# Finns det nån config som gör att den där PAM modulen kollar keytabben innan den släpper in folk?

Låt /etc/site vara en symlänk som pekar in i afs. site innehåller diverse filer som t.ex. bash_profile.

$ sudo ln -s /afs/stacken.kth.se/common/etc/site /etc/site

Det bör räcka för att du ska kunna logga in i en terminal, ssh.

Om det inte funkar att logga in i X

Kör bara det här om det inte funkar att logga in (få biljetter) från inlogg i X.

$ sudo $EDITOR /etc/gdm/Xsession

Lägg till följande rad på valfritt lämpligt ställe

$ . /afs/stacken.kth.se/common/etc/GdmAfsTokensDefault

Det är ett litet ful-hack som kör afslog.

sshd GSSAPIKeyExchange

sudo apt-get install openssh-server
sudo rm /etc/ssh/*key* # de behövs ju inte
sudo /etc/init.d/ssh stop

Lägg till / korrigera följande options i /etc/ssh/sshd_config och stäng av password login:

PasswordAuthentication no
GSSAPIAuthentication yes
GSSAPIKeyExchange yes
GSSAPICleanupCredentials yes
# GSSAPIStrictAcceptorCheck ??

Fixa långt hostname i filen och verkligheten

Stoppa in datan i HOSTS.TXT och fixa DNS och DHCP

Stoppa in reversuppslagningen i /etc/hosts (optional)

sudo ktutil get -p $USER/admin -r STACKEN.KTH.SE host/`hostname`
/etc/init.d/sshd start

Gjort på edvard, todo på georg.

Raspberry Pi OS

Rekommenderas: release Trixie (kom 2025-11) eller senare för att afs ska fungera utan extra handpåläggning.


Installation

En standardinstallation. (Om man kör med M.2-SSD måste man boota från ett SD-kort först, sen köra RPi Imager för att bygga ett system på SSD:n.) Skapa standardanvändaren som "stacken" istf "pi". Låt maskinen boota till desktop, auto-inloggad tills vidare.

Följ installationsanvisningarna för Ubuntu fram till "sshd GSSAPIKeyExchange".

koppla sshd till GSSAPIKeyExchange

Använd raspi-config (kommandorad) eller Start->Preferences->Control Center->Interfaces (desktop) för att slå på ssh.

sudo systemctl stop sshd

Skapa vår config som en separat fil, så överlever den uppgraderingar:

sudo nano /etc/ssh/sshd_config.d/stacken.conf

som ska innehålla:

PasswordAuthentication no
GSSAPIAuthentication yes
GSSAPIKeyExchange yes
GSSAPICleanupCredentials no
GSSAPIStrictAcceptorCheck no

Starta om servern:

sudo systemctl start sshd

Konsekvenser av AFS

Tidigt i Trixies livstid kom en uppdatering av paketet wfplug-connect (den kontrollpanel som hör ihop med "Raspberry Pi Connect"). Den misslyckades att installera, då dess postinstall-script försökte loopa över alla användares hemkataloger och "reparera" en configfil om den fanns. Med hemkatalogerna i afs så får inte ens root göra så. Eftersom den var ett krav för metapaketet wayland-core så blev det stopp.

Snabblösningen var att kortsluta scriptet, /var/lib/dpkg/info/wfplug-connect.postinst genom att sätta in en rad, "exit 0" i början, och köra om "apt install upgrade".