This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
Diverse flatrates dürfen auch mit Router genutzt werden. DOMBLK dient dazu, Domains oder Subdomains sperren und nur fuer einzelne IP-Adressen oder Netze des LAN freizugeben. Anstoß war der Wunsch dafür zu sorgen, dass z.B. bei t-online niemand anderes (im lokalen Netz) den Tarif aendern oder die t-online mails abrufen kann, was ohne einen solchen Mechanismus ohne weiteres möglich wäre.
Es können eine oder mehrere IP-Adressen bzw. hosts im LAN angegeben werden,
die dennoch auf diese Domains zugreifen können. Im Normalfall also Dein
Rechner:-). Diese Hosts können auf _alle_ sonst gesperrten Domains zugreifen.
Wenn bei der Einwahl die IP-Adresse(n) einer zu sperrenden Domain nicht
ermittelbar ist, wird der Internetzugang zunächst nur diesen Hosts gewährt und
es wird alle 20 sec noch einmal probiert, alle aufzulösen.
Die Konfiguration kann zur Laufzeit (ohne neu zu booten und ohne sich neu einzuwählen) im mini-http-webserver des fli geändert werden.
Optional können web-Zugriffe auf gesperrte Seiten auf eine Fehlermeldungsseite umgelenkt werden (siehe OPT_ERRPAGE).
**************************** Einschränkungen **********************************Wenn sich die Namensauflösung der Domains ändert, während der Router online ist (Dyndns-Domains?), geht die Sperre ggfs. ins Leere.
DOMBLK schützt nur vor fahrlässiger Fehlbedienung, nicht vor Bösartigkeit eines Mit-Users, der ohne weitere Maßnahmen z.B. Namen und IP-Adresse Deines Rechners verwenden könnte, wenn Du diesen zum DOMBLK_ACCEPT_HOST gemacht hast..
Verwendet ein User für web- oder ftp-Zugriffe einen Proxy, dann greifen die Sperren nicht (ebensowenig wie bei einer Sperre auf DNS-Ebene). DOMBLK fokussiert auf die speziellen Anforderungen bei Verwendung einer t-online DSL-flatrate (oder Volumentarif): Die rechtsgültige Authentifizierung für Vertragsänderungen oder -abschlüsse funktioniert über proxys nicht, auch wenn die Links erreichbar sind.
DOMBLK verhindert u.U. nicht das Auslösen einer Einwahl bei einem Versuch, auf eine der gesperrten Domains zuzugreifen. Das geht so nicht und würde keinen Sinn machen, weil vorher eh aus der Adresse online die zu sperrende IP-Adresse ermittelt.
Die Fehlermeldungsseite erscheint nur bei http-Zugriffen (Port 80). Bei mail oder sonstigen Diensten würde das ja auch keinen Sinn machen.
Wenn man eine Domain gesperrt hatte und wieder frei gibt, oder wenn man einen Rechner im LAN zum Accepthost macht, kann es in einigen Fällen (je nach Domain und nach Browser) vorkommen, dass erst der Cache des Browsers gelöscht werden muss, bevor auf die eigentliche Domain zugegriffen wird.
********************** Installationsvoraussetzungen ***************************fli4l 2.0.7, 2.0.8 als Einwahlrouter (ISDN oder DSL)
optional für die Fehlermeldungsseite:
OPT_HTTPD (auf der Downloadseite von fli4l selbst, nicht bei den opts)
OPT_ERRPAGE (in diesem Paket enthalten)
****************************** Konfiguration **********************************Die Konfiguration sollte sich aus der Beispielkonfig ergeben:
OPT_DOMBLK='yes' | # install domblk, 'yes' oder 'no'. |
DOMBLK_DENYDOM_N='3' | # Anzahl der zu sperrenden Domains |
DOMBLK_DENYDOM_1='service.t-online.de' | # z.B. die Kundenseiten von t-online |
DOMBLK_DENYDOM_2='pop.t-online.de' | # z.B. einer der pop-server. Dies sperrt gleichzeitig auch z.B. mailto.t-online.de |
DOMBLK_DENYDOM_3='www-proxy.t-online.de' | # Der proxy von t-online |
DOMBLK_DENYDOM_4='home-up.t-online.de' | # Der (demnächst stillgelegte) ftp-upload |
DOMBLK_ACCEPTHOST_N='1' | # Wieviel Rechner oder Netze haben dennoch Erlaubnis? Achtung, das ist mindestens insofern nicht sicher, als jeder sich diese Adresse geben kann, wenn keine anderen Vorkehrungen getroffen sind. |
DOMBLK_ACCEPTHOST_1='Rechnername' | # Eingabe des Hosts als Name, IP- Adresse oder Netz |
DOMBLK_LOG='yes' | # Logging der Initialisierung im Syslog als Notiz. Logging von Versuchen, auf die gesperrten Domains zuzugreifen, im Firewall-Log. |
Die Umlenkung der Zugriffe auf gesperrte Seiten passiert automatisch, wenn OPT_ERRPAGE installiert wird. Siehe gesonderte Dokumentation und: config/errpage.txt editieren!
Für die Zugangsbeschränkungen des mini-httpd (siehe dessen Doku) lauten die Abschnitte für domblk:
SEC_REALM='domblk'
SEC_ACTION='show'
bzw. zum Ändern der Konfig:
SEC_ACTION='update'
Also z.B. in der httpd.txt:
HTTPD_USER_1='Papa'
HTTPD_PASS_1='xxx'
HTTPD_RIGHTS_1='all'
HTTPD_USER_2='Jemand'
HTTPD_PASS_2='yyy'
HTTPD_RIGHTS_2='status:view domblk:show'
config/domblk.txt | Konfigurationsdatei. |
check/domblk.txt | Variablen-Prüfung. |
opt/domblk.txt | Liste der zu kopierenden Dateien. |
opt/etc/rc.d/rc120.domblk | Das boot-Skript. |
opt/etc/ppp/ip-up.domblk | Das eigentliche Skript bei Einwahl. |
opt/etc/ppp/ip-down.domblk | Das eigentliche Skript bei Einwahl. |
opt/files/usr/htdocs/main_domblk.cgi | Benutzeroberfläche im mini-httpd |
opt/files/usr/htdocs/domblk_update.cgi | Aktualisierung der Konfiig |
doc/deutsch/opt/domblk.txt | Dokumentation als Textdatei. |
doc/deutsch/opt/domblk.html | Diese Datei. |
Gesperrt wird das forwarding von/zu den nicht-accepthosts von/zu den IP-Adressen
der DENYDOMs.
Die IP-Adresse(n) der zu sperrenden Domains werden per nslookup-Aufruf bei
jeder Einwahl ermittelt (wenn diese nicht als IP-Adressen oder Netze angegeben
sind).
Die Zugriffe auf diese Adressen sperren werden dann (in domblkfw) gesperrt und
optional (bei Zugriff auf Port 80 und errpage) (in domblkrd) umgeleitet.
Bei gescheiterter Auflösung einer zu sperrenden Domain wird (als Background-
Prozess, um ip-up oder den boot-Vorgang nicht aufzuhalten) alle 20 sec noch
einmal probiert. Da in diesem Fall (noch) keine Sperre für die "bösen" Domains
errichtet werden kann, muss (für nicht-Accepthosts) der Internetzugang komplett
gesperrt werden, und zwar wird das Forwarding über pp+ Interfaces gesperrt.
Andere lokale Subnetze (und der fli selbst) bleiben also erreichbar.
Zugriffe auf Port 80 der zu sperrenden Domains werden auf errpage umgeleitet.
Eine Sperre per DNS - wie an anderen Stellen empfohlen - scheint mir nicht so sinnig zu sein, da oftmals der fli bei den Clients nicht als DNS-Server eingetragen wird (gerade bei flat, wenn die daraus resultierenden Einwahlen wg. DNS nicht auffallen) und nicht einzelne Rechner "freigeschaltet" werden können.
Ebenso wie eine Sperre per DNS ist auch DOMBLK-Sperre anhand der IP-Adresse durch die Nutzung eines Proxys umschiffbar, die RADIUS-Authentifizierung von t-online klappt dann aber (zum Glück) nicht.
Fehler/Patches bitte an die Gruppe spline.fli4l.opt oder per mail an mich.
*********************************** FAQ ***************************************Q: | DOMBLK sperrt immer alles (bis auf die Accepthosts). Was ist faul? |
A: | Wahrscheinlich ein Tippfehler bei der Eingabe einer denydom. Bei
der Einwahl muss domblk versuchen, die zugehörige IP-Adresse(n) zu
ermitteln. Wenn das nicht gelingt, muss domblk alles sperren - eine Frage der Logik:-) |
Q: | Löst DOMBLK ständig alle 20 sec die denydoms auf? |
A: | Nein. Sobald die Auflösung einmal geklappt hat, ist bis zur nächsten Einwahl Ruhe. |
Q: | Was sollen diese Andeutungen über unsichere t-online-Server? Alle Welt nutzt die doch? |
A: | Die Server sind nicht unsicher. Das Problem ist, dass ggfs. eine
Authentifizierung allein durch die Einwahl (des Routers!) geschieht. Alle User eines LANs
hinter dem fli sind also seitens t-online authentifiziert - die mails abzurufen und unter dem Namen des Anmelders zu senden (dies gilt auch in Kombination mit dem "Komfort-Paket", dass zwar verschiedene Mailzugänge per pop3-Passwort organisiert, bei Zugriff auf die "Standard"-Server aber weiterhin fremdes Abholen und Senden der mails des Hauptbenutzers erlaubt, - kostenpflichtige Services zu beauftragen (das wechselt dauernd, bei welchen Sachen noch einmal eine PW-Eingabe vonnöten ist und bei welchen nicht, derzeit ist z.B. mindestens der kostenpflichtige Spamfilter durch einen einfachen Klick aktivierbar), - den Tarif zu ändern. Das kann *sehr* teuer werden. Ob das derzeit noch immer ohne weitere PW-Angabe geht, prüfe ich nicht:-). Für weitere Infos einfach in den internen t-online-Newsgroups mithören. |
Q: | Wenn ich nicht auflösbare Domains über das web-interface eingegeben habe, funktioniert die Weiterleitung nach dem Speichern der Änderungen oft nicht, d.h. ich lande nicht automatisch wieder auf der domblk-Seite. Ist da was abgestürzt / kaputt? |
A: | Nein. Alles funktioniert dennoch. Bitte klicke von Hand auf den Link zum Weiterleiten. Dies softwaretechnisch zu umgehen, wäre sehr aufwändig. |
Q: | Wenn ich eine Domain wieder freigebe oder einen Host zum ACCEPHOST mache, kommt bei manchen Browsern/Browsereinstellungen und auch nur bei manchen Domains anschließend dennoch die Fehlerseite, wenn ich diese Domain aufrufe. Was läuft da schief? |
A: | Die Sperren bzw. Freigaben wurde richtig erstellt. Lösche den Browser-
cache. Warte ein wenig:-) Falls das bei Deinen Domains störend
auftritt, deaktiviere errpage. Hintergrund: Beim letzten (gesperrten) Zugriffsversuch auf die domain hat Dein Browser die Daten im Cache behalten, obwohl ihm die Fehlerseite empfahl, das nicht zu tun. (Fixme: Was machen diese Domains, z.B. strato-Domains, anders? DNS?) |
Q: | Gibt es eine Version von DomBlk für fli4l-2.1.*? |
A: | Solange noch nichts auf der Downloadseite von fli4l.de ist, gibt es Snapshots davon und anderer Gimmiks zeitweise auf www.injamati.de/fli4l/. |
Die Fixmes sind zur Jagd freigegeben:-) (siehe Quelltext) Wäre nett, wenn das mal jemand mit ISDN testen könnte.
Ich habe das nur mit fli4l-2.0.8 auf Diskette getestet. Rückmeldungen über domblk mit anderen Versionen und Konfigurationen wären nett:-)
*********************************** ToDo **************************************Fixmes fixen:-)
Englische Doku
********************************** Historie ***********************************ver 0.9.1: 27.06.2003
Erste Auslieferung
ver 0.9.2: 01.07.03
- REJECT statt DENY
- max. 3 Versuche bei Einwahl, die Domains aufzulösen.
- Hinweis und Prüfung auf extratools entfernt, grep und nslookup sind
in busybox enthalten... (*selfpatsch*)
- OPT_ERRPAGE integriert
- kein ip-down mehr, chains bleiben erhalten und werden beim nächsten
ip-up geflushed.
ver 0.9.2a: 02.07.03
- Bugfix: Fehler in der Dateistruktur des zip-files behoben.
ver 0.9.3: 05.07.2003
- Sperre während des Abarbeitung des Skripts.
- Sperre für alle außer accepthosts, wenn denydoms nicht auflösbar sind.
- Wiederholung alle 20 sec, wenn eine Domain nicht auflösbar war.
- Umstrukturierung der chain-Anordnung, so dass auch mehrere Subnets
kein Problem sein sollten.
- Auch eingehende Verbindungen werden gesperrt
- Das bootscript wird früher gestartet.
- Fehler beim Start ohne ERRPAGE behoben.
- Nur mit Version 0.9.3 von ERRPAGE werden Fehlerseiten angezeigt!
- Fehler in der Doku korrigiert, Doku aktualisiert.
ver 1.0
- Eigentlich unveränderte Version 1.0, bei der nur in errpage ein
Problem mit dem Cache des Internet explorers behoben ist.
Schließlich gab es keine weiteren Rückmeldungen über Probleme...
ver 1.0.9: 26.12.2003
- Bei Abwahl wird nicht weiter versucht, die Domains aufzulösen (ip-down wieder drin).
- Es können jetzt auch IPs und Netze statt Domains gesperrt werden.
- Benutzeroberfläche im mini-httpd eingefügt. Jetzt kann zur Laufzeit
die Konfig geändert werden (auch ohne neue Einwahl).
- Konfigurationsvorschlag mit www-proxy.t-online.de aufgenommen.
ver 1.0.10: 13.02.2004
- Benutzeroberfläche verbessert
- Bugfix: Im Falle 'errpage installiert' und 'IP-Adressen nicht ermittelbar' konnten Nicht-Accepthosts
den mini-httpd des fli nicht erreichen, wenn der auf Port 80 lief (was standarmäßig der Fall ist).
- Kleinere Typos und Scriptbereinigungen
- Doku upgedatet.
ver 1.0.11: 07.03.2004
- security fix: Im Falle 'errpage installiert' _und_ 'IP-Adressen nicht ermittelbar'
wurde auch bei Zugriffen von aussen errpage angezeigt
- logging verändert