Quantcast
Channel: Software – Andy's Blog
Viewing all 1830 articles
Browse latest View live

WordPress: Kommentare kopieren oder verschieben

$
0
0

Durch ein nennen wir es mal deplaziertes Kommentar von Uwe mit einem Anliegen zu Reolink-IP-Kameras im Beitrag zur LDAP-Signierung kam die Frage auf, wie man denn Kommentare verschieben könnte.

Also schnell die Suchmaschine der Wahl befragt und gleich mit dem ersten Ergebnis einen Treffer gelandet:

perun.net – WordPress-Kommentare kopieren oder verschieben

Das Plugin Copy or Move Comments von biztechc löst die Anforderung schnell und unkompliziert:

  • Das Plugin installieren und aktivieren.
  • Im Menü auf „Copy/Move Comments“ klicken.
  • Die Aktion (Kopieren/Verschieben) auswählen.
  • Als Quelle (Typ, Seite, Beitrag, etc.) auswählen.
  • Angeben ob nur ein Kommentar oder dieses samt Antworten ausgewählt werden soll.
  • Das Ziel angeben und auf „Perform Action“ klicken.


Ubiquiti UniFi Network Controller: Fehler beim E-Mail-Versand an SMTP-Server

$
0
0

In einer Ubiquiti UniFi-WLAN-Umgebung gab es Schwierigkeiten mit dem Netz und man wunderte sich, das die Benachrichtigungs-Mails ausblieben.

Seinerzeit bei der Einrichtung hatte alles funktioniert, die Software (inkl. der Firmware auf den APs) ist aktuell. Beim Versuch eine Test-Mail zu versenden erschien nur kurz eine Info, das es einen Fehler gegeben hat, leider ohne weitere Infos. Im Mailserver-Log war noch nicht mal ein Zustellversuch protokolliert. Bei Betrachtung des Netzwerkverkehrs mit SmartSniff konnte festgestellt werden, das der Controller noch nicht mal versucht eine Verbindung zum Mailserver aufzubauen. Im Log des Controllers fand sich folgendes:

[2020-06-10T10:56:11,664]  WARN  sanitize - Invalid key exists in Setting payload, key=analytics_disapproved_for
[2020-06-10T10:56:13,760]  ERROR [ApiServlet] - Servlet.service() for servlet [ApiServlet] in context with path [] threw exception [Servlet execution threw an exception] with root cause
java.lang.ClassNotFoundException: javax.activation.DataSource
	at jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:583) ~[?:?]
	at jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178) ~[?:?]
	at java.lang.ClassLoader.loadClass(ClassLoader.java:521) ~[?:?]
	at com.ubnt.service.b.ooOo.super(Unknown Source) ~[ace.jar:?]
	at com.ubnt.ace.api.L.o00000(Unknown Source) ~[ace.jar:?]
	at com.ubnt.ace.api.ApiServlet.service(Unknown Source) ~[ace.jar:?]
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:742) ~[tomcat-embed-core-8.5.34.jar:8.5.34]
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231) ~[tomcat-embed-core-8.5.34.jar:8.5.34]
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-8.5.34.jar:8.5.34]
	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) ~[tomcat-embed-websocket-8.5.34.jar:8.5.34]
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-embed-core-8.5.34.jar:8.5.34]
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-8.5.34.jar:8.5.34]
	at com.ubnt.ace.view.AuthFilter.doFilter(Unknown Source) ~[ace.jar:?]
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-embed-core-8.5.34.jar:8.5.34]
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-8.5.34.jar:8.5.34]
	at org.apache.catalina.filters.CorsFilter.handleNonCORS(CorsFilter.java:364) ~[tomcat-embed-core-8.5.34.jar:8.5.34]
	at org.apache.catalina.filters.CorsFilter.doFilter(CorsFilter.java:170) ~[tomcat-embed-core-8.5.34.jar:8.5.34]
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-embed-core-8.5.34.jar:8.5.34]
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-8.5.34.jar:8.5.34]
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198) [tomcat-embed-core-8.5.34.jar:8.5.34]
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96) [tomcat-embed-core-8.5.34.jar:8.5.34]
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:610) [tomcat-embed-core-8.5.34.jar:8.5.34]
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140) [tomcat-embed-core-8.5.34.jar:8.5.34]
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81) [tomcat-embed-core-8.5.34.jar:8.5.34]
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87) [tomcat-embed-core-8.5.34.jar:8.5.34]
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342) [tomcat-embed-core-8.5.34.jar:8.5.34]
	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:800) [tomcat-embed-core-8.5.34.jar:8.5.34]
	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66) [tomcat-embed-core-8.5.34.jar:8.5.34]
	at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:806) [tomcat-embed-core-8.5.34.jar:8.5.34]
	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1498) [tomcat-embed-core-8.5.34.jar:8.5.34]
	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) [tomcat-embed-core-8.5.34.jar:8.5.34]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) [?:?]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) [?:?]
	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) [tomcat-embed-core-8.5.34.jar:8.5.34]
	at java.lang.Thread.run(Thread.java:835) [?:?]

Es musste also etwas mit der Java-Umgebung nicht stimmen. Nach einem Blick mit dem Process Explorer war klar woran es happert:

Auf dem System war noch ein Java SE 12 installiert, damit ist der Ubiquiti UniFi Network Controller nicht kompatibel, dieser benötigt Java SE oder Java JRE in der Version 8. Eine passende JRE war auch installiert, wurde allerdings nicht verwendet.

Nachdem abgeklärt war, das Java SE nicht mehr benötigt ist, wurde dieses kurzerhand deinstalliert und siehe da, der Controller kann wieder mailen.

Windows: Active Directory-Objekte als *.csv exportieren

$
0
0

Kurz notiert, da die Frage vor kurzem aufkam (Hallo Marcel): Es gibt mehrere Möglichkeiten Objekte wie z.B. Benutzer und deren Eigenschaften als *.txt und *.csv aus dem Active Directory zu exportieren.

Direkt mit Bordmittel und ohne großen Aufwand klappt das bereits mit der MMC. Eine sehr gute bebilderte Anleitung findet sich hier:

CodeTwo – How to export users from Active Directory

Zusätzlich finden sich im Netz jede Menge Beispiele für die PowerShell und CSVDE, wie z.B.:

Andreas Schreiner – Active Directory Benutzer & Eigenschaften in CSV exportieren

Windows: Keine Anmeldung an LSI Avago LSA möglich, wenn der Server ein Domänencontroller ist

$
0
0

Beim Versuch sich an der RAID-Controller-Software von LSI Avago auf einem Domänen-Controller anzumelden erhält man mitunter die Fehlermeldung „Error Code 1326: Der Benutzername oder das Kennwort ist falsch.“

Bei dem betroffenen Server handelt es sich um einen Windows Server 2019 der als Domänencontroller betrieben wird und mit einem LSI Avago MegaRAID SAS 9341-4i bestückt ist. Die Zugangsdaten sind indes zu 100%-ig korrekt. Weder die Anmeldung am Host (Voreinstellung) noch via Domain funktionieren. Abhilfe schafft folgender Workaround:

  • Den Dienst „LSAService“ beenden.
  • Die Datei „C:\Program Files (x86)\LSI\LSIStorageAuthority\conf\LSA.conf“ editieren.
  • Den Wert von „full_access_groups“ passend zur Systemsprache (siehe Quelle) ändern, z.B. für ein deutsches Windows:
    full_access_groups = Administratoren

    Fehlt der Eintrag, diesen hinzufügen.

  • Den Dienst (wieder) starten.
  • Am LSA mit den Einstellungen „Domain“, „<Domäne>\Administrator“ samt dessen Kennwort anmelden.

Auf Domänen-Mitgliedsservern tritt dieses Verhalten bislang (der Erfahrung nach) nicht auf.

Quelle:

Thomas Krenn – Wiki – LSI Storage Authority Error Code 49 Invalid Credentials

Windows: Amtskennziffer(n) für Telefon und Modem in der Registry ändern

$
0
0

Beispielsweise beim Wechsel der Telefonanlage und der damit verbundenen Änderung der TAPI auf Windows-Computern kann es notwendig werden, auch die Amtskennziffer (aka Amtsholung) zu ändern. So geschehen bei einem Kunden der von einer Telekom DigitalisierungsBox Premium zu einer 3CX-Telefonanlage gewechselt ist.

