FB7390 FW - Privoxy sprengt 32KB-Limit

JohnDoe42

Aktives Mitglied
Mitglied seit
17 Mrz 2009
Beiträge
1,466
Punkte für Reaktionen
3
Punkte
38
Hallo zusammen,

möglicherweise ist meine Frage relativ dämlich ... aber ich komme leider selber zu keiner Lösung.
Ich habe mir aus dem aktuellen Trunk das Privoxy-Paket ins Image genommen und auf eine 7390 geflasht. Nun würde ich gerne diesen mittels iptables ( s. wiki) ) gerne als transparenten Proxy einrichten. Wenn ich nun aber, wie im Wiki vorgeschlagen, die Werbefilterliste des Firefox-Plugins hole, sprengen die beiden user.*-Files unter /var/tmp/flash/privoxy und insbesondere die easylist.txt unter /var/tmp/flash doch ein wenig die 32 KB-Grenze, sprich: ein modsave meldet "... to big ..". Nun dachte ich mir, es gibt zwei Lösungsmöglichkeiten: 1. Das Ganze externalisieren oder 2. die genannten drei Dateien in den Speicher der Box, welcher als NAS vorgesehen ist, zu packen (var/media/ftp). Nun meine Frage: Wie müßte ich denn das Script für den Werbefilter anpassen, damit die drei Files unter /var/media/ftp landen ? Sowas hab' ich schon versucht:
Code:
ACTION=/var/media/ftp/user.action
FILTER=/var/media/ftp/user.filter

Doch hierbei landeten die beiden Dateien (auch) wieder unter /var/tmp/flash ..
Grüße,

JD.
 
Zuletzt bearbeitet von einem Moderator:
Wenn du das Skript geädert hast, sollten die Datein von dem Skript auch nur dort erstellt werden.

Dann müsstest du auch noch dafür sorgen, dass der Start des Paktes die "richtigen" Dateien nutzt (halt "/var/media/ftp/xx" "/tmp/flash/privoxy/xx"). Ggf mit einfach mit einem Link im Flash-Ordner auf die "FTP-Datei"??
Vermutlich müsste man dazu noch was im rc-File verändern, weil dort diese Dateien angelegt werden...

Jörg
 
Hallo Jörg,

zunächst mal vielen Dank für Deinen Tip. Wie bekomme ich denn aber nun das "Script" aus dem Wiki dazu, die sehr große easylist.txt nicht unter /var/tmp/flash zu speichern ? Die macht nämlich den mit Abstand größten Teil aus ...
Grüße,

JD.
 
Also eigentlich sollte deine Änderung wie gewünscht funktionieren, ich habe das mal so versucht:
Code:
URL="http://adblockplus.mozdev.org/easylist/easylist.txt"
[B]MYPATH=/tmp/bla/blubb/privoxy
mkdir -p $MYPATH
ACTION=${MYPATH}/user.action
FILTER=${MYPATH}/user.filter[/B]
FILE=$(basename ${URL})
LIST=${FILE%\.*}
wget -qO ${FILE} ${URL}
echo -e "{ +block{${LIST}} }" > ${ACTION}
sed '/^!.*/d;1,1 d;/^@@.*/d;/\$.*/d;/#/d;s/\./\\./g;s/\?/\\?/g;s/\*/.*/g;s/(/\\(/g;s/)/\\)/g;s/\[/\\[/g;s/\]/\\]/g;s/\^/[\/\&:\?=_]/g;s/^||/\./g;s/^|/^/g;s/|$/\$/g;/|/d' ${FILE} >> ${ACTION}
echo "FILTER: ${LIST} Tag filter of ${LIST}" > ${FILTER}
sed '/^#/!d;s/^##//g;s/^#\(.*\)\[.*\]\[.*\]*/s|<([a-zA-Z0-9]+)\\s+.*id=.?\1.*>.*<\/\\1>||g/g;s/^#\(.*\)/s|<([a-zA-Z0-9]+)\\s+.*id=.?\1.*>.*<\/\\1>||g/g;s/^\.\(.*\)/s|<([a-zA-Z0-9]+)\\s+.*class=.?\1.*>.*<\/\\1>||g/g;s/^a\[\(.*\)\]/s|<a.*\1.*>.*<\/a>||g/g;s/^\([a-zA-Z0-9]*\)\.\(.*\)\[.*\]\[.*\]*/s|<\1.*class=.?\2.*>.*<\/\1>||g/g;s/^\([a-zA-Z0-9]*\)#\(.*\):.*[:[^:]]*[^:]*/s|<\1.*id=.?\2.*>.*<\/\1>||g/g;s/^\([a-zA-Z0-9]*\)#\(.*\)/s|<\1.*id=.?\2.*>.*<\/\1>||g/g;s/^\[\([a-zA-Z]*\).=\(.*\)\]/s|\1^=\2>||g/g;s/\^/[\/\&:\?=_]/g;s/\.\([a-zA-Z0-9]\)/\\.\1/g' ${FILE} >> ${FILTER}
echo "{ +filter{${LIST}} }" >> ${ACTION}
echo "*" >> ${ACTION}
echo "{ -block }" >> ${ACTION}
sed '/^@@.*/!d;s/^@@//g;/\$.*/d;/#/d;s/\./\\./g;s/\?/\\?/g;s/\*/.*/g;s/(/\\(/g;s/)/\\)/g;s/\[/\\[/g;s/\]/\\]/g;s/\^/[\/\&:\?=_]/g;s/^||/\./g;s/^|/^/g;s/|$/\$/g;/|/d' ${FILE} >> ${ACTION}
echo "{ -block +handle-as-image }" >> ${ACTION}
sed '/^@@.*/!d;s/^@@//g;/\$.*image.*/!d;s/\$.*image.*//g;/#/d;s/\./\\./g;s/\?/\\?/g;s/\*/.*/g;s/(/\\(/g;s/)/\\)/g;s/\[/\\[/g;s/\]/\\]/g;s/\^/[\/\&:\?=_]/g;s/^||/\./g;s/^|/^/g;s/|$/\$/g;/|/d' ${FILE} >> ${ACTION}
und das legt nur unter "/tmp/bla/blubb/privoxy" die Dateien an...

