Auf Dateien des WSL zugreifen

Wer unter Windows 10 das WSL ( Windows Subsystem für Linux) installiert hat, der kommt vielleicht mal Idee auf die Dateien direkt zugreifen zu wollen. Dies klappt am einfachsten über die Adressleiste vom Explorer. Dort einmal rein klicken und folgendes eingeben:

\\wsl$\

Es erscheint, sofern ein WSL gestartet ist folgendes Bild:

In dem Unterordner von „Debian“ befindet sich in diesem Fall das Root-Verzeichnis des Linux Systems.

Microsoft empfiehl allerdings nicht direkt von Windows heraus dort zu zugreifen. Bei geöffneten Dateien könnten inkonsistente Zustände vorkommen.

In der Bash von OSX in die iCloud wechseln

Will man unter OSX im Terminal zu den Dateien in der iCloud wechseln, so geht die z.B. mit folgendem Befehl:

cd ~/Library/Mobile\ Documents/com~apple~CloudDocs/

Für diejenigen unter uns, die dies öfters verwenden, bietet sich ein entsprechender ALIAS an.

Shell in „iSH“ App wechseln

Unter IOS verwende ich sehr gerne die App „iSH“. Es ist zwar kein vollwertiger Ersatz meiner Shell unter OSX oder damals auf meinem Android Handy, aber immerhin besser als gar nichts.

Ich bin es gewohnt mit BASH als Standard Shell zu arbeiten. Unter „iSH“ ist ASH voreingestellt. Um dies zu wechseln kann wie folgt vorgegangen werden.

Zuerst installieren wir gleich mal bash und die Hilfen dazu.

apk add bash bash-completion bash-doc

Anschließend ändern wir mit passwd zunächst das Passwort von root.

passwd

Nachdem nun zweimal das Passwort korrekt eingegeben wurde ändern wir mit chsh die SHELL des Nutzers root.

chsh -s /bin/bash

Die Shell ist nun gewechselt und man kann das über die Variable SHELL prüfen.

echo $SHELL

Fertig!

Wer eine andere Shell bevorzugt, der kann auch nachschauen welche Shell zu verfügung stehen. Die funktioniert mit folgendem Befehl

cat /etc/shells
chsh

openVPN Konfiguration inkl. CA, Cert und Key

Wenn ich von einer Securepoint UTM die SSL-VPN Konfiguration herunter lade, dann beinhaltet diese neben der VPN Konfigurationsdatei noch drei weitere Dateien. Diese sind das Zertfikat von der CA, das Zertifikat des Nutzers und der Schlüssel des Nutzers.

Manche Geräte können mit diesen unterschiedlichen Dateien nicht umgehen, weil z.B. kein richtiges Dateisystem vorhanden ist. Apple iPhone/iPad Apps wären z.B. so ein Fall.

