[RESOLVIDO]Montando um server proxy em rede empresarial

Iniciado por cosper, 02 de Junho de 2008, 16:00

tópico anterior - próximo tópico

cosper

Boa tarde galera, tudo bem? Mais uma vez estou aqui com uma pergunta simples para vc's mas complicada para mim.

Bem, estou treinando e de quebra montando um server que vai bloquear o acesso indevido a sites aqui na empresa. Só que estou um pouco sem rumo.

Quero usar o ubuntu 7.10, squid, iptable e um programa dhcp.

Vamos as dúvidas:
1- ubuntu: uso uma versão somente texto ou posso utilizar parte gráfica?
2- squid: alguém tem um tutorial que possa seguir para me dar um norte? algo simples e de confiança?
3- iptable: qual programa posso usar?
5- dhcp: qual usar?
6- após instalar o ubuntu, devo configura-lo de alguma forma diferente para que seja um proxy? alguma forma de configuração segura?


Configuração da maquina:
sepron 3200+, 1Gb de ram, hd de 80, 2 placas de rede, sendo uma para configurar o ip externo e a outro para o interno.


Muito obrigado

rafasnn

cosper,

surigo algumas pesquisas aqui pelo fórum, tem todas as respostas que procura, como leitura complementar sugiro http://www.guiadohardware.net, pesquise lá também!
Macbook Pro 2,33 4GB 250GB
iPhone 8GB

raidicar

1 - como é iniciante, sugiro a parte grafica, parta para um sistema sem interface grafica quando dominar o vim, quando souber rotinas simples como mudar ip, dns, gateway, nome do computador, grupo de trabalho, dominar o ssh (simples na verdade). Se não sabe fazer o que eu disse via comandos, esquece a idéia de não ter a parte grafica.
2 - tutoriais sobre squid não falta no google, a instalação é simples, via apt-get, a configuração também, é so digitar squid ubuntu no google ou manual squid que tem resultados as pencas, não tem como passar um tutorial de passo a passo para a configuração, pois cada um configura de um jeito, de acordo com cada necessidade, por ex: alguns bloqueiam orkut na empresa, outros bloqueiam mas liberam para alguns usuarios, etc... para cada um dos casos as regras são diferentes, para resultados diferentes, então, conforme for aparecendo sua necessidade, poste no forum o que não consegue resolver.
3 - vc pode usar o squid.
5 - dhcp3-server, instale-o via apt-get
6 - Não, o ubuntu continua o mesmo, ao instalar o proxy squid, vc deve configurar apenas o proxy, seu arquivo de configuração se chama squid.conf e é com o que vai trabalhar, pesquise também no google acl, squid e como bloquear sites, etc... EX: se pesquisar "bloquear sites squid" sem as aspas, na primeira opção, tera um belo tuto do morimoto.
Sua preocupação com essa questão  é indevida, pois se fosse seguir essa logica, ao instalar o servidor dhcp deveria mudar o ubuntu também para ser um servidor dhcp... não precisa, proxy, dhcp, samba, etc... são serviços acrescidos ao linux, podem ser removidos e tudo continua como antes.

Um abraço
Quem ama extremamente, deixa de viver em si e vive no que ama. Na vida três coisas são certas, o amor, a morte e o Linux !
Se Platão disse, então realmente sofremos de uma perigosa doença mental.

cosper

Nossa, muito obrigado pela força. Agora é correr atrás e pesquisar. Breve coloco aki se deu certo ou errado, mas acho que com as dicas vou me dar bem, basta estudar.

Obrigado rafasnn e raidicar pelas dicas. 


cosper

Bom dia pessoal.

Bem, depois de muito ler, estudar, testar instalei o ubuntu em modo grafico mesmo, somente para testes e instalei o squid 2.6.

ate ai normal. Configurei o squid.con da seguinte forma conforme pesquisas no VOL:


###################################################
# SCRIPT DE CONFIGURACAO DO SQUID
#
#
# Porta utilizada pelo squid
#
http_port 3128 transparent
#
# Nome do servidor (sem espacos)
#
visible_hostname teste.dominio.com
#
# Servidores DNS a serem consultados
#
dns_nameservers 192.168.0.1

# Local onde sera armazenado os logs do squid
#
cache_access_log /usr/local/squid/var/logs/access.log
#
# Converte as mensagens geradas pelo squid para o Portugues
#
error_directory /usr/local/squid/share/errors/Portuguese
#
#

refresh_pattern ^ftp: 1 20% 2280
refresh_pattern ^gopher: 1 0% 2280
refresh_pattern . 1 20% 2280

acl all src 0.0.0.0/0.0.0.0
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
acl SSL_ports port 443 563
acl Safe_ports port 80                  # http
acl Safe_ports port 21                  # ftp
acl Safe_ports port 443 563         # https, snews
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 Safe_ports port 901                # SWAT
acl purge method PURGE
acl post method POST
acl CONNECT method CONNECT

http_access allow post
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


