amppinho
(usa Debian)
Enviado em 24/01/2012 - 15:47h
Boa Tarde! Estou com um problema "similar ou igual" ao do usuário muan.
O meu problema é o seguinte, eu tenho uma rede que é controlada por um servidor Debian 5 Lenny, e nesse servidor tenho 3 placas de rede, usando o Iptables com nat para mascarar e compartilhar a internet entre as minhas 2 redes:
A placa eth0 --> Entra a conexão da internet (conforme pode se observar da minha estrutura de interface mais abaixo)
A placa eth1 --> Rede interna por cabo com IP 192.168.3.0/255.255.255.0
E por fim a Wlan0 (Usando o Hostapd para levantar o AP)--> Rede interna Wi-Fi com IP 192.168.4.0/255.255.255.0
Tenho ainda uma Bridge de nome br0 com a finalidade permitir a troca de arquivos entre as redes eth1 e wlan0, sendo que essa bridge não utiliza IP.
Pois bem, até ai está funcionando sem nenhum problema, ocorre que estou tentando implantar um Proxy transparente usando o Squid, mas por algum motivo toda vez que habilito o squid a conexão da rede eth1 e wlan0 param de funcionar e quando tento navegar aparece a seguinte mensagem no navegador: pagina não encontrada ou que não foi possível se conectar ao endereço do site.
Esse problema está ocorrendo com qualquer navegador, site que tento acessar e em qualquer máquina da rede (menos o servidor que continua navegando na boa).
Outro dado importante é que o meu servidor é quem faz a discagem, ou seja, toda a saída de dados da rede para a internet sai pela porta ppp0
Diagrama de minha rede
Internet ---> Modem em modo bridge ---> Servidor (etho) --> sai para a rede eth1 (192.168.3.0)
|--> sai para a wlan0 (192.168.4.0)
Me desculpem pelo post enorme, mas não teve outra forma, rsrs.
Agradeço desde logo toda e qualquer ajuda :)
---------------------------Interfaces-----------------------------------
# Interface primaria de rede - internet
auto eth0
allow-hotplug eth0
iface eth0 inet dhcp
# Interface secundaria de rede - interna
auto eth1
allow-hotplug eth1
iface eth1 inet static
address 192.168.3.1
netmask 255.255.255.0
network 192.168.3.0
broadcast 192.168.3.255
gateway 192.168.3.1
dns-nameservers 200.175.5.139
# Interface de rede sem fio (Wi-Fi)
auto wlan0
allow-hotplug wlan0
iface wlan0 inet static
address 192.168.4.1
netmask 255.255.255.0
network 192.168.4.0
broadcast 192.168.4.255
gateway 192.168.4.1
dns-nameservers 200.175.5.139
# Ponte para interligação entre a eth1 e a wlan0
auto br0
iface br0 inet static
bridge_ports eth1 wlan0
---------------------------Script de Firewall---------------------------
#!/bin/sh
echo "Ativando o firewall!"
# Limpando as tabelas
echo "Limpando as tabelas do Iptables!"
iptables -F
iptables -t nat -F
iptables -t mangle -F
# Carrega os módulos
echo "Carregando módulos!"
modprobe ip_tables
modprobe iptable_nat
# Proxy Aparente (Redireciona o fluxo da porta 80 para a porta 3128 (squid))
iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 3128
iptables -t nat -A PREROUTING -i wlan0 -p tcp --dport 80 -j REDIRECT --to-port 3128
# Compartilha a conexão
echo "Ativando o compatilhamento da conexão de internet!"
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
echo "1" > /proc/sys/net/ipv4/ip_forward
# Converte o tamanho dos pacotes da rede
iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN -m tcpmss --mss 1400:1536 -j TCPMSS --clamp-mss-to-pmtu
# Aceita todo o trafego vindo do loopback e indo pro loopback
iptables -t filter -A INPUT -i lo -j ACCEPT
# Abre para a rede local
iptables -A INPUT -p tcp --syn -s 192.168.3.0/255.255.255.0 -j ACCEPT
iptables -A INPUT -p tcp --syn -s 192.168.4.0/255.255.255.0 -j ACCEPT
# Manter conexões já estabelecidas
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -m state --state INVALID -j DROP
echo "Firewall 100% carregado!"
---------------------------------Squid------------------------------------
##squid.conf
# Porta do Squid para proxy transparente
http_port 3128 transparent (já usei até intercept para o Squid 3.1)
# Nome do servidor que irá aparecer na tela de "Acesso Negado"
visible_hostname Server_host
# Paginas de erro em PT-BR
error_directory /usr/share/squid3/errors/Portuguese/
# Cache
cache_mem 76 MB
maximum_object_size_in_memory 64 KB
maximum_object_size 1024 MB
minimum_object_size 0 KB
cache_swap_low 70
cache_swap_high 90
cache_dir ufs /var/spool/squid3 1000 16 256
# Logs de acesso
access_log /var/log/squid3/access.log
cache_log /var/log/squid3/cache.log
cache_store_log /var/log/squid3/store.log
pid_filename /var/log/squid3/squid3.pid
mime_table /usr/share/squid3/mime.conf
# Tempo de atualização da lista de sites armazenados so proxy
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern (cgi-bin|\?) 0 0% 0
refresh_pattern . 0 20% 4320
quick_abort_max 16 KB
quick_abort_pct 95
quick_abort_min 16 KB
request_header_max_size 20 KB
reply_header_max_size 20 KB
request_body_max_size 0 KB
#Regras de ACL padrõs
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.0
#acl to_localhost dst 127.0.0.0/8
acl SSL_ports port 443 563
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 563 1863 # https
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 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 redelocal src 192.168.3.0/255.255.255.0
acl redelocal2 src 192.168.4.0/255.255.255.0
http_access allow localhost
http_access allow redelocal
http_access allow redelocal2
http_access deny all
forwarded_for off
memory_pools off
cache_mgr ADM Alexandre
mail_program mail
cache_effective_user proxy
cache_effective_group proxy
httpd_suppress_version_string off