Liberar apenas alguns sites para um determinado IP

Iniciado por righteous, 31 de Maio de 2011, 09:29

tópico anterior - próximo tópico

righteous

Salve, salve rapazeada.

Estou precisando criar um regra no meu squid onde:

"O IP 192.168.1.129 poderá acessar o site globo.com, e os demais não poderão acessar".

Já tenho este cenário:

# Bloqueio por palavras
acl blocked_words dstdom_regex -i "/etc/squid/blocked_words"
# IP Liberados
acl lan src "/etc/squid/ip_free"

# Habilita para negar por palavras
http_access deny blocked_words
# Habilita para liberar a rede local
http_access allow lan
# Habilita para negar o que não se adequar as regras
http_access deny all


No arquivo blocked_words adicionei o site globo.com, então eu queria bloquear pra todo mundo, exceto para IP que falei. Sei que poderia criar uma regra para liberar somente para uma lista de IPs, tipo, "os ips que estivessem no arquivo "tal", podem acessar tudo". Mas, no meu caso eu não quero tudo, quero só um site.

Valeu rapazeada.

righteous

#1
Tentei isso, mas não está dando certo, vejam:

acl admin src "/etc/squid/admin"
acl words_free url_regex "/etc/squid/words_free"

http_access deny blocked_words !words_free admin


Alguém?

righteous

Consegui... e ainda compliquei um pouquinho.

# IPs dos administradores de nivel 1.
acl admin_L1 src "/etc/squid/admin"
# Lista de palavras que ele podem acessar.
acl words_free_L1 url_regex "/etc/squid/words_free_L1"

# IPs dos administradores de nivel 2.
acl admin_L2 src "/etc/squid/admin"
# Lista de palavras que ele podem acessar.
acl words_free_L2 url_regex "/etc/squid/words_free_L2"

# Definição das regras
# Libera IPs do arquivo admin_L1 e as palavras do arquivo words_free1
http_access allow admin_L1 words_free_L1
# Libera IPs do arquivo admin_L2 e as palavras do arquivo words_free2
http_access allow admin_L2 words_free_L2
http_access deny blocked_words
http_access deny all

O resto é só adequar as demais regras que vcs tiverem em seus squids, lembre-se apenas da ordem. :D

Essa é minha contribuição. :D