Difference between revisions of "Klienter"

(Inloggning med stackens användare)
 
(17 intermediate revisions by 6 users not shown)
Line 5: Line 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
Line 26: Line 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.
Line 36: Line 43:
 
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 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.
  
  $EDITOR /etc/default/libnss-db
+
  $ sudo $EDITOR /etc/default/libnss-db
  
 
Ändra till följande rader
 
Ändra till följande rader
Line 44: Line 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.
  
  $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.
Line 51: Line 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.
  
  $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.
  
  $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ång 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.

Latest revision as of 13:32, 11 August 2024

Stacken har i dag tre kienter (datorer) i lokalen. Den gamla kurt-goedel och de två nya georg-scheutz (soffan) samt edvard-scheutz.

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 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.

$ 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ång 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.