WinBox unter macOS nutzen

WinBox ist ein Werkzeug zur Verwaltung und Konfiguration von MikroTik-Routern. Neben den gewöhnlichen Werkzeugen zur Verwaltung eines MikroTik-Routers, ist es mittels WinBox möglich, sich über die MAC-Adresse mit dem Router zu verbinden. Dies ist immer dann relevant und praktisch, wenn der entsprechende Router über keinerlei IP-Konfiguration verfügt.

WinBox unter macOS

Verfügbar ist WinBox leider nur für Windows. Allerdings kann WinBox durchaus unter macOS genutzt werden. Im Netz gibt es dafür eine Reihe von Anleitungen, um WinBox mittels Wine unter macOS auszuführen. Wesentlich praktischer ist es beim Projekt WinBox-Mac vorbeizuschauen, welches auf GitHub entwickelt wird. WinBox-Mac ist ein Paket, welches Wine und andere benötigte Komponenten bereits enthält. Installiert werden kann WinBox-Mac über den Paketmanager Homebrew:

brew cask install nrlquaker-winbox

Nach der Installation kann WinBox-Mac wie eine gewöhnliche macOS-Applikation gestartet und genutzt werden. Der Wrapper selbst ist unter der MIT-Lizenz lizenziert und damit freie Software.

jar-Datei in eine exe-Datei verpacken

Bei der Entwicklung von Java-Applikationen kommt am Ende meist eine jar-Datei (die Kurzform von Java Archive) heraus. Soll diese Datei an Otto Normalverbraucher unter Windows ausgeliefert werden, so wundert sich dieser sicherlich etwas. Immerhin erwarten die meisten Normalverbraucher eine ausführbare Datei in Form einer exe-Datei. Mit Hilfe des Tools Launch4j ist das genau das möglich. Launch4j wrappt die jar-Datei und erzeugt eine ausführbare exe-Datei. Daneben kann Launch4j einfache Starter erzeugen, ohne das ganze in eine ausführbare Datei zu wrappen.

Die Projektseite von Launch4j

Launch4j erzeugt zwar ausführbare Dateien für Windows, allerdings kann das es selber neben Windows auch unter macOS und Linux genutzt werden. Die offizielle Seite des Projektes ist unter launch4j.sourceforge.net zu finden. Lizenziert ist Launch4j unter der BSD-Lizenz und damit freie Software. Der Quellcode ist auf SourceForge zu finden, daneben existiert ein Mirror auf GitHub.

PHP/CGI Sicherheitsproblem

Wie Heise gestern berichtete (http://www.heise.de/newsticker/meldung/Gefahr-durch-offene-PHP-Luecke-1567433.html) gibt es eine wunderschöne Sicherheitslücke im Bezug auf CGI und PHP. So führt der Aufruf:

http://localhost/index.php?-s

dazu das der Quellcode der Webseite ausgegeben wird. Das ist natürlich unpraktisch wenn dort Konfigurationsvariablen enthalten z.B. die Zugangsdaten für eine Datenbankverbindung. Zur Lösung des Problems gibt es drei Varianten:

  • PHP Version mit dem Bugfix einspielen
  • Rewrite Anweisung in die .htaccess
  • Wrapper welcher vor dem PHP-CGI aufgerufen wird

Die erste Variante scheidet aus, da der aktuelle Bugfix leicht umgangen werden kann. Die zweite Variante (einzutragen in eine “.htaccess”) sieht so aus:

RewriteEngine on
RewriteCond %{QUERY_STRING} ^[^=]*$
RewriteCond %{QUERY_STRING} %2d|\- [NC]
RewriteRule .? - [F,L]

Die dritte Variante setzt einen Wrapper vor den eigentlich Aufruf und filtert die entsprechenden Anweisungen heraus. Dazu ändert man in der “httpd.conf” die Zeile:

Action  application/x-httpd-php /cgi-bin/php-cgi.exe

in

Action  application/x-httpd-php /cgi-bin/php-cgi-wrapper.exe

und startet den Apache Server neu. Der Quelltext des Wrappers sieht dabei so aus:

#include <process.h>

#define PHP_ORIG "php-cgi.exe"

int main(int argc, char **argv)
{
    if(argc>1) argv[1]=0;
    _execv(PHP_ORIG, argv);
}

Das ganze kann hier auch als fertiges Visual Studio Projekt oder gleich als ausführbare Datei heruntergeladen werden.

Weitere Informationen gibt es unter:
http://www.kb.cert.org/vuls/id/520827
http://eindbazen.net/2012/05/php-cgi-advisory-cve-2012-1823/
http://www.heise.de/newsticker/meldung/PHP-patcht-schnell-aber-nicht-gruendlich-1567906.html