|
|||||||
| Wiki | Classificados | Galeria | Reviews | Jogos | Comunidades | RSS Feeds | FAQ | Termos de Uso | Sobre |
| Cadastre-se | Fotos | Blogs | Lista de Membros | Calendário | Pesquisar | Mensagens de Hoje | Marcar Fóruns Como Lidos |
FerramentasPublicidade |
From UnderLinux WikiConfigurando o Squid
[editar] IntroduçãoOlá, resolvi escrever esse howto, devido a algumas dúvidas do pessoal com relação a configuração do SQUID. - Proxy O que é o SQUID? O SQUID é um dos Servidores PROXY mais utilizados em todo o mundo, por ele ser seguro, rápido e o principal FREEWARE, servidor PROXY nada mais é do que um servidor que vai distribuir a internet na sua rede, ou seja, todas as máquinas que você quiser vão estar acessando a internet através do seu servidor PROXY, e registrando LOGS, ou seja, você saberá tudo sobre os sites que o pessoal está acessando.
[editar] InstalaçãoPrimeiramente, devemos obter o squid, pode ser feito o download através da seguinte URL: www.squid-cache.org/Versions/v2/2.4/, neste howto, eu irei utilizar a seguinte versão: squid-2.4-200205292300. Após baixar o SQUID, crie um diretório no seguinte caminho: /usr/packages, e copie o SQUID para lá. Depois, digite o seguinte comando: # tar xvfz squid-2.4-200205292300.tar.gz. Entre no diretório que foi descompactado: # cd squid-2.4-200205292300. Agora vai depender muito do que vc quer fazer: Se você quer apenas um proxy, digite o comando: # ./configure --prefix=/usr/local/squid Se você quer ter um aumento de performance de até 70%, você vai utilizar além do SQUID mais uma ferramenta chamada DISKD, a primeira coisa a se fazer é recompilar o kernel do seu sistema com algumas opções: options SYSVMSG options MSGMNB=16384 options MSGMNI=41 options MSGSEG=2049 options MSGSSZ=64 options MSGTQL=512 options SHMSEG=16 options SHMMNI=32 options SHMMAX=2097152 options SHMALL=3096 Obs: Se você ainda não sabe como recompilar o kernel, aguarde, logo estarei disponibilizando aqui um howto, descrevendo como recompilar seu kernel. Essas linha foram utilizadas para a seguinte configuração:
Analise-as e adeque a configuração do seu servidor. Quando você for configurar o SQUID, você vai adicionar seguinte opção: - ./configure --prefix=/usr/local/squid --enable-storeio=diskd. Com a opção --enable, você está utilizando apenas para habilitar o DISKD. Após configurar o SQUID, vamos compilá-lo, digitando os seguintes comandos: # make all (Este comando, irá compilar o SQUID propriamente dito). Quando terminar, digitamos: # make install Este comando irá copiar os binários para os seus devidos lugares. A próxima coisa a se fazer é configurar o arquivo de configuração, para isso, vamos editar o arquivo /usr/local/squid/etc/squid.conf.
[editar] ConfiguraçãoVamos alterar as seguintes opções:
Se você está utilizando apenas o proxy, coloque o seguinte: cache_dir ufs /usr/local/squid/cache/ 100 16 256. Se você está utilizando o proxy com o DISKD, coloque o seguinte comando: cache_dir diskd /usr/local/squid/cache/ 256 16 256 Q1=64 Q2=72.
- Crie a seguinte sintaxe: acl localnet src 172.20.40.0/255.255.252.0 Nesse caso, você está especificando sua classe de IP, e está armazenando dentro da acl LOCALNET (esse nome, eu defini, você pode colocar qualquer outro que você queira...). - Crie mais essa sintaxe: http_access allow localnet''' Neste caso, você está dando acesso a todos que estão dentro da acl localnet. Com isso, terminamos a configuração do SQUID, agora vamos a inicialização do serviço. Primeira coisa a se fazer, é dar permissão ao usuário: Crie o diretório de cache # mkdir /usr/local/squid/cache Dê permissão de gravação no diretório de cache # chmod 777 /usr/local/squid/cache Dê permissão de gravação no diretório de logs # chmod 777 /usr/local/squid/logs Dê permissão de gravação no diretório de erros, importante para verificar quando der algum problema com o serviço... chmod 777 /usr/local/squid/etc/errors Comando para mudar o dono do seguinte diretório chwon nobody.nogroup /usr/local/squid/cache Com esse comando ele irá criar os SWAP DIRECTORY /usr/local/squid/bin/squid -z Com esse comando, você está habilitando o serviço e também desabilitando o teste de DNS, esse parametro -D deve ser utilizado apenas na primeira vez que é executado, depois as próximas, é utilizado apenas: /usr/local/squid/bin/squid. /usr/local/squid/bin/squid -D Para testar, digite telnet localhost 3128.
[editar] Proxy TransparenteDepois de fazer todas as configurações que acabamos de fazer, para que o TRANSPARENT PROXY funcione, precisamos recompilar o kernel com as seguinte options:
Temos que entrar no diretório de instalação do SQUID: /usr/packages/squid-2.4-200205292300 Digitamos o comando para configurar o SQUID com o Proxy Transparente: - ./configure --prefix=/usr/local/squid --enable-storeio=diskd --enable-ipf-transparent
httpd_accel_host virtual httpd_accel_port 80 httpd_accel_with_proxy on httpd_accel_uses_host_header on Após executar essas alterações no arquivo de configuração do proxy devemos configurar o IPFILTER. pico /etc/ipf.conf Com esse comando ele irá criar o arquivo ipf.conf. Coloque o seguinte conteúdo: pass in all Agora devemos configurar o IPNAT pico /etc/ipnat.rules Coloque o seguinte conteúdo: rdr rl0 0.0.0.0/0 port 80 -> 200.250.43.17 port 3128 tcp No lugar do IP 200.250.43.17, coloque o IP do seu servidor Proxy Agora vá ao seguinte diretório: /usr/local/etc/rc.d Crie o arquivo inicia.sh com o seguinte conteúdo: #!/bin/sh ipf -Fa -E -f /etc/ipf.conf ipnat -CF -f /etc/ipnat.rules Salve o arquivo e de a seguinte permissão para ele: chmod 755 inicia.sh Agora vamos executar o Proxy, digite o seguinte comando: /usr/local/squid/bin/squid Vamos agora iniciar o IPFILTER com o seguinte comando: ipf -Fa -E -f /etc/ipf.conf Por último temos que iniciar o IPNAT, que pode ser feito através do seguinte comando: ipnat -CF -f /etc/ipnat.rules Importante: Não esqueça de apontar o default gateway das máquinas cliente para o IP do servidor Proxy. Se você ainda quiser ganhar mais ainda em performance, não perca o howto sobre SOFTUPDATES, que logo estará disponível.
[editar] Hierarquia de ProxyPara você configurar uma hierarquia de proxy é muito simples, isso é feito através da seguinte linha: cache_peer.
cache_peer 200.250.43.17 parent 3128 3130 no-digest no-query no-netdb-exchange Logo após vem o IP do Servidor por onde você quer passar.
Depois vem as options. Depois é só reiniciar o serviço, digitando os seguinte comandos: - killall squid - killall squid - /usr/local/squid/bin/squid
[editar] Bloqueando sites e restringindo horários de acessoTodas as restrições e bloqueios são feitos no próprio arquivo de configuração: /usr/local/squid/etc/squid.conf Para bloquearmos domínios, devemos proceder da seguinte maneira: Editar o arquivo e digitar: acl pro_domain dstdomain "/usr/local/squid/block/pro_domain" Nesta linha você estará definindo o arquivo onde estará os domínios que serão bloqueados. http_access deny pro_domain Essa linha tem que vir antes da http_access allow localnet Salve o arquivo e crie o seguinte diretório: mkdir /usr/local/squid/block Edite o arquivo pro_domain para colocarmos os domínios bloqueados. .cade.com.br .bol.com.br Não esqueça de reinicar o SQUID. Para bloquear URL´s (Palavras chaves) iremos fazer assim: acl pro_url url_regex "/usr/local/squid/block/pro_url" Nesta linha você estará definindo o arquivo que contém as palavras chaves definidas. http_access deny pro_url Essa linha tem que vir antes da http_access allow localnet Edite o arquivo pro_url chat sexo Agora é só reiniciar o SQUID. Se você quiser proibir alguma máquina da sua rede de acessar a internet, você deve proceder da seguinte maneira. acl pro_url src "/usr/local/squid/block/pro_ip" Nesta linha você estará definindo o arquivo que contém o ip das máquinas proibidas de acessar a internet. http_access deny pro_ip Essa linha tem que vir antes da http_access allow localnet Edite o arquivo pro_ip 172.20.42.59 172.20.42.106 Agora é só reiniciar o SQUID. Para restringir horários de acesso, basta você adicionar a seguinte linha no seu arquivo de configuração: Edite o arquivo de configuração do SQUID e adicione a seguinte linha: acl horario_restrito time SMTWHFA 12:00-15:00 http_access allow localnet horario_restrito Reinicie o SQUID [editar] url_rewriteEm breve. [editar] Autenticação de Usuários[editar] Usando Autenticacão em Servidor NT/AD (NTLM)Esse tipo de autenticacao é conhecida como NTLM . [editar] Pacotes necessáriossamba-3.0.14a-2 samba-common-3.0.14a-2 samba-client-3.0.14a-2 Obs.: As versões nao precisam ser especificamente estas , [editar] Configurando o SambaApós ter instalado o samba , vamos configurá-lo! [global] # Nome do dominio Windows workgroup = nome_do_dominio # Nome da maquina que voce quer adicionar no domínio netbios name = nome_da_maquina_proxy # Identificacao do Server - Pode ser qualquer coisa ! server string = Samba Server - Nome # Arquivo de log por usuario log file = /var/log/samba/%m.log # Tamanho do Log max log size = 50 # Fala pro samba que esta maquina vai ser um membro do dominio security = domain # Os servidores de autenticacao , em ordem , Primario Secundario password server = 192.168.0.8 192.168.0.4 # Alguns Tweaks socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192 # local master = no # Faz a maquina nao ser um domain master domain master = no # preferred master = no # Nao resolve nomes pelo server WINS dns proxy = no /etc/samba/winbind.conf # Dominio workgroup = domain_name # Nome da maquina netbios name = name # Servidores de Autenticão password server = 192.168.0.8 192.168.0.4 # Nossa máquina vai ser um domain member security = domain # Informa o range de uid (user ID) e gid (group ID) a ser usado. winbind uid = 10000-20000 winbind gid = 10000-20000 # Usar sempre o domínio o qual a máquina foi inserida winbind use default domain = yes
[editar] Adicionando a Maquina no DominioPara adicionar a maquina no dominio tenha certeza que o firewall libera conexão entre o Server do Samba e os servidores de autenticacão :
----
Estamos levando em conta que :
Temos 2 servidore de autenticacão ($_AUTH_1 - $_AUTH_2);
A máquina do samba é a mesma do squid e do firewall ;
As interfaces de entrada e saida sao as mesmas ;
----
for SRV_NTLM in $_AUTH_1 $_AUTH_2 ; do
while read PORT PROTO ; do
iptables -A OUTPUT -o $D2 -d $SRV_NTLM -p $PROTO --dport $PORT -j ACCEPT
iptables -A INPUT -i $D2 -s $SRV_NTLM -p $PROTO --sport $PORT -j ACCEPT
done <<EOF
137 UDP
138 UDP
139 TCP
445 TCP
EOF
done
net rpc join -S SERVIDOR -U USUARIO -w DOMINIO -d4
Caso a mensagem de retorno seja :
Para vermos se tudo ocorreu bem , usamos outro comando , o wbinfo wbinfo -t
[editar] Modificando o Squid.conf
auth_param ntlm program /usr/bin/ntlm_auth --debuglevel=1 -s /etc/samba/winbind.conf --helper-protocol=squid-2.5-ntlmssp auth_param ntlm children 64 auth_param ntlm max_challenge_reuses 5 auth_param ntlm max_challenge_lifetime 10 minutes acl password proxy_auth REQUIRED http_acess allow minha_rede password [editar] LembretesNão esqueca de colocar os servicos do samba e do winbind para iniciarem no boot da máquina
[editar] NCSAA autenticação de usuários é feita através de um software a parte chamado NCSA. Primeiramente devemos copiar o executável o software de autenticação para /usr/bin, ou seja para que você possa digitar o comando diretamente. Para isso digite o seguinte comando: # cp /usr/lib/squid/ncsa_auth /usr/lib Para gerar a primeira senha, você deve digitar o seguinte comando: # htpasswd -c /usr/local/squid/etc/passwd marcus Para gerar as demais, digite: # htpasswd /usr/local/squid/etc/passwd joao A diferença além do usuário é a opção -c, que serve para que seja criado o arquivo de senhas. Em seguida, insira a seguinte linha na configuração so proxy # pico /usr/local/squid/etc/squid.conf Adicione estas duas linhas: authenticate_program /usr/bin/ncsa_auth /usr/local/squid/etc/passwd - Adicione essa linha acl password proxy_auth REQUIRED - Adicione mais essa linha Mude a seguinte linha: http_access allow localnet para http_access allow localnet password Ou seja, você está dando acesso a sua rede local a internet mas pedindo autenticação.
[editar] EpílogoBom pessoal acho que é isso, logo estarei disponibilizando mais how-tos, espero ter ajudado.... Por Marcus Vinicius Ribeiro [editar] ComentáriosRe: Configurando o Squid (Pontos: 1) por vonlinkerstain (dirceu@vonlinkerstain.com.br) em Segunda, 13 junho 2005 @ 12:06:08 - Show de bola o teu artigo cara, adorei, parece-me que finalmente eu vou configurar um squid redondinho... Re: Configurando o Squid (Pontos: 1) por maiconovic (maicon@redematrix.com.br) em Segunda, 05 setembro 2005 @ 10:46:19 Informações do usuário: http://www.redematrix.com.br - Marcus Vinicius Ribeiro, eu estou com uma só duvida e é um probleminha para mim, mim dar um dica eu uso o Squid Version 2.5.STABLE4 do Red Rat 9.0. esta rodando perfeita mente. Mais quando eu temto abrir minha paginas da esse erro aquir, eu sei que é minha porta WEB que esta bloqueada mais como eu disbloquio isso.?
While trying to retrieve the URL: http://www.minhapagina.com.br/ [www.minhapagina.com.br]
The following error was encountered:
* Access Denied.
Access control configuration prevents your request from being allowed at this time. Please contact your service provider if you feel this is incorrect.
Your cache administrator is root.
Generated Mon, 05 Sep 2005 12:53:53 GMT by meus.server.com.br (squid/2.5.STABLE1)
[editar] CréditosTutorial no underlinux: http://underlinux.com.br/noticia4295.html Este tutorial foi desenvolvido por Marcus Vinicius Ribeiro e migrado para o wiki por Duca.
|