Beiträge von sammy2k8

    Hey Smastema


    Du kannst hier verschiedene Wege gehen. Tools wie Bleachbit oder Ubuntu Cleaner können dir da sicher helfen.

    Wer gerne etwas selbst das aufräumen in die Hand nehmen möchte, kann das Script von mir verwenden. In diesem Beispiel werden alte Papierkörbe, Temporäre Dateien und Indexdateien von verschiedenen Betriebssystemen (Win, Mac) sowie unnötige Info Dateien von Downloadpaketen entfernt.

    Der Link dazu folgt.



    Quellen:

    Bleachbit | Ubuntu Cleaner

    Howto: Bluetooth beim Bootvorgang aktivieren

    In den aktuellen Releases von Ubuntu, wie auch Manjaro (Arch) kann man beobachten, das z.b. eingerichtete Tastaturen & Mäuse am Anmeldebildschirm nicht zur Verfügung stehen.

    Bei dem aktuellen Beispiel geht es um Manjaro mit der KDE Oberfläche.


    Der Hintergrund ist, selbst wenn das Bluetoothgerät gekoppelt war und auch den Trust hat, es beim hochfahren nicht getriggert wird um automatisch zu verbinden. Das hat zwei mögliche Gründe:


    Der Au
    toEnable Eintrag im Bluetooth Stack ist nicht aktiviert bzw. auf dem Wert False


    Wir öffnen mit unserem bevorzugten Editor die Config Datei im Verzeichnis /etc/bluetooth/main.conf und aktivieren den Eintrag AutoEnable und setzen den Wert auf True.

    Code
    sudo nano /etc/bluetooth/main.conf
    Code
    ....
    # This includes adapters present on start as well as adapters that are plugged
    # in later on. Defaults to 'false'.
    AutoEnable=True
    ....

    Speichert die Config Datei und checkt nach dem Reboot, ob ihr nun eurer Gerät direkt nach dem Start benutzen könnt.


    Falls ihr noch immer keine Gerät habt, schaut etwas genauer auf den Bluetoothservice. Ist er auch schon gestartet, wenn der Loginbildschirm erscheint?
    In diesem Fall war er gestartet, aber der Bluetooth Adapter wird beim hochfahren nicht eingeschaltet.


    Nach etwas Recherche und der Feststellung das hier wohl das Thema beim Handler des Bluetoothservice liegt (blueZ oder bluetoothctl) habe ich hier kurz gehalten einen eigenen Service eingerichtet der den Bluetooth Adapter beim Start einschaltet.


    W
    ir bauen uns einen eigenen Service und binden ihn in den Startvorgang ein


    Dazu erstellen wir im Verzeichnis /usr/bin/ eine Datei mit dem Namen autostart.sh.

    Code
    sudo nano /usr/bin/autostart.sh

    Der Inhalt der Datei ist für den Handler (z.b. bluetoothctl).

    Bash
    #!/bin/bash
    #
    # /usr/bin/autostart.sh: Local multi-user startup script.
    sudo bluetoothctl power on

    Speichert die Datei und macht sie ausführbar.

    Code
    sudo chmod +x /usr/bin/autostart.sh

    Im weiteren Schritt richten wir das Service Modul für unser Script ein. Dafür erstellen wir eine Datei im Verzeichnis /lib/systemd/system/ und nennen diese autostart.service.

    Code
    sudo nano /lib/systemd/system/autostart.service

    Der Inhalt ruft durch das Modul das Script auf und gibt u.a. an auf welcher Ebene dieser Service laufen soll.

    Code
    [Unit]
    Description=Example systemd service.
    
    [Service]
    Type=simple
    ExecStart=/bin/bash /usr/bin/autostart.sh
    
    [Install]
    WantedBy=multi-user.target

    Nun prüfen wir mit dem Triggern des selbsterstellen Service ob unsere Eingaben richtig waren:

    Code
    sudo systemctl start autostart.service

    Falls hier keine Fehlermeldung erscheint, könnt ihr mit dem Befehlsatz unten den Status ausgeben lassen.

    Code
    sudo systemctl status autostart.service

    Im letzten Punkt aktivieren wir unseren Service also nun beim Hochfahren.

    Code
    sudo systemctl enable autostart.service    

    Nach einem Neustart und einer kurzen Sekunde, habt ihr euer Bluetoothgerät nun auch beim Login/Startbildschirm zur Verfügung. :thumbup:

    Neuer Linux Kernel 5.16

    Ihr habt zu diesem Thema länger nichts gehört, das lag daran, dass hinter den Kulissen einiges angepasst und geändert wurde. U.a. gibt es die betaCube Hardware auch mit einer angepassten Hypervisor Oberfläche die ihr direkt mit Docker, Apps und VM`s füttern könnt. Keine Angst, das klassiche betaCube System ist aber weiterhin verfügbar. Dort wurde immer ein angepasster Kernel der Serie 5.10.x eingesetzt. Dieser hat sich bis heute, als sehr stabil und produktiv nutzbar erwiesen.


    Etwas ganz besondereres erwarten wir gegen Ende dieses Jahres 2021: Linux Kernel 5.16

    Er wird es vermutlich, nicht als LTS (Long Term Service) Kernel schaffen, was echt genial wäre. Dies nicht wegen der Features und Optimierungen oder möglichen Bugs. Sondern schlicht, dass er nicht in den Zeitrahmen fällt, für die wichtigsten Distributionen und deren Release der LTS Systeme. (Das letzte Mal war dass am 13. Dezember 2020 geschehen.)

    Was macht den Kernel so besonders?

    Neben der neuen NTFS Treiber von Paragon (nach über 5 Jahren zum letzten Update, ein fettes Dankeschön), die bessere Unterstützung für Zen3+ AMD Prozessoren, einen im Idealfall 8x höheren I/O Durchsatz bei U2./NVMe Laufwerken, AVX512 Optimierungen und Vector Optimierungen, gab es auch ein paar Entschlackungskuren und Codebereinigungen. Die schlanke und schnelle Integration von einem Sambaserver darf ebenfalls erwähnt werden.


    Sobald er verfügbar ist, werde ich die betaCube Patches dazu einpflegen und testen. Bin gespannt wie gut er sich in der Performance ggü. Kernel 5.10.x schlägt. Ihr auch?

    Liebe Gönner und Freunde

    Dank eurer Hilfe konnten wir einen tollen Computer auf die Beine stellen. Vielen <3-lichen Dank dazu an alle die sich beteiligt und mitgeholfen haben.
    Speziellen Dank geht an Nightfall11 und Lenz sowie Smastema für euren Einsatz!


    Die Freude & Antwort von dem jungen Mann möchte ich euch ebenfalls nicht vorenthalten:


    227-compi-jpg


    Damit schliesst sich das Case für das erste Projekt. Ich bin gespannt, was wir als Nächstes zusammen realisieren dürfen.

    Wie erstelle ich einen weiteren Benutzer in Plex?

    Hier muss man etwas unterscheiden. Wir haben folgende Wahl:

    • Soll es ein Benutzer sein der im eigenen Account zusätzlich zur Verfügung steht?
    • Soll es ein Benutzer sein der nur "kurzfristig" Gast sein soll?
    • Soll es ein Benutzer sein der als "Home User" eingeladen wird? (Nicht empfohlen)


    Zusätzlicher Benutzer im eigenen Account

    Der zusätzliche Benutzer im eigenen Account stellt die gängige Variante dar. Man ist bereits mit einem Konto auf dem Tablet/TV/Telefon eingeloggt und möchte einem weiteren Mitbenutzer eine eigene (vielleicht kleinere, kontrolliertere Auswahl) zur Verfügung stellen.


    Dazu klickt man oben auf Konto >> Benutzer & Teilen >> Erstelle verwalteten Benutzer.


    Plex Benutzerverwaltung Hier erstellen wir einen verwalteten Benutzer innerhalb unseres Kontos.



    Wie man hier sieht kann man auch die Altersfreigabe für diesen Benutzer steuern.


    Wer einen verwalteten Benutzer erstellt muss seinem Hauptkonto ein PIN verpassen damit der weitere Benutzer in der Auswahl dann nicht eure Oberfläche verwendet.


    Plex Benutzerauswahl


    Gut zu Wissen: Die PG Altersfreigabe ist Ländergesteuert. Checkt eure Mediathek Einstellung welches Land zur Erkennung der Cover & Inhalt eingestellt ist.


    Einladung als Gast

    Den Gast aktiviert ihr in der Benutzer & Teilen Sektion rechts oben auf dem Button "Gast aktivieren". Danach könnt ihr auf den Benutzer Gast klicken und die Freigabe eurer Mediathek hinterlegen.
    Er ist ebenfalls nur bei eingebundenem eigenem Konto verfügbar und benötigt kein PIN. Auch eine entsprechende Altersfreigabe greift nicht.


    Home User einladen (nicht empfohlen)

    In dieser Einladung lasst ihr praktisch einen weiteren "administrativen Benutzer" von Aussen zu. Genauer heisst dass, ihr ladet eine weitere Person mit einem eigenständigen Plexkonto ein, der Verwaltungsrechte auf euer Konto erhält. Die Verwaltung ist vollumfänglich.


    Alternative

    Wer seine Mediathek gerne mit anderen Teilen möchte, lädt lieber extra dazu ein. Hierfür klickt ihr im Benutzer & Teilen auf "Freund hinzufügen". Hinterlegt den bekannten Benutzernamen oder deren eMail Adresse und schon geht eine Einladung heraus. Die Freigabe der Mediathek könnt ihr im Assistent Schritt für Schritt durchführen.

    Debian
    Version 10.9.0

    Changelog:

    • Auf die aktuellste Debian Variante angepasst.
    • Neuste Plex Mediaserver Version hinterlegt. (-> 1.22.3.4523-d0ce30438)
    • Neuste VNC Server Version hinterlegt. (-> 6.7.4)
    • Optimierter Kernel hinterlegt. (-> 5.11.16)
    • JellyFin Mediaserver aufgenommen und die neuste Version hinterlegt.
    • Kleine Scriptanpassungen und Dateibereinigungen.


    Das Basis Image welches ihr benötigt: Debian Image
    Das betaCube Server Installationsscript bekommt ihr hier: betacube script

    Erster Schritt

    Ihr installiert euch das Debian auf eure Systemplatte (in minimaler Konfiguration -> Basis Gnome Desktop, kein Webserver etc.). Wenn ihr wollt natürlich auch mit LUKS Verschlüsselung.


    Zweiter Schritt


    Nach dem einrichten, kopiert ihr euch das Script an einen Ort eurer Wahl das ihr via Terminal natürlich schnell erreichen könnt. Wie bereits oben aufgeführt, kann es notwendig sein die Datei ausführbar zu machen!


    Öffnet das Terminal und wechselt in das Verzeichnis. Startet das Script wie folgt:

    Code
    sudo /.debian_setup.sh

    Bereits vor eurer Paketauswahl, entfernt das Script clever alle nicht für den Serverbetrieb benötigten Pakete und Anwendungen und richtet den optimierten Kernel ein. Als Nächstes erscheint dann die betaCube Softwareauswahl!


    Wählt die Punkte die ihr eingerichtet haben möchtest und bestätigt mit der Taste Enter oder mit einem Klick auf "OK" die Installation.

    Prinzipiell könnt ihr dann direkt nach dem Abschluss des Ganzen weiter machen. Dennoch empfehle ich einen Reboot.

    Geniesst die Funktionalität & Geschwindigkeit der optimierten Debian Variante. ;)


    Gut zu Wissen: Ich arbeite immer mal wieder an dem Script und füge ein paar weitere nützliche Apps/Pakete hinzu. Für JellyFin wird es noch einen separierten Beitrag geben!

    Howto: Wie lösche ich ungenutzte Kernel komplett?

    Diese Frage stellt sich, der eine oder andere, nach längerer Nutzung von Ubuntu/Linux Mint und Co. Denn im Unterschied zu z.b. OpenSuse, behalten die angesprochenen Systeme immer alle eingespielten Kernelversionen und nicht nur die drei Letzten.


    :!: Die Ausführung und Befehle passieren unter Root Umgebung. Für fehlerhafte Konfigurationen oder fehlende Pakete haften wir nicht. Bitte achtet vor dem "säubern" darauf, das in der Aktualisierung der Softwarepakete nichts "broken" oder "in Abhängigkeit" zur Installation offen ist. Wer gerade einen Kernel installiert hat, startet den Rechner einmal durch, und vergewissert sich das der neuste Kernel in Nutzung ist. :!:


    Prüfen welcher Kernel gerade läuft:

    Code
    uname -a
    
    oder
    
    uname -r


    Zu diesem Zweck habe ich ein kleines Script, das ihr in diesem Beispiel wie folgt kopiert & erstellt. Geht dafür ins Terminal und wechselt in das Homeverzeichnis eures Benutzers.
    Dort könnt ihr dann das Script erstellen:

    Code
    sudo nano deleteOldKernel.sh


    Fügt nun diese Zeilen ein:


    Das Ausführen erfolgt mit folgenden Befehlen:

    Code
    sudo ./deleteOldKernel.sh           - Der Testlauf, die alten Kernel werden aufgelistet
    sudo ./deleteOldKernel.sh delete    - Das Aufräumen, löscht alle ungenutzten Kernel samt Module


    Ihr könnt während der Ausführung die volle Ausgabe im Terminal beobachten.
    Voila :thumbup:



    Quellen:

    Ubuntu Wiki Uname Ubuntu Wiki Apt

    Wir suchen gebrauchte Computerhardware!

    :) Das Projekt ist offiziell abgeschlossen. Vielen Dank an alle die sich beteiligt haben! 8)

    Wie ihr dem Titel schon entnehmen könnt, suchen wir auf diesem Weg gebrauchte Hardware für ein nettes <3 Projekt unter Freunden.
    Ziel ist es aus den angebotenen Teilen einen einzelnen vollständigen Rechner bauen zu können.


    Wie alt darf die Hardware sein?
    Auf Grund von Änderungen von Sockeln und Grafikschnittstelle, würde ich sagen alles von Heute bis Rund um das Jahr 2010 zurück. (+/-)


    Was darf ich anbieten?
    Einzelkomponenten (Prozessor, Speicher, Festplatte, Mainboard, Netzteil etc.), Teilcomputer aber auch ganze Systeme die einfach nur noch Staub fangen.


    Wie darf ich es anbieten?
    Schreibe einfach einen Eintrag hier unter diesen Beitrag. (z.b. MSI Grafikkarte GTX 960, Intel Prozessor i7, DDR3 Ram 2 GB Riegel).

    Wir sagen jetzt schon Dankeschön, für Jeden der etwas anbieten kann & möchte. :thumbup:


    Euer
    Sammy2k8 & Freunde

    Hey Danke, sehr gerne! 8)

    Bis jetzt ist noch nicht vorgekommen, dass eines der Module nicht in einem EdgeRouter oder Dream Machine Pro funktionierte. Also grünes Licht. :thumbup:
    Wenn man 100% sicher gehen möchte oder dennoch Kompatibilitätsprobleme aufkommen, habe ich hier die häufigsten Grunddaten der Swisscom / Init7 GBIC Module:


    PorttypLC/UPC
    KabelSinglemode-Faser (9/125µm Singlemode)
    ProtokollIEEE802.3z
    CSMA/CD
    TCP/IP
    WellenlängeTX: 1310nm
    RX: 1550nm
    Reichweitebis 10 km


    Module die dazu passen würden und/oder ich selbst bereits im Einsatz habe:


    • TP-Link TL-SM321B (Preis/Leistungs Tipp)
    • gLine | Cisco GLC-LH-SM




    Quellen:

    Ubiquiti Edge Liste Ubiquiti DreamMachine Liste

    Zustand: Updatedb.mlocate lässt meinen Arbeitsspeicher volllaufen

    Dies kann häufig auf den Umstand schliessen, dass das Dateisystem unsauber bzw. vermutlich fehlerhaft ist.
    mlocate als Paket und Dienst übernimmt die Indexierung deiner Dateien. Dieser Dienst läuft täglich und verrichtet seine Arbeit im Hintergrund.


    Wer beobachten kann, das in der Systemüberwachung die Datei/der Prozess Updatedb.mlocate mit vielen GB an RAM vollläuft hat einen grossen Indiz dafür. Damit wir nun in erster Linie den Speicher frei bekommen beenden wir den Dienst und falls notwendig stoppen wir das tägliche Indexieren.


    Wir geben dafür ein:

    Code
    sudo killall updatedb.mlocate

    Damit beenden wir den Dienst, der Speicher wird frei.


    Weiter können wir diesen, wie bereits erwähnt, mit folgender Zeile für das tägliche Indexieren deaktivieren:

    Code
    sudo chmod -x /etc/cron.daily/mlocate

    Jetzt habt ihr den Speicher frei und könnt euch weiter um das mögliche Problem mit dem Laufwerk/Dateisystem kümmern. Hier findet ihr eine Anleitung Rund um Laufwerke sowie Dateiensysteme.


    Wenn ihr den Dienst dann später wieder laufen lassen möchtet, könnt ihr ihn wie folgt reaktivieren:

    Code
    sudo chmod +x /etc/cron.daily/mlocate

    Voila :thumbup:



    Quellen:

    UpdateDB

    Ordnerfreigabe beim Bootvorgang einhängen

    Wer auf einem Basis Debiansystem oder einem älteren Ubuntu unterwegs ist hat leider den Automount der GUI nicht zur Wahl.

    Hierfür müssen wir einen Eintrag in der Datei /etc/fstab hinterlegen. Dazu später mehr.


    Zuerst prüfen wir im Terminal mit der Eingabe von:

    Code
    id

    unsere UserID und GruppenID. Die dürfte in unserem Beispiel als erster Benutzer bei 1000 und 1000 sein. Die Nummern brauchen wir dann später in der /etc/fstab Datei.


    Nun wechseln wir in das Homeverzeichnis unseres Benutzers und erstellen eine Datei die unseren Samba Login und die Domain beinhaltet:

    Code
    cd /home/{DeinBenutzer}
    sudo nano ./smbcredentials

    Der Inhalt sieht dann wie folgt aus:

    Code
    username=SambaUser
    password=SambaUserPasswort
    domain=workgroup                <- z.b. Wenn du eine eigene Domain erstellt hast trage sie entsprechend ein.

    Speichert die Datei ab (CTRL+x). Um sicher zu gehen das nur "root" sie öffnen und anschauen kann führt ihr nun noch folgenden Befehl aus:

    Code
    sudo chmod 600 ./smbcredentials

    Nun erstellen wir noch einen MountPunkt:

    Code
    sudo mkdir /media/share        <- "share" ist nur ein Beispiel, so wird es im Dateimanager angezeigt

    Im letzten Schritt erstellen wir nun den Eintrag in die /etc/fstab:

    Code
    //{NameVondeinemServer.local}/{NameDerFreigabe} /media/share    cifs    vers=3.0,credentials=/home/{DeinBenutzer}/.smbcredentials,iocharset=utf8,gid={GruppenID},uid={UserID},file_mode=0777,dir_mode=0777    0    0

    In unserem Beispiel würde dass dann so aussehen:

    Code
    //mybetacube.local/raid /media/raid    cifs    vers=3.0,credentials=/home/Cube/.smbcredentials,iocharset=utf8,gid=1000,uid=1000,file_mode=0777,dir_mode=0777    0    0

    Wenn sich nun nirgends ein Fehlerteufel eingeschlichen hat, könnt ihr sofort mit:

    Code
    mount -a

    den Share einhängen lassen. Prüft kurz eure Berechtigung zum schreiben und löschen.


    Voila. :thumbup:

    Ordnerfreigabe installieren, einrichten und absichern

    Wer eine CIFS/Samba Freigabe unter Linux einrichten möchte kann dies mit relativ wenigen Schritten wie folgt durchführen.


    Zuerst installieren wir das Samba Paket via Terminal:

    Code: Debian/Ubuntu
    sudo apt install samba
    Code: CentOS/Fedora/OpenSuse
    sudo zypper install samba      <- Kann auch yum anstatt zypper sein. Unter OpenSuse kann man das Paket auch über yast2 installieren.

    Es werden alle notwendigen Pakete angezeigt und wir bestätigen die installation.

    Nach Abschluss prüfen wir mit:

    Code
    sudo systemctl status smbd

    ob der Samba Dienst gestartet und bereit ist. (Active: active (running))


    Nun können wir die Freigabe einrichten. Hierzu editieren wir die Config Datei in /etc/samba/smb.conf.

    Wichtige Punkte für das "Erscheinen" in der Netzwerkumgebung ist die Angabe von: workgroup sowie public/browsable in der eigentlichen Ordnerfreigabe.

    Code
    [Name der Freigabe]      <- Mit diesem Namen erscheint die Freigabe im Netzwerk
    path = /xxx/xx           <- Ist der Pfad zum lokalen Mountpunkt/Laufwerk
    available =              <- Allgemeine Verfügbarkeit/Zugriff erlaubt
    browsable =              <- Ordner/Freigabe wird in der Netzwerkumgebung angezeigt
    public =                 <- Ohne User/Passwortlogin erreichbar
    writeable =              <- Schreib/Löschrechte verfügbar
    valid users =            <- Zum Login/Anmelden erlaubte Benutzer
    hosts allow =            <- Netzwerkumgebung/IP Range die darauf Zugriff haben darf

    Valid Users steuert den Zugang mit Benutzername und Passwort (muss separiert eingerichtet werden!)
    Hosts allow steuert den Zugang von welcher IP / Netzwerkumgebung zugegriffen werden darf. Das kann auch für eine einzelne Maschine gelten!
    Diese Einstellung ist besonders wichtig wenn der Server im DMZ steht oder ein DynDNS Service diesen im Internet verfügbar macht.


    Samba Freigabe So sieht das dann in einem Beispiel aus.


    Nun setzen wir noch das Passwort für den User für die Freigabe in Samba:

    Code
    sudo smbpasswd mybetacube

    Wer eine Firewall im System aktiv hat muss die Ports noch entsprechend öffnen:

    Code: Debian/Ubuntu
    sudo ufw allow 139
    sudo ufw allow 445
    Code: CentOS/Fedora/OpenSuse
    sudo firewall-cmd --permanent --add-port=139/tcp
    sudo firewall-cmd --permanent --add-port=445/tcp
    sudo firewall-cmd --reload

    Nun starten wir den Dienst erneut durch und ab diesem Zeitpunkt habt ihr Zugriff über euer Netzwerk auf die Freigabe.

    Code
    sudo systemctl restart smbd

    Voila :thumbup:



    Quellen

    Samba Quick Reference Ubuntu Wiki

    Hier könnt ihr die entsprechenden Geräte samt eingestellte Werte und das passende ICC Profil dazu eintragen/vorstellen.

    Beispiel:


    Gerät/Model: Mustermonitor / Mustermodel
    Grösse: Mustergrösse


    Einstellungen:

    R 78

    G 82

    B 90

    Helligkeit 76

    Kontrast 90


    Kalibriert auf: Musterwert

    ICC Profil:


    Ihr könnt auch gerne das Messprotokoll (vorher/nachher) noch mit angeben.

    Firewall Einstellungen eines Ubiquiti EdgeRouter (Basic)

    In diesem Beitrag gehen wir davon aus das Ihr den Router gerade frisch ausgepackt und die Zugänge manuell oder via Wizard eingerichtet habt.


    Hinweis 1: Berücksichtigt wird die Einstellung der Firmware Version 2.08 sowie das aktuelle 2.09 Hotfix1
    Hinweis 2: Der EdgeRouter X hat einen zusätzlichen (hardware) Switchpart integriert den man ebenfalls noch mit mehr Sicherheit einstellen kann [Wird in der Advanced Anleitung behandelt]

    Hinweis 3: Es gibt einen Unterschied zwischen Port,- und Interfacebasierender Firewall (Einstellungen)


    :!: Wir haften nicht für für etwaige Ausfälle oder Schäden durch Falsch,- Miskonfiguration der Netzwerkumgebung. Die Angaben hier sind allgemein gehalten und dienen zum Verständnis und Aufbau einer eigenen Struktur. Ihr seit selbst für ein Backup der Config, sowie das wiederherstellen des Ursprungs verantwortlich. Alle Befehle sind im CLI wie auch via SSH mit einem Admin Konto durchgeführt worden. :!:

    Vorwort

    Beim Ubiquiti EdgeRouter (x) bestehen z.b. 5 physikalische Ports die durchnummeriert eth0 bis eth4 heissen. Standard wäre beim EdgeRouter(x) eth0 der WAN Port, das heisst das alle anderen Ports (eth1-eth4) auf das interne LAN Interface "switch0" gelegt sind.


    Im Standardsetup mit dem Wizard WAN + LAN ausgeführt, werden schon ein paar Einträge gesetzt die auf die Angabe der Interfaces aufgebaut sind. Hier also eth0 und switch0.

    Innerhalb dieser Basis sind nun auch schon Rules angelegt die mit "Deny ALL" from WAN > LAN den Verkehr und Aufbau einer Verbindung regeln. Genauer: Erlaubt diese Rule das Clients eine Verbindung ins Internet (WAN) aufbauen dürfen. Eine Verbindung vom Internet nach LAN ist so nicht möglich. Was prinzipiell schon in Ordnung ist.


    >> In dieser Anleitung werden wir dieses Regelwerk löschen und eine eigene Zonenbasierende Firewall aufbauen.


    Mit einer Zonenbasierenden Firewall können wir Gerätegruppen und/oder auch eine sogenannte DMZ verwalten. Letzteres ermöglicht es einem oder mehreren Geräten, die sich darin befinden, sich frei ins Internet zu verbinden und auch Verbindungen aus dem Internet annehmen zu dürfen.

    Noch besser: Wir können Subnetze & VLANs bauen und unser Netzwerk damit segmentieren. :thumbup:


    Der Aufbau in diesem Beispiel ist simpel: WAN, LAN (vertrauensvolle Umgebung) und DMZ.


    Bevor wir also anfangen müssen wir eine neues Regelwerk bauen. Eine 3-Zonen Firewall benötigt insgesamt 4 Zonen (der Router für sich selbst ist die Zone LOCAL und sollte immer kommunizieren können). Nun könnten wir für jede Richtung und Zone Regeln bauen. Das wären dann gut 12 an der Zahl. Wir machen uns das etwas einfacher und übersichtlicher.

    Der Aufbau

    Code: Zone LOCAL
    LOCAL TO WAN
    LOCAL TO DMZ
    LOCAL TO LAN
    
    Wird zu:
    LOCAL TO ALL

    Da die Zone LAN unsere vertrauensvolle Umgebung ist sollte der Verkehr von hier an alle anderen Zonen möglich sein. Momentan haben wir allerdings noch ein bestehendes Regelwerk dass die Kommunikation ins LAN verhindert.


    Code: Zone LAN
    LAN TO WAN
    LAN TO DMZ
    LAN TO LOCAL
    
    Wird zu:
    LAN TO ALL
    Code: Zone WAN
    WAN TO LAN
    WAN TO DMZ
    WAN TO LOCAL
    
    Wird zu:
    WAN IN

    Es folgt noch das DMZ mit dem es dann insgesamt 6 Firewallregeln wären:

    Code
    DMZ TO WAN
    DMZ TO LAN
    DMZ TO LOCAL
    
    LAN TO ALL
    LOCAL TO ALL
    WAN IN

    Nun fangen wir an unser Gerät zu konfigurieren.

    Konfiguration

    Loggt euch auf der Weboberfläche ein und benutzt das CLI oder geht direkt via SSH/PuTTy auf den Router.


    :!: Bevor ihr nun hier loslegt, löscht in der GUI das WAN_IN Rules Set falls ihr beim Einrichten den Wizard verwendet habt. :!:

    Code
    edit firewall name WAN_IN
    set default-action drop
    set rule 1 action accept
    set rule 1 description Akzeptiert und verbunden
    set rule 1 log disable
    set rule 1 protocol all
    set rule 1 state established enable
    set rule 1 state related enable
    
    exit
    • Erstellt ein Regelwerk mit den Namen WAN_IN
    • Standard Action ist "drop"
    • Die Beschreibung lautet "Akzeptieren und verbinden"
    • Schaltet das Log aus
    • Wird auf alle Protokolle angewendet
    • Setzt die Regel auf "Akzeptieren und verbinden"


    Wir starten das nächste Ruleset (Regelwerk) wie folgt:

    Code
    edit firewall name LOCAL_TO_ALL
    set default-action accept
    
    edit firewall name LAN_TO_ALL
    set default-action accept
    
    exit
    Code
    edit firewall name DMZ_TO_WAN
    set default-action accept
    
    exit

    Wenn ihr hier einen genauen Blick darauf werft, seht ihr das der Router DHCP und DNS für die DMZ Zone stellt.

    (Falls ihr also einen eigenen DNS/DHCP Service/Server habt müsst ihr genau dieses Setting auslassen und es im "DMZ TO LAN" hinterlegen.)


    Nach dem Neustart des Routers werdet ihr in der GUI das nun erstellte Regelwerk sehen - das sollte ohne Fehlerausgabe passiert sein. Ansonsten schaut nochmal genau nach. ;)

    Nun fehlen uns nur noch die Richtlinien zu den Zonen.

    Richtlinien

    Beachtet das hier das WAN Interface "eth0" verwendet wird, das kann bei euch natürlich ein anderes Interface sein. Also bitte entsprechend anpassen!

    • Erstellt die Zone und die Zugehörigkeit des Interface (Bsp.: Zone WAN an eth0)
    • Standard Action ist "drop"
    • In den nächsten 3 Zeilen bestimmen wir das Firewall Regelwerk das für ankommenden Verkehr zur Zone angewendet werden soll. Basis hierfür ist von wo aus der Verkehr kommt. Beispiel: Verkehr der vom WAN ins LAN geht, hier greift das Regelwerk WAN_IN.

    Wir haben nun also alle 3 Zonen und das Regelwerk sowie die Richtlinien erstellt. Zum kurzen Verständnis was in diesem Beispiel passiert:


    Geräte oder Clients die am switch0 hängen (eth1,2,3 etc.) sind der LAN Zone zugeteilt und kommen ins Internet. Clients die am eth3 stecken sind in der DMZ Zone, ziehen die IP Adresse und DNS vom EdgeRouter. Sie können aber NICHT ins LAN kommunizieren.

    One last thing

    Wer aufgepasst hat, merkt das wir für das eth3 (DMZ) noch einen IP-Adressenbereich anlegen müssen. Die darf natürlich nicht in der Standardumgebung des LAN (192.168.1.1/24) sein. Hier könnt ihr selbst kreativ sein und z.b. etwas nehmen wie 192.168.212.1/24 oder 10.10.0.1/24. (Auf dem Interface auf "Actions > Config")


    Damit dann auch Geräte die am eth3 angeschlossen werden entsprechende IP-Adressen bekommen, müsst ihr noch einen DHCP Server einrichten. Klickt dafür im Menüband auf "Services" und fügt einen DHCP Server mit der von euch gerade "erdachten" IP Range ein. Router und DNS bitte nicht vergessen zu hinterlegen!


    Nun habt ihr euren EdgeRouter mit einer guten Basis Firewall ausgestattet. 8)


    Es wird noch einen Beitrag zum Thema EdgeRouter Sicherheit & Härtung [Advanced Anleitung] geben.




    Quellen:

    Ubiquiti Ubiquiti Zone Ubiquiti NAT and Portforwarding

    Videos, Filme und Streaming | Hardware,- oder Softwareencoding

    Vorwort

    Jeder der seine Filme schon einmal digitalisiert hat oder in der Vergangenheit mit DivX ganze DVDs in bequeme Grössen gerippt hat, kennt das Thema mit den Bitraten, Frames und b-Frames etc.
    Prinzipiell lässt sich zwischen den Homefilmen und den Blurays (auch die UHDBD) unterscheiden. Bei Streaming kommen nochmal andere Punkte auf den Plan.

    Für erstgenannte wollen wir eigentlich immer die maximale Qualität aus dem Material ziehen - und das am liebsten zu recht humanen Encodierzeiten. Aber wieso das? Nun, die TV Grössen nehmen zu - die Pixelmenge auch, aber nicht im gleichen Verhältnis. Grosse Bildflächen lassen schlechte Schärfe oder griesslige Bildqualität sofort aufzeigen. Auch wenn einige Filme mit sogenanntem Grain aufgenommen wurden um eine gewissen Authentizität aufzubauen - kann man encodierbedingte Qualitätseinbusen sofort erkennen. Da wären z.b. Pixelmatsch (Vollfarbflächen), Quatratbildung (Blockbildung), Verwaschene Übergänge etc.


    Nun wäre es ja ein einfaches den Regler in Handbrake/DVDFab einfach auf Maximal zu stellen und alles wird gut. Das ist leider zu einfach. Hier passiert es das die Datei grösser wird als das eigentliche Original. :D

    Denn wie alles im Computerbereich hat jeder Codec ein gewissen mindest "Wirkungsgrad" sowie einen maximalen Grad an Effizienz bei & bis Bitrate X.

    Warum kann das passieren und wie hängt das zusammen?
    Ihr seit mit der Vorgang einer Datei Komprimierung vertraut? Wie aus einem RAW oder HEIC ein Bild im Format "jpeg" wird? Grob gesagt ist es beim Codec von Filmen in etwa ähnlich.


    >> Die Beste Qualität ist das softwareseitige Encodieren <<

    Codecs

    Wir haben in den aktuellen Zeiten zwischen h.264/h.265 auch noch VP und AV1 zur Codec Auswahl. Am verbreitetsten sind die ersten Beiden mit denen wir uns hier dann auch beschäftigen. Während also h.265 der offizielle Nachfolger von h.264 ist und vor allem bei der Effizienz in niedrigen Bitratenbereich zugewonnen hat und Bewegungsmuster in x Richtungen erkennt, glänzt h.264 bei hohen Bitraten mit mehr Schärfe aber auch grösseren Dateien. Warum das so ist, wann wir welchen Codec am Besten auswählen bzw. wie das so passiert schauen wir uns in einem Beispiel genau an.


    h.264

    • Pixelidentifizierung/Ratifizierung gegenüber Mpeg2 (DVD) verdoppelt
    • Rasterung der einzelnen Bildblöcke in eine Pixelfläche bis zu 16x16
    • Erkennung bis zu 9 Bewegungsrichtungen innerhalb der i-Frame Abfolge
    • 4k Auflösung mit 60 FPS und 10 Bit

    h.265

    • Pixelindetifizierung erneut verdoppelt
    • Rasterung der einzelnen Bildblöcke in einer Pixelfläche bis zu 64x64
    • Erkennung bis zu 35 Bewegungsrichtungen innerhalb der i-Frame Abfolge
    • 8k Auflösung mit 120 FPS und 12 Bit


    Mpeg Historie und maximal erzielbare Einsparung der Dateigrössen.


    Codec Vergleich Der h.264 Codec gegen h.265 HEVC im Vergleich.


    Wie man sieht liegt h.265 im Schnitt bei knapp 50% der Dateigrösse gegenüber h.264. Allerdings nur wenn man die Settings und Einstellungen des jeweiligen Codec eben auch kennt und richtig setzt! In meinen Tests konnte ich Schärfenunterschiede zu Gunsten von h.264 erkennen. Was die Details allerdings angeht, glänzt h.265 auf. Vor allem im niedrigen Bitratenbereich oder bei schnellen/vielen Bewegungen im Bild. Dies natürlich im mittleren Bereich der Komprimierung betrachtet. Am oberen Ende der Skala liegt h.264 vorne.


    >> h.265 glänzt mit mehr Details bei sehr kleinen Datenraten, ist folglich für Low Profile Videos und Streaming geeignet <<


    Wie muss man sich das vorstellen, mit der Rasterung und der Pixelfläche sowie deren darauf basierender Bewegungserkennung?


    Vergleich h.264 AVC gegen h.265 HEVC Der Vergleich der Rasterung und Erkennung von h.264 AVC gegen h.265 HEVC.


    In diesem Schaubild wird klar wieso bei niedrigen Bitraten h.265 kleinere Dateien produzieren kann.


    Die Bewegungserkennung setzt zwischen den I-Frames an. Sagen wir für den Codec ein wichtiges Referenzbild und der Analyse der darauffolgenden Bildern um zu erkennen ob und wie weit sich darin Bewegungen für ihn "entdecken" lassen. Damit er seinen Raster und die daraus resultierende Bitrate abschätzen kann. Die Intelligenz funktioniert hier nur innerhalb der Bildabfolge. Wenn das I-Frame also mitten in einer Bewegung sitzt wird Platz verschwendet.


    i-Frames und IDR Frames Die Abbildung im Beispiel: I-Frames und IDR Frames und deren Abfolge. In diesem Fall schätzt die Bewegung P4 die Herkunft von P2 ein und der Codec rastert die Bildfolge darauf basierend ein.


    >> Einfache "natürliche" Regel: Viel Bewegung - Bitrate wird heruntergesetzt. Wenig Bewegung und/oder Standbild - Bitrate wird so hoch wie möglich gesetzt <<


    Leider sieht es bei der Qualität etwas anders aus. Hier mal ein Beispiel anhand eines Films bei 1920x1080:


    h.265 - 4750kb/s | Totalgrösse: 5.29GB


    h.264 - 3655kb/s | Totalgrösse: 3.96GB


    Deutlich bessere Schärfe bei h.264 bei niedrigerer Bitrate in dieser Szene gegenüber dem h.265 Ergebnis. Seltsam? Mitnichten - es liegt an der Erkennung des Codec in Kombination der Einstellungen beim encodieren des Films. Wenn wir bei beiden Codec die Bitrate um sagen wir weitere 30% VBR senken wird h.265 das Rennen gegenüber h.264 machen. Abgesehen von der daraus resultierenden, sehr bescheidenen Qualität, wird man beim h.265 mehr Restdetails im Bild wiederfinden, während h.264 dann schon ein deutlich matschiges Bild darstellt.


    Die Qualität ab einer Bitrate von 25 000 und höher ist bei beiden sehr gut. h.265 wird je nach Filmgenre eine wirklich kleinere Datei abliefern, da weniger (Informations) Overhead. Bei der Schärfe wird aber auch hier h.264 leicht die Nase vorne haben.


    Bevor wir den Schritt Richtung Zeitaufwand und den Unterschied zwischen Soft,- Hardwareencodierung machen, hier noch eine kleine Auflistung zu sehen als Richtwert. Sowie eine mögliche Empfehlung je nach Filmtyp und Art.


    Grundeinstellungen:

    {Platzhalter}


    Und hier eine Übersichtstabelle als Angabe/Richtwert beim encodieren von Filmmaterial, die Werte sind als Durchschnitt bzw. eher Minimum und Platzersparnis orientiert:


    h.264

    AuflösungBitrate
    480P720x4801800
    720P1280x7203500
    1080P1920x10807750
    2160P3840x216016500


    h.265

    AuflösungBitrate
    480P720x4801000
    720P1280x7202000
    1080P1920x10804000
    2160P3840x216010000


    Wichtig ist zu Wissen dass dies je nach Inhalt und Schnitt zu sehen ist. Wer einen Michael Bay Film umwandelt wird deutlich höhere Werte benötigen um eine gute Qualität zu erzielen. Warum? Weil die Kameraführung mit schnellen Bewegungen vollzogen wird und die Bildfolge teilweise in extrem kurzen Abschnitten erfolgt. Das macht es für den Codec und seinem Raster sehr schwierig denn wir Wissen ja nun bereits -> viel Bewegung hohe Kompression -> weniger Details evtl. matschiges Bild.


    >> Wer Filme in Archivqualität erzeugen möchte sollte deshalb bei beiden Codecs zwischen 23500 und 29900 liegen. <<

    Hard,- und Softwareencodierung

    Wie ist das nun mit der Hardwareencodierung. Das ist doch Klasse mittlerweile wieviel Zeit man spart!?


    Beim Thema Zeitersparnis ist hier ein ganz grosses Plus für die hardwarebasierende Videoumwandlung.

    Das Ganze hat aber natürlich auch eine gewisse Kehrseite es folgen natürlich wie immer Details. ;)


    Um der Frage nachzugehen Zeitersparnis vs. Ergebnis (Qualität) habe ich mich mit den Hardwareencodern von Nvidia, AMD, Intel und Apples T2 Chip beschäftigt. Als Programme standen auf allen beiden Plattformen (Linux, MacOS) Handbrake, DVDFab und Apple Compressor zur Seite.


    Auffälligkeit & Herausforderung: Was mir auf allen Plattformen auffiel ist, das nicht jede Software, alle oder jeden Hardwareencoder sieht bzw. benutzt. Es liegt am Softwareanbieter welche Plattform er supported. Dies war besonders gut auf der Mac Plattform sichtbar, die mir neben dem Intel QuickSync auch die AMD Grafikkarte aber auch Apples T2 für Hardwareencodierung anbietet. Während der Tests habe ich also angepasste Hardware Profile benutzt die die jeweilige Hardwareseite auch Tatsache benutzt um eine Vergleichbarkeit zu ermöglichen.


    Tools
    Handbrake (Nvidia und Intel)
    DVDFab (AMD und Nvidia)

    Compressor (AMD, Intel und Apple T2)


    Wertungen


    Bildqualität

    Platz 1 Apple T2
    Platz 2 Nvidia

    Platz 3 Intel QuickSync

    Platz 4 AMD


    Encodierzeit

    Platz 1 Nvidia
    Platz 2 Intel QuickSync

    Platz 3 Apple T2
    Platz 4 AMD

    Zwischenfazit

    Für Kurzfilme, Hobbyfilme, YouTube und Co. mehr als ausreichend. Und eine bequeme Funktion um schnelle Ergebnisse zu liefern. Apples T2 ist nur knapp Sieger (Bildqualität Gesamthaft), Nvidia (Quattro) glänzt mit der kürzesten Encodierzeit und der noch vergleichsweise besten Farbwiedergabe vom Testfeld. AMD bildet zusammen mit Intel das Schlusslicht.


    >> Wer an der besten/höchsten Qualität seines Ausgangsmaterials interessiert ist, sollte keine hardwarebasierende Encodierung verwenden. Stand 05/2021 <<


    Ergebnis im Detail


    Auffällig waren bei den Tests die unterschiedlichen Farbwiedergaben der einzelnen Testfilme. AMD und Intel encodierte Szenen zeigten farblosere Darstellung und deutlichen Verlust von Tiefe im Bild. Die Raster scheinen hier also neben der Pixelflächen auch die Farbinformationen deutlich einzudampfen (hoher Verlust von Details). Mit am Besten machen sich hier Nvidia und Apples T2 Chip. Ebenfalls auffällig im direkten Vergleich einer Szene zwischen allen Encodern ergibt sich kein homogenes Bild. Farbe, Tiefe und Schärfe sowie Flächenerkennung sind bei jeder Plattform fast ohne Gemeinsamkeit. Hierzu kommen dann noch die unterschiedlichen Abstufungen der internen unterstützten Codecs (h.264 / h.265).


    • Allgemein starker Detail und Farbverlust
    • Hoher Unterschied der Qualität zwischen den Engines (z.b. Farbe, Blockbildung, Matschige Bildflächen)
    • Dateigrösse nicht wirklich kleiner ggü. Softwareencodierung
    • HDR Umsetzung ist praktisch nicht sichtbar


    Durch die vielen langwierigen Tests (Teilweise bis zu 29h für 4k HDR in Softwareencodierung) habe ich etwas Zeit verbracht, mich über die Hardwarengines zu Informieren. Diese Informationen sind nur schwer ausfindig zu machen und werden bei dem Grossteil der Hersteller einfach nur Oberflächlich im Marketing Jargon eingebaut. D.h. ganz ohne grosse Details was wie welche Werte und Settings unterstützt werden.


    Fakt 1: Die Hardwareencodierung ist starr. Was zum Zeitpunkt der Entwicklung des Produkts für das Entwicklerteam einfloss (Stichwort: Wertung/Prio der Funktion für das Produkt) bleibt auch nach dem Ausliefern auf dem Stand - das Können der Engine kann nicht durch Firmware/Softwareupdates aufgewertet und verbessert werden.

    Fakt 2: Hardwareencodierung bedient sich zu 97 % den Standardsettings. Das heisst ggü. der Softwareencodierung können keine detaillierten Feinheiten eingestellt werden. Z.b. bframes, Graustufen, dynamische Bildfolge, 2-pass Encodierung et cetera. So manche Software bietet die Schalter auf der Oberfläche, was dort gesetzt ist wird praktisch nicht berücksichtigt.


    Anhand der Entdeckungen und der Tests kann ich nun mittlerweile auch Erklären wie es zu den Qualitätsunterschieden der einzelnen Engines kommt.
    Kurz gesagt: Weil die Encoder Engines von Nvidia sowie Apples T2 Chip "aufgewertet/auf einem neueren Stand" sind. Sie bieten feinere Raster und eine etwas umfangreichere Befehlsunterstützung. AMD ist hier trotz recht starker Grafikchips in der aktuellen Serie etwas ins Hintertreffen geraten. Das Intel QuickSync bleibt hier einfach mal ohne Kommentar.


    Ich werde später noch einige Bildbeispiele folgen lassen und den Artikel auch noch um weitere Punkte wie z.b Streaming und Container wie Matroska oder MP4 erweitern.

    Danke fürs Lesen. Hinterlasst doch gerne eure Kommentare. Wünsche/Anregungen oder auch eigene Erfahrungen!



    Quellen
    x265 Group x.264 Technik