Detalles del servidor
Squid Transparent Proxy Version: 3.3.8
OS: Ubuntu Server 14.04
Server IP: 192.168.1.3
Archivo de configuración de Squid
(excluyendo comentarios usando 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
Troncos de calamar
-------------------------------------------------------------
-----------------------------------------------------------
----------------------------------------------------------
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
Reglas de iptables
(utilizando la interfaz única "eth0" por el momento)
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
Configuración del cliente
El problema es que no pude acceder a Internet en mis máquinas cliente con IP de Squid como Gateway y DNS primario, como se muestra a continuación.
En un cliente 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
En un cliente de Windows
Cuando cambio el DNS en el cliente Ubuntu a dns-nameservers 192.168.1.1
& cliente Windows a la misma ip del enrutador en 192.168.1.1
lugar de la calamar ip (192.168.1.3), entonces podría acceder a internet en ambos. Es posible que esta no sea la forma de hacerlo, ya que la página puede representarse directamente desde el enrutador y puede que no sea desde el servidor squid usando caché (por supuesto, pude ver que los registros se generan en /var/log/squid3/cache.log). También noté que mi enrutador parpadeaba para las páginas a las que ya se tenía acceso, esto puede significar que envía la solicitud a través de Internet en lugar de buscarla en el caché de calamar.
Todavía no estoy comprometido. Si todavía pudiera acceder a las páginas visitadas en mis máquinas cliente desde la memoria caché con el Internet apagado, estaría satisfecho.
¿Cuál es el procedimiento para configurar clientes para Squid Transparent Proxy ?, ¿alguien me guía por favor?
Actualización 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
Actualización 2
Está funcionando en la edición anterior Ubuntu 10.04(lucid)
con la versión de squid Squid Cache: Version 2.7.STABLE7
, y a continuación se muestra el archivo de configuración de squid y pude acceder a Internet en las máquinas del cliente cuando la puerta de enlace y DNS del cliente están configurados en la 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
No estoy seguro de por qué no funciona Ubuntu 14.04
con la versión de Squid Squid Cache: Version 3.3.8
. Definitivamente, me faltan algunas configuraciones en la nueva versión de calamar o en la nueva destrucción.
fuente
squid3 -k parse
, todo está limpio.Respuestas:
No estoy seguro, pero eche un vistazo a esta lista de verificación:
Edite el archivo squid.conf y cambie la siguiente línea para habilitar el modo proxy transparente:
reinicio de calamar de servicio recarga de calamar de servicio
Agregue una entrada a la tabla NAT de iptables para el tráfico entrante de reenvío de puertos en la interfaz interna (lado LAN) al servidor Squid en el puerto 3128 (suponiendo que eth0 es la interfaz interna con la dirección IP 192.168.1.3
Ahora puede ver sus iptables, la tabla de filtros predeterminada y la tabla nat, utilizando los siguientes comandos
Ahora puede agregar (agregar) a la tabla de filtros iptable con los siguientes comandos, para aceptar la entrada en el puerto 3128 para Squid
Prueba también esto
Necesita tanto un puerto de 'intercepción' como un 'proxy de reenvío' en la configuración, incluso si no usa el proxy de reenvío:
Nota : La opción "transparente" ha quedado en desuso por la opción "interceptar" desde 2010.
fuente
intercept
lo sugerido por HBruijn. Las reglas nat de Iptables ya están implementadas y la ENTRADA al servidor proxy no está bloqueada para ningún puerto / fuente, todos los paquetes entrantes están permitidos por ahora.De acuerdo con Squid WiKi , tiene una configuración incorrecta en la opción http_port , con Squid 3.1+ y DNAT debería ser en
intercept
lugar detransparent
.Aunque la salida de su registro de Squid parece indicar que los sockets interceptados están activos.
Una segunda cosa es que el servidor Linux necesita permitir el reenvío TCP-IP con
sysctl net.ipv4.ip_forward=1
fuente
intercept
, el resultado es el mismo que no pude acceder a Internet en clientes con192.168.1.3
puerta de enlace y DNS principal. Sí, el reenvío TCP-IP está habilitado en sysctl.conf.Error:
No forward-proxy ports configure
(en/var/log/squid3/cache.log
)Leer Wiki .
En mi experiencia, el proxy transparente necesita un puerto NAT
squid.conf
(ambos)fuente
Después de agregar "interceptar" a la opción http_port, sigo teniendo problemas en combinación con el modo de redireccionamiento de iptables, si los clientes están configurados para usar un proxy:
"ERROR: no hay puertos de proxy de reenvío configurados". y "ADVERTENCIA: bucle de reenvío detectado para:"
Después de pasar por las declaraciones anteriores, uso esto, como el mejor resultado ahora:
a) use una entrada de doble puerto en squid.conf así:
Esto presentará el puerto 8080 como puerto de reenvío ordinario para la configuración del lado del cliente y le dará un segundo puerto para reenviar el tráfico redirigido.
b) use una regla de iptables como esta:
De esta manera, tendrá un puerto proxy clásico (8080) para configurar en sus clientes y un puerto obligatorio para el tráfico no encriptado.
¿Por qué deberías querer hacer esto? Bueno, si no le gusta que el tráfico HTTPS omita el proxy (la necesidad de configurar clientes comunes de todos modos) y si desea admitir, pero no desea (o no puede) configurar, menos dispositivos o programas inteligentes.
fuente
En Ubuntu 14.04 Squid Transparent Proxy Versión: 3.3.8, debe eliminar transparente de la configuración http_port 3128, es decir, simplemente salir
no
por alguna razón no está funcionando ahora.
fuente
con :
funciona
(Error: no se configuran puertos de proxy de reenvío en /var/log/squid3/cache.log)
fuente