Endereço do Proxy configura no navegador a internet para

Iniciado por EuripedesXD, 05 de Maio de 2016, 19:20

tópico anterior - próximo tópico

EuripedesXD

Boa Noite!

Tenho  um servidor Squid, DCHP, DNS ... funciona ok, mas se coloco o endereço do servidor no navegador ( para forçar os https passar pelo squid, para validar todos os bloqueios) todos os sites começam a dar erro "ERRO - A URL requisitada não pôde ser recuperada - Acesso Negado".

Segue abaixo meus arquivos.

/var/www/html/wpad.dat

function FindProxyForUrl ( url, host)
if ( IsPlainHostName(host))
    return "DIRECT";
else
    return "PROXY 192.168.200.254:3128";


/etc/squid/squid.conf

# Porta no qual o proxy sera conectado
http_port 3128 transparent

#Nome do Servidor
visible_hostname Proxy

# Politica de acesso de ip's na rede
acl all src 0.0.0.0/0.0.0.0
acl redelocal src 192.168.200.0/24#-192.168.200.253
acl localhost src 127.0.0.1/255.255.255.255

# Permissao total a diretores
#acl diretores src 192.168.200.11 192.168.200.10
#http_access allow diretores

# Nao sei o que e
acl manager proto cache_object
acl purge method PURGE
acl CONNECT method CONNECT

# Politica de acesso de portas
acl SSL_ports port 443 563
acl Safe_ports port 21 80 443 563 70 210 280 488 59 777 901 1025-65535 2631

# Quantidade de memoria para ser usada no cache da memoria
cache_mem 1000 mb

# Tamanho maximo do arquivo para ficar no cache de memoria
maximum_object_size_in_memory 128 KB

# Tamanho maximo e minimo do arquivo a ficar no cache do HD
maximum_object_size 512 MB
minimum_object_size 1 KB

# Quando atingir a percentagem maxima, desta os
# arquivos antigos ate percentagem minima
cache_swap_high 95     
cache_swap_low 50

# Localizacao da pasta de cache do HD
# Tamanho total a utilizar, qtd de pasta e subpasta
cache_dir ufs /var/spool/squid/ 9000 16 256

# Localizao do arquivo de log de acesso do proxy
cache_access_log /var/log/squid/access.log

# Libera url's listadas no arquivo
acl sitesliberados url_regex -i "/etc/squid/sites/liberados"
http_access allow redelocal sitesliberados

# Bloqueio de sites pornos
acl porno url_regex -i "/etc/squid/sites/porno"
http_access deny redelocal porno

# Bloqueio de redes socias
acl redessociais url_regex -i "/etc/squid/sites/redessociais"
acl horario_almoco time 12:00-14:00
http_access allow redessociais horario_almoco
http_access deny redelocal redessociais

# Bloqueio de proxys
acl proxys url_regex -i "/etc/squid/sites/proxys"
http_access deny proxys

# Bloqueia url's listadas no arquivo
#acl sitesbloqueados url_regex -i "/etc/squid3/sites/bloqueados"
#http_access deny redelocal sitesbloqueados

#permitindo e negando acesso atraves das acl's
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 redelocal
http_access allow localhost
http_access deny all


/etc/init.d/firewall

#!/bin/sh


### BEGIN INIT INFO
# Provides: firewall.sh
# Required-Start: $local_fs $remote_fs $network $syslog
# Required-Stop: $local_fs $remote_fs $network $syslog
# Default-Start: 2 3 4 5 # Default-Stop: 0 1 6
# Short-Description: Start firewall.sh at boot time
# Description: Enable service provided by firewall.sh.
### END INIT INFO

modprobe ip_tables
modprobe ip_conntrack
modprobe ip_conntrack_ftp
modprobe iptable_nat
modprobe ip_nat_ftp

############################
# Definicoes das Variaveis #
############################
internet="enp2s0"
rede="enp3s0"
UP_PORTS="1024:65535"
D_PORTS=":1024"

#Servidores NTP
NTP1="200.20.186.75"
NTP2="200.20.186.94"

#route add default gw 192.168.3.1 $internet

export internet rede UP_PORTS D_PORTS NTP1 NTP2

#####################################
##### Definicao de Policiamento #####
#####################################
# Tabela filter
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
# Tabela nat
iptables -t nat -P PREROUTING ACCEPT
iptables -t nat -P OUTPUT ACCEPT
iptables -t nat -P POSTROUTING ACCEPT
     
