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
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/