Klienter: Skillnad mellan sidversioner
Stellanl (diskussion | bidrag) |
Stellanl (diskussion | bidrag) |
||
| Rad 148: | Rad 148: | ||
GSSAPIKeyExchange yes | GSSAPIKeyExchange yes | ||
GSSAPICleanupCredentials yes | GSSAPICleanupCredentials yes | ||
GSSAPIStrictAcceptorCheck no | |||
=== Konsekvenser av AFS === | === Konsekvenser av AFS === | ||
Versionen från 27 november 2025 kl. 20.41
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
sudo apt-get install openssh-server sudo rm /etc/ssh/*key* # de behövs inte 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 yes GSSAPIStrictAcceptorCheck no
Konsekvenser av AFS
Tidigt i Trixies livstid kom en uppdatering av wf-plug-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".