Versionsinformationen

Erstellt: 2021-03-05 14:34:49 UTC
Revision: 62e7163021da165861ab23f38a15500a69a0801a
Quelle: https://uni-h.de/anleitung
Repository: https://gitlab.uni-hannover.de/luis/anleitung

Passwörter

KeepassXC - Ersteinrichtung

Hinweis: Die Anleitung wurde mit KeePassXC 2.6.4 erstellt.

Startbildschirm

KeepassXC Einrichtung 01

Nach der Installation sieht man die Startseite der KeePassXC-Datenbank. Für die Ersteinrichtung muss nun eine neue Datenbank erstellt werden.

Erstellen der Datenbank

KeepassXC Einrichtung 02

Die Datenbank wird benannt, optional kann auch eine Beschreibung formuliert werden.

Einstellungen

KeepassXC Einrichtung 03

Die Verschlüsselungseinstellungen können angepasst werden. Für den Einstieg bieten sich an dieser Stelle die Standardeinstellungen an.

Wahl des Passworts

KeepassXC Einrichtung 04

Nun muss das Passwort für die Datenbank gewählt werden. Das Passwort wird zum Entsperren der Datenbank verwendet und ist das einzige Passwort, welches sich gemerkt werden muss. Es sollte ausreichend komplex sein und an einem sicheren Ort verwahrt werden (kein Post-It am Bildschirm!). Für die Wahl des Passwortes bietet sich der integrierte Passwortgenerator an, welcher über das Würfel-Symbol rechts vom Eingabefeld geöffnet wird.

Der Passwort-Generator

KeepassXC Einrichtung 05

Ein Passwort wird generiert, die Länge und die Zeichentypen können variiert werden. Die Entropie und der grüne Balken geben an, wie sicher das Passwort ist. Verwenden Sie nur Passwörter, die einen grünen Balken und die Passwort-Qualität "Ausgezeichnet" erzeugen. Notieren Sie sich das Passwort und verwahren Sie es an einem sicheren Ort (wieder: kein Post-It am Bildschirm!) Mit "Passwort anwenden" wird das erstellte Passwort als Passwort für die Datenbank gesetzt.

Datenbank wird erstellt

KeepassXC Einrichtung 06

Die Datenbank wird mit dem generierten Passwort erzeugt. Optional kann die Datenbank noch zusätzlich geschützt werden, z.B. durch eine Schlüsseldatei (eine YubiKey-Unterstützung wird auch angeboten).

Entsperren der Datenbank

KeepassXC Einrichtung 07

Die Datenbank kann nun mit dem Masterpasswort entschlüsselt werden. (Optional auch mit einer Schlüsseldatei oder einem Hardwareschlüssel, wenn dies zuvor ausgewählt wurde).

Einträge erstellen

KeepassXC Einrichtung 08

Über das +-Symbol kann nun ein Eintrag angelegt werden. Hier wird das am Beispiel eines Mail-Kontos gemacht. Die Angabe der URL (welche auf die Login-Seite des jeweiligen Dienstes verweisen sollte) ist in der Kombination mit dem Browser-Addon notwendig. Auch hier kann der Passwortgenerator verwendet werden.

Übersicht

KeepassXC Einrichtung 09

Nach dem Anlegen des Eintrages findet sich der Eintrag in der Übersicht.

Ctrl+C Ctrl+V

KeepassXC Einrichtung 10

Das Passwort kann nun bei Auswahl des Eintrages über STRG+C oder Rechtsklick - Passwort kopieren in die Zwischenablage kopiert und am gewünschten Ort eingefügt werden. Für die komfortable Nutzung im Browser bietet sich an der Stelle das KeePassXC-Browser-Addon an. Die verlinkte Anleitung dazu findet sich am Anfang dieser Seite.

KeePassXC - Browser Addon

Browserintegration aktivieren

KeepassXC Addon 01

Voraussetzung für die Verbindung zwischen dem Browser-Addon und der Datenbank ist die Freischaltung der Funktion in den Einstellungen von KeePassXC.

Datenbank mit Browser-Addon verbinden

KeepassXC Addon 02

Danach muss die Datenbank mit dem Browser-Addon in den Einstellungen des Browser-Addons verbunden werden.

Verbindung benennen

KeepassXC Addon 03

Nach dem Klicken auf "Verbinden" muss der Datenbank ein (beliebiger) Name gegeben werden.

Browser-Zugriffsanfrage

KeepassXC Addon 04

Wenn man nun auf eine Seite mit einem Login-Feld navigiert und man zuvor einen Passwort-Eintrag mit URL erstellt hat, stellt das Browser-Addon nun eine Zugriffsanfrage auf diesen Eintrag.

Automatisches Ausfüllen der Login-Felder

KeepassXC Addon 05

Nach dem Gewähren des Eintrages werden die Login-Felder nach dem Klicken in das Benutzername-Feld automatisch ausgefüllt (hier am Beispiel von WebMail).

Passwortgenerator (sicheres Passwort)

Um ein sicheres Passwort zu erstellen raten wir davon ab, sich dieses selbst zu überlegen. Stattdessen empfehlen wir die Verwendung von Passwortgeneratoren. Nutzen Sie dafür nur vertrauenswürdige Passwortgeneratoren (keine Online-Passwortgeneratoren o.ä.). Konkret empfehlen wir (weitere Erläuterungen unter der Auflistung):

  • Integrierter Passwortgenerator im Passwort-Manager KeePassXC (plattformübergreifend)

  • pwgen Kommandozeilen-Programm (Unix)

Integrierter Passwort-Manager in KeePassXC

KeePassXC beinhaltet einen integrierten Passwortgenerator. Dieser kann jederzeit über das Würfel-Symbol in der Menüleiste aufgerufen werden. Das Würfel-Symbol taucht auch jedesmal auf, wenn ein neues Passwort generiert werden soll (zum Beispiel beim Erstellen eines neuen Eintrages im Passwort-Manager oder dem Setzen eines Masterpasswortes beim Anlegen einer neuen KeePassXC-Datenbank). Zeichentypen und Passwortlänge sind konfigurierbar. Der farbige Balken und die Entropie bewerten die Qualität eines Passwortes. Verwenden Sie am besten nur Passwörter, welche einen grünen Balken mit der Passwort-Qualität "Ausgezeichnet" erzeugen. Ein Beispiel sieht man im folgenden Ausschnitt:

KeepassXC Passwort Generator

Der integrierte Passwortgenerator von KeePassXC, hier am Beispiel vom Erstellen eines neuen Masterpasswortes für eine neue KeePassXC-Datenbank in der KeePassXC-Version 2.6.4. Er wird in der Regel über das Würfel-Symbol (hier rechts vom Passwort-Eingabe-Feld) aufgerufen.

pwgen (Kommandozeilen-Programm)

In der Standardeinstellung erstellt pwgen Passwörter mit einer Zeichenlänge von 8, die einfach auszusprechen ("pronouncable") und sich daher gut zu merken sind. Da dies einen Kompromiss für die Passwortsicherheit darstellt, empfehlen wir die Erweiterung des Befehls durch die Flag -s (secure) und einer Mindestanzahl an Zeichen von 12. Der angepasste Befehl zum Generieren einer Auswahl von sicheren Passwörtern kann wie folgt aussehen:

$ pgwen -s 12
31t6iZNgsmwZ gblIMny0ft8B rhf5jLEmLg9e KXrvE02bAdC1 MoFZaMoKmE3u dDfu2TusKhVm
jUHcgiY6118c qmDm2lb30KBh q2yOVRpNTJDn ik7hml9iDqeW Gu035ifeXEBz i1NjLATxuyTq
2RVkd4m7NghQ JRW5uHubjx6s 1Uigy5zZRdX9 inw8XSxwYdj8 5Dozgcb2momO zKo08sHwswB6
[…]

