Sonntag, 13. Mai 2007

Ubuntu mit SquidGuard als Proxy-Server

Vorgeschichte:

Da unsere Versuche mit einem zweiten Arktur-Schulserver als Proxy auf die Dauer nicht erfolgreich waren (Arktur besteht darauf, die Internetverbindung über eine zweite Netzwerkkarte herzustellen, und das hat offenbar unser gesamtes Netz nach einigen Tagen an den Rande eines Zusammenbruchs gebracht - warum ist mir nicht so ganz klar, aber nach Stilllegen des Arktur-Proxys und Einschalten eines Jana-Proxys unter WinXP lief alles wieder), musste eine andere Lösung her.

Aufgabe:
Mit Ubuntu haben wir bisher gute Erfahrungen gemacht, also warum nicht statt Arktur Ubuntu 6.06 LTS installieren, mit aptitude den SquidGuard nachinstallieren (Squid selbst kommt automatisch mit...) und mit diesem unsere Schüler vor Nazi-, Porno- oder sonstigen pädagogisch und auch sonst nicht wertvollen Seiten bewahren?

Vorgehen:
Ubuntu in der Server-Ausgabe (mit Long-Time-Support für Updates) ist schnell und auch für Linux-Laien schnell installiert, etwas mehr Mühe kostet es, mit vi die erweiterten Archive einzutragen, damit man dann - wiederum ganz einfach - mit aptitude den Midnight Commander und SquidGuard nachinstallieren kann. (ausführlichere Beschreibung dieser Schritte folgt später...)

Dann gilt es noch, eine gut gepflegte Blacklist zu laden, damit SquidGuard auch weiß, welche Seiten er sperren soll. (Beschreibung folgt)

Und nun das Interessanteste: Wie muss ich die squid.conf und die squidguard.conf anpassen, damit die Anfragen der Clients jetzt auch wirklich gefiltert werden.

squid.conf:
Hier ist nur wenig zu tun: man muss im Prinzip nur alle Anfragen an Squidguard weiterleiten.

squidguard.conf:
Im Prinzip ist hier auch nicht viel zu erledigen, man muss nur das Prinzip verstehen, was uns einiges an Zeit gekostet hat! Dabei ist es doch so einfach:

...to be continued

Montag, 7. Mai 2007

Netzwerk-route mit Ubuntu

(oder: was das ubuntuusers-Wiki verschweigt)

Problem:

Der Rechner soll in verschiedene Netze (z.B. unterschiedliche VLans nach dem Schema 192.168.0.0, 192.168.1.0, 192.168.2.0 usw.) Kontakt haben. in anderen Linux-Ditributionen ist dafür die Datei /etc/route.conf zuständig - die gibt es unter Ubuntu aber nicht! Wie geht es dann?

Betriebssystem:
Ubuntu-Server 6.06 LTS

Lösung:
Ubuntu speichert die grundlegenden Informationen zum Netzwerk in der Datei /etc/network/interfaces, deshalb gibt es auch keine route.conf mehr.
Diese Datei hat zu jeder im Rechner eingebauten Netzwerkkarte eine eigene "Abteilung". Hier fügt man nun einfach hinter den bestehenden Informationen als neue Zeile die benötigten routing-Informationen nach folgendem Muster hinzu:

route add 192.168.1.0 gw 192.168.0.254

Vorne steht das zweite Netz, dass der Rechner (eigene IP: 192.168.0.1) erreichen soll.
"gw" steht für die Adresse des Gateways (z.B. der Switch), sofern dieses benötigt wird.

Gibt es noch weitere Netze, die erreicht werden sollen, so fügt man einfach beliebig viele weitere Zeilen für jedes Netz hinzu.

Dienstag, 20. Februar 2007

Eigener Webserver mit moodle

Wie installiere ich einen eigenen Webserver und die Lernumgebung "moodle"?

