Effizientes und Leistungsstarkes Eigenbau-NAS

Nach und nach habe ich mein bestehendes NAS aktualisiert und bin nun bei einem System angekommen, welches genau meinen Ansprüchen entspricht, es bietet mir:

  • 2 x 2.5 Gbit/s LAN
  • 5 x 3.5″ HDD
  • 2 x NVMe Slots
  • Leistungsstark um verschiedenste Anwendungen zu hosten
  • Energieeffizient
  • 18 W idle

Dazu habe ich die folgenden Komponenten verwendet:

  • Jonsbo N2 Mini-ITX Gehäuse (139,90 €)
  • TopTon NAS Motherboard Celeron J6413 Intel i226-V 1 (209,67 €)
  • Inter-Tech 88882190 Netzteil (vgl. PicoPSU, 26,90 €)
  • Crucial RAM 32 GB (2x16GB, 62,19 €)
  • SATA Male To DC 5.5*2.1mm (2,6 €)
  • DC 12V PWM Fan Temperature Controller (2,28 €)
  • Lexar USB Stick 32 GB (4,99 €)
  • Bereits vorhandene SSDs, HDDs, SATA Kabel

Gesamtkosten: 448,83 €

Ein NAS mit ähnlichen Spezifikationen wäre die Synology DiskStation DS1522+ diese ist für ungefähr ca. 700 € zu haben. Idealo DS1522+

Gehäuse

Das kompakte Gehäuse bietet nicht nur Platz für alle Komponenten, sondern hat auch ein ansprechendes Design.
Da ich kein SFX Netzteil verwende, bleibt dort ein ziemliches Loch auf der Rückseite des Gehäuses, daher habe ich dieses mit der folgenden 3D gedruckten Abdeckung verschlossen: https://www.thingiverse.com/thing:5279674/files

Mainboard

Die Hauptplatine bildet das Herzstück meines NAS und überzeugt mit den benötigten Funktionen und Leistung für meine Anwendungen und deckt meine Anforderung perfekt ab.
Es gibt für zukünftige Ausbaustufen noch zwei NVMe Slots, 2.5 Gbit/s Netzwerkports, sodass auch in Unraid das Docker Netzwerk getrennt werden kann oder per Bonding Redundanz geschaffen werden kann.
Sechs SATA Ports bieten Platz zum Anschluss einiger Speichermedien und lässt sich sogar über den PCIe x1 Port noch erweitern.
Der sich direkt auf dem Mainboard befindliche USB2.0 Port eignet sich auch super, um den Unraid USB Stick direkt im Gehäuse zu installieren und so einen Zugriff oder Abknicken von Außen zu verhindern.

Netzteil

Durch den Einsatz eines mini Netzteils, statt eines vollwertigen SFX-Netzteils, werden noch ein paar Watt gespart.
Dieses wird an ein 12 V Netzteil angeschlossen und ich verwende so bei mit ein sehr effizientes 12 V Netzteil um alle meinen Komponenten vom NAS bis Router mit Spannung zu versorgen.

PWM Fan Temperature Controller

Da weder Mainboard noch Gehäuse regelbare Lüftersteuerung bieten, habe ich mir diese kurzerhand mit einem PWM Fan Temperature Controller selbstgebaut, die Spannungsversorgung erfolgt über die 12 V Pins eines SATA Ports, welche über den SATA Male Adapter abgegriffen werden. Dieser Controller steuert den Lüfter anhand der Temperatur an seinem Temperatur Sensors und dies sorgt für eine Optimale Belüftung und lässt den Lüfter nicht dauerhaft zu 100% laufen, wie es mit den Gehäuse oder Mainboard Lüftern der Fall gewesen wäre.

Bootmedium

Der USB-Stick dient als Unraid Bootmedium.
Dieses wurde per USB Flash Creator auf den USB Stick geschrieben und dann mit dem Mainboard verbunden. https://unraid.net/download

Abschluss

Zum Schluss habe ich noch einmal alle Verkabelungen geprüft, das Gehäuse verschraubt und das NAS mit 12V und Netzwerk versorgt.
Der erste Boot mit dem Mainboard nach dem Einbau des RAMs dauerte sehr lange, aber danach gab es keine Probleme und das NAS war nach einem Reboot nach wenigen Sekunden wieder erreichbar.

TS3 Server automatisch aktualisieren (The default license has expired.)

Hallo,
mit diesem kleinen Blog Beitrag möchte ich euch zeigen, wie ihr einen Linux Teamspeak 3 Server automatisch aktualisieren könnt.