E-Mail

Signatur & Verschlüsselung

Schritte zur signierten E-Mail

Nutzerzertifikat Beantragung Ablauf

Thunderbird

Schritt-für-Schritt-Anleitung zum Einbinden und Verwenden eines Nutzerzertifikates in Thunderbird.

Einstellungen

Thunderbird 01 Thunderbird 02

Die Einstellungen von Thunderbird erreicht man über das Burger-Menu.

Anschließend wählt man den Unterpunkt Einstellungen erneut.

Zertifikatsverwaltung
Thunderbird 03

Unter Erweitert/Zertifikate findet sich die Zertifikatsverwaltung.

Importieren
Thunderbird 04

Importieren des Zertifikats.

PKCS12 Auswählen
Thunderbird 05

Auswahl der PKCS12 Datei.

Entsperren der PKCS12
Thunderbird 06

Eingabe des Passworts der PKCS12 Datei.

Erfolgreich importiert
Thunderbird 07

Das Zertifikat wurde erfolgreich importiert.

Einstellungen/Konten-Einstellungen
Thunderbird 08

Das importierte Zertifikat muss nun noch für das E-Mail-Konto ausgewählt werden. Den Unterpunkt Konten-Einstellungen erreicht man über die Einstellungen von Thunderbird wie zuvor über das Burgermenu.

S/MIME-Sicherheit - Digitale Unterschrift
Thunderbird 09

Im Unterpunkt S/MIME-Sicherheit für das E-Mail-Konto muss das Zertifikat ausgewählt werden, um Nachrichten digital unterschreiben zu können.

Zertifikat auswählen
Thunderbird 10

Das zuvor importierte Zertifikat wird ausgewählt.

Zertifikat für verschlüsselte Nachrichten
Thunderbird 11

Das gleiche Zertifikat kann auch verwendet werden, um verschlüsselte Nachrichten zu senden und zu empfangen. Die Nachfrage wird mit "Ja" beantwortet.

Nachrichten standardmäßig digital unterschreiben
Thunderbird 12

Nun muss noch das Häkchen bei "Nachrichten digital unterschreiben (als Standard)" gesetzt werden, damit Nachrichten standardmäßig digital unterschrieben werden. Die Änderungen werden mit dem Klicken auf "OK" übernommen.

Resultat: Nachrichten werden standardmäßig digital unterschrieben
Thunderbird 13

Wenn nun eine E-Mail verfasst wird, kann man über das Drop-Down-Menü des Punktes S/MIME angeben, ob die Nachricht unterschrieben und / oder verschlüsselt werden soll. Das Häkchen für die digitale Unterschrift wird durch die vorherigen Einstellungen standardmäßig gesetzt (empfohlen).

Resultat: Empfang einer signierten E-Mail
Thunderbird 14

Empfänger können beim Empfang einer von Ihnen signierten E-Mail nun über das Brief-Symbol erkennen, dass die Nachricht von Ihnen digital unterschrieben wurde. Der Absender einer E-Mail kann so verifiziert werden. Beim Klicken auf das Brief-Symbol erhält man Informationen über die digitale Unterschrift, das Unterschriftszertifikat inkl. Zertifikatskette kann ebenso über das Untermenü "Unterschriftszertifikat ansehen" eingesehen werden.

Outlook

Schritt-für-Schritt-Anleitung zum Einbinden und Verwenden eines Nutzerzertifikates in Outlook.

Outlook-Optionen

Outlook cert 01 Outlook cert 02

Die Outlook-Optionen werden über Datei-Optionen geöffnet.

Trust Center
Outlook cert 03

Das Trust Center wird geöffnet.

Importieren einer digitalen ID (Zertifikat) - Schritt 1
Outlook cert 04

Im Bereich E-Mail-Sicherheit wird kann das Zertifikat importiert werden.

Importieren einer digitalen ID (Zertifikat) - Schritt 2
Outlook cert 05

Bestehende digitale ID aus einer Datei importieren.

Kennwort der Importdatei angeben
Outlook cert 06

Nach dem Importieren muss das Kennwort der Importdatei eingegeben werden.

Sicherheitseinstellungen ändern
Outlook cert 07

Bevorzugte Sicherheitseinstellungen anpassen.

Ausgehende Nachrichten standardmäßig signieren
Outlook cert 08

Im Trust Center standardmäßig ausgehenden Nachrichten die digitale Signatur hinzufügen.

Ergebnis: Mails werden kryptographisch signiert
Outlook cert 09

Mails werden nun standardmäßig krypographisch signiert. Beim Erhalt solch einer Mail kann die Signatur durch das im Bild gezeigte Symbol erkannt und verifiziert werden. Durch Klicken auf das Symbol bekommt man mehr Informationen zum verwendeten Zertifikat angezeigt.

AppleMail

Schritt-für-Schritt-Anleitung zum Einbinden und Verwenden eines Nutzerzertifikates in AppleMail (entsteht noch).

Transport-Verschlüsselung (TLS)

Table 1. Mailserver Daten
Dienst Name Port

SMTP/STARTTLS

smtp.uni-hannover.de

587

IMAP/TLS

mail.uni-hannover.de

993

IMAP/STARTTLS

mail.uni-hannover.de

143

Apple mail

applemail

Outlook 2013

outlook2013

Thunderbird

Bei Thunderbird müssen Sie zunächst die "Konten-Einstellungen" aufrufen, die je nach Version oder Betriebssystem unterschiedlich zu erreichen sind:

  • in der Menüleiste über Extras → Konten

  • in der Menüleiste über Bearbeiten → Konten-Einstellungen

  • über Klick auf den Menüknopf (Icon aus drei Balken) und dort Einstellungen → Konten-Einstellungen

Unterhalb der Konten-Liste und der lokalen Ordner sind am Ende gebündelt die "Postausgangs-Server (SMTP)" einstellbar. Nach Wahl dieses Punktes erscheint die Liste der konfigurierten Postausgang-Server. Für jeden Einzelnen sind durch Drücken auf den "Bearbeiten"-Knopf die Einstellungen anpassbar. Dabei ist der Port von 25 auf 587 zu ändern und die Verbindungssicherheit auf "STARTTLS" einzustellen.

thunderbird smtp

Konfiguration der SMTP Ausgangsserver.

thunderbird

Konfiguration des IMAP Kontos.

Android
android

Konfiguration der SMTP Ausgangsserver.

Mail-Versand (SMTP-Sperre)

Thunderbird

Bei Thunderbird müssen Sie zunächst die "Konten-Einstellungen" aufrufen, die je nach Version oder Betriebssystem unterschiedlich zu erreichen sind:

  • in der Menüleiste über "Extras", Unterpunkt "Konten"

  • in der Menüleiste über "Bearbeiten", Unterpunkt "Konten-Einstellungen"

  • über Klick auf den Menüknopf (Icon aus drei Balken) und dort "Einstellungen" mit dem Unterpunkt "Konten-Einstellungen"

Unterhalb der Konten-Liste und der lokalen Ordner sind am Ende gebündelt die "Postausgangs-Server (SMTP)" einstellbar. Nach Wahl dieses Punktes erscheint die Liste der konfigurierten Postausgang-Server. Für jeden Einzelnen sind durch Drücken auf den "Bearbeiten"-Knopf die Einstellungen anpassbar. Dabei ist der Port von 25 auf 587 zu ändern und die Verbindungssicherheit auf "STARTTLS" einzustellen.

thunderbird 01 thunderbird 02

thunderbird 03 thunderbird 04

Outlook

Um den Port für ein bereits konfiguriertes Mailkonto umzustellen, muss man im Menü unter Extras die Kontoeinstellungen auswählen. Für jedes Mailkonto muss man dann zunächst das Konto im erscheinenden Fenster im Karteireiter E-Mail auswählen und auf den Knopf ändern klicken.

