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