Proxy.pac + Apache [RESOLVIDO]

1. Proxy.pac + Apache [RESOLVIDO]

Junior B!u
juniorbiu

(usa Debian)

Enviado em 20/10/2014 - 17:11h

Senhores, boa tarde.

Estou enfrentando um problema no meu ambiente Proxy, sendo mais especifico com meu proxy.pac
Vou dar um resumo do ambiente:
- CentOS release 6.4 (Final
- Squid Cache: Version 3.1.10
- Apache/2.2.15 (Unix)

Em relação ao funcionamento, bloqueios, liberações e outros está tudo ok.

Como diferencial, temos hospedado no servidor o script do 'proxy.pac', onde é apontado o proxy da rede no DHCP (WPAD - 252) e aplicado via GPO (ambiente WS) a opção de "Detectar automaticamente" para navegação. Temos também hospedado em Data Center o 'proxy.pac' corporativo (IIS), caso o integrante esteja fora da rede interna.
Consigo acesso normal ao proxy.pac ao entrar com o endereço no navegador, ou seja, o acesso e leitura do mesmo esta OK. Se eu indicar no endereço o caminho completo 'http://ip_proxy/proxy.pac' a navegação vai ok, passa pelo proxy e tudo mais.

Acontece que encontramos um problema em que o integrante não está navegando pelo 'proxy.pac' local e sim pelo ‘pac’ centralizado.

Andei lendo bastante e temos um ponto que deve ser habilitado no Apache, trata-se do 'AddType application/x-ns-proxy-autoconfig .pac'. Aparentemente o IE tem problemas em entender o script.

Este item já foi adicionado no mime.types, httpd.conf, ... e não funciona de jeito nenhum. Já criei também o <VirtualHost...> e também não foi.

Habilitando esta opção no IIS vai sem problemas nenhum, porém, gostaria de manter essa opção no servidor local.

Hoje temos mais de 50 servidores e realizar a troca em todas as localidades é algo complicado, o que irá demandar uma força tarefa da Equipe.

Gostaria de pedir uma ajuda de todos, para que se alguém pegou este erro possa indicar como solucionou o caso.

Caso precisem de mais informações, estou à disposição.

Abs
Jr


  


2. Re: Proxy.pac + Apache [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 20/10/2014 - 17:36h

Você chegou a ler o artigo do Wellington?

http://www.vivaolinux.com.br/artigo/Wpaddat-com-Proxy-Especifico-por-Rede?pagina=1


3. Re: Proxy.pac + Apache [RESOLVIDO]

Junior B!u
juniorbiu

(usa Debian)

Enviado em 20/10/2014 - 18:13h

Boa tarde.
Sim, inclusive tive a saída:

=============
Starting httpd: [Mon Oct 20 18:08:20 2014] [error] (EAI 2)Name or service not known: Could not resolve host name *:80="" -- ignoring!
Syntax error on line 1040 of /etc/httpd/conf/httpd.conf:
Multiple <FilesMatch> arguments not (yet) supported.
=============

O erro refere-se:

<filesmatch "\.(inc|class)(\.php)?$"="">
Order deny,allow
Allow from all
</filesmatch>

Se eu comentar essa linha o httpd funciona o serviço, mas mesmo assim não navega.
Meu arquivo ficou:

<virtualhost *:80>
ServerName wpad
ServerAdmin xxx-xx@xxxx.xxx.xx
ServerAlias wpad
DocumentRoot /var/www/html/
CustomLog /var/log/httpd/wpad.log combined
AddType application/x-ns-proxy-autoconfig .dat

<directory /var/www/html>
Options -Indexes FollowSymLinks MultiViews
AllowOverride None
Order deny,allow
Allow from All
</directory>

<ifmodule mod_php5.c="">
AddType application/x-httpd-php .dat .pac .pa
php_flag magic_quotes_gpc Off
php_flag track_vars On
php_flag register_globals Off
php_value include_path .
</ifmodule>

# <filesmatch "\.(inc|class)(\.php)?$"="">
# Order deny,allow
# Allow from all
# </filesmatch>

</virtualhost>


Abs



4. Re: Proxy.pac + Apache [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 20/10/2014 - 18:48h

O Selinux está habilitado? Alguma regra de iptables? Tem analisado os logs?


5. Re: Proxy.pac + Apache [RESOLVIDO]

Junior B!u
juniorbiu

(usa Debian)

Enviado em 20/10/2014 - 18:55h

Desculpe, não entendi a relação.


6. Re: Proxy.pac + Apache [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 20/10/2014 - 18:59h

Pode está impedindo a navegação. Vou testar em uma VM aqui.


7. Re: Proxy.pac + Apache [RESOLVIDO]

Junior B!u
juniorbiu

(usa Debian)

Enviado em 20/10/2014 - 19:01h

Na verdade não tenho problema de navegação e sim do client ler o ".pac". Não tenho regras de iptables ou Selinux.

É um problema do Apache com o mime.types


8. Re: Proxy.pac + Apache [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 21/10/2014 - 01:15h

Executei os teste aqui em casa com sucesso.

# cat /etc/issue; hostname

CentOS release 6.5 (Final)
Kernel \r on an \m

amarildo.localdomain


# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
192.168.0.23 dns.amarildo.localdomain dns
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6


#cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
TYPE=Ethernet
IPADDR=192.168.0.23
NETMASK=255.255.255.0
GATEWAY=192.168.0.1
ONBOOT=yes


# yum update
# yum install httpd php squid bind bind-libs bind-utils dhcp nmap

# httpd -v; php -v

Server version: Apache/2.2.15 (Unix)
Server built: Jul 23 2014 14:17:29

PHP 5.3.3 (cli) (built: Sep 30 2014 05:55:00)
Copyright (c) 1997-2010 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies


# chkconfig httpd on
# chkconfig named on
# chkconfig squid on
# chkconfig dhcpd on

* Iptables

# /etc/init.d/iptables stop
# /etc/init.d/ip6tables stop
# chkconfig iptables off
# chkconfig ip6tables off

* SELinux:

# setenforce 0; sed -i 's/SELINUX=.*/SELINUX=permissive/' /etc/selinux/config

* Apache:

# vi /etc/httpd/conf/httpd.conf

<virtualhost *:80>
ServerName wpad
ServerAdmin xxx-xx@xxxx.xxx.xx
ServerAlias wpad
DocumentRoot /var/www/html
CustomLog /var/log/httpd/wpad.log combined
AddType application/x-ns-proxy-autoconfig .dat

<directory /var/www/html>
Options -Indexes FollowSymLinks MultiViews
AllowOverride None
Order deny,allow
Allow from All
</directory>

<ifmodule mod_php5.c="">
AddType application/x-httpd-php .dat .pac .pa
php_flag magic_quotes_gpc Off
php_flag track_vars On
php_flag register_globals Off
php_value include_path .
</ifmodule>

<filesmatch "\.(inc|class)\.php$">
Order deny,allow
Allow from all
</filesmatch>

</virtualhost>


# cd /var/www/html/
# vi wpad.dat

{
myIP="<!--?php echo $_SERVER['REMOTE_ADDR'] ?-->";
if ( isInNet(myIP, "192.168.0.0", "255.255.255.0") ||
isInNet(myIP, "192.168.1.0", "255.255.255.0") )
return "PROXY 192.168.0.23:3128";
if (shExpMatch(url,"*localhost*"))
return "DIRECT";
else return "PROXY 192.168.0.23:3128";
}

# cp wpad.dat proxy.pac
# httpd -t
Syntax OK 


# /etc/init.d/httpd start

* Bind:

# vi /etc/named.conf

//
// named.conf
//
// Provided by Red Hat bind package to configure the ISC BIND named(8) DNS
// server as a caching only nameserver (as a localhost DNS resolver only).
//
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//

acl minha-rede {
127.0.0.1;
192.168.0.0/24;
};

options {
listen-on port 53 { 127.0.0.1; 192.168.0.0/24;};
listen-on {any;};
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
empty-zones-enable no;
allow-query {any;};
allow-recursion {minha-rede;};
recursion yes;

dnssec-enable yes;
dnssec-validation yes;
dnssec-lookaside auto;

/* Path to ISC DLV key */
bindkeys-file "/etc/named.iscdlv.key";

managed-keys-directory "/var/named/dynamic";
forwarders {
8.8.8.8;
8.8.4.4;
};
};

logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
};

zone "." IN {
type hint;
file "named.ca";
};

zone "amarildo.localdomain" {
type master;
file "db.amarildo";
};

zone "0.168.192.in-addr.arpa" {
type master;
file "rev.amarildo";
};

include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";



# vi /var/named/db.amarildo

$ORIGIN amarildo.localdomain.
$TTL 38400

amarildo.localdomain. IN SOA dns.amarildo.localdomain. root.amarildo.localdomain. (
2014102001 ; serial
10800 ; refresh
3600 ; retry
604800 ; expire
38400 ) ; nefative caching TTL

dns IN A 192.168.0.23
@ IN NS dns.amarildo.localdomain.

www IN A 192.168.0.23
wpad IN A 192.168.0.23
amarildo IN A 192.168.0.23



# vi /var/named/rev.amarildo

$ORIGIN 0.168.192.in-addr.arpa.
$TTL 38400

@ SOA dns.amarildo.localdomain. root.amarildo.localdomain. (
2014102001 ; serial
10800 ; refresh
3600 ; retry
604800 ; expire
38400 ) ; negative caching TTL

@ IN NS dns.amarildo.localdomain.
23 IN PTR wpad.amarildo.localdomain.



# vi /etc/resolv.conf
search amarildo.localdomain
nameserver 192.168.0.23


# /etc/init.d/named start

# service named configtest
zone amarildo.localdomain/IN: loaded serial 2014102001
zone 0.168.192.in-addr.arpa/IN: loaded serial 2014102001
zone localhost.localdomain/IN: loaded serial 0
zone localhost/IN: loaded serial 0
zone 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa/IN: loaded serial 0
zone 1.0.0.127.in-addr.arpa/IN: loaded serial 0
zone 0.in-addr.arpa/IN: loaded serial 0


# nslookup wpad

Server: 192.168.0.23
Address: 192.168.0.23#53

Name: wpad.amarildo.localdomain
Address: 192.168.0.23



* DHCP:

# vi /etc/dhcp/dhcpd.conf

option domain-name "amarildo.localdomain";
default-lease-time 600;
max-lease-time 7200;
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.0.255;
option routers 192.168.0.1;
option domain-name-servers 192.168.0.23;
option wpad code 252 = text;
option wpad "http://wpad/proxy.pac";

subnet 192.168.0.0 netmask 255.255.255.0 {
range 192.168.0.140 192.168.0.150;
}



# vim /etc/sysconfig/dhcpd
# Command line options here
DHCPDARGS=eth0


# /etc/init.d/dhcpd start
# /etc/init.d/squid start

# nmap localhost

Starting Nmap 5.51 ( http://nmap.org ) at 2014-10-21 01:17 BRST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.0000030s latency).
Other addresses for localhost (not scanned): 127.0.0.1
Not shown: 996 closed ports
PORT STATE SERVICE
22/tcp open ssh
53/tcp open domain
80/tcp open http
3128/tcp open squid-http

Nmap done: 1 IP address (1 host up) scanned in 0.27 seconds


* Anexos

http://tinypic.com/r/20u98ue/8
http://tinypic.com/r/2ch59wz/8
http://tinypic.com/r/35870at/8
http://tinypic.com/r/2nau2xl/8
http://tinypic.com/r/2myc5mh/8





9. Re: Proxy.pac + Apache [RESOLVIDO]

Junior B!u
juniorbiu

(usa Debian)

Enviado em 21/10/2014 - 14:58h

Desculpe amigo, continuei sem entender seus apontamentos.
O servidor esta ok para liberações ou bloqueios e o problema esta na leitura do .pac.
O serviço de PHP esta ok (PHP 5.3.3 (cli) (built: Sep 30 2014 05:55:00), a entrada no httpd.conf também existe e mesmo assim continuo sem leitura do mesmo pelo IE.



10. Re: Proxy.pac + Apache [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 21/10/2014 - 15:56h

Ok!

Boa sorte no troubleshooting.


11. dhcpd.conf

Fabiano Belo Serbim
torture

(usa Debian)

Enviado em 21/10/2014 - 19:40h

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






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts