Changes in version 051023 -------------------------- - Kernel+busybox: max. Anzahl loop-Devices auf 32 erhoeht - Kernel: Anpassungen im idcmem-Treiber, so dass das SRAM gehen koennte, tut es aber auf der GX1 immer noch nicht :( - usr.cfs: lshd: FD_CLOEXEC fuer /dev/urandom und seed-File gesetzt, so dass diese nicht mehr an Kindprozesse vererbt werden - usr.cfs: sysinit: Die Firewall-Restart-Notloesung wieder abgeschafft, weil es nicht richtig geht. Stattdessen werden jetzt alle CFSe relativ frueh schon gemountet (aber nicht gestartet), so dass bei der Netzwerk- Init bereits alle hook-Skripte sichtbar sind - usr.cfs: syslogd: beim Kuerzen der /var/log/messages wird als tmpfile nicht mehr /var/log/messages.new benutzt, sondern /tmp/.messages; falls /var/log mal im SRAM liegen sollte, wuerde evtl. sonst der Platz nicht reichen - usr.cfs: lshd: Das Vermeiden der "connection reset by peer"-Meldungen hat so nicht geklappt... es kam stattdessen "Handshake timed out"; deshalb wieder rausgenommen - ppp.cfs: pppmd: alle %m in syslog() ersetzt durch strerror(errno), weil %m nicht mit fprintf() geht - ppp.cfs: pppmd: Rueckgabewert von waitpid() ist -1 mit errno==ECHILD, wenn sich kein Kind beendet hat -- im Gegensatz zur Manpage!! Jetzt werden beide Faelle behandelt (rv==0 || (rv<0 && errno==ECHILD)) - ppp.cfs: pppmd: alle Statusdateien werden mit fsync() rausgeschrieben, so dass sie im Fall eines Absturzes (hoffentlich) nicht verlorengehen; zusaetzlich wird in in ppp_connections ein DISCONNECTED-Record mit aktuellem Zeitstempel und Uebertragungsdaten ans Ende geschrieben, wenn eine Verbindung besteht; dieser Record ist dann eine Annaeherung an einen korrekten, wenn zwischendurch ein Absturz/Ausschalten kommen sollte - ppp.cfs: pppmd: Die Statusdateien ppp_connections, ppp_provlimits und ppp_transstat wurden von /var/run nach /var/log verschoben, falls spaeter mal /var/log ins SRAM gelegt werden kann - ppp.cfs: pppmd: offensichtlich unsinnige Werte fuer uptime/rx/tx einer Verbindung werden durch 0 ersetzt - ppp.cfs: pppoe: neue Option -t fuer RxTimeout, beendet die Session, wenn der Abstand zwischen letztem gesendetem und letztem empfangenen PPPoE-Paket groesser als dieser RxTimeout wird (hauptsaechlich fuer schnellere Erkennung meiner DSL-Aussetzer); ppp.ini-Parameter DslRxTimeout setzt direkt die -t-Option - pknock.cfs: im non-debug-mode wurde zuviele fd's geschlossen, daher ueberschrieb spaeter der syslog-fd einen listening fd und eine Ziffer (meist 2) wurde nicht mehr erkannt - pknock.cfs: es bleiben nun keine Zombie-Shells mehr stehen - ntp.cfs: Start wird 20s verzoegert, auch wenn NTPConnOnly auf false steht, damit beim Start evtl. schon eine ppp-Verbindung steht (vermeidet nur unschoene Fehlermeldungen) - lpd.cfs: neu, kleiner lpd ohne Spoolingfunktion, nur fuer USB-Drucker - tc.cfs: neues optionales CFS fuer Traffic Control; enthaelt die noetigen Kernelmodule und ein Setup-Skript. Hauptzweck ist den typischen ADSL-Effekt anzugehen, dass ein voller Upstream-Kanal die Download-Rate kaputt macht, weil die ACK-Pakete nicht mehr richtig durchkommen. Im wesentlichen werden in Senderichtung ACK-Pakete und interaktive Dienste (z.B. ssh) bevorzugt und es wird ein Teil der Bandbreite fuer solche Pakete reserviert. In Download-Richtung wird die Bandbreite halbwegs gerecht auf verschiedene Verbindungen verteilt und insgesamt leicht begrenzt, so dass keine Paketstaus beim Provider entstehen - statd.cfs: neues optionales CFS, enthaelt einen kleinen Daemon, der kompatibel zu nagios-statd auf Port TCP/1040 gewisse Systeminformationen liefert (genauer gesagt kennt er die Kommandos 'uptime' und 'disk') - dsl360t.cfs: neues optionales CFS, das ueber die Telnet-Schnittstelle eines angeschlossenen D-Link DSL360T Modems regelmaessig Statusinformationen abfraegt und Aenderungen ins syslog protokolliert Changes in version 050307: -------------------------- - usr.cfs: Input-Device der dynprechain war falsch, so dass DNS-Forwarding nicht ging - ppp.cfs: pppmd: falsche if-Bed. gefixt die bewirkte, dass plc_override nur kurz wirkte - ppp.cfs: pppmd: im SIGCHLD-Handler zur Sicherheit Abfrage, ob der beendete Kindprozess tatsaechlich der gestartete pppd war - ppp.cfs: pppmd: unnoetige Funktion check_if_pppd_running entfernt - ppp.cfs: pppmd: connection/transfer/limit-Daten wurden nicht wie beabsichtigt alle 5min automatisch gespeichert, sondern nur beim Beenden; eventuelle Vergesslichkeiten an der Ecke koennten hier ihre Ursache haben - ppp.cfs: pppmd: bei Verbindungsende werden auch alle Dateien gespeichert - mconfig.cfs: Bei Volumen-Limit wurden immer 0% Ausnutzung angezeigt, weil mit dem falschen Wert als Basis gerechnet wurde - mconfig.cfs: startstop.sh: mconfig wird explizit mit stdin/out/err nach /dev/null gestartet, um Abhaengigkeiten vom tty zu vermeiden - pknock.cfs: Syntaxfehler im Firewall-Hook-Skript von pknock gefixt Changes in version 050214: -------------------------- - pppoe wird jetzt mit -U option gestartet - mconfig: vergessene Zeilenumbrueche bei den Providerlimits hinzugefuegt - Datei /var/run/plc_override als User-Override fuer den PLC-Schalter: Wenn die Datei existiert und ihr erstes Zeichen '0'..'3' ist, dann ersetzt diese Zahl den Wert des PLC-Schalters fuer pppmd und mconfig. - ntp: neue Option 'NTPConnOnly': Wenn gesetzt, dann wird der ntpd nur gestartet solange eine IP-Verbindung nach aussen steht - Die Skripten firewall, ip-up und ip-down rufen jetzt generelle Hook-Skripten (hook-firewall, hook-ip-up, hook-ip-down) anderer Addons auf (bisher geschah das spezialisiert oder implizit in den system-Skripten). Wird benutzt von ipv6, ntp und pknock. - nach Init. der Subsysteme beim Booten wird die Firewall nochmal komplett neu initialisiert, um auch die Hook-Skripte der Addons mit auszufuehren - neu: port knocking; Durch Senden von Paketen (Inhalt egal) an bestimmte UDP-Ports in einer bestimmten Reihenfolge koennen Aktionen auf der morannon-Firewall in Form von Shellskripten gestartet werden - syslog schreibt nur noch eine Fehlermeldung auf die Konsole, wenn er ein Log an den Remote Log Host nicht absetzen kann, stirbt aber nicht mehr - neues Kommando 'expr' (benoetigt fuer pknock startstop.sh) Changes in version 041225: -------------------------- - lshd kann jetzt mehr als zwei interaktive Verbindungen auf einmal (Buildtime-Problem: hat die Anzahl ptys beim Konfigurieren ermittelt, und das auch noch falsch :) - Unterdruecken der Meldung "lshd: execpetion: connection reset by peer" (hat mich einfach genervt :) - cut&paste-Fehler im ppp.ini-Template: Da stand mehrmals "Provider 2", wo eigentlich "Provider 3" stehen sollte; war aber nur in der Anzeige, die Variablen wurden korrekt verarbeitet - Neuer ntpd, jetzt Version 4.2.0 und deutlich schlanker gemacht, indem die Konfiguration ueber ntpq weggelassen wurde. Ausserdem kann er direkt (ohne hwclock o.ae.) die RTC-Uhr nachstellen. - Neues Kommentar-Feld zu den Providern in mconfig, wird nur angezeigt, nicht ausgewertet - mconfig: wenn in der Verbindungsliste eine Endzeit fehlt (z.B. durch Absturz) wird die naechste Startzeit eingesetzt, die Dauer berechnet und RX/TX-Volumen mangels Daten als 0 angezeigt. Changes in version 20041211: ---------------------------- - Datum wird nur noch auf 1.1.2004 gesetzt, wenn externer Zeitserver NTP ist (weil ntpdate nicht mehr als ca. 20 Jahre springen kann) oder die Firewall ihre IP per DHCP bezieht (weil udhpc Schwierigkeiten mit negativen Zeiten hat) - NTP-Server muessen nun als IP-Adressen angegeben werden, weil sonst ohne internen DNS-Server der Paketfilter nicht richtig fuer sie konfiguriert werden kann - Ein paar Tippfehler in IPv6-Firewall und IPv6-mconfig-Modul gefunden - Ein weiterer Tippfehler in /etc/init.d/firewall, so dass weitergeleitete eingehende IPv4-Verbindungen nicht gingen - Bei IPv4 incoming UDP Forwards zwischen unterschiedlichen Ports fehlte noch ein reverse-SNAT in der Gegenrichtung, um den nach aussen sichtbaren Port wieder anzupassen - Der IPv6-tspc-Client hat sein setup-Skript wegen fehlerhaftem Pfad nicht gefunden; ebenso wollte er nach /tspc.log schreiben und die Ramdisk lief voll - TSPC hat das Syslog gut vollgemuellt, er loggt jetzt nur noch die wichtigeren Sachen - Wenn Freenet6 eingeschaltet, dann Verbindungen zum TSP-Port 3653 freischalten - ip-up/down Skripten legen nun /var/run/ip-is-up an bzw. loeschen es wieder dient anderen Skripten als Anzeige, ob die Verbindung steht - freenet6.sh start nutzt /var/run/ip-is-up, um gleich tspc zu starten, wenn die Verbindung schon steht - uClibc: openlog() erlaubt jetzt auch logfac==LOG_KERN, so dass kernel- Logentries mit korrekter Facility weitergeleitet werden - pppmd: In der Bildschirmanzeige war die Connection-Dauer fuer nicht-aktuelle Verbindungen immer falsch, gefixt - Beim Stoppen von pppmd/pppd erst pppmd killen, damit er den pppd nicht gleich wieder start; sonst ist das CFS busy und der umount geht nicht - mconfig: Default-Seite ist nun die erste Status-Seite, was sinnvoller scheint als die erste Config-Seite - Wenn in mconfig beim Sichern/Restart sowohl /etc/init.d/firewall als auch ip6firewall neu gestartet werden, muss man zweiteres weglassen, weil es eh von ersterem aufgerufen wird - Die Gesamt-RX/TX-Menge einer Verbindung wurde falsch von pppmd an mconfig übergeben (Datentyp ist 64 statt 32 Bit) und daher im Webinterface immer als 0 angezeigt - In der Transfer-Seite des Webinterfaces werden jetzt auch (zuseatzlich) die aktuellen LEDs mit Erklaerung angezeigt - Skalierung der Transferraten-LEDs geaendert: Interval [base,max] muss durch 7 statt 6 geteilt werden, ausserdem nun konstant base==2 statt max/12. - Bei Anzeige des System-Logs im Webinterface werden nun spitze Klammern maskiert, damit sie nicht als HTML interpretiert werden