Home
14 Proxies - beim O`Reilly Verlag
Contents
1. Normale Anfragen allow query 127 0 0 1 192 168 20 0 24 Bevor wir nun zu den einzelnen Zonen kommen k nnten wir uns noch die Frage stellen ob wir wollen da Klienten die Versionsnummer des Bind durch eine einfache DNS Abfrage nach version bind in der Klasse chaos abfragen d rfen Wenn nicht empfiehlt sich der Eintrag version you surely must be joking Wichtig ist auch noch den Bereich options sauber zu beenden Schlie lich k nnen wir definieren welche Zonen der Server kennen soll Jede Zone sollte in zwei Formen definiert werden Einmal als logischer Name dummy dom um diesen IP Adressen der Art 1 2 3 x zuweisen zu k nnen und einmal als IP Adre bereich in der Form 3 2 1 in addr arpa um auch aus den IP Adressen auf logische Namen zu r ckschlie en zu k nnen Man beachte allerdings die etwas gew hnungsbed rftige Dar stellung von IP Adressen Bei dem folgenden Beispiel ist zu beachten da die Namen der Zonendatenbanken re lativ zur Angabe directory in den globalen Optionen zu sehen sind Ohne den symbo lischen Link den wir im chroot K fig angelegt haben w re es noch komplizierter Dann m ten wir auch noch den Pfad des K figs voransetzen So finden wir die Dateien unter varflib named Auch haben wir mit der Option allow update sichergestellt da die Zonen nicht von anderen Rechnern aus mittels Dynamic DNS Update ver ndert werden k nnen Adressen der Art lt Name
2. 2006 1 4 15 26 page 404 423 header _access If Modified Since allow all header _access Last Modified allow all header _access Location allow all header_access Pragma allow all header _access Accept allow all header_access Accept Charset allow all header _access Accept Encoding allow all header_access Accept Language allow all header_access Content Language allow all header_access Mime Version allow all header_access Retry After allow all header_access Title allow all header_access Connection allow all header_access Proxy Connection allow all header_access All deny all Beide Regelwerke filtern den Namen des Webbrowsers Da einige Server diesen Header aber zwingend verlangen bietet der squid die M glichkeit einen eigenen Wert f r diesen Header einzutragen In der Beispieldatei der Version 2 4 wird daf r fake_user agent Nutscrape 1 0 CP M 8 bit vorgeschlagen w hrend die gleiche Einstellung in Version 2 5 so aussieht header_replace User Agent Nutscrape 1 0 CP M 8 bit Zusammenarbeit mit anderen Proxies auf der Firewall Einen squid kann man prinzipiell in ein kompliziertes Geflecht von Geschwister und Eltern Caches einbinden ber das der Proxy erst bei seinen Familienmitgliedern nach fragt bevor er versucht eine Seite direkt zu laden F r den Gebrauch in unserem Szena rio ist dies aber nicht n tig Allerdings kann es sinnvoll sein auf der Firewall einen zwei ten Proxy zu installieren der die F
3. Eine besonders interessante Einsatzm glichkeit dieses Proxys ist dar ber hinaus da er auch als transparenter Proxy genutzt werden kann Eine zweite M glichkeit besteht darin den ftp proxy als Reverse Proxy einzusetzen Dies ist dann sinnvoll wenn man einen eigenen FTP Server betreibt Die Klienten im Internet verbinden sich hierbei nicht direkt mit dem FTP Server sondern mit dem Proxy der alle Befehle entgegennimmt und nur diejenigen weitergibt die sinnvoll und notwendig sind Alle anderen werden vom Proxy mit einer Fehlermeldung verweigert Auf diese Weise k nnen Angriffe auf schlecht konfigurierte FTP Server erschwert werden Schlie lich ist er auch noch ausdr cklich daf r vorgesehen in einer chroot Umgebung eingesetzt zu werden Das bedeutet da ein Angreifer der den Proxy dazu bringen kann beliebige Befehle auszuf hren in einem festgelegten Verzeichnis wie in einem K fig ge fangen ist und keine Dateien und Verzeichnisse au erhalb sehen geschweige denn auf diese zugreifen kann Anlegen eines eigenen Benutzers Bevor wir damit beginnen den eigentlichen Proxy zu konfigurieren sollten wir als erstes einen eigenen Benutzer und eine eigene Gruppe f r den Dienst anlegen Dadurch k nnen wir sp ter festlegen welche Rechte der Dienst hat W rde der Dienst z B mit den Rechten von root laufen so k nnte ein Fehler in der Programmierung von ftp proxy dazu f hren da ein Angreifer vollen Zugriff auf alle Ressourcen de
4. acl SSL_ports port 443 563 acl Safe_ports port 80 21 443 563 70 210 1025 65535 acl CONNECT method CONNECT Es kann allerdings sein da in der Standardkonfiguration Ihrer Distribution f r SSL_ports und Safe_ports mehr Ports definiert sind Hier sollten Sie abw gen ob Sie einen sinnvollen Grund sehen warum der Proxy Anfragen an diesen Port weiterleitet In Safe_ports sollten Sie nur solche Ports eintragen die zu Protokollen geh ren welche vom Proxy unterst tzt werden oder die SSL benutzen SSL basierte Protokolle m ssen zus tzlich noch in SSL_ports aufgef hrt werden Hier sind HTTP 80 FTP 21 Gopher 70 WAIS 210 erlaubt Zus tzlich sind die SSL Protokolle HTTPS 443 und NNTPS 563 erlaubt Da hier auch alle Ports ber 1024 in Safe_ports aufgef hrt sind liegt daran da dieser Bereich relativ frei ge nutzt werden kann und es durchaus Webserver gibt die in diesem Portbereich betrieben werden 1 Leider benutzt der squid wie auch viele andere Server den Begriff ACL Access Control List um eine Ressource oder die Art des Zugriffes darauf zu beschreiben An sich ist eine ACL aber mehr Sie beschreibt neben einer Ressource auch wer auf sie zugreifen darf Einrichten eines Web oder FTP Proxys 401 firewall 2006 1 4 15 26 page 402 421 Um auch den Klienten im lokalen Netz den Zugriff erlauben zu k nnen brauchen wir aber noch eine weitere ACL acl Safe_clients src 192 168 20 0
5. bar Als Alternative bietet sich das Common Logfile Format an Es wird mit der folgenden Zeile aktiviert debug 512 Common Log Format Die gleichen Zugriffe s hen damit folgenderma en aus 127 0 0 1 08 Jun 2004 19 05 54 0200 GET http www dilbert com comics di lbert archive dilbert 20040606 html HTTP 1 0 200 45619 127 0 0 1 08 Jun 2004 19 05 59 0200 GET http c4 maxserving com iserver site 5311 area homepage aamsz banner PageID 1234567 HTTP 1 0 200 3 Hier haben wir als zus tzliche Information die IP Adresse des Klienten ber die wir mit etwas Gl ck den Benutzer zuordnen k nnen Andererseits fehlt uns hier die Information ob Inhalte geblockt wurden Wir k nnen grunds tzlich auch alle M glichkeiten f r debug kombinieren aber das Er gebnis wird schnell unleserlich insbesondere da das Common Logfile Format und das ansonsten benutzte Syslog Format sehr stark voneinander abweichen und jeder Zugriff doppelt protokolliert wird Jun 08 19 18 25 Privoxy 48130 Request www dilbert com comics dilbert archive d ilbert 20040606 html 127 0 0 1 08 Jun 2004 19 18 39 0200 GET http www dilbert com comics di lbert archive dilbert 20040606 html HTTP 1 0 200 45619 Jun 08 19 18 43 Privoxy 51204 Request c4 maxserving com iserver site 5311 area homepage aamsz banner PageID 1234567 crunch 127 0 0 1 08 Jun 2004 19 18 43 0200 GET http c4 maxserving com iserver site 5311 area homepage aamsz ba
6. firewall 2006 1 4 15 26 page 399 418 KAPITEL 14 Proxies Mit dem Filterskript aus dem vorigen Kapitel haben wir bereits eine funktionierende Firewall aufgesetzt Wir k nnen ihre Effizienz allerdings noch steigern wenn wir zus tz lich zu den Paketfilterregeln auch noch Proxies aufsetzen die eine Filterung und Proto kollierung auf Anwendungsprotokollebene m glich machen In diesem Kapitel werden Sie daher einige g ngige Vertreter dieser Spezies kennenlernen Einrichten eines Web oder FTP Proxys Haben wir ein gr eres lokales Netz in dem mehrere Benutzer regelm ig im WWW surfen so wird es vorkommen da mehrere von ihnen die gleichen Webseiten betrachten wollen In diesem Fall empfiehlt es sich einen cachenden Webproxy zu benutzen Dieser fordert die betreffende Seite nur beim ersten Mal direkt von dem eigentlichen Server an alle weiteren Nachfragen werden aus einem Cache bedient Dar ber hinaus bietet er die M glichkeit Zugriffe zu protokollieren und so festzustel len ob auf Seiten zugegriffen wird deren Besuch der Policy widerspricht Insbesondere kann so auch festgestellt werden ob bestimmte Anwendungen versuchen eigenm chtig Verbindungen zu Servern ihrer Hersteller aufzubauen Eine Protokollierung welcher An wender bestimmte Zugriffe versucht hat erfolgt in der hier beschriebenen Konfiguration nicht Es liegt auch nicht in meiner Absicht zu beschreiben wie sie ver ndert werden m
7. page 433 452 syslog ng In Kapitel 9 Unterabschnitt syslog ng ab Seite 208 haben wir in der Konfigurations datei etc syslog ng syslog ng conf ja bereits einen auskommentierten Eintrag f r einen Socket im chroot Verzeichnis des Bind vorgesehen Nun brauchen wir nur noch das Kommentarzeichen vor der entsprechenden Zeile zu entfernen source src unix dgram var lib named dev log lsa j Anschlie end sollten wir den syslog ng neu starten um die nderung wirksam werden zu lassen Unter Debian verwenden wir dazu den Befehl etc init d syslog ng restart Unter SuSE dagegen etc init d syslog restart syslogd Verwenden wir den syslogd unter SuSE so ist sichergestellt da ein Socket im chroot K fig vorhanden ist Unter Debian m ssen wir den syslogd erst entsprechend konfigu rieren Dies geschieht indem wir das Programm mit dem Parameter a var lib named dev log aufrufen Dazu m ssen wir das Runlevel Skript finden in dem der syslogd gestartet wird Bei Debian liegen Runlevel Skripte unter etc init d aber andere Distributionen haben auch z B sbin init d oder etc rc d init d benutzt find etc init d type f exec grep Hn syslogd etc init d klogd 35 No syslogd etc init d sysklogd 6 pidfile var run syslogd pid etc init d sysklogd 7 binpath sbin syslogd etc init d sysklogd 46 No syslogd etc init d sysklogd 58 echo n Starting system log daemon syslogd etc init d
8. Dies erm glicht es z B Pop ups Webbugs Graphiken deren Gr e auf ein Werbebanner hindeutet sowie diverse JavaScript rgernisse zu filtern Filter sind nicht mehr fest im Programm einkompiliert sondern k nnen in Form regul rer Ausdr cke in Konfigurationsdateien definiert werden Es wird zwischen allgemeinen und benutzerdefinierten Regeln unterschieden Damit ist es m glich regelm ig aktuelle Regeln von der Webseite des Projekts herunterzu laden ohne bei deren Installation selbst definierte Regeln zu berschreiben e Es ist m glich ihn in einem chroot K fig zu betreiben Dateien au erhalb dieses K figs sind f r ihn dann nicht mehr zugreifbar e Obwohl er standardm ig dasselbe Logformat benutzt wie der junkbuster kann der Privoxy so konfiguriert werden da er statt dessen das Common Logfile Format benutzt Dieses ist in einer Mehrbenutzerumgebung deutlich aussagekr ftiger da die Eintr ge die IP Adresse des Klienten enthalten All dies macht ihn deutlich vielseitiger und erlaubt es sehr genau zu steuern womit man bel stigt werden will Allerdings erkennt man an den Details da der Hauptfokus der Entwickler darauf liegt einen Dienst zu entwickeln den der einzelne Benutzer lokal bei sich auf dem Rechner installiert So kann man den Proxy z B ber ein Webinterface kon figurieren Aktiviert man dieses Feature aber so darf es von jedem Benutzer der Firewall aufgerufen werden und s mtliche nderung
9. etc bind named conf In unserem Fall ist es etwas komplizierter Grunds tzlich liest der Dienst die Datei im chroot Verzeichnis Allerdings kopiert das SuSE Runlevel Skript beim Start des Dien stes die Datei aus etc nach var lib named etc Unter SuSE 9 3 m ssen wir also die Datei etclnamed conf ndern Debian 3 1 kopiert die Datei nicht um Hier m ssen wir daher die Datei im chroot K fig ndern Der komplette Dateiname lautet also var lib namedletc bind named conf Am besten fangen wir dabei direkt an indem wir eine neue Datei erstellen Zuerst definieren wir den Pfad unter dem der Server seine Dateien findet Wir haben uns ja bereits f r var lib named entschieden Globale Optionen options Pfad f r Dateien des Servers directory var lib named Als n chstes wollen wir einstellen da Anfragen nur an bestimmte DNS Server weiter geleitet nicht aber eigenst ndig durch Suche nach dem zust ndigen DNS Server beant wortet werden Antworten d rfen nur von den Forwardern erbeten werden Eigene Anfragen bei anderen Servern sind nicht zul ssig forward only 434 Kapitel 14 Proxies firewall 2006 1 4 15 26 page 435 454 DNS Server forwarders 10 0 0 77 Nun m ssen wir sicherstellen da unser Server Anfragen nur der Rechner beantwortet denen wir ausdr cklich vertrauen Dies gilt insbesondere f r Zone Transfers Zone Transfers allow transfer 127 0 0 1
10. hren Dar ber hinaus bietet ein Proxy die M glichkeit An fragen zu protokollieren und zentral festzulegen welcher bergeordnete Server von den Clients befragt wird Auch wenn sich dieser z B durch einen Provider Wechsel ndert mu nur an einer Stelle eine Anpassung vorgenommen werden Die folgende Beschreibung geht von der Software Bind in der Version 9 aus Bitte ver wenden Sie keine lteren Versionen der Software da diese teilweise gravierende Sicher heitsl cher enthalten Falls Sie einen Kernel der Serie 2 2 einsetzen sollten Sie mindestens 2 2 18 verwenden ltere Versionen unterst tzen nicht die notwendige Funktionalit t um einen chroot K fig mit Bind zu benutzen Au erdem sollten Sie grunds tzlich einen m glichst aktu ellen Kernel verwenden Kernels sp terer Serien z B 2 4 und 2 6 sollten kein Problem darstellen Einrichtung eines chroot K figs Um die Gefahr die sich aus der Kompromittierung des Dienstes ergibt einzuschr nken sollten wir ihn in einem chroot K fig betreiben Das bedeutet wir starten ihn so da ein vorher festgelegtes Verzeichnis f r den Proze zum Wurzelverzeichnis wird Dateien au 430 Kapitel 14 Proxies firewall 2006 1 4 15 26 page 431 450 erhalb dieses Verzeichnisses sind damit f r ihn nicht mehr sichtbar Dieses Verzeichnis mu daher Kopien all jener Dateien und Verzeichnisse enthalten die der Dienst f r seine Arbeit ben tigt Unter SuSE
11. 9 3 existiert bereits ein solches Verzeichnis f r den Bind so da die in diesem Abschnitt dargestellten Schritte entfallen F r Distributionen wie Debian 3 1 die von Haus aus den chroot Betrieb nicht unter st tzen werden wir im folgenden sehen wie ein solches Verzeichnis samt Inhalt erstellt wird Eine recht ausf hrliche Darstellung wie das vor sich geht findet man unter 8 Die folgende Beschreibung entstand aus der Umsetzung dieser Darstellung auf dem Rechner des Autors Normalerweise w rde man damit beginnen erst einmal ein spezielles Benutzerkonto und eine eigene Gruppe f r den Dienst zu erzeugen Unter Debian 3 1 ist dies aber nicht mehr n tig Hier existiert der Dienst standardm ig mit den Rechten des Benutzers und der Gruppe bind Als Heimatverzeichnis f r den Benutzer ist var cache bind angegeben und als Shell bin false Mitglied weiterer Gruppen au er bind ist der Benutzer bind nicht Damit spricht nichts dagegen dieses Benutzerkonto beizubehalten Wir k nnen also gleich damit anfangen da wir uns f r ein Verzeichnis entscheiden in das wir den Dienst einsperren Im folgenden soll dies var lib named sein Als erstes m ssen wir das Verzeichnis und ein paar Unterverzeichnisse anlegen mkdir p m0755 var lib named cd var lib named mkdir p m0755 etc bind gt dev gt var cache bind Einen Sonderfall stellt das Verzeichnis var run dar In dieses mu der Dienst schreiben k nnen Zu
12. Y Y Y root root O Nov 2 00 47 statm Y Y Y root root O Nov 2 00 35 status dr xr xr x 3 root root 0 Nov 2 00 47 task Y Y Y root root 0 Nov 2 00 35 wchan Einrichten eines DNS Servers 439 firewall 2006 1 4 15 26 page 440 459 Der symbolische Link root zeigt auf das Wurzelverzeichnis des Prozesses Normalerweise w re dies Da hier etwas anderes steht bedeutet da ein chroot Aufruf durchgef hrt wurde Nun sollten wir die Konfiguration des Nameservers berpr fen Eine einfache Methode hierzu besteht darin sich mit dig den Inhalt der einzelnen Zonen anzeigen zu lassen F r die Zone loopback lautet der Aufruf gt dig 127 0 0 1 loopback axfr Hierbei gibt das erste Argument den zu verwendenden Nameserver das zweite die nach zufragende Adresse oder Domain und das dritte schlie lich die Art der anzuzeigenden RRs an axfr hei t hierbei da wir einen Zone Transfer w nschen Andere g ltige Werte w ren z B ANY alle relevanten RRs sowie die schon oben aufgef hrten Typen von RRs A MX NS Die Ausgabe sollte etwa folgenderma en aussehen lt lt gt gt DiG 9 2 1 lt lt gt gt 127 0 0 1 loopback axfr global options printcmd loopback 86400 N SOA localhost loopback root localhost loopback 42 10800 900 604800 86400 loopback 86400 N NS localhost loopback loopback 86400 N MX 10 localhost loopback localhost loopback 86400 IN A 127 0 0 1 w
13. cp fp lib libresolv 1ib cp fp lib libdb 1ib Beim Einbinden von Bibliotheken wird eine Datei etc ld so cache ben tigt Diese erzeu gen wir mit dem Befehl ldconfig ldconfig X r var lib ftp proxy rundir ldconfig lib libdb2 so 2 is not a symbolic link ldconfig lib libdb so 2 is not a symbolic link Mit der Option r geben wir dabei vor da der Befehl alle Dateien relativ zu unserem neuen Wurzelverzeichnis ffnen soll Dadurch werden die Bibliotheken unter var lib ftp proxy rundir lib gesucht und in der Datei var lib ftp proxy rundir etc ld so cache regi striert Als n chstes konfigurieren wir die Zeitzone unseres Systems Dies geschieht normaler weise durch einen symbolischen Link etc localtime der auf eine Datei verweist welche die eigentlichen Konfigurationsinformationen f r unsere Zeitzone enth lt ls l etc localtime lrwxrwxrwx 1 root root 33 Feb 17 21 26 etc localtime gt usr share zoneinfo Europe Berlin Diese Datei kopieren wir in unseren K fig mkdir p m0755 usr share zoneinfo Europe cp fp usr share zoneinfo Europe Berlin usr share zoneinfo Europe Damit ftp proxy sie auch findet m ssen wir nun auch noch einen entsprechenden Link anlegen cd etc In s usr share zoneinfo Europe Berlin localtime cd Auch einige grundlegende Konfigurationsdateien werden im K fig ben tigt for c in etc host conf etc resolv conf etc hosts etc services etc protocols
14. der Dienst gestar tet wurde ps aux grep named root 164 0 0 0 8 2040 496 Ss Novo1 0 03 sbin syslogd named 1542 0 0 3 6 10192 2224 Ss 00 16 0 00 usr sbin named named 1543 0 0 3 6 10192 2224 S 00 16 0 00 usr sbin named named 1544 0 0 3 6 10192 2224 S 00 16 0 00 usr sbin named named 1545 0 0 3 6 10192 2224 S 00 16 0 00 usr sbin named named 1546 0 0 3 6 10192 2224 S 00 16 0 00 usr sbin named root 1677 0 0 0 7 1340 472 pts 3 S 00 37 0 00 grep named Wir sehen da der Dienst mehrere Instanzen seiner selbst gestartet hat die mit den Rechten des Benutzers named laufen Nun m ssen wir nur noch kontrollieren ob auch ein chroot durchgef hrt wurde Dazu brauchen wir die Proze nummer der Instanz die wir untersuchen wollen Hier bie tet sich z B 1542 an Wir finden die gesuchte Information im entsprechenden Verzeichnis des Prozesses ls 1 proc 1542 total 0 dr xr xr x 2 root root 0 Nov 2 00 47 attr Y root root O Nov 2 00 47 auxv 1 I I root root 0 Nov 2 00 35 cmdline Irwxrwxrwx root root O Nov 2 00 47 cwd gt var lib named Y root root 0 Nov 2 00 47 environ lrwxrwxrwx root root 0 Nov 2 00 47 exe gt usr sbin named dr x 2 root root 0 Nov 2 00 47 fd Y Y Y root root O Nov 2 00 47 maps IW root root O Nov 2 00 47 mem Y Y Y root root O Nov 2 00 47 mounts Irwxrwxrwx root root O Nov 2 00 47 root gt var lib named Y Y Y root root O Nov 2 00 35 stat
15. gemacht zu werden F r normale Proxies sollten wir die folgende Zeile eintragen AllowMagicUser yes F r Reverse Proxies dagegen AllowMagicUser no Mit der n chsten Option k nnen Sie den ftp proxy als transparenten Proxy einsetzen Dazu m ssen wir die Paketfilterung so konfigurieren da Zugriffe auf Server im Internet auf den Proxy umgeleitet werden Dieser macht dann eine Verbindung zum gew nschten Server auf ohne da der Benutzer diesen noch einmal explizit angeben mu Auch diese Einstellung ist nur f r normale Proxies nicht aber f r den Einsatz als Reverse Proxy sinnvoll AllowTransProxy yes Wir k nnen dem Proxy eine Zieladresse vorgeben die er immer dann benutzt wenn der Benutzer es vers umt einen Zielrechner anzugeben DestinationAddress ftp de kernel org Diese Einstellung ist auch der Schl ssel zum Einsatz als Reverse Proxy Dabei wollen wir ja da ein Zugriff auf den Proxy an unseren Server in der DMZ weitergeleitet wird Hat 426 Kapitel 14 Proxies firewall 2006 1 4 15 26 page 427 446 dieser also die Adresse 10 0 0 6 so brauchen wir den folgenden Eintrag in der Konfigu rationsdatei DestinationAddress 10 0 0 6 Wir wollen nicht da unser Proxy mit root Rechten l uft Die folgende Option gibt an mit welchen Gruppenrechten er statt dessen laufen soll Group ftp proxy Wenn wir einen normalen Proxy betreiben wollen wir nicht da er aus dem Internet angesprochen
16. gt loopback zone loopback IN type master file localhost zone allow update none Is Einrichten eines DNS Servers 435 firewall 2006 1 4 15 26 page 436 455 Adressen der Art 127 0 0 lt Nummer gt zone 0 0 127 in addr arpa IN type master file 127 0 0 zone allow update none J none ist hierbei ein vordefinierter Name f r eine Adre spezifikation die auf keinen Rech ner pa t Wollen wir mit unserem DNS Server noch weitere Zonen verwalten brauchen wir nur neue zone Eintr ge hinzuzuf gen und neue Zonendatenbanken zu schreiben Letzteres kann leicht geschehen wenn wir die nun folgenden Beispiele als Ausgangsbasis nehmen Da w re als erstes die Datenbank f r das Netz loopback die in der Datei varflibfnamed localhost zone beschrieben wird TTL 86400 IN SOA localhost loopback root localhost loopback 42 serial 3H refresh 5M retry W expiry D minimum ttl IN NS localhost IN MX 10 localhost localhost INA 127 0 0 1 WWW IN CNAME ocalhost Am Anfang der Datei steht die Anweisung TTL 86400 Damit wird die Standardzeit fest gelegt f r die die folgenden Eintr ge von Klienten zwischengespeichert werden k nnen Nach Ablauf der angegebenen Zeit in Sekunden mu der Klient den Server neu fragen Es ist allerdings m glich f r einzelne Eintr ge gezielt abweichende Werte anzugeben Unsere Zone ist ziemlich klein und hat nur f nf Elemente die Re
17. higkeiten des squid erg nzt So w re es z B m glich mit einem weiteren Proxy aktive Inhalte Java JavaScript aus den heruntergelade nen Dokumenten zu filtern w hrend der squid f r das Cachen und Filtern bestimmter Header zust ndig ist Nehmen wir also einmal an unser Rechner hie e fu local dom Alle Anfragen sollen nicht direkt sondern ber einen Proxy auf Port 8080 gestellt werden Anfragen an Rech ner im lokalen Netz werden direkt beantwortet Dies erg be folgende Konfiguration cache_peer fw local dom parent 8080 O default acl local servers dstdomain local dom acl all src 0 0 0 0 0 0 0 0 never _direct deny local servers never_direct allow all Es scheint allerdings F lle zu geben in denen Proxies keine Verbindung ffnen k nnen wenn sie Anfragen von der Adresse 127 0 0 1 erhalten In diesem Fall kann es n tig sein die Anfrage statt dessen von der internen Adresse der Firewall aus zu stellen 4 Dieses Problem hatte ich pers nlich einmal mit einer Version des http gw 404 Kapitel 14 Proxies firewall 2006 1 4 15 26 page 405 424 tcp_outgoing_ address 192 168 20 15 Der squid als transparenter Proxy Soll der squid auch wie in Kapitel 11 Unterabschnitt Transparente Proxies ab Seite 291 beschrieben als transparenter HTTP Proxy eingesetzt werden so mu er gegebenenfalls den Host Header auswerten wenn eine URL unvollst ndig ist Dies wird mit den folgen den Anweisungen konfi
18. k nnen keine Cookies setzen crunch outgoing cookies Einmal gesetzte Cookies werden nicht an den Server zur ck gesendet deanimategifs lt Modus gt gibt an da animierte GIF Graphiken nur statisch angezeigt werden sollen lt Modus gt kann dabei entweder first oder last sein Im ersten Fall wird das erste der Animation angezeigt im zweiten das letzte Voreingestellt ist f r alle animierten GIF Bilder nur das letzte Bild anzuzeigen filter lt Filter gt aktiviert den Filter lt Filter gt filter ohne Argumente deaktiviert alle Filter f r die angegebenen URLs Eine Liste aller Filter finden Sie in der Benutzerdo kumentation Hier ein paar Beispiele content cookies filtert Cookies die ber HTML Tags oder JavaScript Befehle ge setzt werden unsolicitated popups filtert alle Pop up Fenster die beim Laden der Seite ge ffnet werden Fenster die erst durch eine Handlung des Benutzers ge ffnet werden werden davon nicht erfa t all popups filtert alle Pop up Fenster Einrichten eines Web oder FTP Proxys 415 firewall 2006 1 4 15 26 page 416 435 handle as image erkl rt das Objekt auf das die URL verweist zum Bild vgl block Standardm ig wird diese Aktion f r Dateien ausgef hrt die die folgenden Endun gen haben gif jpeg jpg png bmp und ico kill popups ist eine veraltete Form Pop up Fenster zu unterdr cken Heute verwendet man die oben aufgef hrten Filter limit connect lt P
19. sysklogd 64 echo n Stopping system log daemon syslogd etc init d sysklogd 72 echo n Stopping system log daemon syslogd etc init d sysklogd 76 echo n Starting system log daemon syslogd Hier finden wir das Skript etc init d sysklogd Wenn wir es uns genauer ansehen stellen wir fest da die Variable SYSLOGD es uns erlaubt zus tzliche Parameter anzugeben die dem Dienst beim Start mitgegeben werden SYSLOGD a var lib named dev log Einrichten eines DNS Servers 433 firewall 2006 1 4 15 26 page 434 453 Falls dort bereits ein entsprechender Parameter f r einen anderen Dienst steht so ist das kein Problem Man kann auch mehrere Sockets f r verschiedene Dienste angeben SYSLOGD a lt Anderer gt a var lib named dev log Grundkonfiguration Wir wollen nun einen DNS Server aufsetzen der nur den Rechner localhost loopback mit der Adresse 127 0 0 1 kennt und alle anderen Anfragen an bergeordnete DNS Server eines Providers weiterleitet Der Eintrag weiterer AdrefSbereiche auf dem DNS Server ist kein Problem und kann sp ter dazu genutzt werden beispielsweise die Rechner des lokalen Netzes ebenfalls mitzu verwalten Dazu m ssen wir allerdings sicherstellen da externe Rechner keine Anfragen an unseren Server stellen d rfen Beginnen wir mit der Konfigurationsdatei des Servers W rden wir den Dienst nicht in einem chroot K fig betreiben w re es die Datei etc named conf Debian
20. 127 0 0 1 nicht als authoritative A sondern nur als Pointer PTR eingetragen wird Konfiguration des Dienstaufrufs Bevor wir den Dienst starten m ssen wir noch sicherstellen da er im chroot K fig l uft und er mit den Rechten des Benutzers named und nicht mit Rootrechten ausgef hrt wird Dazu mu unter SuSE die Datei etc sysconfig named die folgende Zeile enthalten NAMED_RUN_CHROOTED yes Bei anderen Distributionen m ssen wir sicherstellen da der Dienst mit den folgenden Optionen gestartet wird u named t var lib named Die Option u gibt dabei den Benutzer an mit dessen Rechten der Dienst gestartet wer den soll w hrend t das Verzeichnis angibt das als chroot K fig dient Um diese Optionen anzugeben m ssen wir als erstes das Runlevel Skript finden das den Dienst startet Dies geschieht auf die bew hrte Weise dabei m ssen wir allerdings beachten da das Programm das wir suchen nicht bind sondern named hei t find etc init d type f exec grep Hn named etc init d bindg 5 for a chrooted server u nobody t var lib named etc init d bind9 6 0PTS etc init d bindg 8 test x usr sbin named exit o etc init d bindg 12 echo n Starting domain name service named etc init d bind9 14 pidfile var run named pid exec usr sbin named OPTS etc init d bind9 19 echo n Stopping domain name service named Unter Debian 3 1 hei t das Skript das wir suchen a
21. 255 255 255 0 Nun gilt es zu definieren welche Zugriffe erlaubt sind Die folgenden Regeln stammen ebenfalls gr tenteils aus der Standardkonfiguration allerdings wurde auch der lokale Zugriff auf das Cache Object Protokoll verboten und der Zugriff f r den lokalen Rech ner sowie Klienten aus dem lokalen Netz erlaubt http_access deny manager http_access deny Safe_ports http_access deny CONNECT SSL_ports http_access allow Safe_clients http_access allow localhost http_access deny all Ein Wort noch zu der ACL CONNECT Diese definiert einen Zugriff ber die HTTP Methode CONNECT die benutzt wird wenn eine SSL Verbindung aufgebaut werden soll Da SSL Verbindungen verschl sselt sind kann der Proxy ihren Inhalt weder kontrollie ren noch darf er ihn ver ndern Deswegen wird er mit dieser Methode angewiesen eine Verbindung zu einem angegebenen Port eines Zielrechners zu ffnen und die dann fol genden Daten v llig transparent weiterzuleiten Ohne die obigen Regeln k nnte man die CONNECT Methode dazu benutzen Filterregeln im Proxy f r beliebige Verbindungen au er Kraft zu setzen Es existieren bereits frei ver f gbare Programme die diesen Mechanismus dazu benutzen Schutzmechanismen in Firewalls auszuhebeln In unserem Fall ist CONNECT daher nur f r die Ports 443 HTTPS und 563 NNTPS zul ssig Wir k nnen auch konfigurieren mit welchen Rechten der squid arbeiten soll Dazu exi stieren die Optionen cache effective user u
22. Datei etc localtime blicherweise ist dies allerdings ein nur symbolischer Link auf eine von mehreren Dateien die jeweils verschiedene Zeitzonen definieren Im Fall von Debian 3 1 ergibt sich folgendes Bild ls l etc localtime Irwxrwxrwx 1 root root 33 Feb 17 21 26 etc localtime gt usr share zoneinfo Europe Berlin Wir m ssen also den entsprechenden Pfad auch in unserem chroot K fig erstellen und die eigentliche Zeitzonendatei hineinkopieren mkdir p m0755 usr share zoneinfo Europe cp fp usr share zoneinfo Europe Berlin usr share zoneinfo Europe Nun m ssen wir im Verzeichnis etc noch den Link anlegen cd etc In s usr share zoneinfo Europe Berlin localtime cd Sollte es sich in Ihrem Fall bei etc localtime nicht um einen symbolischen Link handeln so reicht es nat rlich die Datei einfach nach var lib named etc zu kopieren Konfiguration des Systemprotokolldienstes Schlie lich m ssen wir noch sicherstellen da der Bind Meldungen in das Systemproto koll schreiben kann Dazu mu er Kontakt zum Systemprotokolldienst aufnehmen Nor malerweise geschieht dies ber den Unix Domain Socket dev log Dies ist ein spezielles Objekt das vom Dienst zur Laufzeit angelegt wird Es liegt aber au erhalb unseres chroot K figs Wir m ssen den Dienst daher dazu brin gen zus tzlich zu dev log auch var lib named dev log zu benutzen 432 Kapitel 14 Proxies firewall 2006 1 4 15 26
23. SuSE 9 3 in der Datei etc sysconfig syslog konfiguriert Wir haben hier zwei M glichkeiten zus tzliche Unix Domain Sockets anzugeben Zum einen kennt das Skript eine allgemeine Variable in der ganz allgemein zus tzliche Parameter bergeben werden k nnen SYSLOGD_PARAMS a var lib ftp proxy rundir dev log Alternativ k nnen auch eigene Variablen angegeben werden die jeweils einen zu s tzlichen Unix Domain Socket angeben Der Name einer solchen Variablen mu mit SYSLOGD ADDITIONAL SOCKET anfangen Die Variable enth lt jeweils den Namen des Socket ohne das a also z B SYSLOGD_ ADDITIONAL SOCKET_FTPPROXY var lib ftp proxy rundir dev log TCPWrapper Konfiguration Der Proxy kann so konfiguriert werden da er die Dateien etc hosts allow und etc hosts deny konsultiert um zu entscheiden ob ein bestimmter Rechner berhaupt eine Verbindung aufbauen darf 424 Kapitel 14 Proxies firewall 2006 1 4 15 26 page 425 444 Diese Dateien haben wir in etc bereits berpr ft siehe Kapitel 9 Abschnitt Der inetd ab Seite 182 Im K fig m ssen sie aber erst noch angelegt werden Dabei sollten wir nicht einfach die Dateien aus etc kopieren da sie unter Umst nden Angaben zu Diensten enthalten die f r den K fig nicht relevant sind Stattdessen erzeugen wir Minimaldateien die nur die absolut unerl lichen Angaben enthalten cd var lib ftp proxy rundir touch etc hosts allow chmod 644
24. dem Zeitpunkt wo er es versucht hat er aber schon seine root Rechte auf gegeben mkdir p m0775 var run chown root bind var run Um den Dienst mit dem Hilfsprogramm rndc steuern zu k nnen wird eine Schl ssel datei rndc key ben tigt Damit diese auch im chroot K fig zur Verf gung steht mu sie kopiert werden Wo man sie findet h ngt von der verwendeten Distribution ab Unter Debian wird etc bind verwendet Die n tigen Befehle lauten hier cp etc bind rndc conf etc bind chown root bind etc bind rndc key chmod 440 etc bind rndc key Wir ben tigen auch noch ein Verzeichnis das wir als Verzeichnis f r Zonendateien an geben werden Wir werden hier var lib named verwenden Da wir im chroot K fig die Einrichten eines DNS Servers 431 firewall 2006 1 4 15 26 page 432 451 normalen Verzeichnisstrukturen unterhalb des neuen Wurzelverzeichnisses nachbilden w rde daraus var lib named var lib named Wir k nnen mit den folgenden Befehlen dar aus aber auch einen symbolischen Link auf var lib named machen Damit k nnen die Dateien unter beiden Pfaden angesprochen werden cd var lib In s named cd Der Bind ben tigt auch noch eigene Instanzen der Devices dev null und dev random in seinem chroot K fig mknod dev null c 1 3 mknod dev random c 1 8 chmod 666 dev null dev random Damit der Dienst auch wei in welcher Zeitzone er sich befindet ben tigt er die
25. der squid auch durch Filtern der HTTP Header die eigene Privatsph re zu sch tzen siehe Kapitel 4 Abschnitt Angriffe auf die Privatsph re ab Seite 56 Dabei kann gezielt f r jeden HTTP Header festgelegt werden ob er erlaubt oder verboten ist Schlie lich kann der squid auch noch so konfiguriert werden da er als transparenter Proxy eingesetzt werden kann Grundeinrichtung Wir haben den squid schon beim Einrichten des Systems installiert Wird der Proxy beim Start des Rechners nicht automatisch ausgef hrt sollten Sie berpr fen ob die n tigen Links auf das Runlevel Skript existieren Er kann aber auch manuell mit init d squid start gestartet werden Bitte erg nzen Sie den Pfad so wie es f r die von Ihnen verwendete Distribution n tig ist Damit ist der squid schon benutzbar Allerdings gibt es doch einige Einstellungen die wir in der Datei etc squid conf bzw etc squid squid conf ndern sollten Zwar ist besagte Datei recht lang sie ist aber ausgezeichnet kommentiert Standardm ig sind fast alle Eintr ge auskommentiert wodurch der squid seine Grund einstellungen benutzt Diese wurden zwar sinnvoll gew hlt und reichen normalerweise v llig aus allerdings erfordert unsere Konfiguration in einigen Punkten kleinere Abwei chungen Es empfiehlt sich daher die Datei umzubenennen und eine neue zu erstellen die speziell auf die eigenen Bed rfnisse zugeschnitten ist Wir beginnen mit den Ports auf den
26. dit actions 0 Der Proxy bietet auch die M glichkeit dediziert festzulegen welche Rechner auf ihn zugreifen d rfen und welche nicht Dazu definiert man zuerst mit permit access welche Rechner ihn benutzen d rfen um dann mit deny access die Rechner auszuschlie en die das nicht k nnen sollen Grunds tzlich k nnen mehrere Zeilen mit permit access und deny access Eintr gen vorkommen Passen im konkreten Fall mehrere Zeilen zu dem anfragenden Klienten so wird die jeweils letzte genommen Wollen wir z B prinzipiell allen Rechnern im LAN den Zugriff erm glichen aber einen speziellen Rechner 192 168 20 13 explizit davon ausnehmen so k nnen wir dies folgen derma en konfigurieren permit access 192 168 20 0 24 deny access 192 168 20 13 Wollen wir Anfragen nicht selber bearbeiten sondern sie an einen anderen Proxy wei terleiten so kann dies mit der forward Option geschehen Wie schon zuvor sind mehrere forward Zeilen m glich Es greift immer die letzte passende Zeile Die Zeilen haben den folgenden Aufbau forward lt Rechner gt lt Pfad gt lt Parent gt lt Rechner gt kann auch eine partielle Angabe sein z B oreilly de wodurch alle Rech neradressen gemeint sind die auf oreilly de enden Ein alleine steht f r beliebige Rechner und Pfade Pfade k nnen regul re Ausdr cke enthalten Schlie lich kann auch mit lt Port gt statt bestimmter Adressen vorgegeben werden da Zugriffe auf bestimmte Ports abgeglic
27. e Dateien vorfindet die er f r seine Arbeit ben tigt Wir konfigurieren ihn dann so da er einen chroot Systemaufruf durchf hrt wodurch dieses Verzeichnis f r ihn zum Wur zelverzeichnis wird Verzeichnisse und Dateien au erhalb seines K figs nimmt er nicht mehr wahr Sie existieren f r ihn nicht mehr Unter SuSE existiert ein solches Verzeichnis bereits und alle n tigen Dateien werden beim Start des Dienstes hineinkopiert Allerdings hat es unter SuSE 9 3 einen Bug Es sucht nach Dateien lib libdb die nicht leer sein d rfen und ausf hrbar sein m ssen Wird keine solche Datei gefunden so beendet sich das Runlevel Skript ohne weitere Ausgaben Auch das normale OK oder Failed wird nicht angezeigt Lediglich im System protokoll findet sich eine Meldung die auf das Problem hinweist Gl cklicherweise gibt es eine einfache L sung Wir legen einfach eine harmlose Datei an echo e 000 000 gt 1lib libdb dummy chmod a x lib libdb dummy Nun l uft das Runlevel Skript sauber durch und erledigt die im folgenden beschriebenen Schritte automatisch so da wir zum n chsten Abschnitt vorbl ttern k nnen Unter Debian m ssen wir var lib ftp proxy rundir dagegen selber bev lkern Der korrek te Aufbau eines solchen Verzeichnisses ist normalerweise nicht ganz einfach da man alle Ressourcen kennen mu die der einzusperrende Dienst ben tigt Dazu geh ren z B das Programm selbst seine Konfigurationsdateien dynamisch
28. e Bibliotheken sowie Devices Gl cklicherweise liegt den Quellen zum ftp proxy ein Skript bei das einem diese Arbeit abnimmt Allerdings l uft es nur unter SuSE Linux Statt es soweit zu patchen da es auch unter anderen Distributionen l uft habe ich es mir genauer angesehen und die einzelnen Schritte manuell nachvollzogen Die folgende Beschreibung ist das Ergebnis dieser Betrachtung 8 Sie finden die aktuellen Quellen unter ftp ftp suse com pub projects proxy suite src SuSE hat auch eine Homepage zu der Software http wwuw suse de en whitepapers proxy_suite 420 Kapitel 14 Proxies firewall 2006 1 4 15 26 page 421 440 Als erstes ben tigen wir eine Verzeichnishierarchie mit allen relevanten Verzeichnissen Die Verzeichnisse sollten root geh ren und sonst f r niemanden schreibbar sein Wir le gen diese Verzeichnisse im Heimatverzeichnis des Dienstes also var lib ftp proxy rundir an cd var lib ftp proxy rundir mkdir p m0755 dev mkdir p m0755 etc proxy suite mkdir p m0755 lib mkdir p m0755 usr sbin mkdir p m0755 usr lib mkdir p m0755 var lib ftp proxy rundir Als einzige Devices ben tigt der Dienst das Null Device und ipnat mknod dev null c 1 3 chmod 0666 dev null mknod dev ipnat c 95 1 chmod 0440 dev ipnat chown ftp proxy ftp proxy dev ipnat Auch das eigentliche Programm ftp proxy wird ben tigt cp fp usr sbin ftp proxy usr sbin ftp
29. en ftp oder anonymous ein so sehen wir ob unser Standard ziel bzw der eigene FTP Server korrekt konfiguriert ist Erscheint die folgende Zeile so fehlt wahrscheinlich die Zeile DestinationAddress Name localhost perdita ftp 501 Unknown destination address Login failed ftp gt Erscheint dagegen eine Aufforderung Ihr Pa wort einzugeben so wurden Sie mit dem Zielrechner verbunden Testen Sie nun ob Sie richtig auf den Server zugreifen k nnen indem Sie in verschiedene Verzeichnisse wechseln sich die Verzeichnisinhalte anzeigen lassen und Dateien herunterladen Falls Ihr FTP Klient dies unterst tzt wechseln Sie zwischen Aktiv und Passiv Modus z B mit dem Befehl passive und geben Sie mit den Befehlen ascii und binary die bertragung jeweils als Text und Bin rdatei vor Als n chstes sollten Sie den Zielrechner explizit vorgeben ftp localhost Connected to gonzales 220 gonzales FTP server Version 1 9 2 2 2004 03 30 10 42 46 ready Name localhost perdita ftp ftp de kernel org 331 Please specify the password Password Dies sollte auf einem normalen Proxy funktionieren bei einem Reverse Proxy aber kei nestalls Setzen Sie die Unterst tzung f r TCPWrapper ein so k nnen Sie testen ob die Filter listen auch tats chlich angewendet werden indem Sie ein Dummy Interface auf eine Adresse konfigurieren die keinen Zugriff haben sollte ifconfig dummyO 172 16 23 23 Nun k nnen wir Netcat diese Adresse
30. en squid auf Anfragen wartet http_port 3128 icp port 0 htcp_port 0 400 Kapitel 14 Proxies firewall 2006 1 4 15 26 page 401 420 Damit wartet squid auf Port 3128 auf Anfragen Andere Protokolle die squid zur Kom munikation mit Nachbarn verwendet sind abgeschaltet Der squid schreibt drei Logdateien Auch wenn wir ihre Namen und Pfade nicht kon figurieren werden diese sowohl unter Debian als auch unter SuSE im Verzeichnis var log squid abgelegt Wir k nnen diese Einstellung aber auch noch einmal explizit konfigurieren cache_access_log var log squid access log cache_log var log squid cache log cache_store log var log squid store log In der Datei access log protokolliert der squid dabei welche Anfragen von welchen Rech nern gestellt wurden Hierbei kann er grunds tzlich zwei Formate verwenden entweder sein eigenes oder das Common Logfile Format Wird letzteres gew nscht so mu emulate_httpd_log on eingetragen werden Der squid kennt ACL genannte Bezeichner mit denen bestimmte Zugriffe auf Adres sen Protokolle und Zugriffsmethoden spezifiziert werden Diese werden dann einge setzt um bestimmte Zugriffe zu untersagen Die folgenden ACLs geh ren zu den wenigen Eintr gen in der Datei squid conf die nicht standardm ig auskommentiert sind acl all src 0 0 0 0 0 0 0 0 acl manager proto cache_object acl localhost src 127 0 0 1 255 255 255 255 acl to_localhost dst 127 0 0 0 8
31. en wirken sich auf alle Benutzer des Systems aus Sobald mehrere Benutzer ber die Firewall surfen besteht mithin die Gefahr da die Konfiguration nach kurzer Zeit in einem v llig zuf lligen Zustand ist Auch bewirkt die Konfiguration von Filtern da die Webseite komplett in den Haupt speicher geladen wird W hrend Webseiten selber als reine Textdateien vermutlich noch in den Hauptspeicher eines halbwegs aktuellen Rechners passen sieht das bei der Fil terung von Bildern schon anders aus Standardm ig ist ein Feature aktiviert das ani mierte GIFs in Standbilder verwandelt Auch dieses Feature bewirkt da jedes Bild zur Untersuchung erst einmal komplett in den Hauptspeicher geladen wird Diese und andere Details lassen schon Fragen aufkommen inwieweit die Software f r den Betrieb mit mehr als einer Handvoll Benutzern wirklich geeignet ist Andererseits sind die Filterm glichkeiten dieses Proxys wirklich herausragend weswegen er in kleine ren Netzen eindeutig eine Betrachtung wert ist Einrichten eines chroot K figs Sicherheitshalber wollen wir den Privoxy in einen K fig sperren der aus dem Heimat verzeichnis des Benutzers privoxy besteht Alle Dateien au erhalb dieses Verzeichnisses sind aus seiner Sicht nicht mehr vorhanden Auch wenn es einem Angreifer gelingt den Dienst zu korrumpieren und er den Proxy dazu bringt beliebige Befehle auszuf hren so bleibt er doch auf das Verzeichnis var lib privoxy beschr nkt und kan
32. erspezifische Optionen enthalten Wir werden aber hier darauf verzichten Einrichten eines Web oder FTP Proxys 425 firewall 2006 1 4 15 26 page 426 445 Die folgenden Optionen legen fest aus welchem Bereich ftp proxy den Quellport w hlt wenn er bei aktivem FTP eine Datenverbindung zum Klienten im lokalen Netz aufbaut Gibt man hier nichts an so verwendet er Port 20 falls er mit root Rechten l uft Dies ist hier allerdings nicht der Fall weshalb er einen beliebigen Port oberhalb von 1024 verwenden w rde Das w rde es uns aber nahezu unm glich machen sinnvolle Firewall regeln zu definieren Daher legen die folgenden Eintr ge den Port auf 2020 fest Diese Nummer habe ich willk rlich gew hlt Sie k nnen durchaus eine beliebige andere ver wenden solange sie deutlich gr er als 1024 ist ActiveMinDataPort 2020 ActiveMaxDataPort 2020 Die folgende Option erlaubt es den Zielrechner als Teil des Anmeldenamens in der fol genden Form anzugeben lt Kennung gt lt Zielsystem gt Diese Einstellung ist nur sinnvoll wenn ftp proxy nicht als reverse Proxy eingesetzt wer den soll Andernfalls sollten Sie unbedingt darauf verzichten da sonst beliebige Benutzer die M glichkeit haben anonymisiert auf beliebige Rechner im Internet zuzugreifen Die se Zugriffe w rden aus Sicht des Zielrechners von unserer Firewall kommen Wir w r den also damit riskieren f r Angriffe Dritter auf FTP Server verantwortlich
33. es Ihnen dieses Risiko wert so brauchen Sie nur die folgenden Zeilen in die Datei user action einzutragen set image blocker blank Automatischer Start beim Booten Unter SuSE sollten Sie nun noch daf r sorgen da der Dienst beim Booten automatisch gestartet wird insserv privoxy Unter Debian ist dies nicht n tig Die entsprechenden Runlevel Links wurden schon bei der Installation angelegt ftp proxy aus der SuSE Proxy Suite Die SuSE Proxy Suite ist ein Projekt von SuSE das es sich zur Aufgabe macht einen Satz sicherer Proxies f r die Verwendung auf Firewalls zu entwickeln Derzeit besteht die Suite allerdings ausschlie lich aus einem FTP Proxy Obwohl er von SuSE entwickelt wurde ist der Proxy frei verf gbar und ist au er in SuSE Linux z B auch in Debian 3 1 enthalten Der Proxy kann auf zwei Arten verwendet werden Als normaler FTP Proxy erlaubt er Benutzern des lokalen Netzes auf FTP Server im Internet zuzugreifen Hierbei k nnen im Gegensatz zu einer reinen Paketfilterung nicht nur die Adressen der beteiligten Rech ner sondern auch die verwendeten Befehle protokolliert werden Ist der Proxy mit Unter 418 Kapitel 14 Proxies firewall 2006 1 4 15 26 page 419 438 st tzung f r libwrap kompiliert worden so kann man wie beim tcpd mit den Dateien etc hosts allow und etc hosts deny festlegen von welchen Rechnern aus der Proxy be nutzt werden darf und von welchen nicht
34. etc hosts allow echo LL ALL gt etc hosts deny chmod 644 etc hosts deny Nun m ssen wir nur noch eine Zeile in beide Versionen der Datei etc hosts allow ein tragen die die gew nschten Zugriffe erlaubt In meinen Experimenten schienen zwar nur die Dateien im K fig verwendet zu werden f r dieses durchaus logische Verhalten habe ich aber keine Dokumentation gefunden Sicherheitshalber sollte sich die Konfi guration im Hinblick auf den ftp proxy in etc und var lib ftp proxy rundir etc nicht unterscheiden Wenn der Proxy unseren Benutzern den Zugang auf Server im Internet erlauben soll dann ist die folgende Zeile in hosts allow angebracht ftp proxy 127 0 0 1 192 168 20 0 255 255 255 0 Beim Einsatz als Reverse Proxy existiert dagegen normalerweise kein Grund jemanden von der Benutzung des Proxys auszuschlie en ftp proxy ALL Soll aber im Einzelfall doch einmal ein bestimmter Host von der Benutzung ausgeschlos sen werden so kann das durch folgende nderung geschehen ftp proxy ALL EXCEPT 172 16 51 3 Damit darf 172 16 51 3 nicht auf den Proxy zugreifen Grundkonfiguration des ftp proxy Nachdem wir das System vorbereitet haben fehlt noch die Konfiguration des Programms selbst Diese geschieht in der Datei etc proxy suite ftp proxy conf Die Datei ist in Abschnitte eingeteilt Der wichtigste Abschnitt ist dabei Global der am Anfang der Datei steht Global Weitere Abschnitte k nnten benutz
35. etc nsswitch conf do cp fp c etc done VVVVVVVWV An dieser Stelle kopiert das SuSE Skript noch mehr Dateien aber damit schie t es meiner Meinung nach ber das Ziel hinaus da diese Dateien Daten enthalten die f r die Arbeit des Proxys unn tig sind Die Grundannahme beim Einrichten eines solchen K figs ist nun aber da ein Angreifer es schaffen k nnte tats chlich bis in ihn vorzudringen Aus 422 Kapitel 14 Proxies firewall 2006 1 4 15 26 page 423 442 diesem Grund sollten sich dort so wenig zus tzliche Informationen befinden wie dies m glich ist ohne die Funktion des Proxys zu behindern Ein Beispiel hierf r sind die Dateien etc passwd und etc group Diese werden vom Skript ohne weitere Anpassungen in den K fig kopiert Damit kann ein eventueller Angreifer nachlesen welche Benutzerkonten und Gruppen auf dem Rechner existieren F r den Proxy sind aber maximal die Benutzer root und ftp proxy bzw die gleichnami gen Gruppen interessant Alle anderen Benutzerkonten und Gruppen werden von ihm nicht ben tigt Wir wollen daher im folgenden im K fig Dateien erzeugen die auch nur diese Informationen enthalten grep root etc passwd gt etc passwd grep ftp proxy etc passwd gt gt etc passwd chmod 644 etc passwd grep root etc group gt etc group grep ftp proxy etc group gt gt etc group chmod 644 etc group Konfiguration des Systemprotok
36. f r eine Verbindung zum Proxy nutzen lassen nc s 172 16 23 23 localhost ftp Nach einem Augenblick bricht der Befehl ohne eine Ausgabe ab und im Systemprotokoll finden wir die Zeile Apr 25 20 13 06 gonzales ftp proxy 7572 USER ERR ftp proxy reject 172 16 23 23 Wrap Einrichten eines Web oder FTP Proxys 429 firewall 2006 1 4 15 26 page 430 449 Schlie lich sollten wir noch Tests mit verschiedenen Klienten von einem Rechner im lo kalen Netz durchf hren Insbesondere wenn wir die Anzahl der erlaubten Kommandos eingeschr nkt haben sollten wir anhand typischer Abl ufe berpr fen ob unsere An wender sinnvoll arbeiten k nnen Haben wir transparentes Proxying eingestellt so ist jetzt der Zeitpunkt es zu testen Dazu ist es unbedingt n tig den Test von einem eigenen Rechner im lokalen Netz aus durchzuf hren Von der Firewall aus kann diese Funktionalit t nicht sinnvoll getestet werden Automatischer Start des Dienstes Unter Debian wird der Dienst beim Booten automatisch gestartet falls eine Konfigurati onszeile der Art ServerType standalone existiert Unter SuSE m ssen Sie den Dienst explizit mit dem folgenden Befehl aktivieren insserv ftp proxy Einrichten eines DNS Servers Das Einrichten eines DNS Servers auf der Firewall erlaubt es Anfragen zu cachen wo durch wiederholte Anfragen nach derselben Adresse nicht jedesmal zum ffnen einer Verbindung in das Internet f
37. finden Sie unter http www pcre org man txt Ich w rde hier gerne ein paar Beispiele anf hren aber der Privoxy ist relativ gr ndlich Von den Seiten die ich regelm ig frequentiere fiel mir nur beim Betrachten der Dilbert Comics auf unitedmedia com Werbung auf die der Proxy nicht filterte darunter http c4 maxserving com iserver site 5311 area homepage aamsz banner PageID 1234567 http ak maxserving com images port 636 Bored_int_468x60 gif Einrichten eines Web oder FTP Proxys 417 firewall 2006 1 4 15 26 page 418 437 In beiden F llen stammten die Graphiken aus der Dom ne maxserving com Auch wenn sie von verschiedenen Servern stammen die c4 und ak hei en und obwohl die Pfade verschieden sind kann man sie mit einer Regel im Abschnitt block as image ganz einfach filtern block as image maxserving com Gl cklicherweise liegen sowohl die eigentliche Webseite wie auch die enthaltenen Co mics in der Dom ne unitedmedia com wodurch diese Regel tats chlich nur die Werbe banner filtert Davon abgesehen wurde ich auf allen Seiten die ich besuchte von Schachbrettmustern begr t die anzeigten wo Werbebanner gefiltert worden waren Wenn Ihnen die Schachbrettmuster nicht gefallen k nnen Sie sie ganz einfach loswer den Sie verlieren dann aber den berblick dar ber wo Banner gefiltert wurden Dies kann dann problematisch werden wenn eine Graphik versehentlich gefiltert wurde Ist
38. guriert httpd_accel_host virtual httpd_accel_port 80 httpd_accel with_proxy on httpd_accel_uses_host_header on Automatischer Start Unter Debian wird ein installierter squid automatisch beim Booten gestartet Unter SuSE mu der Dienst erst registriert werden insserv squid Wollen wir nicht bis zum n chsten Bootvorgang warten so k nnen wir den Dienst auch manuell starten etc init d squid start Ist er dagegen bereits aktiv und wir wollen ihn nur dazu bringen seine Konfiguration erneut einzulesen so k nnen wir den folgenden Befehl benutzen etc init d squid reload Alternativ k nnen wir ihn auch beenden und neu starten lassen etc init d squid restart Privoxy Der Privoxy ist der direkte Nachfolger des bekannten Internet Junkbusters Nachdem der Internet Junkbuster vom Hersteller nicht mehr weiterentwickelt wurde nahmen Freiwil lige es auf sich den unter GPL stehenden Code weiterzuentwickeln Aus diesem Grunde sind die Grundeigenschaften des Privoxy und des Junkbusters im mer noch recht hnlich Auch der Privoxy cacht einmal heruntergeladene Seiten nicht und die Benutzung als transparenter Proxy ist ebenfalls nicht m glich In anderer Hinsicht hat er sich gegen ber dem Junkbuster allerdings gravierend verbes sert Einrichten eines Web oder FTP Proxys 405 firewall 2006 1 4 15 26 page 406 425 e Es werden nicht mehr nur URLs sondern auch Inhalte von Webseiten gefiltert
39. handelt es sich um einen Link nach usr share zoneinfo Wir kopieren also als erstes den Link wobei wir darauf achten cp mit dem Parameter d anzuweisen den Link als Link zu kopieren und nicht etwa aufzul sen cp dfp etc localtime etc Nun m ssen wir nur noch die eigentliche Datei kopieren mkdir p m0755 usr share zoneinfo Europe cp dfp usr share zoneinfo Europe Berlin usr share zoneinfo Europe Nun sollte der Privoxy alle Dateien vorfinden die er ben tigt Die Konfigurations und Logdateien au erhalb seines K figs werden eigentlich nicht mehr ben tigt Prinzipiell spricht nichts dagegen sie zu l schen m rf etc privoxy m rf var log privoxy Nun m ssen wir noch das Runlevel Skript anpassen damit der privoxy auch beim Sy stemstart automatisch aufgefordert wird sich in seinem chroot K fig einzuschliefen Dazu editieren wir das Skript etc init d privoxy In ihm finden wir folgende Zeilen case 1 in start echo n Starting DESC start stop daemon oknodo start quiet pidfile PIDFILE exec DAEMON pidfile PIDFILE user OWNER CONFIGFILE 2 gt gt var log privoxy errorfile Alle Argumente die start stop daemon hinter bergeben werden werden dabei un ver ndert an den privoxy weitergeleitet Wir m sen dort also nur die Option chroot einf gen 408 Kapitel 14 Proxies firewall 2006 1 4 15 26 page 409 428 case 1 in start echo n S
40. hen werden sollen Einrichten eines Web oder FTP Proxys 411 firewall 2006 1 4 15 26 page 412 431 Der lt Parent gt hat die Form lt DNS Name gt lt Port gt Wird statt dessen nur ein Punkt ange geben so findet keine Weiterleitung statt Im folgenden Beispiel wollen wir alle Anfragen an einen Proxy auf dem gleichen Rechner weiterleiten der auf Port 8080 auf Anfragen wartet Dieser kann aber kein SSL weshalb wir solche Anfragen direkt ausf hren forward 192 168 20 15 8080 forward 443 Start und Funktionstests Nun k nnen wir den Privoxy starten etc init d privoxy start Um nun zu testen ob der Privoxy auch arbeitet k nnen wir sein Webinterface aufrufen indem wir mit dem lynx die URL http config privoxy org oder kurz http p p aufrufen Damit unser Browser auch den Privoxy benutzt m ssen wir ihm dessen Adresse mittei len Dies geschieht ber die Environment Variable http_proxy gt export http_proxy http localhost 8118 gt lynx http p p Unser Browser sollte uns nun eine Seite anzeigen ber die wir die aktuelle Konfiguration abfragen k nnen wo uns Informationen ber die Header angezeigt werden die unser Browser mit jeder Anfrage sendet und auf der wir f r eine bestimmte URL herausfinden k nnen welche Regeln f r sie greifen 412 Privoxy localhost p1 of 2 This is Privoxy 3 0 3 on localhost 127 0 0 1 port 8118 Privoxy Menu View the current configura
41. in ndern 414 Kapitel 14 Proxies firewall 2006 1 4 15 26 page 415 434 oder umgekehrt je nachdem was dort eingetragen ist Ein aktiviert einen Filter w h rend ihn abschaltet Wollen wir z B auf jeder Webseite das Wort Microsoft in MicroSuck umsetzen so brau chen wir nur den Filter fun zu aktivieren indem wir filter fun in filter fun ndern Der Filter spielt au erdem noch Buzzword Bingo indem er jedes Vorkommen einer Reihe von Marketing Ausdr cken durch Bingo in leuchtend roten Buchstaben er g nzt In der Regel haben wir aber eher Probleme mit speziellen Webseiten F r diese sollten wir dann auch spezielle Regeln definieren die nur f r diese Seiten gelten Dies geschieht in der Datei user action Um diese nutzen zu k nnen m ssen wir einige der elementaren Aktionen kennen die der Privoxy benutzt block URLs auf die diese Aktion angewendet wird werden nicht heruntergeladen son dern es wird eine spezielle Seite angezeigt die erkl rt da die Seite gesperrt ist Je nachdem mit welchen Einstellungen der Proxy kompiliert wurde wird au erdem ein Link angezeigt der es einem erlaubt die Seite trotzdem zu laden Wenn auf die Seite auch die Aktion handle as image angewendet wird so wird statt eines Textes eine Graphik angezeigt Vorgabe ist in diesem Fall ein Schachbrettmu ster Man kann aber mit set image blocker die Vorgabe ndern crunch incoming cookies Server
42. ion auszukommentieren und auf die Protokollierung zu verzichten jarfile jarfile Die n chste wichtige Option ist debug Sie regelt was in logfile protokolliert wird Die Standardvorgaben sind debug 1 show each GET POST CONNECT request debug 4096 Startup banner and warnings debug 8192 Errors we highly recommended enabling this Auf diese Weise werden alle Zugriffe sowie Meldungen beim Start des Proxys und Fehler protokolliert Das sieht in etwa so aus Einrichten eines Web oder FTP Proxys 409 firewall 2006 1 4 15 26 page 410 429 Jun 08 17 31 53 Privoxy 01024 Info Privoxy version 3 0 3 Jun 08 17 31 53 Privoxy 01024 Info Program name privoxy Jun 08 17 31 54 Privoxy 01024 Info Listening on port 8118 for local conn ections only esa Jun 08 18 58 20 Privoxy 01026 Request www dilbert com comics dilbert arc hive dilbert 20040606 html Jun 08 18 58 41 Privoxy 04100 Request c4 maxserving com iserver site 531 1 area homepage aamsz banner PageID 1234567 crunch Wir sehen also der Proxy startet ein Benutzer ruft einen Webcomic auf und ein Werbe banner wird unterdr ckt Da das Werbebanner zu dem Webcomic geh rt ist aus dem Protokoll nicht ersichtlich Wir k nnen auch nicht erkennen welcher unserer Benut zer hier eine Seite angefordert hat Sobald mehr als ein Benutzer den Proxy verwendet oder mehr als eine Seite gleichzeitig aufgerufen wird wird das Protokoll unauswert
43. ipiell erfolgt die Angabe in Sekunden es ist aber auch m glich sie in Stunden H Minuten M Tagen D und Wochen W anzugeben Die erste Angabe 3H gibt an wie h ufig sekund re Server berpr fen sollen ob sich die Seriennummer ge ndert hat Die zweite Angabe 15M regelt in welchen Abst nden es der sekund re Server noch einmal probieren soll wenn eine Abfrage der Seriennum mer fehlschl gt Gelingt es dem sekund ren Server schlie lich ber einen Zeitraum von einer Woche 1W nicht sich abzugleichen so hat er anzunehmen da seine Daten veraltet sind und die Zone aus seiner Datenbank zu l schen Als letztes gibt 1D die Zeit an f r die Klienten die Antwort zwischenspeichern d rfen da dem Server eine angegebene Dom ne unbekannt ist negative caching ttl Nun folgt die Angabe eine DNS Servers f r die Zone NS Prinzipiell k nnen mehrere solcher Eintr ge vorhanden sein Als n chstes wird angegeben welcher Rechner E Mails f r die Zone annimmt MX Die Angabe 10 gibt die Priorit t des Servers an Je nied riger dieser Wert ist um so h her ist die Priorit t des Servers Soll nun eine E Mail zugestellt werden so wird zuerst versucht den Rechner mit der h chsten Priorit t zu erreichen Als letztes folgen die Rechner der Zone In diesem Fall existieren localhost und www wobei www nur ein anderer Name f r localhost ist Zwei Punkte sind dabei zu beachten Zum einen wird im A Record zum erste
44. ipt ge ffnete Pop up Fenster unterdr ckt die der Benutzer nicht explizit angefordert hat e Bilder gefiltert deren Gr e typisch f r Werbebanner ist e Webbugs gefiltert d h 1x 1 Pixel gro e Graphiken die dazu dienen das Surfver halten auszuspionieren e JavaScript Befehle gefiltert die bewirken da Fenster sich von selbst bewegen oder ihre Gr e ver ndern e Referer Header so umgeschrieben da die vorher besuchte Seite immer auf dem Ser ver zu liegen scheint den man im Moment besucht e Cookies so ver ndert da der Browser sie am Ende der Sitzung l scht Irgendwann werden Sie aber auf Seiten sto en auf denen diese Filterung zu Problemen f hrt Oder Sie stellen fest da Werbebanner von den Filterregeln bersehen werden In diesem Fall werden Sie wahrscheinlich den Wunsch versp ren eigene Regeln zu definie ren die das Problem beheben Der Privoxy bietet hierzu recht komplexe Filterm glichkeiten an Diese hier komplett aufzuf hren w rde leider den verf gbaren Platz bersteigen Durch die Verwendung regul rer Ausdr cke kann man Webseiten fast beliebig umgestalten Ich werde mich hier daher auf die Aufstellung einfacher Regeln f r die L sung von Grundproblemen beschr nken Als weiterf hrende Lekt re empfehle ich Ihnen das Be nutzerhandbuch zu Privoxy das Sie von der Privoxy Webseite als PDF Datei herunterla den k nnen Es wurde auch als Sammlung von HTML Seiten unter usr share doc pri
45. k nnen wir auch festlegen welche FTP Befehle berhaupt verwen det werden d rfen Diese M glichkeit ist grunds tzlich ein sehr m chtiges Werkzeug Einrichten eines Web oder FTP Proxys 427 firewall 2006 1 4 15 26 page 428 447 das allerdings nicht einfach zu konfigurieren ist Der Proxy kennt 51 Befehle die wir erlauben oder verbieten k nnen Die meisten davon habe ich in den RFCs 959 1579 1639 2228 2389 2428 und 2640 gefunden wobei RFC 959 definitiv am wichtigsten ist Die anderen RFCs sind Erweite rungen die oft nur einzelne Befehle definieren Einige Befehle habe ich aber immer noch nicht gefunden oder ihre Funktion wurde in einem Nebensatz vage erw hnt aber nicht wirklich definiert F r einen Reverse Proxy w rde ich die folgenden Befehle erlauben Sie gestatten es Da teien herunterzuladen nicht aber eigene Dateien auf dem Server abzulegen ValidCommands USER PASS PWD CWD PORT PASV RETR TYPE REST ABOR LIST NLST STAT QUIT Dies sollte f r den Betrieb eines Reverse Proxys ausreichen wenn der FTP Server nur da zu dient Informationen bereitzustellen nicht aber als Upload Server z B f r Webseiten dient F r einen normalen Proxy werden Sie wahrscheinlich mehr Befehle erlauben m ssen Vermutlich werden die Benutzer irgendwann auch Dateien senden und nicht nur emp fangen wollen In diesem Fall werden Sie um das Studium von RFC 959 und eigene Ex perimente mit diverse
46. lso etc init d bindg Wenn wir uns das Skript genauer ansehen stellen wir fest da das Programm nicht mit einem Parameter u oder t aufgerufen wird start stop daemon start quiet pidfile var run named pid exec usr sbin named OPTS Allerdings wird eine Variable OPTS bergeben in die wir zus tzliche Parameter ein tragen k nnen Diese sollten wir aber nicht direkt hier ndern sondern in der Datei etc default bind9 Diese Datei wird vom Runlevel Skript eingebunden In ihr definierte Variablen berschreiben die Variablen des Runlevel Skripts Derzeit ist in ihm nur eine Zeile enthalten die den Inhalt der Variable OPTS definiert OPTS u bind Es ist also schon festgelegt unter welchem Benutzerkonto der Dienst l uft Nun m ssen wir nur noch die Angabe unseres chroot K figs hinzuf gen OPTS u named t var lib named 438 Kapitel 14 Proxies firewall 2006 1 4 15 26 page 439 458 Start und Test Den Server k nnen Sie unter SuSE mit dem folgenden Befehl starten etc init d named start Damit der Dienst auch in Zukunft automatisch gestartet wird sollten Sie den Dienst mit dem folgenden Befehl aktivieren insserv named Unter Debian ist der Dienst bereits gestartet Sie k nnen ihn aber mit etc init d bindg restart neu starten um sicherzustellen da er auch wirklich die neue Konfiguration benutzt Nun sollten wir als erstes berpr fen unter welcher Benutzerkennung
47. n FTP Klienten nicht herumkommen Hilfreich d rfte dabei vor allem die Tatsache sein da jeder Befehl im Systemprotokoll vermerkt wird Fehlt die Option komplett so sind alle Befehle erlaubt die der Proxy kennt darunter auch so gef hrliche wie SITE die den FTP Server anweisen lokale Kommandos auszu f hren Haben wir die Datei zu unserer Zufriedenheit konfiguriert so m ssen wir sie nur noch in unseren chroot K fig kopieren cd var lib ftp proxy rundir cp etc proxy suite ftp proxy conf etc proxy suite Falls Sie den in Debian enthaltenen ftp proxy verwenden denken Sie bitte daran in den obigen Befehlen etc proxy suite jeweils durch etc zu ersetzen Tests Nun wollen wir wissen ob unser Proxy auch tats chlich das tut was wir von ihm erwar ten Dazu m ssen wir ihn als erstes starten etc init d ftp proxy start Passen Sie dabei bitte den Pfad und den Skriptnamen entsprechend Ihrer Installation an 10 Details unter man ftp proxy conf 428 Kapitel 14 Proxies firewall 2006 1 4 15 26 page 429 448 Nun verbinden wir uns zum ersten Mal mit dem Proxy ftp localhost Connected to gonzales 220 gonzales FTP server Version 1 9 2 2 2004 03 30 10 42 46 ready Name localhost perdita Dies ist die Standardmeldung des Proxys Sie kann umkonfiguriert werden wenn man z B nicht will da einfach zu erkennen ist da ein Reverse Proxy eingesetzt wird Geben wir als Benutzernam
48. n Mal eine IP Adresse in numerischer Form ange geben Diese endet nicht auf einem Punkt Zum anderen ist die Benutzung von CNAME Records umstritten Alternativ k nnte man auch einen weiteren A Record verwenden Will man aber nicht auf CNAME Records verzichten so sollte man beachten da ein Name der als CNAME definiert wurde niemals auf der rechten Seite eines SOA MX oder CNAMF Records erscheinen sollte Es existieren noch weitere RRs So erlaubt es beispielsweise ein HINFO Record die Hardware und das Betriebssystem eines Rechners anzugeben w hrend mit TXT Records beliebige Zeichenketten mit dem Rechner verkn pft werden k nnen Allerdings sollte man sich berlegen ob man einem potentiellen Angreifer diese Angaben tats chlich frei Haus liefern will Um jetzt auch Anfragen nach IP Adressen zu Namen aufl sen zu k nnen wird zus tz lich die Zone 127 0 0 verwaltet Allerdings ist dabei zu beachten da IP Adressen der Form w x yz f r DNS als z y x w in addr arpa angegeben werden au er in der rechten Seite von A Eintr gen Die Zone 127 0 0 wird in der Datei var lib named 127 0 0 zone definiert TTL 86400 IN SOA localhost loopback root localhost loopback 42 serial 3H refresh 15M retry 1W expiry 1D minimum IN NS localhost loopback 1 IN PTR localhost loopback Einrichten eines DNS Servers 437 firewall 2006 1 4 15 26 page 438 457 Es ist auch zu beachten da der Eintrag 1
49. n au erhalb dieses K figs keinen Schaden anrichten 406 Kapitel 14 Proxies firewall 2006 1 4 15 26 page 407 426 Unter SuSE 9 3 ist solch ein K fig bereits vorhanden und die in diesem Abschnitt be schriebenen Arbeiten entfallen Unter Debain 3 1 ist der chroot Betrieb dagegen nicht vorgesehen so da wir ein paar Vorarbeiten leisten m ssen Wir beginnen damit da wir ein Verzeichnis anlegen das uns sp ter als K fig dienen soll mkdir p m0755 var lib privoxy Damit ein Ausbrechen aus unserem K fig nicht m glich ist darf der Dienst nicht mit root Rechten laufen Wir ben tigen also einen eigenen Benutzer f r den Dienst Unter Debian ist hierf r der Benutzer privoxy vorgesehen Allerdings ist f r diesen Benutzer die Gruppe nogroup als Standardgruppe eingetragen Wir wollen ihm im folgenden eine eigene Gruppe geben die er mit keinem anderen Dienst teilt groupadd privoxy Nun k nnen wir ihm die Gruppe zuweisen und ihm das K fig Verzeichnis als Heimat verzeichnis eintragen usermod c Privoxy Daemon d var lib privoxy g privoxy G IN s bin false privoxy VVVVVRER Nun m ssen wir unter var lib privoxy das normale Dateisystem nachbilden Der privoxy mu dort alle Dateien vorfinden die er f r den Betrieb braucht Als erstes erstellen wir das Verzeichnis f r die Konfigurationsdateien und kopieren die Dateien aus dem Origi nalverzeichnis hinein cd var lib
50. nd cache effective group Unter Debian und SuSE reicht es aber wenn diese Optionen auskommentiert sind In diesem Fall wer den unter SuSE der Benutzer squid und die Gruppe nobody verwendet w hrend unter Debian sowohl als Benutzer wie auch als Gruppe proxy verwendet wird Wollen wir dies explizit konfigurieren so sieht das unter SuSE folgenderma en aus cache_effective user squid cache effective_group nobody Unter Debian dagegen cache_effective_user proxy cache effective_group proxy 2 Erlaubt es Statistiken ber die Webzugriffe abzufragen Zum squid geh rt auch ein cgi Skript das es erlaubt dies komfortabel ber einen Webbrowser zu tun Allerdings macht es keinen Sinn auf der Firewall extra zu diesem Zweck einen Webserver aufzusetzen Dar ber hinaus w re ein Zugriff ber das cgi Skript aus Sicht des squid immer lokal womit eine Einschr nkung von Zugriffen nicht mehr m glich ist 402 Kapitel 14 Proxies firewall 2006 1 4 15 26 page 403 422 In den Standardeinstellungen bertr gt der squid f r jede Anfrage die IP Adresse des an fragenden Rechners Damit geben wir fremden Rechnern Informationen ber die Struk tur unseres lokalen Netzes Wir schalten dieses Feature daher ab forwarded_for off Der squid kann Statistiken ber SNMP zur Verf gung stellen Das wollen wir nicht snmp_port 0 Schutz der Privatsph re Der squid kann aber noch mehr als Webseiten cachen Jede HTTP Nachricht en
51. nner PageID 1234567 HTTP 1 0 200 3 Oft sind auch ganze Gruppen von Zugriffen erst einmal in der einen Form und dann noch einmal als Gruppe im anderen Format protokolliert da der Eintrag im Common Logfile Format teilweise erst mehrere Sekunden nach dem Eintrag im Syslog Format er 410 Kapitel 14 Proxies firewall 2006 1 4 15 26 page 411 430 folgt Damit lassen sich die einzelnen Zugriffseintr ge in den unterschiedlichen Forma ten nicht wirklich gut einander zuordnen Das Handbuch empfiehlt daher entweder die Standardeinstellungen oder das Common Logfile Format zu benutzen nicht aber beides gemeinsam Ist kein debug Eintrag vorhanden dann findet keine Protokollierung statt Eine weitere Einstellung gibt an auf welcher Adresse der Proxy Anfragen beantwortet Standardm ig ist hier 127 0 0 1 eingetragen womit Zugriffe nur von der Firewall selbst aus m glich sind Hier sollten wir die IP Adresse unseres internen Netzwerk Interfaces angeben um den Klienten im LAN die Nutzung des Proxys zu erm glichen listen address 192 168 20 15 8118 Wie bereits erw hnt l t sich der Proxy ber sein Web Interface auch fernkonfigurie ren Wir haben diese Funktionen aber abgestellt In der gegenw rtigen Version werden die entsprechenden Schaltfl chen aber trotzdem angezeigt Wir sollten also auch noch einmal in der Konfiguration festhalten da die Funktionen nicht zul ssig sind enable remote toggle 0 enable e
52. nung f r block Diese Aktion hebt eine vorher gehende Sperrung mit block oder block as image auf fragile schaltet praktisch alle Filter f r die angegebene URL ab Dies ist sinnvoll f r Sei ten die besonders empfindlich auf die Filterung reagieren shop steht f r crunch all cookies und allow popups Neben Aktionen m ssen wir aber auch URLs angeben auf welche die Aktionen ange wendet werden Neben dem Muster das auf alle URLs pa t kann man Muster in der folgenden Form angeben lt Rechner gt lt Pfad gt lt Rechner gt kann eine vollst ndige Rechneradresse sein es sind aber auch allgemeinere Formen m glich Man kann Wildcards benutzen entspricht beliebig vielen Zeichen einschlie lich keinem Zeichen entspricht genau einem Zeichen 1 9az entspricht einer Ziffer zwischen 1 und 9 a oder z Man kann auch Adre angaben mit einem Punkt beginnen oder abschlie en In diesem Fall d rfen auf der anderen Seite beliebige Zeichen stehen example com Es werden alle Rechner gefunden die auf example com enden www Dies beschreibt Rechnernamen die mit www beginnen example Dieses Muster pa t auf alle Rechner deren Name example enth lt F r lt Pfad gt k nnen beliebige Perl kompatible regul re Ausdr cke verwendet werden Diese entsprechen in etwa den in Kapitel 16 Unterabschnitt K nstliche Ignoranz ab Sei te 508 beschriebenen erweiterten regul ren Ausdr cken Eine tiefergehende Einf hrung
53. olldienstes Als n chstes m ssen wir sicherstellen da auch Meldungen in das Systemprotokoll ge schrieben werden k nnen Normalerweise werden Ereignisse protokolliert indem auf den Unix Domain Socket dev log geschrieben wird Hierbei handelt es sich nicht um ein Device das wir kopieren k nnen sondern um ein Objekt das vom syslogd zur Laufzeit angelegt wird Wir m ssen daher den Sy stemprotokolldienst so konfigurieren da er zus tzlich zu dev log auch var lib ftp proxy rundir dev log anlegt Hierbei m ssen wir zwischen dem normalen syslogd wie er standardm ig unter Debi an eingesetzt wird und dem syslog ng unterscheiden den SuSE mittlerweile einsetzt Benutzen wir den syslog ng so brauchen wir nur eine zus tzliche Quellenangabe in seine Konfigurationsdatei einzuf gen source src Pe Rasi J unix dgram var lib ftp proxy rundir dev log Diese Datei finden wir unter etc syslog ng syslog ng conf siehe Kapitel 9 Unterab schnitt syslog ng ab Seite 208 Beim syslogd m ssen wir daf r sorgen da er beim Systemstart mit dem zus tzlichen Parameter a var lib ftp proxy rundir dev log aufgerufen wird Wir suchen also als erstes das Runlevel Skript in dem der syslogd gestartet wird Einrichten eines Web oder FTP Proxys 423 firewall 2006 1 4 15 26 page 424 443 find etc init d type f exec grep Hn syslogd etc init d klogd 35 No syslogd etc init d
54. ommen weshalb wir uns den Action Files zuwenden Standardm ig existieren derer zwei lt chroot K fig gt etc privoxy default action Diese Datei enth lt Grundeinstellungen die f r alle URLs gelten und spezielle Regeln die dazu dienen URLs zu filtern die auf Werbebanner verweisen Die Regeln werden st ndig weiterentwickelt Es empfiehlt sich durchaus diese Datei regelm ig zu aktualisieren lt chroot K fig gt etc privoxy user action In dieser Datei k nnen Sie eigene Sonderregeln f r die URLs definieren die von den Standardregeln nicht angemessen behandelt wer den Obwohl die Datei default action recht umfangreich ist interessiert uns an ihr eigentlich nur der erste Abschnitt Abschnitte haben die folgende Form lt Aktion1 gt lt Aktion2 gt lt URL Muster1 gt lt URL Muster2 gt Der erste Abschnitt enth lt etwa 40 Aktionen Da diese nicht auf eine Zeile passen wer den die Zeilenenden durch ein unmittelbar davorstehendes auskommenitiert lt Aktion1 gt lt Aktion2 gt lt URL Muster1 gt lt URL Muster2 gt Das URL Muster des ersten Abschnittes ist ein einzelnes Dieses Muster pa t auf alle URLs Aktionen die in diesem Abschnitt definiert werden werden also immer ausge f hrt es sei denn eine sp tere Regel ndert dies Wenn wir also eine der eingestellten Filterregeln ablehnen und generell aktivieren oder abschalten wollen so m ssen wir hier vor der jeweiligen Aktion das in e
55. orts gt erlaubt nur CONNECT Anfragen an die angegebenen Ports CONNECT Anfragen werden f r SSL genutzt Dabei werden alle Daten weiterge reicht ohne da der Proxy diese in irgendeiner Weise ver ndert Das kann dazu benutzt werden die Filterung zu umgehen Standardm ig ist daher nur Port 443 erlaubt Diese Aktion werden Sie nur ben tigen wenn Sie den SSL Zugriff auf einen Server erlauben wollen der nicht Port 445 benutzt Im Normalfall brauchen Sie die Aktion dagegen nicht session cookies only manipuliert Cookies so da sie vom Browser nach dem Ende der Sitzung nicht gespeichert werden set image blocker bestimmt wodurch eine gefilterte Graphik ersetzt wird Als Parame ter erh lt die Aktion entweder pattern blank oder eine URL Voreingestellt ist pat tern wodurch statt der Graphik ein Schachbrettmuster angezeigt wird Mit blank wird statt dessen eine transparente Graphik eingesetzt wodurch nicht mehr erkenn bar ist da berhaupt eine Graphik gefiltert wurde Ist schlie lich eine URL ber geben worden so wird jede gefilterte Graphik durch die Graphik ersetzt auf die die URL verweist Um die Konfiguration zu vereinfachen definiert user action zuerst einmal mehrere Aliase wobei der Alias allow popups in der mir vorliegenden Version nicht funktioniert Statt allow popups filter popups kill popups m te es wohl hei en allow popups filter unsolicitated popups kill popups filter all popups Dies bewi
56. privoxy mkdir m0755 etc cp Rdfp etc privoxy etc privoxy Es existieren auch bereits Logdateien f r den Dienst Diese m ssen wir ebenfalls kopie ren mkdir m0755 p var log cp Rdfp var log privoxy var log privoxy Als n chstes ben tigt der Privoxy noch einige Systemdateien Die folgenden Dateien wer den zur Aufl sung von Netzwerknamen ben tigt cp dfp etc resolv conf etc cp dfp etc hosts etc cp dfp etc services etc cp dfp etc protocols etc Einrichten eines Web oder FTP Proxys 407 firewall 2006 1 4 15 26 page 408 427 Damit die Namensaufl sung aber auch wirklich funktioniert werden noch einige Bi bliotheken ben tigt die erst geladen werden wenn das erste Mal versucht wird einen Rechnernamen oder eine IP Adresse aufzul sen mkdir m0755 lib cp dfp lib 1d lib cp dfp lib libnss_dns lib cp dfp lib libnss_files lib cp dfp lib libresolv lib Schlie lich k nnen wir dem Proxy noch mitteilen in welcher Zeitzone er sich befindet Dies spielt insbesondere dann eine Rolle wenn wir ihn Logdateien schreiben lassen Ohne die folgenden Einstellungen w ren alle Eintr ge in UTC Konfiguriert wird die Zeitzone ber die Datei etc localtime In einigen Systemen ist dies eine normale Datei in anderen ein symbolischer Link ls l etc localtime Irwxrwxrwx 1 root root 33 Feb 17 21 26 etc localtime gt usr share zoneinfo Europe Berlin Hier
57. proxy Die meisten Programme sind dynamisch gelinkt D h viele Funktionen sind nicht im eigentlichen Programm enthalten sondern in Bibliotheken die erst zur Laufzeit vom Programm ge ffnet werden Diese Bibliotheken m ssen wir ebenfalls in unseren K fig kopieren Welche dies sind kann uns zumindest teilweise der Befehl ldd verraten ldd usr sbin ftp proxy libwrap so 0 gt lib libwrap so 0 0x4001d000 libnsl so 1 gt lib libnsl so 1 0x40025000 libc so 6 gt lib libc so 6 0x4003a000 lib ld linux so 2 gt lib ld linux so 2 0x40000000 Kopieren wir die gefundenen Bibliotheken nun her ber cp fp lib libwrap so 0 lib cp fp lib libnsl so 1 lib cp fp lib libc so 6 lib cp fp lib ld linux so 2 lib Leider erz hlt uns ldd nur die halbe Geschichte Es existieren weitere Bibliotheken die von den Bibliotheken der Glibc d h libc so und libnsl so nur dann eingebunden wer den wenn die aktuelle Konfiguration des Systems es erfordert Da wir nicht genau wis sen welche Bibliotheken dies im konkreten Einzelfall sind wollen wir hier gro z gig alle in Frage kommenden Bibliotheken kopieren 9 Genaugenommen ist ld linux so 2 keine Bibliothek sondern ein Hilfsprogramm das zum eigentlichen Einbinden der Bibliotheken ben tigt wird Einrichten eines Web oder FTP Proxys 421 firewall 2006 1 4 15 26 page 422 441 cp fp lib libnss 1ib cp fp lib libns1 1ib
58. rkt da keine Pop up Fenster mehr gefiltert werden Daneben werden noch die folgenden Aliase definiert allow all cookies Cookies werden in keiner Weise gefiltert crunch all cookies hnelt allow all cookies hat aber keine Auswirkungen auf den Fil ter content cookies der Cookies unterdr ckt die nicht vom Webserver gesetzt wur den sondern in der Webseite selbst enthalten sind z B in Form spezieller Tags oder als JavaScript Befehle Dieser Filter ist standardm ig aber nicht aktiviert Er ver hindert ebenfalls nicht da Cookies so manipuliert werden da der Browser sie zum Sitzungsende l scht Dieses Feature ist standardm ig aktiviert sollte aber im Normalfall keine Probleme machen crunch all cookies unterdr ckt alle Cookies 416 Kapitel 14 Proxies firewall 2006 1 4 15 26 page 417 436 block as image Bedeutet da die spezifizierten URLs zu Graphiken geh ren die un terdr ckt werden sollen In den Standardeinstellungen bedeutet dies da die Gra phik durch ein Schachbrettmuster ersetzt wird Diese Aktion sollte man verwenden wenn man sicher ist da die zugeh rige URL eine Graphik darstellt Will man dagegen ganze Bereiche eines Servers filtern sollte man lieber die Standardaktion block benutzen Diese versucht herauszufinden ob es eine Graphik ist und zeigt abh ngig vom Ergebnis entweder das Schachbrettmu ster oder einen Text an block as image Ist eine andere Bezeich
59. s Systems h tte Als erstes ben tigen wir ein Verzeichnis das wir als Heimatverzeichnis f r unseren Proxy User eintragen k nnen Wir wollen dazu var lib ftp proxy rundir verwenden Falls es noch nicht existiert k nnen wir es mit dem folgenden Befehl anlegen mkdir p m0755 var lib ftp proxy rundir Beachten Sie hierbei da das Verzeichnis root geh rt und niemand sonst Schreibrecht darauf hat Dies wird auch unseren zuk nftigen Proxy User einschlie en Legen wir nun eine Gruppe an die wir als Standardgruppe f r unseren Benutzer ver wenden werden groupadd ftp proxy Schlie lich mu noch der eigentliche Systembenutzer angelegt werden 6 Wenn dies der Fall ist zeigt Idd Pfad gt ftp proxy unter anderem die Bibliothek libwrap so lt Version gt an 7 Vgl Kapitel 9 Abschnitt Der inetd ab Seite 182 Einrichten eines Web oder FTP Proxys 419 firewall 2006 1 4 15 26 page 420 439 useradd c ystem user for ftp proxy d var lib ftp proxy rundir g ftp proxy G s bin false ftp proxy VVVVVRFEH Einrichtung einer chroot Umgebung Wir wollen den Systembenutzer aber nicht nur in seinen Rechten beschr nken sondern noch einen Schritt weiter gehen Wir werden dem Proxy einen K fig bauen aus dem er nicht ausbrechen kann Hierzu m ssen wir ein Verzeichnis schaffen in dem die Ver zeichnisstruktur des Systems in dem Ma e nachgebildet wird da der Proxy dort all
60. source Records RRs genannt werden Der erste Record vom Typ SOA ist administrativer Natur Sein erstes Element gibt den Ursprung der definierten Zone an Hier m te ei gentlich localhost loopback stehen Da wir den Ursprung der Zone aber schon in etc bind named conf angegeben haben k nnen wir diese Angabe mit abk rzen Als n chstes Element gibt IN an da es um einen Eintrag der Klasse Internet geht Es existieren auch die Klassen Chaos und Hesiod die uns im Rahmen unserer Betrachtun gen aber nicht interessieren SOA bedeutet Start of Authority Jede Datei darf nur einen SOA Record enthalten Dies mu dar ber hinaus der erste RR sein localhost loopback ist derjenige Server auf dem die Daten f r die Zone verwaltet werden root localhost loopback steht f r die E Mail Adresse des Verantwortlichen f r die Zo ne root localhost loopback Dabei sollte beachtet werden da alle Angaben die nicht auf enden als relativ zum Ursprung der Zone verstanden werden Damit w rde 1o calhost loopback ohne Punkt zu localhost loopback loopback Nun folgt eine Seriennummer an der sekund re Server erkennen k nnen ob die Daten der Zone ge ndert wurden Sie sollte jedesmal aktualisiert werden wenn dies geschieht 436 Kapitel 14 Proxies firewall 2006 1 4 15 26 page 437 456 Ihr folgen Angaben die regeln wie h ufig sekund re DNS Server ihre Datenbank mit dem prim ren Server abgleichen Prinz
61. sysklogd 6 pidfile var run syslogd pid etc init d sysklogd 7 binpath sbin syslogd etc init d sysklogd 46 No syslogd etc init d sysklogd 58 echo n Starting system log daemon syslogd etc init d sysklogd 64 echo n Stopping system log daemon syslogd etc init d sysklogd 72 echo n Stopping system log daemon syslogd etc init d sysklogd 76 echo n Starting system log daemon syslogd Gegebenenfalls m ssen Sie hier das Verzeichnis in dem gesucht wird anpassen De bian und SuSE 9 3 verwenden etc init d aber andere Distributionen haben auch z B sbin init d oder etc rc d init d benutzt Unter Debian finden wir die Datei etc init d sysklogd Diese kennt eine Variable SYS LOGD die zus tzliche Parameter enthalten kann im Normalfall aber leer ist Hier brauchen wir nur unseren Parameter anzuf gen SYSLOGD a var lib ftp proxy rundir dev log Es macht dabei berhaupt nichts wenn schon ein Parameter a eingetragen ist Wir k nnen durchaus einen eigenen Wert anh ngen SYSLOGD a lt Anderer gt a var lib ftp proxy rundir dev log SuSE ist in dieser Hinsicht komplizierter Hier stehen solche Konfigurationsvariablen nicht im eigentlichen Runlevel Skript sondern in einer eigenen Konfigurationsdatei Fr her war dies etc rc config vor einiger Zeit wurde diese zentrale Datei aber in eine ganze Reihe kleinerer Dateien aufgeteilt die spezifisch f r jeweils eine Applikation sind Der syslogd wird in
62. tarting DESC start stop daemon oknodo start quiet pidfile PIDFILE exec DAEMON pidfile PIDFILE user OWNER chroot CONFIGFILE 2 gt gt var log privoxy errorfile Konfiguration Nachdem wir die Software installiert haben m ssen wir sie noch konfigurieren Die Standardeinstellungen sind zwar schon recht brauchbar im einen oder anderen Fall kann man sie aber noch optimieren Ich kann hier allerdings nicht auf jedes Detail eingehen Die einzelnen Dateien sind aber recht gut kommentiert und das Benutzerhandbuch das Sie in HTML Form unter usr share doc privoxy manual finden ist ebenfalls recht ausf hrlich Aus diesem Grund werde ich im folgenden nur auf die Einstellungen eingehen bei denen ich ein Abgehen von den Standardeinstellungen f r sinnvoll halte Beginnen wir mit der Datei var lib privoxy etc config Sie regelt grunds tzliche Dinge wie z B Pfade zu anderen Dateien wie ausf hrlich protokolliert wird oder auf welcher Adresse der Proxy Anfragen entgegennimmt Die grundlegenden Pfade und Dateien entsprechen der Konfiguration die wir vor dem Kompilieren des Servers vorgenommen haben Interessant ist daher nur die folgende Da tei jarfile jarfile Das Verzeichnis in dem sich die Datei befindet wurde mit einer anderen Option ange geben Das jarfile enth lt alle Cookies die der Privoxy abgefangen hat Diese Speicherung ist normalerweise aber eher berfl ssig Es bietet sich daher an die Opt
63. te um dies zu erreichen Wird die Entscheidung getroffen der Zugriff auf bestimmte Seiten sei nicht w nschens wert so bieten die hier betrachteten Proxies die M glichkeit diese Zugriffe zu unter binden W hrend dies eine sinnvolle Ma nahme ist um das Herunterladen von Werbe bannern zu unterbinden und Software davon abzuhalten ihrem Hersteller jeden Start mitzuteilen ist Filterung als Zensur von Inhalten relativ sinnlos Wer nach bestimmten Inhalten sucht wird immer einen Weg finden zu ihnen zu gelangen Die Erfahrung zeigt da sogar kleine Kinder und relativ unerfahrene Benutzer schnell Wege finden mi liebige Sperren zu umgehen 399 firewall 2006 1 4 15 26 page 400 419 squid Beim squid handelt es sich um einen cachenden Proxy der daf r ausgelegt ist auch gro e lokale Netze zu bedienen Bei Bedarf k nnen auch mehrere squids benutzt werden die sich ber ein Protokoll namens ICP gegenseitig befragen wenn sie eine Seite nicht im ei genen Cache vorr tig haben um so nur dann eine Verbindung zum eigentlichen Webser ver herzustellen wenn keiner der Proxies eine aktuelle Kopie der Seite besitzt Die Lei stungsf higkeit des squid scheint so gro zu sein da auch einige Internet Provider ihn einsetzen was man dann merkt wenn eine Seite nicht geladen werden kann und eine Fehlermeldung des Proxys angezeigt wird Neben der M glichkeit mehrfaches Laden derselben Seite zu vermeiden erlaubt es
64. th lt neben der eigentlichen Anfrage beispielsweise nach einer Webseite auch noch diverse Header mit zus tzlichen Informationen Dabei kann z B angegeben werden welchen Browser der Surfer benutzt welche Webseite er zuletzt besichtigt hat ja es ist sogar ein Header f r die E Mail Adresse des Benutzers vorgesehen Auch die ber chtigten Cookies sind als HTTP Header realisiert Der squid kann diese Header filtern Die Filterregeln haben dabei den folgenden Aufbau header_access lt header_name gt allow deny lt aclname gt Gibt man als lt header_name gt das Schl sselwort ALL an so wird die Regel auf alle Header angewendet Will man nun explizit bestimmte Header unterdr cken kann dies folgenderma en ge schehen header _access From deny all header _access Referer deny all header _access Server deny all header_access User Agent deny all header _access WWW Authenticate deny all header _access Link deny all Den umgekehrten Fall k nnte man dagegen so ausdr cken header _access Allow allow all header _access Authorization allow all header _access WWW Authenticate allow all header _access Cache Control allow all header_access Content Encoding allow all header_access Content Length allow all header_access Content Type allow all header_access Date allow all header_access Expires allow all header_access Host allow all 3 Fr her hat man 1 statt 0 verwendet Einrichten eines Web oder FTP Proxys 403 firewall
65. tion View the source code version numbers View the request headers Look up which actions apply to a URL and why Documentation 2 X Support and Service via Sourceforge We value your feedback To provide you with the best support we ask that you use the support forum to get help submit banners and all problems with the actions file only through the actions file feedback system submit bugs only through our bug tracker Make sure that the bug has not yet been submitted press space for next page Arrow keys Up and Down to move Right to follow a link Left to go back H elp O ptions P rint G o M ain screen Q Juit search delete history list Kapitel 14 Proxies firewall 2006 1 4 15 26 page 413 432 Nachdem der Start nun funktioniert k nnen wir das Runlevel Skript verlinken und der Proxy wird in Zukunft bei jedem Systemstart aktiviert Tuning der Filter Wir k nnen den Privoxy nun nutzen Seine voreingestellten Filterregeln sind im gro en und ganzen sinnvoll eingestellt und filtern den Gro teil der Werbebanner denen man beim Surfen begegnet Auch f r den Schutz der Privatsph re und vor einer Reihe von rgernissen denen man beim Surfen begegnet ist gesorgt Standardm ig werden z B e animierte GIFs zu statischen Bildern konvertiert e Webseiten so ge ndert da sie Kind Fenster nicht im Kiosk Modus das hei t ohne Adre und Men Leiste ffnen e mit JavaScr
66. voxy 5 Dieses F lschen des Referer Headers ist wirkungsvoller als ihn einfach zu unterdr cken Es unterbindet genauso effektiv das Ausspionieren von Surfgewohnheiten mittels Werbebannern und Webbugs w hrend man trotzdem noch auf die meisten Seiten kommt die den Referer Header berpr fen um zu testen ob jemand Ihre Inhalte in fremde Seiten einbaut Einrichten eines Web oder FTP Proxys 413 firewall 2006 1 4 15 26 page 414 433 installiert Auch die Konfigurationsdateien sind ausgezeichnet kommentiert Die Kom mentare entsprechen teilweise den zugeh rigen Passagen im Benutzerhandbuch Nach diesem Hinweis lassen Sie uns nun mit der Konfiguration beginnen Der Privoxy kennt sogenannte Action Files Diese enthalten Regeln die der Reihe nach daraufhin berpr ft werden ob sie zu der URL einer angeforderten Seite passen Ist dies der Fall so wird vermerkt da bestimmte Aktionen auszuf hren sind Sp tere Regeln k nnen fr here Regeln ganz oder teilweise aufheben Im Zweifel zieht immer die zuletzt gelesene Regel Am Ende wird berpr ft welche Aktionen tats chlich ausgef hrt werden sollen Diese Aktionen k nnen entweder eingebaut sein oder es handelt sich um sogenannte Filter das hei t regul re Ausdr cke die Texte in der Webseite ersetzen Filter werden aus einer Konfigurationsdatei gelesen und sind prinzipiell frei konfigurierbar Die bereitgestellten Filter reichen aber f r unsere Zwecke vollk
67. wird Eine Ma nahme um dies zu erreichen besteht darin explizit vor zugeben da nur Pakete angenommen werden sollen die an die interne Adresse der Firewall gerichtet sind F r einen Reverse Proxy sollte die folgende Zeile dagegen nicht eingetragen werden Listen 192 168 20 15 Auch die Protokollierung der Zugriffe im Systemprotokoll ist eine definierte Aufgabe un seres Proxys Die folgende Zeile weist ihn daher an mit Hilfe des syslog zu protokollieren und dabei als Quelle daemon anzugeben Diese ist f r Systemdienste gedacht LogDestination daemon Wir haben ja schon alles vorbereitet damit der Dienst in einem chroot K fig laufen kann Die folgende Zeile weist ihn an es auch zu tun ServerRoot var lib ftp proxy rundir Grunds tzlich kann der ftp proxy als eigenst ndiger Dienst laufen oder vom inetd auf gerufen werden Wir wollen ihn als eigenst ndigen Server betreiben ServerType standalone Wurde der Proxy mit der Option with libwrap kompiliert dann kann man mit den folgenden Optionen einstellen da bei jedem Verbindungsaufbau eines Klienten erst einmal etc hosts allow und etc hosts deny konsultiert werden um zu entscheiden ob dieser Rechner auf den Proxy berhaupt zugreifen darf TCPhrapper yes TCPhWrapperName ftp proxy Nachdem wir schon festgelegt haben mit welchen Gruppenrechten ftp proxy laufen soll legt die folgende Einstellung den zu verwendenden Benutzer fest User ftp proxy Mit dem ftp proxy
68. ww loopback 86400 IN CNAME localhost loopback loopback 86400 N SOA localhost loopback root localhost loopback 42 10800 900 604800 86400 Query time 470 msec SERVER 127 0 0 1 53 127 0 0 1 5 WHEN Thu Nov 4 00 04 14 2004 55 XFR size 7 records Da hierbei der SOA RR doppelt erscheint ist normal Dies ist in den relevanten RFCs f r Zone Transfers so vorgeschrieben Nachdem wir den Vorgang f r die Zone 0 0 127 in addr arpa wiederholt haben k n nen wir sicher sein da wir unsere Zonen richtig aufgesetzt haben 11 Die Gro und Kleinschreibung spielt hierbei keine Rolle Auch SoA w re ein g ltiges Argument 440 Kapitel 14 Proxies
Download Pdf Manuals
Related Search
Related Contents
取扱説明書 (PDF形式、398Kバイト) "取扱説明書" evaporador rotatorio económico - Yamato Scientific America, Inc. User guide en savoir plus - Cheops Technology, spécialiste des Datacenters Nokia Card Phone for Windows CE User manual SY-6ZE+ Motherboard Quick Start Guide User manual CLIMATIC™ 50 - NEOSYS User Manual Copyright © All rights reserved.
Failed to retrieve file