Im Fenster "E-Mail-Konto ändern" muss man den Knopf "Weitere Einstellungen" drücken, und im dann auftauchenden Fenster "Internet-E-Mail-Einstellungen" auf dem auszuwählenden Karteireiter "Erweitert" kann man beim Verbindungstyp "TLS" wählen (TLS steht in Outlook-2007 für STARTTLS) und den Port auf 587 stellen . Zu beachten ist, dass bei Änderungen des Verbindungstyps der Port automatisch auf 25 zurück gesetzt wird. Unbedingt vor dem Drücken auf den OK-Knopf kontrollieren und ggf. wieder auf 587 stellen!

outlook 01 outlook 02

outlook 03 outlook 04

Android

Die Ausführungen hier beziehen sich auf die in Android 4.4 mitgelieferte E-Mail-App. Nach dem Starten der App kann man oben rechts (Icon mit 3 Punkten untereinander) die Einstellungen der Mailkonten auswählen. Jedes Mail-Konto ist dann einzeln durchzugehen, für jedes nimmt man die Einstellungen in der Rubrik "Servereinstellungen" unter "Ausgehende Nachrichten" vor. Dabei ist der Sicherheitstyp auf STARTTLS zu setzen. Falls dann der Port noch nicht auf 587 eingestellt wurde, die Änderungen noch vornehmen und "Fertig".

android 01
android 02

Fernwartung

SSH

/etc/ssh/sshd_config

Zum Einschränken des passwortbasierten Logins verbietet man diesen generell und erlaubt anschließend für vertraute Netze in der /etc/ssh/sshd_config.

…
PasswordAuthentication no
…
PubkeyAuthentication no
…

# und am Ende der Datei
# Universitaet intern
Match Address 130.75.0.0/16,10.0.0.0/8
	PasswordAuthentication yes
	PubkeyAuthentication yes

# Alle
Match All
	PubkeyAuthentication yes

PubKey

Zur Verwendung von SSH mit PubKeys müssen Schlüssel erstellt und auf die Zielsysteme eingebracht werden. Der Kommentar dient der Identifikation des Schlüssels in der ~/.ssh/authorized_keys auf dem Zielsystem.

$ ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_rsa_zb -C "ein kommentar"


Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in ~/.ssh/id_rsa_zb
Your public key has been saved in ~/.ssh/id_rsa_zb.pub
The key fingerprint is:
SHA256:o6IkV/HHF1z2y2bHLYDZ3enO/lkjFYlxOWN24bjwAnQ ein kommentar
The key's randomart image is:
+---[RSA 4096]----+
|         . Eo. oo|
|        ...* o*B+|
|    .    .=.oo===|
|     o .  ..ooooo|
|    . . S .. o*o+|
|   .   o o  .o+o |
|. o . .      . +.|
| + . .        o +|
|  .            oo|
+----[SHA256]-----+

Das Passwort kann zusammen mit dem generiertem Schlüssel in KeepassXC abgelegt werden.

Einbringen in das Zielsystem:

$ ssh-copy-id -i ~/.ssh/id_rsa_zb me@target

Verwendung des Schlüssels:

$ ssh -i ~/.ssh/id_rsa_zb me@target

oder bei Verwendung einer SSH Config in ~/.ssh/config:

Host target
	User me
	HostName target.ifzb.uni-hannover.de
	IdentityFile ~/.ssh/id_rsa_zb

via

$ ssh target

Dateitransfer

Nicht unerwähnt bleibt die Möglichkeit mit SSH Dateien und auch Ordner zu übertragen.

$ scp -r me@target.uni-hannover.de:~/Documents/20210210-T3-Docs ~/Documents/
ProxyJump

Neben der Möglichkeit der Angabe des Jump Hosts als Teil des ssh Aufrufs:

$ ssh -J me@jump.ifzb.uni-hannover.de me@target.ifzb.uni-hannover.de

kann dies auch in der ~/.ssh/config erfolgen:

Host target
	User me
	HostName target.ifzb.uni-hannover.de
	ProxyJump me@jump.ifzb.uni-hannover.de

SOCKS5 Proxy

Als Teil des SSH Aufrufs

$ ssh 8080 -f -C -q -N me@target.ifzb.uni-hannover.de

oder ~/.ssh/config:

Host target
	User me
	HostName target.ifzb.uni-hannover.de
	DynamicForward 8080

der SOCKS5 Proxy kann dann mit FoxyProxy unter Firefox für Patterns der Domains welche über den Proxy laufen sollen eingebunden werden.

Tunnel

Tunnel können entfernte Dienste lokal bereitstellen oder lokale Dienste auf dem SSH Server durchreichen.

Host jump
	User me
	HostName jump.ifzb.uni-hannover.de
	LocalForward 33891 130.75.47.11:3389
	RemoteForward 12345 localhost:12345
	ExitOnForwardFailure yes

Hier wird der Remote-Desktop Dienst von 130.75.47.11:3389 auf den lokalen Port 33891 durchgereicht und der lokale Dienst auf tcp/12345 steht auch auf dem SSH Zugangsserver auf Port 12345 zur Verfügung. Können die Tunnel nicht erstellt werden, bricht die SSH Verbindung ab.

FoxyProxy

Proxy hinzufügen
FoxyProxy 01

Nach dem Installieren des Addons in den Einstellungen einen Proxy hinzufügen (Port konsistent zu der SSH-Config).

Konfigurieren der Patterns
FoxyProxy 02

White Patterns konfigurieren (so wird für *uni-hannover.de-Domains der Proxy verwendet, für alle anderen nicht).

Konfigurieren der Patterns
FoxyProxy 03

In den Optionen-Übersicht „Use Enabled Proxies By Patterns and Order“ auswählen.

Umstellen über Browser-Tool-Bar
FoxyProxy 04

Die Nutzung des Proxys kann man auch über das Addon-Symbol in der Browser-Toolbar umstellen.

Firewall

Übersicht

_

Gateway-Firewall

_

Einschränkungen für Client-Systeme

GWFW Client Einschraenkungen

Einschränkungen für Server-Systeme

GWFW Server Einschraenkungen Proxy

Netzschutz-Firewall

_

Proxy Konfiguration

Eckdaten

Table 2. Proxy Server
Typ DNS-Name Port

Secure

secure-proxy.rrzn.uni-hannover.de

3131

Anon

anon-proxy.rrzn.uni-hannover.de

3130

Filter

filter-proxy.rrzn.uni-hannover.de

3129

Web

web-proxy.rrzn.uni-hannover.de

3128

wpad

Table 3. WPAD Konfigurationsziele
Typ Proxy-Konfig-/WPAD-URL

Secure

appconf.rrzn.uni-hannover.de/conf/web-proxy/secure-proxy.pac

Anon

appconf.rrzn.uni-hannover.de/conf/web-proxy/anon-proxy.pac

Filter

appconf.rrzn.uni-hannover.de/conf/web-proxy/filter-proxy.pac

Web

appconf.rrzn.uni-hannover.de/conf/web-proxy/web-proxy.pac

Linux

Die meisten Linux-Applikationen nutzen die Einstellungen in Umgebungsvariablen als Proxy-Definition (manchmal auch als „System-Proxy“ bezeichnet). Die Umgebungsvariablen können in der Shell oder in Skripten gesetzt werden, üblicherweise werden sie zentral in /etc/environment hinterlegt:

# /etc/environment
# Setzen des LUH-Web-Proxy
#http_proxy=http://anon-proxy.rrzn.uni-hannover.de:3130
#http_proxy=http://filter-proxy.rrzn.uni-hannover.de:3129
#http_proxy=http://web-proxy.rrzn.uni-hannover.de:3128
http_proxy=http://secure-proxy.rrzn.uni-hannover.de:3131
https_proxy=http://secure-proxy.rrzn.uni-hannover.de:3131
ftp_proxy=http://secure-proxy.rrzn.uni-hannover.de:3131
no_proxy=localhost,127.0.0.1,uni-hannover.de
soap_use_proxy=on

