Jump to content

iptables - Ich werde noch wahnsinnig!!


el_don

Recommended Posts

Hallo zusammen,
ich hatte ein ähnliches Thema schon einmal hier im Forum, welches ich als gelöst empfunden hatte, was aber wohl ein Trugschluss war.
Es geht darum, dass ich mit zwei Docker Containern (fail2ban und emby) meinen Zugriff auf das Mediacenter von außen sichern möchte.
Der Zugriff aus dem Internet erfolgt über einen Reverse Proxy Docker Container.

Kurz zur allgemeinen Info:
fail2ban untersucht die embyserver.txt nach fehlgeschlagenen Logins und setzt in der Unraid iptables eine Regel, welche dann die IP Adresse auf definierte Zeit sperrt. Fail2ban findet die logdatei und erstellt den Eintrag, den ich auch in der chain "f2b-emby" über

iptables -L

wiederfinde...So weit, so gut...oder auch nicht, denn trotz Eintrag in den Chains, kann ich munter auf Emby zugreifen. 

Okay, dann halt mal iptables loggen und schauen was die Pakete überhaupt machen.

In der Input Chain, also dort wo eigentlich der gesamte Traffic reinkommt, eine Regel angelegt.

iptables -I INPUT -s 91.136.xx.xx/24 -j LOG

(xx.xx/24 steht  natürlich für eine konkrete Netzmaske aus der IP Adresse mit der ich zugreife). Dann ein

tail -f /var/log/syslog

und abgefeuert. Kein logging...das ist schon mal SEHR seltsam. Wenn ich es richtig verstanden habe, sollte ja sämtlicher Traffic zunächst über die INPUT chain kommen, bevor er weiterverarbeitet wird.

 

Okay, dann halt mal ein Logging auf die DOCKER-USER chain (ist Bestandteil der FORWARD chain), in der die f2b-emby einbaut ist gesetzt:

iptables -A DOCKER-USER -s 91.136.xx.xx/24 -j LOG

Kurz wieder in die syslog geschaut und bingo... ich kann sehen wie die Pakete durchrauschen.
Hier eine Zeile des Log-Eintrags:

Aug 23 10:24:24 unraid kernel: IN=br0 OUT=br0 PHYSIN=bond0 PHYSOUT=vnet24 MAC:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX SRC=91.136.xx.xx DST=10.36.xx.xx LEN=76 TOS=0x00 PREC=0x00 TTL=49 ID=0 DF PROTO=TCP SPT=50214 DPT=4443 WINDOW=4194 RES=0x00 ACK PSH FIN URGP=0

Dann also jetzt eine Regel an den Anfang der Chain setzen:

iptables -I DOCKER-USER -s 91.136.XX.XX -j DROP

Das Logging zeigt beim Zugriff nichts mehr an, also gehe ich davon aus, dass die ankommenden Pakete tatsächlich verworfen werden.

Aber jetzt kommt der Clou: Ich kann TROTZDEM auf emby zugreifen und meine Filme schauen.

Was ist denn da los? Kann das ggf. am Bonding liegen? Ansonsten hätte ich keinerlei Erklärungen. Ich werde noch wahnsinnig!!!
Habt Ihr eine Idee? Falls Ihr noch weitere Infos benötigt einfach nachfragen.

Vielen Dank
 

Edited by el_don
Link to comment

So, ich habe ich das Konstrukt fail2ban, emby und iptables mal auf einer schnell hochgezogenen Linux VM ausprobiert und es funktioniert nach Anpassen der Configs quasi "out of the box", so wie man es erwartet. Zusätzlich habe ich mal hier im Forum etwas recherchiert. Angesichts der zahlreichen zumeist gänzlich unbeantworteten Posts zum Thema IPtables, komme ich langsam zu dem Verdacht, dass Unraid netfilter bzw. iptables gar nicht wirklich korrekt implementiert hat.  Oder es ist so dermaßen verquarzt programmiert, dass da wirklich niemand mehr durchblickt. Etwas enttäuschend für ein Payware Produkt, aber vielleicht bin ich ja auch zu blöd und jemand Anderes hat da den Durchblick und kann mir erklären was ich da falsch mache.

Link to comment

Tja. War eigentlich eine gute Idee, aber leider hat es nichts geändert.

Es ist wirklich äußerst seltsam.

 

Was mir aber noch aufgefallen ist:
Docker arbeitet da scheinbar mit internen VLANS. Wenn das ein IP oder MAC basiertes VLAN ist (kann man ja in den Einstellungen scheinbar auch parametrieren), dann ist es ja quasi "richtig", dass iptables die Pakete nicht sieht. Vielleicht ist das ein Ansatz.

 

Edited by el_don
Link to comment

@mgutt Berechtigter Ansatz. Ich habe beides ausprobiert, aber leider war das Ergebnis identisch. Es gibt in den Docker Manuals auch eine Rubrik iptables https://docs.docker.com/network/iptables/ Da werde ich mal etwas stöbern, wobei es auf den ersten Blick genau das ist wie ich es gemacht und auch so verstanden habe.

Ich werde weiter berichten falls es neue Erkenntnisse dazu gibt.

 

@Ford Prefect Danke für Deinen Hinweis, aber ich möchte hier keine Philosophien diskutieren. Ich habe meine Gründe warum ich es genau so lösen möchte. Ich habe zuhause nicht wie auf der Arbeit einen Serverpark zur Verfügung und warum soll ich es mit einer zusätzlichen VM komplizieren, wenn es mit Unraid a.k.a. Linux mit Bordmitteln zu lösen ist oder zumindest sein sollte?

... to be continued ...

 

  • Like 1
Link to comment

Ich denke, dass ich nach etwas Literatur zum Thema jetzt genug Info habe um die Sache zu lösen.

 

Also... mein "Fehler" war, dass ich für meine Container das macvlan Dockernetz benutzt habe. Dieses Dockernetz benutzt einen eigenen Treiber,
der quasi unterm Radar von iptables funktioniert.

Ich habe also für die besagten Container (reverse proxy, emby und fail2ban) einfach die Bridge benutzt und die Ports weitergeleitet und siehe da.... iptables funktioniert jetzt genau so wie ich es erwarte.

Wie ich das im macvlan Netz realisieren kann, was ich nebenbei gesagt etwas eleganter gefunden hätte, weiß ich zwar immer noch nicht, aber die Lösung wie ich sie jetzt implentiert habe funktioniert, zumindest was iptables angeht, so wie erwartet.

Edited by el_don
Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...