My Feed Title Bluescreengenerator.de - Feed 2020-11-11T14:36:00+01:00 Chris Kunkel https://bluescreengenerator.de Spaltenmodus im vi nutzen https://bluescreengenerator.de/blog/spaltenmodus-im-vi-nutzen 2020-11-11T14:36:00+01:00 2020-11-11T14:36:00+01:00
  • Strg + v startet den Spaltenmodus
  • mit den Pfeiltasten die gewünschten Spalten markieren
  • Shift + i startet den Insert-Mode innerhalb des Spaltenmodus
  • Gewünschten Text eingeben, anschließend mit Esc beenden
  • Die Änderungen werden erst nach dem Beenden durch Esc sichtbar.

    ]]>
    [Debian] apt Suite Änderung bestätigen https://bluescreengenerator.de/blog/debian-apt-suite-aenderung-bestaetigen 2020-09-21T22:12:00+02:00 2020-09-21T22:12:00+02:00 Sofern bei einer Paketquelle die Suite geändert wird, muss diese Änderung beim Updaten von Hand bestätigt werden. Das kommt beispielsweise vor, wenn ein testing-Release zu stable wird. Oder auch, wenn der Paketquellenanbieter die Versionsnummer ändert (s. hier am Beispiel des unifi Controllers)

    E: Für das Depot »https://dl.ubnt.com/unifi/debian stable InRelease« wurde der »Codename«-Wert von »unifi-5.14« in »unifi-6.0« geändert.
    N: Sie müssen dies explizit bestätigen, bevor Aktualisierungen von diesem Depot angewendet werden können. Lesen Sie die apt-secure(8)-Handbuchseite, wenn Sie weitere Informationen benötigen.

    Die Änderung kann über folgenden Einzeiler bestätigt werden:

    apt-get --allow-releaseinfo-change update

    ]]>
    MySQL auth_socket Plugin deaktivieren https://bluescreengenerator.de/blog/mysql-auth_socket-plugin-deaktivieren 2020-06-27T13:20:59+02:00 2020-06-27T13:20:59+02:00 auth_socket deaktivieren, damit wieder eine Anmeldung mit Passwort möglich ist:

    mysql -u root
    MariaDB [(none)]> update mysql.user set password=password('geheim') where user='root';
    MariaDB [(none)]> update mysql.user set plugin='' where user='root';
    MariaDB [(none)]> flush privileges;
    ]]>
    [Arch Linux] WLAN Region setzen https://bluescreengenerator.de/blog/arch-linux-wlan-region-setzen 2019-11-03T11:38:00+01:00 2019-11-03T11:38:00+01:00 Bei langsamer WLAN Verbindung unter Arch Linux hat es bei mir geholfen, die WLAN Region zu setzen. Diese war vorher nicht definiert. dmesg hat folgenden Fehler ausgeworfen:

    $ dmesg | grep firmware
    
    [    3.087847] platform regulatory.0: Direct firmware load for regulatory.db failed with error -2

    Lösung: WLAN Region setzen

    • Paket crda installieren: pacman -S crda
    • reboot
    • Region setzen, für Deutschland: iw reg set DE
    • (optional) kontrollieren mit: iw reg get

    Die WLAN Performance ist seitdem normal.

    ]]>
    [Froxlor] Webserver Logs anonymisieren https://bluescreengenerator.de/blog/froxlor-webserver-logs-anonymisieren 2019-10-20T11:33:00+02:00 2019-10-20T11:33:00+02:00

    Froxlor ist eine in PHP geschriebene und unter der GPL veröffentlichte Servermanagementanwendung, die das Betreiben von Hostingservern vereinfacht. Einmal eingerichtet lassen sich Hostings (vordergründig Webhosting und Mailhosting, Details s. auf der Homepage von Froxlor) bequem per Webinterface anlegen und verwalten.

    Was die Wahl des Serverbetriebssystems angeht, hat man die Wahl zwischen diversen Linuxdistributionen. Am besten unterstützt werden Debian und seine Derivate. Aber auch Centos und Arch Linux stehen zur Auswahl. Außerdem hat man die Wahl, welche Serversoftware eingesetzt werden soll. Beim Webserver beispielsweise zwischen Apache, nginx und Lighttpd.

    Logs anonymisieren

    Wie man die Logs anonymisieren kann hängt von der eingesetzten Webserversoftware ab. Ich möchte hier die Möglichkeiten bei Einsatz des Apache und des nginx erklären.

    Apache

    Beim Apache ist es relativ simpel. Der Server unterstützt von Haus aus das Umleiten des Logfiles an ein Script. Diese Eigenschaft macht man sich zunutze, um die IP Adressen der Besucher zu anonymisieren. Entsprechende Scripte gibt es im Internet, ich bediene mich des Pythonscripts Anonip. Dieses Script speichert man z.B. unter /opt/anonip.py ab. Anschließend teilt man Froxlor mit, dass es die Logdateien an Anonip weiterleiten soll. Diese Einstellung findet man unter Einstellungen -> Webserver Einstellungen. Dort das Häkchen für die Umleitung setzen und im Feld darüber den Pfad zu Anonip und die Parameter mitgeben (s. Screenshot)

    Bei den Parametern aus dem Beispiel werden bei IPv4 Adressen die letzten 8 Bits (=das vierte Oktett) und bei IPv6 die letzten 64 Bits maskiert. Der Output Parameter sorgt dafür, dass die Logs auch am in Froxlor definierten Ort gespeichert werden. Das führt zu folgenden beispielhaften Ergebnissen:

    192.0.2.123 wird zu 192.0.2.0
    2001:0db8:aaaa:bbbb::1234:5678 wird zu 2001:0db8:aaaa:bbbb::

    nginx

    nginx unterstützt das Umleiten der Logs an ein Script nicht, das Häkchen ist bei Auswahl von nginx nicht verfügbar. Allerdings bietet Froxlor die Möglichkeit, das Log-Format direkt anzugeben. Um nginx das Anonymisieren beizubringen, braucht man auch hier ein bisschen Programmierlogik. Folgendes Script muss unter /etc/nginx/conf.d/anonymize-log.conf abgelegt werden. Der Dateiname ist übrigens frei wählbar, muss aber mit .conf enden, da nginx standardmäßig alle .conf Dateien im Verzeichnis /etc/nginx/conf.d/ beim Starten einbindet.

    map $remote_addr $ip_anonym1 {
        default 0.0.0;
        "~(?P<ip>(\d+)\.(\d+)\.(\d+))\.\d+" $ip;
        "~(?P<ip>[^:]+:[^:]+):" $ip;
    }
    
    map $remote_addr $ip_anonym2 {
        default .0;
        "~(?P<ip>(\d+)\.(\d+)\.(\d+))\.\d+" .0;
        "~(?P<ip>[^:]+:[^:]+):" ::;
    }
    
    map $ip_anonym1$ip_anonym2 $ip_anonymized {
        default 0.0.0.0;
        "~(?P<ip>.*)" $ip;
    }

    Dieses Skript stammt von blag.nullteilerfrei.de. Lediglich die letzten drei Zeilen wurden entfernt, da man das definieren des Logformats Froxlor überlässt.

    Unter Einstellungen => Webserver Einstellungen ist das Access Log Format folgendermaßen anzugeben:

    "$ip_anonymized - $remote_user [$time_local] \"$request\" $status $body_bytes_sent \"$http_referer\" \"$http_user_agent\""

    Dadurch wird das originale Logformat von nginx beibehalten, die IPs jedoch verschleiert. Wichtig ist, dass die doppelten Anführungszeichen mit einem Backslash escaped werden, da Froxlor das Format selbst in Anführungszeichen setzt. Ohne die Escapezeichen würde nginx meckern. Im Gegensatz zum Apache-Beispiel verschleiert diese Version bei IPv6 Adressen die letzten 96 Bits. Möchte man das ändern, muss die .conf-Datei nach den eigenen Wünschen angepasst werden.

    Aus 2001:0db8:aaaa:bbbb::1234:5678 wird hier 2001:0db8:. IPv4 Adressen werden wie oben im letzten Oktett verschleiert.

    ]]>
    Verschlüsselungen im Windows 10 IKEv2 Client anpassen https://bluescreengenerator.de/blog/verschluesselungen-im-windows-10-ikev2-client-anpassen 2019-06-08T11:30:00+02:00 2019-06-08T11:30:00+02:00 Der eingebaute IKEv2 VPN Client von Windows 10 unterstützt von Haus aus lediglich Verbindungen, die auf DH-Group 2 setzen. Das ist heutzutage nicht mehr zeitgemäß. Möchte man eine sicherere Verbindung einrichten (wie beispielsweise hier beschrieben), so kann man sich die Powershell zu Nutze machen.

    Dabei ist es notwendig, dass die Verbindung nicht über die grafische Oberfläche eingerichtet wird, sondern direkt auf der Powershell. Wenn man einen VPN Server nach dem oben verlinkten Artikel aufgesetzt hat, lautet der notwendige Befehl für die Client-Verbindung:

    Add-VpnConnection -Name "Mein VPN" -ServerAddress "meinvpn.server.de" -TunnelType IKEv2 -AuthenticationMethod EAP

    Statt der Serveradresse kann auch eine IP Adresse eingetragen werden. Die Verschlüsselungsparameter können dann mit einem weiteren Befehl gesetzt werden:

    Set-VpnConnectionIPsecConfiguration -ConnectionName "Mein VPN" -DHGroup ECP384 -CipherTransformConstants AES256 -EncryptionMethod AES256 -IntegrityCheckMethod SHA256 -PfsGroup ECP384 -AuthenticationTransformConstants SHA256128

    Der Befehl muss anschließend noch einmal in der Powershell bestätigt werden. Anschließend läuft die Verbindung mit der neuen Ciphersuite.

    • Verschlüsselung: AES256
    • Hash: SHA256
    • DH-Group 20
    • PFS-Group 20
    ]]>
    Netzwerk zu NordVPN verbinden mit OPNsense https://bluescreengenerator.de/blog/netzwerk-zu-nordvpn-verbinden-mit-opnsense 2019-02-09T11:22:00+01:00 2019-02-09T11:22:00+01:00

    Wer im Internet surft hinterlässt Spuren. Webserver loggen Zugriffe und speichern die IP Adressen des Clients, sowie u.a. Datum, Uhrzeit, Browser und angefragte URL. Internetprovider wiederum speichern mitunter die IP Adressen ihrer Kunden. So lässt sich theoretisch nachvollziehen, welcher Kunde wann wohin surft.

    Wer seine Privatsphäre bewahren will kann daher die Dienste eines VPN Providers nutzen. Dadurch sieht beispielsweise der Webserver nicht mehr die IP Adresse des eigenen Anschlusses, sondern die des VPN Providers. Außerdem kann der ISP nicht verfolgen, wohin zugegriffen wurde, da dies ebenfalls über eine verschlüsselte Verbindung über den VPN Provider läuft. Letztlich muss man allerdings dem VPN Provider vertrauen. Viele werben damit, keine Logdateien zu speichern. So auch der Anbieter NordVPN, dessen Dienst für dieses Beispiel herangezogen wird. Grundsätzlich sollte die Anleitung auch auf andere VPN Provider anwendbar sein, sofern sie OpenVPN unterstützen.

    Warum VPN über den Router?

    Die Anbieter machen es ihren Kunden möglichst einfach und bieten für diverse Betriebssysteme, sei es für PC, Smartphone oder Tablet, passende Apps an, über die man sich in Nullkommanichts verbinden kann und “unsichtbar” wird. Allerdings gilt der Schutz dann ausschließlich für dieses eine Gerät. Teilweise gibt es sogar Browserplugins, der Schutz beschränkt sich dann sogar nur auf das Surfen mit dem verwendeten Browser, der das Plugin installiert hat. Möchte man sein Heim-/Firmennetzwerk komplett absichern, und damit auch Smarthome-, IoT- oder Mediengeräte einbeziehen, ist es am Sinnvollsten, die Verbindung auf einem zentralen Netzelement einzurichten, also dem Router.

    Ich verwende OPNsense, eine Firewalldistribution, die auf FreeBSD basiert, in der Softwareversion 19.1 (“Inspiring Iguana”) vom 31. Januar 2019. Definitiv ebenfalls möglich ist die Benutzung von pfSense, die Konfiguration ist dort nahezu identisch. Andere Router-/Firewallsoftware, die OpenVPN unterstützt, sollte ebenfalls funktionieren.

    Voraussetzungen

    Zunächst einmal ist ein Abo bei NordVPN notwendig. Die Preise sind gestaffelt. Je länger die Laufzeit des Abos, desto geringer der monatliche Betrag.

    Die Verbindung wird via OpenVPN hergestellt. NordVPN bietet für alle seine Server bereits fertige Konfigurationsdateien an, die über folgenden Link heruntergeladen werden können: https://nordvpn.com/de/ovpn/. Such’ dir dort einen passenden Server aus und öffne die Konfigurationsdatei mit einem Texteditor. Der Serverstandort wirkt sich logischerweise auf die Latenzen aus. Ein Server in Heimatnähe wird schneller reagieren als ein Server am anderen Ende der Welt. Aus Privacy-Sicht ist es aber egal, welcher Server gewählt wird. Interessant wird die Auswahl, wenn man beispielsweise Geoblocking umgehen will.

    Konfiguration

    Du wirst nacheinander zunächst den OpenVPN Tunnel konfigurieren. Nachdem dieser erfolgreich aufgebaut ist widmest du dich dem NAT und anschließend dem Policy-Based-Routing. Du kannst am Ende über Firewallregeln entscheiden, ob du sämtlichen Traffic über VPN jagen willst oder nur einzelne Clients. Auch die Beschränkung auf einzelne Ports ist möglich. Meine OPNsense Oberfläche ist auf Englisch eingestellt. Die Menüpunkte sind daher auch auf Englisch.

    CA erstellen

    NordVPN authentifiziert seine Kunden anhand von Benutzername und Kennwort. Außerdem muss die Vertrauenswürdigkeit des NordVPN-Zertifikats gegeben sein. Daher erstellest du zunächst eine CA unter dem Menüpunkt System => Trust => Authorities:

    In das Feld “Certificate data” gehört das Zertifikat aus der OpenVPN Konfig von NordVPN rein....

    ]]>
    Fortigate Sniffer benutzen https://bluescreengenerator.de/blog/fortigate-sniffer-benutzen 2018-03-27T11:19:00+02:00 2018-03-27T11:19:00+02:00 Sofern die Option Packet Capture im Menü der Fortigate nicht erscheint, kann man den Sniffer mit folgendem Link direkt aufrufen:

    https://[ IP_der_Fortigate ]/ng/page/p/firewall/sniffer/

    Alternativ lässt sich auch via CLI sniffen, allerdings bekommt man dann kein schönes .pcap File heraus. Der Befehl dazu lautet:

    diagnose sniffer packet < interface > [ filter ]

    : das Interface, auf dem man sniffen möchte, “any” für alle, [ filter ] : optionale Angabe von Filtern, um die Ausgabe übersichtlich zu halten

    ]]>
    Synology WebStation Timeout Problem beheben https://bluescreengenerator.de/blog/synology-webstation-timeout-problem-beheben 2018-02-08T11:16:00+01:00 2018-02-08T11:16:00+01:00 Wer eine DiskStation von Synology besitzt kann über eine zusätzliche App (“Web Station”) Websites auf seinem NAS hosten. Das funktioniert soweit auch ganz gut. Allerdings gibt es bei einigen Anwendungen Probleme mit einem Timeout.

    Beispiel

    Ich hoste auf meinem NAS eine Nextcloud Instanz auf einem Apache 2.4 mit PHP 7.0. Sobald ich den integriertem Updater benutzen möchte, um die Version zu aktualisieren, bekomme ich spätestens dann eine Fehlermeldung, wenn während der Prozedur ein Backup erstellt wird. Dieser Vorgang dauert nämlich etwas und nach exakt einer Minute kommt es zum Timeout.

    Die Ursache liegt darin, dass die Diskstation ihren eigenen Webserver (nginx) als Reverse Proxy für den Webserver der Web Station schaltet. Dieser nginx hat per Default einen Timeout von 60s gesetzt. Dauert nun ein Vorgang auf dem Apache länger (wie das o.g. Backup) und liefert dieser daher nicht innerhalb von einer Minute eine Antwort, läuft der nginx in einen Timeout.

    Lösung

    Mit Hilfe des Supports konnte ich das Problem lösen. Das Problem lag nicht darin, dass ich nicht wusste, wie es zu lösen ist. Es lag eher darin zu wissen, wo es zu lösen ist. Die Diskstation baut ihre Konfigurationen nämlich aus diversen Dateien bei jedem Diensteneustart neu zusammen. Für nginx muss folgende Datei (zumindest Stand jetzt, in der DSM DSM 6.1.5-15254) angepasst werden:

    /var/packages/WebStation/target/misc/VirtualHost-nginx.mustache

    Dort gibt es zwei Abschnitte, einen für Apache 2.4, einen für Apache 2.2. In beiden muss der Parameter proxy_read_timeout mit entsprechendem Wert (bei mir zehn Minuten) eingefügt werden:

    {{#apache22}}
        include     proxy.conf;
        proxy_read_timeout 600s;
        location / {
            proxy_pass  http://{{listen}};
        }
    {{/apache22}}
    {{#apache24}}
        include     proxy.conf;
        proxy_read_timeout 600s;
        location / {
            proxy_pass  http://{{listen}};
        }
    {{/apache24}}

    Anschließend muss der Dienst noch mittels sudo synoservicectl --restart nginx neu gestartet werden.

    Diese manuelle Änderung wird überschrieben, sobald die Web Station App aktualisiert wird. Man muss diese Prozedur also nach jedem Update wiederholen.

    ]]>
    [Juniper] Datei per FTP/SCP kopieren https://bluescreengenerator.de/blog/juniper-datei-per-ftp-scp-kopieren 2017-09-19T11:15:00+02:00 2017-09-19T11:15:00+02:00 Datei vom Router zu einem entfernten FTP-Server senden:

    file copy /var/tmp/logs.tgz ftp://username@***.**.***.**/logs.tgz
    ]]>