Die Variablen-Namen sind wohl sprechend und wenig überraschend, zusätzlich werden hier auch SOAP-Webservices über den Proxy geschickt. Das Beispiel nutzt den sehr restriktiven Secure-Proxy, der für Server sinnvoll ist. Die Auswahl eines anderen Proxys geschieht durch entsprechende Umsetzung des Kommentar-Zeichens # und entsprechende Anpassungen für https und ftp (Variablenersetzungen wie https_proxy=$http_proxy funktionieren hier nicht!).

Damit die gemachten Änderungen aktiv werden, muss man sich einmal vom System ab- und am System erneut anmelden. Das Kommando-Zeilen-Tool wget kann dann gut genutzt werden, um den Proxy zu testen und ggf. Proxy-Fehlermeldungen zu sehen:

wget --spider 'http://debian.org'

Dieser Befehl sollte die Nutzung des Proxy darlegen, ggf. detaillierter mit der zusätzlichen Option "-d", was auch Proxy-Header anzeigt. Wenn man hingegen die URL "http://4btc.cc" (eine bekannte C&C-Site des Zeus-Trojaners) herunterladen will, sollte der Proxy das unterbinden.

Windows

Unter Windows ist die Einstellung des Proxy grundsätzlich nicht so einfach, da Windows keine systemweite Proxy-Einstellung vorsieht:

  • es sind verschiedene Bibliotheken einzustellen (WinINET & WinHTTP),

  • die Einstellungen des Internet-Explorer (=WinINET) gelten nur je Benutzer und können nicht (genauer: nicht mehr seit IE10) für den ganzen PC und somit alle Nutzer gleichzeitig eingestellt werden.

Die Einstellungen können auf verschiedenen Wegen vorgenommen werden (vgl. Abschnitte unten), wobei wir zur Umgehung der o.g. Problematik einen Installer bereitstellen werden (noch in der Entwicklung/Test)

Konfiguration über Skript & Registry

WinHTTP

Diese Einstellungen müssen über eine als Administrator ausgeführte Eingabeaufforderung vorgenommen werden. Dazu dienen die Befehle netsh.exe winhttp …​ proxy …​:

netsh.exe winhttp set proxy proxy-server="secure-proxy.rrzn.uni-hannover.de:3131" bypass-list="<local>,*.uni-hannover.de"
netsh.exe winhttp show proxy

In 64-Bit-System setzt man die 64-Bit-Einstellungen über %windir%\System32\netsh.exe, die 32-Bit-Einstellungen über %windir%\SysWOW64\netsh.exe .

WinINET
Über den Import einer .reg-Datei mit folgendem Inhalt (gilt für 32- und 64-Bit)
Regedit4
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings]
"ProxyEnable"=dword:00000001
"ProxyServer"="http://secure-proxy.rrzn.uni-hannover.de:3131"
"ProxyOverride"="*.uni-hannover.de;localhost;<local>"

; alternativ ginge auch ueber WPAD-URL (bei ProxyEnable=0):

; "AutoConfigURL"="http://appconf.rrzn.uni-hannover.de/conf/web-proxy/secure-proxy.pac"

Oder über die Einstellungen im Internet-Explorer: Internet-Optionen→Verbindungen→LAN-Einstellungen.

Mittel Group-Policy-Preferences

Eine (WinINET-) Proxy-Einstellung ist anders als früher nicht mehr über Gruppenrichtlinien möglich. Stattdessen müssen die Group-Policy-Preferenes (GPP) genutzt werden, die einer Einstellung von Nutzerprofilen entspricht (passend dazu, dass eben keine Maschinen-Einstellung des Proxy mehr möglich ist). Dafür im Gruppenrichtlinien-Objekt unter Benutzereinstellungen die Preferences und weiter Registry öffnen. Da dann die o.g. Registry-Schlüssel und -Werte eingeben.

Anwendungsspezifische Konfigurationshinweise

Firefox

Im Burgermenu über Einstellungen nach Proxy suchen, dort können die Verbindungseinstellungen konfiguriert werden.

01 firefox

Chrome/Chromium

Chrome verwendet normalerweise die Systemeinstellungen:

  • Unter Windows die gleichen wie beim Internet-Explorer und Windows selbst. Geht man über das Chrome-Menü zu den erweiterten Einstellungen und dort Verbindungen/Proxy, so gelangt man zum üblichen Einstellungsfenster von Windows (vgl. Proxy-Nutzung unter Windows).

  • Unter Linux werden die Werte aus den Umgebungsvariablen http_proxy etc. verwendet.

Anwendungsspezifische Proxy-Einstellung über Parameter
chromium-browser --proxy-pac-url=https://appconf.rrzn.uni-hannover.de/conf/web-proxy/filter-proxy.pac

Über die Änderung der Eigenschaften des Aufruf-Icons / Programmeintrags im Menü kann der Proxy permanent eingerichtet werden.

Edge

Microsoft’s Chrome basierter Edge Browser versteht die Chrome Optionen und kann über die UI konfiguriert werden.

Debian/Ubuntu Paketverwaltung

Meist greift zwar die in /etc/environment gemachte Angabe für alle Skripte, Cron-Jobs, viele Anwendungen und eben auch die Paket-Verwaltung. Für die APT-basierte Paketverwaltung von Debian-Systemen kann aber eine explizite Angabe vorgenommen werden, indem eine Datei /etc/apt/apt.conf.d/10rrzn-proxy angelegt wird:

// /etc/apt/apt.conf.d/10rrzn-proxy
// Updates ueber den Whitelist-Proxy
Acquire::http::Proxy "http://secure-proxy.rrzn.uni-hannover.de:3131";
Acquire::https::Proxy "http://secure-proxy.rrzn.uni-hannover.de:3131";
Acquire::http::Proxy::ftp.rrzn.uni-hannover.de "DIRECT";

Acquire::http::Proxy::ftp.uni-hannover.de "DIRECT";
Acquire::http::Proxy::debian.rrzn.uni-hannover.de "DIRECT";

// gemaess man apt.conf funktioniert FTPoverHTTP-Proxy nur mit

// Umgebungsvariable ftp_proxy und nicht durch Angabe hier

//Acquire::ftp::Proxy "http://secure-proxy.rrzn.uni-hannover.de:3131";
Acquire::ftp::Proxy::ftp.rrzn.uni-hannover.de "DIRECT";

Acquire::ftp::Proxy::ftp.uni-hannover.de "DIRECT";

Müssen Quellen eingebunden werden die im Secure-Proxy keine Freigabe haben, so können diese über den filter-proxy genutzt werden. Hier am Beispiel von dl.gna.org:

// /etc/apt/apt.conf.d/11rrzn-proxy-extra

Acquire::http::Proxy::dl.gna.org "http://filter-proxy.rrzn.uni-hannover.de:3129";

Angabe für die Paketverwaltung bei Redhat Derivaten

Auch bei Redhat-basierten Systemen wie z.B. Scientific-Linux kann für die Paketverwaltung explizit ein Proxy angegeben werden.

# /etc/yum.conf

proxy=http://secure-proxy.rrzn.uni-hannover.de:3131

Die Konfiguration von Repositories über die "mirrorlist" Direktive ist nicht vom Proxy unterstützt, es ist daher notwendig alle benötigten (enabled=1) Repositories mittels baseurl zu konfigurieren.

# /etc/yum.conf.d/X.repo

[X]
enabled=1
baseurl=http://ftp.uni-hannover.de/..

wget

wget kann man Proxy Informationen via Parameter übergeben, unterstützt werden http_proxy, https_proxy sowie ftp_proxy. Permanent können die Parameter in der /etc/wgetrcsowie ~/.wgetrc gesetzt werden, wird aber nicht empfohlen.

