StuRa:Server/srs1337: Unterschied zwischen den Versionen

Aus Wiki StuRa HTW Dresden
Zur Navigation springen Zur Suche springen
K (Änderung 34470 von PaulRiegel (Diskussion) rückgängig gemacht.)
(→‎Administration per http: danke user:FrankHebold; mediwiki ist doof!)
Zeile 142: Zeile 142:


; bestimmte (betreffende) Verbindungen an einen bestimmten Port per ssh mit einem eigenen ssh-key herstellen und an einen bestimmten Port an localhost knüpfen:
; bestimmte (betreffende) Verbindungen an einen bestimmten Port per ssh mit einem eigenen ssh-key herstellen und an einen bestimmten Port an localhost knüpfen:
: <code>ssh -p ''$port-for-ssh-on-server'' -L 10012:192.168.100.12:80 -L 10112:192.168.100.112:443 -L 10212:192.168.100.212:80 -i ''~/.ssh/$id_srs1337'' root@''$host''</code>
: <code>ssh -p ''<port-for-ssh-on-server>'' -L 10012:192.168.100.12:80 -L 10112:192.168.100.112:443 -L 10212:192.168.100.212:80 -i ''~/.ssh/<id_srs1337>'' root@''<host>''</code>
:* http://localhost:10012
:* http://localhost:10012
:* https://localhost:10112
:* https://localhost:10112
:* http://localhost:10212
:* http://localhost:10212
; per ''~/.ssh/config'' automatisiert bei jeder Verbindung (ssh srs1337)
    Host srs1337
        HostName ''<host>''
        Port    ''<port>''
        User    root
        IdentityFile ''~/.ssh/<id_srs1337>''
        LocalForwarding 10012 192.168.100.012:80
        LocalForwarding 10112 192.168.100.112:443
        LocalForwarding 10212 192.168.100.212:80


; einen (dynamische) Verbindung an einen bestimmten Port per ssh mit einem eigenen ssh-key herstellen und an einen lokalen Socket knüpfen:
; einen (dynamische) Verbindung an einen bestimmten Port per ssh mit einem eigenen ssh-key herstellen und an einen lokalen Socket knüpfen:
: <code>ssh -D ''$port-for-local-socket'' -p ''$port-for-ssh-on-server'' -i ''.ssh/$id_srs1337'' root@''$host''</code>
: <code>ssh -D ''<port-for-local-socket>'' -p ''<port-for-ssh-on-server>'' -i ''.ssh/<id_srs1337>'' root@''<host>''</code>
:* ''$port-for-local-socket'' ist die (nahezu) frei wählbare Nummer für einen Port, der für einen Socket auf der lokale Maschine (von der sich auf den [[Server/srs1337]] verbunden wird) für das Adressieren zum Eingang der Verbindung dienen soll.
:* ''port-for-local-socket'' ist die (nahezu) frei wählbare Nummer für einen Port, der für einen Socket auf der lokale Maschine (von der sich auf den [[Server/srs1337]] verbunden wird) für das Adressieren zum Eingang der Verbindung dienen soll.
:*: Verbindung per ssh wird mit [[wikipedia:de:SOCKS]] als Proxy verwendet.
:*: Verbindung per ssh wird mit [[wikipedia:de:SOCKS]] als Proxy verwendet.
:* ''$port-for-ssh-on-server'' ist die Nummer vom Port, der beim [[Server/srs1337]] für ssh festgelegt wurde. Standardmäßig ist das Port 22.<!-- Der standardmäßig sollte "auch ausreichend sein". -->
:* ''port-for-ssh-on-server'' ist die Nummer vom Port, der beim [[Server/srs1337]] für ssh festgelegt wurde. Standardmäßig ist das Port 22.<!-- Der standardmäßig sollte "auch ausreichend sein". -->
:*: Wer ohnehin drauf ist, kann sich <code>grep Port /etc/sshd_config</code> kann sich die Konfiguration anschauen.
:*: Wer ohnehin drauf ist, kann sich <code>grep Port /etc/sshd_config</code> kann sich die Konfiguration anschauen.
:* ''.ssh/$id_srs1337'' ist der (nahezu) frei gewählte Ort der eigenen Datei mit dem ssh-key, dessen öffentlicher key auf dem [[Server/srs1337]] abgelegt wurde.
:* ''.ssh/id_srs1337'' ist der (nahezu) frei gewählte Ort der eigenen Datei mit dem ssh-key, dessen öffentlicher key auf dem [[Server/srs1337]] abgelegt wurde.
:* ''$host'' ist die Adresse für IPv4 oder der hostname für den es einen entsprechenden Eintrag für DNS gibt.
:* ''host'' ist die Adresse für IPv4 oder der hostname für den es einen entsprechenden Eintrag für DNS gibt.
 
