Détails du serveur
Squid Transparent Proxy Version: 3.3.8
OS: Ubuntu Server 14.04
Server IP: 192.168.1.3
Fichier de configuration Squid
(à l'exclusion des commentaires utilisant grep)
root@ubuntu:~# grep -v '^$\|^\s*\#' /etc/squid3/squid.conf
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
acl mylocalnetwork src 192.168.1.0/24
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localhost manager
http_access allow mylocalnetwork
http_access deny manager
http_access allow localhost
http_access deny all
http_port 3128 transparent
cache_mem 8 MB
maximum_object_size_in_memory 32 KB
memory_replacement_policy heap GDSF
cache_replacement_policy heap LFUDA
cache_dir aufs /opt/squid/cache 10000 14 256
maximum_object_size 128000 KB
cache_swap_low 95
cache_swap_high 99
coredump_dir /var/spool/squid3
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern -i (/cgi-bin/|\?) 0 0% 0
refresh_pattern (Release|Packages(.gz)*)$ 0 20% 2880
refresh_pattern -i \.(gif|png|jp?g|ico|bmp|tiff?)$ 10080 95% 43200
refresh_pattern -i \.(rpm|cab|deb|exe|msi|msu|zip|tar|xz|bz|bz2|lzma|gz|tgz|rar|bin|7z|doc?|xls?|ppt?|pdf|nth|psd|sis)$ 10080 90% 43200
refresh_pattern -i \.(avi|iso|wav|mid|mp?|mpeg|mov|3gp|wm?|swf|flv|x-flv|axd)$ 43200 95% 432000
refresh_pattern -i \.(html|htm|css|js)$ 1440 75% 40320
refresh_pattern -i \.index.(html|htm)$ 0 75% 10080
refresh_pattern -i (/cgi-bin/|\?) 0 0% 0
refresh_pattern . 1440 90% 10080
quick_abort_min 0 KB
quick_abort_max 0 KB
quick_abort_pct 100
store_avg_object_size 13 KB
visible_hostname localhost
Bûches de calmar
-------------------------------------------------------------
-----------------------------------------------------------
----------------------------------------------------------
2014/07/03 22:11:57| ERROR: No forward-proxy ports configured.
2014/07/03 22:11:57| ERROR: No forward-proxy ports configured.
2014/07/03 22:11:57| ERROR: No forward-proxy ports configured.
2014/07/03 22:11:57| ERROR: No forward-proxy ports configured.
2014/07/03 22:11:57| ERROR: No forward-proxy ports configured.
2014/07/03 22:11:57| ERROR: No forward-proxy ports configured.
2014/07/03 22:11:57| ERROR: No forward-proxy ports configured.
2014/07/03 22:11:57| ERROR: No forward-proxy ports configured.
2014/07/03 22:11:57| ERROR: No forward-proxy ports configured.
2014/07/03 22:11:57| ERROR: No forward-proxy ports configured.
2014/07/03 22:11:57| ERROR: No forward-proxy ports configured.
2014/07/03 22:11:57| ERROR: No forward-proxy ports configured.
2014/07/03 22:11:57| Loaded Icons.
2014/07/03 22:11:57| HTCP Disabled.
2014/07/03 22:11:57| Pinger socket opened on FD 13
2014/07/03 22:11:57| Squid plugin modules loaded: 0
2014/07/03 22:11:57| Adaptation support is off.
2014/07/03 22:11:57| Accepting NAT intercepted HTTP Socket connections at local=0.0.0.0:3128 remote=[::] FD 11 flags=41
2014/07/03 22:11:57| Done reading /opt/squid/cache swaplog (2 entries)
2014/07/03 22:11:57| Finished rebuilding storage from disk.
2014/07/03 22:11:57| 2 Entries scanned
2014/07/03 22:11:57| 0 Invalid entries.
2014/07/03 22:11:57| 0 With invalid flags.
2014/07/03 22:11:57| 2 Objects loaded.
2014/07/03 22:11:57| 0 Objects expired.
2014/07/03 22:11:57| 0 Objects cancelled.
2014/07/03 22:11:57| 0 Duplicate URLs purged.
2014/07/03 22:11:57| 0 Swapfile clashes avoided.
2014/07/03 22:11:57| Took 0.08 seconds ( 24.94 objects/sec).
2014/07/03 22:11:57| Beginning Validation Procedure
2014/07/03 22:11:57| Completed Validation Procedure
2014/07/03 22:11:57| Validated 2 Entries
2014/07/03 22:11:57| store_swap_size = 12.00 KB
2014/07/03 22:11:57| ERROR: No forward-proxy ports configured.
2014/07/03 22:11:57| pinger: Initialising ICMP pinger ...
2014/07/03 22:11:57| pinger: ICMP socket opened.
2014/07/03 22:11:57| pinger: ICMPv6 socket opened
2014/07/03 22:11:57| Pinger exiting.
2014/07/03 22:11:58| storeLateRelease: released 0 objects
Règles Iptables
(en utilisant une seule interface "eth0" pour le moment)
iptables -t nat -A PREROUTING -i eth0 -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.1.3:3128
iptables -t nat -A PREROUTING -i eth0 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j MASQUERADE
Configuration du client
Le problème est que je ne pouvais pas accéder à Internet sur mes machines clientes avec l'IP de Squid comme passerelle et DNS primaire, comme indiqué ci-dessous.
Sur un client Ubuntu
auto eth0
iface eth0 inet static
address 192.168.1.10
netmask 255.255.255.0
gateway 192.168.1.3
dns-nameservers 192.168.1.3
Sur un client Windows
Lorsque je change DNS sur le client Ubuntu en client dns-nameservers 192.168.1.1
Windows sur la même IP du routeur 192.168.1.1
au lieu de Squid IP (192.168.1.3), je pouvais accéder à Internet sur les deux. Ce n'est peut-être pas la façon de faire car la page peut être affichée directement à partir du routeur et peut-être pas à partir du serveur Squid utilisant le cache (bien sûr, je pouvais voir les journaux générés dans /var/log/squid3/cache.log). J'ai également remarqué que mon routeur clignote pour les pages qui sont déjà consultées, cela peut signifier qu'il envoie la demande sur Internet au lieu d'aller chercher dans le cache de squid.
Je ne suis toujours pas compromis. Si je pouvais toujours accéder aux pages visitées sur mes ordinateurs clients à partir du cache après avoir fermé Internet, je serais satisfait.
Quelle est la procédure pour configurer les clients pour Squid Transparent Proxy?, Quelqu'un me guide s'il vous plaît?
Mise à jour 1
root@ubuntu:~# iptables -t nat -L -n -v
Chain PREROUTING (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
0 0 DNAT tcp -- eth0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 to:192.168.1.3:3128
0 0 REDIRECT tcp -- eth0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 redir ports 3128
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
0 0 MASQUERADE all -- * eth0 192.168.1.0/24 0.0.0.0/0
Update 2
Il fonctionne sur l'édition précédente Ubuntu 10.04(lucid)
avec la version Squid Squid Cache: Version 2.7.STABLE7
, et ci-dessous le fichier de configuration Squid a fonctionné et je pouvais accéder à Internet sur les machines clientes lorsque la passerelle et le DNS du client sont définis sur l'IP de lucid:
root@lucid:~# grep -v '^$\|^\s*\#' /etc/squid/squid.conf
acl all src all
acl manager proto cache_object
acl localhost src 127.0.0.1/32
acl to_localhost dst 127.0.0.0/8 0.0.0.0/32
acl localnet src 10.0.0.0/8 # RFC1918 possible internal network
acl localnet src 172.16.0.0/12 # RFC1918 possible internal network
acl localnet src 192.168.0.0/16 # RFC1918 possible internal network
acl mynet src 192.168.1.0/24 # RFC1918 possible internal network
acl SSL_ports port 443 # https
acl SSL_ports port 563 # snews
acl SSL_ports port 873 # rsync
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 Safe_ports port 631 # cups
acl Safe_ports port 873 # rsync
acl Safe_ports port 901 # SWAT
acl purge method PURGE
acl CONNECT method CONNECT
http_access allow manager localhost
http_access deny manager
http_access allow purge localhost
http_access deny purge
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localhost
http_access allow mynet
http_access deny all
icp_access allow localnet
icp_access deny all
http_port 3128 transparent
hierarchy_stoplist cgi-bin ?
cache_mem 8 MB
maximum_object_size_in_memory 32 KB
cache_dir ufs /var/spool/squid 2000 16 256
access_log /var/log/squid/access.log squid
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern -i (/cgi-bin/|\?) 0 0% 0
refresh_pattern (Release|Package(.gz)*)$ 0 20% 2880
refresh_pattern . 0 20% 4320
acl shoutcast rep_header X-HTTP09-First-Line ^ICY.[0-9]
upgrade_http0.9 deny shoutcast
acl apache rep_header Server ^Apache
broken_vary_encoding allow apache
extension_methods REPORT MERGE MKACTIVITY CHECKOUT
hosts_file /etc/hosts
offline_mode on
coredump_dir /var/spool/squid
Je ne sais pas pourquoi cela ne fonctionne pas Ubuntu 14.04
avec la version Squid Squid Cache: Version 3.3.8
. Il me manque définitivement certains paramètres dans la nouvelle version de squid ou dans la nouvelle destro !.
la source
squid3 -k parse
, tout est propre.Réponses:
Je ne suis pas sûr, mais veuillez jeter un œil à cette liste de contrôle:
Modifiez le fichier squid.conf et modifiez la ligne suivante pour activer le mode proxy transparent:
service squid restart service squid rechargement
Ajoutez une entrée à la table NAT iptables pour rediriger le trafic entrant sur l'interface intérieure (côté LAN) vers le serveur Squid sur le port 3128 (en supposant que eth0 est l'interface intérieure avec l'adresse IP 192.168.1.3
Vous pouvez maintenant regarder vos iptables, votre table de filtres par défaut et votre table nat, en utilisant les commandes suivantes
Vous pouvez maintenant ajouter (ajouter) à la table de filtres iptable avec les commandes suivantes, pour accepter l'entrée sur le port 3128 pour Squid
Essayez aussi ceci
Vous avez besoin à la fois d'un port d'interception et d'un port de proxy direct dans la configuration même si vous n'utilisez pas de proxy direct:
Remarque : L'option "transparent" est déconseillée par l'option "intercepter" depuis 2010.
la source
intercept
comme suggéré par HBruijn. Les règles nat d'Iptables sont déjà en place et l'ENTRÉE vers le serveur proxy n'est bloquée pour aucun port / source, tous les paquets entrants sont autorisés pour l'instant.Selon l' WiKi Squid vous avez le mauvais réglage dans la http_port option avec Squid 3.1+ et DNAT il devrait être au
intercept
lieu detransparent
.Bien que la sortie de votre journal Squid semble indiquer que les sockets interceptées sont actives.
Une deuxième chose est que le serveur Linux doit autoriser le transfert TCP-IP avec
sysctl net.ipv4.ip_forward=1
la source
intercept
, le résultat est le même que je ne pouvais pas accéder à Internet sur les clients avec192.168.1.3
comme passerelle et DNS principal. Oui, le transfert TCP-IP est activé dans sysctl.conf.Erreur:
No forward-proxy ports configure
(in/var/log/squid3/cache.log
)Lisez le wiki .
D'après mon expérience, le proxy transparent a besoin d'un port NAT dans
squid.conf
(les deux)la source
Après avoir simplement ajouté "intercepter" à l'option http_port, j'ai encore des problèmes en combinaison avec le mode de redirection iptables, si les clients sont configurés pour utiliser un proxy:
"ERREUR: aucun port proxy direct configuré." et "AVERTISSEMENT: boucle de transfert détectée pour:"
Après avoir parcouru les déclarations ci-dessus, j'utilise ceci, comme le meilleur résultat maintenant:
a) utilisez une entrée double port dans squid.conf comme ceci:
Cela présentera le port 8080 comme port de transfert ordinaire pour la configuration côté client et donnera un deuxième port vers lequel rediriger le trafic redirigé.
b) utilisez une règle iptables comme celle-ci:
Comme cela, vous aurez un port proxy classique (8080) à configurer sur vos clients et un port d'application pour le trafic non chiffré.
Pourquoi devriez-vous vouloir faire ça? Eh bien, si vous n'aimez pas que le trafic HTTPS contourne le proxy (la nécessité de configurer de toute façon des clients ordinaires) et si vous voulez prendre en charge, mais ne voulez pas (ou ne pouvez pas) configurer, moins d'appareils ou de programmes intelligents.
la source
Dans Ubuntu 14.04 Squid Transparent Proxy Version: 3.3.8, vous devez supprimer transparent de la configuration http_port 3128, je veux dire simplement quitter
ne pas
pour une raison quelconque ne fonctionne pas maintenant.
la source
avec :
Ça marche
(Erreur: aucun port proxy direct n'est configuré dans /var/log/squid3/cache.log)
la source