Squid - der andere Proxy

Hier kann man seine Projekte Vorstellen.
Benutzeravatar
Mic-berlin
Site Admin
Beiträge: 48
Registriert: Samstag 28. Oktober 2017, 11:54
Barvermögen: Gesperrt
Bank: Gesperrt
Germany

Beiträge

Online

Squid - der andere Proxy

Jan 2018 15 22:49

Beitrag von Mic-berlin » Montag 15. Januar 2018, 22:49

Hallo
Heute versuche ich euch mal ein Proxy zu erklären..
Da mir das Persönlich immer auf den Keks geht, daß meine Daten von jeden Ausgeschnüffelt werden und einige Firmen damit viel Geld verdienen und ich nichts abbekomme, schieben wir mit dem Proxyserver mal ein Riegel davor.
Was brauchen wir dazu.
Entweder, man hat ein NAS Zuhause, egal welche Firma oder wie ich, ein DELL Server oder ein NAS Server.
Ich nehme dazu den NAS Server, den ich hier mal in einen anderen Beitrag vorgestellt habe.
Was brauchen wir zuerst.
Wichtig ist, ich benutze UBUNTU Server Betriebssystem, also kein Windows.
Als erstes Checken wir auf dem Rechner, wo wir das alles Installieren, ob auch alles auf dem neusten Stand ist.

Code: Alles auswählen

 apt -y update && apt -y upgrade 
So, danach installieren wir das SQUID System

Code: Alles auswählen

apt -y install squid3
So, jetzt wird alles installiert und danach kommen einige Feinheiten.
Da es ja SQUID3 heisst, muss nicht alles in SQUID3 an Verzeichnissen sein.
Also, alle Dateien mal kontrollieren, ob irgendwo squid3 steht und diese in squidändern.
Im Verzeichniss etc sollte ein Verzeichniss squid sein, ansonsten bitte so um ändern. Diese Verzeichniss ist nachher unser Arbeitsverzeichniss.
So, jetzt bearbeiten wir mal die Datei squid.conf im Verzeichniss etc.
Entweder, ihr Wisst was ihr tut mit den Einstellungen, oder ihr passt meine squid.conf zu euren Bedingungen an. Hier mal meine squid.conf.

Code: Alles auswählen

acl localnet src 192.168.2.0/24	# RFC1918 possible internal network
acl SSL_ports port 443
acl Safe_ports port 80		# http
acl Safe_ports port 21		# ftp
acl Safe_ports port 443		# https
acl Safe_ports port 70		# gopher
acl Safe_ports port 210		# wais
acl Safe_ports port 1025-65535	# unregistered ports
acl Safe_ports port 280		# http-mgmt
acl Safe_ports port 488		# gss-http
acl Safe_ports port 591		# filemaker
acl Safe_ports port 777		# multiling http
acl CONNECT method CONNECT
acl blacklist dstdomain "/etc/squid/blacklist"
acl youtube dstdomain youtube.com cache allow youtube

http_access deny blacklist
http_access allow localhost manager
http_access allow localnet
http_access allow localhost
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access deny manager
http_access deny all
http_port 3128

