[Frage] FB VPN Zugriff nur in eine Richtung

geohei

Mitglied
Mitglied seit
8 Apr 2005
Beiträge
493
Punkte für Reaktionen
3
Punkte
18
Hallo.

2 FBs sind über VPN LAN-LAN miteinander verbunden.

Wie soll die accesslist der beider FBs aussehen, wenn ich nur Zugriff in eine Richtung, nicht aber in die andere Richtung haben will?

Was ich jetzt habe:
Netzwerk A ist 192.168.178.0 und hat accesslist = "permit ip any 192.168.179.0 255.255.255.0";.
Netzwerk B ist 192.168.179.0 und hat accesslist = "permit ip any 192.168.178.0 255.255.255.0";.

Wenn ich jetzt nur auf Netzwerk A auf Netzwerk B zugreifen möchte, sollte dies doch gehen.
Netzwerk A ist 192.168.178.0 und hat accesslist = "permit ip any 192.168.179.0 255.255.255.0";.
Netzwerk B ist 192.168.179.0 und hat accesslist = "deny ip any 192.168.178.0 255.255.255.0";.
Tut's aber nicht. Mit diesen Zeilen habe ich keinen Zugriff mehr von keinem Netzwerk auf das andere.

Gruß,
 
Zuletzt bearbeitet:
Das geht - so wie Du das nach meinem Verständnis möchtest - nicht.

Die "accesslist" regelt nicht nur den Zugriff von einem Netz auf das andere, sie ist auch der entscheidende Punkt, ob Daten verschlüsselt über eine IPSec-Verbindung übertragen werden oder "normal" über das WAN-Device. Bei der FRITZ!Box-Firmware sitzt der "IPSec-Stack" am/auf "dev dsl" und - ähnlich wie bei neueren Linux-Versionen mit den xfrm-Regeln und passenden iptables-Targets - es wird wohl nur anhand der accesslist entschieden, ob die Daten "abbiegen" oder nicht.

Da dort auch kein Connection-Tracking o.ä. stattfindet (es gibt ja beim VPN keine Firewall, die durchquert werden muß auf dem "Rückweg"), braucht es auch in Netzwerk B die Genehmigung zum Zugriff auf 192.168.178.0/24 aus zwei Gründen ... einmal damit die Daten überhaupt verschlüsselt werden (kann man leicht mit einem Packetdump prüfen, daß Daten, auf die die "accesslist"-Bedingungen nicht passen, auf der "1. Internetverbindung" sichtbar werden) und zweitens, damit die Daten aus Netzwerk B im Rahmen einer Antwort auf eine Anfrage aus Netzwerk A auch wieder im Netzwerk A ankommen. Die "accesslist" gilt eben für jedes Datenpaket und nicht nur für solche, die eine neue Verbindung aufbauen.
 
Verständlich erklärt. Danke!

Das würde dann auch erklären, warum der Austausch von "permit" zu "deny" (Netzwerk B) den Verkehr von beiden Seiten lahm legt.

So wie ich es verstanden habe, ist der Zugriff in nur eine Richtung dann wohl durch accesslist nicht möglich. Kann ich den Verkehr mittels VPN LAN-LAN denn wenigstens auf verschiedene IPs beschränken?
 
Ja, Du kannst die VPN-Verbindung auf bestimmte Hosts einschränken. Anstelle von "any" an der ersten Position kannst Du auch eine Kombination aus IP-Adresse und Subnet-Maske angeben, um den abgehenden Verkehr von einem einzelnen Host zu erlauben. Wenn es mehrere Hosts sind und die sich nicht zusammenfassen lassen, kannst Du auch mehrere Regeln angeben (so wie Du das ja schon machst). Ob es eine obere Grenze für deren Anzahl gibt und wenn ja, wo diese liegt, kann ich Dir nicht sagen.

Es ist sogar möglich, mit Port-Zusätzen bei einer Regel die Verbindung auf bestimmte Dienste zu beschränken, Du mußt nur berücksichtigen, daß bei einer Anfrage an einen Dienst der Quellport variabel ist und der Zielport dem Dienst entspricht und daß es bei der Antwort auf der anderen Seite genau umgekehrt ist.
 
Ok.

a.
Angenommen ich möchte, dass Netzwerk B nur auf einen Host von Netzwerk A (192.168.178.12) zugreifen kann, sollten die VPN .cfg beider FB dann so aussehen?

Netzwerk A ist 192.168.178.0 und hat accesslist = "permit ip 192.168.178.12 255.255.255.0 192.168.179.0 255.255.255.0";.
Netzwerk B ist 192.168.179.0 und hat accesslist = "permit ip any 192.168.178.0 255.255.255.0";.

b.
Zu welchem Zweck wendet man denn eigentlich deny in der accesslist an?
 