; per ''~/.ssh/config'' automatisiert bei jeder Verbindung (ssh srs1337)
    Host srs1337
        HostName ''<host>''
        Port    ''<port>''
        User    root
        IdentityFile ''~/.ssh/<id_srs1337>''
        DynamicForwarding ''<port-for-local-socket>''
 
; web browser zum Nutzen der Verbindung mit dem lokal verknüpften Socket als Proxy per SOCKS anpassen
; web browser zum Nutzen der Verbindung mit dem lokal verknüpften Socket als Proxy per SOCKS anpassen
: Beispiel Mozilla Firefox
: Beispiel Mozilla Firefox

Version vom 5. August 2015, 04:05 Uhr

srs1337 ist die Bezeichnung für das System auf dem Server dicke Berta.

Betriebssystem

FreeNAS 9.3

Die Entscheidung für FreeNAS als Betriebssystem fiel bei der Intern:Server/Aktualisierung/2015.

Im Übrigen war eigentlich FreeBSD i. V. m. bhyve vorgesehen. Es fehlte die Unterstützung von grub2-bhyve für die Hardware vom Server dicke Berta. freebsd-port:grub2-bhyve wäre aber notwendig für den Betrieb von Debian unter bhyve gewesen. Die Möglichkeit zum (ergänzenden) Betrieb von Debian (oder anderen verbreiteten Linux für Server) war eine der eigenen Anforderungen.

Installation von FreeNAS

Vorbereitung der Installation von FreeNAS

sonst übliche Vorbereitung der Installation von FreeNAS

Die (Vorbereitung der) Installation von FreeNAS[1] erfolgt eigentlich schlichtweg durch

  • das [2]Beziehen von einer iso-Datei, welche schon als startfähig vorbereitet ist,
  • das [3]Erstellen von einem Startmedium mit der iso-Datei und
  • das Starten von dem Startmedium auf der Maschine, wo FreeNAS betrieben werden soll.
besondere Vorbereitung der Installation von FreeNAS
besondere Bedingungen für die Installation von FreeNAS bei Server/srs1337

FreeNAS muss, entgegen des üblichen Prozedere, auf der Festplatte betrieben werden. Mangels des Zugriffes auf BIOS (Das Passwort für das BIOS von Server/dicke Berta ist nicht bekannt.) ist keine Setzen der bevorzugten Priorität (etwa für einen USB-Stick, wovon FreeNAS betrieben werden würde) möglich.

Auch ist das Betreiben des Betriebssystems auf einem USB-Stick "bescheiden". Die Haltbarkeit von einem USB-Stick für eine solche Verwendung erscheint nicht gut. Eine Ausfallsicherung, etwa durch Redundanz auf einem weiteren USB-Stick, erscheint nur bedingt sinnvoll.

In Anbetracht der fehlenden Möglichkeit von einem Neustart von Server/dicke Berta mit der Priorität (festgelegt durch das BIOS) auf einen USB-Stick ist dies gar ausgeschlossen.

Ein Teil von allen Festplatten soll zum Betreiben und als Spiegel für das Betriebssystem genutzt werden. Das Prozedere beim Installieren von FreeNAS sieht aber vor ein gesamtes Gerät (Speichermedium) zu verwenden. In Anbetracht von 3 Festplatten zu je 500 GB erscheint das Verwenden einer gesamten Festplatte für das Betriebssystem unangemessen. Insbesondere gilt das beim Wunsch zum Spiegeln auf mindestens eine andere Gerät.

