Weiter Zur�ck [Inhalt] Online Suche im Handbuch LITTLE-IDIOT NETWORKING

21.4 Firewall-Router mit SQUID - Proxy

Wer LINUX als Firewall-Router und Intranet-Server, Mail-Server sowie PROXY einsetzen m�chte, der sollte mindestens einen Pentium 166 mit 64 MB RAM einsetzen. PROXY's verbrauchen eine gro�e Zahl von Filehandels (maximale Zahl von offenen Dateien), soda� hier der Kernel und der PROXY neu kompiliert werden m�ssen. Beim Kernel ist es wichtig, die maximale Zahl der Filehandels auf mindesten 1024 zu vergr��ern und die maximale Zahl der halboffenen Verbindungen vergr��ert wird. Hierzu mu� man in der Datei /usr/src/linux/include/linux/socket.h die Variable SOMAXCONN auf 400-500 (keinesfalls auf h�here Werte) vergr��ern, und die Zahl der Filedeskriptoren in der Datei /usr/src/linux/include/linux/posix_types.h auf 4096 oder 8192 (__FD_SETSIZE 8192) setzen. Hiermit teilen Sie dem Kernel und vor allem allen neu kompilierten D�monen mit, da� nun mehr als 256 bzw. 1024 Dateien gleichzeitig offen sein d�rfen. Bei einem Engpa� w�rde ansonsten der PROXY-Cache nicht gen�gend Dateien �ffnen und vor allem offenhalten k�nnen, soda� hier der PROXY sehr gebremst wird. Er mu� n�mlich zuerst einen Handel schlie�en, damit er einen neuen f�r einen Surfer �ffnen kann. Der Surfer hat den Eindruck, die ISDN Leitung w�re v�llig �berlastet, jedoch ist in Wahrheit der PROXY �berlastet. Man mu� bedenken, da� manchmal auf einer WWW-Seite bis zu 100 kleine Grafiken sind. Allein schon 10-20 User k�nnen dann einen Standard S.u.S.E. 6.2 Kernel (max 1024 offene Dateien) bzw. den PROXY CACHE arg stressen. Nach dem Patch mu� also zuerst der Kernel, und dann der SQUID Proxy neu kompiliert werden. In der Konfigurationsdatei /etc/squid.conf sollte man die Werte f�r die Zahl der Verzeichnisse in der Zeile cache_dir /var/squid/cache 16 256 auf folgende Parameter setzen: cache_dir /var/squid/cache 100 16 16. Danach m�ssen Sie die Cache - Verzeichnisse /var/squid/cache/... l�schen, und durch Start von SQUID mit der Option -Yz wieder neu anlegen. Sie d�rfen nicht vergessen, das Cache Verzeichnis und alle Verzeichnisse darunter durch chown -R nobody:nogroup /var/squid/cache an den SQUID D�mon zu �bergeben, der gew�hnlich unter diesem Useraccount mit eingeschr�nkten Rechten gestartet wird. Niemals sollte SQUID als Root laufen.

Sie werden sehen, da� pl�tzlich der SQUID PROXY gegen�ber allen mir bisher bekannten Distributionen (S.u.S.E. -6.2 und RedHat -6.1) erheblich beschleunigt wird. Die Performanceverbesserungen sind so dramatisch, da� Sie durchaus ca. 150 Arbeitspl�tze �ber eine ISDN Leitung an das Internet anbinden k�nnen, ohne da� jemand einschl�ft. Ein Problem sollten Sie jedoch ber�cksichtigen. Mit Hilfe der TOS Flags sollten Sie den FTP Traffic �ber den LINUX ISDN Firewallproxy gegen�ber HTTP mit einer niedrigeren Priorit�t ausstatten, damit bei l�ngeren FTP-Downloads alle User ohne merkliche Performance-Einbu�en surfen k�nnen. F�r 2 MBit Anbindungen mit vielen hundert DIAL-IN�s sollten diese Einstellungen ebenfalls ausreichen, allerdings sollte man dem PROXY CACHE ein RAID System auf SCSI Basis und viel mehr RAM spendieren.

Die Variable SOMAXCONN ist daf�r zust�ndig, die maximale Zahl der halboffenen Verbindungen (Siehe SYN-ACK Mechanismus bei der SINUS Firewall) begrenzt wird. F�r jede angeforderte Verbindung einer Arbeitsstation �ber die Firewall oder �ber den PROXY m�ssen 2 Handels angefordert werden, einen nach innen, und einen nach au�en. LINUX 2.0 und 2.2 hat jedoch eine Beschr�nkung auf maximal 1024 Prozesse, bzw. maximal 1024 Threads. Damit noch etwas Raum f�r interne Prozesse und D�momen �brig bleibt, solle man nicht erlauben, da� ein Angreifer mehr als 400-500 Handels verbrauchen kann. Wichtig ist auch, da� ausreichend RAM zur Verf�gung steht. Mehr als 64 MByte ist jedoch nicht notwendig, egal wie viele Clients auf den PROXY zugreifen.

Sie sehen, da� man, wenn man einen LINUX PROXY oder LINUX ISDN-Router aufbaut, fast alle Software (Kernel und D�monen/Dienste) neu kompilieren mu�.


Weiter Zur�ck [Inhalt] Online Suche im Handbuch LITTLE-IDIOT NETWORKING