squid, firewall , estou velho para isto! [RESOLVIDO]

1. squid, firewall , estou velho para isto! [RESOLVIDO]

flavio castro
flavac

(usa Debian)

Enviado em 21/05/2013 - 14:06h

Boa tarde

Depois de algumas semanas, digo semanas, lendo,pesquisando(rezando p/ o dominio viva o linux voltar) estou quase desistindo, eu simplesmente não consigo fazer com que o squid ou firewall bloquei algumas aplicações, o que estou fazendo errado? alguem poderia me ajudar? o linux funciona perfeitamente, ótimo SO, mas preciso compartilhar a conexão(já consegui isto) mas bloquear tenho muitas dúvidas, eu não sei qual interface levar em consideração, abaixo coloco alguns logś. desde já agradeço: eth0 - recebe internet, eth1 compartilha:

eth0 Link encap:Ethernet HWaddr 78:2b:cb:07:3b:63
inet addr:192.168.1.90 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::7a2b:cbff:fe07:3b63/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1113320 errors:0 dropped:34025 overruns:0 frame:0
TX packets:476908 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:436959470 (436.9 MB) TX bytes:168520837 (168.5 MB)

eth1 Link encap:Ethernet HWaddr 78:2b:cb:07:3b:64
inet addr:10.42.0.1 Bcast:10.42.0.255 Mask:255.255.255.0
inet6 addr: fe80::7a2b:cbff:fe07:3b64/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:190731 errors:0 dropped:0 overruns:0 frame:0
TX packets:150114 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:45189805 (45.1 MB) TX bytes:60629342 (60.6 MB)

lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:214266 errors:0 dropped:0 overruns:0 frame:0
TX packets:214266 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:90552553 (90.5 MB) TX bytes:90552553 (90.5 MB)

aqui está o log do squid:

http_port 3128 transparent #proxy transparente é super interessante e viável para uma grande ou pequena rede local
cache_dir ufs /var/spool/squid3 100 16 256 #o primeiro numero o "100" é o tamanho do arquivo em KB, aqui podemos escolher quando KB nosso arquivo vai ter
cache_mem 50 MB #nessa parte vamos disponibilizar 50MB de memoria RAM para o Squid, podem mudar conforme a necessidade disponibilidade de cada um
visible_hostname FIREWALL #aqui vai o nome do nosso servidor no rodapé da pagina


#Regras de acesso para rede local
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 70 #gopher
acl Safe_ports port 210 #wais
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 Safe_ports port 443 563 #https e snews
acl Safe_ports port 1025-65535 #portas altas
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

#Bloqueando por dominios e palavras
acl bloqueados url_regex "/etc/squid/bloqueados"
http_access deny bloqueados
acl palavras dstdom_regex "/etc/squid/palavras"
http_access deny palavras
error_directory /usr/share/squid/errors/Portuguese

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

AQUI ESTÁ O LOG FIREWALL:

#! /bin/bash

#rezando as regras;
iptables -F INPUT
iptables -F OUTPUT
iptables -F FORWARD
iptables -t nat -F
iptables -t mangle -F

#adicionando modulos no kernel;
modprobe ip_tables
modprobe iptable_nat

#liberando encaminhamento de pacotes;
echo "1" > /proc/sys/net/ipv4/ip_forward

#compartilhando a internet;
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE


PS: acho q meus 40 anos estão pesando...
abraço



  


2. MELHOR RESPOSTA

Buckminster
Buckminster

(usa Void Linux)

Enviado em 21/05/2013 - 15:41h

flavac escreveu:

ok, muito bom seu artigo, acabei de ler, realmente dá uma melhor visão de como funciona, fiz as alterações e tal, mas mesmo assim continua bloqueado os sites, dá aquela msg do squid(bloqueado por ele), mas mesmo retirando algumas regras continua bloqueando,esta linha iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 3128 , se eu entendi todo o tráfego da porta 80 é direcionado para porta 3128 ( que é a regra squid) isto? deveria funcionar.