Hast du die "alten" Dateien (/var/tmp/flash/privoxy/user.*) vorher gelöscht, und nach dem Script waren sie wieder da???


Jörg
 
Hallo Jörg,

vielen Dank für Deinen Tip. Ich hab' nun mal exakt Deine Scriptänderung benutzt (mit MYPATH=$/var/media/ftp), mit dem Effekt, das die user.action und die user.filter auch dort (unter $MYPATH) abgelegt werden .... aber eben auch wieder unter /var/tmp/flash/privoxy. Die easylist.txt (welche das größte Platzproblem erzeugt) wird in dem Verzeichnis abgelegt, aus dem das Script aufgerufen wird, also beim Booten ebenfalls unter /var/tmp/flash. Hier mal meine rc.privoxy:
Code:
#!/bin/sh

DAEMON=privoxy
DAEMON_CONFIG=/mod/etc/$DAEMON/config
. /etc/init.d/modlibrc

config() {
	[ ! -d "/mod/etc/$DAEMON" ] && mkdir -p /mod/etc/$DAEMON
	[ ! -r "/mod/etc/privoxy/default.filter" ] && ln -s /etc/privoxy/default.filter /mod/etc/privoxy/default.filter
	[ ! -r "/mod/etc/privoxy/default.action" ] && ln -s /etc/privoxy/default.action /mod/etc/privoxy/default.action
	[ ! -d "/mod/etc/privoxy/templates" ] && ln -s /etc/privoxy/templates /mod/etc/privoxy/templates
	modlib_config
}

start() {
	modlib_startdaemon $DAEMON --pidfile /var/run/$DAEMON.pid /mod/etc/privoxy/config
}

stop() {
	kill -9 "$(cat /var/run/$DAEMON.pid)" > /dev/null 2>&1
	rm -rf /mod/etc/$DAEMON/config
}

case $1 in
	""|load)
		mkdir -p /tmp/flash/privoxy
		[ -r /tmp/flash/user.filter ] && mv /tmp/flash/user.filter /var/media/ftp/user.filter
		[ -r /tmp/flash/user.action ] && mv /tmp/flash/user.action /var/media/ftp/user.action

		[ -r "/tmp/flash/privoxy/user.filter" ] || cp -f /etc/privoxy/user.filter /var/media/ftp/user.filter
		[ -r "/tmp/flash/privoxy/user.action" ] || cp -f /etc/privoxy/user.action /var/media/ftp/user.action

		modreg file privoxy user_filter 'user.filter' 0 "filter"
		modreg file privoxy user_action 'user.actions' 0 "action"
		modreg cgi 'privoxy' 'Privoxy'
		modreg daemon $DAEMON

		modlib_start $PRIVOXY_ENABLED
		;;
	unload)
		modunreg daemon $DAEMON
		modunreg cgi privoxy
		modunreg file privoxy
		modlib_stop
		;;
	start)
		modlib_start
		;;
	stop)
		modlib_stop
		;;
	restart)
		modlib_restart
		;;
	status)
		modlib_status
		;;
	*)
		echo "Usage: $0 [load|unload|start|stop|restart|status]" 1>&2
		exit 1
		;;
