Ubuntu + Squid + Apache

Pagina: 1
Acties:

Onderwerpen


  • HomegrownBGP
  • Registratie: September 2005
  • Niet online
Momenteel ben ik druk bezig met het installeren van een transparante proxyserver (squid) en een webserver (apache2) voor "intranet" op Ubuntu 10.04 LTS.

Apache en squid zijn beide geinstalleerd en tot voorkort kon ik ook prima bij de webpagina voor het intranet. Het hele probleem is, dat ik zodra ik naar google.nl wil browsen hij mij automatisch weer redirect naar de pagina voor het intranet (luistert op 192.168.1.13).

Ik heb me rot gezocht op internet maar kan er niet uit komen wat het probleem is. Ik heb een aantal extra acl's in de squid server gezet, apache op poort 8080 laten luisteren en alsnog blijft het niet werken.

De configuratie van squid ziet er als volgt uit:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS
http_port 192.168.1.13:80 vhost vport=8080 defaultsite=192.168.1.13
cache_peer 127.0.0.1 parent 8080 0 no-query originserver name=server1

acl sitedomains dstdomain .google.com .tweakers.net
cache_peer_access server1 allow sitedomains

acl all src 0.0.0.0/0.0.0.0
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
#acl webcluster src 192.168.1.13
acl webcluster src 192.168.1.1/24
acl purge method PURGE
acl CONNECT method CONNECT                                    

httpd_accel_with_proxy on
httpd_accel_uses_host_header on
http_access allow localhost
http_access allow lan
http_access allow manager localhost
http_access allow manager webcluster
http_access deny manager
http_access allow purge localhost
http_access allow purge webcluster
http_access deny purge
http_access allow sitedomains
http_access deny all
acl lan src 192.168.65.142 192.168.1.1/24

cache_dir 100 MB
cache_mem 100 MB
maximum_object_size_in_memory 2048 KB
cache_replacement_policy heap LRU
memory_replacement_policy heap LRU
cahce_dir ufs /var/spool/squid 20000 16 256
access_log /var/log/squid/access.log squid
hosts_file /etc/hosts
acl business_hours time M T W H F S 6:00-20:00
http_access allow business_hours


De configuratie van apache2 ziet er als volgt uit:
code:
1
2
NameVirtualHost *:8080
Listen 127.0.0.1:8080


tevens heb ik nog een script gebruikt om de proxyserver als transparant in te stellen, die ziet er als volgt uit:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# squid server IP
SQUID_SERVER="192.168.1.13"
# Interface connected to Internet
INTERNET="eth1"
# Interface connected to LAN
LAN_IN="eth2"
# Squid port
SQUID_PORT="80"

# DO NOT MODIFY BELOW
# Clean old firewall
sudo iptables -F
sudo iptables -X
sudo iptables -t nat -F
sudo iptables -t nat -X
sudo iptables -t mangle -F
sudo iptables -t mangle -X
# Load IPTABLES modules for NAT and IP conntrack support
sudo modprobe ip_conntrack
sudo modprobe ip_conntrack_ftp
# For win xp ftp client
#modprobe ip_nat_ftp
echo 1 > /proc/sys/net/ipv4/ip_forward
# Setting default filter policy
sudo iptables -P INPUT DROP
sudo iptables -P OUTPUT ACCEPT
# Unlimited access to loop back
sudo iptables -A INPUT -i lo -j ACCEPT
sudo iptables -A OUTPUT -o lo -j ACCEPT
# Allow UDP, DNS and Passive FTP
sudo iptables -A INPUT -i $INTERNET -m state --state ESTABLISHED,RELATED -j ACCEPT
# unlimited access to LAN
LAN_IN -j ACCEPT
sudo iptables -A OUTPUT -o $LAN_IN -j ACCEPT
# DNAT port 80 request comming from LAN systems to squid 80 ($SQUID_PORT) aka transparent proxy
sudo iptables -t nat -A PREROUTING -i $LAN_IN -p tcp --dport 80 -j DNAT --to $SQUID_SERVER:$SQUI$
# if it is same system
sudo iptables -t nat -A PREROUTING -i $INTERNET -p tcp --dport 80 -j REDIRECT --to-port $SQUID_P$
# DROP everything and Log it
sudo iptables -A INPUT -j LOG
sudo iptables -A INPUT -j DROP


Eth1 heeft de verbinding met het internet, op ip 192.168.65.142 en eth2 is voor het interne netwerk op ip 192.168.1.13

Kunnen jullie mij verder helpen? Ik snap er niets meer van, zelfs hier op school durven ze geen antwoord te geven en google biedt verrassend weinig antwoorden

  • axis
  • Registratie: Juni 2000
  • Laatst online: 26-01-2023
Zo te zien komen pakketjes van je interne gebruikers dus wel bij squid aan.. Het complexe is dat je squid zowel als reverse proxy (voor het intranet) als transparent forward proxy wilt gebruiken. Je zult dus moeten zoeken hier je ervoor kunt zorgen dat alleen het intranet naar die cache_peer gaat (iets met acl dstdomain), en het andere verkeer direct naar het internet, waarbij je een direct_allow acl zult moeten maken ofzo..

edit: voor dit soort vragen kun je ook terecht op de squid-users mailing list, daar lopen meer squid-guru's rond.

[ Voor 12% gewijzigd door axis op 23-09-2010 17:13 ]

Two advices for network troubleshooting.. learn to draw diagrams in Visio, and THINK IN LAYERS!


Acties:
  • 0 Henk 'm!

  • HomegrownBGP
  • Registratie: September 2005
  • Niet online
Bedankt voor je reactie! Ik ga eens verder kijken. Wordt nog wel een pittige opgave zo te zien, vooral als je als squid leek hier ineens in gegooid wordt.

  • Kompaan
  • Registratie: Juni 2009
  • Laatst online: 02-12-2022
Misschien een idee squid op 2 verschillende poorten laten luisteren voor 2 functies (forward en reverse proxy)?

http://wiki.squid-cache.org/MultipleInstances

Dan kan je met IPTables makkelijk 2 DNAT rules maken voor de 2 scenario's (blijft binnen of naar buiten) met -d $iprange

Acties:
  • 0 Henk 'm!

  • HomegrownBGP
  • Registratie: September 2005
  • Niet online
Bedankt voor je reactie, ik heb echter het probleem al opgelost door Squid en Apache beide op een aparte machine te laten draaien. Draait momenteel als een zonnetje!