Detalhes do servidor
Squid Transparent Proxy Version: 3.3.8
OS: Ubuntu Server 14.04
Server IP: 192.168.1.3
Arquivo de configuração do Squid
(excluindo comentários 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
Lulas
-------------------------------------------------------------
-----------------------------------------------------------
----------------------------------------------------------
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
Regras de iptables
(usando a interface única "eth0" por enquanto)
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
Configuração do Cliente
O problema é que não consegui acessar a Internet nas máquinas dos meus clientes com o IP do Squid como Gateway e DNS primário, conforme mostrado abaixo.
Em um 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
Em um cliente Windows
Quando altero o DNS no cliente Ubuntu para dns-nameservers 192.168.1.1
o cliente Windows para o mesmo ip do roteador, em 192.168.1.1
vez do squid ip (192.168.1.3), posso acessar a internet em ambos. Pode não ser o caminho a ser feito, pois a página pode ser renderizada diretamente do roteador e do servidor squid usando cache (é claro que eu pude ver os logs sendo gerados em /var/log/squid3/cache.log). Também notei que meu roteador piscava para as páginas que já foram acessadas; isso pode significar que ele envia a solicitação pela Internet em vez de buscar no cache do squid.
Ainda não estou comprometida. Se eu ainda conseguir acessar as páginas visitadas nas máquinas clientes a partir do cache com a Internet desligada, ficarei satisfeito.
Qual é o procedimento para configurar clientes para o Squid Transparent Proxy ?, alguém me orienta por favor?
Atualização 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
Atualização 2
Está trabalhando na edição anterior Ubuntu 10.04(lucid)
com a versão squid Squid Cache: Version 2.7.STABLE7
, e abaixo está o arquivo de configuração do squid funcionado e eu poderia acessar a internet nas máquinas clientes quando o gateway e o DNS do cliente estiverem configurados para o ip do 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
Não sei por que não está funcionando Ubuntu 14.04
com a versão do Squid Squid Cache: Version 3.3.8
. Definitivamente, estou perdendo algumas configurações na nova versão do squid ou no novo destrro !.
fonte
squid3 -k parse
, tudo está limpo.Respostas:
Não tenho certeza, mas dê uma olhada nesta lista de verificação:
Edite o arquivo squid.conf e altere a seguinte linha para ativar o modo proxy transparente:
serviço squid reiniciar service squid recarregar
Adicione uma entrada à tabela NAT do iptables para o tráfego de entrada de encaminhamento de porta na interface interna (lado da LAN) ao servidor Squid na porta 3128 (assumindo que eth0 é a interface interna com o endereço IP 192.168.1.3
Agora você pode examinar suas tabelas de ip, tabela de filtro padrão e tabela nat, usando os seguintes comandos
Agora você pode adicionar (anexar) à tabela de filtros iptable com os seguintes comandos, para aceitar a entrada na porta 3128 para o Squid
Experimente também este
Você precisa de uma porta de 'interceptação' e uma 'proxy de encaminhamento' na configuração, mesmo que não use o proxy de encaminhamento:
Nota : A opção "transparente" foi descontinuada pela opção "interceptar" desde 2010.
fonte
intercept
como sugerido por HBruijn. As regras nat de ipptables já estão em vigor e o INPUT para o servidor proxy não está bloqueado para nenhuma porta / fonte; todos os pacotes recebidos são permitidos por enquanto.De acordo com o Squid WiKi, você tem a configuração errada na opção http_port , com Squid 3.1+ e DNAT, deve estar em
intercept
vez detransparent
.Embora a saída do seu log do Squid pareça indicar que soquetes interceptados estão ativos.
Uma segunda coisa é que o servidor Linux precisa permitir o encaminhamento de TCP-IP com
sysctl net.ipv4.ip_forward=1
fonte
intercept
, o resultado é o mesmo que não consegui acessar a internet em clientes com192.168.1.3
gateway e DNS primário. Sim, o encaminhamento de TCP-IP está ativado no sysctl.conf.Erro:
No forward-proxy ports configure
(in/var/log/squid3/cache.log
)Leia o Wiki .
Na minha experiência, o proxy transparente precisa da porta NAT
squid.conf
(ambos)fonte
Depois de adicionar "interceptar" à opção http_port, ainda tenho problemas em combinação com o modo de redirecionamento do iptables, se os clientes estiverem configurados para usar um proxy:
"ERRO: Nenhuma porta de proxy direto configurada." e "AVISO: loop de encaminhamento detectado para:"
Depois de passar pelas declarações acima, eu uso isso, como o melhor resultado agora:
a) use uma entrada de porta dupla no squid.conf assim:
Isso apresentará a porta 8080 como porta de encaminhamento comum para configuração do lado do cliente e fornece uma segunda porta para a qual encaminhar o tráfego redirecionado.
b) use uma regra do iptables como esta:
Assim, você terá uma porta proxy clássica (8080) para configurar em seus clientes e uma porta de imposição para tráfego não criptografado.
Por que você deveria querer fazer isso? Bem, se você não gosta de ter tráfego HTTPS ignorando o proxy (a necessidade de configurar clientes comuns de qualquer maneira) e se deseja oferecer suporte, mas não deseja (ou não pode) configurar dispositivos ou programas menos inteligentes.
fonte
No Ubuntu 14.04 Squid Transparent Proxy Versão: 3.3.8, você deve remover o transparente da configuração http_port 3128, quero dizer, basta deixar
não
por algum motivo não está funcionando agora.
fonte
com:
funciona
(Erro: nenhuma porta de proxy direto é configurada em /var/log/squid3/cache.log)
fonte