esac

exit 0
Btw: Ich hab' mir diese rc.privoxy im Freetz-Linux unter /packages/mips ..../privoxy/... mittels vi erstellt und anschließend per Flash auf die Box gebracht, da die rc.privoxy auf der Box readonly ist ... gibt es da einen einfacheren Weg ?
Grüße,

JD.
 
Ich sehe nicht, wie das Skript Dateien in /tmp/flash anlegen sollte, der Pfad kommt da garnicht drin vor...?!?

Mach doch mal bitte folgendes:
Code:
rm -f /tmp/flash/privoxy/user.filter /tmp/flash/privoxy/user.action
ls /tmp/flash/privoxy/user.*
sh <dein_Skript>
ls /tmp/flash/privoxy/user.*
EDIT: Privoxy aber zuvor stoppen, falls er die nutzt ;-)

Wenn die Dateien dann vorher weg und danach da sind, ruf das mal mit "sh -x <Skript>" auf...

Ansonsten:
- Am Ende des Scriptes ein "rm ${FILE}" löscht die easylist.txt wieder, das sollte nicht das Problem sein ;-)
- Wenn du unterhalb von "make/privoxy/files/root" Dateien veränderst, kannst du sie für die Zukunft und jeden neuen make-Durchlauf "fest" verändern

Jörg
 
Zuletzt bearbeitet:
Hallo Jörg,

besten Dank für den schnellen Support !! :)
Tatsächlich legt das Starten des Dienstes jetzt nur noch die beiden user.*-Files in meinem Ordner an (also außerhalb von /tmp/flash). Und mittels Deines Tips konnte ich auch die dicke easylist.txt wieder loswerden! Leider hilft mir das nach Durchsicht der user.actions und der user.filter im Freetz-WebIF nur bedingt weiter: Die Listen tauchen dort nämlich nicht auf. Demzufolge geh' ich davon aus, daß Privoxy auch nicht auf diese checkt. Was hab' ich denn jetzt noch falsch gemacht ?
Grüße,

JD.
 
Ich habe mal versucht, das in das Paket einzubauen. Vorgehen:

Laden in den Freetz-Ordner, auspacken und anwenden, eine Datei ausführbar machen:
Code:
gzip -d  privoxy.patch.gz 
patch -p0 <  privoxy.patch
chmod +x  make/privoxy/files/root/etc/default.privoxy/privoxy_loadeasylist

Danach sollte ein zusätzlicher Punkt im Webif sein, über den man entweder direkt die Dateien Laden kann, und auch beim Starten...
privoxy.png
Feedback wäre nett ;-)

Jörg
 

Anhänge

  • privoxy.patch.gz
    2.8 KB · Aufrufe: 12
Zuletzt bearbeitet:
Hallo Jörg,

unglaubliche Leistung, allerbesten Dank !! :)
Allerdings steh' ich direkt am Anfang schon wieder auf dem Schlauch .. an welcher stelle soll ich den Ordner auspacken ? Direkt am Konsolen-Prompt (also /var/mod/root) .. ? Ich benutze doch das Freetz-Linux unter VMWare ...
Beste Grüße und großen Dank,

JD.
 
Jörg hat doch genau beschrieben was du machen sollst!? Die Anleitung bezieht sich nicht auf die Box, sondern auf den Freetz-Linux.

Gruß
Oliver
 
'tschuldigung, hab' 's schon ....
Ich lad' gerade das Image auf die Box und melde mich dann ...
Grüße,

JD.
 
[Edit frank_m24: Mehrere Beiträge zusammengefasst. Man kann seine Beiträge auch editieren.]

Okay, der Punkt im WebIF ist schonmal vorhanden ...
Wo sollen den nun die user.action und die user.filter gelandet sein ... ? Irgendwo im für den NAS-Speicher der Box vorgesehenen Bereich ?
Im WebIF unter Privoxy/user.actions bzw. user.filter tauchen sie leider noch nicht auf ...
Sollte ich die Box nochmal rebooten ?
Grüße,

JD.

EDIT: Nochmal 'tschuldigung, natürlich sollten die Files in dem von mir eingestellten Pfad landen .... mea culpa. Aber dort befinden sich auch nur die defaults ...

[Beitrag 2:]
Okay, stoppen des Dienstes Privoxy und nochmaliges Betätigen des Dateien-Holen-Buttons haben schon mal die aktuellen Listen in meinem Pfad gespeichert .... allerdings tauchen diese Listen (bzw. deren Einträge) immer noch nicht im WebIF->Privoxy->user.actions bzw. user.filter auf ... sind diese dann trotzdem eingebunden ?
Grüße und nochmal Dank für Deine Arbeit,

JD.
 