##### Protecao contra IP Spoofing #####
     for i in /proc/sys/net/ipv4/conf/*/rp_filter; do
      echo 1 >$i
     done
     
##### Ativacao do redirecionamento de pacotes (requerido para NAT) #####
     echo "1" >/proc/sys/net/ipv4/ip_forward

###############################################################

# Redirecionando Porta 80 para SQUID
iptables -t nat -A PREROUTING -p tcp -i $rede --dport 80 -j REDIRECT --to-port 3128

iptables -A INPUT -p udp --dport 1024:65535 -j ACCEPT
iptables -A FORWARD -p udp --dport 1024:65535 -j ACCEPT
iptables -A OUTPUT -p udp --dport 1024:65535 -j ACCEPT

# Sites liberados
iptables -t nat -A PREROUTING -d pje.trtes.jus.br -j RETURN
iptables -t nat -A PREROUTING -d www.trtes.jus.br -j RETURN

# Masquerade
iptables -t nat -A POSTROUTING -o $internet -j MASQUERADE


/etc/network/interfaces

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

source /etc/network/interfaces.d/*

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto enp2s0
iface enp2s0 inet dhcp

# The second network interface
auto enp3s0
iface enp3s0 inet static
address 192.168.200.254
netmask 255.255.255.0



ddns-update-style none;

# option definitions common to all supported networks...

#option wpad code 252 = text;
#option wpad "http://192.168.200.254/wpad.dat\n";

log-facility local7;

# A slightly different configuration for an internal subnet.
subnet 192.168.200.0 netmask 255.255.255.0 {
  range 192.168.200.170 192.168.200.198;
  option domain-name-servers 8.8.8.8, 208.67.222.222;
  option domain-name "homecare.com.br";
  option routers 192.168.200.254;
  option broadcast-address 255.255.255.255;
  default-lease-time 600;
  max-lease-time 7200;
}




zekkerj

Observei um erro no teu firewall, que não é relacionado com o problema que vc reclamou.
A ordem das regras "iptables -t nat -A PREROUTING -p tcp -i $rede --dport 80 -j REDIRECT --to-port 3128" e "iptables -t nat -A PREROUTING -d pje.trtes.jus.br/www.trtes.jus.br -j RETURN" está errada. A primeira tem que estar depois destas últimas, ou suas exceções nunca vão funcionar.

Sobre a mensagem de erro, confirme que ela vem do seu Squid. Isso pode ser visto no rodapé da mensagem de erro.

Outra coisa, que sintaxe é essa???
acl redelocal src 192.168.200.0/24#-192.168.200.253
O que vc queria fazer com essa linha?
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D

EuripedesXD


A ordem das regras "iptables -t nat -A PREROUTING -p tcp -i $rede --dport 80 -j REDIRECT --to-port 3128" e "iptables -t nat -A PREROUTING -d pje.trtes.jus.br/www.trtes.jus.br -j RETURN" está errada. A primeira tem que estar depois destas últimas, ou suas exceções nunca vão funcionar.

Ahh ... valeu a dica, nem tinha visto isso, obrigado !


acl redelocal src 192.168.200.0/24#-192.168.200.253

Seria para ser todos os Ips da rede. Deveria ser como abaixo né?
acl redelocal src 192.168.200.1/24"


EuripedesXD

Sobre a mensagem de erro, confirme que ela vem do seu Squid. Isso pode ser visto no rodapé da mensagem de erro.


zekkerj

Bate com o seu servidor, né? Beleza.
Essa mensagem foi depois de corrigir a ACL "redelocal" e reiniciar o squid?
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D

EuripedesXD

Dava antes esta mensagem e mesmo depois de arrumar ainda dá.

Eu tirei os bloqueios do squid só para teste e mesmo assim persiste.

Squid.conf

# Porta no qual o proxy sera conectado
http_port 3128 transparent

#Nome do Servidor
visible_hostname Proxy

# Politica de acesso de ip's na rede
acl all src 0.0.0.0/0.0.0.0
acl redelocal src 192.168.200.1/24
acl localhost src 127.0.0.1/255.255.255.255

# Permissao total a diretores
#acl diretores src 192.168.200.11 192.168.200.10
#http_access allow diretores

# Nao sei o que e
acl manager proto cache_object
acl purge method PURGE
acl CONNECT method CONNECT

# Politica de acesso de portas
acl SSL_ports port 443 563
acl Safe_ports port 21 80 443 563 70 210 280 488 59 777 901 1025-65535 2631

# Quantidade de memoria para ser usada no cache da memoria
cache_mem 1000 mb

# Tamanho maximo do arquivo para ficar no cache de memoria
maximum_object_size_in_memory 128 KB

# Tamanho maximo e minimo do arquivo a ficar no cache do HD
maximum_object_size 512 MB
minimum_object_size 1 KB

# Quando atingir a percentagem maxima, desta os
# arquivos antigos ate percentagem minima
cache_swap_high 95     
cache_swap_low 50

# Localizacao da pasta de cache do HD
# Tamanho total a utilizar, qtd de pasta e subpasta
cache_dir ufs /var/spool/squid/ 9000 16 256

# Localizao do arquivo de log de acesso do proxy
cache_access_log /var/log/squid/access.log

# Libera url's listadas no arquivo
#acl sitesliberados url_regex -i "/etc/squid/sites/liberados"
#http_access allow redelocal sitesliberados

# Bloqueio de sites pornos
#acl porno url_regex -i "/etc/squid/sites/porno"
#http_access deny redelocal porno

# Bloqueio de redes socias
#acl redessociais url_regex -i "/etc/squid/sites/redessociais"
#acl horario_almoco time 12:00-14:00
#http_access allow redessociais horario_almoco
#http_access deny redelocal redessociais

# Bloqueio de proxys
#acl proxys url_regex -i "/etc/squid/sites/proxys"
#http_access deny redelocal proxys

# Bloqueia url's listadas no arquivo
#acl sitesbloqueados url_regex -i "/etc/squid3/sites/bloqueados"
#http_access deny redelocal sitesbloqueados

#permitindo e negando acesso atraves das acl's
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 redelocal
http_access allow localhost
http_access deny all


Mudei o Firewall

#!/bin/sh


### BEGIN INIT INFO
# Provides: firewall.sh
# Required-Start: $local_fs $remote_fs $network $syslog
# Required-Stop: $local_fs $remote_fs $network $syslog
# Default-Start: 2 3 4 5 # Default-Stop: 0 1 6
# Short-Description: Start firewall.sh at boot time
# Description: Enable service provided by firewall.sh.
### END INIT INFO

modprobe ip_tables
modprobe ip_conntrack
modprobe ip_conntrack_ftp
modprobe iptable_nat
modprobe ip_nat_ftp

############################
# Definicoes das Variaveis #
############################
internet="enp2s0"
rede="enp3s0"
UP_PORTS="1024:65535"
D_PORTS=":1024"

#route add default gw 192.168.3.1 $internet

export internet rede UP_PORTS D_PORTS

#####################################
##### Definicao de Policiamento #####
#####################################
# Tabela filter
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
# Tabela nat
iptables -t nat -P PREROUTING ACCEPT
iptables -t nat -P OUTPUT ACCEPT
iptables -t nat -P POSTROUTING ACCEPT
     
##### Protecao contra IP Spoofing #####
     for i in /proc/sys/net/ipv4/conf/*/rp_filter; do
      echo 1 >$i
     done
     
