Geschichte aus dem Leben: Der Server, das WiFi-Problem und das gesparte Geld

5 Kommentare Autor: Jürgen (jdo)

Ich habe einen Bekannten und dem hatte ich vor einer Weile einen Linux-Server mit zwei identischen Festplatten in seinem Tauchcenter eingerichtet. Grund war damals, dass die Dateiverwaltung ein komplettes Chaos war und backups dann gemacht wurden, wenn mal eine drangedacht hatte. Der Server hat Samba am Laufen und vier Windows-Rechner verbinden sich damit. Nun können die Mitarbeiter über die Freigaben arbeiten und müssen sich nicht mehr um die Backups kümmern. Das Ganze läuft fantastisch und es gab noch nie Probleme. Es gibt sogar einen Mechanismus, mit dem man bis zu 14 Tage Dateien wiederherstellen kann (diese Funktion brauchten wir bisher 1x).

Das ganze Netzwerk ist verkabelt und es gibt kein WiFi. Nun kam die Anfrage an mich, ob man nicht einen Access-Point in das Netzwerk stellen kann, um Gästen einen Internet-Zugang zu ermöglichen. Im Prinzip keine große Sache. Das Problem ist nur, dass einie der Freigaben kein Passwort haben – das wurde damals ausdrücklich so gewünscht – auch wenn ich davon abgeraten hatte. Sollte sich also ein Gast im selben Netzwerk befinden, hätte er potentiell Zugriff auf sensible Daten.

Nun haben wir ein wenig getüftelt und ich habe heute Morgen die ausgearbeitete Lösung implementiert. Wir benutzen den Linux-Server als Router für den Access Point und überlassen ihm die Zugriffskontrolle.

Zunächst haben wir dem Server eine zweite Netzwerkkarte spendiert, an der der Access Point angeschlossen wurde. Das Subnetz ist schon einmal unterschiedlich. Im Server selbst wurde NAT und IP-Forwarding aktiviert, um den WiFi-Nutzern Zugang zum Internet zu geben. (dafür gibt es hunderte Anleitungen im Internet)

Um die Zugriffe auf Samba zu unterdrücken, haben wir das doppelt abgesichert. In der Datein /etc/samba/smb.conf wurden folgende Einträge eingefügt, um nur einem bestimmten Subnetz Zugriff zu gewähren:

  • hosts allow = 127.0.0.1 192.168.1.0/24
  • hosts deny = 0.0.0.0/0

Zusätzlich haben wir Samba auf die erste Netzwerkkarte, also über die die verkabelten Rechner kommen, festgenagelt:

  • interfaces = eth0 lo
  • bind interfaces only = yes

Nach diesen Einträgen ist ein Neustart von Samba notwendig. Das genügte mir allerdings noch nicht und ich habe der Firewall noch angewiesen, vier von Samba verwendete Ports auf der netzwerkkarte eth1 zu blockieren. Sicher ist sicher. Die Ports sind 137, 138, 139 und 445. Die Syntax für das Blockieren eines Ports auf einer speziellen Netzwerkkarte mittels iptables ist:

/sbin/iptables -A INPUT -i eth1 -p tcp --destination-port {PORT-NUMMER} -j DROP

Warum ich nicht den anderen Weg gegangen bin und nur die Ports 80 und 443 freigegeben habe? Der eine will Skype benutzen, der andere braucht SMTP, der nächste POP3 und so weiter.

Wie man die Firewall-Regeln auch nach einem Neustart behält – es gibt da mehrere Ansätze. Eine Möglichkeit ist nach der Konfiguration die Regeln zu sichern iptables-save > /root/iptables.rules und dann beim Neustart wieder einzulesen: iptables-restore < /root/iptables.rules.

Das Ganze funktioniert und er kann seinen Gästen nun WiFi anbieten, ohne eine separate Leitung bezahlen zu müssen – der Server läuft so oder so. Linux hat also Geld gespart – die angeschaffte Zusatzhardware und meine Arbeitszeit haben sich in einem Monat bereits egalisiert. 🙂

Ein weiterer großer Vortetil der Lösung über die zweite Netzwerkkarte ist, dass ich den WiFi-Zugang  drosseln kann (Traffic Shaping). Was die Gäste auch immer tun, dem Büro wird eine Mindestbandbreite garantiert. Dazu verwendet man einfach wondershaper (sollte in den Repositories sein). Die Syntax hier ist sehr sehr einfach:

wondershaper eth1 [downlink in KBit/s] [uplink in KBit/s]

Wir haben das einfach so gemacht, dass für WiFi 1/4 der Bandbreite zur Verfügung steht und den Bürorechnern mindestens 3/4. Man könnte natürlich noch zeitgesteuert festlegen, dass außerhalb der Bürozeiten dem WiFi mehr Bandbreite erlaubt wird. Ist in diesem Fall nicht notwendig – wenn das Büro zu ist, hat auch das Tauchcenter geschlossen.




 Alle Kommentare als Feed abonnieren

5 Kommentare zu “Geschichte aus dem Leben: Der Server, das WiFi-Problem und das gesparte Geld”

  1. Rayman says:

    Ein interessanter Beitrag. Das zeigt mal wieder die Flexibilität und Leistungsfähigkeit von Linux auf. Ich wäre mit der genannten Aufgabenstellung sicherlich überfordert, weil es doch sehr viel Hintergrundwissen erfordert. Aber bisher hatte ich auch noch nie Bedarf für so etwas.

    • jdo says:

      Das ist weniger kompliziert, als es sich anhört - ganz echt. Mir ging es bei dem Beitrag eher darum, dass man mit den Kisten wesentlich mehr anstellen kann, als die meisten glauben - weil sie es gar nicht wissen. Im Grunde lässt sich jede Linux-Installation in einen Server verwandeln oder in ein Gerät, das gleichzeitig andere Aufgaben erledigen kann und sich dabei immer noch langweilt.

      Viele gehen vielleicht auch falsch an die Sache heran. Man sollte sich zunächst anhören, was die Leute eigentlich wollen. Bevor man dann gleich shoppen geht, erst einmal umsehen, welche Ausrüstung schon da ist und lässt sich diese zusätzlich benutzen. In diesem Fall war eine Möglichkeit eine 2. Internet-Leitung oder eben eine zusätzliche Netzwerkkarte für den Server (wenn sich die Daten absichern lassen). Da zweiteres der Fall ist, lässt sich somit auf Dauer Geld sparen und alle sind glücklich 🙂

  2. Lioman says:

    Eine andere Möglichkeit wäre ein WLAN-Router mit dd-wrt oder open-wrt gewesen, der dort die Netze trennt. Aber im Grunde ist auch das einfac eine neue Linuxmaschine, die entsprechend konfigurierbar ist.

    • jdo says:

      Wo ich wohne ist es sehr schwierig an "neumodische" Hardware zu kommen. Deswegen muss man hier erst einmal ausloten, was man zur Verfügung hat. Und meine Lösung war einfach der schnellste und den Umständen entsprechend beste Weg.

  3. Ikem says:

    > Das Problem ist nur, dass _einige_ der Freigaben kein Passwort haben

    > Ein weiterer großer _Vorteil_ der Lösung über die zweite Netzwerkkarte ist

    Typos.