Seite wählen

NETWAYS Blog

Mac Firewall – Little Snitch

littlesnitch_320Die Firewall im Mac ist jetzt nicht unbedingt die bequemste. Die Oberfläche lässt einem wenig Spielraum, seine Sicherheitsbedürfnisse anzupassen – z.B. Verbindungen von innen heraus zu beschränken.
Manchmal möchte man allerdings bestimmte Aktionen von Programmen unterbinden oder genau wissen was gerade auf der Leitung brennt – und warum. Wireshark wäre eine Möglichkeit. Allerdings fehlt mir hier der Bezug zur Applikation und bei großen Datenmengen wird es dann etwas unübersichtlich.
Seit Ende letzten Jahres Bereits seit 2003 (danke Igor ;-)) gibt es für den Mac die Firewall Little Snitch. Diese erlaubt es Verbindungen von innen heraus zu beschränken und zu überwachen – Und das mit beachtlicher Granularität. Little Snitch unterstützt verschiedene Modi. Alles zu verbieten, zu erlauben oder durch ein Regelwerk zu begrenzen. Letzterer Modus lässt sich eine jede Verbindung durch einen Popup bestätigen. Und hier liegt auch etwas der Hund begraben. Nämlich dass man nicht durch Faulheit eine jede Verbindung blind bestätigt. Ich für meinen Teil habe mittlerweile genau aus diesem Grund alle Verbindungen erlaubt und verwende die Firewall zum Debuggen von Programmen, was diese an Traffic durch die Welt posaunen.
Zu erwähnen bleibt noch, dass der Regeleditor sehr gut durchdacht ist. So lassen sich Regeln temporär hinzufügen und Regeln in Ihrer Anwendung breiter oder enger ziehen (in dem man Portbereiche, Protokolle oder Subdomains verändert) und wird informiert wenn man überschneidende Regeln oder unsinnige Regeln konfiguriert hat – Sogar mit automatischen Lösungsvorschlag.
Die Lizenz ist leider proprietär. Jedoch ist die Software durch einen offen gestalteten Demomodus gut zum Debuggen zu verwenden.
Mein Fazit: Tolles Tool, stellt gesprächige Programme ruhig und ich behalte den Überblick!
 

Marius Hein
Marius Hein
Head of IT Service Management

Marius Hein ist schon seit 2003 bei NETWAYS. Er hat hier seine Ausbildung zum Fachinformatiker absolviert und viele Jahre in der Softwareentwicklung gearbeitet. Mittlerweile ist er Herr über die interne IT und als Leiter von ITSM zuständig für die technische Schnittmenge der Abteilungen der NETWAYS Gruppe. Wenn er nicht gerade IPv6 IPSec Tunnel bohrt, sitzt er daheim am Schlagzeug und treibt seine Nachbarn in den Wahnsinn.

Wunderwelt ssh

Jahrelalang habe ich ssh, wie wahrscheinlich die meisten von uns, nur zum administrieren und direkten Zugriff auf entfernte Server benutzt. Ab und zu vielleicht nochmal scp aber dann war’s das auch wirklich.
In den letzten Monaten habe ich aber so viele coole Funktionen von ssh kennengelernt, dass ich die hier jetzt nochmal sammeln möchte um nicht alles in der nächsten Woche wieder vergessen zu haben.

Authentifizierung

Ein Feature, das die tägliche Arbeit sehr erleichtert ist das authorized_keys file in ~/.ssh
Hier trägt man einfach den public key des users ein der sich auf diesen Host verbinden darf und alle Passworteingaben haben sich erstmal erledigt.

Portweiterleitung

Man kann ssh nicht nur für die direkte Kommunikation auf eine remote shell benutzen sondern alle Möglichen Dienste durch ssh tunneln und so Firewallgrenzen überspringen und sich die Arbeit erleichtern.
Ich benutze als Beispiel mal einen Webserver, der auf einem entfernten Host läuft und nur über einen weiteren Hop erreichbar ist. Die Firewall im Bild lässt bloß Port 22 auf HostA zu.

Aufbau ssh environment

ssh environment


Beispiel 1: Zugriff von HomeLaptop auf auf webserver.
Um dieses Szenarion zu realisieren kann man z.B. den Port 80 des webservers über HostA durch den ssh tunnel auf den lokalen Port 8080 des HomeLaptops weiterleiten.
Hierbei hat man zwei Möglichkeiten. Entweder man baut 2 Tunnel hintereinander, oder man sagt ssh wie es von LaptopHome zum webserver kommt.

# als erstes einen tunnel vom webserver zum HostA
user@LaptopHome:# ssh kalle@HostA
user@HostA:# ssh -L 8080:127.0.0.1:80 manfred@webserver
# als nöchstes in einem anderen terminal
user@LaptopHome:# ssh -L 8080:127.0.0.1:8080 user@HostA