##### Ativacao do redirecionamento de pacotes (requerido para NAT) #####
     echo "1" >/proc/sys/net/ipv4/ip_forward

###############################################################

# Liberando portas altas
iptables -A INPUT -p udp --dport 1024:65535 -j ACCEPT
iptables -A FORWARD -p udp --dport 1024:65535 -j ACCEPT
iptables -A OUTPUT -p udp --dport 1024:65535 -j ACCEPT

# Sites liberados
iptables -t nat -A PREROUTING -d pje.trtes.jus.br -j RETURN
iptables -t nat -A PREROUTING -d www.trtes.jus.br -j RETURN

# Redirecionando Porta 80 para SQUID
iptables -t nat -A PREROUTING -p tcp -i $rede --dport 80 -j REDIRECT --to-port 3128

# Masquerade
iptables -t nat -A POSTROUTING -o $internet -j MASQUERADE

zekkerj

Tente colocar a ACL "redelocal" conforme abaixo.

acl redelocal src 192.168.200.0/255.255.255.0
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D

EuripedesXD

Meu amigo, continua da mesma forma.

Funciona perfeitamente, mas se configuro o servidor proxy no navegador nada funciona,
da aquela mensagem de erro nos sites, isso pq até tirei todos os bloqueios do squid só para desencargo de consciência.

