Proxy Transparente (Squid) + Firewall

Iniciado por righteous, 14 de Março de 2011, 16:52

tópico anterior - próximo tópico

righteous

Salve, salve rapazeada.

Gostaria de pedir uma ajuda, estou quebrando cabeça para resolver esse probleminha mas, sozinho não estou consequindo. O que eu preciso é que meu servidor funcione como NAT, e que todos os usuários da minha rede sejam obrigados a passar pelo squid sem a necessidade de se configurar no navegador. Abaixo os meus arquivos. Valeu!

Squid.conf:

################################################################
#################### Configuracoes do Squid ####################
################################################################

http_port 192.168.0.1:3128 transparent
visible_hostname nets1

hierarchy_stoplist cgi-bin \?

cache_mem 64 MB

maximum_object_size_in_memory 64 KB
maximum_object_size 512 MB
minimum_object_size 0 KB

cache_swap_high 95
cache_swap_low 90

cache_access_log /var/log/squid/access.log
cache_dir ufs /var/spool/squid 2048 16 256
error_directory /usr/share/squid/errors/pt-br

acl all src 0.0.0.0/0.0.0.0
acl manager proto cache_object
acl localhost src 127.0.0.0/255.255.255.255

acl SSL_ports port 443 563
acl Safe_ports port 80 21 443 563 70 210 280 488 591 777 901 1025-65535

acl purge method PURGE
acl CONNECT method CONNECT

################### Definicao das Permissoes das Regras ############

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

############################## Minhas ACLS #########################

acl palavras dstdom_regex -i "/etc/squid/confs/palavras_bloqueadas"
acl redelocal src "/etc/squid/confs/liberados"

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

#################### Definição das Regras ###########################

http_access deny palavras
http_access allow localhost
http_access allow redelocal
http_access deny all

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

cache_mgr righteous1436@gmail.com.br


Agora o /etc/rc.local
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

# Compartilha conexão
modprobe iptable_nat
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

# Prerounting
iptables -t nat -A PREROUTING -i 192.168.0.1/24 -p tcp --dport 80 -j REDIRECT --to-port 3128

exit 0


/etc/squid/confs/liberados
# Client1
192.168.0.20/255.255.255.255

# Client2
192.168.0.30/255.255.255.255


/etc/squid/confs/palavras_bloqueadas
#Palavras
uol
ig
terra
globo
gmail
hotmail
orkut
sexo


