Schmuddelfilter

Der Schmuddelfilter wertet HTML-Dokumente auf der Basis der META Tags aus. Mit Hilfe der META Tags findet der Eintrag in Suchmaschinen statt, sie beschreiben mit den Begriffen "keywords" und "description" den Inhalt der Seite. Regelbasiert kann man beim LinuxWall Schmuddelfilter angeben, welche "keywords" oder "description" erlaubt und verboten sind und zusätzlich welche Zugriffe protokolliert werden.

Es gibt zwei Konfigurationsdateien, die die Aktionen des LinuxWall Schmuddelfilters steuern : content.rules und content.html. Die Datei content.rules enthält die Regeln zum Zulassen oder Ablehnen eines Zugriffs, content.html enthält die Ersatzseite, die eingeblendet wird, falls der Zugriff nicht erlaubt wird.

Wenn die Datei content.rules nicht vorhanden ist, wird der Schmuddelfilter nicht gestartet. Ist die Datei content.rules vorhanden, aber nicht die Datei content.html, wird automatisch eine Ersatzseite (englisch) erzeugt.

Die Datei content.html enthält eine Datei im HTML-Format, wobei Hyperlinks in dieser Datei extern sein müssen. Eingebettete Bilder müssen also immer einen anderen Web-Server (LAN oder Internet) referenzieren.

Die Datei content.rules ist wie folgt aufgebaut :

Eine beliebige Anzahl von Zeilen, die entweder "DEFAULT: ..." für die Standardeinstellung oder "RULE: ..." für eine Regel enthalten.
In beiden Fällen gibt es eine Aktion
<ACTION>, die entweder "LOG", "DENY, ACCEPT", "LOG,DENY", "DENY,LOG","LOG,ACCEPT" oder "ACCEPT,LOG" ist, wobei das Komma auch weggelassen werden kann. Groß- und Kleinschreibung werden nicht unterschieden.

DEFAULT: <ACTION>
Trifft keine nachfolgende Regel zu, wird diese Aktion ausgeführt, meist
ACCEPT. LOG alleine ist nicht zulässig als default-Aktion.

RULE: <ACTION> : <TEST>
Falls
<TEST> zutrifft, wird <ACTION> ausgeführt, LOG alleine als Aktion bewirkt das Protokollieren und weitere Prüfen von Regeln, bei allen anderen Aktionen wird das Durchsuchen der Regeln beendet.
<TEST> kann ( <TEST> ), <TEST>  AND <TEST>, <TEST> OR <TEST> oder NOT <TEST> sein und bewirkt die üblichen Operationen.
<TEST> ist dann der Buchstabe K (für keyword) oder D (für description), gefolgt von = und einem String in eckigen Klammern [ <STRING> ].
Dieser String wird ähnlich einem Dateinamen unter Unix angegeben. Er  kann alle druckbaren Zeichen enthalten, die Zeichen
? stehen wie unter Unix-shell als Platzhalter für ein einzelnes Zeichen und * für eine beliebig lange Zeichenfolge, die auch leer sein kann. Groß- und Kleinschreibung werden nicht unterschieden.

Folgende Zeilen sind ein Beispiel für einen Schmuddelfilter :

DEFAULT: ACCEPT
RULE: DENY, LOG : K = [porno] or K = [playboy] or K = [sex]

Normalerweise wird ein Dokument akzeptiert, außer wenn in den META Tags als "keyword" die Wörter "Porno", "Playboy" oder "Sex" in allen Schreibweisen (also "porNO", "PORno", ...) vorkommen. Dann wird dieser Zugriff in die Datei content.log protokolliert. Die Datei content.error protokolliert syntaktische Fehler in der Datei content.rules. Beide Dateien werden mit der täglichen Logdateiübermittlung übertragen

Es empfiehlt sich, mit Wildcards ("*") sparsam umzugehen, bei der Angabe von "K = [*sex]" würden die Webseiten aus Sussex möglicherweise auch nicht mehr angezeigt.