besondere Erstellung eines Startmediums für die Installation von FreeNAS bei Server/srs1337

16 GB sollen für FreeNAS als Speicherplatz bereitgestellt werden.

Auf jede der 3 Festplatten sollen Speicherplatz für das Betreiben von FreeNAS mit geringer Ausfallsicherheit bereitgestellt werden.

Demnach wurde sich eine selbst passende iso-Datei erstellt.

  • Zentral wurde dabei eigentlich nur die install.sh[4] modifiziert.

Durchführung der Installation von FreeNAS

2015-03-12 22:31

First Boot
  • SWAP hinzufügen
    gpart add -t freebsd-swap -i 3 -s 8g da0
    gpart add -t freebsd-swap -i 3 -s 8g da1
    gpart add -t freebsd-swap -i 3 -s 8g da2
  • ZFS Partitionen für Daten erstellen (Rest der Festplatten)
    gpart add -t freebsd-zfs -i 4 -a 4k da0
    gpart add -t freebsd-zfs -i 4 -a 4k da1
    gpart add -t freebsd-zfs -i 4 -a 4k da2
  • Systemupdate
  • Reboot
FreeNAS Einstellungen
  • System/Informationen
    Enable powerd (Power Saving Daemon):
    Show console messages in the footer:
    MOTD banner: StuRa DickeBerta
  • Root CA und CA erstellt
  • Zpool für Daten erstellen
    zpool create zroot raidz /dev/da0p4 /dev/da1p4 /dev/da2p4
    zfs set checksum=sha256 zroot
    zfs set compression=lz4 zroot
    zfs create -o checksum=sha256 -o compression=lz4 -o mountpoint=/zroot/jails zroot/jails
  • zpool struktur
    • nicht zfs create -o checksum=sha256 -o compression=lz4 -o mountpoint=/mnt freebsd-boot/mnt
  • zpool export
    zpool export zroot
  • per GUI jetzt importieren
    Storage -> Import Volume
  • Smartmontools Hack
    $EDITOR /usr/local/etc/smartd.conf
DEVICESCAN
  • Logfiles umlinken
    System -> Systemdatasets -> zroot/ für Syslog/Database
  • SSH auf FreeNAS
    • ssh logon
    chmod 0700 /root/.ssh
    $EDITOR /root/.ssh/authorized_keys
    • keys einfügen
    chmod 0600 /root/.ssh/authorized_keys
    (per Web GUI) Services -> SSH -> Einstellung
    Advanced Mode
    Feld Extra options
PubkeyAuthentication yes
    • SSH Neustarten

Anpassungen nach der Installation von FreeNAS

/etc/sysctl.conf
# SysV Interprozesskommunikation
security.jail.sysvipc_allowed=1

Dokumentation FreeNAS

http://doc.freenas.org/9.3/

Administration

Administration per http

Viele Dienste zur Administration sind per http bzw. https verfügbar. Zum Schutz vor unerlaubten Zugriff sollen die Dienst nicht einfach erreichbar sein.

Dienste zur #Andministration per http
Dienst interne Adresse Zugangsdaten
dicke Berta#Integrated Management Module 192.168.100.12 ?!?
#Administration FreeNAS 192.168.100.112 ?!?
Server/srs1337/VirtualBox 192.168.100.212 ?!?

Zum Erreichen der privaten Adressen für IPv4 (192.168.….…) muss eine entsprechende Verbindung zum Server/srs1337 hergestellt sein.

bestimmte (betreffende) Verbindungen an einen bestimmten Port per ssh mit einem eigenen ssh-key herstellen und an einen bestimmten Port an localhost knüpfen
ssh -p <port-for-ssh-on-server> -L 10012:192.168.100.12:80 -L 10112:192.168.100.112:443 -L 10212:192.168.100.212:80 -i ~/.ssh/<id_srs1337> root@<host>
per ~/.ssh/config automatisiert bei jeder Verbindung (ssh srs1337)
   Host srs1337
       HostName <host>
       Port     <port>
       User     root
       IdentityFile ~/.ssh/<id_srs1337>
       LocalForwarding 10012 192.168.100.012:80
       LocalForwarding 10112 192.168.100.112:443
       LocalForwarding 10212 192.168.100.212:80