Die Aktualisierung ist notwendig, um eventuelle Fehler oder Sicherheitslücken zu beheben und um die Lizenz der Community Version von Teamspeak z.B. auf einem selbst betriebenem Server zu aktualisieren, da diese nach ein bzw. zwei Jahren ausläuft.

Wenn die Lizenz ausgelaufen ist bekommt man diese Fehlermeldung:

Da mir die ständige manuelle Installation des Servers keine Freude bereitet, obwohl es sich nur um die folgenden 5 Schritte handelt:

Habe ich ein Skript entwickelt und auf Github.com veröffentlicht, um dies in einen einzigen Schritt zusammenzufassen, den Vorgang deutlich zu vereinfachen und zu automatisieren:

https://github.com/yannik995/TS3-Update/

Mit folgendem Befehl lässt es sicher herunterladen und auch direkt ausführen, sodass der TS3 Server aktualisiert und neu gestartet wird (Ich empfehle immer vorher ein Backup des Servers anzulegen):

apt install jq -y && wget -Nnv https://raw.githubusercontent.com/yannik995/TS3-Update/main/ts3update.sh && chmod +x ts3update.sh; ./ts3update.sh

Zu beachten ist aber das sich der Teamspeak 3 Server im aktuellem Verzeichnis unter teamspeak3-server_linux_amd64 befinden muss, da das Skript sonst nicht funktioniert.

Damit das Update nicht immer manuell angestoßen werden muss habe ich bei mir einen Crontab eingerichtet, dazu startet man den Crontab Editor mit dem Befehl:

Und fügt dort folgendes ein, um es nach jedem Reboot auszuführen:

Oder am 2. des Monats um 04:35 Uhr, die Zeit kann natürlich frei geändert werden:

(Ggf. muss der Pfad zum Skript angepasst bzw. hinzugefügt werden. Bei mir liegt das Skript im Home Verzeichnis des TS3 Users und daher funktioniert es auch so ohne Probleme)

Ich hoffe ich konnte euch damit weiterhelfen und wünsche euch viel Spaß beim nutzen des Skripts.

Viele Grüße

Stud.IP Kalender mit iOS, Android, Outlook und Nextcloud synchronisieren

Wie kann ich meine mobilen Kalender mit dem Stud.IP synchronisieren?

Dazu habe ich mir ein paar Möglichkeiten für iOS, Android und Outlook herausgesucht, auf die ich nun im Detail weiter eingehen werde.

Stud.IP Einstellungen

Zunächst muss aber bei allen Möglichkeiten ein Link zum Teilen des Kalenders im Stud.IP erstellt werden. Dazu geht man im Stud.IP auf den Planer und wählt der den Tab Terminkalender, auf der rechten Seite findet man dort den Punkt „Kalender teilen“ über diesen kann man einen Link generieren, der benötigt wird, um den Kalender einzubinden.

Screenshot auf dem Stud.IP

Android

Unter Android gibt es zwei Möglichkeiten entweder mit oder ohne Google.

Ohne Google

Um die Kalender Synchronisierung ohne Google zu aktivieren, nutze ich die App ICSx⁵ (alternativ auch kostenlos im F-Droid Store). Nach dem installieren startet man die App, klickt aus das Plus, fügt den Link aus dem Stud.IP ein, vergibt Namen und Farbe und klickt auf den Haken. Schon wird der Kalender mit dem Android Gerät synchronisiert.


Es empfiehlt sich außerdem noch die Einstellungen (drei Punkte oben rechts) zu öffnen, „Aktualisierungsintervall festlegen“ auszuwählen und dort einen Intervall auszuwählen, damit die App den Kalender auch regemäßig aktualisiert.

Je nach Intervall und Hersteller des Gerätes muss die App von der Energieverwaltung ausgenommen werden. (Meldung in der App beachten)

Mit Google

Hierzu öffnet ihr Google Kalender am PC (In der App gibt es diese Option leider nicht), klickt auf das „+“ neben „Weitere Kalender“ und dann auf „Per URL“

In dem Dialog tragt ihr den Link aus dem Stud.IP ein, klick auf „Kalender hinzufügen“ und schon wurde der Kalender hinzugefügt.
In den Einstellungen des Kalenders (Zahnrad Symbol) kann nun noch eine Name und standardmäßige Benachrichtigungen vergeben werden.

Auf dem Andorid Smartphone muss der Kalender gegebenenfalls noch in den System Einstellungen unter dem Punkt Kalender aktiviert werden und/oder gegebenenfalls in den Einstellungen des Kalenders, dort Einstellungen (ggf. „Weitere Anzeigen“), dann den neuen Kalender auswählen und den Punkt Synchronisieren aktivieren:

Nextcloud

Öffne im Browser den Nextcloud Kalender, klicke auf das Plus und wähle „Neues Abonnement aus Link“, füge den Link aus dem Stud.IP ein und klicke auf den Pfeil oder bestätige mit Enter. Jetzt kann noch eine Farbe und der Namen festgelegt werden und schon wird der Kalender synchronisiert.

Der Vorteil dieser Methode ist das der Kalender auch automatisch mit allen Endgeräten synchronisiert wird, die den eigenen Nextcloud Kalender synchronisieren. So kann man sich zum Beispiel die extra Konfiguration des iOS oder Android Smartphones sparen.

iOS

Unter iOS öffnet man die Einstellungen, wählt „Passwörter & Accounts“, dann „Account hinzufügen“, wählt „Andere“, dann „Kalenderabo hinzufügen“, fügt dort den Link aus dem Stud.IP ein und klickt auf „Weiter“. Es sieht dann so aus:

Nun klickt man nun noch auf Sicher und schon sind die Veranstaltungen im Kalender sichtbar. Dort kann nun noch eine gegebenenfalls eine andere Farbe vergeben werden.

Outlook

In Outlook navigiert man in den Kalender Tab und klick dort in der oberen Leiste auf „Kalender öffnen“ und dann auf „Aus dem Internet“.

Im Nachfolgenden Dialog fügt man die Adresse aus dem Stud.IP ein und schon ist der Kalender in Outlook sichtbar.

Ich habe allerdings keinen Weg gefunden die Termine automatisch in den persönlichen Kalender zu bringen, damit die Arbeitskollegen, die Uni Termine einsehen können. Aber die Termine können durch einfaches Copy und Paste übernommen werden, dann habe ich daraus Serien Termin erstellt und die meisten Veranstaltungen damit abgedeckt.

Hetzner: No bootable Device nach Festplattentausch

Falls nach einem Festplattentausch der Bootloader nicht erneut geschrieben wurde, kommt es zu dem Problem, dass der Server nach einen Neustart nicht Rebooten wird und nur die Meldung No bootable Device anzeigt.

In diesem Artikel möchte ich erklären, wie man die Datenträger wieder bootfähig macht, da ich selber dachte der Schritt sei nicht notwendig, weil alle Daten durch das MDADM Raid 1 gespiegelt werden. Leider ist das nicht so.

Um die Datenträger wieder bootbar zu machen startet man das System in den Hetzner Rescue Modus und verbindet sich per SSH. Dies wirdauch hier erklärt:
https://docs.hetzner.com/de/robot/dedicated-server/troubleshooting/hetzner-rescue-system/

Dort bindet man die benötigten Laufwerke ein und wechselt per chroot von dem Rescue System in den Kontext des eigentlichen Systems. Die macht man mit folgenden Befehlen:

Nun befinden wir uns im Kontext unseres Systems und haben alle nötigen Partitionen gemounted, können also mit dem schrieben des Bootloaders beginnen:

Nun muss das System noch einmal neu gestartet werden und sollte dann wieder erfolgreich booten können:

Ich hoffe ich konnte auch mit diesem Beitrag helfen und wir werden ab jetzt nicht mehr vergessen den Bootloader nach dem Platten tausch neu zu schreiben.
Das geht einfach mit diesen zwei Befehlen und spart euch stressige Stunden 🙂 :

Windows Übermittlungsoptimierung deaktivieren

Was ist die Übermittlungsoptimierung?

Microsoft hat ab Windows 10 die Übermittlungsoptimierung eingebaut. Durch die Übermittlungsoptimierung wird mit anderen Computern ein Peer-to-Peer Netzwerk aufgebaut und über dieses Netzwerk werden die Windows Updates verteilt.

Microsoft spart sich so, auf kosten der Nutzer, einen Teil der Kosten für die Bereitstellung der Windows Updates. Dieses Feature lässt sich aber ganz leicht deaktivieren, wenn die Übermittlungsoptimierung, wie bei mir, die komplette Bandbreite verwendet.

Wie kann ich die Übermittlungsoptimierung deaktivieren?

Einstellungen

Zum Deaktivieren öffnet man die „Einstellungen„:

Dort wählt man „Update und Sicherheit“ aus:

Update und Sicherheit

Und dort „Übermittlungsoptimierung„.
Dort kann man die Downloads von anderen PCs verbieten oder nur für PCs im lokalen Netzwerk erlauben:

Übermittlungsoptimierung