# Definiremos a seguir as regras para bloqueio dos sites pelas
# palavras adicionadas no arquivo bloqueados.txt
# As regras serão estabelecidas por grupos de acessos conforme
# as ACLs criadas abaixo.
#
acl redelocal src 192.168.0.100 #coloquei somente meu ip aki para testes
acl diretoria src "/etc/squid/acls/diretoria.txt"
acl bloqueados url_regex -i "/etc/squid/acls/bloqueados.txt"
acl permitidos url_regex -i "/etc/squid/acls/permitidos.txt"
http_access allow localhost
http_access allow diretoria
http_access deny redelocal !bloqueados

# Abaixo bloqueamos a navegacao.
# Liberado apenas pra faixa definida na "acl redelocal".
#
http_access deny all


segue arquivo bloqueados.txt:


.google.com.br
.cade.com.br


Bem, o que esta acontecendo. Minha maquina esta passando pelo proxy, pois estou monitorando os logs, mas não bloqueia os sites que eu determinei dentro do arquivo bloquados.txt

Alguem poderia me ajudar nessa?

obs: ma minha maquina eu setei no navegador o ip do proxy.

rafasnn

cosper,

segue como resolver a acl para o arquivo bloqueados.txt
http://www.guiadohardware.net/tutoriais/configurando-servidor-proxy-squid/

sugiro instalar o squid com proxy transparente, os usuários mais "espertinhos" podem burlar o proxy facilmente, já o proxy transparente fica bem dificil...  ;D
http://www.gdhpress.com.br/redeseservidores/leia/index.php?p=cap5-16

espero ter ajudado
Macbook Pro 2,33 4GB 250GB
iPhone 8GB

cosper

Me ajudou muito os posts. fiz passo a passo, cuidadosamente.

Agora estou com mais algumas dúvidas.

tenho um server lá com 2 plascas de rede, 1 vai ser da rede externa (internet) e a 2 rede interna.

tenho que ter mais algum programa para compartilhar a internet para todos? ou somente configurar as informações na placa 1 e já estará funcionando?

instalei meu squid na maquina local, com internet da claro e funcionou perfeitamente, mas somente quando setei no squid.conf o dns_nameservers da claro. Seria da mesma forma tbm com a internet a cabo?

Muito obrigado pela força.

cosper

Só para passar um feedBack pra vc's.

Consegui puxar a net para o pc, ta rodando beleza, agora estou acabando de configurar para compartilhar a net com toda a rede.

Assim que terminar coloco aki as informações.

Obrigado pela força

cosper

Boa tarde galera... agora com mais uma duvida.

Li os tutos que o rafasnn me passou, que por sinal de otima ajuda.

So que fui tentar configurar o proxy transparente e não funcionou.

Estou usando o squid 3.0.STABLE6, sendo que no tuto fala que basta colocar

transparente na porta do squid que rodaria.

coloquei como GW da rede o ip da maquina que esta com o squid e não funfo, só quando coloco diretamente no navegador o ip do pŕoxy.

Alguém pode me dar um help?

outra coisa que percebi, configurei 2 plascas de rede no server, sendo:

auto eth1
iface eth1 inet static
        address 200.200.200.1 #ipque o provedor me passou
        netmask 255.255.255.2
        network 200.200.200.2
        broadcast 200.200.200.255
        gateway 200.200.200.003
        # dns-* options are implemented by the resolvconf package, if installed
        dns-nameservers 200.255.255.20 200.255.255.30


auto eth2
iface eth2 inet static
        address 192.168.1.1
        netmask 255.255.255.0
        gatway 200.200.200.1 # ip da placa que esta recebendo a internet



testo a internet no server e não esta bloqueando nada... como se nao estivesse passando pelo squid, somente no restante das maquinas.

Alguem pode me ajudar?


 

rafasnn

e o seu arquivo /etc/squid/squid.conf? como está?
Macbook Pro 2,33 4GB 250GB
iPhone 8GB

cosper

segue meu squid.conf


http_port 3128 transparent

cache_mem 100 MB
maximum_object_size_in_memory 64 KB
maximum_object_size 512 MB
minimum_object_size 0 KB
cache_swap_low 90
cache_swap_high 95
cache_dir ufs /usr/local/squid/var/spool/squid 2048 16 256
cache_access_log /usr/local/squid/var/logs/access.log
refresh_pattern ^ftp: 15 20% 2280
refresh_pattern ^gopher: 15 0% 2280
refresh_pattern . 15 20% 2280

acl all src 192.168.1.0/24
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
acl SSL_ports port 443 563
acl Safe_ports port 80         # http
acl Safe_ports port 21         # ftp
acl Safe_ports port 443 563    # https, snews
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 Safe_ports port 901        # SWAT
acl purge method PURGE
acl CONNECT method CONNECT

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

acl proibidos dstdom_regex "/etc/squid/acls/proibidos"
http_access deny proibidos

acl bloqueados dstdomain orkut.com www.orkut.com playboy.abril.com.br
http_access deny bloqueados

