Archiv verlassen und diese Seite im Standarddesign anzeigen : Webseiten Sperren mit iptables
Herr Kommisar
06.03.04, 09:45
Hi
ich will einige Webseiten (Schweinskramwebseiten) sperren
mit ip tables .
hat jemand ne gute idee
ich probiere gerade mit
iptables -A OUTPUT -o ppp0 -s www.schweinskram.de -j DROP
klappt aber nich
stefan-tiger
06.03.04, 09:50
ich hab das noch nie gamcht, aber eine elegantere lösung stelle ich mir so vor:
1. alle anfragen auf port 53 auf deinen eigenen dns-server umleiten
2. eine blacklist auf deinem eigenen dns-server anlegen
3. dann kannst du auch ne definierte webseite anzeigen lassen, als fehlermeldung
oder
- du nimmst einen transparenten proxy server, da gibts auch möglichkeiten websetein zu sperren.
gruß
Herr Kommisar
06.03.04, 09:52
gute Idee
und wie funktioniert das mit der blacklist
stefan-tiger
06.03.04, 09:55
Original geschrieben von Herr Kommisar
gute Idee
und wie funktioniert das mit der blacklist
:mad: noch einer ohne google-anschluss:
http://www.bn-paf.de/filter/index_de.html#setup
Windoofsklicker
06.03.04, 10:36
iptables -I FORWARD -o $lan -i $internet -s www.schweineseite.de -j DROP
oder andersrum
iptables -I FORWARD -o $internet -i $lan -d www.schweineseite.de -j DROP
ansonsten schau dir mal den squid proxy an. möglicherweise oversized für deine zwecke, aber ein blick ist er wert: www.squid-cache.org
Herr Kommisar
06.03.04, 11:20
die regeln hab ich schon in allen varianten probiert
aber die funktionieren nicht
muss dazu sagen hab mir das iptables script von www.harry.homelinux.org
zusammenstellen lassen und dann die regel am ende eingefügt
vielleicht is das das problem ???
die forwarding rules lassen sich einfach umgehen, wenn der client einen proxy ausserhalb des unternehmens nutzt
da müssen entweder schon weitere filterregeln her, die ports der proxy-server blocken/umleiten oder ein verbot auf den clients einen proxy server einzustellen
greez
Windoofsklicker
08.03.04, 07:38
stimmt... am besten das rüsselchen installieren. s.u. :D
*gg
ja, und dann?
ich meine hauptsächlich dient dein "kleiner helfer" ja nur zum logging/detecting - nicht zur prevention
deshalb interessiert mich mal: wie genau willst du vorgehen?
greez
Original geschrieben von Herr Kommisar
die regeln hab ich schon in allen varianten probiert
aber die funktionieren nicht
muss dazu sagen hab mir das iptables script von www.harry.homelinux.org
zusammenstellen lassen und dann die regel am ende eingefügt
vielleicht is das das problem ???
die Regeln werden von oben nach unten abgearbeitet ...
aber das Problem ist wohl, daß iptables nix mit Domainnamen anfangen kann. Also entweder die IP blocken, oder einen Proxy nutzen (wobei Proxy natürlich die bessere Lösung ist).
Gruß Swen
http://www.schweineseite.de/
pfui sag ich nur ... was ein beispiel :D
see rfc2606 (http://www.rfc-editor.org/rfc/rfc2606.txt)
cu
ps: es gibt auch schweinkramlinks mit ip-adressen. bei denen zieht ein dns-fake nicht
Original geschrieben von Herr Kommisar
iptables -A OUTPUT -o ppp0 -s www.schweinskram.de -j DROP
Das kann nicht klappen. In die OUTPUT-Chain gelangen keine Pakete, die als Quelle www.schweinskram.de haben - die gehen da höchstens hin, kommen aber nicht von dort.
Von daher:
iptables -A OUTPUT -o ppp0 -d www.schweinskram.de -j DROP
Original geschrieben von Windoofsklicker
iptables -I FORWARD -o $lan -i $internet -s www.schweineseite.de -j DROP
oder andersrum
iptables -I FORWARD -o $internet -i $lan -d www.schweineseite.de -j DROP
Das klappt genausowenig. In die FORWARD-Chain gelangen nur Pakete, die durch den Rechner geroutet werden (mittels ip_forward, von einem Interface auf das andere). Niemals gelangen da Pakete rein, die von dem Rechner selbst kommen (lokal erzeugt) oder für den Rechner selbst sind.
Edit: Und wenn diese Regeln auf einem Router erzeugt werden, scheitern sie wohl an -o $lan -i $internet. Ein Paket kann doch nicht gleichzeitig auf einem Interface reinkommen und auf dem anderen wieder rausgehen, oder? Ich würde das einfach mal weglassen, dann müsste es gehen ...
Original geschrieben von swen1
aber das Problem ist wohl, daß iptables nix mit Domainnamen anfangen kann.
Auch das ist falsch. iptables löst Domainnamen auf.
Ich würde euch allen mal raten einen Blick hier (http://iptables-tutorial.frozentux.net/) hineinzuwerfen ;).
Btw, so etwas macht man in der Tat für gewöhnlich über einen Proxy (nimm einen transparenten und du musst die Clients nicht anrühren).
Bubble
Edit: Und wenn diese Regeln auf einem Router erzeugt werden, scheitern sie wohl an -o $lan -i $internet. Ein Paket kann doch nicht gleichzeitig auf einem Interface reinkommen und auf dem anderen wieder rausgehen, oder? Ich würde das einfach mal weglassen, dann müsste es gehen ...
die regel stimmt schon so
bei der forward chain ist es möglich -i und -o gleichzeitig anzugeben
dabei wird nicht davon ausgegangen, dass das paket gleichzeitig auf beiden interfaces eintrifft, sondern der logische fluss des paketes: also
INPUT (-i) -> OUTPUT (-O)
zu den domainnamen:
AFAIK löst iptables nur dann DNS-Namen auf, wenn diese auf eine IP zeigen
im normalfall zeigt ein DNS der form domain.org aber nicht auf eine IP
ergo kann iptables damit nichts anfangen, weil es die domain nicht auflösen kann
greez
Original geschrieben von emba
die regel stimmt schon so
bei der forward chain ist es möglich -i und -o gleichzeitig anzugeben
dabei wird nicht davon ausgegangen, dass das paket gleichzeitig auf beiden interfaces eintrifft, sondern der logische fluss des paketes: also
INPUT (-i) -> OUTPUT (-O)
OK, das ist richtig.
Original geschrieben von emba
zu den domainnamen:
AFAIK löst iptables nur dann DNS-Namen auf, wenn diese auf eine IP zeigen
im normalfall zeigt ein DNS der form domain.org aber nicht auf eine IP
ergo kann iptables damit nichts anfangen, weil es die domain nicht auflösen kann
greez
Da iptables auf Layer 3 arbeitet, sind IP-Adressen natürlich schon notwendig. Nur dann geb ich eben statt einer Domain eine URL ein (so wie es in den Beispielen in diesem Thread hier auch gemacht wurde), und schon kann iptables die entsprechende IP ermitteln.
Bubble
Da iptables auf Layer 3 arbeitet, sind IP-Adressen natürlich schon notwendig. Nur dann geb ich eben statt einer Domain eine URL ein (so wie es in den Beispielen in diesem Thread hier auch gemacht wurde), und schon kann iptables die entsprechende IP ermitteln.
na logo, klar geht das so ;)
vielmehr ging es mir um solche geschichten :
-s 190.168.0.0/24
dies ist via DNS-lookups nicht möglich (eigentlich klar)
außerdem würde ich eh nie mit DNS namen arbeiten, da die entsprechenden IPs sich schnell ändern könnten und somit ggf. meine rule verfälscht
greez
Original geschrieben von emba
außerdem würde ich eh nie mit DNS namen arbeiten, da die entsprechenden IPs sich schnell ändern könnten und somit ggf. meine rule verfälscht
Nein. Genau in dem Fall ist es eigentlich sinnvoller, mit DNS-Namen zu arbeiten. Mal angenommen du hast
www.example.com (danke für den RFC-Link, systemdefender ;) ) ==> 1.2.3.4
Wenn du nun nach 1.2.3.4 filterst und www.example.com auf einmal nach 5.6.7.8 umzieht, dann ist diese Seite für deine Anwender wieder erreichbar. Filterst du aber nach www.example.com, bleibt die Adresse gefiltert, da bei jedem Start von iptables (i.d.R. also beim Bootvorgang oder nach einem Neudurchlauf des Skripts) die IP-Adressen in den Regeln wieder an den DNS-Namen angepasst werden.
Außerdem hatte ich früher einmal mit ipchains folgenden Effekt: Ich wollte POP3-Verkehr nach pop.t-online.de zulassen. Über einen Ping bekommt man eine IP-Adresse. Hat man aber eine Regel in ipchains mit -d pop.t-online.de angelegt, wurden gleich mehrere Regeln mit verschiedenen IP-Adressen angelegt, die alle auf pop.t-online.de verwiesen haben. Ich denke iptables arbeitet da gleich.
Mal ne Frage am Rande: a) Warum gab es da mehrere Adressen? Hatte das was mit Lastverteilung zu tun? Und b) wie komme ich an all diese Adressen? Wie ist ipchains an die Adressen gekommen? Wie gesagt, ein Ping liefert ja immer nur eine Adresse zurück ... evtl. über eine DNS-Abfrage mit nslookup o.ä.?
Bubble
Nein. Genau in dem Fall ist es eigentlich sinnvoller, mit DNS-Namen zu arbeiten. Mal angenommen du hast
okay, in dem speziellen fall hier gebe ich dir recht, was DNS und iptables angeht :)
greez
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.