Installation Squid3 Linux

Hi,

wie Angekündigt die Installation und Konfiguration von Squid3.

Erstmal in das System einloggen und auf rot wechseln oder mit sudo arbeiten.

aptitude install squid3 squid3-common

Danach geht es in die Datei

nano /etc/squid3/squid.conf

So es gibt ja zig Anleitungen zu dem Thema und manch betreffen Squid3 andere Squid, mal geht es um Dynamischen Content, mal geht es um die Performance oder wie man am besten Cachet.

Ich habe eine Mix aus allem was ich so gefunden habe erstellt und bin soweit ganz Happy, was ich auch noch sagen muss ist das mein Proxy nur lokal Zugänglich ist.

Das heißt ohne meine VPN Verbindung oder einen SSH Tunnel geht nichts, der Grund ist ganz einfach – Der Server ist Public nicht zu erreichen und damit ist auch kein Hack möglich.

Was man nicht sehen kann, kann man auch nicht finden.

Da die Konfig sehr lang ist gehe ich hier Stück für Stück auf die einzielen Bereich ein, von oben nach unten.


squid.conf:

Zugang und Netzwerkkonfig

acl manager proto cache_object
acl localhost src 127.0.0.1/32 85.25.197.100/32 x.x.x.0/24 #Netztwerke/IPs auf die der Server reagiert x=VPN
acl to_localhost dst 127.0.0.0/8 #Localhost definition
acl localnet src 127.0.0.1/32 85.25.197.100/32 # RFC1918 possible internal network

ACLs

acl SSL_ports port 443 #SSL port
acl SSL_ports port 8443 #Plesk port
acl SSL_ports port 8447 #Plesk port
acl Safe_ports port 2812 # Monit port
acl Safe_ports port 80 # http port
acl Safe_ports port 21 # ftp port
acl Safe_ports port 443 # https port
acl Safe_ports port 1025-65535 # unregistered ports
acl CONNECT method CONNECT #standard
acl GET method GET #standard
acl POST method POST #standard
acl analystics dstdomain .google-analytics.com #gegen/für google-analystics
acl QUERY urlpath_regex cgi_bin \? #um cgi zu blocken
acl video urlpath_regex get_video\? videoplayback\? videodownload\? get_file\? #acl für videos
acl youtube dstdomain .youtube.com #acl für youtube
acl facebook dstdomain .akamaihd.net facebook.com #cache acl für facebook

Cache allow/deny

cache deny analystics #blockt die acl analystics
cache allow youtube #erlaubt das cachen von youtube
cache allow facebook #erlaubt das cachen für facebook
cache allow video #erlaibt das cachen für videos
cache deny QUERY #blockt die acl QUERY
follow_x_forwarded_for deny all #blockt x-forward

http access
http_access deny analystics #blockt analystics
http_access allow manager localhost #erlaubt das management über localhost
http_access deny manager # blockt den rest auf der management
http_access deny !Safe_ports # blockt alle UNsicheren Ports
http_access deny CONNECT !SSL_ports #blockt alle UNsichern SSL Ports
http_access allow localhost # erlaube generell localhost
http_access deny all # verbiete den Rest

request header access
request_header_access Authorization allow all
request_header_access Proxy-Authorization allow all
request_header_access Cache-Control allow all
request_header_access Content-Length allow all
request_header_access Content-Type allow all
request_header_access Date allow all
request_header_access Host allow all
request_header_access If-Modified-Since allow all
request_header_access Pragma allow all
request_header_access Accept allow all
request_header_access Accept-Charset allow all
request_header_access Accept-Encoding allow all
request_header_access Accept-Language allow all
request_header_access Connection allow all
request_header_access Cookie allow all
request_header_access All deny all # blockt alles in dieser Liste aber man muss erst ein allow setzten bevor man ein deny machen kann bei dieser syntax

Port einstellung

http_port 3128

Sonstige Einstellungen