Esta linha iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 3128 somente redireciona o tráfego da porta 80 (http) para a porta 3128 do Squid. Ela é necessária em caso de proxy transparente.

Quanto aos bloqueios, verifique as ACLs e verifique dentro dos arquivos "bloqueados" e "palavras". Veja as sugestões de alteração que fiz no comentário anterior.

E sempre que alterar o squid.conf você deve executar:

squid -k reconfigure

ou reiniciar o Squid

/etc/init.d/squid restart (ou squid3).

Para criar o cache:
squid -z
Esse mesmo comando limpa o cache, porém, depois de executado pela primeira vez, só se deve executá-lo de novo em caso de problemas com o cache.


3. Re: squid, firewall , estou velho para isto! [RESOLVIDO]

Buckminster
Buckminster

(usa Void Linux)

Enviado em 21/05/2013 - 14:23h

No Squid:

acl redelocal src 10.42.0.0/24 << esta linha deixe assim; você colocou o IP e deve colocar o endereço da rede.

cache_dir ufs /var/spool/squid3 2048 16 256 << esta linha deixe assim; coloquei 2 GB de cache_dir.
cache_mem 50 MB << aqui seria bom você colocar mais; quanto você tem de memória RAM total nessa máquina?

No IPtables:

#compartilhando a internet;
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 3128 << acrescente esta linha, ela que fará o redirecionamento para o Squid.

A eth0 que recebe a internet está com IP fixo ou automático?


4. Re: squid, firewall , estou velho para isto! [RESOLVIDO]

flavio castro
flavac

(usa Debian)

Enviado em 21/05/2013 - 14:36h

bah, muito obrigado por responder, minha maquina é esta:
rewall squid # free -t -m
total used free shared buffers cached
Mem: 7970 1926 6044 0 125 1104
-/+ buffers/cache: 695 7274
Swap: 28608 0 28608
Total: 36579 1926 34653


cpu:
cpu 4302055 2056 27837 21139181 16729 27 38658 0 0 0
cpu0 4024105 41 5674 2339107 2261 26 23077 0 0 0
cpu1 77886 571 6984 6281624 1286 0 13961 0 0 0
cpu2 60929 420 7748 6302148 1461 0 1353 0 0 0
cpu3 139134 1022 7429 6216300 11721 0 266 0 0 0

você acha que preciso mais?

estou alterando aqui e já posto os resultados
obrigado por enquanto


5. Re: squid, firewall , estou velho para isto! [RESOLVIDO]

flavio castro
flavac

(usa Debian)

Enviado em 21/05/2013 - 14:47h

a eth0 que recebe a internet é ipfixo : 192.168.1.90, mask: 255.255.255.0 gw: 192.168.1.100, dns: 192.168.1.100, 8.8.8.8
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE -----eu achava q ao inves de eth0 seria eth1 neste campo!

estou inicializando o pequeno servidor





6. Re: squid, firewall , estou velho para isto! [RESOLVIDO]

flavio castro
flavac

(usa Debian)

Enviado em 21/05/2013 - 15:06h

bom, ficou assim:
#! /bin/bash

#rezando as regras;
iptables -F INPUT
iptables -F OUTPUT
iptables -F FORWARD
iptables -t nat -F
iptables -t mangle -F

#adicionando modulos no kernel;
modprobe ip_tables
modprobe iptable_nat

#liberando encaminhamento de pacotes;
echo "1" > /proc/sys/net/ipv4/ip_forward

#compartilhando a internet;
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 3128

#Proxy transparente, tratando dos protocolos UDP e TCP, e movendo o trafego das portas 80,443 para porta 3128;
iptables -t nat -A PREROUTING -s 10.42.0.1/24 -p tcp --dport 80 -j REDIRECT --to-port 3128

iptables -t nat -A PREROUTING -s 10.42.0.1/24 -p udp --dport 80 -j REDIRECT --to-port 3128

iptables -t nat -A PREROUTING -s 10.42.0.1/24 -p tcp --dport 443 -j REDIRECT --to-port 3128