einen (dynamische) Verbindung an einen bestimmten Port per ssh mit einem eigenen ssh-key herstellen und an einen lokalen Socket knüpfen
ssh -D <port-for-local-socket> -p <port-for-ssh-on-server> -i .ssh/<id_srs1337> root@<host>
  • port-for-local-socket ist die (nahezu) frei wählbare Nummer für einen Port, der für einen Socket auf der lokale Maschine (von der sich auf den Server/srs1337 verbunden wird) für das Adressieren zum Eingang der Verbindung dienen soll.
    Verbindung per ssh wird mit wikipedia:de:SOCKS als Proxy verwendet.
  • port-for-ssh-on-server ist die Nummer vom Port, der beim Server/srs1337 für ssh festgelegt wurde. Standardmäßig ist das Port 22.
    Wer ohnehin drauf ist, kann sich grep Port /etc/sshd_config kann sich die Konfiguration anschauen.
  • .ssh/id_srs1337 ist der (nahezu) frei gewählte Ort der eigenen Datei mit dem ssh-key, dessen öffentlicher key auf dem Server/srs1337 abgelegt wurde.
  • host ist die Adresse für IPv4 oder der hostname für den es einen entsprechenden Eintrag für DNS gibt.
per ~/.ssh/config automatisiert bei jeder Verbindung (ssh srs1337)
   Host srs1337
       HostName <host>
       Port     <port>
       User     root
       IdentityFile ~/.ssh/<id_srs1337>
       DynamicForwarding <port-for-local-socket>
web browser zum Nutzen der Verbindung mit dem lokal verknüpften Socket als Proxy per SOCKS anpassen
Beispiel Mozilla Firefox
  • Bei der Verbindungseinstellungenenglish Anpassungen vornehmen.
    • Manuelle Proxy-Konfiguration: auswählen
      • bei SOCKS-Host: localhost eintragen; auf der gleichen Zeile bei Port: die Nummer von $port-for-local-socket eintragen
    • OK bestätigen

Administration FreeNAS

Aktualisierung

Es sollten der Prozess des Aktualisierens immer nach folgender Reihenfolge erfolgen:

  • Zuerst sollten die mit virtuellen Maschinen gestoppt (gern auch noch vorher aktualisiert) werden.
  • Dann sollten die Jails gestoppt (gern auch noch vorher aktualisiert) werden.
  • Letztlich sollte der Host (hier Server/srs1337) aktualisiert und entsprechende (der Notwendigkeit) neu gestartet werden.
Aktualisierung Jails
Jail mit VirtualBox Jail für ein plugin von FreeNAS standardmäßige Jail
Debian als virtuelle Maschine
Anmelden

Verbinden per ssh

ssh -p $port-for-ssh-on-server -i ~/.ssh/$id_srs$ root@$host
("optional") prüfend umschauen

spuckt kernel fehler (aka kernelmonitoring)

dmesg

schauen, ob irgendwelche dienste, die laufen sollten nicht mehr laufen

systemctl --stat=failed
0 loaded units listed. Pass --all to see loaded but inactive units, too.
To show all installed unit files use 'systemctl list-unit-files'.

zum live-debugging:

journalctl -f

alte schule (statt journalctl)

cat /var/log/syslogc
Aktualisieren
apt-get update
apt-get upgrade
apt-get dist-upgrade
apt-get autoremove
Herunterfahren
poweroff

oder

shutdown -h now
VirtualBox

Kontrolle des Zustandes (power off) bei VirtualBox

http://localhost:10212/
Stoppen der Jail von VirtualBox
https://localhost:10112/
Jails -> stop
  • Jails als pluginjail nach updates prüfen
    Plugin ->
  • Stoppen der Jails als pluginjail
    Jails -> stop
