SWAT per SSL #
SWAT ist das Konfigurations-Tool eines SambaServer. Leider ist die Authentifizierung von SWAT so grauenhaft, wie seine Oberfläche angenehm ist. :-( Man muss sich als root authentifizieren, um Einstellungen vornehmen zu können, dabei werden die Authentifizierungs-Informationen per basic-Authentifizierung des Webservers im Klartext übers Netz übertragen. Wenn irgendjemand gerade auf dem Netz snifft, hat man damit das root-Passwort des Webservers verraten. :-(
Schöner wäre es, wenn SWAT z.B. SSL unterstützen würde. Tut es zwar nicht, aber es gibt mit stunnel (http://www.stunnel.org) einen Wrapper, der das möglich macht. Einen Link zu dieser Methode gibt es auch auf der SWAT-Homepage, aber die dort vorgestellte Methode funktionierte so nicht. (Vielleicht liegt das daran, dass es aktuell stunnel 4.x gibt, Debian aber noch 3.x enthält?!?)
Installation unter Debian #
Installation des Debian-Paketes stunnel (und natürlich auch swat).
Als erstes muss ein Server-Zertifikat angelegt werden. Dies macht man nach den Anweisungen in /etc/share/doc/stunnel/README.Debian. Dort ist es kurz und knapp erklärt. Kurz gesagt macht man folgendes:
cd /etc/ssl/certs openssl req -new -x509 -nodes -days 365 -out stunnel.pem -keyout stunnel.pem chmod 600 stunnel.pem dd if=/dev/urandom of=/tmp/temp_file count=2 openssl dhparam -rand /tmp/temp_file 512 >> stunnel.pem ln -sf stunnel.pem `openssl x509 -noout -hash < stunnel.pem`.0 rm /tmp/temp_file
Die Zertifikatsdatei kann man auch swat.pem nennen.
Dann kommt das, was ich erst mühsam herausfinden wollte. Man geht in die Datei /etc/inetd.conf, kommentiert die swat-Zeile aus (ist sie nach der nackten Installation von SWAT bereits) und trägt folgendes dafür ein:
swat stream tcp nowait root /usr/sbin/stunnel -N swat -p /etc/ssl/certs/stunnel.pem -l /usr/sbin/swat -- swat
Und los mit dem Browser #
Dann als Adresse im Browser https://fileserver.name.domain:901 eingeben und fertig (man achte auf "https")! Es empfielt sich übrigens scheinbar, als Namen des Zertifikatsinhabers den Domainnamen des Servers anzugeben. Mein Mozilla meckert sonst immer, das die Namen nicht übereinstimmen und verlangt eine Bestätigung.
Was gibts sonst noch? #
Stunnel ist ein ziemlich geniales Tool. Wer also mehr will/braucht, kann sich dort ruhig mal einlesen. So führt meine Lösung z.B. dazu, dass man SWAT vom Server selber aus nicht mehr starten kann, weil ich da keinen Browser mit SSL-Unterstützung habe. (Haha!) Da kann man entweder zwei Zeilen in die inetd.conf schreiben oder stunnel kann auch eine Art redirect auf einen anderen Port machen. Wie dem auch sei: Für die meisten Fälle dürfte obiges Setup gut sein. -- ThomasBayen