wget -e use_proxy=yes -e http_proxy=http://web-proxy.rrzn.uni-hannover.de:3128 www.kernel.org/pub/linux/kernel/README

curl

curl --proxy web-proxy.rrzn.uni-hannover.de www.kernel.org/pub/linux/kernel/README

pip/python

Unter Python/pip ist es leider etwas versionsabhängig ob der Parameter "proxy" respektiert wird, es kann sein, dass nur die Umgebungsvariablen http_proxy&https_proxy verwendet werden.

pip --proxy web-proxy.rrzn.uni-hannover.de install requests

alternativ falls dies nicht funktioniert:

http_proxy=http://web-proxy.rrzn.uni-hannover.de:3128 https_proxy=http://web-proxy.rrzn.uni-hannover.de:3128 pip install requests

Für Python3/pip3 ist das analog umzusetzen.

saltstack

Als Ergänzung zur offiziellen Dokumentation:

PROXY='http://web-proxy.rrzn.uni-hannover.de:3128' curl -o bootstrap-salt.sh -L -x "$PROXY" bootstrap.saltstack.com | sudo sh bootstrap-salt.sh -G -H "$PROXY" git

gem/ruby

gem install --proxy http://web-proxy.rrzn.uni-hannover.de sequenceserver

Alternativ statisch via /etc/gemrc oder ~/.gemrc :

http_proxy: web-proxy.rrzn.uni-hannover.de

rvm/ruby

Ruby/rvm Ergänzend zur offiziellen Dokumentation:

http_proxy=http://web-proxy.rrzn.uni-hannover.de:3128 https_proxy=http://web-proxy.rrzn.uni-hannover.de:3128 curl -sSL get.rvm.io | sudo -E bash -s stable

git

Auch hier hat man die Wahl zwischen peristenten oder temporären Einstellungen.

via ~/.gitconfig
git config --global http.https://github.com.proxy http://web-proxy.rrzn.uni-hannover.de:3128
~/.gitconfig
[http]
[http "https://github.com"]
	proxy = http://web-proxy.rrzn.uni-hannover.de:3128
über das Environment
$ http_proxy=http://web-proxy.rrzn.uni-hannover.de:3128 https_proxy=http://web-proxy.rrzn.uni-hannover.de:3128 git clone https://github.com/the/project
als Argument
$ git -c http.proxy=http://web-proxy.rrzn.uni-hannover.de:3128 clone https://github.com/retspen/webvirtmgr.git webvirtmgr

Teamviewer

Im grafischen Teamviewer-Programm auf Options→General→Network Settings→Proxy Settings (ggf. Netzwerkeinstellungen→Proxy Einstellungen) Im Proxy-Settings-Fenster dann Use manual proxy mit Proxy-IP=130.75.6.113, Port=3128 und ohne User-Name (Benutzername) und ohne Password.

Appliances / Embedded-Geräte

Ricoh MFP Aficio MP C3502

Der http(s)-Zugriff auf das Internet ist nur für die @Remote-Funktionalität, d.h. die Wartungs- und Seitenzähler-Anbindung an Ricoh beim Leasing notwendig. Über die WebGUI

01 ricoh mp c3502

Das Menu befindet sich unter Gerätemanagement→Konfiguration→RC Gate Proxy-Server.

  • Remote Communication Gate Proxy-Server aktivieren

  • Proxy-Adresse secure-proxy.rrzn.uni-hannover.de

  • Anschlussnummer 3131

Zertifikate

Zertifikate dienen bei der Kommunikation zur Identifikation der Gegenseite und zum sicheren Austausch von kryptographischen Schlüsseln zur Absicherung der Kommunikation.

Beantragungen

Serverzertifikat

Serverzertifikat Beantragung Ablauf

Nutzerzertifikat

Nutzerzertifikat Beantragung Ablauf

Postident

Das Postident-Verfahren ermöglicht eine persönliche Identifizierung. Dadurch können Sie ein Nutzerzertifikat erhalten ohne einen Termin zur persönlichen Identifizierung im LUIS machen zu müssen.

Postident Ablauf

Zertifikatshierarchie und RAs

certificate hierarchy

Zertifikat-Signierungsanfrage (CSR) erstellen

Wir verwenden die luh-ca.cnf.

Entpacken der luh-ca.cnf
$ cat <<EOF>/dev/stdout | uudecode --output-file=/dev/stdout | gunzip > /tmp/luh-ca.cnf
begin-base64 600 luh-ca.cnf.gz.uu
H4sICOlk4F8AA2x1aC1jYS5jbmYArVZtb9tGDP5uwP+BaD40xiS5SbeiC6qu
huMuRTMnq1sMyDAEZ4mWbj6dvLuT3eTXjzxJtuW4/TBMQBBLfLkj+fAhT0BV
eZiIKNGLfu8EyhVqa1WYlHohM1hUaCCVCBPziFVW6QxQarSQoHFyIRPhEKzM
tNQZmxv8p0Lr4HQ8+xTAXa20FM4K7YzIBrXDGZo1+6W/a5RzLR/Z9ouW9NVK
J9DBldC6pFcWrDMVQe7cyl4Mh5vNJlKVtFGlZZg3WlGKw+bm980VotwViq3P
X5y9Ojt/+QI0bsAfUOoArq5I9j88/R6fcSX1BqXFC34J6yALzA0abILVokBd
RzKbfgBRwESn6FNwSTmUteFHfAi/WJFRgmUBlEPYoEnJkDJcGknpDODy/TS8
/fgBMjl3sC7N1hLQ14i0K51640K6XKoFcgUtnTSui2odKkVqaWWSnM0BnjXZ
4wJCW/wdMiDk5IVl5cD6cELSi1ZYPGsC5kLzyXyq0BZz+k2nH/iV+sAcQodf
3TNO4p9e5a9+L8WFqJS7n0tnYe+JqZI/vt7Jl/iwkAr35I1vErDvnWaRAnQ9
2Vyc//SKNKR1hFyCU47pPdeo1aDL3D+V9nv8na5MQRGM7L7P9UuGXo2HhVDK
wpJbBW6FtavcCItNN1FqVkauqeoaZkmuCK0WFegSKYeMINSJeVj5CLvX1iWc
gFCO4eTkmqpSpgQVUS3gY1kUQqflI1JO6kvMUcLMGYrAQlFipmSSU2saag4j
l2QfEGKUqOaOtW9J0Ym5wsbkAkbhXQAifAzgRfhzAM9PBz8EYTS8iH/xALtG
xhv5RM32n1+dbS2jKPLwh1lJIG+1AqCSEl1oenOgK/fIltYb3RfCLuEw2mJO
UnZ+XCmGyi1el1o97GfdY72FOmNQeLD/QRDlzFM1kG6fIRVDKQcbadKAranY
TcUoEWgEZwhhNF8Qb+Fedah4ZbFycPAcqc5cuCQ/Xp0G70cgxi3QcVPhnFDT
8aDLlSP4+cxU87/h+XAcX06Gs8/xVCIl3AqqNOrhddzS6PAmbpj2OM0Ob77E
b0ZzIiJFHP92OJ7Gb97/fjl9O8RCSDVKU4KNjd9Mwt/oNRz5V6Yv2/AbfSqk
pmiMcKWxb5/3e0lZEek/TLddtc3UuJaAF53S1Qcd7fumcRvty0lXSucwGRx8
FF/rj4woaq0bc2vKtdQJbs+PqRt4XJUGWll7g07aBkddHFyqY8GnqjIRSron
4cZw3Ujaw9qcD7pG+wfEe/Ov3ytNJqhygmu+7z6Gmz1J6/67dR489daeG8N3
LX2DtdvAB+3hqcLxiFviP7qE09bPoGEsbgNDgwRGOhNzimYczD4H18HNgJYM
6toFcVcAhWdMTa2LNGwyzKhDeLJIfZgtoehgV+esmy2h+E6uSdpEasOsRNi3
y4oZSw2+5WlXpxj4vIQ6s1uXHcxZ0hyxWwOAG2uwb9jBVuP2xCe6021MVQ17
enaVNIB2K1ZNFESatGhsCc2WzIDIs9kx/wNmFPkpj4aR38hqpzTRjGBOpC+O
rrbf9N2YJiyBRtRV7ALYVqtVady7Y7tay4D1yKwZb7Ibqq4Ekab+X2fPbDa7
fm8urEyI4ZltiKwt53p08X50PSOqoKnpVyjPyPoTrqpU+hIGlNGMEKhmtE0J
VxkMiPAfJjqRK4Idpc21jIqJG6kaNzG8IzL21Gzbe28/1Ff3bVEvH+ALTFDl
G3NTntK2NyDEWj+YmrEU+pUPclm3VVX4GeWBQhZSL2lLHE8HHtw8sFyzBkZw
V6W0NZWMd66hhwmdesdT4eDmPIRTYWkmUWC0oGmyZ/1fkaevR9Fu0LG3olny
eTOk0EbVwlQLSzaX01l0RonAr6JYKTyLmh9Py8qa5zvN829p/gvLxeZrdgwA
AA==
====
EOF

