invis_server_wiki:client

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
Nächste Überarbeitung Beide Seiten der Revision
invis_server_wiki:client [2017/01/20 09:42]
flacco [Abschluss]
invis_server_wiki:client [2018/03/09 08:26]
flacco [Benutzer als Systemverwalter einrichten]
Zeile 24: Zeile 24:
 Domänenbeitritte können nicht mit den Personal-Versionen von Windows durchgeführt werden (OK -- Heise hat gezeigt, dass es mit XP Home mit ein bisschen getrickse doch geht.). Domänenbeitritte können nicht mit den Personal-Versionen von Windows durchgeführt werden (OK -- Heise hat gezeigt, dass es mit XP Home mit ein bisschen getrickse doch geht.).
  
-  - Ist der PDC ein Samba-PDC mit NTLM Domäne (**invis Classic**) müssen zunächst zwei Einträge in der Win7 Registry geändert werden. Einen fertigen Patch gibt es [[https://​bugzilla.samba.org/​attachment.cgi?​id=4988&​action=view|hier]]. (Zusätzliche Infos [[http://​wiki.samba.org/​index.php/​Windows7|hier]]). Ein Windows Neustart ist nach Einspielen des Patches nicht nötig.+  - Ist der PDC ein Samba-PDC mit NTLM Domäne (**invis Classic**) müssen zunächst zwei Einträge in der Win7 Registry geändert werden. Einen fertigen Patch gibt es [[https://​bugzilla.samba.org/​attachment.cgi?​id=4988&​action=view|hier]]. (Zusätzliche Infos [[http://​wiki.samba.org/​index.php/​Windows7|hier]]). Ein Windows Neustart ist nach Einspielen des Patches nicht nötig. In Verbindung mit Active-Directory Domänen entfällt dieser Schritt.
   - Unter Windows 7 lässt sich die Funktion "Einer Domäne Beitreten"​ am besten über die Desktop-Suche finden. Einfach //Domäne// in der Suchleiste eingeben und dann auf den entsprechenden Menüeintrag klicken.   - Unter Windows 7 lässt sich die Funktion "Einer Domäne Beitreten"​ am besten über die Desktop-Suche finden. Einfach //Domäne// in der Suchleiste eingeben und dann auf den entsprechenden Menüeintrag klicken.
   - Als nächstes auf die Schaltfläche "​Ändern"​ klicken und dann das Feld "​Domäne"​ aktivieren, den Domänennamen eintragen und mit OK bestätigen.   - Als nächstes auf die Schaltfläche "​Ändern"​ klicken und dann das Feld "​Domäne"​ aktivieren, den Domänennamen eintragen und mit OK bestätigen.
Zeile 74: Zeile 74:
 ===== Linux Clients mit SSSD integrieren ===== ===== Linux Clients mit SSSD integrieren =====
  
-Anbindung von Linux-Clients an einen invis-Server. Die folgende Beschreibung orientiert sich an **Ubuntu 12.04 LTS** und **Linux Mint 17 "​Qiana"​** (Getestet auch mit Linux Mint 13 "​Maya"​),​ gilt aber prinzipiell auch für andere Linux-Distributionen. Unter **openSUSE** kann der Vorgang bezogen auf den invis-Classic vollständig mit **YaST** vorgenommen werden. Die Anbindung an die Active-Directory Variante erfordert etwas mehr Handarbeit.+Anbindung von Linux-Clients an einen invis-Server. Die folgende Beschreibung orientiert sich an **Ubuntu 12.04 LTS** und **Linux Mint 17 "​Qiana"​** (Getestet auch mit Linux Mint 13 "​Maya"​),​ gilt aber prinzipiell auch für andere Linux-Distributionen. ​
  
 Kern der Beschreibung ist die Anbindung eines Linux-Clients an eine LDAP-gestützte Benutzerverwaltung mit Hilfe des noch recht jungen System Security Services Daemon (SSSD). Nicht alle Distributionen haben den SSSD bereits vollständig integriert, daher muss in vielen Fällen wie beim hier gezeigten Ubuntu die Einrichtung vollständig manuell durchgeführt werden. Kern der Beschreibung ist die Anbindung eines Linux-Clients an eine LDAP-gestützte Benutzerverwaltung mit Hilfe des noch recht jungen System Security Services Daemon (SSSD). Nicht alle Distributionen haben den SSSD bereits vollständig integriert, daher muss in vielen Fällen wie beim hier gezeigten Ubuntu die Einrichtung vollständig manuell durchgeführt werden.
Zeile 81: Zeile 81:
  
 Um das zu erreichen baut und pflegt SSSD lokal einen Cache der Benutzerverwaltung. Nachteilig daran ist bisher, dass es nicht möglich ist ein Aktualisieren des Caches zu triggern. Daraus resultiert oft eine zeitliche Verzögerung,​ bis Änderungen,​ die an der Benutzerdatenbank des Servers vorgenommen wurden auf dem Client zur Verfügung stehen. Wird beispielsweise auf dem Server eine neuer Benutzer angelegt, können einige Minuten vergehen, bis sich der Benutzer tatsächlich anmelden kann. Um das zu erreichen baut und pflegt SSSD lokal einen Cache der Benutzerverwaltung. Nachteilig daran ist bisher, dass es nicht möglich ist ein Aktualisieren des Caches zu triggern. Daraus resultiert oft eine zeitliche Verzögerung,​ bis Änderungen,​ die an der Benutzerdatenbank des Servers vorgenommen wurden auf dem Client zur Verfügung stehen. Wird beispielsweise auf dem Server eine neuer Benutzer angelegt, können einige Minuten vergehen, bis sich der Benutzer tatsächlich anmelden kann.
-==== 1. Freigaben einbinden ​====+ 
 +//​**Achtung:​** Bevor Sie damit beginnen Linux-Clients in Ihr Netzwerk zu integrieren,​ müssen Sie auf Ihrem invis-Server den NFS-Dienst aktiviert haben. Wie das geht, lesen Sie **[[https://​wiki.invis-server.org/​doku.php/​invis_server_wiki:​installation:​post-110#​nfs_fileserver |hier]]**//​ 
 + 
 +==== openSUSE Leap ==== 
 + 
 +Für openSUSE Leap basierte Clients stellen wir ein eigenes Setup-Paktet über unsere Repositories zur Verfügung, mit dem sich der ganze Vorgang der Client-Anbindung automatisieren lässt. Unter der aktuellen openSUSE Leap 42.3 lässt sich das entsprechende Repository wie folgt einrichten:​ 
 + 
 +<​code>​ 
 +invis-client:​~ # zypper ar https://​download.opensuse.org/​repositories/​spins:/​invis:/​unstable/​openSUSE_Leap_42.3/​spins:​invis:​unstable.repo 
 +</​code>​ 
 + 
 +Danach kann das Setup-Paket dann installiert werden: 
 + 
 +<​code>​ 
 +invis-client:​~ # zypper ref 
 +invis-client:​~ # zypper in invisAD-client 
 +</​code>​ 
 +  
 +Danach ist lediglich das Client-Integrationsscript auszuführen. sie benötigen dafür das Passwort des Domänen-Administrators und den Namen der Domäne. 
 + 
 +<​code>​ 
 +invis-client:​~ # joininvis 
 +</​code>​ 
 + 
 +Beantworten Sie die Fragen und das wars. 
 + 
 + 
 +==== Manuelle Anbindung - online Clients ==== 
 +=== 1. Freigaben einbinden ===
 Zur Anbindung eines Linux-Clients an den Server müssen zunächst die Server-Freigaben **home** und **shares** per NFSv4 ins lokale Verzeichnissystem eingehängt werden. Dazu sind in der Datei <​file>/​etc/​fstab</​file>​ folgende Einträge vorzunehmen:​ Zur Anbindung eines Linux-Clients an den Server müssen zunächst die Server-Freigaben **home** und **shares** per NFSv4 ins lokale Verzeichnissystem eingehängt werden. Dazu sind in der Datei <​file>/​etc/​fstab</​file>​ folgende Einträge vorzunehmen:​
  
Zeile 98: Zeile 126:
 linux:~ # sudo apt-get install nfs-common linux:~ # sudo apt-get install nfs-common
 </​code>​ </​code>​
-==== 2. Benutzerverwaltung ​====+=== 2. Benutzerverwaltung ===
  
 Die folgenden Erläuterungen beschreiben die Anbindung eines Linux-Clients an einen invis-Server,​ sowohl AD, als auch Classic. Für die Anbindung von openSUSE Leap (42.x) an einen invis AD Server steht in unserem Github-Repository inzwischen ein Client-Setup-Script zur Verfügung, welches die Anbindung vollständig automatisch durchführt. Die folgenden Erläuterungen beschreiben die Anbindung eines Linux-Clients an einen invis-Server,​ sowohl AD, als auch Classic. Für die Anbindung von openSUSE Leap (42.x) an einen invis AD Server steht in unserem Github-Repository inzwischen ein Client-Setup-Script zur Verfügung, welches die Anbindung vollständig automatisch durchführt.
Zeile 134: Zeile 162:
 Danach ist unter dem Namen <​file>/​etc/​sssd/​sssd.conf</​file>​ eine Konfigurationsdatei für den Daemon anzulegen. Dabei gibt es je nach verwendeter invis-Server-Version Unterschiede. Schauen wir uns zunächst die klassische Variante an: Danach ist unter dem Namen <​file>/​etc/​sssd/​sssd.conf</​file>​ eine Konfigurationsdatei für den Daemon anzulegen. Dabei gibt es je nach verwendeter invis-Server-Version Unterschiede. Schauen wir uns zunächst die klassische Variante an:
  
-=== sssd-Konfiguration invis-Server Classic ​===+== sssd-Konfiguration invis-Server Classic ==
  
 <​code>​ <​code>​
Zeile 167: Zeile 195:
 </​code>​ </​code>​
  
-=== sssd-Konfiguration invis-Server Active Directory ​===+== sssd-Konfiguration invis-Server Active Directory ==
  
 <​code>​ <​code>​
Zeile 266: Zeile 294:
  
 Der Debug-Level kann für die einzelnen Sektionen "​[sssd]",​ "​[nss]",​ "​[pam]"​ und "​[domain/​...]"​ auch individuell gesetzt werden. Weitere Infos zum Debug-Level sind in der Manpage des Dienstes zu finden (https://​jhrozek.fedorapeople.org/​sssd/​1.13.1/​man/​sssd.conf.5.html) Der Debug-Level kann für die einzelnen Sektionen "​[sssd]",​ "​[nss]",​ "​[pam]"​ und "​[domain/​...]"​ auch individuell gesetzt werden. Weitere Infos zum Debug-Level sind in der Manpage des Dienstes zu finden (https://​jhrozek.fedorapeople.org/​sssd/​1.13.1/​man/​sssd.conf.5.html)
-=== Name-Service-Switch anpassen ​===+== Name-Service-Switch anpassen ==
  
 Damit PAM weiss, dass Benutzerkonten sowohl in der lokalen "/​etc/​passwd"​ als auch im Active-Directory bzw. OpenLDAP des invis-Servers geführt werden, muss die Datei <​file>/​etc/​nsswitch.conf</​file>​ wie folgt angepasst werden: Damit PAM weiss, dass Benutzerkonten sowohl in der lokalen "/​etc/​passwd"​ als auch im Active-Directory bzw. OpenLDAP des invis-Servers geführt werden, muss die Datei <​file>/​etc/​nsswitch.conf</​file>​ wie folgt angepasst werden:
Zeile 279: Zeile 307:
 Beide gezeigten Einträge müssen um den Wert "​sss"​ ergänzt werden. Beide gezeigten Einträge müssen um den Wert "​sss"​ ergänzt werden.
  
-=== PAM konfigurieren ​===+== PAM konfigurieren ==
  
 Auch die PAM Module für die Benutzeranmeldung am System müssen an den **sssd** angepasst werden. Dies kann im einfachsten Fall mit Hilfe des Tools //​**pam-config**//​ vorgenommen werden: Auch die PAM Module für die Benutzeranmeldung am System müssen an den **sssd** angepasst werden. Dies kann im einfachsten Fall mit Hilfe des Tools //​**pam-config**//​ vorgenommen werden:
Zeile 377: Zeile 405:
  
 Alle gezeigten Beispiele stammen aus einer Anbindung an einen invis-Classic Server. Alle gezeigten Beispiele stammen aus einer Anbindung an einen invis-Classic Server.
-=== Kerberos Konfiguration für Client-Anbindung an invis-Server ActiveDirectory ​===+== Kerberos Konfiguration für Client-Anbindung an invis-Server ActiveDirectory ==
  
 Zur Anbindung eines Linux-Clients an einen invis-Server ActiveDirectory ist es mit der bloßen sssd-Konfiguration nicht getan. Client-Seitig wird darüber hinaus eine Kerberos-Konfiguration sowie eine Kerberos-Keymap benötigt. Zur Anbindung eines Linux-Clients an einen invis-Server ActiveDirectory ist es mit der bloßen sssd-Konfiguration nicht getan. Client-Seitig wird darüber hinaus eine Kerberos-Konfiguration sowie eine Kerberos-Keymap benötigt.
Zeile 437: Zeile 465:
 </​code>​ </​code>​
  
-====offline ​Linux Clients ​integrieren ​mit SSSD und OpenVPN ​=====+==== Manuelle Anbindung - offline Clients mit OpenVPN ====
  
 Allem voran, sollte klar sein, dass ein solches Setup nur dann wirklich Sinn macht, wenn der invis-Server mit einer akzeptablen DSL-Anbindung (>= 16000kBit/​s) ausgestattet ist. Zu bedenken ist hier, dass der Upload der begrenzende Faktor ist und der liegt bezogen auf eine 16000er ADSL Leitung bei nur 1000kBit/s. Alles darunter wird sehr zäh! Bei einer 6000er DSL Leitung schrumpft der Upload beispielsweise schon auf magere 256kBit/s. Allem voran, sollte klar sein, dass ein solches Setup nur dann wirklich Sinn macht, wenn der invis-Server mit einer akzeptablen DSL-Anbindung (>= 16000kBit/​s) ausgestattet ist. Zu bedenken ist hier, dass der Upload der begrenzende Faktor ist und der liegt bezogen auf eine 16000er ADSL Leitung bei nur 1000kBit/s. Alles darunter wird sehr zäh! Bei einer 6000er DSL Leitung schrumpft der Upload beispielsweise schon auf magere 256kBit/s.
Zeile 443: Zeile 471:
 Die nachfolgende beschriebene Vorgehensweise ist derzeit noch vollständig manuell durchzuführen und birgt durchaus Potential für Fehler. Problematisch ist vor allem die Reihenfolge der einzelnen Schritte. Die nachfolgende beschriebene Vorgehensweise ist derzeit noch vollständig manuell durchzuführen und birgt durchaus Potential für Fehler. Problematisch ist vor allem die Reihenfolge der einzelnen Schritte.
  
-==== 1. Hintergründe ​====+=== Hintergründe ===
  
 Geeignet ist das folgende Setup für Notebooks die unterwegs genutzt werden sollen oder den PC im Home-Office. Geeignet ist das folgende Setup für Notebooks die unterwegs genutzt werden sollen oder den PC im Home-Office.
Zeile 457: Zeile 485:
 Damit sind die Schwierigkeiten grob umrissen. Damit sind die Schwierigkeiten grob umrissen.
  
-==== 2Vorgehensweise ====+//​**Hinweis:​** Wir gehen davon aus, dass die Einrichtung an einem PC erfolgt, der vollständig vom invis-Server Netzwerk getrennt ist, da dies alle Schwierigkeiten berücksichtigt.//
  
-Wir gehen davon aus, dass die Einrichtung an einem PC erfolgt, der vollständig vom invis-Server Netzwerk getrennt ist, da dies alle Schwierigkeiten berücksichtigt.+=== 1VPN Zugang vorbereiten ===
  
-=== VPN Zugang vorbereiten === +Auf dem invis-Server muss zunächst ein Schlüssel für die VPN-Verbindung des Clients erzeugt werden. Dazu benötigen Sie lediglich den Hostnamen des Clients, den Sie mit
- +
-Auf dem invis-Server muss zunächst ein Schlüssel für die VPN-Verbindung des Clients erzeugt werden, dazu benötigen Sie lediglich den Hostnamen des Clients, den Sie mit+
  
 <​code>​ <​code>​
Zeile 471: Zeile 497:
 auf dem Client ermitteln können. auf dem Client ermitteln können.
  
-Auf dem invis-Server ​wechseln Sie als Benutzer "​root"​ ins Verzeichnis <​file>​/etc/openvpn/ihre-domain.loc<​/file> +Die Erzeugung des Schlüssels erfolgt auf dem invis-Server ​unter Verwendung des Scripts ​//**inviscerts**//. Sie benötigen neben dem Hostnamen ​des Clients auch das Passwort Ihrer CA.
- +
-Das erzeugen ​des Schlüsseldatei läuft wie folgt ab:+
  
 <​code>​ <​code>​
-linux:/​etc/​openvpn/​ihr-domain.loc ​source ./vars +invis:inviscerts vpn
-linux:/​etc/​openvpn/​ihr-domain.loc # ./​build-key-pkcs12 clienthostname+
 </​code>​ </​code>​
  
-Im Verlauf des Schlüsselbaus werden die üblichen Fragen ​für das zugehörige Zertifikat gestellt, Sie können die Vorgabewerte jeweils mit "​Enter"​ übernehmen. Einzig die //​OraginzationalUnit//​ ist nicht mit einem Vorgabewert belegt. Sie können hier nach Belieben einen Beschreibungstext zum Client eingeben. +Das Script fragt nach einem "​Export Passwort" ​für das zu erzeugende Schlüsselpaar. Schlüssel und Zertifikat werden in einer PKCS12 Datei zusammengefasst und diese mit einem Passwort verschlüsselt. Sie sollten hier ein möglichst sicheres Passwort verwenden und dieses nur dem Inhaber des Clients nennen.
- +
-Nach Erzeugung von Schlüssel und Zertifikat werden ​beide Dateien ​in einer PKCS12 Datei zusammengefasst und mit einem Passwort verschlüsselt. Sie sollten hier ein möglichst sicheres Passwort verwenden und dieses nur dem Inhaber des Clients nennen.+
  
-Die fertige Datei finden Sie im Unterverzeichnis <​file>​keys</​file>​ unter dem Namen: <​file>​clienthostname.p12</​file>​+Die fertige Datei finden Sie im Unterverzeichnis <​file>​/​srv/​shares/​service/​VPN-Clients/​Zertifikate</​file>​ unter dem Namen: <​file>​clienthostname.p12</​file>​
  
 Diese Datei ist auf sicherem Weg (z.B. SCP) auf den Client zu übertragen. Diese Datei ist auf sicherem Weg (z.B. SCP) auf den Client zu übertragen.
  
-=== VPN Zugang herstellen ===+=== 2. VPN Zugang herstellen ===
  
 Melden Sie sich mit Ihrem lokalen Systemverwalter-Konto an und installieren Sie OpenVPN: Melden Sie sich mit Ihrem lokalen Systemverwalter-Konto an und installieren Sie OpenVPN:
Zeile 503: Zeile 524:
 # Authentifizierung und Verschluesselung # Authentifizierung und Verschluesselung
 tls-client tls-client
-auth SHA1 +auth SHA512 
-tls-remote server.ihredomain.de+cipher AES-256-CBC
 .... ....
 # The hostname/IP and port of the server. # The hostname/IP and port of the server.
Zeile 531: Zeile 552:
 Eine erfolgreiche Verbindung ist Voraussetzung für die Anbindung an die Benutzerverwaltung des invis-Server. Eine erfolgreiche Verbindung ist Voraussetzung für die Anbindung an die Benutzerverwaltung des invis-Server.
  
-=== SSSD einrichten ===+=== 3. SSSD einrichten ===
  
 Die Einrichtung des SSSD erfolgt in gleicher Weise wie im im Abschnitt "Linux Clients mit SSSD integrieren"​ beschrieben. Die Einrichtung des SSSD erfolgt in gleicher Weise wie im im Abschnitt "Linux Clients mit SSSD integrieren"​ beschrieben.
Zeile 564: Zeile 585:
 Durch das Angeben des "​Minuszeichens"​ wechseln Sie mit //**su**// in das Home-Verzeichnis des Benutzers. Testen Sie, ob es Ihnen jetzt möglich ist darin Dateien und Ordner anzulegen. Durch das Angeben des "​Minuszeichens"​ wechseln Sie mit //**su**// in das Home-Verzeichnis des Benutzers. Testen Sie, ob es Ihnen jetzt möglich ist darin Dateien und Ordner anzulegen.
  
-=== Benutzer als Systemverwalter einrichten ===+=== 4. Benutzer als Systemverwalter einrichten ===
  
 Um eine OpenVPN Verwindung aufzubauen muss der Benutzer, der es versucht über Root-Rechte verfügen, da es nur so möglich ist automatisch eine Route ins Zielnetz zu setzen. Um dies auf einem Ubuntu-System zu erreichen, muss der gewünschte Benutzer als "​sudoer"​ (Systemverwalter) geführt werden. Das geht nicht unbedingt mit den Ubuntu Systemwerkzeugen,​ da diese in unseren Tests die über SSSD verfügbaren Benutzerkonten nicht immer angezeigt haben. Um eine OpenVPN Verwindung aufzubauen muss der Benutzer, der es versucht über Root-Rechte verfügen, da es nur so möglich ist automatisch eine Route ins Zielnetz zu setzen. Um dies auf einem Ubuntu-System zu erreichen, muss der gewünschte Benutzer als "​sudoer"​ (Systemverwalter) geführt werden. Das geht nicht unbedingt mit den Ubuntu Systemwerkzeugen,​ da diese in unseren Tests die über SSSD verfügbaren Benutzerkonten nicht immer angezeigt haben.
  • invis_server_wiki/client.txt
  • Zuletzt geändert: 2020/08/14 13:48
  • von ingo