#libera para rede local
acl redelocal src 192.168.1.0/24
http_access allow localhost
http_access allow redelocal

#Bloqueia acessos externos
http_access deny all

raidicar

#11
Seu server não esta bloqueado por que não esta passando mesmo pelo squid. Óbvio, afinal, o squid é aplicado as maquinas chegam pela placa DA rede do servidor (eth2 no seu caso), seu servidor esta conectado diretamente na internet, pela placa de rede DA internet (eth1), o squid não se aplica a ela, pois as requisições do servidor para a internet não passam pela eth2, saem direto pela eth1, por isso, por fora do squid. Seguindo essa lógica, vc sabe que a internet, no servidor, antes de sair pela eth1 precisa "dar um passo para traz" e passar pelo proxy, para depois, sair pela eth1. Se vc entende mais ou menos isso, já é meio caminho andado, o importante é a lógica, os comandos decoramos, a lógica, não.
Por isso, se configurar o proxy no browser do servidor, ele passara pelo squid. mas ai, o proxy não seria transparente.
O funcionario pode retirar o proxy e contornar isso, nesse caso, vou dar uma dica e, se der certo, faça o linux carregar na inicialização esses comandos.

No terminal, digite:
export http_proxy=http://200.200.200.1:3128
export ftp_proxy=http://200.200.200.1:3128
com isso, as conexões http e ftp do servidor devem ser jogada no squid e estarão sujeito as suas regras, eu particularmente, nunca precisei bloquear o servidor de internet, mas pela lógica, isso deve funcionar.

Se o proxy tiver autenticação, os comandos mudam para:
http_proxy=http://usuario:senha@200.200.200.1:3128
ftp_proxy=http://usuario:senha@200.200.200.1:3128
mas esse não é o seu caso, mas como esta estudando, é bom saber.

Com relação a proxy transparente, as vezes, esta seguindo um tutorial que não condiz com a versão do squid que usa, se for o caso, utilize-o como base, mas não o siga fielmente.

vc deu esse comando no terminal:
iptables -t nat -A PREROUTING -i eth2 -p tcp --dport 80 -j REDIRECT --to-port 3128
não vi vc cita-lo, nem citar nada parecido, e ele é importante, sem esse comando, o proxy transparente não pode rodar, no seu caso, eth2 é a placa da rede interna do servidor, ele vai redirecionar as requisições da porta 80 para o squid.

Dica: Leia atentamente os comandos, enteda-os 100%, entenda seus parametros (-t, -p, -i...), do contrario, seu estudo não valerá nada. Apesar de ter deixado-os bem mastigados, é só copiar e colar no terminal.

Uma abraço
Quem ama extremamente, deixa de viver em si e vive no que ama. Na vida três coisas são certas, o amor, a morte e o Linux !
Se Platão disse, então realmente sofremos de uma perigosa doença mental.

cosper

Bom demais as dicas......
Obrigado.

Estou estudando a fundo tudo, lendo, relendo e correndo atrás.

Quanto ao comando o iptables fiz, só que não funcionou, acho que estou fazendo algo de errado.

Vou rever passo a passo o que fiz e colocar no papel, seguir novamente e volto a postar caso não de certo.

Primeiramente vou compartilhar a internet novamente no server, segundo colocar o squid normal e depois testar o transparente.

Muito obrigado.

raidicar

bom, para deixar o proxy transparente nessa versão só é preciso duas coisas,
uma é especificar "transparent" no proxy e outra é o comando:
iptables -t nat -A PREROUTING -i eth2 -p tcp --dport 80 -j REDIRECT --to-port 3128

Nada mais é necessário. Se quiser que o servidor passe pelo proxy, pela lógica, esse comando também funcionaria, bastaria mudar a eth:
iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 3128

Mesmo o proxy sendo transparente para as maquinas, no servidor teria de configura-lo no browser, sem essa configuração, o browser não conecta, o que obrigaria o servidor a passar pelo squid.
Quem ama extremamente, deixa de viver em si e vive no que ama. Na vida três coisas são certas, o amor, a morte e o Linux !
Se Platão disse, então realmente sofremos de uma perigosa doença mental.

cosper

Boa tarde pessoal, depois de muito ler, ralar, correr..... sai o placar, server 10 X eu 0... hehehhe

O que fiz esses dias:
1- formatei e instalei a versao mais nova do ubutnu;
2- instalei um server dhcp (dhcp3 - server); (funcionando perfeitamente)
3- instalei o squid 2.6 (instalado e configurado como ja coloquei os scritps aki);
4- squid transparente
5- apliquei o seguinte comando: iptables -t nat -A PREROUTING -i eth2 -p tcp --dport 80 -j REDIRECT --to-port 3128;

coloquei outra maquina ligada nele novamente, ligo a maquina e esta ok, pegando informacoes de IP, GW, DNS, so que nao navega.

quando eu pego no firefox e seto o proxy, ai sim roda certinho, fora isso num da nada....

O que devo esta fazendo de errado, to procurando, lendo, correndo, mas to apanhando de xicote....

Valews galera.