Estou usando Ubuntu 16.04

zekkerj

1. Observe se sem o proxy configurado, o tráfego das estações continua a ser registrado no squid.

2. Retire o "transparent" da linha "http_port 3128 transparent", reinicie o squid e veja se altera o comportamento.
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D

EuripedesXD

Citar1. Observe se sem o proxy configurado, o tráfego das estações continua a ser registrado no squid.
Mesmo não configurando no navegador fica o registro no arquivo access.log.

Citar2. Retire o "transparent" da linha "http_port 3128 transparent", reinicie o squid e veja se altera o comportamento.
Retirei a linha, reiniciei o serviço, configurei manualmente e funcionou a internet.
Depois voltei no squid.conf e habilitei o bloqueio de redes sociais, e funcionou perfeitamente, até mesmo os que usam https.

Agora minha cabeça fritou mesmo KKKKKKKKKKKKK

O que isso quer dizer?

zekkerj

Pois pode "desfritar". Vc está usando o Squid 3.x, né? Parece que ele não pode mais trabalhar ao mesmo tempo, na mesma porta, em modo configurado e modo transparente.

Pra colocar em modo transparente e configurado ao mesmo tempo, parece que vc tem que usar portas diferentes, assim:

http_port 3128 transparent
http_port 8080


Assim vc coloca lá no WPAD, "... PROXY 192.168.200.254:8080; ...".
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D

EuripedesXD

#11
Perfeito cara, eu fiz isso.

Tem problema eu usar o isc-dhcp-server para servidor DHCP e DNSMASQ para cache de dns ao mesmo tempo?
Uso os dois para deixar o proxy transparente automatico, isc-dhcp-server para IE, e dnsmasq para outros.
Mas quando eu reiniciou o serviço dnsmasq manualmente ele trava.

Erro:


Job for dnsmasq.service failed because a timeout was exceeded. See "systemctl status dnsmasq.service" and "journalctl -xe" for details.
dnsmasq.service - dnsmasq - A lightweight DHCP and caching DNS server
   Loaded: loaded (/lib/systemd/system/dnsmasq.service; enabled; vendor preset: enabled)
  Drop-In: /run/systemd/generator/dnsmasq.service.d
           ââ50-dnsmasq-$named.conf, 50-insserv.conf-$named.conf
   Active: active (running) since Seg 2016-05-09 10:00:42 BRT; 29min ago
  Process: 1033 ExecStartPost=/etc/init.d/dnsmasq systemd-start-resolvconf (code=exited, status=0/SUCCESS)
  Process: 1021 ExecStart=/etc/init.d/dnsmasq systemd-exec (code=exited, status=0/SUCCESS)
  Process: 1002 ExecStartPre=/usr/sbin/dnsmasq --test (code=exited, status=0/SUCCESS)
Main PID: 1032 (dnsmasq)
    Tasks: 1 (limit: 512)
   Memory: 1.4M
      CPU: 130ms
   CGroup: /system.slice/dnsmasq.service
           ââ1032 /usr/sbin/dnsmasq -x /var/run/dnsmasq/dnsmasq.pid -u dnsmasq -r /var/run/dnsmasq/resolv.conf -7 /etc/dnsmasq.d

Mai 09 10:00:42 Proxy dnsmasq[1032]: nenhum servidor encontrado em /var/run/dnsmasq/resolv.conf, tentará novamente
Mai 09 10:00:42 Proxy dnsmasq[1032]: ler /etc/hosts - 6 endereços
Mai 09 10:00:42 Proxy systemd[1]: Started dnsmasq - A lightweight DHCP and caching DNS server.
Mai 09 10:00:44 Proxy dnsmasq[1032]: lendo /var/run/dnsmasq/resolv.conf
Mai 09 10:00:44 Proxy dnsmasq[1032]: usando nome de servidor 8.8.4.4#53
Mai 09 10:00:44 Proxy dnsmasq[1032]: usando nome de servidor 8.8.8.8#53
Mai 09 10:00:44 Proxy dnsmasq[1032]: usando endereços locais somente para domìnio homecare.com.br
Mai 09 10:00:44 Proxy dnsmasq[1032]: usando nome de servidor 192.168.25.1#53
Mai 09 10:00:44 Proxy dnsmasq[1032]: usando nome de servidor 8.8.8.8#53
Mai 09 10:00:44 Proxy dnsmasq[1032]: usando nome de servidor 8.8.4.4#53


