Ungenutze Ports unter MacPorts entfernen

Wenn man Ports unter MacPorts entfernt kann es passieren das Bibliotheken, welche von dem Port genutzt werden, im System verbleiben. Mit dem Umstieg von MacPorts auf eine SQL-Datenbank zur Haltung der Paketinformationen ist es möglich geworden diese ungenutzten Bibliotheken zu entfernen. Dazu muss im Terminal:

sudo port uninstall leaves

eingegeben werden. Anschließend werden die ungenutzten Bibliotheken entfernt und damit Plattenplatz freigegeben. Die Funktionalität der installierten Ports wird dadurch nicht beeinträchtigt.

Die KeePass-Familie

Gestern hatte ich mich René Hesse eine Unterhaltung über die unterschiedlichen KeePass-Versionen/Ports. Da die Erklärungen über Twitter etwas mühsam sein können, gibt es das ganze hier nochmal in der Langform. Viele Leute nutzen Passwortmanager wie 1Password – allerdings sehe ich solche Manager zwiespältig, da es sich um proprietäre Software handelt. Der Quellcode ist nicht einsehbar, so das man seine sicherheitsrelevanten Daten einer Blackbox anvertraut. Hier spielt freie Software wie KeyPass ihre Stärken aus.

KeePass in der 2er-Version

KeePass in der 2er-Version

Die erste KeePass-Variante ist KeePass, bei welcher es sich um das Original handelt. Keepass liegt dabei aktuell in einer Version 1.27 und in einer Version 2.27 vor. Die 1er Version ist die sogenannte Classic Version, welche wir in dieser Aufstellung gepflegt ignoriert wird, da sie nur noch historischen Wert hat.

Die 2er Version ist in C# geschrieben und plattformunabhägig. Das Problem ist die Behandlung von Windows Forms unter Mono. Dies führt dazu das KeePass unter Linux und Mac OS X sehr bescheiden aussieht, und sich wie ein Fremdkörper anfühlt. Alles in allem muss man aber sagen das die offizielle Variante, sehr benutzerfreundlich ist und Kleinigkeiten wie der Passwort-Generator gefallen. Zu finden ist die offizielle Variante auf keepass.info.

Daneben gibt es auch KeePassX, welcher mittlerweile in der Version 2.0 Alpha 6 vorliegt. Hier sollte man sich von der Versionsnummer nicht verwirren lassen, da das ganze “rock-solid” läuft. Im Gegensatz zum Original, sieht KeePassX auch unter Linux und Mac OS X gut aus und lässt sich sauber bedienen.

KeyPassX unter Windows

KeyPassX unter Windows

Die gute Integration der Oberfläche ist dem verwendeten Qt-Framework zu verdanken. Von der Funktionalität her, kann KeePassX noch nicht mit dem Original mithalten, allerdings sind die wichtigsten Funktionen für die tägliche Arbeit in KeePassX vorhanden, so das man hier selten etwas vermisst. Zu finden ist KeePassX auf keepassx.org.

Für die Mobilgeräte gibt es auch entsprechende Varianten. So existieren unter anderem Apps für Android, iOS und Windows Phone.

‎MiniKeePass
Preis: Kostenlos
KeePassDroid
Preis: Kostenlos

Gemeinsam haben alle KeePass Varianten, das die Passwort-Datenbanken untereinander kompatibel sind. Eine Ausnahme bildet hier KeePass in der 1er Version (die Classic Version) – diese kann keine Datenbanken im 2er Format lesen. Der Unterschied zwischen den Versionen begrenzt sich meist auf das unterstützte Betriebssystem und die Anzahl der zusätzlichen Features. Eine Auflistung aller KeePass Ports ist dabei auf der offiziellen Seite zu finden.

1024 Ports behalte ich für mich

Unter Linux (und UNIX) kann man die Ports bis 1024 (die sogenannten Well Known Ports) nur dann binden, wenn man über root Rechte verfügt. Das ist natürlich unschön wenn man einen Server z.B. auf Port 80 laufen lassen will, dieser aber keine dementsprechenden Rechte bekommen darf.

So läuft bei mir zum Beispiel ein Etherpad Light auf dem Port 9001. Jetzt wäre es natürlich schön wenn dieser auf dem Port 80 erreichbar wäre. Dazu würde eine iptables Regel reichen:

iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 9001

Das Problem an dieser Regel ist zum ersten das die Anwendung damit unter Port 80 und Port 9001 zu erreichen ist. Das zweite Problem ist das jeder unprivilegierte Nutzer ebenfalls den Port 9001 öffnen kann und damit auch die Daten von Port 80 bekommt. Und es gibt auch noch ein drittes Problem. Das ganze funktioniert nicht auf Maschinen die mit dem Linux VServer betrieben werden. Dort funktioniert das IP Tables nämlich nicht:

iptables v1.4.4: can't initialize iptables table `nat': Permission denied (you must be root)

Eine weitere Variante wäre setpcaps was allerdings problematisch ist da man diese einem Programm geben muss, was dann bei Skripten nicht funktionieren sollte:

setcap 'cap_net_bind_service=+ep' /path/to/program

Weitere Informationen gibt es unter:
http://www.wensley.org.uk/info#setpcaps
http://serverfault.com/questions/112795/how-can-i-run-a-server-on-linux-on-port-80-as-a-normal-user
http://stackoverflow.com/questions/413807/is-there-a-way-for-non-root-processes-to-bind-to-privileged-ports-1024-on-li