dead_peer_timeout 5 seconds
forward_max_tries 10
access_log /var/log/squid3/access.log squid
logfile_rotate 1
pid_filename /var/run/squid3.pid
client_netmask no_addr
cache_log /var/log/squid3/cache.log
debug_options 11,9
coredump_dir /var/spool/squid3
url_rewrite_children 5
url_rewrite_concurrency 0
url_rewrite_host_header on
url_rewrite_bypass off
quick_abort_min -1 KB
positive_dns_ttl 1 hours
negative_dns_ttl 1 minutes
minimum_expiry_time 60 seconds
store_avg_object_size 13 KB
store_objects_per_bucket 20
request_header_max_size 64 KB
reply_header_max_size 64 KB
request_body_max_size 0 KB
chunked_request_body_max_size 64 KB
via off #zur Anonymisieren
request_entities off
request_header_access User-Agent deny all
header_replace User-Agent Fozilla/1.0 (compatible; LMAA 3.0; DOS 5.0; Basic/1.0) # Fake Browser Name
ignore_expect_100 off
forward_timeout 1 minutes
connect_timeout 40 seconds #wie lange wird gewartet bis die Verbindung als Timeout angezeigt wird
peer_connect_timeout 40 seconds
read_timeout 40 seconds
request_timeout 40 seconds
persistent_request_timeout 2 minutes
client_lifetime 1 day #wie lange kann ein client angemeldet bleiben
half_closed_clients off
pconn_timeout 1 minute
cache_mgr mail.domain.com # Deine email adresse
httpd_suppress_version_string off
visible_hostname unknown #anstatt das sich der Proxy mit dem Namen Squid meldet
incoming_http_average 4
incoming_dns_average 4
min_dns_poll_cnt 8
min_http_poll_cnt 8
forwarded_for off #zur Anonymisieren
client_netmask 0.0.0.0 # ersetzt die Client IP im logfile durch 0.0.0.0

Cache

cache_mem 5 GB #Wieviel Ram wird  für Squid reserviert
maximum_object_size_in_memory 1 MB #Größte Datei im RAM
memory_replacement_policy lru #Algorythmus für den Austausch der Dateien im RAM
cache_replacement_policy heap LFUDA #Algorythmus für den Austausch der Dateien auf der Festplatte
cache_dir aufs /var/spool/squid3 1000000 16 256 # Festplatten Platz definition hier 1TB mit 16 ordnern und 256 unter Ordnern
store_dir_select_algorithm round-robin # Algorythmus wie die Daten auf der Festplatte gelesen werden?
max_open_disk_fds 0
minimum_object_size 0 KB # kleinste Dateigröße
maximum_object_size 8 GB #größte Dateigröße

Jetzt kommt der Part den ich nicht wirklich verstehe bzw die Syntax auf jeden fall wird damit definiert das wird gecached und wie lange.

Mehr dazu kann man in der Doku nachlesen, ich habe mir das ganze aus Verschiedenen TUTs zusammengestellt.

refresh pattern