weitere ("standard") Jails nach Aktualisierungen prüfen und auf den aktuellen Stand bringen
prüfen, ob es wichtige (sicherheitsrelevante) Aktualisierungen gibt
davon kann abhängig gemacht werden, ob es wichtig ist zu aktualisieren
pkg audit -F
mindestens bei wichtigen Aktualisierungen sollte die Aktualisierungen vorgenommen werden
pkg update
pkg upgrade
bei Jails mit Datenbanken mit SQL (nicht SQL-Lite)
Anmelden
Verbinden per ssh
ssh
service mysql-server stop
Stoppen der standardmäßige Jails
https://localhost:10112/
Jails -> stop
Aktualisierung FreeNAS

System -> Update -> Update

Neustart erfolgt automatisch nach dem Aktualisieren

nach der Aktualisierung

ISPConfig

  • Schauen, ob aktuell log files geschrieben werden
    z.B. bei Überwachung -> iptables schauen
    • Nicht verwundert sein, dass nur alle 5 Minuten neue Daten bereitgestellt werden.
    Überwachung (-> Übersicht zeigen) -> mehr Infos
    • Nicht verwundert sein, dass hinsichtlich Aktualisierungen des Systems nur alle 1 Stunde neue Daten bereitgestellt werden.
      Daher wird eingangs die Anzeige noch blau unterlegt sein (was für Hinweis steht). Später sollte die Anzeige dann grün (was für alles bestens steht) unterlegt sein.

Jails

Jail einrichten

Siehe auch
freebsd-handbuch:jails-tuning (freebsd-handbook:jails-tuning)
Jail mit #Andministration per http einrichten
Siehe auch
FreeNAS:9.3:Adding Jails
sysctl

Bei Sysctls: können verschiedene Optionen für besonderes zu sysctl hinzugefügt werden. Bei der Verwendung von mehreren Optionen sind sie hintereinander weg ausschließlich mit , (Komma) trennt einzutragen.

allow.raw_sockets=true
allow.sysvipc=1

Storage

Trennung der Daten nach Zweck
Hintergrund

Wünschenswert ist eine Trennung zwischen

  • den Daten, die verwaltet werden und
    Daten der Benutzerinnen und Benutzer
    "Nutzdaten"
  • den Daten mit denen verwaltet wird
    Daten für das Programm der
    "Systemdaten"

. Insbesondere im Zusammenhang mit der Anwendung snapshot "will mensch das ja haben". Angenommen es muss, wegen Fehlern in Software, auf einen alten Stand der Version der Software zurückgegangen werden, sollten ja aber die Daten von den Benutzerinnen und Benutzern seit dem alten Stand nicht einfach verloren sein. Da nicht üblich ist, dass mit einer nachfolgenden Version der Software die Daten der Benutzerinnen und Benutzer wesentlich anderes verwaltet werden (vielleicht gar einen neues Prinzip des Verwalten der Daten angewendet wird), können sie nahezu unabhängig betrachtet werden. Demnach können (sollten) sie in unterschiedlichen Datensätzen verwaltet werden.

Erstellen eines eigenen Datensatzes (für ZFS) für die Daten des StuRa
zroot ist die Bezeichnung des Pools (ZFS)
zfs create -o checksum=sha256 -o compression=lz4 zroot/data
Trennung der Daten für innerhalb von Server/Cloud
Erstellen von zwei Datensätzen für die Instanz ownCloud (Server/Cloud)
Beim Pool (ZFS) zroot wurde bereits ein Datensatz data erstellt, wo nun weitere spezielle Datensätze erstellt werden können.
zfs create -o checksum=sha256 -o compression=lz4 zroot/data/owncloud
zfs create -o checksum=sha256 -o compression=lz4 zroot/data/owncloud/media
  • owncloud_1 ist die Bezeichnung der Jail für die Jail als Plugin owncloud für FreeNAS.
mv /mnt/zroot/jails/owncloud_1/media /mnt/zroot/jails/owncloud_1/media_DATEN_15.05.2015
mkdir /mnt/zroot/jails/owncloud_1/media
chown www:www /mnt/zroot/jails/owncloud_1/media
chmod 0770 /mnt/zroot/jails/owncloud_1/media
  • per WebGUI dann zroot/data/owncloud/media nach /mnt/zroot/jails/owncloud_1/media, mit nullfs, mounten lassen

frühere Betrieb

Betrieb bis 2015-03-09

Siehe auch