Netzwerk A ist 192.168.178.0 und hat accesslist = "permit ip 192.168.178.12 255.255.255.0 192.168.179.0 255.255.255.0";.
Netzwerk B ist 192.168.179.0 und hat accesslist = "permit ip any 192.168.178.0 255.255.255.0";.
Nein.

A: accesslist = "permit ip 192.168.178.12 255.255.255.255 192.168.179.0 255.255.255.0";
B: accesslist = "permit ip any 192.168.178.12 255.255.255.255";

Zu welchem Zweck wendet man denn eigentlich deny in der accesslist an?
Es gibt sicherlich Konstruktionen, wo das auch Sinn macht ... es kann aber auch ganz simpel daran liegen, daß diese accesslist-Variante nicht nur bei VPN zum Einsatz kommt. Wenn ich mich ganz dunkel richtig erinnere, war das schon im letzten Jahrtausend das Format, das in AVM's Multi-Protokoll-Routern (MPR) zum Einsatz kam, um Zugriffslisten zu konfigurieren. Dort war das schon deshalb eine Kunst für sich, weil jedes fehlgeleitete Datenpaket eine kostenpflichtige ISDN-Verbindung verursachen konnte und man so ganz schnell eine nette Telefonrechnung beisammen hatte im Falle einer falschen Konfiguration.
 
A: accesslist = "permit ip 192.168.178.12 255.255.255.255 192.168.179.0 255.255.255.0";
B: accesslist = "permit ip any 192.168.178.12 255.255.255.255";
Das wäre dann ...
Ich kann nur von Host 192.168.178.12 (und von sonst keinem) aus Netzwerk A alle Hosts des Netzwerks B ansprechen.
Und umgedreht ... ich kann von allen Hosts aus Netzwerk B nur Host 192.168.178.12 aus Netzwerk A erreichen.

Ist das richtig so?

Diese accesslist Regeln müssen doch irgendwo dokumentiert sein ... ?!
 
Zuletzt bearbeitet:
Ist das richtig so?
Ja.

Diese accesslist Regeln müssen doch irgendwo dokumentiert sein ... ?!
Nein. Zumindest wohl nicht "offiziell". Ein wenig Interpretation und allgemeine Netzwerkkenntnisse sollten reichen. Es gibt sicherlich einige Stellen im Internet, wo das auch mit "Port"-Zusatz beschrieben ist. Ansonsten kann man auch in den betreffenden Binaries von AVM (bzw. in den Libs) mit einer String-Analyse erstaunlich viel feststellen und dann hilft halt systematisches "Probieren", das ist durchaus auch eine Art von Test, wenn man die Ergebnisse entsprechend bewertet.
 
Wenn du nur eine Richtung haben willst, dann geht es nur über Ports.
z.B. wenn du nur HTTP von A nach B machen willst dann so:

A: accesslist = "permit tcp any 192.168.179.0 255.255.255.0 eq 80";
B: accesslist = "permit tcp any eq 80 192.168.178.0 255.255.255.0";
 
@eisbaerin:
Selbst auf die Gefahr hin, daß das jetzt "Krümelkackerei" ist ... aber das ist ein gerne genommener Fehler. Deine Access-Listen haben nichts mit "in eine Richtung zu tun", sie legen tatsächlich "nur einen Dienst" fest und wären von einem Angreifer (im B-Netz) ohne weiteres zu mißbrauchen/zu umgehen.

Dieser Angreifer (in Netz B) muß nur dafür sorgen, daß er von Port 80 sendet (das kann auch jemand außerhalb der Box sein dank "any"), dann kann er auch seinerseits jeden Host in Netz A erreichen, ohne daß die Verbindung aus Netz A kam.

Ob der "outgoing-related"- bzw. "incoming-related"-Zusatz für "stateful inspection" beim VPN funktioniert, weiß ich nicht ... aber der wäre dann eine mögliche Lösung.

Ansonsten lieber zwei oder noch mehr Regeln mit konkreten Adressen nehmen, wenn man die exakten Ziele für solche Port-basierten Freigaben kennt. Dann bleibt wenigstens die Verbindungsmöglichkeit von anderen als den angegebenen Hosts verbaut.
 
Jo, das war auch erst mal nur das Prinzip.
Und richtig, eine Firewall ist es nie!
Das läßt sich aber mit noch einigen deny verbessern.
Besser wäre auch schon:

A: accesslist = "permit tcp 192.168.178.0 255.255.255.0 192.168.179.0 255.255.255.0 eq 80";
B: accesslist = "permit tcp 192.168.179.0 255.255.255.0 eq 80 192.168.178.0 255.255.255.0";

Aber dazu müßte man dann das Gesamtkonzept kennen.
 