Das ist nur eine "Schnelle Lösung", die Dateien sind, wenn ein ein alternativer Pfad angegeben wird, nur dort abgelegt. Editieren müsste man diese Datei dann bei Bedarf "von Hand", denn die im Webif angegebenen Dateien beziehen sich weiterhin nur auf die üblichen "Flash-Dateien" (/var/tmp/flash/privoxy/...).

Die erzeugte Konfig sollte allerdings auch die "richtigen" Dateien vom alternativen Pfad nutzen (/mod/etc/privoxy.conf).

Jörg

EDIT: Neue Version, jetzt sollten die Links auf die "eigenen" Dateien umgebogen werden...
Noch ein Hinweis: Bitte editiere deine Beiträge, wenn dir nach kurzer Zeit was Neues einfällt, so viele Beiträge direkt hintereinander sieht man hier im Forum nicht so gern...
 

Anhänge

  • privoxy.patch_2.gz
    2.9 KB · Aufrufe: 8
Zuletzt bearbeitet:
Hallo Jörg,

EDIT: Neue Version, jetzt sollten die Links auf die "eigenen" Dateien umgebogen werden...
nachdem ich meine verbogene rc.privoxy nochmal ausgecheckt hatte und das "patch -p0 < privoxy.patch" ein klein wenig aufgrund des vorangegangenen Patches gebockt hat muß ich sagen ...

ABSOLUT PERFEKT, CHAPEAU !!! Alles läuft exakt so, wie es soll. Große Anerkennung und Dank !!! Eventuell könnte man den Patch ja direkt ins SVN einbauen ... ich könnte mir vorstellen, daß der eine oder andere User, so er denn nach dem Wiki vorgeht, früher oder später vor dem gleichen Problem wie ich aänfänglich steht.
Noch ein Hinweis: Bitte editiere deine Beiträge, wenn dir nach kurzer Zeit was Neues einfällt, so viele Beiträge direkt hintereinander sieht man hier im Forum nicht so gern...
'tschuldigung, ist mir so 'rausgerutscht, da so nach und nach Neuerungen auftraten und ich Dich/Euch zeitnah teilhaben lassen wollte ... wird nicht wieder vorkommen .. ;-)
Grüße und angenehmes Wochenende,

JD.
 
Hall Jörg,

ein Problemchen mit Privoxy hat sich nun doch noch aufgetan: Da ich diesen ja in der Kombination mit Iptables als transparenten Proxy laufen lassen wollte, hab ich nach einigem SuFu im Forum in der /var/mot/etc/privoxy/config die Zeile
Code:
accept-intercepted-requests 1
hinzufügen wollen. Leider schlägt dies insofern fehl, als das die Zeile "flüchtig" ist, sprich: Nach einem Neustart von Privoxy ist sie wieder weg. Auch ein "modsave" bzw. "modsave all" ändert daran leider nichts. Könnte dies mit Deinem Patch zusammenhängen ... ? Obwohl die config (zumindest im vi) nicht als readonly erscheint ...
Grüße,

JD.
 
Hat nichts mit dem Patch zu tun, sondern ist hier (und bei anderen Paketen) eigentlich immer so: Die Config wird bei jedem Start neu generiert. Wenn du dort direkt in die Config was "hinzufügst", wird es beim nächsten Start überschrieben.

Allerdings sollten alle Dinge, die in der Datei "/tmp/flash/privoxy.extra" stehen ans Ende der Config angehängt werden...

Jörg
 
Hey,

besten Dank, das klappt ! Und nochmal Danke für Deinen Einsatz mit dem Patch.
Ich werde dann jetzt mal mit den Möglichkeiten von Privoxy ein wenig herumspielen .... ;-)
Grüße,

JD.
 
@Jörg
JohnDoe42 hätte den Patch gerne im Trunk. Ich hab ihn mir kurz angesehen, mag das so aber nicht einchecken. Könnte man diese "mount -o bind" Lösung nicht durch Symlinks ersetzen?

Gruß
Oliver
 
Ja, sollte gehen. Ich habe mal versucht, das so umzustellen:
- In den ".def" Dateien Verweis auf "/tmp/flash/privoxy/<xy>.link"
- Im rc-File je nachdem ob "PRIVOXY_ALT_PATH" gesetzt ist oder nicht einen Link ins Flash oder auf diesen Pfad
- Neue privoxy.save Datei, die den Link ggf. entsprechend "umbiegt"

Wichtig ist, dass für das Holen um Umwandeln der Daten die Datei "/etc/default.privoxy/privoxy_loadeasylist" ausführbar ist

Jörg
 

Anhänge

  • privoxy_20110514.patch.txt
    11.3 KB · Aufrufe: 3
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.