refresh_pattern -i \.htm 120 50% 10080 reload-into-ims
refresh_pattern -i \.html 120 50% 10080 reload-into-ims
refresh_pattern ^http://*.facebook.com/* 10800 80% 10800 ignore-no-cache ignore-private
refresh_pattern ^http://*.akamaihd.net/* 10800 80% 10800 ignore-no-cache ignore-private
refresh_pattern ^http://mail.yahoo.com/.* 10800 80% 10800 ignore-no-cache ignore-private
refresh_pattern ^http://*.yahoo.*/.* 10800 80% 10800 ignore-no-cache ignore-private
refresh_pattern ^http://*.gmail.*/.* 10800 80% 10800 ignore-no-cache ignore-private
refresh_pattern ^http://*.google.*/.* 10800 80% 10800 ignore-no-cache ignore-private
refresh_pattern ^http://*.deviantart.*/.* 10800 80% 10800 ignore-no-cache ignore-private
refresh_pattern ^http://*.youtube.*/.* 10800 80% 10800 ignore-no-cache ignore-private
refresh_pattern ^http://*.youporn.*/.* 10800 80% 10800 ignore-no-cache ignore-private
refresh_pattern (get_video\?|videoplayback\?|videodownload\?|\.flv?) 10800 80% 10800 ignore-no-cache ignore-private override-expire
refresh_pattern (get_video\?|videoplayback\?id|videoplayback.*id|videodownload\?|\.flv?) 10800 80% 10800 ignore-no-cache ignore-private override-expire
refresh_pattern \.(ico|video-stats) 10800 80% 10800 override-expire ignore-reload ignore-no-cache ignore-private ignore-auth
refresh_pattern galleries\.video(\?|sz) 10800 80% 10800 override-expire ignore-reload ignore-no-cache
refresh_pattern ^.*safebrowsing.*google 10800 80% 10800 override-expire ignore-reload ignore-no-cache ignore-private ignore-auth
refresh_pattern ^http://((cbk|mt|khm|mlt)[0-9]?)\.google\.co(m|\.uk) 10800 80% 10800 override-expire ignore-reload ignore-private
refresh_pattern ^http://((cbk|mt|khm|mlt)[0-9]?)\.google\.de 10800 80% 10800 override-expire ignore-reload ignore-private
refresh_pattern ^http:\/\/images|pics|thumbs[0-9]\. 10800 80% 10800 ignore-no-cache ignore-private ignore-auth
refresh_pattern (avgate|avira).*(idx|gz)$ 10800 80% 10800 ignore-no-cache ignore-private reload-into-ims
refresh_pattern windowsupdate.com/.*\.(cab|exe) 10800 80% 10800 ignore-no-cache reload-into-ims
refresh_pattern update.microsoft.com/.*\.(cab|exe) 10800 80% 10800 ignore-no-cache reload-into-ims
refresh_pattern download.microsoft.com/.*\.(cab|exe) 10800 80% 10800 ignore-no-cache reload-into-ims

#images and video files

refresh_pattern -i \.(gif|png|jpg|jpeg|ico)$ 10080 90% 43200 override-expire ignore-no-cache ignore-no-store ignore-private
refresh_pattern -i \.(iso|avi|wav|mp3|mp4|mpeg|swf|flv|x-flv)$ 43200 90% 432000 override-expire ignore-no-cache ignore-no-store ignore-private
refresh_pattern -i \.(deb|rpm|exe|zip|tar|tgz|ram|rar|bin|ppt|doc|tiff)$ 10080 90% 43200 override-expire ignore-no-cache ignore-no-store ignore-private
refresh_pattern -i \.index.(html|htm)$ 0 40% 10080 override-expire ignore-no-cache ignore-no-store ignore-private
refresh_pattern -i \.(html|htm|css|js)$ 1440 40% 40320 override-expire ignore-no-cache ignore-no-store ignore-private

# website

refresh_pattern -i \.(xml|html|htm|js|jsp|txt|css|php|asp)$ 10080 90% 43200 override-expire override-lastmod reload-into-ims ignore-reload ignore-no-cache ignore-auth
refresh_pattern -i \.(xml|js|jsp|txt|css)$ 10080 90% 43200 override-expire override-lastmod reload-into-ims ignore-reload ignore-no-cache ignore-auth

#sound, video multimedia

refresh_pattern -i \.(flv|x-flv|mov|avi|qt|mpg|mpeg|swf|wmv)$ 10080 90% 43200 override-expire override-lastmod reload-into-ims ignore-reload ignore-no-cache
refresh_pattern -i \.(wav|mp3|mp4|au|mid)$ 10080 90% 43200 override-expire override-lastmod reload-into-ims ignore-reload ignore-no-cache ignore-auth ignore-private

# files

