Arquivo

Textos com Etiquetas ‘Dnsmasq’

WPAD auto proxy com Dnsmasq no CentOS

Opa,

Hoje vamos configurar nosso servidor dnsmasq para enviar a informação do endereço do servidor proxy automaticamente para os nossos navegadores (browsers). Para isso será necessário um servidor Web, nesse post utilizei o apache, para servir o arquivo wpad.dat para as máquinas da sua rede local, vamos a instalação:

# yum install httpd

Agora criamos um arquivo de configuração para associar a extensão .dat ao mime type do script de autoconfiguração no apache:

# vim /etc/httpd/conf.d/proxy_autoconfig.conf

AddType application/x-ns-proxy-autoconfig .dat

Feito isso execute um reload no serviço:

# /etc/init.d/httpd reload

OBS.: Caso utilize virtual host no apache (minha situação) configure o wpad para ser o virtual host default ou disponibilize o arquivo wpad.dat no diretório raiz do virtual host default, caso contrário irá perder tanto tempo quanto eu perdi até descobrir isso! 🙂

Agora iremos criar o arquivo wpad.dat na raiz do seu servidor Web, nesse arquivo definimos que a rede local não deverá passar pelo proxy (DIRECT) e outros tipos de conexão deverão usar o proxy (PROXY 192.168.100.250:3128):

# vim /var/www/html/wpad.dat

function FindProxyForURL(url, host) {
    if (isInNet(host, "192.168.100.0", "255.255.255.0"))
        return "DIRECT";
    else
        return "PROXY 192.168.100.250:3128";
}

Adicione uma entrada no seu arquivo hosts apontando para o endereço IP do servidor Web:

# vim /etc/hosts

192.168.100.250     wpad.local.com

E adicione uma entrada no seu servidor dnsmasq referente ao endereço do seu arquivo wpad.dat (opção 252):

# vim /etc/dnsmasq.conf

# Proxy (Com um espaço após o .dat para que algumas versões do IE funcionem)
dhcp-option=252,"http://wpad.local.com/wpad.dat "

OBS.: WPAD com DHCP só funcionou com o IE, a solução com DNS funcionou tanto para o IE quanto para o Firefox.

Recarregue seu servidor dnsmasq:

# /etc/init.d/dnsmasq reload

Acesse uma máquina, configure a conexão do navegador para utilizar proxy automático (detectar automaticamente o proxy), reinicie (restaure) sua interface de rede para obter as novas informações e pronto, no log do servidor web já deve ser possível visualizar o acesso ao wpad.dat:

# tail -f /var/log/httpd/access.log

192.168.100.144 – – [07/Jul/2009:14:00:58 -0300] “GET /wpad.dat HTTP/1.1” 200 128 “-” “Mozilla/4.0 (compatible; MSIE 7.0; Win32

Fontes: http://en.wikipedia.org/wiki/Web_Proxy_Autodiscovery_Protocol, http://users.telenet.be/mydotcom/library/network/pac.htm, http://www.howtoforge.net/squid-proxy-server-on-ubuntu-9.04-server-with-dansguardian-clamav-and-wpad-proxy-auto-detection

Categories: Linux Tags: , , , ,

PXE Boot com dnsmasq

23, abril, 2009 3 comentários

Opa,

Hoje vou falar sobre como configurar o dnsmasq para utilizar o boot via PXE (Boot via rede). O dnsmasq é um software que disponibiliza um serviço de DHCP e DNS cache para a sua rede local de forma simples e fácil. Para instalá-lo no CentOS basta executar o comando abaixo:

# yum install dnsmasq

Após instalar, basta abrir o arquivo de configuração no seu editor preferido e alterar alguns paramêtros para se adequar as suas necessidades:

# vim /etc/dnsmasq.conf

domain-needed
bogus-priv
strict-order

# dominio local
local=/domlocal.net/

expand-hosts

# define dominio local para os clientes
domain=domlocal.net

# range DHCP
dhcp-range=192.168.100.50,192.168.100.199,12h

# caso necessário deixar um MAC com IP “fixo” (xx:xx:xx:xx:xx:xx = MAC)
dhcp-host=xx:xx:xx:xx:xx:xx,nome_servidor,192.168.100.1

# endereço do gateway
dhcp-option=3,192.168.100.1

# endereço do DNS
dhcp-option=6,192.168.100.2

# endereço do WINS
dhcp-option=44,192.168.100.2

# endereço e opções netbios
dhcp-option=45,192.168.100.2
dhcp-option=46,8
dhcp-option=47

# nome do arquivo para o BOOTP
dhcp-boot=pxelinux.0

# habilita o serviço de TFTP
enable-tftp

# diretório onde serão hospedados os arquivos necessários para o boot
tftp-root=/var/tftpd

Feito isso ative o serviço na inicialização do sistema e inicie o serviço:

# chkconfig dnsmasq on
# /etc/init.d/dnsmasq start

Agora precisamos copiar os arquivos necessários para iniciar o boot via PXE, caso o diretório informado no arquivo de configuração (/var/tftpd) não exista esse é o momento para criá-lo:

# mkdir /var/tftpd

Crie também o diretório pxelinux.cfg:

# mkdir /var/tftpd/pxelinux.cfg

Dentro desse diretório vamos criar nosso arquivo default que irá conter os serviços de boot via rede disponíveis:

# vim /var/tftpd/pxelinux.cfg/default

default boot_default

label centos32-5.2
kernel centos/vmlinuz32-5.2
append initrd=centos/initrd32-5.2.img

label centos64-5.2
kernel centos/vmlinuz64-5.2
append initrd=centos/initrd64-5.2.img

implicit         0
display         message
prompt          1
timeout         80

Crie o arquivo que irá exibir as opções disponíveis para o usuário:

# vim /var/tftpd/message

Opções disponiveis para o boot:

centos32-5.2   – Instalar CentOS 5.2 versão 32 bits
centos64-5.2   – Instalar CentOS 5.2 versão 64 bits

Digite a opção desejada e pressione <Enter>.

Copie o arquivo pxelinux.0 do pacote syslinux para o diretório do serviço TFTP:

# cp /usr/lib/syslinux/pxelinux.0 /var/tftpd/pxelinux.0

Agora precisamos criar o diretório centos e copiar os arquivos do CentOS necessários para a inicialização via PXE boot:

# mkdir /var/tftpd/centos
# wget http://centos.pop.com.br/5.2/os/i386/images/pxeboot/initrd.img
# wget http://centos.pop.com.br/5.2/os/i386/images/pxeboot/vmlinuz
# mv initrd.img /var/tftpd/centos/initrd32-5.2.img
# mv vmlinuz /var/tftpd/centos/vmlinuz32-5.2

# wget http://centos.pop.com.br/5.2/os/x86_64/images/pxeboot/initrd.img
# wget http://centos.pop.com.br/5.2/os/x86_64/images/pxeboot/vmlinuz
# mv initrd.img /var/tftpd/centos/initrd64-5.2.img
# mv vmlinuz /var/tftpd/centos/vmlinuz64-5.2

Pronto! Se tudo ocorrer conforme deveria seu PXE boot já deve estar funcionando! Agora basta iniciar o boot via rede em um computador qualquer e o menu criado (arquivo message) deverá ser exibido!

Abraço!

Categories: Linux Tags: , , ,