problemas compartilhamento internet 7.10

Iniciado por rafasnn, 23 de Janeiro de 2008, 10:15

tópico anterior - próximo tópico

rafasnn

Pessoal,

Estou com um grande problema, não estou conseguindo limitar a utilização da internet aqui da empresa, estou compartilhando a rede através do script firewall.sh, mas o squid simplesmente não bloqueia os sites no arquivo bloqueados, anexei os arquivos firewall.sh, squid.conf e bloqueados.
Alguém saberia me informar aonde estou errando?

firewall.sh

#!/bin/bash
#
# FIREWALL
#
# Rafael Navas Neto
#
# rafasnnlinux@uol.com.br
#
# 05/09/2007

# Limpa regras do firewall
iptables -F
iptables -t nat -F

# Compartilhamento com proxy transparente
modprobe iptable_nat
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
iptables -t nat -A PREROUTING -i ppp0 -p tcp --dport 80 -j REDIRECT --to-port 3128

# Regras do Firewall
# Abre a faixa de enderecos para a rede local
iptables -A INPUT -s 192.168.1.0/255.255.255.0 -j ACCEPT


# Portas liberadas
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -p tcp --dport 3050 -j ACCEPT # Firebird
iptables -A INPUT -p tcp --dport 6051 -j ACCEPT # Avgadmin
iptables -A INPUT -p udp --dport 137 -j ACCEPT  # Samba
iptables -A INPUT -p udp --dport 138 -j ACCEPT  # Samba
iptables -A INPUT -p tcp --dport 139 -j ACCEPT  # Samba
iptables -A INPUT -p tcp --dport 445 -j ACCEPT  # Samba

# Portas bloqueadas
iptables -A OUTPUT -p tcp --dport 1863 -j REJECT  # MSN
iptables -A FORWARD -p tcp --dport 1863 -j REJECT # MSN
iptables -A OUTPUT -p tcp --dport 5190 -j REJECT  # MSN
iptables -A FORWARD -p tcp --dport 5190 -j REJECT # MSN

# Ignora ping
iptables -A OUTPUT -p icmp --icmp-type echo-request -j DROP

# Protege contra IP spoofing
echo 1 > /proc/sys/net/ipv4/conf/default/rp_filter

# Nao repassa pacotes danificados ou forjados
#iptables -A FORWARD -m unclean -j DROP

# Abre para a interface de loopback
iptables -A INPUT -i lo -j ACCEPT

# Bloqueia todas as portas nao liberadas acima
iptables -A INPUT -p tcp --syn -j DROP


squid.conf

http_port 3128 transparent
visible_hostname servidor

cache_mem 32 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 /var/spool/squid 2048 16 256
cache_access_log /var/log/squid/access.log
error_directory /usr/share/squid/errors/Portuguese
refresh_pattern ^ftp: 15 20% 2280
refresh_pattern ^gopher: 15 0% 2280
refresh_pattern . 15 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 redelocal src 192.168.1.0/24
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 bloqueados dstdomain "/etc/squid/bloqueados"
http_access deny bloqueados

http_access allow localhost
http_access allow redelocal

http_access deny all


bloqueados

orkut
messenger
gostosas
lesbian
youtube
Macbook Pro 2,33 4GB 250GB
iPhone 8GB

soulivre

Olá!! A principio conseguir achar alguns problemas. um deles eh regra do iptables ( iptables -t nat -A PREROUTING -i ppp0 -p tcp --dport 80 -j REDIRECT --to-port 3128 ) vc deve ter ai mais de uma interface de rede. nessa regra acima citada vc deve trocar -i ppp0 por -i ethX, essa interface deve ser a da sua rede intrena com um ip tipo 192.x.x.x. Outro erro que conseguir visualizar foi o da acl redelocal esta vindo antes da acl bloqueados, por isso nao ta funcionando. Bem so percebi isso. Espero ter ajudado.
Athlon64 3000+ Box (Venice)
MSI K8T Neo V
512 DDR 400 Samsung
GeForce FX 5200 128MB
SDA1 XP (NTFS)
SDA2 2003Server (NTFS)
SDA3 Ubuntu 7.10 (ReiserFS)
HDA1 Backup (FAT32)
Deus é bom em todo o tempo!!!

rafasnn

soulivre,

não entendi quando diz que a acl bloqueados vem antes da acl redelocal, esse script funcionava bem no 6.06, quanto ao ppp0 quando troco por eth0 não navega, o servidor aqui disca no speedy pelo ppoe-conf
Macbook Pro 2,33 4GB 250GB
iPhone 8GB

soulivre

#3
Olá amigo. Desculpa pela demora. Com essa regra (iptables -t nat -A PREROUTING -i ppp0 -p tcp --dport 80 -j REDIRECT --to-port 3128) você diz que o que vier da -i (interface de entrada) com o protocolo tcp com destino a porta 80 vai ser redirecionado para a porta 3128 que é a do squid. Você deve está querendo redirecionar o que vier da sua rede interna por isso deve substituir o ppp0 pela interface de sua rede interna (entao coloque a interface que tem ip da sua rede interna no lugar do ppp0). Em relaçao ao squid.conf, a acl redelocal vem antes da acl bloqueado entao a solicitaçao passa primeiro pela acl redelocal que tem allow logo ela nao sofre mais nenhuma regra. Uma soluçao possível seria:

http_port ip_do_seu_servidor:3128 transparent
visible_hostname servidor

cache_mem 32 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 /var/spool/squid 2048 16 256
cache_access_log /var/log/squid/access.log
dns_nameservers ip_dns_do_seu_provedor_
error_directory /usr/share/squid/errors/Portuguese
refresh_pattern ^ftp: 15 20% 2280
refresh_pattern ^gopher: 15 0% 2280
refresh_pattern . 15 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 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 bloqueados url_regex "/etc/squid/bloqueados" 
http_access deny bloqueados

acl redelocal src 192.168.1.0/24
http_access allow localhost
http_access allow redelocal
http_access deny all

dentro do bloqueados teria:
orkut
messenger
gostosas
lesbian
jogos
amor
sexo

Foi testado aqui. Funcionou bzlinha. Fui!!
Athlon64 3000+ Box (Venice)
MSI K8T Neo V
512 DDR 400 Samsung
GeForce FX 5200 128MB
SDA1 XP (NTFS)
SDA2 2003Server (NTFS)
SDA3 Ubuntu 7.10 (ReiserFS)
HDA1 Backup (FAT32)
Deus é bom em todo o tempo!!!

rafasnn

soulivre,

deu certo, mas tive que mudar de lugar as acl na mesma ordem em que vc falou, estava dando erro na linha 34, mas deu certo sim vlw!
Macbook Pro 2,33 4GB 250GB
iPhone 8GB