Subject Alternate Names

Für zusätzliche Namen im Zertifikat muss die luh-ca.cnf angepasst werden:

cp luh-ca.cnf luh-ca.my

Anschließend die Änderungen einbringen:

luh-ca.my
--- luh-ca.cnf
+++ luh-ca.my
@@ -71,7 +71,7 @@
 # Extensions to add to a certificate request
 basicConstraints = CA:FALSE
 keyUsage = nonRepudiation, digitalSignature, keyEncipherment
-# subjectAltName = @alt_names
+subjectAltName = @alt_names


 [ alt_names ]
@@ -79,5 +79,6 @@
 # um alle Namen (inkl. CN) angepasst werden. Zudem oben bei
 # der Zeile subjectAltName... das # entfernen.
 # Geht nicht interaktiv beim Erzeugen des Aufrufs.
-DNS.1 = example1.example.uni-hannover.de
-DNS.2 = example2.example.uni-hannover.de
\ No newline at end of file
+DNS.1 = cluster2020.ifzb.uni-hannover.de
+DNS.2 = cluster2022.ifzb.uni-hannover.de
+DNS.2 = cluster2019.ifzb.uni-hannover.de

Erstellen des CSR

$ openssl req -config luh-ca.cnf -newkey rsa:4096 -keyout server-key.pem -out server-req.pem

Generating a RSA private key
.................................................................++++
......................................................................................................................................................................++++
writing new private key to 'server-key.pem'
Enter PEM pass phrase:
Verifying - Enter PEM pass phrase:
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (=DE) [DE]:
State or Province Name (=Niedersachsen) [Niedersachsen]:
Locality Name (=Hannover) [Hannover]:
Organization Name (=Leibniz Universitaet Hannover) [Leibniz Universitaet Hannover]:
Organizational Unit Name (Einrichtungskuerzel) []:LUIS
Common Name (Servername FQDN) []:cluster2021.ifzb.uni-hannover.de
Email Address [support@luis.uni-hannover.de]:

Überprüfen eines CSRs

$ openssl req -text -noout -verify -in server-req.pem -inform PEM
verify OK
Certificate Request:
    Data:
        Version: 1 (0x0)
        Subject: C = DE, ST = Niedersachsen, L = Hannover, O = Leibniz Universitaet Hannover, OU = LUIS, CN = cluster2021.ifzb.uni-hannover.de, emailAddress = support@luis.uni-hannover.de
        Subject Public Key Info:
            Public Key Algorithm: rsaEncryption
                RSA Public-Key: (4096 bit)
                Modulus:
                    00:bf:25:ba:32:98:56:32:7d:bd:20:4e:2e:f1:83:
…
                    00:85:a1
                Exponent: 65537 (0x10001)
        Attributes:
        Requested Extensions:
            X509v3 Basic Constraints:
                CA:FALSE
            X509v3 Key Usage:
                Digital Signature, Non Repudiation, Key Encipherment
            X509v3 Subject Alternative Name:
                DNS:cluster2020.ifzb.uni-hannover.de, DNS:cluster2022.ifzb.uni-hannover.de, DNS:cluster2019.ifzb.uni-hannover.de
    Signature Algorithm: sha256WithRSAEncryption
         73:09:37:d6:ff:1d:3c:95:3a:cd:ea:8d:a1:fb:16:42:15:32:
…
         37:e3:ae:68:f5:6c:21:2e:7a:d6:da:34:07:3d:6d:ce:10:9a:

Zertifikatskonvertierungen

Dateiendungen bei Zertifikaten sind nicht vorgegeben und spezifizieren nur die Kodierung. Ob es sich dabei um ein Zertifikat, eine Zertifikatsanfrage, oder ein Schlüssel handelt, muss man über den Dateinamen zu erkennen geben.

Table 4. Datei Endungen
Endung Inhalt Beispiel

.pem

BASE64 der ASN.1 DER Repräsentation

cat server-req.pem
-----BEGIN CERTIFICATE REQUEST-----
MIIFqzCCA5MCAQAwgccxCzAJBgNVBAYTAkRFMRYwFAYDVQQIEw1OaWVkZXJzYWNo
…

.der .crt

binäre ASN.1 Repräsentation

hexdump -C server-req.der
00000000  30 82 05 ab 30 82 03 93  02 01 00 30 81 c7 31 0b  |0...0......0..1.|
00000010  30 09 06 03 55 04 06 13  02 44 45 31 16 30 14 06  |0...U....DE1.0..|
00000020  03 55 04 08 13 0d 4e 69  65 64 65 72 73 61 63 68  |.U....Niedersach|
00000030  73 65 6e 31 11 30 0f 06  03 55 04 07 13 08 48 61  |sen1.0...U....Ha|
00000040  6e 6e 6f 76 65 72 31 26  30 24 06 03 55 04 0a 13  |nnover1&0$..U...|
00000050  1d 4c 65 69 62 6e 69 7a  20 55 6e 69 76 65 72 73  |.Leibniz Univers|

.p12 , .pkcs12

PKCS12 Container

DER / CRT

Zertifikate
$ openssl x509 -in server-cert.der -inform DER -out server-cert.pem -outform PEM
RSA Schlüssel
$ openssl rsa -in server-key.der -inform DER -out server-key.pem -outform PEM

PEM

Zertifikate
$ openssl x509 -in server-cert.der -inform PEM -out server-cert.pem -outform DER
RSA Schlüssel
$ openssl rsa -in server-key.der -inform PEM -out server-key.pem -outform DER

PKCS12

PKCS12 ist ein Containerformat welches Zertifikate und Schlüssel beinhalten kann. Zum Trennen in die Bestandteile:

Client Zertifikat extrahieren
$ openssl pkcs12 -clcerts -nokeys -in test-client1-ca-2019.p12 -out test-client1-ca-2019-cert.pem
Enter Import Password:

$ head -n 8 tests/conf/test-client1-ca-2019-cert.pem
Bag Attributes
    localKeyID: 55 84 55 EC 44 16 9E B8 05 AE 9B EB C7 BB 55 D5 B2 AC A6 C1
subject=C = DE, O = Testinstallation Eins CA, CN = PN: Teilnehmerservice Test RAID 60

issuer=C = DE, O = Test, CN = Test Client 1 Issuing CA