via off
client_netmask 255.255.255.255
forwarded_for off
cache_mem 512 MB
maximum_object_size_in_memory 0 KB
memory_replacement_policy heap GDSF
cache_replacement_policy heap LFUDA
maximum_object_size 4 GB
#cache_dir ufs /var/spool/squid 45000 16 256 max-size=1048576000
cache_dir ufs /hdd-rack/rack1/spool/squid 45000 16 256 max-size=1048576000
cache_dir ufs /hdd-rack/rack2/spool/squid 45000 16 256 max-size=1048567000
cache_swap_high 50
logformat squid %ts.%03tu %6tr %>a %Ss/%03>Hs %<st %rm %ru %[un %Sh/%<a %mt
logformat combined %>a %[ui %[un [%tl] "%rm %ru HTTP/%rv" %>Hs %<st "%{Referer}>h" "%{User-Agent}>h" %Ss:%Sh
logformat useragent %>a [%tl] "%{User-Agent}>h"
access_log /var/log/squid/access.log squid
access_log /var/log/squid/useragent.log useragent
access_log /var/log/squid/useragentkombi.log combined
logfile_daemon /usr/lib/squid/log_file_daemon
cache_store_log stdio:/var/log/squid/store.log
cache_store_log daemon:/var/log/squid/store.log
netdb_filename stdio:/var/log/squid/netdb.state
cache_log /var/log/squid/cache.log
coredump_dir /var/spool/squid
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern -i  (/cgi-bin/|\?) 0 0% 0
refresh_pattern (Release|Packages(.gz)*)$ 0 20% 2880
refresh_pattern -i  \.(js|lua|gif|png|jpg|jpeg|ico)$ 10080 90% 999999 ignore-no-cache override-expire ignore-private
refresh_pattern -i  \.(iso|avi|wav|mkv|mp3|mp4|mpeg|swf|flv|x-flv)$ 10080 90% 999999 ignore-no-cache override-expire ignore-private
refresh_pattern -i  \.(apk|deb|rpm|exe|zip|tar|tgz|ram|rar|bin|ppt|doc|tiff)$ 10080 90% 999999 ignore-no-cache override-expire ignore-private
refresh_pattern -i  \.index.(html|htm)$ 0 40% 10080
refresh_pattern -i  \.(html|htm|css|js)$ 1440 40% 40320
refresh_pattern -i  youtube.com/.* 10080 90% 999999 ignore-no-cache override-expire ignore-private
refresh_pattern . 0 0% 4320
error_directory /usr/share/squid/errors/German
error_default_language de
Dann schauen wir mal, was daß alles bedeutet.

Code: Alles auswählen

acl localnet src 192.168.2.0/24	# RFC1918 possible internal network
acl SSL_ports port 443
acl Safe_ports port 80		# http
acl Safe_ports port 21		# ftp
acl Safe_ports port 443		# https
acl Safe_ports port 70		# gopher
acl Safe_ports port 210		# wais
acl Safe_ports port 1025-65535	# unregistered ports
acl Safe_ports port 280		# http-mgmt
acl Safe_ports port 488		# gss-http
acl Safe_ports port 591		# filemaker
acl Safe_ports port 777		# multiling http
acl CONNECT method CONNECT
Als erstes bestimmen wir das Netzwerk. Bei mir ist das 192.168.2.0/24 . Liegt an euch, wie es bei euch heisst. Der ProxyServer soll auf das ganze Netzwerk lauschen, daher auch die Endung 0/24.
Der Rest bleibt wie es ist.

Jetzt kommt der Teil mit der Blackliste, den wir wollen ja die Seiten filtern, die unsere Daten klauen oder Werbungen an uns aufdrängen wollen.

Code: Alles auswählen

acl blacklist dstdomain "/etc/squid/blacklist"
Hier mit binden wir eine Textdatei Namens blacklist ein, wo nachher die Domais drin stehen. Kommt etwas später die Erklärung.

Code: Alles auswählen

http_access deny blacklist
Alles was in der Blacklist steht, wird kein Zugriff gegeben. Deny = Verboten. Allow = Erlauben

Wichtig ist der Punkt noch

Code: Alles auswählen

http_access deny all
Der sagt aus, wenn alle Funktionen abgearbeiten wurden, dann lasse keinen mehr rein oder raus. Das soll Sicherheit geben. Ansosten kann man machen was man möchte und wir brauchen keine Filter hier einsetzen.
Der Port aus den das ganze Funktioniert, ist schon Wichtig. Das sieht dann so aus.

Code: Alles auswählen

http_port 3128
Die Adresse kann man ändern, aber !!! Bitte keine benutzen, die oben schon stehen, sonst Kollidiert das System.
Wer schonmal mit Netzwerkeinstellungen probiert hat, der wird folgendes als Unlogisch sehen, aber bei SQUID ist das anders.

Code: Alles auswählen

client_netmask 255.255.255.255
Die letzte Zahl ist das was jetzt Unlogisch Erscheint. Steht da eine 0 (Null), dann sieht man in der Liste (Access.log in /var/log/squid) nicht 192.168.2.5 sondern 192.168.2.0. Die letzten Zahlen werden einfach nur eine 0 (Null) aus Datenschutz Gründen. Bei einem privaten Netzwerk ist das Uninteressant.

Code: Alles auswählen

via off
heisst nur, Squid sendet im Browser Header nicht seine Kennung mit.
Genauso wie

Code: Alles auswählen

forwarded_for off
da wird im Header deine IP Adresse des privaten Netzwerkes nicht mit gesendet.

Code: Alles auswählen

cache_mem 512 MB
gibt die Größe des Speicher an, die Squid benutzen kann. Da ich eine große Spool benutze, habe ich hier ein großen Speicher gegeben. Meine Spool Dateien sind jeweils 10 GB groß, daher gehe ich auf Nummer Sicher, das Squid genug hat.

Code: Alles auswählen

maximum_object_size_in_memory 0 KB
memory_replacement_policy heap GDSF
cache_replacement_policy heap LFUDA
maximum_object_size 4 GB
Die erste Zeile sagt aus, es wird die kleinste Datei zwischen gespeichert. Kann man so machen, aber man kann auch schreiben, ab 10 kb. Jeden überlassen.
Die zweite und dritteZeile sagen nur aus, was passiert wie was zuerst gelöscht wird, entweder im RAM Speicher oder in den Spool Verzeichnisse.
Die vierte Zeile ist das Gegenstück von der ersten Zeile. Hier wird festgelegt, wie groß eine Datei sein darf. OK, bei mir ist das heftig, aber bedenkt, wenn ihr Windows 10 Rechner am laufen habt und ihr wollt die alle mal Updaten, dann muss nicht jeder Rechner alle Dateien aus dem Internet holen, den sie sind ja dann schon da und das ganze geht dann doch recht Fix.

Code: Alles auswählen

cache_dir ufs /hdd-rack/rack1/spool/squid 45000 16 256 max-size=1048576000
cache_dir ufs /hdd-rack/rack2/spool/squid 45000 16 256 max-size=1048567000
Hier seht ihr die Spool Eintragungen. Bitte so Eintragen mit den Werten max-size= am Ende, den es gibt da noch ein Bug, der euch sonst die Spools nicht richtig Aufbaut. Damit hatte ich auch ein Problem am Anfang gehabt. Die Werte könnt ihr euch selbst machen.

Code: Alles auswählen

access_log /var/log/squid/access.log squid
Wie ich das am Anfang schon schrieb, in der Orginalen Conf steht da squid3 drin, bitte in squid ändern. Sonst geht das nicht. Wie gesagt, auch in /var/log nach schauen, ob da ein Verzeichniss squid steht.

Code: Alles auswählen

error_directory /usr/share/squid/errors/German
error_default_language de
Das sagt nur, daß alle Fehlermeldungen in Deutsch ausgegeben werden.
Der Rest der Conf Datei ist selbstredend.
Ich möchte ja nur in groben, aber ausführlichen Erklären, wie das Funktioniert.
Für weitere Erläuterungen, ist das Ubuntu Wiki da.

Weiter geht es mit der Blacklist. Meine sieht so aus. Ist schon recht lang. Einfach rauskopieren und in einer normalen Textdatei mit dem Namen blacklist kopieren.

Code: Alles auswählen

69.50.221.190
174.129.0.0/16
.yieldlab.net
.yandex.ru
.xxx
.xps-uimserver.net
.xiti.com
.xfyubqmldwvuyar.yt
.whatsbroadcast.com
.webtrekk.net
.wbcsrv.com
.watson.microsoft.com
.watson.live.com
.vortex.data.microsoft.com
.vortex-win.data.microsoft.com
.vortex-sandbox.data.microsoft.com
.visualrevenue.com
.vicomi.com
.vimeocdn.com
.villaggio.airwave.at
.v0cdn.net
.userreport.com
.userreplay.com
.urban-media.com
.unityads.unity3d.com
.uimserv.net
.typekit.net
.typekit.com
.twonkyvision.com
.twonkymedia.de
.twonkymedia.com
.twiago.com
.tradeadexchange.com
.trackingapi.kaufda.de
.tiqcdn.com
.teads.tv
.theadex.com
.textspeier.de
.telemetry.urs.microsoft.com
.telemetry.mozilla.org
.telemetry.microsoft.com.nsatc.net
.telemetry.microsoft.com
.telemetry.appex.bing.net
.telemetry.api.swiftkey.com
.tagcommander.com
.taboola.com
.syndication.twitter.com
.symcd.com
.symantec.com
.svonm.com
.suicast.de
.stroeerdigitalmedia.de
.stroeer.de
.stickyadstv.com
.statsfe2.ws.microsoft.com
.statsfe2.update.microsoft.com.akadns.net
.statsfe1.ws.microsoft.com
.stats.clipz.com
.static.chartbeat.com
.ssw.live.com
.sso.anbtr.com
.spotxchange.com
.spotx.tv
.speedcurve.com
.southlife.church
.softlayer.com
.snippetdata.api.swiftkey.com
.snap.do
.smartredirect.de
.smartlook.com
.smartadserver.com
.sls.update.microsoft.com.akadns.net
.sim720.co.uk
.showheroes.com
.settings-sandbox.data.microsoft.com
.sessioncam.com
.serving-sys.com
.services.social.microsoft.com.nsatc.net
.services.social.microsoft.com
.secure.tune-up.com
.sascdn.com
.samsungcloudsolution.com
.rqtrk.eu
.responder.wt-safetag.com
.redir.metaservices.microsoft.com
.rad.msn.com
.prophet.heise.de
.preview.msn.com
.plista.com
.platform.twitter.com
.pixelpark.net
.photoscape.ch
.permutive.com
.padsdel.com
.outbrain.com
.optimizely.com
.onlinewinners-fid.net
.nuggad.net
.nautipol.es
.nativendo.de
.mxcdn.net
.msads.net
.mpnrs.com
.monerpool.com
.meetrics.com
.meetrics.net
.marktmonitor.com
.m6r.eu
.luvenxj.uk
.live.rad.msn.com
.lijit.com
.ligatus.com
.ligadx.com
.licensing.mp.microsoft.com
.license.piriform.com
.leaseweb.com
.ktxtr.com
.kpybuhnosdrm.in
.kontera.com
.kameleoon.eu
.kameleoon.de
.kameleoon.com
.justpremium.com
.jsteksys.com
.jesusdenazaret.com.ve
.jbdog.it
.iynus.net
.irquest.com
.ioam.de
.io
.inxserver.com
.intellitxt.com
.intelliad.com
.imrworldwide.com
.iglobali.com
.idcdn.de
.idcdn.com
.i12.de
.hotjar.com
.hazentrumsuedperlach.de
.gvt1.com
.gstatic.com
.googlesyndication.com
.googleadservices.com
.google-analytics.com
.gigya.com
.gehaltvergleich.com
.gehaltsvergleich.com
.g.msn.com
.friendlyduck.com
.footprintpredict.com
.fix.de
.filestorage.chip.de
.feedback.windows.com
.feedback.search.microsoft.com
.feedback.microsoft-hohm.com
.fe2.update.microsoft.com.akadns.net
.fbcdn.net
.fbcdn.com
.facebook.nl
.facebook.net
.facebook.de
.facebook.com.au
.facebook.com
.dropbox.com
.driftt.com
.drift.com
.doubleclickbygoogle.com
.doubleclick.com
.doubleclick.net
.doubleclick.de
.dkoipg.pw
.DisplayFusionSettings.exe
.DisplayFusion.exe
.digitru.st
.diagnostics.support.microsoft.com
.definemedia.de
.decibelinsight.net
.dageek.co.uk
.criteo.com
.criteo.net
.crashlytics.com
.corpext.msitadfs.glbdns2.microsoft.com
.corp.sts.microsoft.com
.conative.de
.comprigo.com
.commandersact.com
.commander1.com
.cloudapp.net
.clicktale.net
.cipher-code.de
.choice.microsoft.com.nsatc.net
.choice.microsoft.com
.cedexis-radar.net
.blitz174.ru
.bidswitch.net
.bibo.api.swiftkey.com
.bf-ad.net
.bf-tools.net
.bestcheck.de
.aticdn.net
.atdmt.com
.areyouahuman.com
.arescasino.com
.app-lon04.marketo.com
.anolysis-telemetry.clipz.com
.animar.net.pl
.analytics.ff.avast.com
.analytics.edgekey.net
.analytics.com
.amazonatrust.com
.amazon-adsystem.com
.amazon-sicherheit.kunden-ueberpruefung.xyz
.amazon-adsystem.com
.algocashmaster.com
.aktiencheck.de
.agkn.com
.advolution.de
.adtech.de
.adtech.com
.adsymptotic.com
.adsrvr.org
.adspirit.de
.adservice.google.de
.adservice.google.com
.adserverpub.com
.adserver.71i.de
.adsafeprotected.com
.adsafeprotected.net
.adscala.nuggadnet
.adscala.de
.adscale.de
.ads2.msn.com
.ads2.msads.net
.ads1.msn.com
.ads.msn.com
.adrtx.com
.adrtx.net
.adroll.com
.adnxs.com
.adjust.com
.adgoal.de
.adform.net
.adfarm1.adition.com
.addthis.com
.addition.com
.adcolony.com
.ad.spx.smartclip.net
.ad-js.chip.de
.ac3.msn.com
.a-msedge.net
.360oyield.com
.2mdn.net
.1e100.net
Warum steht ein PUNKT [.] an Anfang drin. Das hat den Grund, daß man nicht alles Eintragen muss von einer Domain. z.B. Man möchte "xxx.yyy.domain.de" sperren. Entweder, man trägt das so ein, aber !!, jetzt auf einmal heisst die aber so "ssss.domain.de". Entweder, man macht sich die Mühe und träge immer und immer wieder eine neue Domain ein, oder man benutzt das so ".domain.de". Jetzt wird alles was zu "domain.de" zu gehört, gefiltert. Auch der Bereich nach dem Domain Namen. Es ist einfacher von der Sache her.
Noch was zu der Blacklist. Wenn ihr neue Domains dazu gebt, muss man den Squid nicht immer neu starten mit service squid restart.
Dauert einfach viel zu lange und ist Unnötig. Einfacher geht das mit squid -k reconfigure .
Hier wird nur die Blacklist und die squid.conf neu eingelesen. Das reicht ja auch im Prinzip. Das ist auch Wichtig, weil er ja sonst nicht weis, das neue Einträge da sind.
Jetzt wollen wir das ganze auch sehen, was in der Datei /var/log/squid drin steht. Dazu benutzen wir das Programm SARG. Nicht jetzt an die Kiste denken. Heisst einfach nur "Squid Analysis Report Generator".
Mal schnell installiert

Code: Alles auswählen

apt -y install sarg
Danach mal in die /etc/sarg/sarg.conf geschaut und meine sieht so aus.

Code: Alles auswählen

# sarg.conf
#
# TAG:  access_log file
#       Where is the access.log file
#       sarg -l file
#

# TAG: graphs yes|no
#	Use graphics where is possible.
#           graph_days_bytes_bar_color blue|green|yellow|orange|brown|red
#
graphs yes
graph_days_bytes_bar_color orange

# TAG:  graph_font
#       The full path to the TTF font file to use to create the graphs. It is required
#       if graphs is set to yes.
#
#graph_font /usr/share/fonts/truetype/ttf-dejavu/DejaVuSans.ttf

# TAG:	title
# 	Especify the title for html page.
#
title "Squid User Zufriffsreport"

# TAG:	font_face
# 	Especify the font for html page.
#
font_face Tahoma,Verdana,Arial

# TAG:	header_color
# 	Especify the header color
#
header_color darkblue

# TAG:	header_bgcolor
# 	Especify the header bgcolor
#
header_bgcolor blanchedalmond

# TAG:	font_size
# 	Especify the text font size
#
font_size 9px

# TAG:	header_font_size
# 	Especify the header font size
#
#header_font_size 9px

# TAG:	title_font_size
# 	Especify the title font size
#
#title_font_size 11px

# TAG:	background_color
# TAG:	background_color
#	Html page background color
#
background_color white

# TAG:	text_color
#	Html page text color
#
text_color #000000

# TAG:	text_bgcolor
#	Html page text background color
#
text_bgcolor lavender

# TAG:	title_color
#	Html page title color
#
title_color green

# TAG:	logo_image
#	Html page logo.
#
#logo_image none

# TAG:	logo_text
#	Html page logo text.
#
#logo_text ""

# TAG:	logo_text_color
#	Html page logo texti color.
#
#logo_text_color #000000

# TAG:	logo_image_size
#	Html page logo image size. 
#       width height
#
#image_size 80 45

# TAG:	background_image
#	Html page background image
#
#background_image none

# TAG:  password
#       User password file used by Squid authentication scheme
#       If used, generate reports just for that users.
#
#password none

# TAG:  temporary_dir
#       Temporary directory name for work files
#       sarg -w dir
#
temporary_dir /var/tmp

# TAG:  output_dir
#       The reports will be saved in that directory
#       sarg -o dir
#
output_dir /var/www/html/squid-reports
#output_dir /var/lib/sarg

# TAG:  output_email
#       Email address to send the reports. If you use this tag, no html reports will be generated.
#       sarg -e email
#
#output_email none

# TAG:  resolve_ip yes/no
#       Convert ip address to dns name
#       sarg -n
resolve_ip yes

# TAG:  user_ip yes/no
#       Use Ip Address instead userid in reports.
#       sarg -p
user_ip yes

# TAG:  topuser_sort_field field normal/reverse
#       Sort field for the Topuser Report.
#       Allowed fields: USER CONNECT BYTES TIME
#
#topuser_sort_field SITE reverse
# topuser_sort_field field reverse

# TAG:  user_sort_field field normal/reverse
#       Sort field for the User Report.
#       Allowed fields: SITE CONNECT BYTES TIME
#

# TAG:  exclude_users file
#       users within the file will be excluded from reports.
#       you can use indexonly to have only index.html file.
#
exclude_users /etc/sarg/exclude_users

# TAG:  exclude_hosts file
#       Hosts, domains or subnets will be excluded from reports.
#
#       Eg.: 192.168.10.10   - exclude ip address only
#            192.168.10.0/24 - exclude full C class
#            s1.acme.foo     - exclude hostname only
#            *.acme.foo      - exclude full domain name
#
exclude_hosts /etc/sarg/exclude_hosts

# TAG:  useragent_log file
#       useragent.log file patch to generate useragent report.
#
#useragent_log none
useragent_log /var/log/squid/useragent.log
#useragent_log /var/log/squid/user.log
# useragent_log 

# TAG:  date_format
#       Date format in reports: e (European=dd/mm/yy), u (American=mm/dd/yy), w (Weekly=yy.ww)
#       
date_format e

# TAG:  per_user_limit file MB
#       Saves userid on file if download exceed n MB.
#       This option allow you to disable user access if user exceed a download limit.
#       
#per_user_limit none

# TAG: lastlog n
#      How many reports files must be keept in reports directory.
#      The oldest report file will be automatically removed.
#      0 - no limit.
#
# TAG: remove_temp_files yes
#      Remove temporary files: geral, usuarios, top, periodo from root report directory.
#
remove_temp_files yes

# TAG: index yes|no|only
#      Generate the main index.html.
#      only - generate only the main index.html
#
index yes

# TAG: index_tree date|file
#      How to generate the index.
#
# index_tree file
index_tree date
# TAG: overwrite_report yes|no
#      yes - if report date already exist then will be overwrited.
#       no - if report date already exist then will be renamed to filename.n, filename.n+1
#
overwrite_report yes

# TAG: records_without_userid ignore|ip|everybody
#      What can I do with records without user id (no authentication) in access.log file ?
#
#      ignore - This record will be ignored.
#          ip - Use ip address instead. (default)
#   everybody - Use "everybody" instead.
#
records_without_userid ip

# TAG: use_comma no|yes
#      Use comma instead point in reports.
#      Eg.: use_comma yes => 23,450,110
#           use_comma no  => 23.450.110
use_comma no
#

# TAG: mail_utility mail|mailx
#      Mail command to use to send reports via SMTP
#
mail_utility mailx

# TAG: topsites_num n
#      How many sites in topsites report.
#
topsites_num 1000

# TAG: topsites_sort_order CONNECT|BYTES A|D
#      Sort for topsites report, where A=Ascendent, D=Descendent
#

# TAG: index_sort_order A/D
#      Sort for index.html, where A=Ascendent, D=Descendent
#
index_sort_order D

# TAG: exclude_codes file
#      Ignore records with these codes. Eg.: NONE/400
#      Write one code per line. Lines starting with a # are ignored.
#      Only codes matching exactly one of the line is rejected. The
#      comparison is not case sensitive.
#
exclude_codes /etc/sarg/exclude_codes

# TAG: replace_index string
#      Replace "index.html" in the main index file with this string
#      If null "index.html" is used 
#
#replace_index <?php echo str_replace(".", "_", $REMOTE_ADDR); echo ".html"; ?>

# TAG: max_elapsed milliseconds
#      If elapsed time is recorded in log is greater than max_elapsed use 0 for elapsed time.
#      Use 0 for no checking 
#
# 8 Hours

# TAG: report_type type
#      What kind of reports to generate.
#      topusers            - users, sites, times, bytes, connects, links to accessed sites, etc
#      topsites		   - site, connect and bytes report
#      sites_users	   - users and sites report
#      users_sites	   - accessed sites by the user report
#      date_time	   - bytes used per day and hour report
#      denied		   - denied sites with full URL report
#      auth_failures       - autentication failures report
#      site_user_time_date - sites, dates, times and bytes report
#      downloads           - downloads per user report
#
#      Eg.: report_type topsites denied 
#
#report_type topusers topsites sites_users users_sites date_time denied auth_failures site_user_time_date downloads
report_type topusers topsites sites_users users_sites date_time denied auth_failures site_user_time_date downloads

# TAG: usertab filename
#      You can change the "userid" or the "ip address" to be a real user name on the reports.
#      If resolve_ip is active, the ip address is resolved before being looked up into this
#      file. That is, if you want to map the ip address, be sure to set resolv_ip to no or
#      the resolved name will be looked into the file instead of the ip address. Note that
#      it can be used to resolve any ip address known to the dns and then map the unresolved
#      ip addresses to a name found in the usertab file.
#      Table syntax:
# 		userid name   or   ip address name
#      Eg:
#		SirIsaac Isaac Newton
#		vinci Leonardo da Vinci
#		192.168.10.1 Karol Wojtyla
#
#      Each line must be terminated with '\n'
#      If usertab have value "ldap" (case ignoring), user names
#      will be taken from LDAP server. This method as approaches for reception
#      of usernames from Active Didectory
#
usertab /etc/sarg/usertab

# TAG: LDAPHost hostname
#	FQDN or IP address of host with LDAP service or AD DC
#	default is '127.0.0.1'
#LDAPHost 127.0.0.1

# TAG: LDAPPort port
#       LDAP service port number
#	default is '389'
#LDAPPort 389

# TAG: LDAPBindDN CN=username,OU=group,DC=mydomain,DC=com
#	DN of LDAP user, who is authorized to read user's names from LDAP base
#	default is empty line
#LDAPBindDN cn=proxy,dc=mydomain,dc=local

# TAG: LDAPBindPW secret
#	Password of DN, who is authorized to read user's names from LDAP base
#	default is empty line
#LDAPBindPW secret

# TAG: LDAPBaseSearch OU=users,DC=mydomain,DC=com
#	LDAP search base
#	default is empty line
#LDAPBaseSearch ou=users,dc=mydomain,dc=local

# TAG: LDAPFilterSearch uid=%s
#	User search filter by user's logins in LDAP
#	First founded record will be used
#	%s - will be changed to userlogins from access.log file
#       filter string can have some tags '%s'
#	default value is 'uid=%s'
#LDAPFilterSearch uid=%s

# TAG: LDAPTargetAttr attributename
#	Name of the attribute containing a name of the user
#	default value is 'cn'
#LDAPTargetAttr cn

# TAG: long_url yes|no
#      If yes, the full url is showed in report.
#      If no, only the site will be showed
#
#      YES option generate very big sort files and reports.
#
long_url yes

# TAG: date_time_by bytes|elap
#      Date/Time reports show the downloaded volume or the elapsed time or both.
#
date_time_by elap

# TAG: charset name
#      ISO 8859 is a full series of 10 standardized multilingual single-byte coded (8bit)
#      graphic character sets for writing in alphabetic languages
#      You can use the following charsets:
#		Latin1 		- West European
#		Latin2 		- East European 
#		Latin3 		- South European 
#		Latin4 		- North European 
#		Cyrillic 
#		Arabic 
#		Greek 
#		Hebrew 
#		Latin5 		- Turkish 
#		Latin6
#		Windows-1251
#		Japan
#		Koi8-r
#		UTF-8
#
charset Latin1

# TAG: user_invalid_char "&/"
#      Records that contain invalid characters in userid will be ignored by Sarg.
#
#user_invalid_char "&/"

# TAG: privacy yes|no
#      privacy_string "***.***.***.***"
#      privacy_string_color blue
#      In some countries the sysadm cannot see the visited sites by a restrictive law.
#      Using privacy yes the visited url will be changes by privacy_string and the link
#      will be removed from reports.
#
privacy no
#privacy_string "***.***.***.***"
#privacy_string_color blue

# TAG: include_users "user1:user2:...:usern"
#      Reports will be generated only for listed users.
#
#include_users none

# TAG: exclude_string "string1:string2:...:stringn"
#      Records from access.log file that contain one of listed strings will be ignored.
#
#exclude_string none

# TAG: show_successful_message yes|no
#      Shows "Successful report generated on dir" at end of process.
#
# normal no
show_successful_message yes

# TAG: show_read_statistics yes|no
#      Shows some reading statistics.
#
# normal no
show_read_statistics yes

# TAG: topuser_fields
#      Which fields must be in Topuser report.
#
topuser_fields NUM DATE_TIME USERID CONNECT BYTES %BYTES IN-CACHE-OUT USED_TIME MILISEC %TIME TOTAL AVERAGE

# TAG: user_report_fields
#      Which fields must be in User report.
#
user_report_fields CONNECT BYTES %BYTES IN-CACHE-OUT USED_TIME MILISEC %TIME TOTAL AVERAGE

# TAG: bytes_in_sites_users_report yes|no
#      Bytes field must be in Site & Users Report ?
#
#bytes_in_sites_users_report no

# TAG: topuser_num n
#      How many users in topsites report. 0 = no limit
#
topuser_num 1000
# TAG: datafile file
#      Save the report results in a file to populate some database
#
#datafile none

# TAG: datafile_delimiter ";"
#      ascii character to use as a field separator in datafile
#
#datafile_delimiter ";"

# TAG: datafile_fields all
#      Which data fields must be in datafile
#      user;date;time;url;connect;bytes;in_cache;out_cache;elapsed
#
datafile_fields user;date;time;url;connect;bytes;in_cache;out_cache;elapsed

# TAG: datafile_url ip|name
#      Saves the URL as ip or name in datafile
#
#datafile ip

# TAG: weekdays
#      The weekdays to take account ( Sunday->0, Saturday->6 )
# Example:
#weekdays 1-3,5
# Default:
weekdays 0,1,2,3,4,5,6

# TAG: hours
#      The hours to take account
# Example:
#hours 7-12,14,16,18-20
# Default:
hours 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23

# TAG: dansguardian_conf file
#      DansGuardian.conf file path
#      Generate reports from DansGuardian logs.
#      Use 'none' to disable it.
#      dansguardian_conf /usr/dansguardian/dansguardian.conf
#
#dansguardian_conf none

# TAG: dansguardian_filter_out_date on|off
#      This option replaces dansguardian_ignore_date whose name was not appropriate with respect to its action.
#      Note the change of parameter value compared with the old option.
#      'off' use the record even if its date is outside of the range found in the input log file.
#      'on'  use the record only if its date is in the range found in the input log file.
#
#dansguardian_filter_out_date on

# TAG: squidguard_conf file
#      path to squidGuard.conf file
#      Generate reports from SquidGuard logs.
#      Use 'none' to disable.
#      You can use sarg -L filename to use an alternate squidGuard log.
#      squidguard_conf /usr/local/squidGuard/squidGuard.conf
#
#squidguard_conf none

# TAG: redirector_log file
#      the location of the web proxy redirector log such as one created by squidGuard or Rejik. The option
#      may be repeated up to 64 times to read multiple files.
#      If this option is specified, it takes precedence over squidguard_conf.
#      The command line option -L override this option.
#
#redirector_log /usr/local/squidGuard/var/logs/urls.log

# TAG: redirector_filter_out_date on|off
#      This option replaces squidguard_ignore_date and redirector_ignore_date whose names were not
#      appropriate with respect to their action.
#      Note the change of parameter value compared with the old options.
#      'off' use the record even if its date is outside of the range found in the input log file.
#      'on'  use the record only if its date is in the range found in the input log file.
#
#redirector_filter_out_date on

# TAG: redirector_log_format
#      Format string for web proxy redirector logs.
#      This option was named squidguard_log_format before sarg 2.3.
#      REJIK       #year#-#mon#-#day# #hour# #list#:#tmp# #ip# #user# #tmp#/#tmp#/#url#/#end#
#      SQUIDGUARD  #year#-#mon#-#day# #hour# #tmp#/#list#/#tmp#/#tmp#/#url#/#tmp# #ip#/#tmp# #user# #end#
#redirector_log_format #year#-#mon#-#day# #hour# #tmp#/#list#/#tmp#/#tmp#/#url#/#tmp# #ip#/#tmp# #user# #end#

# TAG: show_sarg_info yes|no
#      shows sarg information and site path on each report bottom
#
show_sarg_info yes

# TAG: show_sarg_logo yes|no
#      shows sarg logo
#
#show_sarg_logo yes

# TAG: parsed_output_log directory
#      Saves the processed log in a sarg format after parsing the squid log file.
#      This is a way to dump all of the data structures out, after parsing from 
#      the logs (presumably this data will be much smaller than the log files themselves),
#      and pull them back in for later processing and merging with data from previous logs.
#
#parsed_output_log none

# TAG: parsed_output_log_compress /bin/gzip|/usr/bin/bzip2|nocompress
#      Command to run to compress sarg parsed output log. It may contain
#      options (such as -f to overwrite existing target file). The name of
#      the file to compresse is provided at the end of this
#      command line. Don't forget to quote things appropriately.
#
#parsed_output_log_compress /bin/gzip

# TAG: displayed_values bytes|abbreviation
#      how the values will be displayed in reports.
#      eg. bytes  	-  209.526
#          abbreviation -  210K
#
#displayed_values bytes
displayed_values abbreviation

# Report limits
# TAG: authfail_report_limit n
# TAG: denied_report_limit n
# TAG: siteusers_report_limit n
# TAG: squidguard_report_limit n
# TAG: user_report_limit n
# TAG: dansguardian_report_limit n
# TAG: download_report_limit n
#      report limits (lines).
#      '0' no limit
#
authfail_report_limit 0
denied_report_limit 0
#siteusers_report_limit 0
#squidguard_report_limit 10
#dansguardian_report_limit 10
user_report_limit 0
#user_report_limit 50

# TAG: www_document_root dir
#     Where is your Web DocumentRoot
#     Sarg will create sarg-php directory with some PHP modules:
#     - sarg-squidguard-block.php - add urls from user reports to squidGuard DB
#
#www_document_root /var/www/html

# TAG: block_it module_url
#     This tag allow you to pass urls from user reports to a cgi or php module,
#     to be blocked by some Squid acl
#
#     Eg.: block_it /sarg-php/sarg-block-it.php
#     sarg-block-it is a php that will append a url to a flat file.
#     You must change /var/www/html/sarg-php/sarg-block-it to point to your file
#     in $filename variable, and chown to a httpd owner.
#
#     sarg will pass http://module_url?url=url
#
#block_it none

# TAG: external_css_file path
#     Provide the path to an external css file to link into the HTML reports instead of
#     the inline css written by sarg when this option is not set.
#
#     In versions prior to 2.3, this used to be an absolute file name to
#     a file to include verbatim in each HTML page but, as it takes a lot of
#     space, version 2.3 switched to a link to an external css file.
#     Therefore, this option must contain the HTTP server path on which a client
#     browser may find the css file.
#
#     Sarg use theses style classes:
#	.logo		logo class
#	.info		sarg information class, align=center
#	.title_c	title class, align=center
#	.header_c	header class, align:center
#	.header_l	header class, align:left
#	.header_r	header class, align:right
#	.text		text class, align:right
#	.data		table text class, align:right
#	.data2		table text class, align:left
#	.data3		table text class, align:center
#	.link  		link class
#
#     Sarg can be instructed to output the internal css it inline
#     into the reports with this command:
#
#        sarg --css
#
#     You can redirect the output to a file of your choice and edit
#     it to your liking.
#
#external_css_file none

# TAG: user_authentication yes|no
#     Allow user authentication in User Reports using .htaccess
#     Parameters:  
#	AuthUserTemplateFile - The template to use to create the
#     .htaccess file. In the template, %u is replaced by the
#     user's ID for which the report is generated. The path of the
#     template is relative to the directory containing sarg
#     configuration file.
#
# user_authentication no
# AuthUserTemplateFile sarg_htaccess

# TAG: download_suffix "suffix,suffix,...,suffix"
#    file suffix to be considered as "download" in Download report.
#    Use 'none' to disable.    
#
download_suffix "zip,arj,bzip,gz,ace,rar,pdf,xlsx,doc,iso,adt,bin,cab,com,dot,drv$,lha,lzh,mdb,mso,ppt,rtf,src,shs,sys,exe,dll,mp3,mp4,avi,gif,nef,mpg,mpeg,flv,wmv,wma,mkv"

# TAG: ulimit n
#    The maximum number of open file descriptors to avoid "Too many open files" error message.
#    You need to run sarg as root to use ulimit tag.
#    If you run sarg with a low privilege user, set to 'none' to disable ulimit
#
#ulimit 20000

# TAG: ntlm_user_format username|domainname+username
#      NTLM users format.
#
#ntlm_user_format domainname+username

# TAG: realtime_refresh_time num sec
#      How many time to auto refresh the realtime report
#      0 = disable
#
# realtime_refresh_time 3

# TAG: realtime_access_log_lines num
#      How many last lines to get from access.log file 
#
# realtime_access_log_lines 1000

# TAG: realtime_types: GET,PUT,CONNECT,ICP_QUERY,POST
#      Which records must be in realtime report.
#
# realtime_types GET,PUT,CONNECT  

# TAG: realtime_unauthenticated_records: ignore|show
#      What to do with unauthenticated records in realtime report.
#
# realtime_unauthenticated_records: show

# TAG: byte_cost value no_cost_limit
#      Cost per byte.
#      Eg. byte_cost 0.01 100000000
#           per byte cost      = 0.01
#           bytes with no cost = 100 Mb
#      0 = disable
#
# byte_cost 0.01 50000000

# TAG: squid24 on|off
#      Compatilibity with squid version <= 2.4 when using emulate_http_log on
#
# squid24 off
#site_user_time_date_type table
access_log /var/log/squid/access.log
##access_log /var/log/squid/useragentkombi.log
Kann man so Übernehmen. Nichts dolles verändert dran.
Anschauen kann man sich das im Webbrowser mit der Adresse

Code: Alles auswählen

http://192.168.2.5/squid-reports/
Wie geschrieben, ist das meine IP Adresse, bitte auf eure ändern.
Schaut euch in der sarg.conf mal den Pfad an, wo die Datei gespeichert wird. Bitte, wenn es nicht stimmt, anpassen.

Code: Alles auswählen

output_dir /var/www/html/squid-reports
Wie ihr seht, brauchen wir noch ein Verzeichniss squid-reports.

Augerufen wird das so..

Code: Alles auswählen

sarg -f /etc/sarg/sarg.conf -l /var/log/squid/access.log
Damit man das nicht immer machen muss, wird noch die Textdatei sarg im Verzeichniss /etc/cron.daily erstellt. Folgenden Inhalt sollte sie haben.

Code: Alles auswählen

#!/bin/sh

if [ -x /usr/sbin/sarg-reports ]; then
  /usr/sbin/sarg-reports daily
fi
Im Code sarg.conf sind die Zeiten schon enthalten. Darüber braucht man sich keinen Kopf machen.

Wer jetzt Meint, alles schön, aber kann man das auch Live sehen, das geht auch..
Wir installieren mal eben squidview.

Code: Alles auswählen

apt -y install squidview
Aufgerufen wird das mit squidview.
Wer jetzt noch statt der IP-Adressen lieber Aussagekräftige Namen haben möchte, der kann das so machen.
nano /root/.squidview/aliases aufrufen und folgendes in die Datei schreiben.

Code: Alles auswählen

user1  192.168.2.2
user2 192.168.2.3
u.s.w
Statt user1 kann man einen anderen Namen dafür eintragen. Es sollte nicht länger als 15 Zeichen haben. Alles andere wird abgeschnitten.
Damit das auch geht, jetzt in das Verzeichniss rein, wo die squidview.conf ist.

Code: Alles auswählen

cd /root/.squidview
Hier mal meine Config Datei.

Code: Alles auswählen

# this complete file is reset on every clean exit
sRepFileName=temp.txt
sRepFilter=
sRepTitle=
bRepKeepExt=yes
iRepColumns=80
bRepSplit=no
bRepShowSize=no
bRepCacheReport=yes
sRepSeperator=|
iRepCSVcols=100
iRepWordHits=1
iRepBUT=1
iRepBDT=1
iRepBDI=0
iRepFocus=0
sRepFocus=
sRepBDTuser=
sViewer=less
sCurrentReport=
sCurrentEmail=
iSizeHitGrade=0
iSizeHitBytes=0
sSizeHits=50000 250000 1000000 10000000
iCurrentLog=3
iMonitorMode=1
bLookupIP=yes
bAliases=yes
iUserNameLen=15
iRepFast=10000
bRepMySort=yes
iTallyHP=3600
iTallyFade=0.750000
iTallyEntry=1.000000
iTallyMonitor=yes
iTallyDenies=yes
Wichtig ist nur das

Code: Alles auswählen

bLookupIP=yes
Der steht bei mir schon auf YES und nicht auf NO.

Wer den Trick noch nicht kennt mit mehrern Task, der sollte mal bitte auf dem Server ALT + F2 Tasten drücken.
Jetzt müsst ihr euch neu Anmelden. Kein Ding. Und wenn ihr jetzt mal ALT + F1 Tasten drückt, dann seit ihr wieder auf den ersten Task. So könnt ihr immer hin und her schalten. Man kann auch noch mehr Tasks aufmachen . Glaube bis F7 geht das. Ich selbst habe immer 4 Tasks offen.
Bei mir ist Task 1 Squidview, Task 2 der Nano mit der offnen Datei blacklist um gleich Domains einzutragen, die ich sperren möchte und Task 3 eine normale Shell, damit ich squid -k reconfigure eingeben kann um die Blacklist einzulesen. Task 4 ist auch eine normale Shell um andere Dinge zu erledigen. Kann jeder machen wie er möchte.

So, damit das ganze auch funktioniert, müssen wir im Browser noch eine Einstellung machen.
Bei Firefox ist das unter "Extras/Einstellungen/Allgemein/Netzwerk-Proxy" zu machen.
Siehe Bild. Da das zu installierende Squid ohne SSL Unterstützung kompiliert wurde, muss man ALLE Einstellungen benutzen. Man kann sich das auch selbst Kompilieren, aber dann muss man in der /etc/squid/squid.conf noch einiges ändern. Das ist in meinen Augen aber nicht nötig, da auch mit diesen Einstellungen die ich gezeigt habe, die HTTPS Einstellungen gehen.
Im Windows kann man das auch gleich mal machen. "Systemsteuerung/Internetoptionen/Verbindungen/Lan-Einstellungen". Unter dem Punkt Proxyserver ist es zu finden. Siehe Bild.


Und zum Schluss noch, bitte achtet darauf, das ihr zwischen Groß- und Kleinschreibung unterscheidet. Das ist nicht wie bei Windows.. Da ist es egal.
Ich selbst habe das hier so geschrieben, wie es auch im System zu schreiben ist.
Falls Fragen sind oder ich was vergessen habe, dann schreibt es mir oder hier ins Thema rein..
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Wortzählung: 6299
Liebe ist die Urform der Sucht.