refresh_pattern -i \.(iso|deb|rpm|zip|tar|tgz|ram|rar|bin|ppt|doc)$ 10080 90% 43200 ignore-no-cache ignore-auth
refresh_pattern -i \.(zip|gz|arj|lha|lzh)$ 10080 100% 43200 override-expire ignore-no-cache ignore-auth
refresh_pattern -i \.(rar|tgz|tar|exe|bin)$ 10080 100% 43200 override-expire ignore-no-cache ignore-auth ignore-reload ignore-no-cache
refresh_pattern -i \.(hqx|pdf|rtf|doc|swf)$ 10080 100% 43200 override-expire ignore-no-cache ignore-auth
refresh_pattern -i \.(inc|cab|ad|txt|dll)$ 10080 100% 43200 override-expire ignore-no-cache ignore-auth

# — refresh pattern for specific sites — #

refresh_pattern ^http://*.youtube.com/.* 720 100% 10080 override-expire override-lastmod ignore-no-cache
refresh_pattern ^http://*.twitter.com/.* 720 100% 10080 override-expire override-lastmod reload-into-ims ignore-reload ignore-no-cache ignore-auth
refresh_pattern ^http://*.youporn.com/.* 720 100% 10080 override-expire override-lastmod reload-into-ims ignore-reload ignore-no-cache ignore-auth
refresh_pattern ^http://*.gmail.com/.* 720 100% 10080 override-expire ignore-no-cache ignore-auth
refresh_pattern ^http://*.instagram.com/.* 720 100% 10080 override-expire override-lastmod reload-into-ims ignore-no-cache ignore-auth
refresh_pattern ^http://*..*/.* 720 100% 10080 override-expire ignore-no-cache ignore-auth
refresh_pattern ^http://*.blogspot.com/.* 720 100% 10080 override-expire override-lastmod reload-into-ims ignore-no-cache ignore-auth
refresh_pattern ^http://*.wordpress.org/.* 720 100% 10080 override-expire override-lastmod reload-into-ims ignore-no-cache
refresh_pattern ^http://*.adobe.com/.* 720 100% 10080 override-expire override-lastmod reload-into-ims ignore-no-cache ignore-auth
refresh_pattern ^http://*.linkedin.com/.* 720 100% 10080 override-expire override-lastmod reload-into-ims ignore-no-cache ignore-auth
refresh_pattern ^http://*.wikipedia.org/.* 720 100% 10080 override-expire override-lastmod reload-into-ims ignore-no-cache ignore-auth
refresh_pattern ^http://*.amazon.com/.* 720 100% 10080 override-expire override-lastmod reload-into-ims ignore-no-cache ignore-auth
refresh_pattern ^http://*.w3.org/.* 720 100% 10080 override-expire override-lastmod reload-into-ims ignore-no-cache ignore-auth
refresh_pattern ^http://*.flickr.com/.* 720 100% 10080 override-expire override-lastmod reload-into-ims ignore-no-cache ignore-auth
refresh_pattern ^http://*.apple.com/*.* 720 100% 10080 override-expire override-lastmod reload-into-ims ignore-no-cache ignore-auth
refresh_pattern ^http://*.myspace.com/.* 720 100% 10080 override-expire override-lastmod reload-into-ims ignore-no-cache ignore-auth
refresh_pattern ^http://*.tumblr.com/.* 720 100% 10080 override-expire override-lastmod reload-into-ims ignore-no-cache ignore-auth
refresh_pattern ^http://*.microsoft.com/.* 720 100% 10080 override-expire override-lastmod reload-into-ims ignore-no-cache ignore-auth
refresh_pattern ^http://*.msn.com/.* 720 100% 10080 override-expire override-lastmod reload-into-ims ignore-no-cache ignore-auth
refresh_pattern ^http://*.google.*/.* 720 100% 10080 override-expire override-lastmod reload-into-ims ignore-no-cache ignore-auth
refresh_pattern ^http://*.sourceforge.net/.* 720 100% 10080 override-expire override-lastmod reload-into-ims ignore-no-cache ignore-auth
refresh_pattern ^http://*.mozilla.org/.* 720 100% 10080 override-expire override-lastmod reload-into-ims ignore-no-cache ignore-auth
refresh_pattern ^http://*.ebay.*/.* 720 100% 10080 override-expire override-lastmod reload-into-ims ignore-no-cache ignore-auth
refresh_pattern ^http://*.debian.*/.* 720 100% 10080 override-expire override-lastmod reload-into-ims ignore-no-cache ignore-auth
refresh_pattern ^http://*.devianart.*/.* 720 100% 10080 override-expire override-lastmod reload-into-ims ignore-no-cache ignore-auth
refresh_pattern ^http://*..*/.* 720 100% 10080 override-expire override-lastmod reload-into-ims ignore-no-cache ignore-auth
refresh_pattern ^http://*.friendster.com/.* 720 100% 10080 override-expire override-lastmod ignore-no-cache ignore-auth
refresh_pattern ^http://*.facebook.com/.* 720 100% 10080 override-expire override-lastmod reload-into-ims ignore-no-cache ignore-auth
refresh_pattern ^http://apps.facebook.com/.* 720 100% 10080 override-expire override-lastmod reload-into-ims ignore-no-cache ignore-auth
refresh_pattern ^http://*.fbcdn.net/.* 720 100% 10080 override-expire override-lastmod reload-into-ims ignore-no-cache ignore-auth
refresh_pattern ^http://profile.ak.fbcdn.net/.* 720 100% 10080 override-expire override-lastmod reload-into-ims ignore-no-cache ignore-auth
refresh_pattern ^http://static.playspoon.com/.* 720 100% 10080 override-expire override-lastmod reload-into-ims ignore-no-cache ignore-auth
refresh_pattern ^http://cooking.game.playspoon.com/.* 720 100% 10080 override-expire override-lastmod reload-into-ims ignore-no-cache ignore-auth
refresh_pattern ^http://*.yahoo.*/.* 720 80% 10080 override-expire override-lastmod reload-into-ims ignore-no-cache ignore-auth
refresh_pattern ^http://*.google.com/.* 720 80% 10080 override-expire override-lastmod reload-into-ims ignore-no-cache ignore-auth
refresh_pattern ^http://*.linux.or.id/.* 720 100% 10080 override-expire override-lastmod reload-into-ims ignore-no-cache ignore-auth
refresh_pattern -i (/cgi-bin/|\?) 0 0% 0
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern ^ftp: 10080 95% 10080 override-lastmod reload-into-ims
refresh_pattern . 0 20% 10080 override-lastmod reload-into-ims

Doku zu Squid

Wenn man die ganzen Bereich zusammen klatscht hat man eine schöne Squid config mit der man nur noch die IP des Server sieht und sonst nichts. (über Java kann man aber noch den Browser und die Plugins auslesen, Blockt man aber Java was auch geht werden keinerlei Javascripts mehr ausgeführt was zu erheblichen Problemen führt)

Nach dem Abspeichern Squid neu starten mit /etc/init.d/squid3 restart und in seinem Browser oder auch über die Internetoptionen den Proxy eintragen mit localhost und dem Port 3128 wenn man einen SSH Tunnel hat oder wenn man meiner VPN Konfig gefolgt ist die IP 192.168.1.1 mit dem Port 3128.

Wenn jemand noch Tipps hat zum Thema refresh_pattern bitte schreibt mir einen Kommentar, bei Fragen natürlich auch.

Da ich kei Squid mehr nutze und nur noch VPN habe ich die Kommentar funktion abgeschaltet.

Cya
DocSchneidi ak Cheech

Squid Logo Copyright:
http://www.squid-cache.org/Artwork/
https://creativecommons.org/licenses/by-sa/3.0/

Tagged , , , , , , . Bookmark the permalink.

Comments are closed.