-----BEGIN CERTIFICATE-----
MIIFJjCCBA6gAwIBAgIMIX3zIme/leh2t+pTMA0GCSqGSIb3DQEBCwUAMD8xCzAJ
Zertifikatskette extrahieren
$ openssl pkcs12 -cacerts -nokeys -in test-client1-ca-2019.p12 -out test-client1-ca-2019-chain.pem
Enter Import Password:

$ grep "subject" tests/conf/test-client1-ca-2019-chain.pem
subject=C = DE, O = Test, CN = Test Client 1 Issuing CA
subject=C = DE, O = Test, CN = Test Intermediate CA
subject=C = DE, O = Test, CN = Test Root CA
Schlüssel extrahieren
$ openssl pkcs12 -nocerts -in test-client1-ca-2019.p12 -out test-client1-ca-2019-key.peme
Enter Import Password:
Enter PEM pass phrase:
Verifying - Enter PEM pass phrase:


$ head -n 5 test-client1-ca-2019-key.peme
Bag Attributes
    localKeyID: 55 84 55 EC 44 16 9E B8 05 AE 9B EB C7 BB 55 D5 B2 AC A6 C1
Key Attributes: <No Attributes>
-----BEGIN ENCRYPTED PRIVATE KEY-----
MIIFHDBOBgkqhkiG9w0BBQ0wQTApBgkqhkiG9w0BBQwwHAQIFa7SsLOW2rMCAggA

Der Schlüssel ist mit einem Kennwort geschützt, welches in einem zusätzlichen Schritt entfernt werden kann.

RSA

Schlüssel Kennwortschutz entfernen
$ openssl rsa -in test-client1-ca-2019-key.peme -out test-client1-ca-2019-key.pem
Enter pass phrase for test-client1-ca-2019-key.peme:
writing RSA key


$ head -n 2 tests/conf/test-client1-ca-2019-key.pem
-----BEGIN RSA PRIVATE KEY-----
MIIEowIBAAKCAQEAzchh+cIkhmx9cQHg+CcqKPo6/8OYi7wmL+japhJQ6CKtZCcO

X.509

Zertifikatsinformationen anzeigen
$ openssl x509 -in server-cert.pem -inform PEM -text
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number:
            23:3e:03:59:e4:c7:55:e7:28:59:42:2b
        Signature Algorithm: sha256WithRSAEncryption
        Issuer: C = DE, O = Verein zur Foerderung eines Deutschen Forschungsnetzes e. V., OU = DFN-PKI, CN = DFN-Verein Global Issuing CA
        Validity
            Not Before: Jul 27 07:44:11 2020 GMT
            Not After : Oct 29 07:44:11 2022 GMT
        Subject: C = DE, ST = Niedersachsen, L = Hannover, O = Leibniz Universitaet Hannover, OU = Leibniz Universitaet Hannover IT Services, CN = www.luis.uni-hannover.de
        Subject Public Key Info:
            Public Key Algorithm: rsaEncryption
                RSA Public-Key: (2048 bit)
                Modulus:
                    00:ce:e3:a1:c4:f1:e5:71:02:6a:3e:15:5b:2b:c3:
…
                    24:23
                Exponent: 65537 (0x10001)
        X509v3 extensions:
            X509v3 Certificate Policies:
                Policy: 2.23.140.1.2.2
                Policy: 1.3.6.1.4.1.22177.300.30
                Policy: 1.3.6.1.4.1.22177.300.1.1.4
                Policy: 1.3.6.1.4.1.22177.300.1.1.4.7
                Policy: 1.3.6.1.4.1.22177.300.2.1.4.7

            X509v3 Basic Constraints:
                CA:FALSE
            X509v3 Key Usage: critical
                Digital Signature, Key Encipherment
            X509v3 Extended Key Usage:
                TLS Web Server Authentication
            X509v3 Subject Key Identifier:
                AF:7E:23:0B:1B:8F:BC:95:B9:15:50:7F:23:78:9F:F0:00:6C:9B:7F
            X509v3 Authority Key Identifier:
                keyid:6B:3A:98:8B:F9:F2:53:89:DA:E0:AD:B2:32:1E:09:1F:E8:AA:3B:74

            X509v3 Subject Alternative Name:
                DNS:www.luis.uni-hannover.de, DNS:luis.uni-hannover.de, DNS:www.rrzn.uni-hannover.de, DNS:rrzn.uni-hannover.de, DNS:www.rrzn-handbuecher.de, DNS:rrzn-handbuecher.de
            X509v3 CRL Distribution Points:

                Full Name:
                  URI:http://cdp1.pca.dfn.de/dfn-ca-global-g2/pub/crl/cacrl.crl

                Full Name:
                  URI:http://cdp2.pca.dfn.de/dfn-ca-global-g2/pub/crl/cacrl.crl

            Authority Information Access:
                OCSP - URI:http://ocsp.pca.dfn.de/OCSP-Server/OCSP
                CA Issuers - URI:http://cdp1.pca.dfn.de/dfn-ca-global-g2/pub/cacert/cacert.crt
                CA Issuers - URI:http://cdp2.pca.dfn.de/dfn-ca-global-g2/pub/cacert/cacert.crt

            CT Precertificate SCTs:
                Signed Certificate Timestamp:
                    Version   : v1 (0x0)
                    Log ID    : 46:A5:55:EB:75:FA:91:20:30:B5:A2:89:69:F4:F3:7D:
                                11:2C:41:74:BE:FD:49:B8:85:AB:F2:FC:70:FE:6D:47
                    Timestamp : Jul 27 07:44:14.364 2020 GMT
                    Extensions: none
                    Signature : ecdsa-with-SHA256
                                30:46:02:21:00:8E:8B:B7:1B:06:72:82:92:5E:6E:8C:
                                98:18:3E:F2:28:6D:9F:84:68:95:2E:AF:BD:EB:AE:1E:
                                A1:07:28:20:C1:02:21:00:AB:88:B3:F4:3A:84:F5:45:
                                AA:23:A4:20:D4:9A:3C:13:BE:13:A7:AC:39:13:46:E5:
                                65:BA:E0:31:88:03:6C:E4
…
    Signature Algorithm: sha256WithRSAEncryption
         74:f5:68:24:28:a6:67:86:b6:52:b1:4d:f4:15:ca:8f:33:e7:
…
         24:ab:8a:ab
-----BEGIN CERTIFICATE-----

Dienste-Konfiguration

Bereitstellen der Notwendigkeiten
$ mkdir /etc/ssl/my
$ cd /etc/ssl/my
$ wget -O dfnglobal2-chain.pem https://appconf.rrzn.uni-hannover.de/conf/pki/pem/dfnglobal2-chain.pem
$ cp /root/x509/server-key.pem server-key.pem
$ cp /tmp/cert-….pem server-cert.pem

Apache2 - Direktiven

  SSLCertificateFile /etc/ssl/my/dfnglobal2-chain.pem
  SSLCertificateFile /etc/ssl/my/server-cert.pem
  SSLCertificateKeyFile /etc/ssl/my/server-key.pem

SSLCertificateChainFile muss nicht mehr verwendet werden.
Für weitere Informationen zur Konfiguration bettercrypto.org Apache Webserver

Andere Dienste

bettercrypto.org bietet Konfigurationsbeispiele für eine Vielzahl unterschiedlicher Dienste.

Smartcards

Smartcards kommen derzeit in folgenden Fällen zur Anwendung:

  • zur Speicherung von Zertifikaten der RA

  • zur Nutzerauthentifizierung und Verschlüsselung bei SAP

  • im Zusammenhang mit dem Verkauf von eBooks bei den RRZN-Handbüchern

Es werden Smartcard-HSM Karten verwendet.

Smartcards unter Windows mit OpenSC

Die Installation der notwendigen Treiber und Registry Schlüssel ist hier dokumentiert.

Smartcards unter Linux mit OpenSC

Generell wird die verwendete Smartcard-HSM von OpenSC seit 0.14 unterstützt.

