PeakSpray & IT

LINUX @Server @Desktop @Notebook @Dreambox @Nas @…

Squid 3.1 + Delay pools + TunnelStateData

Kategorie: Debian,Proxy — PeakSpray am Donnerstag, 16. Februar 2012, 16:14

Bei der Nutzung von Delay pools in Squid 3.1 unter Debian Squeeze z.bsp so


delay_pools 3

#delay pool 0.5M
delay_class 2 2
delay_access 2 allow zone_1
delay_access 2 allow zone_2
delay_access 2 deny all
delay_parameters 2 16000/65536 -1/-1

#delay pool 5M
delay_class 1 2
delay_access 1 allow zone_3
delay_access 1 deny all
delay_parameters 1 80000/5242880 -1/-1

#delay pool 1M
delay_class 1 2
delay_access 1 allow zone_4
delay_parameters 1 131072/131072 -1/-1
#no_cache deny all

tritt häufiger (mehrmals Täglich je nach Auslastung) mal die folgende Fehlermeldung auf

2012/01/26 14:40:27| TunnelStateData::Connection::error: FD 217: read/write failure: (32) Broken pipe
2012/01/26 15:19:11| Preparing for shutdown after 4947583 requests

mit dem Resultat, dass der Squid seinen Dienst quittiert!!!

Ich habe echt alles versucht aber die einzige Lösung war ein Downgrade auf Squid 2.7 – danach ist das Problem nie wieder aufgetreten.

Reproduzieren kann man das ganze so:

Squid 3.1.1 utilizing cpu (near 100%) when client using CONNECT & hitting delay pool.

How to reproduce:

1. Install squid 3.1.1
2. Add delay pool to specific host.
3. Using CONNECT to download any file from this host.
4. See cpu utilization on proxy when download in progress.

Nginx als Reverse Proxy …

Kategorie: Debian,Linux — PeakSpray am Montag, 6. Februar 2012, 10:42

Nginx als Reverse Proxy einsetzen mit Paketen von dotdeb

1. Sources von dotdeb hinzufügen zu /etc/apt/sources.list

deb http://packages.dotdeb.org stable all
deb-src http://packages.dotdeb.org stable all

2. Apt-key für dotdeb

wget -O – http://www.dotdeb.org/dotdeb.gpg | apt-key add -

apt-get update

3. Nginx installieren

apt-get install nginx-extras

4. Konfigurieren

server {
listen 80;
server_name DOMAIN.COM;
access_log /var/log/nginx/access.log main;
error_log /var/log/nginx/error.log;
# Main location
location / {
proxy_pass http://BACKEND:PORT/;
proxy_redirect off;
proxy_set_header Host BACKEND-SERVER-IP;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size 10m;
client_body_buffer_size 128k;
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
}
}
server {
listen 80;
server_name http://www.DOMAIN.COM;
location / {
rewrite ^(.*)$ http://DOMAIN.COM$1 permanent;
access_log off;
}
}

5. Backend konfigurieren

auf dem Backend ist es wichtig bzw sehr nützlich das folgendes gesetzt wird

set_real_ip_from BACKEN-SERVER-IP;

ansonsten wird in den Logs immer die IP Adresse des Reverse Proxy angezeigt.
Für statistiken ehr ungeeignet …

Proxy Auth gegen Windows AD bzw LDAP

Kategorie: Schnippets — PeakSpray am Dienstag, 17. Januar 2012, 12:06

Proxy Authentifizierung in Squid 3.x gegen Windows AD bzw LDAP

# Authentifizierung an Active Directory
auth_param basic program /usr/lib/squid3/squid_ldap_auth -R -b “dc=LOCAL,dc=DOMAIN” -D “USER@DOMAIN.LOCAL” -w “PASSWORT” -f “(sAMAccountName=%s)” -h IP_ADRESSE:3268
auth_param basic children 5
auth_param basic realm “Proxy Authentifizierung. Bitte geben Sie Ihren Benutzername und Ihr Passwort ein!”
auth_param basic credentialsttl 2 hours
external_acl_type InetGroup %LOGIN /usr/lib/squid3/squid_ldap_group -R -P -b “dc=DOMAIN,dc=LOCAL” -D “USER@DOMAIN.LOCAL” -w “PASSWORT” -f “(&(objectclass=person)(sAMAccountName=%v) (memberof=cn=%a,ou=GRUPPE,dc=DOMAIN,dc=LOCAL))” -h IP_ADRESSE:3268

acl localnet proxy_auth REQUIRED
acl InetAccess external InetGroup INTERNET_GRUPPE
http_access allow InetAccess

Alles was “FETT” markiert ist muss durch individuelle Daten ersetzt werden!