lorometal
(usa CentOS)
Enviado em 28/10/2008 - 10:15h
Caros confrades,
Percebe-se que sou iniciante com sistemas linux,
estou enfrentando um pequeno problema quando ao proxy transparente.
a situação é a seguinte:
red hat enterprises 4
squid
iptables
Tenho duas placas de rede
eth1 => é a placa de rede onboard que recebe a internet de um roteador adsl e esta configurada da seguinte forma
# ----------------------------------------------------------
MTU=""
NETMASK=255.255.255.0
NAME=""
GATEWAY=192.168.254.254
BOOTPROTO=none
BROADCAST=192.168.254.255
IPADDR=192.168.254.88
NETWORK=192.168.254.0
DNS1=192.168.254.254
DNS2=200.15.132.148
DNS3=200.165.132.147
DNS4=200.165.55.140
ONBOOT=yes
DEVICE=eth1
# ----------------------------------------------------------
continuando,
eth0 => é a placa de rede offborard que ésta configurada para distribuir os endereços via DHCP e a internet aos clientes da rede local. está configurada da seguite forma:
# ----------------------------------------------------------
NETMASK=255.255.255.0
MTU=""
BROADCAST=""
BOOTPROTO=none
GATEWAY=192.168.254.88
NAME=""
IPADDR=192.168.0.100
NETWORK=192.168.0.0
DNS1=192.168.254.88
ONBOOT=yes
DEVICE=eth0
# ----------------------------------------------------------
Os clientes estão recebendo ips em uma faixa que vai de 192.168.0.10 até 192.168.0.99
minha primeira dúvia. li que para o proxy transparente funcionar, os clientes devem receber como gtwy, o ip do servidor de proxy. porém qual ip? o da placa que distribui o dhcp(eth0) ou o que recebe a internet(eth1)? acredito que seja o da eht0 certo?
outra questão. se eu configurar o proxy manualmente nos clients, a navegação funciona. ou seja, o proxy funciona somente o modo transparente que não.
coloquei as seguintes entradas no arquivo /etc/rc.local
# --------------------------------------------------------------
echo 1 > /proc/sys/net/ipv4/ip_forward
/sbin/modprobe iptable_nat
iptables -F
iptables -t nat -F
iptables -t nat -A PREROUTING -s 0/0 -p tcp --dport 80 -j REDIRECT --to-port 3128
iptables -t nat -A PREROUTING -s 0/0 -p udp --dport 80 -j REDIRECT --to-port 3128
iptables -t nat -A POSTROUTING -s 0/0 -o eth1 -j MASQUERADE
# -------------------------------------------------------------
meu squid.conf está assim:
# -------------------------------------------------------------
hierarchy_stoplist cgi-bin ?
cache_mem 64 MB
cache_swap_low 90
cache_swap_high 95
maximum_object_size 4096 KB
cache_dir ufs /var/spool/squid 1000 16 256
cache_access_log /var/log/squid/access.log
ftp_user Squid@
# ACLS
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 CONNECT method CONNECT
http_access allow all
http_access allow manager localhost
http_access deny manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
icp_access allow all
visible_hostname redhat
httpd_accel_host virtual
httpd_accel_port 80
httpd_accel_with_proxy on
httpd_accel_uses_host_header on
# -------------------------------------------------------------
e o meu dhcp está assim:
# -------------------------------------------------------------
ddns-update-style none;
default-lease-time 600;
max-lease-time 7200;
authoritative;
# construtora pj
subnet 192.168.0.0 netmask 255.255.255.0 {
range 192.168.0.10 192.168.0.99;
option routers 192.168.0.100;
option netbios-name-servers 192.168.0.100;
option domain-name-servers 192.168.254.88, 200.165.132.147, 200.165.132.148, 200.165.55.140;
option broadcast-address 192.168.0.255;
}
# -------------------------------------------------------------
Resumindo, o proxy não funciona em modo transparente.
se algém puder me ajudar, ficarei extremamente agradecido.
E peço sinceras desculpas por esse tópico ter ficado tão grande, mas é que eu gosto de deixar tudo explicado logo de início. esse é o meu jeito. ^^