Pfade
  • /usr/lib/x86_64-linux-gnu/opensc-pkcs11.so

  • /usr/lib/i386-linux-gnu/opensc-pkcs11.so

Änderungen an der /etc/opensc/opensc.conf
enable_pinpad = false;

Zur Vermeidung von Problemen bei Class-2 & Class-3 Kartenlesegeräten kann es notwendig sein das PinPad abzuschalten.

Anbindung an …

Der Pfad zur OpenSC PKCS11 DLL muss bekannt sein. Unterschiedliche Versionen von OpenSC haben unterschiedliche Pfade, eine Auswahl:name: value

  • Windows 64-Bit mit OpenSC ab Version 0.18:

    • 32-Bit-PKCS#11: C:\Programme (x86)\OpenSC Project\OpenSC\pkcs11\opensc-pkcs11.dll

    • 64-Bit-PKCS#11: C:\Programme\OpenSC Project\OpenSC\pkcs11\opensc-pkcs11.dll

  • Linux

    • 64-Bit-PKCS#11: /usr/lib/x86_64-linux-gnu/opensc-pkcs11.so

Edge/Internet Explorer

Der Internet-Explorer verwendet für die Behandlung von Zertifikaten den in Windows eingebauten Zertifikats-Speicher. Mit den für die Smartcard installierten Windows-Treibern ist die Karte daher im Internet-Explorer sofort verwendbar.

Mozilla / Firefox
01 firefox pkcs11
Figure 1. Navigation zur Konfiguration der Kryptographie Module

Über Einstellungen suchen wir nach "Kryptographie-Module"

02 firefox opensc pkcs11
Figure 2. Laden des OpenSC PKCS11 Moduls

Den Pfad /usr/lib/x86_64-linux-gnu/opensc-pkcs11.so an die Umgebung anpassen.

03 firefox eingerichtet
Figure 3. Erfolgreiche Einrichtung

Nach der erfolgreichen Einrichtung zeigt einem Firefox hier den erkannten Kartenleser und Details der gesteckten Karte an.

Chromium

Können wir nicht supporten, dokumentiert sind die folgenden Schritte:

sudo apt-get install libnss3-tools
modutil -dbdir ~/.pki/nssdb/ -add "OpenSC" -libfile /usr/lib/x86_64-linux-gnu/opensc-pkcs11.so

Debugging

Windows
certutil -scinfo
Linux
Listen der Kartenleser
$ pkcs11-tool -L
Available slots:
Slot 0 (0x0): Dell Dell Smart Card Reader Keyboard 00 00
  token label        : Test Client1 CA (User PIN)
  token manufacturer : EnterSafe
  token model        : PKCS#15
  token flags        : login required, PIN pad present, rng, token initialized, PIN initialized
  hardware version   : 0.0
  firmware version   : 0.0
  serial num         : 1318492715250219
  pin min/max        : 4/16
Auflisten der Objekte nach einem Login
pkcs11-tool --list-objects --login
Using slot 0 with a present token (0x0)
****
Private Key Object; RSA
  label:      PN: Teilnehmerservice Test RAID 60
  ID:         2649a19d5d6a216913c5a0c8bb9f97229dec99ab
  Usage:      sign, non-repudiation, unwrap
  Access:     sensitive, always sensitive, never extractable
Certificate Object; type = X.509 cert
  label:      PN: Teilnehmerservice Test RAID 60
  subject:    DN: C=DE, O=Testinstallation Eins CA, CN=PN: Teilnehmerservice Test RAID 60
  ID:         2649a19d5d6a216913c5a0c8bb9f97229dec99ab
Public Key Object; RSA 2048 bits
  label:      PN: Teilnehmerservice Test RAID 60
  ID:         2649a19d5d6a216913c5a0c8bb9f97229dec99ab
  Usage:      encrypt, verify
  Access:     local

Fehler & Korrekturen

Fehler können einfach gemeldet werden: https://gitlab.uni-hannover.de/luis/anleitung/-/issues

Verbesserungsvorschläge einreichen

Falls Sie einen Korrekturvorschlag einreichen wollen, können Sie das einfach über die GitLab-Infrastruktur mittels eines Merge Requests machen. Falls während der folgenden Schritt-für-Schritt-Anleitung Fragen entstehen, können Sie diese gern an security@luis.uni-hannover.de stellen.

00 login
Figure 4. Login
01 fork
Figure 5. Fork des Repositories

Das gabelähnliche Symbol oben rechts anklicken.

02 fork
Figure 6. Fork Ziel angeben

Angeben, wo der Fork des Projektes erstellt werden soll.

mit einem lokalem clone

clonen
$ git clone git@gitlab.uni-hannover.de:luis/anleitung.git
die Upstream Quelle definieren
$ cd anleitung
$ git remote add upstream https://gitlab.uni-hannover.de/luis/anleitung.git
rechtzeitig branchen oder später stashen
$ git checkout -b korrekturen

Ist der master branch aktuell und gewählt, hat man alles richtig gemacht.

$ git stash
$ git checkout master
$ git pull upstream master
$ git checkout -b korrekturen
$ git stash pop
$ meld .

Ansonsten die gemachten Änderungen erst stashen, den master branch aktualisieren, einen branch erstellen, den stash wieder zurückspielen und anschließend die merge Konflikte mit Meld beheben.

ändern & comitten
$ …
$ git gui
pushen
$ git push origin korrekturen

Enumerating objects: 109, done.
Counting objects: 100% (109/109), done.
Delta compression using up to 8 threads
Compressing objects: 100% (72/72), done.
Writing objects: 100% (99/99), 1.38 MiB | 58.70 MiB/s, done.
Total 99 (delta 27), reused 99 (delta 27)
remote:
remote: To create a merge request for korrekturen, visit:
remote:   https://gitlab.uni-hannover.de/koetter/anleitung/-/merge_requests/new?merge_request%5Bsource_branch%5D=korrekturen
remote:
To gitlab.uni-hannover.de:koetter/anleitung.git
 * [new branch]      korrekturen -> korrekturen

Anschließend kann der Merge Request durch besuchen der verlinkten Seite gestellt werden.

mit der Web IDE

03 fork
Figure 7. Fork erfolgreich, Klicken auf Web IDE

Nach dem erfolgreichen Fork wird man auf die eigene Projektseite des Forks weitergeleitet. Dort klicken wir auf Web IDE.

04 createdir
Figure 8. Web IDE - der Online Editor

Über den Online-Editor erstellen wir nun ein neues Verzeichnis und fügen dort Bilder und den Anleitungstext ein.

05 createdir
Figure 9. Verzeichnisnamen auswählen
06 a upload
Figure 10. Dateien hochladen
06 upload
Figure 11. Auswahl lokaler Dateien
07 createfile
Figure 12. Datei erstellen
08 createfile
Figure 13. Dateinamen vergeben
09 commit
Figure 14. commit

Da das Web IDE bei neuen Dateien nach Eingabe von Umlauten problematisch wird, committen. Wir erstellen dazu einen extra branch.

10 mergereq
Figure 15. Merge Request stellen

Da es unvollständig ist, stellen wir dem Merge Request "WIP" vorran.

11 mergereq
Figure 16. Weiter …

Wir gehen zurück zu unserem Branch, auf die Web IDE, vervollständigen unsere Änderungen und committen.

12 review
Figure 17. Review

Wir navigieren in unserem Branch zu dem neu erstellten oder veränderten Inhalt zur Überprüfung. Die HTML Darstellung weicht von der PDF Ausgabe ab.

13 back
Figure 18. Zurück zur Projektseite
14 mergereqs
Figure 19. Auswahl Merge Requests
15 mergereqs
Figure 20. Mein Merge Request
16 ready
Figure 21. Fertig

Den Merge Request "Mark as Ready" zum mergen bereitstellen.