[Howto] Squid auf dem NAS

  • Hallöle,


    getestet ist das folgende bisher nur auf einer TS-639, also nagelt mich nicht fest, wenn es bei Euch nicht funktioniert:


    [NAS Typ:] TS-639
    [Firmware:] Aktuelle Firmwareversion: 2.1.5 Build 0408T
    [Getestet:] ja
    [Sonstige Modifikationen:] siehe text


    Zunächst solltet Ihr Euch mit QPKG beschäftigen & es installiert haben...
    am Prompt gebt Ihr dann

    Code
    ipkg install squid

    ein.
    Bevor Ihr nun weitermacht, legt über die Weboberfläche noch einen Nutzer nobody in der Gruppe everyone an!

    Wenn das Paket erfolgreich installiert wurde, wechselt Ihr in das Verzeichnis

    Code
    /opt/etc/squid/

    und editiert dort die
    squid.conf:


    1. Hostname

    Code
    #  TAG: visible_hostname#	If you want to present a special hostname in error messages, etc,#	define this.  Otherwise, the return value of gethostname()#	will be used. If you have multiple caches in a cluster and#	get errors about IP-forwarding you must set them to have individual#	names with this setting.##Default:# nonevisible_hostname Qnap


    Setzt hier für "Qnap" den Namen für Euer NAS ein!


    2. Netzwerkzugriff:
    Sucht die nachfolgenden Zeilen

    Code
    # Example rule allowing access from your local networks. Adapt# to list your (internal) IP networks from where browsing should# be allowed#acl our_networks src 192.168.1.0/24 192.168.2.0/24#http_access allow our_networks


    und ändert die letzten beiden Zeilen in

    Code
    acl our_networks src 192.168.1.0/24http_access allow our_networks


    Bzw. Euren IP-Bereich!


    3. Verzeichnisse verbiegen (optional)
    Wenn Ihr die Cache und Log-Verzeichnisse noch auf Euer Raid oder eine externe Platte verschieben wollt, müsst Ihr die folgenden Pfade anpassen:
    cache_dir
    access_log
    cache_log
    cache_store_log

    Danach ändert Ihr den Eigentümer der Cache- & Logverzeichnisse noch von Hand in nobody.everyone (nehmen wir an Ihr hättet die genannten Verzeichnisse nach /share/MD0_DATA/squid verbogen, so lautet der entsprechende Aufruf hierzu

    Code
    chown -R nobody.everyone /share/MD0_DATA/squid


    Wenn Ihr das "cache_dir" verschiebt müsst Ihr den Squid einmal mit der Option -z aufrufen also

    Code
    squid -z

    mit diesem Aufruf werden die Cache-Verzeichnisse angelegt.


    Anschließend den Proxy mittels

    Code
    /opt/etc/init.d/S80squid restart

    oder

    Code
    /opt/etc/init.d/S80squid start

    starten!
    Viola, Euer Proxy läuft! neustarten und alles sollte funktionieren!


    Grüße
    Jody


    PS.: Geplant ist noch einen Jugendschutzfilter einzubauen, aber dazu brauche ich noch etwas....
    in der Anlage ist eine gestrippte squid.conf die alle notwendigen Änderungen enthält und die getestet wurde...
    (Achtung, es müssen von Euch noch Änderungen an der Datei vorgenommen und der Suffix ".conf" angehängt werden!)

    5 Mal editiert, zuletzt von Eraser-EMC2- () aus folgendem Grund: Anhängen der squid.conf, Reihenfolge für Berechtigung setzen und squid -z korrigiert

  • Auf 'nen Squid auf 'nen NAS. Habe ich nur noch gewartet.. *SPAß* Finde das aber total lustig. :D

  • Was ist denn daran lustig?
    Ich finde die Möglichkeit beeindruckend und sicherlich wird der ein oder andere auch Interesse daran haben...


    Grüße
    Jody

  • Naja, das solltest Du schon nicht so ernst nehmen. ;) Sicherlich immer informativ, jedoch ruft der Squid ja schon ein wenig nach "hard" customizeing. ;)

  • Funzzt auch ohne Problems auf 639er mit Version 3.1.1 build 0815T :)
    btw: habe auch die verzeichnisse aufs raid verlegt..


    jody
    Vielen Dank für den Tipp !

  • Nabend, also ich habs mal ausgetestet und ich muss sagen, es lööfft ! ! ! !



    Auf meiner


    TS 509 Pro Version 3.1.0 build 0627T


    schnurrt der Squid schonmal wunderbar....
    Hab mich mal ein bisschen in die .conf eingelesen und auch schon ein paar seiten gegooglet/gewikidingsbumsd und festgestellt, dass man sich ja mal richtig austoben kann beim einstellen.
    Bin grad am Authentifikation einstellen angelangt, mal schauen, wie weit ich komm... ;)




    greetz Andy

  • Hallöle,


    wenn Du Fortschritte erzielst, dann sind wir hier für alle möglichen Lösungen zu haben!
    Ich hatte leider noch keine großartige Gelegenheot meinen Plan weiter durchzuziehen.


    Grüße
    Jody

  • sodale, bin wieder da und schon muss ich euch mit nem Problem belästigen.....


    Sorry dass ich den Anleitungsthread so "zumülle"...


    Möchte die Authentifizierung aktivieren, d.h. über den Proxy darf nur der ins Internet, der Benutzer und Passwort hat.
    Benutzer und Passwörter werden vom NAS verwendet (die eingerichteten Benutzer vom NAS)


    Die Abfrage funktioniert schon, aber wenn ich nun alles Eingebe passiert nichts bzw. kommt wieder das leere Eingabefenster und beim Abbrechen kommt folgendes im Firefox...

    Code
    ERRORCache Access DeniedWhile trying to retrieve the URL: http://www.google.de/The following error was encountered:    * Cache Access Denied. Sorry, you are not currently allowed to request:    http://www.google.de/  blablabla usw......


    hier meine geänderten/neu eingestellten Werte für die Authentifikation in der squid.conf (hab die Kommentare und Defaultwerte weggelassen)


    Würde wohl sagen, dass es an den Ordnern zur Passwort und Benutzerabfrage (/opt/libexec/ncsa_auth) oder an der "passwd" (/etc/passwd) liegt...
    Geht das überhaupt mit den NAS Benutzern? Sind das wirklich die Standardordner der NAS Benutzerverwaltung?
    Die Passwd ist zumindest mal mit meinen ganzen Benutzern voll....


    Fehlen vielleicht noch Einstellungen/Einträge? Was mach ich Falsch? Hat einer Lösungsvorschläge?


    Gibt es bei der Benutzerabfrage irgend einen Eintrag für max. Loginversuche? z.B. 5x Passwort falsch, dann Error?!
    Bin für alle Beiträge offen....


    greetz Andy

  • Hallöle,
    da bei der Anleitung die gestrippte Conf-Datei abhanden gekommen ist und einige Änderungen im Text erforderlich sind,
    hier in fett die Änderungen und als Anhang die "Minimal-Conf" als txt.-Datei:


    Zitat

    Bevor Ihr nun weitermacht, legt über die Weboberfläche noch einen Nutzer nobody in der Gruppe everyone an!


    Da der Nutzer "nobody" in der Gruppe "everyone" ist, sollte er standardmäßig keine Zugriffsrechte von außen haben, hier wird er nur benötigt damit der Dienst auf das Cache-Verzeichnis zugreifen bzw. schreiben kann.
    (Achtung, nicht verifiziert:"Es sollte auch funktionieren, wenn ihr dem Nutzer ein kryptisches Passwort gebt, da dies nur zum Anmelden auf dem NAS erforderlich ist" wäre dankbar wenn das mal jemand testen könnte.)



    Wenn Ihr das "cache_dir" verschiebt und/oder wenn der Dienst das erste Mal gestartet wird(!), müsst Ihr den Squid einmal mit der Option -z aufrufen also

    Code
    squid -z

    mit diesem Aufruf werden die Cache-Verzeichnisse angelegt.


    Anschließend müsste Ihr den Eigentümer der Cache- & Logverzeichnisse noch von Hand in nobody.everyone ändern! (nehmen wir an Ihr hättet die genannten Verzeichnisse nach /share/MD0_DATA/squid verbogen, so lautet der entsprechende Aufruf hierzu

    Code
    chown -R nobody.everyone /share/MD0_DATA/squid


    (Achtung, es müssen von Euch noch Änderungen an der Datei vorgenommen und der Suffix ".conf" angehängt werden!)
    Grüße
    Jody


    Commander, schaue mir das morgen nochmal an...

  • Mahlzeit, nach langem hin und her hab ich nun endlich die Benutzerauthentifizierung zum rennen gebracht, zwar nicht so, wie ich wollte, aber es geht.


    Wie in meinem vorherigen Post beschrieben funktioniert die Abfrage mit der QNAP "eigenen Benutzerdatenbank" nicht, zumindest hab ich es als Linux-Noob nicht geschafft....


    Soll heißen, dass ich die Passwortdatei aus

    Code
    /etc/passwd

    nicht zum laufen gebracht hab.
    Wird aber wohl mit dem Format der QNAP passwd und der Abfrage über NCSA zu tun haben (für Tipps oder Lösungen bin ich sehr Dankbar)...
    Nun weiter im Text, ich habs ja trotzdem zum laufen gebracht.


    Also hab ich einfach eine passwd im Ordner

    Code
    /opt/etc/squid/


    erstellt, mit dem Format

    Code
    username:password


    (password=verschlüsselt -> .htpassword Generator)


    Benutzer und Passwörter in die passwd einfügen, abspeichern und


    nun in der squid.conf


    Code
    /opt/etc/squid/squid.conf


    folgende Einträge hinzufügen:



    Nun alles abspeichern, Squid neu starten und es lööft....



    Getestet auf

    [NAS-Typ] TS-509Pro
    [Firmware] 3.1.0 build 0627T


    Viel Spaß beim testen...


    greetz und gn8 Andy

  • Bei mir läuft der squid nun auch, danke an Commander für den hilfreichen Tip mit der separaten pwd Datei.


    Vielleicht hat noch jemand einen guten Tip um die QNAP pwd zu nutzen...


    Noch ein kleiner Hinweis:
    Bei Usernamen mit Großbuchstaben unbedingt folgendes einstellen:

    Code
    auth_param basic casesensitive on


    Mir hat folgende Zeile in der squid.conf geholfen den Auth Fehler zu finden:

    Code
    debug_options ALL,1 33,9 28,9


    Debugging für den Normalbetrieb immer abschalten, meine Cache.log (dort stehen die Debug Messages) ist nach 10 Versuchen auf knapp 1 MByte angewachsen.


    Funktioniert auf:
    [NAS-Typ] TS-239Pro
    [Firmware] 3.1.1 build 0815T


    Grüße
    Peter

  • Hallo Andy,


    auch wenn dieser Thread schon etwas eingestaubt ist...


    Zitat von "Commander²³"

    ...
    Soll heißen, dass ich die Passwortdatei aus

    Code
    /etc/passwd

    nicht zum laufen gebracht hab.
    Wird aber wohl mit dem Format der QNAP passwd und der Abfrage über NCSA zu tun haben (für Tipps oder Lösungen bin ich sehr Dankbar)...


    Wenn du statt der /etc/passwd einfach /etc/shadow wählst, sollte es funktionieren.
    Zumindest funktioniert es bei mir mit den Nutzern aus der Admingruppe, den rest muss ich noch testen!


    Grüße
    Jody


    EDIT: Solange die Nutzer in einer existierenden Gruppe sind, bekommen sie dann auch Zugriff, also funzt :thumb:

  • Hallo Leute,


    ich bin hier grad am Verzweifeln. Habe analog zur Anleitung begonnen Squid auf nem TS-119 einzurichten. Leider hängts bei mir an dem Punkt wo man "squid -z" eingibt. Danach kommt unter anderem die Meldung

    Code
    FATAL: Failed to make swap directory /opt/var/squid/cache/00: (13) Permission denied


    ich habe den User "nobody" angelegt. Allerdings hab ich null Plan ob ein bestimmtes Passwort zu verwenden ist. Da nix in der Anleitung davon stand und ich auch nicht finden konnte habe ich es leer gelassen. Kann er jetzt das Verzeichnis nicht anlegen weil der User "nobody" doch ein bestimmtes Passwort haben muss (wenn ja wie muss das lauten) oder überseh ich jetzt was anderes? Achja, ich denke ich muss nicht erwähnen, dass ich totaler Linux-Noob bin...


    Vielen Dank für die hoffentlich bald nahende Hilfe!

  • Hallo Grabo,


    du müßtest den besitzer des Ordners /opt/var/squid/cache auf nobody übertragen:


    Code
    chown -R nobody:everyone  /opt/var/squid/cache


    Danach sollte es funktionieren.


    Stefan

  • Kurze Rückmeldung: Das hat schonmal funktioniert! Danke für die schnelle Antwort.


    Gleich noch ne Frage, kann ich die conf-Datei irgendwie comfortabler bearbeiten als mit vi? (zB per FTP auf mein geliebtes Windows-System ziehen und in Ruhe zurechtzimmern und danach zurück?)

  • Ähh....... Sorry, dass der Thread schon etwas älter ist, aber... Muss einfach sein. :P
    Ich hab's jetzt soweit installiert und die Config angepasst. Wenn ich Squid jetzt starte, erhalte ich:
    Starting Proxy Server:done.
    done.


    Wenn ich jetzt Restart eingebe, erhalte ich aber:
    Restarting proxy server: squid: ERROR: No running copy.
    Done.


    So kann ich auch nicht auf den Proxy connecten..... Hat jemand ne Idee, was ich falsch mache? ( Habe ein Qnap TS-110 mit Beta-Firmware 3.3.0 )
    Danke!


    Viele Grüße
    Don

  • Hallo DonBambus,


    mit

    Code
    ps | grep squid


    kannst du überprüfen, ob der Squid auch wirklich weiterläuft.


    Wie sieht deine effektive (ohne Kommentare) Config-Datei aus ?


    Stefan

  • Im Endeffekt sieht die Conf Datei so aus:

    Code
    acl all src 0.0.0.0/0.0.0.0acl manager proto cache_objectacl localhost src 127.0.0.1/255.255.255.255acl to_localhost dst 127.0.0.0/8acl SSL_ports port 443acl Safe_ports port 80		# httpacl Safe_ports port 21		# ftpacl Safe_ports port 443		# httpsacl Safe_ports port 70		# gopheracl Safe_ports port 210		# waisacl Safe_ports port 1025-65535	# unregistered portsacl Safe_ports port 280		# http-mgmtacl Safe_ports port 488		# gss-httpacl Safe_ports port 591		# filemakeracl Safe_ports port 777		# multiling httpacl CONNECT method CONNECThttp_access allow manager localhosthttp_access deny managerhttp_access deny !Safe_portshttp_access deny CONNECT !SSL_portsacl our_networks src 192.168.178.0/24http_access allow our_networkshttp_access deny allhttp_port 3128acl QUERY urlpath_regex cgi-bin \?cache deny QUERYrefresh_pattern ^ftp:		1440	20%	10080refresh_pattern ^gopher:	1440	0%	1440refresh_pattern .		0	20%	4320


    Und.... das finde ich jetzt am Merkwürdigsten:


    Also Squid läuft, aber es läuft nicht... oO