Will man dort SSL-VPN (openVPN) verwenden, so muss die CA, Cert und Key direkt in der openVPN Konfigurationsdatei vorhanden sein.
Für diesen Fall habe ich ein kleines Script geschrieben. (Etwas abgewandelt welches ich im Securepoint Forum gefunden habe.

Dies Script geht davon aus, dass die Konfigurationsdaten entpackt in einem Verzeichnis liegen. Zu finden sind die Dateien in der Regel im „Data“ Verzeichnis wenn man das ZIP entpackt oder das TBLK-Verzeichnis umbenannt hat.

Hier nun aber erst mal das Script. Als ersten Parameter wird der Dateiname des openVPN-Files erwartet. Zweiter Parameter wie die neue Konfigurationsdatei benannt werden soll. Der dritte und letzte Parameter gibt an, ob die Originaldateien gelöscht oder behalten werden sollen.

Hier nun aber erst mal das Script:

#!/bin/sh
# Autor: Knut Herter
#
if [ -z "$1" ] || [ -z "$2" ] || [ -z "$3" ] ; then
		echo "\nKeine Parameter angegeben!"
		echo ""
 		echo "Parameter 1: <Dateiname>(ohne .ovpn)"
 		echo "Parameter 2: <Neuer Dateiname>(ohne .ovpn)"
 		echo "Parameter 3: <0 oder 1> 1 = Origignaldateien löschen"
		echo "\n"
 		exit 1
fi

for dat in ".ovpn" "-ca.pem" "-cert.pem" "-cert.key"; do
	if [ ! -f "$1$dat" ]; then
	    echo "$1$dat nicht vorhanden"
	    fehler=1
	fi
done

if [ $fehler ]; then echo "\nFehler, breche die Verarbeitung ab." 
 exit 1  
fi

grep -F -v -e "ca" -e "cert" -e "key" "$1".ovpn > $2.ovpn
{
echo '<ca>'
cat "$1"-ca.pem 
echo '</ca>'
echo '<cert>'
cat "$1"-cert.pem 
echo '</cert>'
echo '<key>'
cat "$1"-cert.key 
echo '</key>'
} >> $2.ovpn

if [ "$3" = "1" ]; then
for dat in ".ovpn" "-ca.pem" "-cert.pem" "-cert.key"; do
	rm -f $1$dat
done
fi

Anschließend kann man die erzeuge .ovpn-Datei z.B. auf seinem iPhone/iPad nutzen um sich mit dem SSL-VPN Server zu verbinden. 

Auch in Tunnelblick oder dem originalen Securepoint VPN Client kann diese Datei verwendet werden.

Securepoint SSL VPN Client neu installieren

Unter Umständen ist es notwendig den SSL VPN Client der Firma Securepoint neu zu installieren.

Manchmal „zerstören“ größere Windows Updates den für das VPN notwendigen Dienst „Securepoint VPN“. Beim Start von Windows kommt dann nur eine gewohnt langweilige Fehlermeldung „Dienst konnte nicht gestartet werden“. Zumindest so in etwa.

Um das Problem zu lösen und die vorhandenen Konfigurationsdateien behalten zu können kann wie folgt vorgegangen werden.

Zuerst beenden wir, sofern es gestartet ist den SSL VPN Client unten in der Iconleiste. Anschließend öffnen wir den Datei Explorer und wechseln in das Verzeichnis %AppData% . Dort befindet sich das Verzeichnis „Securepoint SSL VPN„. Dies sollten wir nun umbenennen. Z.B. in „_Securepoint SSL VPN„.

Nun kann ganz klassisch der VPN Client unter den Apps deinstalliert werden.

 

Im nächsten Schritt laden wir von folgender URL den aktuellsten Client herunter: https://sourceforge.net/projects/securepoint/files/

Anschließend können wir wie gewohnt die Software mit den üblichen/gewohnten Optionen installieren. Vor dem ersten Start der Software muss man wieder mit dem Datei Explorer in das Verzeichnis %AppData% wechseln und das Verzeichnis „_Securepoint SSL VPN“ wieder korrekt zurück umbennen in „Securepoint SSL VPN„.

Nach dem Start der Software mit dem neuen Icon auf dem Desktop sind die vorigen Konfigurationen wieder vorhanden und funktionieren wie gewünscht.

Remote Benutzer abmelden

Um einen RDP Benutzer auf einem Server/Client abzumelden kann wie folgt vorgegangen werden.

Zuerst muss man die ID ermitteln die der Nutzer auf dem Server verwendet. Dies klappt mit folgendem Befehl in der zuvor geöffneten DOS-Box (mit Admin Rechten):

qwinsta.exe /Server:<servername>

Anschließend kann man die ID neben den Benutzer sehen und mit dem Befehl „Logoff“ den Nutzer aus der Session abmelden. 

logoff 2 /server:<servername>

Exchange PowerShell Snippets

Hier möchte ich von mir häufig benutzte Exchange PowerShell Befehle notieren.

Nachrichtentracking, wurde Mail an den Connector übermittelt?

Get-MessageTrackingLog -EventId Send -ResultSize Unlimited -Sender [sender@mail] -Recipients [empfänger@mail] | Format-List Time*,MessageSubject,SourceCo*,Send*,Recipient*
  

DotNet 3x unter Windows 10 nachinstallierten

Am einfachsten geht dies in der (Admin) PowerShell mit folgendem Befehl:

dism.exe /online /enable-feature /featurename:NetFX3 /All 

Sollte keine Internetverbindung bestehen und die Windows 10 Installation DVD zur Hand liegen, so kann man aus dem Ordner Sources das Verzeichnis lxs nach c:\temp kopieren und wie folgt installieren:

dism.exe /online /enable-feature /featurename:NetFX3 /All /Source:c:\temp\sxs /LimitAccess

Vertrauensstellung der Domäne verloren

Sollte ein Domänen-PC die Vertrauensstellung nach einiger Zeit verloren haben, so kann man diese mit wenigen Zeilen wiederherstellen.

Zuerst muss eine Powershell mit Administratorrechten gestartet werden. Aus einer Powershell mit Benutzerrechten heraus geht dies mit folgendem Befehl:

Start-Process powershell -Verb runAs

In der Administrative Powershell nun folgenden Befehl ausführen:

Reset-ComputerMachinePassword -Server Domänencontroller -Credential Domäne\Benutzer

Nach dem Neustart des Rechner sollte der PC wieder korrekt in der Domäne vorhanden sein.

PHP 7.x für ispconfig3

Hier eine kleine schnelle Roadmap für die Installation weiterer PHP Versionen unter ispConfig3

apt -y install build-essential nano net-tools autoconf
apt install libfcgi-dev libfcgi0ldbl libmcrypt-dev libssl-dev libc-client2007e libc-client2007e-dev libxml2-dev libbz2-dev libcurl4-openssl-dev libjpeg-dev libpng-dev libfreetype6-dev libkrb5-dev libpq-dev libxml2-dev libxslt1-dev libzip-dev libsqlite3-dev libonig-dev
ln -s /usr/lib/libc-client.a /usr/lib/x86_64-linux-gnu/libc-client.a
cd /usr/include
ln -s x86_64-linux-gnu/curl
cd /tmp
wget https://www.php.net/distributions/php-7.4.0.tar.gz
tar xfz php-7.4.0.tar.gz
cd php-7.4.0
./configure --prefix=/opt/php-7.4 --with-pdo-pgsql --with-zlib-dir --with-freetype --enable-mbstring --enable-soap --enable-calendar --with-curl --with-zlib --enable-gd --with-pgsql --disable-rpath --enable-inline-optimization --with-bz2 --with-zlib --enable-sockets --enable-sysvsem --enable-sysvshm --enable-pcntl --enable-mbregex --enable-exif --enable-bcmath --with-mhash --with-zip --with-pdo-mysql --with-mysqli --with-mysql-sock=/var/run/mysqld/mysqld.sock --with-jpeg --with-openssl --with-fpm-user=www-data --with-fpm-group=www-data --with-libdir=/lib/x86_64-linux-gnu --enable-ftp --with-imap --with-imap-ssl --with-kerberos --with-gettext --with-xmlrpc --with-xsl --enable-opcache --enable-intl --with-pear --enable-fpm
make
make install
cp php.ini-production /opt/php-7.4/lib/php.ini
cp /opt/php-7.4/etc/php-fpm.conf.default /opt/php-7.4/etc/php-fpm.conf
cp /opt/php-7.4/etc/php-fpm.d/www.conf.default /opt/php-7.4/etc/php-fpm.d/www.conf
sed -i 's/;pid = run\/php-fpm.pid/pid = run\/php-fpm.pid/g' /opt/php-7.4/etc/php-fpm.conf
nano /lib/systemd/system/php-7.4-fpm.service

Und folgendes eintragen

[Unit]
	Description=The PHP 7.4 FastCGI Process Manager
	After=network.target

	[Service]
	Type=simple
	PIDFile=/opt/php-7.4/var/run/php-fpm.pid
	ExecStart=/opt/php-7.4/sbin/php-fpm --nodaemonize --fpm-config /opt/php-7.4/etc/php-fpm.conf
	ExecReload=/bin/kill -USR2 $MAINPID

	[Install]
	WantedBy=multi-user.target

Danach geht es wieder klassisch in der Shell weiter.

systemctl enable php-7.4-fpm.service
systemctl daemon-reload
systemctl start php-7.4-fpm.service
echo zend_extension=opcache.so >> /opt/php-7.4/lib/php.ini
cd /opt/php-7.4/etc
../bin/pecl -C ./pear.conf update-channels
../bin/pecl -C ./pear.conf install memcached
echo extension=memcached.so >> /opt/php-7.4/lib/php.ini
cd /opt/php-7.4/etc
../bin/pecl -C ./pear.conf update-channels
../bin/pecl -C ./pear.conf install apcu
echo extension=apcu.so >> /opt/php-7.4/lib/php.ini
service apache2 restart
systemctl start php-7.4-fpm.service

In iscConfig3 geht es dann unter „System“ -> „Additional PHP Versions“ weiter. Dort auf „Add…“ klicken und einen sinnvollen Namen, z.B. PHP 7.4, eingeben.

Im Registertab „FastCGI Settings“ kommt folgendes in die beiden Zeilen:

/opt/php-7.4/bin/php-cgi
/opt/php-7.4/lib

In die Registerkarte „PHP FPM Setting“ kommt dann:

php-7.4-fpm
/opt/php-7.4/lib
/opt/php-7.4/etc/php-fpm.d

Anschliessend kann man die PHP Version in der Site-Konfiguration des Kunden anpassen.