Die Alternative finde ich persönlich viel schöner.
Man öffnet auf LaptopHome die ~/.ssh/config Datei und trägt folgenden Zeilen ein.

Host HostA
   User Kalle
   Hostname HostA
Host webserver
   User manfred
   # mit -a bewirkt dass der public key des gateway hosts auf dem Zielsystem sein muss
   ProxyCommand ssh -x -a -q HostA nc %h 22
   # kein -a bewirkt, dass der public key des initiierenden users auf dem Zielsystem sein muss
   ProxyCommand ssh -x -q HostA nc %h 22

Am Ende kann man mit einem kurzen Befehl den Tunnel aufbauen

user@LaptopHome:# ssh -L 8080:127.0.0.1:80 webserver

Einen Wunsch könnte man im Zweifelsfall noch haben. Eventuell möchte man vom HomePC auch auf den webserverzugreifen. Jetzt könnte man natürlich die .ssh/config Datei um ein weiteres ProxyCommand erweitern. Es gibt jedoch noch eine andere Möglichkeit. Mit Hilfe der ssh option -g kann man den lokalen Port allgemein Verfügbar machen.

user@LaptopHome:# ssh -L 8080:127.0.0.1:80 webserver -g

Und schon kann von HomePC auf http://LaptopHome:8080 zugegriffen werden.
Beispiel 2: Den Kollegen auf der Arbeit den Datenbankserver zur Verfügung stellen.
Der Datenbankserver HomeDB stellt im LAN eine mysql Datenbank auf Port 3306 bereit.

user@HomeDB:# ssh kalle@HostA -R 10000:HomeDB:3306

Das führt dazu, dass auf der man auf der Arbeit auf HostA, Port 10000 der mysql Dienst zur Verfügung steht.

magical bash

Das ProxyCommand Beispiel bedient sich, um die direkte Weiterleitung sicherzustellen, des Linux tools netcat alias nc. Es soll allerdings in der großen weiten Welt Systeme geben, auf denen kein netcat existiert. Im Beispiel müsste dieses auf HostA installiert sein. Sollte es sich bei diesem jedoch z.B. um ein älteres Solaris oder AIX System handelt so könnte es auch sein, dass dem nicht so ist.
Möchte man jetzt aber trotzdem das ProxyCommand nutzen gibt es noch eine Möglichkeit mit Hilfe der /dev/tcp Schnittstelle, die einem von BASH bereitgestellt wird, ein netcat nachzubilden.

Host HostA
   User Kalle
   Hostname HostA
Host HostA
   User Manfred
   ProxyCommand ssh webserver "/bin/bash -c 'exec 3<>/dev/tcp/HostA/22; cat <&3 & cat >&3;kill $!'"

Sollte ich noch weitere ssh magic herausfinden werde ich nicht zögern euch diese mitzuteilen.

Christoph Niemann
Christoph Niemann
Senior Consultant

Christoph hat bei uns im Bereich Managed Service begonnen und sich dort intensiv mit dem internen Monitoring auseinandergesetzt. Seit 2011 ist er nun im Consulting aktiv und unterstützt unsere Kunden vor Ort bei größeren Monitoring-Projekten und PERL-Developer-Hells.

Call for Papers für die Open Source Datacenter Conference 2009

Der Call for Papers zur ersten NETWAYS Open Source Datacenter Conference hat begonnen.
Die am 29. und 30. April 2009 im NH Hotel Nürnberg-City stattfindende Konferenz zum Einsatz von Open Source Software in Rechenzentren und großen IT Umgebungen, richtet sich vornehmlich an erfahrene Administratoren und Architekten und ist auf folgende Themenfelder ausgerichtet:

  • Cluster & Hochverfügbarkeit
  • Loadbalancing
  • Security & Firewalls
  • Monitoring
  • Change & Configuration Management

Interessenten können ab sofort unter http://www.netways.de/osdc/ Vorschläge für Konferenzbeiträge  einreichen. Dort finden Sie auch alle weitergehenden Informationen und Voraussetzungen. Einsendeschluss ist der 30. November 2008. Wir freuen uns auf Ihre Präsentationen und Ideen!
Alles weitere rund um die NETWAYS Open Source Datacenter Conference 2009 finden Sie unter: http://www.netways.de/osdc

Pamela Drescher
Pamela Drescher
Head of Marketing

Seit Dezember 2015 ist Pamela Anführerin des Marketing Teams. Mit ihrer stetig wachsenden Mannschaft arbeitet sie daran, NETWAYS nicht nur erfolgreicher, sondern auch immer schöner zu machen. Privat ist sie Dompteurin einer Horde von drei Kindern, zwei Pferden, drei Katzen und einem Hund. Für Langeweile bleibt also keine Zeit!