Kategorie: Debian

SSH Tunnel User

Auf Server A läuft ein MySQL oder MariaDB Server. Die Ports des Servers A sind nach aussen nicht geöffnet bzw erreichbar. Server B muss aber eine Verbindung aufbauen und auf die Datenbanken zugriff haben. Es besteht natürlich die Möglichkeit die IP von Server B in der Firewall von Server A zu whitelisten. Ist Server B aber zum Beispiel ein Gerät mit dynamischer IP (also zuhause) wird dies schon schwieriger.

Lösung

Wir tunneln die MySQL Verbindung von Server A zu Server B und erlauben dem User ausschließlich einen Tunnel aufzubauen und den MySQL Port zu benutzen.

Vorbereitung

Wir installieren autossh und legen den Benutzer an. Autossh kümmert sich später darum, den Tunnel aufrecht zu erhalten.

[auf Server B]: apt install autossh
[auf Server A]: adduser sshtunnel

AutoSSH Parameter (Server B)

autossh -M 0 -o "ServerAliveInterval 30" -o "ServerAliveCountMax 3" -N -L 3307:127.0.0.1:3306 user@host -i ./ssh-key

/etc/sshd/sshd_config auf Server A

Match User sshtunnel
#AllowTcpForwarding yes
#X11Forwarding no
#PermitTunnel no
#GatewayPorts no
AllowAgentForwarding no
PermitOpen 127.0.0.1:3306
ForceCommand echo 'This account can only be used for [reason]'

AllowUsers sshtunnel

Wie stabil diese Lösung ist und ob es in produktiven Umgebungen eingesetzt werden kann, kann ich nicht beurteilen. In meinem Anwendungszweck funktioniert es zuverlässig.

Filed under: Debian, MySql, Security

Deaktivieren der MySql History in der Konsole

Standardmäßig wird im Homeverzeichnis des Benutzers unter Linux eine .mysql_history file angelegt, welche ähnlich arbeitet wie die .bash_history.

Alle Kommandos die ihr bei MySql in der Konsole eingebt, werden dort gespeichert (auch Query bei denen ihr z.B. neue Passwörter anlegt).

Um dieses Verhalten zu deaktivieren, könnt ihr die Datei löschen und einen Link zu /dev/null setzen, damit künftig die Ausgabe sofort an /dev/null umgeleitet wird:

rm ~/.mysql_history
ln -s /dev/null ~/.mysql_history

Filed under: Debian, EDV, Linux

MariaDB – Kein Root Login mit PHPMyAdmin möglich

Bei MariaDB kann man sich standardmäßig nur noch auf der Konsole als Root User einloggen. Sprich das Einloggen mit dem Benutzer Root ist z.B. über phpMyAdmin nicht mehr möglich. Dies könnte man umstellen, mindert aber die Sicherheit des Systems.
Um die Datenbanken weiterhin verwalten zu können, legen wir einen neuen User mit “Root Rechten” an.

Logged euch hierzu auf der Konsole (z.B.) mit Putty als Root User ein und führt dann folgende Befehle durch (ACHTUNG: Passwort entsprechend ändern!)

CREATE USER 'dbadmin'@'localhost' IDENTIFIED BY 'Passwort';
GRANT ALL PRIVILEGES ON *.* TO 'dbadmin'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;
exit

Filed under: Debian, Linux, PHPTagged with: , ,

/dev/urandom bleibt trotz Eintrag in open_basedir nicht lesbar

Gestern war wieder so ein Tag wo man am besten die Tastatur gar nicht angefasst hätte.
Verzweifelt habe ich 2 Stunden lang nach dem Fehler gesucht, warum Nextcloud sagt es könne nich auf /dev/urandom zugreifen.
Die Fehlermeldung im Frontend:

/dev/urandom ist für PHP nicht lesbar, wovon aus Sicherheitsgründen dringend abgeraten wird. Weitere Informationen hierzu findest Du in unserer Dokumentation.

Die Konfiguration des Apache vHosts lautete:

/etc/apache2/sites-available/nextcloud.confServerName files.example.com
Serveralias files.example.com
 
DocumentRoot /var/www/files.example.com/html/
php_admin_value open_basedir /var/www/files.example.com/:/dev/urandom/:/tmp/:/proc/meminfo/
 
php_admin_value file_uploads 1
php_admin_value upload_tmp_dir /var/www/files.example.com/phptmp/
 
<IfModule mod_headers.c>
Header always set Strict-Transport-Security "max-age=15768000; includeSubDomains; preload"
</IfModule>

Ich habe die Konfiguration immer und immer wieder angesehen und den Fehler nicht gefunden. Erst als ich irgendwo zufällig das Wort “Datei” las, musste ich mir an den Kopf fassen. Ich hatte in der Konfiguration statt:

/dev/urandom

versehentlich

/dev/urandom/

angegeben. Da /dev/urandom eine Datei und kein Ordner ist meckerte PHP natürlich zu Recht über fehlende Rechte. Es ist zwar unwahrscheinlich, dass jemand diesen Beitrag bei der Vielzahl von open_basedir Artikel findet UND dann auch noch den gleichen Fehler macht wie ich, aber ich halte das lieber hier mal fest.

Filed under: Debian, Fail, InternetTagged with: , , ,