Se eu reiniciar o servidor funciona tudo automaticamente perfeitamente.


dnsmasq.conf

domain-needed
bogus-priv
local=/homecare.com.br/
domain=homecare.com.br
expand-hosts
interface=enp3s0
listen-address=127.0.0.1
server=8.8.8.8
server=8.8.4.4


dhcpd.conf

ddns-update-style none;

# option definitions common to all supported networks...

option wpad code 252 = text;
option wpad "http://192.168.200.254/wpad.dat\n";

log-facility local7;

# A slightly different configuration for an internal subnet.
subnet 192.168.200.0 netmask 255.255.255.0 {
  range 192.168.200.170 192.168.200.198;
  option domain-name-servers 192.168.200.254, 208.67.222.222;
  option domain-name "homecare.com.br";
  option routers 192.168.200.254;
  option broadcast-address 255.255.255.255;
  default-lease-time 600;
  max-lease-time 7200;
}


hosts

192.168.200.254 wpad
127.0.0.1       localhost
127.0.1.1       Proxy

# The following lines are desirable for IPv6 capable hosts
::1     localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters


zekkerj

Não vi teu dnsmasq dando erro, ele tá retornando "SUCCESS"...
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D

EuripedesXD

Segue abaixo o erro certinho quanto eu reinicio o Dnsmasq.


root@Proxy:/# service dnsmasq restart
Job for dnsmasq.service failed because a timeout was exceeded. See "systemctl status dnsmasq.service" and "journalctl -xe" for details.
root@Proxy:/# service dnsmasq status
â dnsmasq.service - dnsmasq - A lightweight DHCP and caching DNS server
   Loaded: loaded (/lib/systemd/system/dnsmasq.service; enabled; vendor preset: enabled)
  Drop-In: /run/systemd/generator/dnsmasq.service.d
           ââ50-dnsmasq-$named.conf, 50-insserv.conf-$named.conf
   Active: failed (Result: timeout) since Seg 2016-05-09 12:30:03 BRT; 18min ago
  Process: 2120 ExecStop=/etc/init.d/dnsmasq systemd-stop-resolvconf (code=killed, signal=TERM)
  Process: 2197 ExecStartPost=/etc/init.d/dnsmasq systemd-start-resolvconf (code=killed, signal=TERM)
  Process: 2186 ExecStart=/etc/init.d/dnsmasq systemd-exec (code=exited, status=0/SUCCESS)
  Process: 2181 ExecStartPre=/usr/sbin/dnsmasq --test (code=exited, status=0/SUCCESS)
Main PID: 2196 (code=exited, status=0/SUCCESS)

Mai 09 12:28:33 Proxy dnsmasq[2196]: usando nome de servidor 8.8.4.4#53
Mai 09 12:28:33 Proxy dnsmasq[2196]: usando nome de servidor 8.8.8.8#53
Mai 09 12:28:33 Proxy dnsmasq[2196]: usando endereços locais somente para domínio homecare.com.br
Mai 09 12:28:33 Proxy dnsmasq[2196]: usando nome de servidor 192.168.25.1#53
Mai 09 12:28:33 Proxy dnsmasq[2196]: usando nome de servidor 8.8.8.8#53
Mai 09 12:28:33 Proxy dnsmasq[2196]: usando nome de servidor 8.8.4.4#53
Mai 09 12:30:03 Proxy systemd[1]: dnsmasq.service: Start-post operation timed out. Stopping.
Mai 09 12:30:03 Proxy systemd[1]: Failed to start dnsmasq - A lightweight DHCP and caching DNS server.
Mai 09 12:30:03 Proxy systemd[1]: dnsmasq.service: Unit entered failed state.
Mai 09 12:30:03 Proxy systemd[1]: dnsmasq.service: Failed with result 'timeout'.
root@Proxy:/#


zekkerj

Tenta ver o log do dnsmasq pra ver se tem uma pista melhor sobre esse timeout.
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D