ungeordnet.de

Debian Squeeze mit Squid 3.1 als Anonymous Proxy

Nachdem ein gewisser Musik-Streaming Service nicht mehr aus Deutschland erreichbar ist, habe ich nach einer Lösung gesucht meinen VIP Account der noch ein paar Monate läuft weiter zu benutzen. Da fiel mir als erstes nur ein, dass ich das per Proxy oder VPN machen kann. VPN ist in dem Sinne unpraktisch, da ich nicht die ganze Zeit über einen ausländischen Server surfen möchte, da blieb also nur noch der einfach HTTP-Proxy Server.

Da ich das erstmal nur ausprobieren wollte, erstellte ich mir einen Amazon Web Services Account um mir dort eine Server-Instanz zu erstellen. Das ging auch ganz fix und lief dann mit einem Debian Squeeze. Dort hab ich dann direkt erstmal mit tinyproxy geguckt ob mein vorhaben überhaupt funktioniert und tada, es geht. Da tinyproxy aber nicht soviele Einstellungsmöglichkeiten bietet wie Squid, habe ich dann Squid installiert.

Dort gibt es für Squeeze einmal das “alte” Squid Paket in der Version 2.7 und einmal Squid 3.1. Da ich aktuelle Versionen immer besser finde, habe ich dann Squid 3.1 mit folgendem Befehl installiert:

apt-get install squid3

Soweit so gut, nun akzeptiert der Proxy aber nur interne Verbindungen und da kommt dann die Konfiguration ins Spiel. Die mitgelieferte Config ist sehr gut dokumentiert und dort kann man sich dann erstmal austoben. Da ich euch meine Config aber nicht vorenthalten möchte, könnt ihr sie euch hier angucken:

http_port 3128
http_port 8888
cache deny all
hierarchy_stoplist cgi-bin ?

access_log none
cache_store_log none
cache_log /dev/null

refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern -i (/cgi-bin/|\?) 0 0% 0
refresh_pattern . 0 20% 4320

acl manager proto cache_object
acl localhost src 127.0.0.1/32 ::1
acl to_localhost dst 127.0.0.0/8 0.0.0.0/32 ::1

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
http_access allow manager localhost
http_access deny manager

http_access deny !Safe_ports

http_access deny CONNECT !SSL_ports
auth_param basic program /usr/lib/squid3/ncsa_auth /etc/squid3/passwd

auth_param basic children 5
auth_param basic realm Squid proxy-caching web server
auth_param basic credentialsttl 2 hours
acl password proxy_auth REQUIRED
http_access allow localhost
http_access allow password
http_access deny all

forwarded_for off
request_header_access Allow allow all
request_header_access Authorization allow all
request_header_access WWW-Authenticate allow all
request_header_access Proxy-Authorization allow all
request_header_access Proxy-Authenticate allow all
request_header_access Cache-Control allow all
request_header_access Content-Encoding 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 Expires allow all
request_header_access Host allow all
request_header_access If-Modified-Since allow all
request_header_access Last-Modified allow all
request_header_access Location 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 Content-Language allow all
request_header_access Mime-Version allow all
request_header_access Retry-After allow all
request_header_access Title allow all
request_header_access Connection allow all
request_header_access Proxy-Connection allow all
request_header_access User-Agent allow all
request_header_access Cookie allow all
request_header_access All deny all

Das ganze habe ich mit Authentifizierung gemacht, da ansonsten jeder auf den Proxy zugreifen könnte, was ich aber nicht will. Ich könnte den Zugriff zwar auch per IP sperren, aber da ich nur einen DSL Anschluss besitze, war das auch keine akzeptable Lösung.
Der untere Abschnitt dient nur dazu den Proxy “Anonymous” zu machen. Die Logins werden hier einfach in der /etc/squid3/passwd gespeichert und werden mit dem Apache-Tool “htpasswd” verwaltet.

Ich werde jetzt nicht die ganzen Einstellungen durchgehen, da wie schon gesagt die Dokumentation in der mitgelieferten Config wirklich gut ist und das meiste daraus kopiert ist. Also viel Spaß damit!

[Debian] Google Mail Relay Host: Postfix vs Exim

Nachdem ich nun einige Stunden damit verbracht habe, Postfix dazu zu bringen die E-Mails über den Google Mail SMTP Server zu schicken, was letztendlich nicht geklappt hat, da diese nervigen Zertifikate irgendwie nie angenommen wurden, habe ich mich dazu entschieden auf Exim umzusteigen.

Das war soweit ich den Zeitaufwand geschätzt habe eine sehr gute Entscheidung, denn das ganze mit Exim einzurichten, hat mich nichtmal 10 Minuten gekostet und es hat sofort geklappt.

Also, wer seinen Mailversand über Google abwickeln will, sollte überlegen Exim einzusetzen anstatt Postfix.

Hier der Link zu dem Tutorial für Exim: http://wiki.debian.org/GmailAndExim4