iptables -t nat -A PREROUTING -s 10.42.0.1/24 -p udp --dport 443 -j REDIRECT --to-port 3128

squid:
http_port 3128 transparent #proxy transparente é super interessante e viável para uma grande ou pequena rede local
cache_dir ufs /var/spool/squid3 2048 16 256 #o primeiro numero o "100" é o tamanho do arquivo em KB, aqui podemos escolher quando KB nosso arquivo vai ter
cache_mem 500 MB #nessa parte vamos disponibilizar 50MB de memoria RAM para o Squid, podem mudar conforme a necessidade disponibilidade de cada um
visible_hostname FIREWALL #aqui vai o nome do nosso servidor no rodapé da pagina


#Regras de acesso para rede local
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 70 #gopher
acl Safe_ports port 210 #wais
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 Safe_ports port 443 563 #https e snews
acl Safe_ports port 1025-65535 #portas altas
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

#Bloqueando por dominios e palavras
acl bloqueados url_regex "/etc/squid/bloqueados"
http_access deny bloqueados
acl palavras dstdom_regex "/etc/squid/palavras"
http_access deny palavras
error_directory /usr/share/squid/errors/Portuguese

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

estou pingando tudo, gw, dominios, mas não navega, dá esta msg:

ERROR
The requested URL could not be retrieved

The following error was encountered while trying to retrieve the URL: /

Invalid URL

Some aspect of the requested URL is incorrect.

Some possible problems are:

Missing or incorrect access protocol (should be "http://" or similar)

Missing hostname

Illegal double-escape in the URL-Path

Illegal character in hostname; underscores are not allowed.

Your cache administrator is webmaster.



7. Re: squid, firewall , estou velho para isto! [RESOLVIDO]

Buckminster
Buckminster

(usa Void Linux)

Enviado em 21/05/2013 - 15:16h

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE << aqui SEMPRE vai a placa de rede de entrada da internet; ela que vai compartilhar com a(s) outra(s).

iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 3128 << aqui SEMPRE vai a placa de rede que sai para a rede interna.

Bom, como você tem IP fixo na placa de rede de entrada da internet, substitua essa regra

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

por essa

iptables -t nat A POSTROUTING -o eth0 -j SNAT --to-source 192.168.1.90/24

Quando se fixa o IP na placa de rede não se usa MASQUERADE, se usa SNAT. O MASQUERADE é somente para IP dinâmico na placa de rede.

#Bloqueando por dominios e palavras
acl bloqueados url_regex -i "/etc/squid/bloqueados" << aqui é /etc/squid ou /etc/squid3?
http_access deny bloqueados
acl palavras dstdom_regex -i "/etc/squid/palavras" << mesma coisa.
http_access deny palavras
error_directory /usr/share/squid/errors/Portuguese << esse arquivo Portuguese você deve cria-lo (se já não criou), ou comente essa linha; essa é a sua página de erro personalizado.

cache_dir ufs /var/spool/squid3 2048 16 256 << mesma coisa; verifique se essa pasta existe.

Outra coisa:
acl palavras dstdom_regex -i "/etc/squid/palavras" << essa ACL dstdom_regex bloqueia por domínios e não por palavras; dentro do arquivo deve ter somente domínios, .domínio.com, www.dominio.com.br, etc.

acl bloqueados url_regex -i "/etc/squid/bloqueados" << essa ACL url_regex bloqueia as palavras que estiverem na url do endereço e "baterem" com as palavras colocadas dentro do arquivo; a opção -i é para não distinguir entre maiúsculas e minúsculas (case insensitive).
E dentro dos arquivos deve ir uma palavra (ou domínio) por linha.
Exemplo:
sexo
pedra
paralelepípedo
inconstitucionalissimamente

Leia isto:
http://www.vivaolinux.com.br/artigo/Redes-de-Computadores-IPtables-Enderecos-IPs-Explicacoes-basicas...

http://www.vivaolinux.com.br/artigo/Squid-Entendendo-um-pouco-as-configuracoes/