Zuletzt bearbeitet:
Nein. Zumindest wohl nicht "offiziell". Ein wenig Interpretation und allgemeine Netzwerkkenntnisse sollten reichen. Es gibt sicherlich einige Stellen im Internet, wo das auch mit "Port"-Zusatz beschrieben ist. Ansonsten kann man auch in den betreffenden Binaries von AVM (bzw. in den Libs) mit einer String-Analyse erstaunlich viel feststellen und dann hilft halt systematisches "Probieren", das ist durchaus auch eine Art von Test, wenn man die Ergebnisse entsprechend bewertet.
Ich gewinne langsam den Eindruck als ob AVM diese Syntax absichtlich nicht offenlegt. Wenn man Binaries (womöglich noch über reverse engineering o.Ä.) einsehen muss um mögliche Optionen und Keywords von Konfigurationen heraus zu finden, dann geht das doch etwas zu weit. Ich will/kann keine Dr. Arbeit schreiben um mein Ziel zu erreichen :)

Aber dazu müßte man dann das Gesamtkonzept kennen.
Vereinfacht beschrieben ...

Ziel 1 wenn möglich:
Ich möchte aus Netz A von jedem Host jeden Host von Netz B erreichen. Alle Ports der Hosts von Netz B sollten ansprechbar sein. Aus Netz B möchte ich jeden Verkehr zu Netz A ganz unterbinden.

Ziel 2 wenn 1 nicht möglich ist:
Ich möchte aus Netz A von jedem Host mindestens 2 Host von Netz B erreichen. Alle Ports der beiden Hosts von Netz B sollten ansprechbar sein. Aus Netz B möchte ich jeden Verkehr zu Netz A ganz unterbinden.

Ziel 3 wenn 2 und 1 nicht möglich sind, dann muss ich mich wohl für den Austausch zwischen Netz A und B auf einen Host in Netz A festlegen, obwohl das mit erheblichen Einschränkungen für mich verbunden ist.

Wenn ich es richtig verstanden habe kann ich also über die accesslist nur eine Liste der Hosts definieren, die beidseitig zugänglich sind, und den Verkehr nicht auf eine Richtungen beschränken!
 
Zuletzt bearbeitet:
als ob AVM diese Syntax absichtlich nicht offenlegt.
Die Syntax ist so einfach und benutzt eigentlich fast jeder. (selbst CISCO)

Alle Ports der Hosts von Netz B sollten ansprechbar sein.
Wieso das? Alle 65536? So viele Protokolle und Programme kenne ich gar nicht.

Wenn du mit Netz B so verfeindet bist, dann würde ich da auch kein VPN machen.
VPN mache ich nur unter Freunden.

Oder nimm im Netz A eine 2. FB und mach noch eine NAT-Firewall rein.
Geht bei mir sehr gut.
 
Zuletzt bearbeitet:
Wenn die Syntax so verbreitet ist, kannst du mir einen Link schicken? Google Suche à la "avm accesslist syntax" brachten leider keine Erleuchtung. Keywords wie "eq" wie oben benutzt, muss man einfach kennen einschliesslich deren Anwendungsbereich.

Ich brauche natürlich nicht alle 2^16 Ports. Ich wollte damit nur sagen dass ich die üblichen brauche (22, 23, 80, ...), und u.U. einige krumme (selbst gebastelte). Einer reicht nicht.

Netz B ist mir nicht verfeindet. Ich will nur nicht alles offen lassen. Es sind wirklich nur Freunde verbunden, aber ich habe keine Kontrolle über Zugriffe auf deren FB, und somit möglicherweise auf mein Netz.

Das mit der NAT und zweiten FB habe ich mir auch schon angedacht. Ich habe eine zweite NAT bereits im LAN zwecks AP (Funkzellenerweiterung). Kann ich diese nicht für diesen Zweck missbrauchen oder geht es u.U. sogar mit der "Haupt-FB" (die am DSL hängt)? Gibt es eine KB für diesen Aufbau?
 
Zuletzt bearbeitet:
1. http://www.ip-phone-forum.de/showthread.php?t=259324

2. na dann mach doch einfach pro Port eine Zeile in der accesslist

3.
ich habe keine Kontrolle über Zugriffe auf deren FB, und somit möglicherweise auf mein Netz.
Schlecht, denn dann können die auch die accesslist ändern und es kommt alles zu dir durch.
Wie ich schon schrieb, accesslist ist eben keine Firewall.

4. Einfach 2 FB hintereinander hängen (doppel-NAT) und alles was geschützt werden soll, muß hinter die 2. FB.
Geht mit der 1. FB nicht.
 
Kostenlos!

Neueste Beiträge

Statistik des Forums

Themen
248,900
Beiträge
2,303,597
Mitglieder
378,537
Neuestes Mitglied
parakutak