É isso falta alguma coisa? Porque no PC client1 não bloqueia nada, tem net, mas ta passando tudo. Help me, please :(

righteous

Citação de: righteous online 14 de Março de 2011, 16:52
Salve, salve rapazeada.

Gostaria de pedir uma ajuda, estou quebrando cabeça para resolver esse probleminha mas, sozinho não estou consequindo. O que eu preciso é que meu servidor funcione como NAT, e que todos os usuários da minha rede sejam obrigados a passar pelo squid sem a necessidade de se configurar no navegador. Abaixo os meus arquivos. Valeu!

Squid.conf:

################################################################
#################### Configuracoes do Squid ####################
################################################################

http_port 192.168.0.1:3128 transparent
visible_hostname nets1

hierarchy_stoplist cgi-bin \?

cache_mem 64 MB

maximum_object_size_in_memory 64 KB
maximum_object_size 512 MB
minimum_object_size 0 KB

cache_swap_high 95
cache_swap_low 90

cache_access_log /var/log/squid/access.log
cache_dir ufs /var/spool/squid 2048 16 256
error_directory /usr/share/squid/errors/pt-br

acl all src 0.0.0.0/0.0.0.0
acl manager proto cache_object
acl localhost src 127.0.0.0/255.255.255.255

acl SSL_ports port 443 563
acl Safe_ports port 80 21 443 563 70 210 280 488 591 777 901 1025-65535

acl purge method PURGE
acl CONNECT method CONNECT

################### Definicao das Permissoes das Regras ############

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

############################## Minhas ACLS #########################

acl palavras dstdom_regex -i "/etc/squid/confs/palavras_bloqueadas"
acl redelocal src "/etc/squid/confs/liberados"

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

#################### Definição das Regras ###########################

http_access deny palavras
http_access allow localhost
http_access allow redelocal
http_access deny all

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

cache_mgr righteous1436@gmail.com.br


Agora o /etc/rc.local
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

# Compartilha conexão
modprobe iptable_nat
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

# Prerounting
iptables -t nat -A PREROUTING -i 192.168.0.1/24 -p tcp --dport 80 -j REDIRECT --to-port 3128

exit 0


/etc/squid/confs/liberados
# Client1
192.168.0.20/255.255.255.255

# Client2
192.168.0.30/255.255.255.255


/etc/squid/confs/palavras_bloqueadas
#Palavras
uol
ig
terra
globo
gmail
hotmail
orkut
sexo


É isso falta alguma coisa? Porque no PC client1 não bloqueia nada, tem net, mas ta passando tudo. Help me, please :(


Esqueci de falar uma coisa, estou passando um Squid em cima de outro, já tenho um squid rodando e esse é o segundo, será que é esse o meu problema? :/

righteous

Citação de: righteous online 14 de Março de 2011, 20:08
Citação de: righteous online 14 de Março de 2011, 16:52
Salve, salve rapazeada.

Gostaria de pedir uma ajuda, estou quebrando cabeça para resolver esse probleminha mas, sozinho não estou consequindo. O que eu preciso é que meu servidor funcione como NAT, e que todos os usuários da minha rede sejam obrigados a passar pelo squid sem a necessidade de se configurar no navegador. Abaixo os meus arquivos. Valeu!

Squid.conf:

################################################################
#################### Configuracoes do Squid ####################
################################################################

http_port 192.168.0.1:3128 transparent
visible_hostname nets1

hierarchy_stoplist cgi-bin \?

cache_mem 64 MB

maximum_object_size_in_memory 64 KB
maximum_object_size 512 MB
minimum_object_size 0 KB

cache_swap_high 95
cache_swap_low 90

cache_access_log /var/log/squid/access.log
cache_dir ufs /var/spool/squid 2048 16 256
error_directory /usr/share/squid/errors/pt-br

acl all src 0.0.0.0/0.0.0.0
acl manager proto cache_object
acl localhost src 127.0.0.0/255.255.255.255

acl SSL_ports port 443 563
acl Safe_ports port 80 21 443 563 70 210 280 488 591 777 901 1025-65535

acl purge method PURGE
acl CONNECT method CONNECT

################### Definicao das Permissoes das Regras ############

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

############################## Minhas ACLS #########################

acl palavras dstdom_regex -i "/etc/squid/confs/palavras_bloqueadas"
acl redelocal src "/etc/squid/confs/liberados"

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

#################### Definição das Regras ###########################

http_access deny palavras
http_access allow localhost
http_access allow redelocal
http_access deny all

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

cache_mgr righteous1436@gmail.com.br


Agora o /etc/rc.local
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

# Compartilha conexão
modprobe iptable_nat
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

# Prerounting
iptables -t nat -A PREROUTING -i 192.168.0.1/24 -p tcp --dport 80 -j REDIRECT --to-port 3128

exit 0


/etc/squid/confs/liberados
# Client1
192.168.0.20/255.255.255.255

# Client2
192.168.0.30/255.255.255.255


/etc/squid/confs/palavras_bloqueadas
#Palavras
uol
ig
terra
globo
gmail
hotmail
orkut
sexo


É isso falta alguma coisa? Porque no PC client1 não bloqueia nada, tem net, mas ta passando tudo. Help me, please :(


Esqueci de falar uma coisa, estou passando um Squid em cima de outro, já tenho um squid rodando e esse é o segundo, será que é esse o meu problema? :/

Fala ae galera, erro besta, refiz o código desde o inicio e vi que errei em palavras_bloqueadas tanto nas acls como nas definições das regras. Porém eu testei aqui numa máquina virtual. Aqui não tem um squid principal, só um squid. Preciso ver agora se não vai dar erro sendo um squid em cima de outro squid. De qualquer forma tah ai minha contribuição para os novatos igual a mim. Quem poder me ajudar com essa minha dúvida eu agradeço.

zekkerj

Citação de: righteous online 14 de Março de 2011, 16:52
Salve, salve rapazeada.

Gostaria de pedir uma ajuda, estou quebrando cabeça para resolver esse probleminha mas, sozinho não estou consequindo. O que eu preciso é que meu servidor funcione como NAT, e que todos os usuários da minha rede sejam obrigados a passar pelo squid sem a necessidade de se configurar no navegador. Abaixo os meus arquivos. Valeu!

Squid.conf:

################################################################
#################### Configuracoes do Squid ####################
################################################################

http_port 192.168.0.1:3128 transparent
visible_hostname nets1

hierarchy_stoplist cgi-bin \?

cache_mem 64 MB

maximum_object_size_in_memory 64 KB
maximum_object_size 512 MB
minimum_object_size 0 KB

cache_swap_high 95
cache_swap_low 90

cache_access_log /var/log/squid/access.log
cache_dir ufs /var/spool/squid 2048 16 256
error_directory /usr/share/squid/errors/pt-br

acl all src 0.0.0.0/0.0.0.0
acl manager proto cache_object
acl localhost src 127.0.0.0/255.255.255.255

acl SSL_ports port 443 563
acl Safe_ports port 80 21 443 563 70 210 280 488 591 777 901 1025-65535

acl purge method PURGE
acl CONNECT method CONNECT

################### Definicao das Permissoes das Regras ############

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

############################## Minhas ACLS #########################

acl palavras dstdom_regex -i "/etc/squid/confs/palavras_bloqueadas"
acl redelocal src "/etc/squid/confs/liberados"

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

#################### Definição das Regras ###########################

http_access deny palavras
http_access allow localhost
http_access allow redelocal
http_access deny all

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

cache_mgr righteous1436@gmail.com.br


Agora o /etc/rc.local
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

# Compartilha conexão
modprobe iptable_nat
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

# Prerounting
iptables -t nat -A PREROUTING -i 192.168.0.1/24 -p tcp --dport 80 -j REDIRECT --to-port 3128

exit 0


/etc/squid/confs/liberados
# Client1
192.168.0.20/255.255.255.255

# Client2
192.168.0.30/255.255.255.255


/etc/squid/confs/palavras_bloqueadas
#Palavras
uol
ig
terra
globo
gmail
hotmail
orkut
sexo


É isso falta alguma coisa? Porque no PC client1 não bloqueia nada, tem net, mas ta passando tudo. Help me, please :(


Isso só vai funcionar se essa máquina for o gateway da sua rede.

Você disse que tem um squid sobre o outro, nesse caso vc não precisa colocar os dois transparentes, apenas o primeiro.
A ligação entre o primeiro e o segundo pode ser feita internamente, via protocolo ICP. Isso é mais eficiente e mais seguro.
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

righteous

Citação de: zekkerj online 15 de Março de 2011, 00:05
Citação de: righteous online 14 de Março de 2011, 16:52
Salve, salve rapazeada.

Gostaria de pedir uma ajuda, estou quebrando cabeça para resolver esse probleminha mas, sozinho não estou consequindo. O que eu preciso é que meu servidor funcione como NAT, e que todos os usuários da minha rede sejam obrigados a passar pelo squid sem a necessidade de se configurar no navegador. Abaixo os meus arquivos. Valeu!

Squid.conf:

################################################################
#################### Configuracoes do Squid ####################
################################################################

http_port 192.168.0.1:3128 transparent
visible_hostname nets1

hierarchy_stoplist cgi-bin \?

cache_mem 64 MB

maximum_object_size_in_memory 64 KB
maximum_object_size 512 MB
minimum_object_size 0 KB

cache_swap_high 95
cache_swap_low 90

cache_access_log /var/log/squid/access.log
cache_dir ufs /var/spool/squid 2048 16 256
error_directory /usr/share/squid/errors/pt-br

acl all src 0.0.0.0/0.0.0.0
acl manager proto cache_object
acl localhost src 127.0.0.0/255.255.255.255

acl SSL_ports port 443 563
acl Safe_ports port 80 21 443 563 70 210 280 488 591 777 901 1025-65535

acl purge method PURGE
acl CONNECT method CONNECT

################### Definicao das Permissoes das Regras ############

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

############################## Minhas ACLS #########################

acl palavras dstdom_regex -i "/etc/squid/confs/palavras_bloqueadas"
acl redelocal src "/etc/squid/confs/liberados"

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

#################### Definição das Regras ###########################

http_access deny palavras
http_access allow localhost
http_access allow redelocal
http_access deny all

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

cache_mgr righteous1436@gmail.com.br


Agora o /etc/rc.local
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

# Compartilha conexão
modprobe iptable_nat
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

# Prerounting
iptables -t nat -A PREROUTING -i 192.168.0.1/24 -p tcp --dport 80 -j REDIRECT --to-port 3128

exit 0


/etc/squid/confs/liberados
# Client1
192.168.0.20/255.255.255.255

# Client2
192.168.0.30/255.255.255.255


/etc/squid/confs/palavras_bloqueadas
#Palavras
uol
ig
terra
globo
gmail
hotmail
orkut
sexo


É isso falta alguma coisa? Porque no PC client1 não bloqueia nada, tem net, mas ta passando tudo. Help me, please :(


Isso só vai funcionar se essa máquina for o gateway da sua rede.

Você disse que tem um squid sobre o outro, nesse caso vc não precisa colocar os dois transparentes, apenas o primeiro.
A ligação entre o primeiro e o segundo pode ser feita internamente, via protocolo ICP. Isso é mais eficiente e mais seguro.

Pode me dar um força de como eu faço isso! Não sei nem por onde começar. Valeu!  ;D

zekkerj

Comece juntando documentação sobre sua rede, e projetando.
Aliás, qual o motivo de vc querer colocar o segundo servidor 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

righteous

Citação de: zekkerj online 15 de Março de 2011, 09:42
Comece juntando documentação sobre sua rede, e projetando.
Aliás, qual o motivo de vc querer colocar o segundo servidor squid?

Primeiramente para testar! Depois para poder gerar uma segunda faixa de rede em outro ponto distante que irá distribuir um sinal Wi-fi 2.4. Quero fazer uma rede classse A (que já existe e funciona com radios de 5.8 GHz) e outra classe C (que será somente rede wi-fi para PADs, Notes, Smarts e etc, a A é a rede principal que tem muitos PCs quase 255 e outra será para esta rede sem fio, somente dispositivos moveis. Por segurança e pra complicar mesmo, quero um proxy passando por outro. Aqui estou fazendo um teste com uma maquina virtual, mas dai me liguei que é a mesma coisa ;/ o squid do segundo servidor não funciona, mas se eu digitar a palavra Orkut por exemplo que é bloqueada pelo primeiro Squid aparece a tela de bloqueio do primeiro squid (a da rede classe A), sendo que queria que fosse a segunda rede (a da classe C). Valeu! :)

zekkerj

vc sabe que não precisa do segundo servidor squid pra isso, não?
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

righteous

Citação de: zekkerj online 15 de Março de 2011, 16:19
vc sabe que não precisa do segundo servidor squid pra isso, não?

+ ou - - como eu poderia fazer? Vc não acha que ficaria mais seguro dois servidores, um para cada classe?

zekkerj

Não, não acho... basta usar regras de acesso pra cada classe de endereços.
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

righteous

Citação de: zekkerj online 16 de Março de 2011, 16:22
Não, não acho... basta usar regras de acesso pra cada classe de endereços.

Me ajuda numa outra coisa zekkerj, baseado nesse meu squid o que deve fazer para negar por MAC? Valeu! :D

zekkerj

Recompilar incluindo essa opção.
Sorry. :-[
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

righteous

Citação de: zekkerj online 16 de Março de 2011, 17:40
Recompilar incluindo essa opção.
Sorry. :-[

Tudo bem, mas pode me dar um dica por onde deve começar, alguma coisa pra me ajudar. Please :)

zekkerj

Conseguir o código fonte é um bom começo.
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