Configurar um proxy squid utilizando iptables

Nome: Geovanni Metzker Viana

Data: 05/04/2012

# Carrega os módulos

modprobe ip_tables
modprobe iptable_nat

# Ativa o roteamento e compartilha a conexão

# echo 1 > /proc/sys/net/ipv4/ip_forward
# iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE

Política Padrão de Acesso.

# iptables -P INPUT ACCEPT
# iptables -P OUTPUT ACCEPT
# iptables -P FORWARD ACCEPT
# iptables -t nat -P PREROUTING ACCEPT
# iptables -t nat -P POSTROUTING ACCEPT

# Abre algumas portas (opcional)

# iptables -A INPUT -p tcp –destination-port 22 -j ACCEPT
# iptables -A INPUT -p tcp –destination-port 1021 -j ACCEPT
# iptables -A INPUT -p tcp –destination-port 1080 -j ACCEPT

# Libera acesso para os ips da rede interna.

# iptables -A INPUT -p tcp –syn -s 192.168.0.0/255.255.255.0 -j ACCEPT

# Redireciona tudo que vier da porta 80 será redirecionado para a porta 3128 (squid).

# iptables -t nat -A PREROUTING -i eth0 -p tcp –dport 80 -j REDIRECT –to-port 3128

# Fecha o resto

# iptables -A INPUT -p tcp –syn -j DROP

# apt-get install squid.

# cd /etc/squid

# joe squid.conf

http_port 3128 transparent
visible_hostname personal

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
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 dst “/etc/squid/bloqueados”
http_access deny bloqueados

acl redelocal src 192.168.0.0/24
http_access allow localhost
http_access allow redelocal

http_access deny all

Configurar o proxy no navegador Opera.

Opera/Configurações/Preferências

Acesse a guia avançado e selecione a opção Rede.

Configura o proxy de acordo com o ip(gateway ) da tua rede interna. Nesse caso, utilizei o ip 192.168.0.10.

Criei uma acl do tipo dst para bloquear dominios no arquivo squid.conf.

acl bloqueados dst “/etc/squid/bloqueados”
http_access deny bloqueados

# joe /etc/squid/bloqueados

Inseri a url http://www.orkut.com dentro do arquivo bloqueados.

Veja o resultado ao tentar acessar a url orkut.com.

Outros sites são acessados normalmente.

# tail -f /var/log/squid | grep 192.168.0.2

1333629571.722      8 192.168.0.2 TCP_DENIED/403 1472 GET http://www.orkut.com/ – NONE/- text/html
1333629580.716    626 192.168.0.2 TCP_MISS/200 1108 POST http://www.facebook.com/ajax/chat/buddy_list.php? – DIRECT/69.171.247.64 application/x-javascript
1333629588.773    611 192.168.0.2 TCP_MISS/200 1292 POST http://www.facebook.com/ajax/chat/buddy_list.php? – DIRECT/69.171.247.64 application/x-javascript
1333629605.837  39925 192.168.0.2 TCP_MISS/200 532 GET http://1-id-w.channel.facebook.com/pull? – DIRECT/69.171.227.49 text/plain
1333629606.489   2176 192.168.0.2 TCP_MISS/200 123696 GET https://gviana.wordpress.com/wp-admin/post.php? – DIRECT/72.233.2.58 text/html
1333629606.693    885 192.168.0.2 TCP_REFRESH_MISS/200 1202 GET https://gviana.wordpress.com/wp-admin/admin-ajax.php? – DIRECT/72.233.69.6 text/javascript
1333629606.871  40151 192.168.0.2 TCP_MISS/200 532 GET http://0-id-w.channel.facebook.com/pull? – DIRECT/69.171.227.49 text/plain
1333629608.404    279 192.168.0.2 TCP_REFRESH_HIT/304 569 GET http://1.gravatar.com/blavatar/93459454d433b397e16dbb9656e9bfb5? – DIRECT/72.21.91.19 –

Você também pode configurar a pagina de erro do squid para apresentar o erro em português em “/usr/share/squid/errors/English

Fonte: http://www.hardware.com.br/livros/linux-redes/bloqueando-por-dominio-palavras.html

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s