SSL 2.0 und SSL 3.0 im IIS deaktivieren

Um SSL 2.0 und SSL 3.0 und so die Poodle Lücke zu schließen kann man auf einem Windows Server diesen Regedit Code ausführen (als .reg Datei speichern und ausführen).
Diese Datei deaktiviert zusätzlich noch einige sehr unsichere Chiphers (DisableSSLv3.reg):

Danach muss der Server neu gestartet werden.
Ob die Lücke geschlossen wurde kann man hier testen:
https://sslanalyzer.comodoca.com/poodle.html

Google Drive File Stream auf Windows Server

Da der GD File Stream Installer nicht auf Windows Server ausgeführt werden kann, hier die Schritte zum manuellen Installieren.

  1. Google Drive File Stream unter Windows 7/8/10 installieren
  2. Die Daten von „C:\Program Files\Google\Drive File Stream“ in das selbe Verzeichnis auf dem Server kopieren
  3. Exportieren von „HKLM\SOFTWARE\Google\DriveFS“ mit regedit.exe und auf dem Server importieren
  4. Rechts auf die Datei  „C:\Program Files\Google\Drive File Stream\Drivers\2285\googledrivefs2285.inf“ klicken und den Treiber über „Installieren“ installieren
  5. Die benötigte DLL mit einer administrativen Eingebeaufforderung registrieren:
    regsvr32 „C:\Program Files\Google\Drive File Stream\25.157.165.2150\drivefsext.dll“
  6. Server rebooten
  7. Starte die C:\Program Files\Google\Drive File Stream\25.157.165.2150\GoogleDriveFS.exe und logge dich mit deinem Google Account ein.

Nginx Fehler 413 Request Entity Too Large

Bei größeren Dateiuploads kann es vorkommen, das nginx die Fehlermeldung „413 Request Entity Too Large“ anzeigt und den Dateiupload abbricht. Diese Standard Einstellung gibt es, um den Webserver vor zu großen Dateien zu schützen und diese Fehlermeldung kann man ganz leicht beheben.

Dafür gibt es den Konfigurationsparameter „client_max_body_size“, wenn dieser nicht gesetzt ist, hat er den Wert 1m. Dadurch wird der Upload auf die maximale Größe von 1MB beschränkt.

Wie man hier in Zeile 3 sehen kann. Diesen Wert kann man nun auf eine entsprechende Größe anpassen oder auf 0 setzen, um das Limit ganz zu entfernen, dies ist allerdings nicht zu Empfehlen.

PHP Upload Limit anpassen

Eine ähnliche Einstellung gibt es auch in der php.ini, diese Datei findet man unter dem Pfad /etc/php/7.0/fpm/php.ini (7.0 ist durch die genutzte PHP Version zu ersetzen). In dieser Datei sucht man nach „upload_max_filesize“.

Diesen Wert kann man nun ebenfalls auf die benötigte Größe einstellen.

Konfig Dateien neu laden

Nachdem man diese Änderungen vorgenommen hat, muss man die Konfigurationsdateien neu laden. Diese kann man mit diesen Befehlen erledigen:

 

Und schon ist ein Upload von größeren Datei über nginx und PHP möglich.

Warum kommt dieser Fehler eigentlich?

Diese Konfiguration dient eurem Schutz, damit nich unendliche große Dateien an euren Server gesendet werden können und dieser dadurch lehmgelegt wird. Daher solltet ihr darauf achten diesen Wert auch nicht zu groß einzustellen.

Viele Spaß weiterhin bei der Nutzung von Nginx

Proxmox + pfSense: Kein Internet auf der VM

Ich habe mir einen Proxmox Server mit pfSense als Router VM und mehreren virtuellen Maschinen eingerichtet.
Nach einiger Netzwerkkonfiguration war es möglich auf der Router VM über den Port Check Verbindungen herzustellen und auch eine Windows VM konnte sich mit dem Internet Verbinden, allerdings sehr langsam.

Von allen VMs war es möglich ins Internet zu pingen, allerdings konnten von den Linux VMs keine TCP und UDP Verbindungen hergestellt werden. Verbindung wurde einseitig geöffnet, fand aber scheinbar keinen Weg zurück zur VM.

Nach einigem Googlen fand ich hier das es an dem Hardware Offloading liegen kann. Nachdem es deaktiviert wurde und die Router VM neu gestartet wurde, funktionierte ein apt update endlich 🙂

Wie deaktiviere ich Hardware Offloading in pfSense?

System -> Advanced -> Networking

Und folgende Punkte aktivieren:

Ich hoffe euch hilft dieser Tipp