Jetzt händisch auf jedem PC die Amtskennziffern zu ändern kann ab einer gewissen Größenordnung an Computern sehr aufwendig sein. Wenn man weiß, wo die Angaben in der Registry zu finden sind, lässt sich das Ganze automatisieren.

Die „berühmt-berüchtigte“ Null für die Amtsholung findet sich unter

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Telephony\Locations\Location1

Im Durchschnittsfall sind die Einträge

  • AreaCode = Ortsvorwahl
  • Country = Land/Region
  • LongDistanceAccess = Amtskennziffer für Ferngespräche
  • OutsideAccess = Amtskennziffer für Ortsgespräche

am relevantesten.

Daten von einem defektem Qnap-NAS retten (oder auch nicht)

$
0
0

Von einem Neukunden habe ich gerade ein ausgefallenes NAS von Qnap, Modell TS219P II, in der Werkstatt. Sowohl das NAS als solches mag nicht mehr (startet ständig [auch ohne Platten] neu, sowie beide 2 TB-Festplatten (Seagate SV35) sind defekt.

Ein Backup gibt es nicht und auch sonst ist zu dem Gerät bzw. dessen Einrichtung wie Kennwort, RAID-Konfiguraton, etc. nichts bekannt, entsprechend ungut ist die Lage. Die Festplatten werden zudem an unseren Werkstatt-PCs nicht richtig erkannt (1x nur max. 4GB, die andere mit max. 128 GB). Die S.M.A.R.T.-Abfragen brechen sogar mit dem Verweis auf SCSI-Befehl Fehler ab, soetwas habe ich bislang auch noch nicht erlebt.

So wie sich das für den Moment darstellt ist das Ganze wohl ein Totalschaden in jedweder Hinsicht. Sollte keine der beiden Platten, ich gehe jetzt einfach mal von einem RAID 1 aus, sich irgendwie ansprechen lassen, bestünde die letzte Hoffnung einer Datenrettung in der Weitergabe der Medien an ein Datenrettungs-Labor.

Unabhängig davon und der eigentliche Grund des Beitrags war die ursprüngliche Hoffnung von den Festplatten was kopieren zu können. Je nach NAS-Hersteller, Modell, Firmware-Stand und der Konfiguration sind dafür verschiedene Maßnahmen notwendig.

Das quasi alle NAS-Systeme dieser IT-Welt irgendwie Linux nutzen kommt einem dabei zu gute, bleibt dann allerdings immer die Frage ob LVM verwendet, welches RAID-Level genutzt wird und mit welchem Dateisystem dieses formatiert ist.

Speziell für Qnap finden sich im Netz eine Vielzahl von Anleitungen und (möglicherweise) hilfreiche Tools. Daher dieser Beitrag als Quasi-Linkliste:

Qnap – Wiki – Static Volume Recovery

Qnap Support – How To Recover Data From Raid 1 / Single Disk

Qnap Club – [Howto] NAS HDD mit Windows lesen / Recovery / Undelete

Über den Qnap Club wurde ich auf das Tool R-Linux aufmerksam. Dieses gibt es für Windows und Linux und bietet verschiedene Funktionen an. So lassen die Laufwerke nach bekannten Mustern scannen oder Abbilder erstellen.

Öffentliche IPv4-Adresse an CGN-/DS-Lite-Anschluss mittels vServer und OpenVPN Peer to Peer (Shared Key)

$
0
0

Neben den Möglichkeiten mit 6tunnel oder Anbietern wie Feste-IP.net einzelne Ports von einem vServer mit öffentlicher IPv4-Adresse zu einem CGN-/DS-Lite-Anschluss mit hoffentlich statischer IPv6-Adresse umzuleiten, gibt es noch die Variante, das sich das heimische Netzwerk via OpenVPN zu einem vServer verbindet und der für die Server/Dienste eingehende Datenverkehr entsprechend umgeleitet wird.

Eine solche Lösung hat ggf. den Charme, das man keine Schwierigkeiten mit wechselnden IP-Adressen am Anschluss hat und in einer Fallback-Situation (LTE- statt VDSL, etc.) dennoch die Dienste von außen wie gewohnt erreichbar sind.

In diesem Beispiel kommt eine pfSense als OpenVPN-Client am CGN- bzw. DS-Lite-Anschluss und ein vServer in KAMP’s DHP Mini-Paket mit Debian 10 Buster als OpenVPN-Server zum Einsatz.

Bemerkung: Vorab der Hinweis, das dies ein erster Aufbau eines solchen Konstruktes ist. Statt PSK sollte (später) eine PKI für OpenVPN verwendet werden. Ferner fehlt es mir noch ein Erfahrung hinsichtlich nftables. Darüber hinaus ist angedacht weitere Beiträge zu diesem Thema in Verbindung mit der erwähnten PKI, anderen Routern (OPNsense, Securepoint UTM, evtl. auch FRITZ!BOX dann allerdings mit IPsec, das ganze Thema evtl. auch mal mit Wireguard) zu schreiben. Generell sind Verbesserungsvorschläge willkommen, einfach die Kommentar-Funktion nutzen.

KAMP DHP Mini vServer konfigurieren

  • Einen neuen vServer mit Debian 10 Buster anlegen und starten.
  • Die Firewall-Regeln für den Zugriff per ssh (Port 22/tcp) und OpenVPN (Port 1194/udp) im ControlCenter erstellen.
    Troubleshooting: Sollte der vServer mittels ssh und Ping nicht erreichbar sein, dann diesen nochmals neu starten. Es kommt vor, das beim ersten Start die IP-Konfiguration nicht richtig übernommen wird.
  • Folgende Befehle via ssh und als root ausführen:
    IP-Forwarding (Routing) aktivieren:
    nano /etc/sysctl.conf
    net.ipv4.ip_forward=1

    Die Änderung speichern und anwenden:

    sysctl -p

    Den OpenVPN-Server vorbereiten:

    apt install openvpn
    cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz /etc/openvpn/server
    gzip -d /etc/openvpn/server/server.conf.gz
    mv /etc/openvpn/server/server.conf /etc/openvpn/
    

    Einen shared key erstellen:

    cd /etc/openvpn
    openvpn --genkey --secret static.key

    Optional: Die Beispielkonfiguration zur Sicherheit kopieren (für den Fall das etwas schief läuft):

    cp server.conf server.conf.original

    Die Server-Konfiguration bearbeiten:

    nano server.conf

    und wie folgt abändern:

    # ca ca.crt
    # cert server.crt
    # key server.key # This file should be kept secret
    
    secret /etc/openvpn/static.key
    
    # server 10.8.0.0 255.255.255.0
    
    # ifconfig-pool-persist /var/log/openvpn/ipp.txt
    
    ifconfig 10.8.0.1 10.8.0.2
    
    # dh dh2048.pem
    
    # tls-auth ta.key 0 # This file is secret
    
    log         /var/log/openvpn/openvpn.log
    
    auth SHA256
    comp-noadapt
    
    route 192.168.1.0 255.255.255.0
  • Den OpenVPN-Daemon beim Booten starten:
    systemctl enable openvpn@server
  • Den OpenVPN-Daemon starten:
  • Bei „Compression“ „Omit Preference, +Disable Adaptive LZO Compression [Legacy style, comp-noadapt]“ auswählen.
    systemctl start openvpn@server

Der OpenVPN-Daemon sollte nun laufen. Der aktuelle Status kann mit

 systemctl status openvpn@server

überprüft und das Protokoll kann unter „/var/log/openvpn“ eingesehen werden.

pfSense konfigurieren

  • Unter „VPN – OpenVPN – Clients“ eine neue Verbindung anlegen.
  • Bei „Server Mode“ „Peer to Peer (Shared Key)“ auswählen.
  • Bei „Server host or address“ die IP-Adresse des vServers eintragen.
  • Bei „Cryptographic Settings“ den Haken entfernen bei „Auto generate“ und im daraufhin erscheinenden Feld „Shared Key“ den Inhalt aus der Datei „static.key“ vom vServer einfügen.
  • Bei „Encryption Algorithm“ „AES-256-CBC (256 bit key, 128 bit block)“ auswählen.
  • Bei „IPv4 Tunnel Network“ „10.8.0.0/24“ eintragen.
  • Bei „Compression“ „Omit Preference, +Disable Adaptive LZO Compression [Legacy style, comp-noadapt]“ auswählen.
  • Auf „Save“ klicken.
  • Unter „Firewall – Rules – OpenVPN“ eine Regel anlegen, die Verbindungen vom VPN aus zulässt. Für den ersten Test tut’s eine Any-Regel, diese sollte später unbedingt wieder deaktiviert oder entfernt werden und granularere Regeln setzen.

Der Client beginnt sofort mit dem Verbindungsaufbau. Den aktuellen Stand der Verbindung kann man unter „Status – OpenVPN“ einsehen.

Routing testen

Vom vServer aus sollte man sowohl die IP-Adressen 10.8.0.2 als auch 192.168.1.1 (und weitere im LAN) anpingen können. Von der pfSense bzw. aus derem LAN aus sollte man 10.8.0.1 anpingen können.

Port-Forwarding auf dem vServer konfigurieren

Debian 10 Buster verwendet nftables statt iptables als Firewall bzw. für das Port-Forwarding.

Auf dem vServer folgende Befehle als root ausführen:

apt install nftables
systemctl enable nftables.service

Eine Konfigurationsdatei bzw. die Regeln in der Datei „/etc/nftables.conf“ können z.B. wie folgt aussehen:

#!/usr/sbin/nft -f

flush ruleset

table inet filter {
	chain input {
		type filter hook input priority 0;

		# accept any localhost traffic
		iif lo accept

		# accept traffic originated from us
		ct state established,related accept

		# accept ping
        	ip protocol icmp icmp type echo-request ct state new accept

		# ssh
		tcp dport 22 ct state new accept

                # http
                tcp dport 80 ct state new accept 

		# OpenVPN
		udp dport 1194 ct state new accept
		udp dport 1195 ct state new accept

		# accept neighbour discovery otherwise IPv6 connectivity breaks.
		ip6 nexthdr icmpv6 icmpv6 type { nd-neighbor-solicit,  nd-router-advert, nd-neighbor-advert } accept

		# count and drop any other traffic
		counter drop

	}
	chain forward {
		type filter hook forward priority 0;
	}
	chain output {
		type filter hook output priority 0;
	}
}

table ip nat {
  chain prerouting {
    type nat hook prerouting priority 0;
    # redirect port 80/tcp (http) to webserver
    iif eth0 tcp dport { 80 } dnat 192.168.1.2
    # redirect port 1194/udp (OpenVPN) to pfSense
    iif eth0 udp dport { 1194 } dnat 192.168.1.1
  }
  chain postrouting {
    type nat hook postrouting priority 100;
    oif tun0 masquerade
  }
}

In diesem Beispiel wird in der Tabelle „inet“ sowohl Ping, ssh, http als auch OpenVPN zugelassen. Ping und ssh gilt dabei nur für den vServer. Http wird weitergeleitet und bei OpenVPN ist der Port 1195/udp für den lokalen OpenVPN-Server zu dem sich die pfSense verbindet, während der Port 1194/udp für Roadwarrior ist und zur pfSense weitergeleitet wird.

Die eigentlichen Port-Weiterleitungen werden in der Tabelle „ip nat“ definiert. Anhand der Einträge kann man die Weiterleitung von http (80/tcp) und OpenVPN (1194/udp) zum jeweiligen Host gut ablesen.

Es ist dringend empfohlen die Regeln zu dokumentieren, damit man den Überblick oder die Hintergründe (wieso/weshalb/warum, wohin) nicht verliert.

Hinweis: In diesem Beispiel sind keine Regeln enthalten, wie man ggf. Ports in den Tabellen „inet filter“, „ip filter“ oder „ipv6 filter“ zur generellen Erreichbarkeit der Ports, Interfaces oder dem Weiterleiten bzw. Zulassen von Paketen konfiguriert. Sofern man die genannten Tabellen verwendet, müssen entsprechende Regeln hinterlegt werden! Ausgehend von einem frisch installierem Debian 10 Buster mit nftables funktioniert das genannte Beispiel wie beschrieben, da keine weiteren Tabellen konfiguriert sind.

Damit Änderungen an der Konfigurationsdatei übernommen werden als root den Befehl

nft -f /etc/nftables.conf

ausführen.

Tipp: Je nach vServer und Konfiguration des eingesetzten Linux kann es vorkommen, das der „nft“-Befehl nicht gefunden wird. In einem solchen Fall zunächst zu root mittels „sudo su“ oder „su -“ wechseln.

Zu beachten

Wo Licht ist, ist auch Schatten. Am Beispiel des Webserver sieht man im Protokoll als Client-Adresse lediglich die OpenVPN-IP des vServers. D.h. die eigentliche IP-Adresse eines Website-Besuchers kann man so nicht mehr ermitteln, in Folge funktionieren etwaige Filter- oder Schutzmaßnamen auf dem Webserver nicht (mehr). Solche Mechanismen müssten auf den vServer vorgelagert werden. Speziell für Webserver wäre es eine Überlegung über einen Reverse Proxy nachzudenken.

Ähnliches gilt für SMTP, dieses könnte man einfach weiterleiten, geschickter kann allerdings sein, den vServer als Smart Host zu verwenden.

Leitet man OpenVPN weiter und der OpenVPN-Server ist eine pfSense, so muss in der Server-Konfiguration das richtige Interface angegeben werden. Per Default wird immer „WAN“ verwendet. Für die Weiterleitung muss dann das Interface ggf. auf „LAN“ oder „any“ gestellt werden.

Gleichfalls relevant für das Weiterleiten von OpenVPN sind unterschiedliche Ports. Standard ist 1194/udp, wird dieser allerdings bereits verwendet, beispeilsweise wie hier beschrieben um die pfSense an den vServer „anzudocken“, dann muss ein anderer Ports für die Roadwarrior oder Site-to-Site-Verbindungen verwendet werden!

Was noch?

Die Server bzw. Dienste müssen auf die Anfragen vom VPN antworten können, d.h. beispielsweise evtl. Interface-Bindung (engl. binding), lokale Firewall-Regeln, etc. prüfen und anpassen.

Verwendet man DNS, gemeint ist FQDN, um von extern auf Ressourcen zuzugreifen muss in diesem die öffentliche IP-Adresse des vServer hinterlegt werden.

Wie eingangs erwähnt wird hier für den ersten Test und den Anfang PSK verwendet. Aus Gründen der Sicherheit sollte zumindest später auf eine PKI gesetzt werden!

Im Gegensatz zu so manch anderem vServer-Anbieter muss man bei KAMP die Firewall-Regeln doppelt pflegen, einmal im ControlCenter und einmal im vServer selbst.

Als alternativer Anbieter kein beispielsweise netcup verwendet werden, dort gibt es sehr günstige vServer (ungetestet).

Zu beachten ist außerdem der Traffic den man erzeugt, denn bei KAMP’s DHP Mini sind 10 GB pro Tag inkludiert, bei netcup 40 TB pro Monat.

Quellen:

OpenVPN – FAQ – What is and how do I enable IP forwarding on Linux?

TecAdmin.net – How To Enable IP Forwarding on Linux

OpenVPN – Static Key Mini-HOWTO

DigitalOcean – How To Set Up an OpenVPN Server on Debian 9

Debian – Wiki – OpenVPN

superuser – Complete masquerading NAT example using nftables on Linux?

GitHub – mqus/nft-rules – VPN Server

debianforum.de – Port Forwarding in OpenVPN-Tunnel

CGN-/DS-Lite-Anschluss mit OpenVPN und öffentlicher IPv4-Adresse: Gesamten Datenverkehr durch das VPN leiten

$
0
0

Möchte man den gesamten Daten-/Internetverkehr durch das VPN und den vServer leiten, wie es im Szenario im Beitrag Öffentliche IPv4-Adresse an CGN-/DS-Lite-Anschluss mittels vServer und OpenVPN Peer to Peer (Shared Key) skizziert ist, sind im wesentlichen nur zwei kleine Änderungen notwendig.

Auf der OpenVPN-Server oder -Client-Seite muss die Option „redirect-gateway“ gesetzt sein. Am Beispiel des genannten Beitrags genügt es auf der pfSense in der OpenVPN-Client-Konfiguration im Abschnitt „Advanced Configuration“ im Feld „Custom options“

redirect-gateway

einzufügen.

Auf dem vServer muss dann noch die Datei „/etc/nftables.conf“ angepasst werden:

table ip nat {
  chain postrouting {
    type nat hook postrouting priority 100;
    oif eth0 masquerade
  }
}

Konkret geht es um die Zeile „oif eth0 masquerade“ in der Tabelle „ip nat“ beim „postrouting“. Ggf. ist die ausgehende Schnittstelle („eth0“) für die eigene Umgebung anzupassen.

Die Änderung mit

/usr/sbin/nft -f /etc/nftables.conf

übernehmen und einmal das VPN neu verbinden und schon wird der gesamte Datenverkehr durch das VPN und den vServer geleitet.

Am einfachsten testen lässt sich das anhand der Abfrage der eigenen öffentlichen IP-Adresse auf solchen Seiten wie z.B. ping.eu. Vor der Änderung bekommt man die IP-Adresse des eigenen Anschlusses bzw. bei CGN-/DS-Lite-Anschlüssen die des Providers angezeigt, nach der Änderung wird die IP-Adresse des vServer angezeigt.

Unbedingt beachten sollte man die Datenmenge die man erzeugt, da je nach vServer-Anbieter nur eine bestimmte Menge pro Tag gestattet ist.

Sorgen machen, das überhaupt kein Internet mehr funktioniert, sollte die VPN-Verbindung mal streiken braucht man sich so nicht machen, denn in einem solchen Fall wird wieder das Gateway des Internet-Anschlusses verwendet.

Quellen:

gentoo linux – Nftables/Examples

nftables – wiki – Performing Network Address Translation (NAT)

OpenVPN – Community Ressources – How To


Umfrage oder Abstimmung in Outlook erstellen

$
0
0

Outlook bietet die Möglichkeit Umfragen oder Abstimmungen zu erstellen und an eine Vielzahl von Empfängern zu senden.

Der Vorgang ist erfreulich einfach:

  • Eine neue Mail erstellen.
  • Auf „Optionen“ klicken und in der Gruppe Verlauf auf „Abstimmungsschaltfl. verwenden“ auswählen.
  • Die gewünschten Punkte aktivieren.
  • Die Nachricht versenden.

Das Ganze funktioniert allerdings nur in Verbindung mit Microsoft’s Exchange Server oder Office 365. Hinzu kommt, das die Abstimmungschaltflächen beim Empfänger nur innerhalb der Exchange- bzw. Office 365-Organisation und auch nur in Outlook zur Verfügung stehen. D.h. Mails die an externe Empfänger gehen, enthalten zwar den Text aber keine Schaltflächen.

Outlook in Verbindung mit Alternativen zum Exchange Server, wie bspl. dem MDaemon Messaging Server, bietet ebenfalls nicht die Möglichkeit Umfragen oder Abstimmungen zu realisieren.

Um unabhängiger zu sein kann man auf andere Dienste ausweichen. Eine Übersicht gibt es beispielsweise hier:

t3n – 11 Tools für Online-Umfragen: Diese Helfer erleichtern Befragungen

Quellen:

Outlook-Blog – Wie man eigene Optionen zur Abstimmung versenden kann

Microsoft Support – Erstellen einer Abstimmung in Outlook

Microsoft Support – Erstellen von Umfragen in E-Mail-Nachrichten und Überprüfen der Ergebnisse

MS SQL: Volltextsuche (nachträglich) hinzufügen

$
0
0

Vor kurzem kam die Frage von einem Kollegen (Grüße nach Köln) auf, wie man bei einem bestehenden MS SQL Server 2012 Standard die Volltextsuche nachträglich hinzufügen könnte.

Hintergrund dieser Geschichte war, das die Suche in einer Fachanwendung nich funktionierte und der Herstellersupport meinte, das dieses Feature im SQL-Server fehlen würde.

Eigentlich ist das Nachinstallieren von Funktionen bei einem bestehenden MS SQL-Server keine große Sache, wenn man den richtigen Weg beschreitet. Einfach das Setup herunterladen und starten geht in der Regel schief.

In den allermeisten Fällen gelingt folgende Heransgehensweise:

  • Aus dem Startmenü und dem entsprechenden SQL-Untermenü das „SQL Server-Installationscenter“ starten oder via „Systemsteuerung – Programme und Features“ den gewünschten SQL-Server auswählen und auf „Ändern“ klicken.
  • Im „SQL Server-Installationscenter“ unter „Installation“ auf „Neue eigentständige SQL Server-Instanz oder Hinzufügen von Funktionen zu einer vorhanden Installation“ anklicken.
  • Ggf. wird nach den Setup-Dateien gefragt, diese findet man i.d.R. unter „C:\“, sofern sie nicht nach der Installation manuell gelöscht wurden. Alternativ kann man das Setup (nochmals) herunterladen und im Zuge dieses Schrittes darauf verweisen.
  • Unter „Installationstyp“ die bestehende SQL Server-Instanz auswählen und anschließend bei der „Funktionsauswahl“ die Volltextsuche anhaken.
  • Nach Abschluss der Installation das SQL Management Studio öffnen und zur durchsuchenden Datenbank, genauer ausgedrückt zur entsprechende Tabelle wechseln.
  • Mit der rechten Mautaste diese anklicken und „Volltextindex“ auswählen.
  • Aus dem Kontextmenü dann „Volltextindex definieren“ auswählen und den Suchbereich festlegen.

Empfehlens- bzw. Lesenwert zu diesem Thema ist die erstgenannte Quelle (s.u.).

Das Ende der Geschichte war übrigens, dass das Feature bereits installiert war und es sich um einen Bug in der Fachanwendung handelte, weswegen die Volltextsuche nicht funktionierte. Ein Update durch den Hersteller löste das Problem.

Quellen:

C# Corner – Full Text Indexing in SQL Server 2012

TechRepublic – Adding SQL Full-Text Search to an existing SQL Server

stackoverflow – SQL Server 2012 Install or add Full-text search

Öffentliche IPv4-Adresse an CGN-/DS-Lite-Anschluss mittels vServer und OpenVPN Peer to Peer (SSL/TLS)

$
0
0

Wie im ersten Beitrag dieser Serie angekündigt folgt nun die Variante mit „Peer to Peer (SSL/TLS)“, also der Verwendung von Zertifikaten statt eines PSK. Abgesehen von der PKI- und OpenVPN-Konfiguration auf beiden Seiten ändert sich sonst nichts, daher hier im wesentlichen nur die Änderungen gegenüber dem ersten Beitrag.

PKI erstellen

Für die Nutzung von Zertifikaten wird eine PKI (Public Key Instructur, dt. Zertifikatsinfrastruktur), kurzum eine eigene Zertifizierungsstelle die Zertifikate ausgibt, benötigt.

Bemerkung: Der Vollständigkeit halber sei erwähnt, das man eine PKI/CA auch offline betreiben kann bzw. diese nicht zwingend auf dem vServer sein muss. Man kann genauso gut die notwendigen Zertifikate bspl. auf der pfSense erzeugen, die Zertifikate die für den vServer sind exportieren und das CA- und Client-Zertifikat einfach bei der Konfiguration auf der Client-Seite auswählen. Von Vorteil bei dieser Variante ist eine einfachere Handhabung dank GUI und mehr Sicherheit, falls der vServer doch mal kompromitiert werden sollte.

Für das hier genannte Vorhaben werden drei Zertifikate gebraucht: 1x CA, 1x Server, 1x Client. Diese werden alle auf dem vServer erzeugt. Auf diesem als root folgende Befehle ausführen:

EasyRSA vorbereiten:

cp -r /usr/share/easy-rsa /etc/openvpn/
cd /etc/openvpn/easy-rsa
mv vars.example vars

Die Datei „vars“ editieren und ab Zeile 97 auf die eigenen Bedürfnisse hin anpassen:

#set_var EASYRSA_REQ_COUNTRY "US"
#set_var EASYRSA_REQ_PROVINCE "California"
#set_var EASYRSA_REQ_CITY "San Francisco"
#set_var EASYRSA_REQ_ORG "Copyleft Certificate Co"
#set_var EASYRSA_REQ_EMAIL "me@example.net"
#set_var EASYRSA_REQ_OU "My Organizational Unit"

Wichtig: Die vorangestellte # entfernen!

./easyrsa init-pki

CA erstellen

./easyrsa build-ca nopass

Als CA-Namen bspl. „OpenVPN-CA“ eingeben.

Server-Zertifikat erstellen

./easyrsa gen-req OpenVPN-Server nopass
./easyrsa sign-req server OpenVPN-Server

Als Server-Namen bspl. „OpenVPN-Server“ eingeben.

Client-Zertifikat erstellen

./easyrsa gen-req OpenVPN-Client nopass
./easyrsa sign-req client OpenVPN-Client

Als Client-Namen bspl. „OpenVPN-Client“ eingeben.

Nachdem die Zertifikate und Schlüssel erzeugt wurden, diese umkopieren:

cp /etc/openvpn/easy-rsa/pki/ca.crt /etc/openvpn
cp /etc/openvpn/easy-rsa/pki/issued/OpenVPN-Server.crt /etc/openvpn
cp /etc/openvpn/easy-rsa/pki/private/OpenVPN-Server.key /etc/openvpn

DH-Parameter und TLA-Key (für HMAC) erzeugen

openssl dhparam -out /etc/openvpn/dh2048.pem 2048
/usr/sbin/openvpn --genkey --secret /etc/openvpn/ta.key

OpenVPN-Server konfigurieren

Gegenüber der Beispielkonfiguration von Debian muss die Datei „/etc/openvpn/server.conf“ wie folgt abgeändert werden:

tls-server
ca ca.crt
cert OpenVPN-Server.crt
key OpenVPN-Server.key

# server 10.8.0.0 255.255.255.0

# ifconfig-pool-persist /var/log/openvpn/ipp.txt

ifconfig 10.8.0.1 10.8.0.2

comp-lzo no
compress

log         /var/log/openvpn/openvpn.log

auth SHA256

route 192.168.1.0 255.255.255.0

Anschließend einmal den Daemon durchstarten:

systemctl restart openvpn@server

pfSense konfigurieren

Zunächst müssen das Zertifikat der CA (ohne privaten Schlüssel) und des Clients inkl. des privaten Schlüssels importiert werden:

  • Über „System – Cert. Manager“ auf der Registerkarte „CAs“ auf „+ Add“ klicken.
  • Bei „Descriptive name“ den Namen, z.B. OpenVPN-CA, eingeben.
  • Bei „Method“ „Import an existing Certificate Authority“ auswählen.
  • Im Feld „Certificate data“ die Daten aus der Datei „ca.crt“ einfügen und auf „Save“ klicken.
  • Auf die Registerkarte „Certificates“ wechseln und auf „+ Add/Sign“ klicken.
  • Bei „Method“ „Import an existing Certificate“ auswählen.
  • Bei „Descriptive name“ den Namen, z.B OpenVPN-Server, eingeben.
  • Im Feld „Certificate data“ die Daten (ab „—–BEGIN CERTIFICATE—–„) aus der Datei „OpenVPN-Client.crt“ einfügen.
  • Im Feld „Private key data“ die Daten aus der Datei „OpenVPN-Client.key“ einfügen.

Der VPN-Client wird wie folgt konfiguriert:

  • Unter „VPN – OpenVPN – Clients“ eine neue Verbindung anlegen.
  • Bei „Server Mode“ „Peer to Peer (SSL/TLS)“ auswählen.*
  • Bei „Server host or address“ die IP-Adresse des vServers eintragen.
  • Bei „Automatically generate a TLS Key.“ den Haken entfernen und im erscheinenden Feld „TLS key“ den Inhalt der Datei „ta.key“ einfügen.
  • Bei „Peer Certificate Authority“ das zuvor importierte CA-Zertifikat auswählen.
  • Bei „Client Certificate“ das zuvor importierte Client-Zertifikat auswählen.
  • Bei „Encryption Algorithm“ „AES-256-CBC (256 bit key, 128 bit block)“ auswählen.
  • Bei „IPv4 Tunnel Network“ „10.8.0.0/24“ eintragen.
  • Auf „Save“ klicken.

Der Client beginnt sofort mit dem Verbindungsaufbau. Den aktuellen Stand der Verbindung kann man unter „Status – OpenVPN“ einsehen.

Den Rest, d.h. Firewall-Regeln, etc. kann man im ersten Beitrag zu diesem Thema nachlesen.

Quellen:

HowtoForge – How to install and configure OpenVPN Server on Debian 10

archlinux – Wiki – Easy-RSA

OpenVPN – Easy-RSA v3 OpenVPN Howto

OpenVPN – 1x HOW TO

OpenVPN – Reference manual for OpenVPN 2.4

OpenVPN – Getting started How-To

DigitalOcean – How To Set Up an OpenVPN Server on Debian 10

Debian – Wiki – OpenVPN

NetGate – PfSense – OpenVPN compression

OpenVPN-Konfiguration in verschiedenen Routern finden

$
0
0

Möchte man OpenVPN-Verbindungen zwischen verschiedenen Routern bauen, ist es meist sehr hilfreich die Konfigurationsdateien zu vergleichen. So lässt sich mitunter schneller als mit den jweiligen GUIs ermitteln, was genau für Einstellungen verwendet werden, denn manchmal werden je nach Anbieter unterschiedliche Begriffe für ein und die selbe Funktion verwendet.

pfSense

Bei pfSense lässt sich sehr schnell und einfach der Speicherort finden. Dieser befindet sich unter

/var/etc/openvpn

Direkt über das Web-Interface lassen sich die Konfigurationsdateien einsehen:

Diagnostics - Edit File - Browse

OPNsense

Auch bei OPNsense findet man die Konfiguration einfach, alles nur via ssh oder direkt an der Konsole. Der Pfad ist identisch zu pfSense:

/var/etc/openvpn

Securepoint UTM

Bei der Securepoint UTM sieht es im Vergleich zu den vorigen beiden Kandidaten anders aus, den dort wird ein Grossteil der Konfiguration in einer SQLite-Datenbank gespeichert. So manches lässt sich allerdings auch außerhalb finden.

Die generelle/globale Konfiguration von OpenVPN sowie die verbindungsspezifischen Zertifikate (nur ca und crl) findet man unter

/etc/openvpn

Die Routen für Site-to-Site liegen wiederum unter

/var/openvpn/<Name>

Die DH-Parameter findet man hier

/root/config

Die eigentliche Konfiguration befindet sich in einer SQLite-Datenbank zur Laufzeit unter

/tmp/running.db

Diverse Parameter werden dem Daemon mitgeben, wie man mittels

ps -aux | grep openvpn

als root über ssh sehen kann.

Der große Rest wird direkt aus der Datenbank mittels Management Interface direkt an bzw. in OpenVPN konfiguriert.

Linux-basierte Router

Bei vielen Linux-basierten OpenVPN-Systemen findet man die Konfiguration unter

/etc/openvpn

Windows: E-Mail direkt aus einer PDF heraus verschicken (oder auch nicht)

$
0
0

Das PDF-Format bietet die Möglichkeit mittels einer Aktionsschaltfläche beispielsweise auch eine E-Mail versenden zu können.

Per Vorgabe verwendet der Adobe Acrobat Reader das Standard-E-Mail-Programm von Windows, sofern nichts anderes konfiguriert wurde, für diese Aufgabe.

Nicht wundern darf man sich, das als Text „Standard-E-Mail-Anwendung (Microsoft Outlook)“ angezeigt wird auch wenn man kein Outlook hat oder verwendet, das liegt ggf. an den Einträgen in der Registry. Thunderbird als Fallbeispiel wird leider nicht unterstützt.

Alternativ kann man Google-Mail oder ein IMAP/SMTP-Konto einrichten:

Bei einem Kunden kommt folgende Kobination zum Einsatz: Adobe Reader, Thunderbird mit einem Freenet-Konto. Da Adobe Thunderbird nicht unterstützt sollte dann das Freenet-Konto direkt eingerichtet werden. Aber leider, ganz gleich welche Kombi aus Protokoll (SSL/TLS) und Port man verwendete, kam keine Verbindung zu stande. Es hieß immer das es ein Problem gegeben hat, ohne weitere Details.

Bis dato konnte keine Lösung, ein Protokoll oder irgendeine Ursache gefunden werden, allerdings wurde auch nicht allzuviel Zeit aufgewendet. Vorstellbar ist, das es Schwierigkeiten bei der verschlüsselten Verbindung gibt. Eine Überlegung ist, das Ganze mal mit Wireshark und Co. zu beobachten oder evtl. stunnel dazwischen zu schalten, so das der Adobe Reader lokal zu stunnel und dieses wiederum (verschlüsselt) zu Freenet verbindet.

Quelle:

Adobe Support Cumminity – How to set Thunderbird as default E- Mail (However, Acrobat/Reader is not compatible with Thunderbird email client )

Securepoint UTM: Eine Test-Umgebung aufbauen

$
0
0

Vor ein paar Tagen rief mich ein Kollege (Grüße in den Norden) an, der sich gerade in Vorbereitung auf seine Securepoint UTM-Schulung samt Zertifizierung befindet. Da es ihm an Erfahrung mit diesem Produkt fehlt kamen solche Fragen wie z.B. „Wie kann ich das nun konfigurierte SSL-VPN testen?“ auf.

Der (imho) einfachste Weg für solche und andere Tests mit überschaubarem Aufwand besteht darin, das Ganze mit virtuellen Maschinen zu machen. Dem zugute kommt, das man eine UTM-Lizenz sowohl auf realem Blech sowie als VM nutzen kann. Als Securepoint -Partner kann man dazu auf seine NFR zurückgreifen oder sich eine Demo- oder Notfall-Lizenz ausstellen (lassen). Möchte man das Ganze mit Hardware aufbauen, benötigt man neben einer physikalisch-vorhandenen UTM auch noch entsprechend viele PCs bzw. Server.

Das Thema kommt mir gerade sehr gelegen, da ich ebenfalls eine Test-Umgebung für meine kleine VPN-Serie (guckst du hier & hier) aufbauen muss. Daher nachfolgend (m)ein Konfigurationsbeispiel unter VirtualBox.

Der Testnetz-Aufbau

Bevor man drauflos installiert sollte man sich kurz Gedanken über den Aufbau machen. Für dieses Vorhaben werden drei virtuelle Maschinen benötigt:

  • 1x Securepoint UTM
  • 1x Virtueller Computer vor der UTM (in deren WAN-Netz)
  • 1x Virtueller Computer hinter der UTM (in deren LAN-Netz)

Das WAN der UTM sellt dabei das normale LAN, also das eigene Heim-/Firmennetz dar. Nachfolgend eine kleine Skizze dazu:

Selbstverständlich könnte man auch einen vorhandenen realen PC aus dem Heim-/Firmennetz für Zugriffsversuche via Port-Weiterleitungen und SSL-VPN nutzen. Damit man allerdings vor etwaigien Routing- oder sonstigen Problemen geschützt ist, bevorzuge ich einen virtuellen Test-PC. So kann bei all den Experimenten nichts schiefgehen.

Ein solcher hier skizzierter Aufbau ist nicht auf Securepoint’s UTM begrenzt. Im Grunde lassen sich so oder so ähnlich für alle virtualisierbaren Router Test-Umgebungen erstellen.

Securepoint UTM VM anlegen und konfigurieren

Zunächst erstellt man eine neue virtuelle Maschine für die UTM. Die Mindestanforderungen lauten:

  • CPU: min. 1 GHz / 1 Core
  • RAM: min. 1 GB
  • Massenspeicher: min. 4 GB

Dies ist allerdings nur das absolute Minimum das bereits mit Einschränkungen z.B. bei der Anzahl der nutzbaren Virenscanner einhergeht. Zum Thema Sizing kann man das Hersteller-Wiki konsultieren:

Securepoint – Wiki – UTM – Unterstützte Hardware

Die Firmware basiert auf Linux, daher bei „Typ“ „Linux“ und bei „Version“ dann „Linux 2.6 / 3.x / 4.x (64-bit)“ auswählen.

Für die geplante Netzwerkinfrastruktur werden zudem zwei virtuelle Netzwerkkarten benötigt:

  • 1x Netzwerkbrücke ins Heim-/Firmennetz (für die WAN-Schnittstelle der UTM, eth0)
  • 1x Internes Netz (das LAN der UTM, eth1).

Aus dem Reseller-Portal lädt man die „UTM v11 – Interaktive Installation ISO“ herunterladen und „legt“ dieses in die virtuelle Maschine ein.

Nun kann man die virtuelle Maschine starten und die Securepoint OS-Installation durchführen:

Securepoint – Wiki – UTM – Installation

Virtueller Test-Server einrichten

Damit man die UTM konfigurieren kann, ist mindestens ein Computer in deren LAN, also im internen Netz mit gleichem Namen notwendig. In diesem Szenario dient eine weitere virtuelle Maschine sowohl als Admin-PC als auch später als Ziel für z.B. eine Port-Weiterleitung zu einem Webserver oder als RDP-Endpunkt bei Nutzung von SSL- oder Clientless-VPN. Das dort verwendete Betriebssystem spielt keine wesentliche Rolle, lediglich das ein moderner aktueller Browser vorhanden sein sollte ist wichtig.

Per Vorgabe verwendet die UTM als IP-Adresse

192.168.175.1

Zu erreichen ist die Verwaltungsoberfläche mit einem Browser unter der URL

https://192.168.175.1:11115

Sozusagen ab Werk ist kein DHCP-Server in der UTM aktiv, daher ist es notwendig, dem virtuellen Test-Server bzw. Admin-PC eine feste IP-Adresse zu geben.

Die Securepoint UTM-Ersteinrichtung

Für die Erst-Einrichtung der UTM ist neben der IP-Adresse wichtig, die Lizenz in Form einer Datei zur Hand zu haben, denn ohne geht es nicht weiter!

Nach dem Lizenzteil startet man den Einrichtungsassistenten und folgt den Dialogen. Speziell für unsere Test-Umgebung hat man bei „Schritt 4 – Internet“ nun die Wahl zwischen

  • „Ethernet mit statischer IP“ (meine Empfehlung) oder
  • „Kabelmodem mit DHCP“.

Sobald die Erst-Einrichtung abgeschlossen und die UTM einmal durchgestartet ist kann man seine Wunsch-Konfiguration vornehmen und alles testen was man möchte.

An dieser Stelle sei jedem das Wiki des Herstellers ans Herz gelegt, da es viele Anleitungen und Erklärungen bietet und zudem übersichtlich sowie verständlich gestaltet ist:

Securepoint – Wiki – UTM

Das eine oder andere Thema findet sich zudem hier im Blog und für alles andere gibt es das Hersteller-eigene Support-Forum, die Kommentarfunktion hier oder den Support.

Securepoint UTM: Site-to-Site (SSL-VPN) mit Debian als Server/Gegenstelle (HELP WANTED)

$
0
0

Seit ein paar Tagen versuche ich folgende Kombi zum Laufen zu bekommen:

Securepoint UTM als Site-to-Site-Client mit einem Debian 10 Buster als Site-to-Site-Server

Im Laufe der Jahre habe ich schon ein paar verschiedene Kombination gebaut, aber solche Schwierigkeiten wie diesmal hatte ich noch nie, zumindest nicht in Verbindung mit OpenVPN, IPsec lassen wir mal außen vor.

Grundsätzlich klappt der Verbindungsaufbau, also PKI, Verschlüsselung, ist offenbar soweit alles gut. Die Verbindung ist zudem stabil. Das gegenseitige Pingen der Tunnel-Endpunkte klappt ebenfalls. Aber z.B. der Ping von Debian aus an das LAN-Interface der UTM oder einen Server hinter der UTM klappt nicht.

Die Pakete gehen zwar vermeintlich in den Tunnel auf der Debian-Seite rein, kommen bei der UTM allerdings nicht an bzw. raus. Wunderbar beobachten kann man das mittels

tcpdump -i tun0

auf beiden Seiten.

Mit dem Securepoint-Support (Danke Jan) war ich da schon dran, aber irgendwie wusste man spontan auch nicht weiter, zumal es ja nicht an der UTM zu hängen scheint. Irgendwas läuft da auf der Debian-Seite etwas schief.

Kurios wirkt dabei, wenn man die gleiche OpenVPN-Server-Konfiguration wie sie pfSense nutzt verwendet, das es eben bei pfSense läuft, bei Debian allerdings nicht.

Als nächstes wurde eine OpenVPN-Server-Konfiguration gebaut, die in etwa der UTM-eigenen Site-to-Site-Server-Konfiguration gleicht, auch damit geht es nicht.

Es ist sonst nicht meine Art Cross-, Triple-, x-fach Posts zu erstellen, aber ich hab‘ das Thema in verschiedenen Foren gepostet, da ich schlichtweg überhaupt nicht mehr weiter weiß:

Securepoint – Support-Forum –
Site-to-Site (SSL-VPN) mit Debian als Server/Gegenstelle

debianforum.de – Securepoint UTM Site-to-Site mit Debian als OpenVPN-Gegenstelle

OpenVPN – Support-Forum – site-to-site between Securepoint UTM & Debian – problems with routing

Da gibt es dann noch weitere Info’s und Angaben wie Config-Files, Routen, was man sonst noch getestet hat, usw.

Jede Hilfe um dieses Rätsel zu Lösen ist willkommen, sei es in den genannten Foren oder hier im Blog via Kommentar(e).


Veeam PN (unter VirtualBox) testen

$
0
0

Neben Datensicherungslösungen bietet Veeam mit Veeam PN eine (mehr oder weniger) schlüsselfertige VPN-Lösung an.

Eine On-Premise-Appliance liegt im OVA-Format für den Import unter VMware ESXi zur Verfügung. Für Microsofts Azure und Amazones AWS gibt es ebenfalls fertige virtuelle Maschinen in den jeweiligen Marketplaces. Einzig Nutzer von Hyper-V, VirtualBox und Co. schauen in die Röhre, aber es gibt Abhilfe.

Gleich Vorweg: Der Betrieb von Veeam PN außerhalb von Azure, AWS und ESXi wird durch den Hersteller nicht unterstützt!

Variante 1:

Theoretisch könnte man die OVA-Datei direkt in VirtualBox importieren, das gelingt sogar, aber nach dem Starten der virtuellen Maschine erhält diese keine IP-Adresse via DHCP bzw. geht überhaupt nicht ans Netz. Das Interface enp0s3 ist down und kann (vmtl.) nur durch diverse Änderungen zum Laufen gebracht werden. Siehe dazu:

Veeam Community Forums – site appliance, need hyperv VHD file, not vmware .ova file

Da in der virtuellen Maschine sowohl nano, vim oder vi fehlen wird’s dann komplizierter die Änderungen an den Konfigurationsdateien vorzunehmen.

Variante 2:

Man kann einen Ubuntu 18.04 Server manuell installieren und das vom Hersteller angebotene Skript zur Einrichtung benutzen:

Install Veeam PN with Script

Irgendwo bin ich falsch abgebogen und das führte automatisch zu

Variante 3:

Man kann einen Ubuntu 18.04 Server händisch installieren und via Repository Veeam PN einrichten.

  • Ubuntu Server installieren.
  • Nach dem Neustart an der Konsole oder via ssh anmelden.
  • Zur Vorbereitung zunächst ein paar Voraussetzungen installieren:
    sudo apt install curl gnupg software-properties-common
  • Zu root werden:
    sudo su
  • Nun den Hersteller-Angaben folgen:
    Install Veeam PN on Ubuntu
    Hinweis:
    Die Anmeldedaten via Browser entsprechen denen des bei der Ubuntu Server-Installation angelegten Benutzers. „root“ mit „VeeamPN“ gilt nur bei Verwendung der fertigen Appliances.
  • Ab hier kann man dann schlicht dem Handbuch folgen.

Persönliche Bemerkung

Trotz Umweg ist Veeam PN schnell installiert. Das Ganze ist gut dokumentiert und funktional. Erfahrenere Anwender mit mehr Ansprüchen werden allerdings schnell im Vergleich zu anderen Lösungen merken, das so einiges an möglichen Einstellungsoptionen fehlt. Dennoch ist Veeam PN einen Blick wert.

Delta Chat – Chatten via E-Mail

$
0
0

Über Delta Chat habe ich bislang sehr wenig geschrieben, die einzige Ausnahme bildet dabei der Beitrag zum Entschlüsseln der Nachrichten unter Windows, wenn man keinen kompatiblen Client nutzt. Was ist nun Delta Chat und warum schreibe ich gerade jetzt darüber?

Kurz gesagt: Delta Chat ermöglicht das Chatten, also den Austausch von Text- und Sprachnachrichten via E-Mail. Bilder, Dateien und Emojis versenden geht natürlich auch. Das Ganze Ende-zu-Ende-verschlüsselt, versteht sich.

Dem einen oder anderen sagt evtl. das Konzept von Chat-over-IMAP, kurz COI, etwas, wobei wenn ich mich recht entsinne Delta Chat da etwas früher dran war als Open Xchange. Togal, zurück zum Thema.

Die Vorteile liegen auf der Hand: E-Mail ist nach wie vor und immer noch das elektronische Kommunikationsmittel Nr. 1. Nahezu jeder Internetnutzer hat eine E-Mail-Adresse und gleichzeitig ist diese auch noch am unabhängistens (sehr viele verschiedene Provider) und wenn man möchte komplett Privat (Stichwort: Eigener Mailserver).

Man ist also nicht auf einen bestimmten Anbieter angewiesen, kann jederzeit Wechseln oder komplett unabhängig sein. Soviel zum Licht, ein wenig Schatten gibt es leider auch: Die E-Mail-Metadaten, also die Dinge die sich im Hintergrund im Header (den Kopfzeilen) einer E-Mail befinden, sind evtl. nicht datenschutzfreundlich. Das betrifft allerdings nicht den Inhalt der Nachricht, den dieser ist verschlüsselt! Absender, Empfänger und die Wegstrecke sind halt erkennbar.

Delta Chat gibt es als App für Android, z.B. via F-Droid, Apple’s iOS (iPhone, iPad), Windows, Linux und macOS.

Ich kann bisher nur von meinen Erfahrungen unter Android, etwas Linux und Windows berichten, wobei, da gibt es nicht viel zu sagen, es läuft. In der Familie haben wir damit zum Teil WhatsApp abgelöst. In der Firma wird Delta Chat fast ausschließlich verwendet, ab und an noch 3CX.

Der Windows-Client läuft mittlerweile ebenfalls stabil, so das man nicht immer zum Smartphone greifen muss. Anfangs behalf ich mir da noch mit einer Linux-VM um auf dem PC chatten zu können. Ist rum.

Man kann Delta Chat mit seinen bestehenden E-Mail-Adressen verwenden, muss man aber nicht. Dem Hörensagen bzw. der Lesart nach soll es Anwender geben, die nutzen die App sogar als E-Mail-Client.

Kurzum: Feine Sache, stressfrei, sicher, open source und entwickelt sich weiter.

Öffentliche IPv4-Adresse an CGN-/DS-Lite-Anschluss mittels vServer und Securepoint UTM

$
0
0

In den ersten Teilen dieser Beitragsserie ging es zunächst um pfSense als OpenVPN-Client für den vServer mit der öffentlichen IPv4-Adresse, der den OpenVPN-Server stellt. Nun folgt die Variante mit einer Securepoint UTM als OpenVPN-Client.

Zur Info: OpenVPN wird bei Securepoint SSL-VPN genannt.

Im Laufe der Jahre hat sich schon die eine oder andere Erfahrung mit der Kombi aus pfSense und Securepoint UTM in Sachen OpenVPN ergeben, diese + die zuletzt genannten Beiträge fließen nun in die nachfolgenden Zeilen ein. Neu hinzugekommen, da es während der Entwurfsphase dieses Beitrags erstmal nicht klappte, ist der Erfahrungswert aus dem Beitrag

Securepoint UTM: Site-to-Site (SSL-VPN) mit Debian als Server/Gegenstelle

denn es hat sich zunächst als schwierig erwiesen die bereits bekannten Konfigurationen anzupassen. Letztlich wurde ermittelt, was die UTM auf der OpenVPN-Site-to-Site-Server-Seite erwartet und entsprechend adaptiert.

Die Grundeinrichtung des vServer, in diesem Beispiel bei KAMP, des OpenVPN-Daemons unter Debian 10 Buster und weiteres kann im ersten Beitrag nachgelesen werden. Das Erstellen der PKI, CA und der Server-/Client-Zertifikate kann dem letzten Beitrag entnommen werden. Der TLS-Key wird nicht benötigt, da dieser seitens der Securepoint UTM nicht unterstützt wird.

OpenVPN-Server konfigurieren

Im Gegensatz zu den vorigen Beiträgen folgt nun eine vollständige Konfigurationsdatei, also keine Änderungen gegenüber der Beispielkonfiguration!

/etc/openvpn/server.conf:

dev tun

mode server

tls-server

proto udp

tun-mtu 1500

ca ca.crt
cert OpenVPN-Server.crt
key OpenVPN-Server.key

server 10.8.0.0 255.255.255.0

topology subnet

port 1195

dh dh2048.pem

keepalive 10 120

cipher AES-256-CBC

comp-noadapt

persist-key
persist-tun

status /var/log/openvpn/openvpn-status.log

log /var/log/openvpn/openvpn.log

verb 3

explicit-exit-notify 1

auth SHA256

route 192.168.1.0 255.255.255.0

client-config-dir /etc/openvpn/csc/server

/etc/openvpn/csc/server/OpenVPN-Client:

iroute 192.168.1.0 255.255.255.0
ifconfig-push 10.8.0.2 255.255.255.0

Anschließend einmal den Daemon durchstarten:

systemctl restart openvpn@server

Die Securepoint UTM als Site-to-Site-Client auf Basis von OpenVPN-/SSL-VPN-Client konfigurieren

Bevor man den eigentlichen OpenVPN-Site-to-Site-Client auf der Securepoint UTM einrichten kann, ist es notwendig das CA-Zertifikat (ohne privaten Schlüssel) und das Client-Zertifikat (mit privatem Schlüssel) die man auf dem vServer erzeugt hat zu importieren.

Basieriend auf der vServer-PKI muss eine neue Text-Datei, z.B. mit Notepad, erstellt werden und aus den Dateien „OpenVPN-Client.crt“ und „OpenVPN-Client.key“ der Inhalt zusammenkopiert werden. Aus der erstgenannten Datei reicht der Teil ab „—–BEGIN CERTIFICATE—–„.

Zertifikate importieren

  • Auf „Authentifizierung – Zertifikate“ klicken.
  • Auf der Registerkarte „CA“ auf „CA importieren“ klicken.
  • Die CA-Zertifikatsdatei, z.B. „ca.crt“, auswählen und hochladen.
  • Zur Registerkarte „Zertifikate“ wechseln und „Zertifikat importieren“ anklicken.
  • Die zuvor erstellte Datei, die das Client-Zertifikat samt privatem Schlüssel enthält, auswählen und hochladen.

SSL-VPN konfigurieren

  • Auf „VPN – SSL-VPN“ klicken.
  • Auf „+ SSL-VPN Verbindung hinzufügen“ klicken.
  • „SITE-TO-SITE CLIENT“ auswählen.
  • Bei „Schritt 3“ einen Namen eintragen und das zuvor importierte OpenVPN-Client-Zertifikat auswählen.
  • Bei „Schritt 5 (Gegenstelle)“ die IPv4-Adresse (ggf. mit Port) des vServers eintragen.
  • Anschließend die Einstellungen bearbeiten und folgendes ändern:
    Cipher für Datenverbindung: AES-256-CBC
    Hash für Datenverbindung: SHA256
  • Auf „Neustarten“ klicken.

Die Verbindung sollte nahezu sofort aufgebaut werden. Sobald die Netzwerkobjekte angelegt und die Portfilter-Regeln konfiguriert ist sollte alles klappen.

Persönliche Bemerkung

Die Securepoint UTM hat mir persönlich für dieses Vorhaben die Sache vergleichsweise schwer gemacht eine funktionierende Kombi zu ermitteln, was nun nicht bedeutet, das Securepoint Schuld wäre oder schlecht ist!

Das lag zum einen daran, das die bisher bekannten Konfigurationen nicht funktioniert hatten, man via root und ssh die unter der Haube befindliche OpenVPN-Konfiguration erst ermitteln und schlussendlich noch eigene Fehler ausräumen musste.

Hinzu kommt das in der Verwaltungsoberfläche in manchen Feldern schlicht von „Default“ die Rede ist, ohne das man genau weiß, was damit nun gemeint ist bzw. sich dahinter verbirgt. Beispiele dafür wären „Cipher für Datenverbindung“ und „Hash für Datenverbindung“. Wobei sich das Default vmtl. auf die Vorgabe von OpenVPN bezieht.

Im Wiki wird beispielsweise unter

SSL-VPN Site-to-Site – Verschlüsselung

angegeben das AES128-CBC (Cipher) und SHA256 (Auth) als Standard verwendet werden, das scheint allerdings nicht unbedingt zu stimmen. Beim Test-Aufbau mit einer frisch installierten aktuellen UTM funktionierte auch nach wie vor BF-CBC und SHA1, was beides mittlerweile als schwach und damit als unsicher gilt. Woher nun diese Differenz stammt wurde nicht abschließend geklärt. Wer sicher sein möchte, stellt per Hand aktuelle als sicher geltende Werte ein.

Auch wenn es erstmal ärgerlich war, das es nicht funktionierte und viel Kopfzerbrechen bereitet hat, so ist letztlich alles gut geworden. Ein paar Verbesserungen und etwas Kosmetik sowie Praxiserfahrung steht noch an, also wird vermutlich das eine oder andere Update folgen.

MDaemon: Schutz vor Rückstreuung (Backscatter Protection)

$
0
0

Bei E-Mail ist wohl nichts ärgerlicher als Spam, aber genauso ungut sind weitere Nebenwirkungen die Spam-Mails verursachen. Wird z.B. eine Spam-Mail mit einer real existierenden legitimen Absender- oder Antwort-Adresse versendet, kommen auf diese sämtliche Blockier- und Fehlermeldungen zurück.

Dies nennt man Backscatter, zu deutsch Rückstreuung. Man ist selbst nicht Absender, bekommt allerdings den ganzen Ärger ab, wenn man das mal so ausdrücken möchte. Während man bei Spam-Filtern durchaus so einiges regeln kann, sieht es bei der Rückstreuung etwas anders aus.

Der MDaemon Messaging Server bringt allerdings mit der Funktion Schutz vor Rückstreuung eine gute Möglichkeit mit, auch dieses Problem anzugehen. Unter „Sicherheit – Sicherheitseinstellungen – Andere Funktionen“ befindet sich der Konfigurationsdialog:

Zu beachten gilt: Erst die Funktion aktivieren und sieben Tage laufen lassen, erst dann das Abweisen zuschalten.

Das Ganze funktioniert nur (richtig), sofern Nachrichten per SMTP zugestellt werden. Wird statt dessen DomainPop oder MultiPop verwendet hilft das nicht. Als Notnagel in solchen Fällen lässt sich allerdings mit dem Inhaltsfilter zumindest vorübergehend etwas Abhilfe schaffen, indem man eine Regel erstellt die auf die betroffene E-Mail-Adresse und typische Fehler-Betreffe reagiert:

Mögliche Betreffszeilen enthalten beispielsweise:

  • Mail delivery failed: returning message to sender
  • Undeliverable: This is a protected Recording from:
  • This is a protected Recording
  • Autosvar:This is a protected Recording from

Debian, OpenVPN und nftables: Regeln nach Verbindungsaufbau neu laden

$
0
0

Im Zuge der Beiträgsserie zu öffentlicher IPv4-Adresse mittels vServer und OpenVPN fiel auf, das beispielsweise nach einem Verbindungsabbruch oder dem Neustart des vServer die Port-Weiterleitung(en) nicht mehr funktionierten.

Das Ganze lässt sich leicht lösen, in dem nach dem OpenVPN-Verbindungsaufbau die Firewall-Regeln neu geladen werden. Zu diesem Zweck die OpenVPN-Server-Konfiguration um folgende Zeilen ergänzen:

script-security 2
up /etc/openvpn/up.sh

Anschließend ein Skript unter „/etc/openvpn/“ mit dem Namen „up.sh“ erstellen und folgendes einfügen:

#!/bin/bash

/usr/sbin/nft -f /etc/nftables.conf

Das Skript ausführbar machen und einmal den OpenVPN-Daemon neustarten:

systemctl restart openvpn@server
Viewing all 1830 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>