http://www.vivaolinux.com.br/artigo/Manual-do-IPtables-Comentarios-e-sugestoes-de-regras/


8. Re: squid, firewall , estou velho para isto! [RESOLVIDO]

flavio castro
flavac

(usa Debian)

Enviado em 21/05/2013 - 15:36h

ok, muito bom seu artigo, acabei de ler, realmente dá uma melhor visão de como funciona, fiz as alterações e tal, mas mesmo assim continua bloqueado os sites, dá aquela msg do squid(bloqueado por ele), mas mesmo retirando algumas regras continua bloqueando,esta linha iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 3128 , se eu entendi todo o tráfego da porta 80 é direcionado para porta 3128 ( que é a regra squid) isto? deveria funcionar.


9. Re: squid, firewall , estou velho para isto! [RESOLVIDO]

flavio castro
flavac

(usa Debian)

Enviado em 21/05/2013 - 16:07h

dando o comando : squid3 restart
2013/05/21 16:06:17| WARNING: Netmasks are deprecated. Please use CIDR masks instead.
2013/05/21 16:06:17| WARNING: IPv4 netmasks are particularly nasty when used to compare IPv6 to IPv4 ranges.
2013/05/21 16:06:17| WARNING: For now we will assume you meant to write /32

deus estes erros, agora já to fumegando heheh



10. Re: squid, firewall , estou velho para isto! [RESOLVIDO]

Buckminster
Buckminster

(usa Void Linux)

Enviado em 21/05/2013 - 16:13h

flavac escreveu:

dando o comando : squid3 restart
2013/05/21 16:06:17| WARNING: Netmasks are deprecated. Please use CIDR masks instead.
2013/05/21 16:06:17| WARNING: IPv4 netmasks are particularly nasty when used to compare IPv6 to IPv4 ranges.
2013/05/21 16:06:17| WARNING: For now we will assume you meant to write /32

deus estes erros, agora já to fumegando heheh


Não são erros, são avisos (Warning).

acl localhost src 127.0.0.1/255.255.255.255

essa regra acima, deixa ela assim:

acl localhost src 127.0.0.1/32

Faça a alteração e reinicia o Squid.

Netmasks are deprecated. Please use CIDR masks instead. << A máscara de rede está obsoleta; por favor use a notação CIDR.
WARNING: IPv4 netmasks are particularly nasty when used to compare IPv6 to IPv4 ranges. << A máscara de rede IPv4 está sendo usada para comparar ranges IPv4 com IPv6.
WARNING: For now we will assume you meant to write /32 << a partir de agora assumirei que você quis dizer /32.

Sempre nesses avisos de retorno, utilize o Google Tradutor. É uma ótima ferramenta.



11. Re: squid, firewall , estou velho para isto! [RESOLVIDO]

flavio castro
flavac

(usa Debian)

Enviado em 21/05/2013 - 16:34h

ok, a dica do google foi ótima, mas fiz as alterações , não dá mais erro, aparentemente tudo ok, inclusive dei mais uma pesquisada e cheguei até o log que diz que o squid : 2013/05/21 16:26:40| Squid is already running! Process ID 17596
mesmo assim não abre nenhuma página, dá msg que parece q o squid está bloqueando tudo, outra questão existe a pasta squid/squid3 em ambas existe o mesmo arquivo dentro, está certo isto?


12. Re: squid, firewall , estou velho para isto! [RESOLVIDO]

Buckminster
Buckminster

(usa Void Linux)

Enviado em 21/05/2013 - 16:41h

Não, não está certo isso.

Delete uma delas. A que você deixar, você aponta o caminho no squid.conf.

Exemplo:
/etc/squid/bloqueados

ou

/etc/squid3/bloqueados

Menos a /var/spool/squid3, essa você deixa como está. Somente delete as pastas dos arquivos que você mesmo criou, no caso, bloqueados e palavras e crie de novo se for o caso, mas sem duplicar.
O importante é que o arquivo deve estar dentro do caminho que estiver apontado no squid.conf, lógico.



  
01 02