Da die moodle-Seiten auf dem Landesbildungsserver Baden-Württemberg und dem Lehrerfortbildungsserver wenig komfortabel in der Benutzung sind und auch nicht alle Funktionen zur Verfügung stellen (veraltete moodle-Versionen), haben wir uns entschlossen, einen eigenen Server ins Internet zu stellen und einen eigenen moodle-Server darauf zu installieren.

Grundlage
Das Grundsystem für unseren Server stellte der Ubuntu-Server in der Version 6.06.1 (Long-Run-Support) dar. Das System ist kostenlos, der ebenfalls kostenlose Support mit Sicherheitsupdates usw. wird für 3 Jahre gewährleistet, die Installation ist easy:
  • CD einlegen und starten
  • LAMP-System installieren (LAMP = Linux, Apache, MySQL-Datenbank, PHP-Skripsprache), ein paar einfache Nachfragen beantworten
  • fertig
Der Nachteil: nach dem Neustart und dem Login steht einem lediglich ein Prompt zur Verfügung - für Linux-Anfänger doch eher ein Hindernis!

Erweiterung
Dieses Problem lässt sich einfach beheben: man installiert die grafische Umgebung (bei Ubuntu standardmäßig Gnome, auch wenn man KDE gewohnt ist, ist Gnome keine große Umstellung) nach:
  • sudo aptitude aufrufen (= die Paketverwaltung aptitude mit Administratorrechten starten)
  • das Paket "ubuntu-desktop" suchen (mit Strg-C kommt man an das Menü, der erste von der Suchfunktion gefundene Eintrag ist der falsche, die Suche kann man mit Strg-N fortsetzen) und auswählen ("g" drücken)
  • Nochmals mit "g" bestätigen und schon legt die Installation los - einige wenige Teile werden von der Server-CD geladenn, das meiste (einige 100 MB!) lädt sich aptitude aus dem Internet nach!
Fortan steht einem nach dem booten automatisch ein grafischer Login und Gnome zur Verfügung, jetzt kommen auch Linux-Anfänger mit dem System recht problemlos zu Rande und können z.B. weitere Benutzer am Server einrichten oder die automatiuschen Updates konfigurieren.

moodle installieren
Zunächst lädt man sich von moodle.org die aktuelle Version herunter. In der englischen ubuntu-Wiki wird der Installationsvorgang sehr schön und einfach beschrieben: es sind nur wenige Änderungen an Konfigurationsdateien und Rechten auf der Linux-Konsole vorzunehmen, das meiste läuft dann ganz einfach über den Browser ab - bei uns dauerte es knapp 15 Minuten, bis wir einen lauffähigen moodle-server hatten!

Probleme
  1. moodle mailt nicht!
Wenn man bei der ubuntu-Installation den Domain-Namen korrekt angegeben hat und keine Firewall o.ä. (bei Belwue muss man z.B. einen Belwue-eigenen Mailserver als SMTP-Ziel angeben) den Mailversand behindert, sollten die Grundlegenden Mails z.B. an den moodle-Admin oder die Bestätigungsmails für neu eingetragene moodle-Mitglieder direkt versendet werden.
Wenn allerdings in einem moodle-Kurs im Forum ein Eintrag verfasst wird, so wird dieser nicht wie versprochen an alle Mitglieder des Kurses verschickt!
Die Lösung findet sich im Admin-Menü unter dem unscheinbaren Punkt "Mitteilungen": Hier steht die Meldung "Das Cron-Script wurde in den letzten 24 Stunden nicht ausgeführt.", wobei die Worte "Cron-Script" ein Link sind, ein Klick hierauf startet das Script, es erscheinen Textmeldungen auf einer neuen Browser-Seite, jetzt werden alle auf Halde gesammelten Mails verschickt. Dieses Cron-Script will als Cron-Job unter Linux eingetragen sein, die moodle-Hilfefunktion gibt hierfür wieder genaue Anweisungen. Anschließend wird das Script automatisch alle 5 Minuten gestartet.

Weitere Punkte folgen später an dieser Stelle!