Problemas com Iptables/Squid

1. Problemas com Iptables/Squid

Alessandro de Oliveira Ramires
aleramires

(usa Outra)

Enviado em 18/04/2013 - 17:48h

Olá pessoal, estou configurando um servidor Proxy com o Squid3.

O proxy irá atuar de forma transparente, porém ao executar o script para fazer o nat e o redirecionamento das requisições da porta 80 para a porta 3128 do squid, as máquinas clientes não conseguem mais abrir nenhuma página de internet, mas ainda assim consigo "pingar" pelo prompt para qualquer site.
O script é o seguinte:
-------------------------------------------------------------------------------------------------------------------

#!/bin/bash

#Script de Firewall domínio XXXXXX

#Limpando as tabelas
iptables -F
iptables -F INPUT
iptables -F OUTPUT
iptables -t nat -F
iptables -t mangle -F

#Ativando o Forward
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -P FORWARD ACCEPT

#Ativando o compartilhamento - Rede Externa
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE

#Ativando o Proxy transparente - Rede Interna
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128

---------------------------------------------------------------------------------------------------------------------

Se eu desabilito a linha:
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128,
as máquinas clientes passam a acessar a internet normalmente.

Se alguém puder me ajudar, agradeço.
Valeu!



  


2. Re: Problemas com Iptables/Squid

Buckminster
Buckminster

(usa Debian)

Enviado em 18/04/2013 - 21:59h

Qual a mensagem que aparece no navegador quando a navegação está bloqueada?

Posta aqui teu squid.conf.


3. Re: Problemas com Iptables/Squid

Estefanio Brunhara
stefaniobrunhara

(usa CentOS)

Enviado em 19/04/2013 - 13:04h

aleramires escreveu:

#Ativando o compartilhamento - Rede Externa
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE

#Ativando o Proxy transparente - Rede Interna
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128




A regra diz que você deve fazer primeira o PRE e depois o POST, altere para isto, faça o teste


#Ativando o Proxy transparente - Rede Interna <<- alterei a eth0 para eth1 ok >>
iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 3128

#Ativando o compartilhamento - Rede Externa
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE




4. Re: Problemas com Iptables/Squid

Alessandro de Oliveira Ramires
aleramires

(usa Outra)

Enviado em 19/04/2013 - 17:39h

Buckminster escreveu:

Qual a mensagem que aparece no navegador quando a navegação está bloqueada?

Posta aqui teu squid.conf.


----------------------------------------------------------------------------------------------

#Configuração do Squid

# Mensagens de erro em Português
error_directory /usr/share/squid/errors/Portuguese

# Porta do Squid
http_port 3128 transparent

# Nome do servidor
visible_hostname alfa

# Host onde as requisições serão enviadas
httpd_accel_host alfa

#Porta na qual as requisições serão enviadas
httpd_accel_port 80

#Trabalhando como cache

httpd_accel_with_proxy on
httpd_accel_uses_host_header on

# Cache
cache_mem 1000 MB
maximum_object_size_in_memory 32 KB
maximum_object_size 8192 KB
minimum_object_size 0 KB
cache_swap_low 90
cache_swap_high 95
cache_dir ufs /etc/squid/cache 50000 16 256


# Logs de acesso
cache_access_log /var/log/squid3/access.log


### Acl's #####

acl all src 0.0.0.0/0.0.0.0

acl rede_local src 192.168.100.0/24



### Diretivas http_access ####

http_access allow rede_local

http_access deny all



5. Re: Problemas com Iptables/Squid

Alessandro de Oliveira Ramires
aleramires

(usa Outra)

Enviado em 19/04/2013 - 17:42h

estefaniobrunha escreveu:

aleramires escreveu:

#Ativando o compartilhamento - Rede Externa
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE

#Ativando o Proxy transparente - Rede Interna
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128




A regra diz que você deve fazer primeira o PRE e depois o POST, altere para isto, faça o teste


#Ativando o Proxy transparente - Rede Interna <<- alterei a eth0 para eth1 ok >>
iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 3128

#Ativando o compartilhamento - Rede Externa
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE



---------------------------------------------------------

Fiz a configuração conforme vc me pediu, porém ainda não obtive sucesso.
Na verdade quando alterei:
#Ativando o Proxy transparente - Rede Interna <<- alterei a eth0 para eth1 ok >>
iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 3128

as máquinas clientes acessaram a internet normalmente só que sem passar pelo squid.



6. Re: Problemas com Iptables/Squid

Buckminster
Buckminster

(usa Debian)

Enviado em 19/04/2013 - 18:48h

No IPtables:
Primeiro redireciona, depois faça o compartilhamento:

#Proxy transparente - Em ethx vai a placa que sai para a rede interna.
iptables -t nat -A PREROUTING -i ethx -p tcp --dport 80 -j REDIRECT --to-port 3128

#Ativando o compartilhamento - Em ethx vai a placa de rede de entrada da internet. Esta não deve ser a mesma que a de cima.
iptables -t nat -A POSTROUTING -o ethx -j MASQUERADE

Essa regra aqui "iptables -P FORWARD ACCEPT" é desnecessária.

No Squid:
Se a versão do teu Squid for 3.0 ainda é "transparent".
Se for 3.1 ou acima, o certo é "http_port 3128 intercept".


7. Verificar access.log

André Romero Alves de Souza
arasouza

(usa Debian)

Enviado em 20/04/2013 - 11:01h

Olha só dá uma olhada no access.log do squid, vê se ele não tá bloqueando nada, se vc para o redirecionamento e as maquinas navegam então tá tudo ok, o problema no redirecionamento pode ser a interface, dá um ifconfig e confirma as interfaces wan eth0? lan eth1? pois vc tá mandando certo as requisiçoes na 80 para a 3128 do squid. então falta pouco.. se não ja corrigiu... posta ai..


8. Re: Problemas com Iptables/Squid

Estefanio Brunhara
stefaniobrunhara

(usa CentOS)

Enviado em 21/04/2013 - 17:46h

aleramires escreveu:

Fiz a configuração conforme vc me pediu, porém ainda não obtive sucesso.
Na verdade quando alterei:
#Ativando o Proxy transparente - Rede Interna <<- alterei a eth0 para eth1 ok >>
iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 3128

as máquinas clientes acessaram a internet normalmente só que sem passar pelo squid.


Esqueci de colocar a rede tenta assim, no meu iptables não precisei de informar o -i ethX

iptables -t nat -A PREROUTING -s 192.168.X.X/24 -p tcp --dport 80 -j REDIRECT --to-port 3128








Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts