Da die Installation vom Hyper-V Subsystem auf meinem Ryzen 3550H zu einem Blackscreen beim Booten geführt hat, hab ich es im Safe Mode deinstalliert. Trotzdem wollte der Rechner nicht mehr booten. Dies kann daran liegen das die Bootoptionen verändert werden beim Installieren, hypervisorlaunchtype wird hier auf auto gestellt, welches bei meinem Prozessor das Booten verhindert hat.
Hier hilft vom Recovery / USB-Installer zu booten, ne cmd zu öffnen und mit 'bcdedit set hypervisorlaunchtype off' dies zu ändern. Das Gerät wird per GUID angegeben, damit auch die Festplatte und nicht der USB-Stick geändert wird. Was nicht gleich ersichtlich ist: wird keine GUID angezeigt muss die GUID mit "{default}" angegeben werden!
Danach wollte es zwar booten aber nur bis zum Bluescreen. Da es mit dem letzten Systemwiederherstelllungspunkt nicht geklappt hat, wurde ein älterer ausgewählt. Als das System wieder lief konnte auf den aktuellsten Systemwiederherstelllungspunkt gewechselt werden. Da gleichzeitig zu neue Radeon GPU Treiber installiert wurden, könnte bei euch auch das bcdedit ohne Systemwiederherstellungspunkt reichen.
Eine Lösung das Hyper-V System mit dem Ryzen 3550H zum laufen zu bekommen, hab ich noch nicht gefunden. Falls ihr eine kennt, gerne in die Kommentare damit.
Davids iT Blog
Tipps von und für ChromeOS, Android, PC, Linux, Windows und was sonst noch an Technik rumliegt :)
Mittwoch, 24. April 2019
OpenVPN Server unter Windows 10 bei IPv6 Anschlüssen mit feste-ip.net als Portmapper und einer Fritzbox
Irgendwie fand ich im Internet nur sehr verteilt die Informationen, welche man für einen OpenVPN-Server mit Passwort und Zertikaten unter Windows benötigt. Skripte die wegen kleiner Fehler nicht liefen, auf den meisten Seiten nur ein oder zwei der drei Einstellungen die fürs Routing benötigt werden unter Windows 10, wenn der gesamte Internetverkehr der Clients durch den Server rausgehen soll. Auch das Passwortauth ist nicht gerade selbsterklärend unter Windows. Dazu kam, dass dies hinter einem Kabel Deutschland Anschluss mit DualStack-Lite (öffentliche IPv6-Adresse) laufen sollte und von IPv4 Anschlüssen, wie o2 Handys, erreichbar sein sollte, inkl. externem Provider der eingehende Verbindungen auf IPv6 umsetzt und den FritzBox Einstellungen.
Momentan läuft es, ich kann mich innerhalb des LAN zum Testen via IPv4, als auch von extern via Handy durch den IPv6/IPv4-Tunnel verbinden, und dies sowohl von Android als auch von Windows 10, so dass der gesamte Netzwerk- und Internetverkehr über den VPN-Server ins LAN bzw Internet geleitet wird. Aus Sicherheitsgründen wollte ich Zertifikate + Benutzername/Passwort benutzen, der Rest der Konfiguration ist jedoch noch nicht auf Sicherheit optimiert, hier gibt es noch einige Tipps und HowTos via Google.
Zum Inhalt:
OpenVPN Server unter Windows 10
Windows 10 Einstellungen
FritzBox Einstellungen
Feste-IP.net Einstellungen
Windows-Client
Android-Client
proto tcp
dev tun
ca "C:\\Program Files\\OpenVPN\\easy-rsa\\keys\\ca.crt"
cert "C:\\Program Files\\OpenVPN\\easy-rsa\\keys\\server.crt"
key "C:\\Program Files\\OpenVPN\\easy-rsa\\keys\\server.key"
dh "C:\\Program Files\\OpenVPN\\easy-rsa\\keys\\dh2048.pem"
server 10.0.0.0 255.255.255.0
ifconfig-pool-persist "C:\\Program Files\\OpenVPN\\log\\ipp.txt"
push "route 192.168.178.0 255.255.255.0"
#push "dhcp-option DNS 192.168.178.1"
push "dhcp-option DNS 8.8.8.8"
push "redirect-gateway def1"
keepalive 10 120
cipher AES-128-CBC
persist-key
persist-tun
status "C:\\Program Files\\OpenVPN\\log\\openvpn-status.log"
verb 3
script-security 4
auth-user-pass-verify "C:\\Program Files\\OpenVPN\\config\\auth.bat" via-env
Die Route 192.168.178.0 ist mein LAN.
redirect-gateway ist sinnvoll mit def1, dies sichert die bisherige Defaultroute.
script-security muss größer 2 sein, damit ans auth-script via 'via-env' auch das Passwort übergeben wird.
10.0.0.0 ist das Netz für die Clients.
Der Rest ist ziemlich Standard bis auf den Port und das Protokoll, bei UDP hatte ich Probleme mit der Erreichbarkeit vom Portmapper aus, aber vielleicht funktioniert es ja bei euch.
set n_user=%username%-%password%#;
echo %n_user% >c:\tmp\txt.txt
set n_user=%username% %password%
find /n "%n_user%" "C:\Programme\OpenVPN\config\users.txt" > "C:\Programme\OpenVPN\config\result.txt"
for /f "skip=1" %%a in ("C:\Programme\OpenVPN\config\result.txt") do set n=%%a
if "%n%"=="----------" exit 1
exit 0
find ist eine Zeile, erst bei for fängt die nächste an.
Zum Debuggen wird der Username und das Passwort in c:\tmp\txt.txt geloggt, falls ihr c:\tmp habt.
Wichtig ist vollständige Pfade in der for-Schleife zu nutzen mit Anführungszeichen, da es bei nur dem Dateinamen zu Fehlern kommen kann.
(ein Leerzeichen)
Ne cmd mit Adminrechten starten und ab ins Verzeichnis easy-rsa im OpenVPN Programmverzeichnis, dann folgende Befehle:
init-config.bat
dann die vars.bat editieren, hier ein Beispiel:
@echo off
rem Edit this variable to point to
rem the openssl.cnf file included
rem with easy-rsa.
rem Automatically set PATH to openssl.exe
FOR /F "tokens=2*" %%a IN ('REG QUERY "HKEY_LOCAL_MACHINE\SOFTWARE\OpenVPN"') DO set "PATH=%PATH%;%%b\bin"
rem Alternatively define the PATH to openssl.exe manually
rem set "PATH=%PATH%;C:\Program Files\OpenVPN\bin"
set OPENSSL_CONF=C:\Program Files\OpenVPN\easy-rsa\openssl-1.0.0.cnf
set HOME=%ProgramFiles%\OpenVPN\easy-rsa
set KEY_CONFIG=openssl-1.0.0.cnf
rem Edit this variable to point to
rem your soon-to-be-created key
rem directory.
rem
rem WARNING: clean-all will do
rem a rm -rf on this directory
rem so make sure you define
rem it correctly!
set KEY_DIR=keys
rem Increase this if you
rem are paranoid. This will slow
rem down TLS negotiation performance
rem as well as the one-time DH parms
rem generation process.
set DH_KEY_SIZE=2048
rem Private key size
set KEY_SIZE=4096
rem These are the default values for fields
rem which will be placed in the certificate.
rem Change these to reflect your site.
rem Don't leave any of these parms blank.
set KEY_COUNTRY=DE
set KEY_PROVINCE=RLP
set KEY_CITY=Kaiserslautern
set KEY_ORG=KulschIT
set KEY_EMAIL=the1andonlydave@gmail.com
set KEY_CN=xxx.feste-ip.net
set KEY_NAME=xxx
set KEY_OU=Wohnzimmer
set PKCS11_MODULE_PATH=Modulepfaedchen
set PKCS11_PIN=9876
Danach noch den Dienst OpenVPNService starten und in den Autostart:
Dann muss in der Registry mit regedit.exe folgende Änderung gemacht werden: (benötigt nen Reboot)
Und zuletzt muss die Freigabe der Internetverbindung am Adapter eingestellt werden:
Ausserdem muss geprüft werden ob der Adapter auch per IPv6 verbunden ist und Internet hat:
Und in der Firewall muss auch nochmal für TCP oder UDP eine Regel erstellt werden, je nachdem was ihr in eurer Config stehen habt. Ich nutze hier die Windows Standardfirewall:
MyFritz Konto anlegen:
IPv6 Einstellungen bei mir: (alles Standard)
Bei lokalem DNSv6-Server ist der Standard eingestellt.
Freigaben:
Die erste Freigabe als MyFritz Freigabe anlegen wegen dem DNS-Namen. Diese MyFRITZ!-Adresse ohne den Prefix/Port müsst ihr dann bei feste-ip.net eintragen.
MyFritz Weblogin zum Testen:
Übersicht:
ca.crt
BENUTZERNAME.crt
BENUTZERNAME.key
client.ovpn:
client
dev tun
proto tcp
remote 192.168.178.27 11934
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert peter.crt
key peter.key
remote-cert-tls server
cipher AES-128-CBC
verb 3
auth-user-pass
Bei remote dann xxx.feste-ip.net eingeben, wenn der Zugriff von Extern erfolgen soll, ansonsten die LAN-IP. Wichtig ist noch das auth-user-pass damit auch nach dem Passwort gefragt wird.
Hier könnte man nun mit TLS-Keys und anderem Fortfahren, um das VPN weiter abzusichern. Auch könnte man bei den Benutzerzertifikaten Challengepasswörter benutzen, die beim Verbindungsaufbau benötigt werden, da wir jedoch Zertifikate+Benutzerpasswort benutzen, würde ich davon abraten. So kann man nämlich ein Zertifikat pro Laptop erzeugen und jeder Benutzer kann sich mit jedem Laptop und seinen Logindaten einwählen theoretisch.
Beachtet, wenn Android und Laptop das gleiche Benutzerzertifikat nutzen und auf Auto-Reconnect stehen werfen sie sich dauernd gegenseitig aus der VPN.
Momentan läuft es, ich kann mich innerhalb des LAN zum Testen via IPv4, als auch von extern via Handy durch den IPv6/IPv4-Tunnel verbinden, und dies sowohl von Android als auch von Windows 10, so dass der gesamte Netzwerk- und Internetverkehr über den VPN-Server ins LAN bzw Internet geleitet wird. Aus Sicherheitsgründen wollte ich Zertifikate + Benutzername/Passwort benutzen, der Rest der Konfiguration ist jedoch noch nicht auf Sicherheit optimiert, hier gibt es noch einige Tipps und HowTos via Google.
Zum Inhalt:
OpenVPN Server unter Windows 10
Windows 10 Einstellungen
FritzBox Einstellungen
Feste-IP.net Einstellungen
Windows-Client
Android-Client
OpenVPN Server:
Installation: Download Ich hab die aktuellste 2.4.7 genutzt. Bei der Installation bitte die easy-rsa Sachen mitinstallieren, diese werden für die Zertifikatserzeugung später benötigt.Beispiel Serverconfig:(C:\Programme\OpenVPN\config\server.ovpn)
port 11934proto tcp
dev tun
ca "C:\\Program Files\\OpenVPN\\easy-rsa\\keys\\ca.crt"
cert "C:\\Program Files\\OpenVPN\\easy-rsa\\keys\\server.crt"
key "C:\\Program Files\\OpenVPN\\easy-rsa\\keys\\server.key"
dh "C:\\Program Files\\OpenVPN\\easy-rsa\\keys\\dh2048.pem"
server 10.0.0.0 255.255.255.0
ifconfig-pool-persist "C:\\Program Files\\OpenVPN\\log\\ipp.txt"
push "route 192.168.178.0 255.255.255.0"
#push "dhcp-option DNS 192.168.178.1"
push "dhcp-option DNS 8.8.8.8"
push "redirect-gateway def1"
keepalive 10 120
cipher AES-128-CBC
persist-key
persist-tun
status "C:\\Program Files\\OpenVPN\\log\\openvpn-status.log"
verb 3
script-security 4
auth-user-pass-verify "C:\\Program Files\\OpenVPN\\config\\auth.bat" via-env
redirect-gateway ist sinnvoll mit def1, dies sichert die bisherige Defaultroute.
script-security muss größer 2 sein, damit ans auth-script via 'via-env' auch das Passwort übergeben wird.
10.0.0.0 ist das Netz für die Clients.
Der Rest ist ziemlich Standard bis auf den Port und das Protokoll, bei UDP hatte ich Probleme mit der Erreichbarkeit vom Portmapper aus, aber vielleicht funktioniert es ja bei euch.
Auth-Skript angepasst: (die meisten im Internet hatten Probleme mit dem Dateinamen und Pfaden, C:\Programme\OpenVPN\config\auth.bat)
@echo offset n_user=%username%-%password%#;
echo %n_user% >c:\tmp\txt.txt
set n_user=%username% %password%
find /n "%n_user%" "C:\Programme\OpenVPN\config\users.txt" > "C:\Programme\OpenVPN\config\result.txt"
for /f "skip=1" %%a in ("C:\Programme\OpenVPN\config\result.txt") do set n=%%a
if "%n%"=="----------" exit 1
exit 0
find ist eine Zeile, erst bei for fängt die nächste an.
Zum Debuggen wird der Username und das Passwort in c:\tmp\txt.txt geloggt, falls ihr c:\tmp habt.
Wichtig ist vollständige Pfade in der for-Schleife zu nutzen mit Anführungszeichen, da es bei nur dem Dateinamen zu Fehlern kommen kann.
Users File: (C:\Programme\OpenVPN\config\users.txt)
david Musterpasswort(ein Leerzeichen)
Zertifikate erzeugen:
(Common Name muss rein und für jedes Cert (alle Clients und Server) verschieden sein, sonst sagt er es gibt schon ein Cert und generiert nur csr und key, aber kein crt!)Ne cmd mit Adminrechten starten und ab ins Verzeichnis easy-rsa im OpenVPN Programmverzeichnis, dann folgende Befehle:
init-config.bat
dann die vars.bat editieren, hier ein Beispiel:
@echo off
rem Edit this variable to point to
rem the openssl.cnf file included
rem with easy-rsa.
rem Automatically set PATH to openssl.exe
FOR /F "tokens=2*" %%a IN ('REG QUERY "HKEY_LOCAL_MACHINE\SOFTWARE\OpenVPN"') DO set "PATH=%PATH%;%%b\bin"
rem Alternatively define the PATH to openssl.exe manually
rem set "PATH=%PATH%;C:\Program Files\OpenVPN\bin"
set OPENSSL_CONF=C:\Program Files\OpenVPN\easy-rsa\openssl-1.0.0.cnf
set HOME=%ProgramFiles%\OpenVPN\easy-rsa
set KEY_CONFIG=openssl-1.0.0.cnf
rem Edit this variable to point to
rem your soon-to-be-created key
rem directory.
rem
rem WARNING: clean-all will do
rem a rm -rf on this directory
rem so make sure you define
rem it correctly!
set KEY_DIR=keys
rem Increase this if you
rem are paranoid. This will slow
rem down TLS negotiation performance
rem as well as the one-time DH parms
rem generation process.
set DH_KEY_SIZE=2048
rem Private key size
set KEY_SIZE=4096
rem These are the default values for fields
rem which will be placed in the certificate.
rem Change these to reflect your site.
rem Don't leave any of these parms blank.
set KEY_COUNTRY=DE
set KEY_PROVINCE=RLP
set KEY_CITY=Kaiserslautern
set KEY_ORG=KulschIT
set KEY_EMAIL=the1andonlydave@gmail.com
set KEY_CN=xxx.feste-ip.net
set KEY_NAME=xxx
set KEY_OU=Wohnzimmer
set PKCS11_MODULE_PATH=Modulepfaedchen
set PKCS11_PIN=9876
Hier beugt set OPENSSL_CONF=C:\Program Files\OpenVPN\easy-rsa\openssl-1.0.0.cnf
weiteren Problemen vor, ansonsten sollten noch der untere Block angepasst werden, nichts sollte leer sein.
nun:
weiteren Problemen vor, ansonsten sollten noch der untere Block angepasst werden, nichts sollte leer sein.
nun:
vars
clean-all (löscht den keys ordner, falls ihr schonmal Zertifikate erzeugt habt!)
vars
build-ca
vars
build-dh (dauert auf nem aktuellen Rechner ca 2 Minuten)
vars
build-key-server server
dann beliebig oft:
vars
build-key BENUTZERNAME
Danach noch den Dienst OpenVPNService starten und in den Autostart:
Windows 10 Routingeinstellungen:
Hier muss einmal der Dienst Routing und RAS gestartet werden und der Starttyp auf automatisch gestellt werden:Dann muss in der Registry mit regedit.exe folgende Änderung gemacht werden: (benötigt nen Reboot)
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Tcpip\Parameters IPEnableRouter=1
Und zuletzt muss die Freigabe der Internetverbindung am Adapter eingestellt werden:
Ausserdem muss geprüft werden ob der Adapter auch per IPv6 verbunden ist und Internet hat:
Und in der Firewall muss auch nochmal für TCP oder UDP eine Regel erstellt werden, je nachdem was ihr in eurer Config stehen habt. Ich nutze hier die Windows Standardfirewall:
FritzBox Einstellungen:
Prüfen ob ihr einen Internetzugang mit DS-Lite-Tunnel habt:MyFritz Konto anlegen:
IPv6 Einstellungen bei mir: (alles Standard)
Bei lokalem DNSv6-Server ist der Standard eingestellt.
Freigaben:
Die erste Freigabe als MyFritz Freigabe anlegen wegen dem DNS-Namen. Diese MyFRITZ!-Adresse ohne den Prefix/Port müsst ihr dann bei feste-ip.net eintragen.
Weitere Freigaben gehen ganz normal, den DNS-Namen habt ihr ja nun.
PING6 reicht, die Firewall müsst ihr nicht weiter öffnen. Die Freigabe mit der LAN-IPv4 könnt ihr ignorieren.
Fertig:
MyFritz Weblogin zum Testen:
Feste-IP.net Einstellungen:
(Hier kann auch ein anderer Anbieter genutzt werden, aber feste-ip.net funktionierte in meinen Tests immer, hat ein Supportforum und liegt mit knapp unter 5€ (pro Jahr!) und der Möglichkeit es bis zu 50 Tage gratis zu testen, auch preislich sicher im Rahmen)Übersicht:
Hier muss bei DNS-Name der Name im Format meinPC.meinefritzid.myfritz.net eingegeben werden, siehe obigen Screenshot vom MyFritz-Freigabe anlegen und bei Alias eine Wunschdomain, bei Port nur der VPN-Port.
Windows Client Config:
Hier kann der beim OpenVPN Installer enthaltene GUI-Client verwendet werden, ins Verzeichnis C:\Users\BENUTZERNAME\OpenVPN\config sollten:ca.crt
BENUTZERNAME.crt
BENUTZERNAME.key
client.ovpn:
client
dev tun
proto tcp
remote 192.168.178.27 11934
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert peter.crt
key peter.key
remote-cert-tls server
cipher AES-128-CBC
verb 3
auth-user-pass
Hier könnte man nun mit TLS-Keys und anderem Fortfahren, um das VPN weiter abzusichern. Auch könnte man bei den Benutzerzertifikaten Challengepasswörter benutzen, die beim Verbindungsaufbau benötigt werden, da wir jedoch Zertifikate+Benutzerpasswort benutzen, würde ich davon abraten. So kann man nämlich ein Zertifikat pro Laptop erzeugen und jeder Benutzer kann sich mit jedem Laptop und seinen Logindaten einwählen theoretisch.
Android Client Config:
Config folgt, App gibt im Google PlayBeachtet, wenn Android und Laptop das gleiche Benutzerzertifikat nutzen und auf Auto-Reconnect stehen werfen sie sich dauernd gegenseitig aus der VPN.
Dienstag, 23. April 2019
Duplikate in Spotify entfernen ohne Playlists / Account zu teilen
Da ich einige Playlists beim Aufräumen meines Spotify Accounts zusammengelegt hab, wobei Duplikate auf Wunsch eigentlich entfernt werden sollten, hatte ich irgendwann eine Playlist mit über 9000 Titeln.
Ziel war diese auszusortieren und dann aufs Smartphone herunterzuladen, um nicht irgendwelche Lieder nur aus einer von vielen Downloadplaylisten zu löschen. Immerhin hat mein aktuelles Smartphone wesentlich weniger Speicherplatz als das letzte. Anscheinend läuft der Desktopclient von Spotify aber beim Kopieren von großen Playlists (bei mir bis zu 1500 Titel pro Liste) ineinander nicht ganz sauber und hängt teilweise, was bei mir dazu geführt hat dass einige Tausend Titel bis zu 3 mal in der neuen Playlist waren, trotz dass ich immer "Duplikate nicht übernehmen" gewählt hatte, was mir beim Aufräumen der Playlist auffiel ("Hach das hab ich doch vor 5 Minuten erst gelöscht?!").
Eine kurze Recherche fand eine sehr einfache Lösung, bei der man seine Playlists auch nirgends freigeben muss oder seine Spotify Accountdaten teilen. Man drückt in der Playlist einfach strg+a, strg+c und fügt dies in Excel / Google Tabellen ein und filtert auf Duplikate. Ich habe Google Tabellen genutzt, hier geht dies mit dem Add-On Remove Duplicates von ablebits.com (Link zum Chrome Webstore ), auch in der Gratis-Testversion. Erstmal hab ich auf Duplikate gefiltert und diese entfernt. Da ich nun jede Menge Lücken in der Liste hatte hab ich nochmal auf Uniques (Einzigartige) gefiltert und diese in ein neues Tabellenblatt verschoben. Soweit ich sehen konnte blieb die Reihenfolge wie vorher.
Zurück zu Spotify (ich nutze hierzu den offiziellen Windows Desktop Client), neue Playlist erstellen, strg+v und fertig.
Ziel war diese auszusortieren und dann aufs Smartphone herunterzuladen, um nicht irgendwelche Lieder nur aus einer von vielen Downloadplaylisten zu löschen. Immerhin hat mein aktuelles Smartphone wesentlich weniger Speicherplatz als das letzte. Anscheinend läuft der Desktopclient von Spotify aber beim Kopieren von großen Playlists (bei mir bis zu 1500 Titel pro Liste) ineinander nicht ganz sauber und hängt teilweise, was bei mir dazu geführt hat dass einige Tausend Titel bis zu 3 mal in der neuen Playlist waren, trotz dass ich immer "Duplikate nicht übernehmen" gewählt hatte, was mir beim Aufräumen der Playlist auffiel ("Hach das hab ich doch vor 5 Minuten erst gelöscht?!").
Eine kurze Recherche fand eine sehr einfache Lösung, bei der man seine Playlists auch nirgends freigeben muss oder seine Spotify Accountdaten teilen. Man drückt in der Playlist einfach strg+a, strg+c und fügt dies in Excel / Google Tabellen ein und filtert auf Duplikate. Ich habe Google Tabellen genutzt, hier geht dies mit dem Add-On Remove Duplicates von ablebits.com (Link zum Chrome Webstore ), auch in der Gratis-Testversion. Erstmal hab ich auf Duplikate gefiltert und diese entfernt. Da ich nun jede Menge Lücken in der Liste hatte hab ich nochmal auf Uniques (Einzigartige) gefiltert und diese in ein neues Tabellenblatt verschoben. Soweit ich sehen konnte blieb die Reihenfolge wie vorher.
Zurück zu Spotify (ich nutze hierzu den offiziellen Windows Desktop Client), neue Playlist erstellen, strg+v und fertig.
Abonnieren
Posts (Atom)