Jede Software muss von Zeit zu Zeit aktualisiert werden, sei es dass ein Hotfix oder ein Update installiert werden muss, damit die Software wieder auf dem aktuellsten Stand ist. Dadurch wird unter anderem sichergestellt, dass die Software vor aktuellen Bedrohung geschützt ist. Besonders wichtig ist dies bei Sicherheitsprodukten wie z.B. dem Virenscanner, dieser ist ohne aktuelle Signaturen eigentlich nutzlos. In Unternehmen gibt es für die Sicherheitsprodukte meistens eine zentrale Verwaltungssoftware über welche die Clients konfiguriert und überwacht werden können.
Bei ESET wird die Verwaltung der Clients über den Remote Administrator (ERA) vorgenommen. Diesen kann man auf unterschiedliche Art und Weise betreiben, wie z.B. auf einem Windows Server oder unter Linux als virtuelle Appliance. Auch diese Software muss aktuell gehalten werden, dazu kann man einen Task konfigurieren der diese Aufgabe übernimmt und die Software des ERA automatisch aktualisiert (ESET KB 3668). Wer gerne etwas mehr Kontrolle darüber haben möchte kann dies auch manuell über die Linux-Shell vornehmen. Dazu muss von der ESET-Website das Installationspaket heruntergeladen werden und auf dem Server ausgeführt werden.
Dabei kann das Update mit folgendem Fehler fehlschlagen:
Die Fehlermeldung ist eindeutig, es muss etwas mit den Anmeldeinformationen an der MySQL-Datenbank zu tun haben. Man kann nun versuchen diese über die Parameter mitzugeben, doch auch dieser Versuch wird scheitern, denn der Grund ist eigentlich ganz einfach. Stöbert man etwas im ESET-Forum, dann stößt man auf folgenden Thread. Darin wird von einem ESET-Mitarbeiter der Grund für das Scheitern genannt:
“Yes, it is trying to connect to database using credentials it found in connection string and SERVER configuration – but unfortunately it seems loading of them failed at some point -> most probably fetching of password for “era” user was not successful. Is there any chance you are using “special” characters (characters with special meaning in shell scripting, like {}[]”;\’@$<\n>*) in password?”
Es liegt also an bestimmten Sonderzeichen im Kennwort, welches für den Zugriff auf die MySQL-Datenbank verwendet wird. Kennwörter an Servern sollten eigentlich immer komplex gewählt werden und somit ist die Wahrscheinlichkeit sehr hoch, dass eines dieser Sonderzeichen im Kennwort verwendet wurde sehr hoch. Die Lösung des Problems liegt jetzt darin ein sicheres Kennwort zu verwenden, welches diese Sonderzeichen nicht verwendet. Dabei muss wie folgt vorgegangen werden.
1.) Das Kennwort für den Zugriff auf die MySQL-Datenbank ist in einer .ini-Datei auf dem Server hinterlegt und muss dort über einen Editor geändert werden.
vi /etc/opt/eset/RemoteAdministrator/Server/StartupConfiguration.ini
Wichtig hier sind die rot markierten Informationen.
User: Benutzer für den Zugriff auf die MySQL-Datenbank
Password: Das Kennwort für den Zugriff auf die MySQL-Datenbank
Database: Die MySQL-Datenbank in der die ERA-Informationen gespeichert sind
Am Besten schreibt man sich diese Informationen ab, denn diese werden später noch benötigt. Zunächst muss aber in der Datei anstelle des bislang verwendeten Kennworts ein anderes gesetzt werden, welches keines der genannten Sonderzeichen enthält. Folgend wird hier zur Demonstration als Kennwort die Zeichenfolge Kennwort verwendet.
Hinweis: Für den Live-Betrieb sollte natürlich ein sichereres Kennwort gewählt werden!
Das neue Kennwort muss zwischen die beiden Klammern geschrieben und die geänderte Datei anschließend abgespeichert werden. Jetzt ist das neue Kennwort für den Zugriff von ERA auf die MySQL-Datenbank gesetzt, allerdings werden die Zugriffe fehlschlagen, da in der MySQL-Datenbank noch das alte Kennwort hinterlegt ist.
2) Das Kennwort kann über verschiedene Wege geändert werden. Folgend wird das Kommandozeilentool mysql verwendet. Zunächst muss eine Verbindung mit der MySQL-Datenbank mit einem Admin-Account hergestellt werden.
Die Befehlszeile dazu sieht wie folgt aus: mysql -u root -p –database era_db
Als Wert für den Parameter database muss hier der Wert aus der .ini-Datei angegeben werden, damit eine Verbindung mit der richtigen Datenbank hergestellt wird. Nach der Eingabe des Kennworts ist man dann auch verbunden und kann mit der Änderung des Kennworts beginnen.
Dazu zunächst zur Sicherheit über den SQL-Befehl select host,user,password from mysql.user where user =’era’; die Benutzer ausgeben lassen.
Als Benutzername für die Spalte User muss hier der Wert aus der .ini-Datei angegeben werden, damit der richtige Benutzer ausgegeben wird.
Im nächsten schritt muss über den SQL-Befehl update mysql.user set password=PASSWORD(‘Kennwort’) where user =’era’; das neue Kennwort für die in der Datenbank hinterlegten Benutzer gesetzt werden.
Wurde der Befehl erfolgreich ausgeführt ist das Kennwort geändert und die MySQL-Befehlszeile kann über exit verlassen werden. An dieser Stelle am Besten den Server über shutdown -r now neu starten und anschließend wieder eine Verbindung mit der Console herstellen.
Nun das Update der Serverkomponente erneut über ./Server-Linux-x86_64.sh –skip-license anstoßen.
Das Update sollte nun funktionieren und auch in Zukunft keine Probleme mehr bereiten.
Login