Fórum Ubuntu Linux - PT
Suporte Técnico => Servidores => Tópico iniciado por: lucascatani em 17 de Julho de 2012, 13:51
-
Boa tarde galera, estou com um problema no meu servidor. Resolvi colocar um dns interno para "testar".
O problema: Com o squid (transparete) ativo, eu não consigo acessar o servidor nas estações. Exemplo
SERVIDOR: 192.168.0.254 (APACHE + DNS + SQUID + DHCP)
ESTACAO1: 192.168.0.100
Na ESTACAO1 eu digito site, que é uma entrada da minha zona de dns ( site IN A 192.168.0.254)
Se o squid estiver rodando ele não funciona, se estiver o squid parado funciona,
Squid configuração defaul, iptables tudo ACCEPT.
-
Sua máquina aceita conexões dela mesma? Pq se eu entendi bem, tanto o squid quanto o site estão na mesma máquina, correto? Se vc estiver usando um firewall restritivo, sem liberar conexões na interface loopback, vc pode ter problemas nesse acesso.
-
Sua máquina aceita conexões dela mesma? Pq se eu entendi bem, tanto o squid quanto o site estão na mesma máquina, correto? Se vc estiver usando um firewall restritivo, sem liberar conexões na interface loopback, vc pode ter problemas nesse acesso.
Bom dia. Estão na mesma máquina. meu firewall tem 1 regra somente, redirect 80 para 3128. As 3 chains ACCEPT.
-
Você definiu algum servidor DNS na configuração do squid?
Se não definiu, o arquivo /etc/resolv.conf do servidor inclui o endereço "127.0.0.1" como primeira opção?
-
Você definiu algum servidor DNS na configuração do squid?
Se não definiu, o arquivo /etc/resolv.conf do servidor inclui o endereço "127.0.0.1" como primeira opção?
Na configuração do squid não. COmo faço?
O fato é que ao reiniciar o resolv.conf é sobrescrito.
Coloquei manualmente o nameserver 127.0.0.1 como primeira opção no resolv.conf e não resolveu.
-
Se não tem DNS configurado no Squid, deixa quieto. De qq forma, sendo proxy transparente, o DNS do servidor não entra na história. Aliás, talvez não esteja nem entrando no squid...
Qdo puder, mostre a regra de redirecionamento (iptables -t nat -A PREROUTING...). Talvez o erro esteja aí...
-
Se não tem DNS configurado no Squid, deixa quieto. De qq forma, sendo proxy transparente, o DNS do servidor não entra na história. Aliás, talvez não esteja nem entrando no squid...
Qdo puder, mostre a regra de redirecionamento (iptables -t nat -A PREROUTING...). Talvez o erro esteja aí...
Se eu digitar no navegador "sarg.l9web" aí ele funciona... mas só http://sarg , não funciona. Aparece o seguinte aviso
ERROR
The requested URL could not be retrieved
O seguinte erro foi encontrado ao tentar recuperar a URL: http://sarg/
Impossível determinar o endereço IP do nome de host "sarg"
O servidor DNS retornou:
Name Error: The domain name does not exist.
Isto significa que o cache não pode resolver o nome de host contido na URL. Verifique se o endereço está correto.
Seu administrador do cache é webmaster.
a regra, iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128
-
Estranho, vc recebe mensagem de DNS do Squid em modo transparente? :o ???
Ou você configurou o squid em seu navegador?
-
Estranho, vc recebe mensagem de DNS do Squid em modo transparente? :o ???
Ou você configurou o squid em seu navegador?
Transparente...
entendeu o esquema?
sarg.l9web entra
sarg nao entra e da a msg
-
Pois é, lucas... mas teu proxy está agindo como configurado. Você tem certeza de que não configurou o proxy no navegador???
-
No navegador está como "auto-detectar".
Pode ser a minha zona?
$TTL 86400
@ IN SOA servidor.l9web. root.servidor.l9web. (
2012070707 8H 2H 4W 1D )
@ IN NS servidor.
@ IN A 192.168.0.254
servidor IN A 192.168.0.254
sarg IN A 192.168.0.254
-
No navegador está como "auto-detectar".
Configure em "sem proxy", só pra testar, veja se o erro continua.
-
No navegador está como "auto-detectar".
Configure em "sem proxy", só pra testar, veja se o erro continua.
Mesma coisa.
Porém a idéia é que passe pelo squid, ou não? mas que funcione legal..
por acaso preciso definir a porta 53 no squid?
-
Bem, veja só: quando a máquina não tem proxy configurado, ela mesma consulta o DNS e tenta abrir a página.
Quando você tem o proxy transparente, ele captura a tentativa de abertura, já com o DNS resolvido; assim, não haveria motivo pro squid reclamar que não encontrou página.
Já quando o proxy está configurado, ao invés de fazer a consulta DNS, a estação fala com o proxy, e pede "abre o site tal pra mim". Daí o próprio squid faz a consulta, com as próprias configurações de DNS (servidor, domínio primário, domínio de busca, etc). Daí quando o site não é encontrado, aí sim o squid dá a mensagem de erro, pq ele que pesquisou. Isso que eu estou estranhando no momento.
O motivo do erro, em si, pra mim está claro: você não configurou corretamente o servidor. Provavelmente você não adicionou uma linha "domain l9web" ou "search l9web" no arquivo /etc/resolv.conf.
Só não entendo pq isso está criando problema com proxy transparente...
-
Em tempo, tem uma outra solução que pode ser mais rápida: adicionar o nome "sarg.l9web" ao arquivo /etc/hosts do servidor.
-
Bem, veja só: quando a máquina não tem proxy configurado, ela mesma consulta o DNS e tenta abrir a página.
Quando você tem o proxy transparente, ele captura a tentativa de abertura, já com o DNS resolvido; assim, não haveria motivo pro squid reclamar que não encontrou página.
Já quando o proxy está configurado, ao invés de fazer a consulta DNS, a estação fala com o proxy, e pede "abre o site tal pra mim". Daí o próprio squid faz a consulta, com as próprias configurações de DNS (servidor, domínio primário, domínio de busca, etc). Daí quando o site não é encontrado, aí sim o squid dá a mensagem de erro, pq ele que pesquisou. Isso que eu estou estranhando no momento.
O motivo do erro, em si, pra mim está claro: você não configurou corretamente o servidor. Provavelmente você não adicionou uma linha "domain l9web" ou "search l9web" no arquivo /etc/resolv.conf.
Só não entendo pq isso está criando problema com proxy transparente...
com o resolv.conf assim:
domain l9web
search l9web
nameserver 127.0.0.1
não funciona
com o hosts
127.0.0.1 localhost
127.0.0.1 servidora
192.168.0.254 sarg.l9web
também não. O Squid dá a mensagem
Porém digitando sarg.l9web sempre funciona.
-
Mostra o squid.conf completo.
-
Mostra o squid.conf completo.
http_port 3128 transparent
visible_hostname firewall.l9web.local
cache_mem 2048 MB
quick_abort_min -1
maximum_object_size 200 MB
cache_dir ufs /var/cache/squid 30000 16 256
cache_access_log /var/log/squid3/access.log
cache_log /var/log/squid3/cache.log
cache_store_log /var/log/squid3/store.log
emulate_httpd_log on
error_directory /usr/share/squid3/errors/pt-br
refresh_pattern microsoft.com/.*\.(cab|exe|ms[i|u|f]|asf|wm[v|a]|dat|zip) 4320 80% 43200 reload-into-ims
refresh_pattern -i microsoft.com/.*\.(cab|exe|ms[i|u|f]|asf|wm[v|a]|dat|zip) 4320 80% 43200 reload-into-ims
refresh_pattern -i windowsupdate.com/.*\.(cab|exe|ms[i|u|f]|asf|wm[v|a]|dat|zip) 4320 80% 43200 reload-into-ims
refresh_pattern -i microsoft.com/.*\.(cab|exe|ms[i|u|f]|asf|wm[v|a]|dat|zip) 4320 80% 43200 reload-into-ims
refresh_pattern -i windowsupdate.com/.*\.(cab|exe|ms[i|u|f]|asf|wm[v|a]|dat|zip) 4320 80% 43200 reload-into-ims
refresh_pattern -i my.windowsupdate.website.com/.*\.(cab|exe|ms[i|u|f]|asf|wm[v|a]|dat|zip) 4320 80% 43200 reload-into-ims
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern -i (/cgi-bin/|\?) 0 0% 0
refresh_pattern . 0 20% 4320
acl manager url_regex -i ^cache_object:// +i ^https?://[^/]+/squid-internal-mgr/
acl localhost src 127.0.0.1/32 ::1
acl to_localhost dst 127.0.0.0/8 0.0.0.0/32 ::1
#acl localnet src 10.0.0.0/8 # RFC 1918 possible internal network
#acl localnet src 172.16.0.0/12 # RFC 1918 possible internal network
#acl localnet src 192.168.0.0/16 # RFC 1918 possible internal network
acl localnet src fc00::/7 # RFC 4193 local private network range
acl localnet src fe80::/10 # RFC 4291 link-local (directly plugged) machines
acl redeinterna src 192.168.0.0/24 # rede interna
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 Dominios do Windows Update #####
acl windowsupdate dstdomain au.download.windowsupdate.com
acl windowsupdate dstdomain download.microsoft.com
acl windowsupdate dstdomain msgruser.dlservice.microsoft.com
acl windowsupdate dstdomain windowsupdate.com
acl windowsupdate dstdomain microsoft.com
################################
range_offset_limit -1 windowsupdate
range_offset_limit 0
http_access allow manager localhost
http_access deny manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localhost
http_access allow redeinterna
http_access allow localnet
http_access deny all
-
Então, cara; não tem nenhuma configuração aí que possa estar interferindo no DNS. O squid tem que estar usando o DNS do servidor. Você consegue resolver "sarg.l9web" na linha de comandos?
-
Então, cara; não tem nenhuma configuração aí que possa estar interferindo no DNS. O squid tem que estar usando o DNS do servidor. Você consegue resolver "sarg.l9web" na linha de comandos?
NA linha de comandos, pingando tanto sarg, quanto sarg.l9web , ele acha o destino correto.
Mesma coisa com o traceroute.
Só não rola no navegador (justamente por causa de algo no squid)
-
Então faça um teste... volte o squid.conf original, veja se assim acessa.
-
Então faça um teste... volte o squid.conf original, veja se assim acessa.
o squid.conf original não é transparente... e não tem nada de variáveis configuradas...
-
Exatamente por isso.
-
Exatamente por isso.
Aí o tráfego não passará pelo squid. Vai funcionar.
Não será transparente, e terei que remover a linha do redirecionamento do iptables...
tem alguma outra maneira de debuggar isso?
-
Como não vai passar pelo squid, Lucas? Não confunda as coisas... quem faz o tráfego passar pelo squid é o iptables, não o squid.conf.
O squid.conf só diz como o squid vai responder ao tráfego que passa por ele. Só colocar um "transparent" na primeira linha do squid não faz ele ser transparente. O meu squid também tem essa linha, e nem por isso é transparente, eu só uso ele configurado nas estações.
Você tem um problema que acha que é causado pelo squid.conf, a primeira coisa a fazer é usar uma configuração o mais próxima o possível do padrão. Se não funcionar, mesmo assim, não pode ser o Squid, concorda?
-
Como não vai passar pelo squid, Lucas? Não confunda as coisas... quem faz o tráfego passar pelo squid é o iptables, não o squid.conf.
O squid.conf só diz como o squid vai responder ao tráfego que passa por ele. Só colocar um "transparent" na primeira linha do squid não faz ele ser transparente. O meu squid também tem essa linha, e nem por isso é transparente, eu só uso ele configurado nas estações.
Você tem um problema que acha que é causado pelo squid.conf, a primeira coisa a fazer é usar uma configuração o mais próxima o possível do padrão. Se não funcionar, mesmo assim, não pode ser o Squid, concorda?
Concordo, em tempo, para que server a palavra transparent no SQUID?
-
para que server a palavra transparent no SQUID?
Serve pra indicar ao Squid que ele vai ser usado assim, e mudar a forma como ele responde aos pedidos.
-
Como não vai passar pelo squid, Lucas? Não confunda as coisas... quem faz o tráfego passar pelo squid é o iptables, não o squid.conf.
O squid.conf só diz como o squid vai responder ao tráfego que passa por ele. Só colocar um "transparent" na primeira linha do squid não faz ele ser transparente. O meu squid também tem essa linha, e nem por isso é transparente, eu só uso ele configurado nas estações.
Você tem um problema que acha que é causado pelo squid.conf, a primeira coisa a fazer é usar uma configuração o mais próxima o possível do padrão. Se não funcionar, mesmo assim, não pode ser o Squid, concorda?
Cara, com o squid original, mesma coisa. Só coloquei a minha rede local, para poder navegar
acl manager proto cache_object
acl localhost src 127.0.0.1/32 ::1
acl to_localhost dst 127.0.0.0/8 0.0.0.0/32 ::1
acl localnet src 192.168.0.0/24
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
http_access allow manager localhost
http_access deny manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localhost
http_access allow localnet
http_access deny all
http_port 3128 transparent
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 . 0 20% 4320
-
Então não pode ser o squid, tem que ser alguma coisa fora dele. Reveja a configuração de DNS do servidor...
-
Então não pode ser o squid, tem que ser alguma coisa fora dele. Reveja a configuração de DNS do servidor...
o dns é esse:
$TTL 86400
@ IN SOA servidor.l9web. root.servidor.l9web. (
2012070707 8H 2H 4W 1D )
@ IN NS servidor.
@ IN A 192.168.0.254
servidor IN A 192.168.0.254
sarg IN A 192.168.0.254
em negrito o que pode estar errado. o que acha?
-
Esse é o servidor DNS. Eu digo a configuração de cliente dns. Mais precisamente, os arquivos /etc/resolv.conf, /etc/hosts e /etc/nsswitch.conf.
-
nsswitch.conf
# /etc/nsswitch.conf
#
# Example configuration of GNU Name Service Switch functionality.
# If you have the `glibc-doc-reference' and `info' packages installed, try:
# `info libc "Name Service Switch"' for information about this file.
passwd: compat
group: compat
shadow: compat
hosts: files dns
networks: files
protocols: db files
services: db files
ethers: db files
rpc: db files
netgroup: nis
resolv.conf
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
# DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 127.0.0.1
hosts
127.0.0.1 localhost
127.0.1.1 servidor
# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
-
Bom, neste momento, sua máquina não vai ser capaz de entender "sarg" como "sarg.l9web".
Você não tem uma linha "domain" no resolv.conf, ou "search". Também não tem uma entrada "sarg" ou "sarg.l9web" no arquivo hosts, que seria a alternativa.
Faça assim, adicione a linha abaixo ao seu arquivo /etc/hosts e teste novamente o squid.
192.168.0.254 sarg.l9web sarg
-
Bom, neste momento, sua máquina não vai ser capaz de entender "sarg" como "sarg.l9web".
Você não tem uma linha "domain" no resolv.conf, ou "search". Também não tem uma entrada "sarg" ou "sarg.l9web" no arquivo hosts, que seria a alternativa.
Faça assim, adicione a linha abaixo ao seu arquivo /etc/hosts e teste novamente o squid.
192.168.0.254 sarg.l9web sarg
Colocando domain l9web e search l9web não funciona...
Sem o squid ele entende! ;)
Com essa linha (hosts) funciona, porém posso até parar o bind que continua funcionando.
-
Continuo procurando a solução, pois sem o squid funciona, com o squid, só adicionando a linha ao hosts.
Adicionando a linha ao hosts meu sistema pesquisa primeiro nesse arquivo e não no dns, resumindo, SQUID e BIND ainda estão sem funcionar.
-
Você não disse que colocando no arquivo /etc/hosts resolve o problema?
-
Você não disse que colocando no arquivo /etc/hosts resolve o problema?
Disse que funciona, não que resolve. O intuito é descobrir o problema, e não "tapar" o buraco. Se fosse algo urgente e que não tivesse outra opção, a solução teria sido a do hosts.
Para resolver MESMO tem que funcionar sem NADA exceto o squid + bind.
Se eu desativar o DNS e colocar só no hosts qualqeur endereço que seja, até globo.com, no formato que me passou, vai acessar o 192.168.0.254.
* ZEKKERJ, não me entenda mal, não estou dizendo que sua ajuda não é bem-vinda e nem que tua solução é ruim. Agradeço pela ajuda que sempre tem prestado.
-
Mas quem falou em desativar o squid, lucas? Cara, a sério, você é difícil de ser ajudado...
-
Mas quem falou em desativar o squid, lucas? Cara, a sério, você é difícil de ser ajudado...
Desativando o DNS para TESTAR rapaz... escrevi squid ao invés de DNS.
Explicando melhor:
Até se eu desativar o DNS (bind stop), com aquelas linhas adicionadas ao hosts ele acha o "sarg".
Se aquelas linha foram adicionadas com intuito de testar, acessou somente por sarg, porém, no meu dns tenho a palavra web apontando para 192.168.0.254. Cada vez que eu alterar o BIND tenho que adicionar uma linha ao hosts.
-
Em tempo, tem uma outra solução que pode ser mais rápida: adicionar o nome "sarg.l9web" ao arquivo /etc/hosts do servidor.
Tenho 2 subnets....
- a subnet 10.1.1.0 passa pelo squid, transparente
- a subnet 192.168.0.0 nao passa pelo squid
A subnet 10.1.1.0 "para de acessar" sites pelo nome seguidamente, mas pelo ip os sites acessam...
O que pode ser?
-
Quando o squid é transparente, o DNS é resolvido pela própria estação de trabalho. Quando o squid é configurado, o DNS é resolvido pelo próprio squid. Isso faz muita diferença, principalmente como ou quem esteja configurado como servidor DNS pra essa rede.
-
Quando o squid é transparente, o DNS é resolvido pela própria estação de trabalho. Quando o squid é configurado, o DNS é resolvido pelo próprio squid. Isso faz muita diferença, principalmente como ou quem esteja configurado como servidor DNS pra essa rede.
O servidor DNS é o mesmo computador que tem o squid instalado.
-
E é o mesmo das máquinas que têm o squid transparente?
-
E é o mesmo das máquinas que têm o squid transparente?
Isso, tenho 2 subnets... uma transparente e a outra não passa pelo proxy... só trava o dns daquela que passa pelo proxy de maneira transparente...
-
Há rota dessa sub-rede pro endereço do servidor DNS?
-
Há rota dessa sub-rede pro endereço do servidor DNS?
O endereço do DNS está definido no DHCP... da mesma maneira para as 2 subnets
-
Sim, mas há rota? Você sempre consegue pingar o endereço do servidor DNS a partir das estações?
-
Sim, mas há rota? Você sempre consegue pingar o endereço do servidor DNS a partir das estações?
Sim, pinga.
-
Complicado depurar problema intermitente. :-\
tente observar logs dos serviços, ocupação do servidor, falhas de interfaces... alguma coisa que dê indício de pq uma rede funciona e a outra não.
-
Bom dia,
Desculpa reabrir o tópico. Mas é que hoje tive o mesmo problema e encontrei a solução adicionando a linha append_domain .domainname.com no meu arquivo squid.conf
Não sei se já resolveu o problema, mas pensei em deixar aqui como resolvi o problema.