http://www.zago.eti.br/squid/regras-iptables.txt Use CTRL+F para refinar a pesquisa. Linha de: **************** separa mensagens ou tópicos. ******************************************************** Zago http://www.zago.eti.br/menu.html FAQ e artigos sobre Linux ******************************************************** Conectividade Social da Caixa - SEFIP transmissão e extratos do FGTS. Nem vou fazer comentarios porque não consegui entender esta coisa. Parece que tem varios serviços com este nome, o mais complicado é aquele que requer um disquete com uma chave no disquete, utilizado para pegar extrato do FGTS e enviar os arquivos do SEFIP, nem vou comentar sobre o funcionamento, vai aqui as dicas que testei e funciona no CL10. Em emergencias, retire a maquina do proxy, altere a regra do redirecionamento para excluir a estação do redirecionamento, exemplo para liberar geral a estação com IP 192.168.1.53 /usr/sbin/iptables -t nat -A PREROUTING -i eth1 -s \! 192.168.1.53 -p tcp -m multiport --dport 80,443 -j REDIRECT --to-ports 3128 /usr/sbin/iptables -A POSTROUTING -t nat -o eth0 -j MASQUERADE Excluir o IP da Caixa do redirecionamento, aplique em seu firewall, as regras abaixo liberam todas as estações para transmissão e acesso ao Conectividade Social, tem que acrescentar antes do redirecionamento. # Liberar Conectividade Social para toda a rede CAIXA="200.252.47.0/24 200.201.160.0/20" for ip in $CAIXA do $iptables -t nat -A PREROUTING -p tcp -d $ip -j ACCEPT $iptables -A FORWARD -p tcp -d $ip -j ACCEPT done $iptables -t nat -A PREROUTING -i eth1 -s \! 192.168.1.53 -p tcp -m multiport --dport 80,443 -j REDIRECT --to-ports 3128 Documentação oficial, só perdi tempo, não ajudou em nada, caso queira tentar, acesse: http://www1.caixa.gov.br/pj/Asp/conectividade_social_empregador.asp Procure por " Orientações para Administradores de Rede" baixe e PDF e siga as instruções.... ******************************************************** Estação fora do Squid. Acessar site sem passar pelo Squid. Internet compartilhada e com proxy Squid, precisa forçar (redirecionar) a saida pra net pra passar pelo Squid, quem faz este redirecionamento é uma regra no firewall, ex: modprobe iptable_nat iptables -t nat -A PREROUTING -p tcp -m multiport -s 192.168.1.0/24 --dport 80,443 -j REDIRECT --to-ports 3128 iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE echo 1 > /proc/sys/net/ipv4/ip_forward Observe a ordem das regras, no exemplo acima a segunda linha redireciona todo o trafego das portas 80 e 443 pra depois fazer NAT, com isto todas as estações que tentarem acesso a net via browser (navegadores) serão redirecionadas pra usar o proxy, as duas ultimas linhas faz NAT para os demais serviços de rede, como o cliente de e-mail, msn, kazaa e outros acesso à internet. Excluir estação do proxy. Alguns serviços como Conectividade Social e acessos que tem problema quando passa pelo proxy, pode criar regras no firewall pra excluir estes acessos de passar pelo Squid. Estas regras de iptables tem que estar antes da regra que redireciona o trafego. A exclusão pode ocorrer de duas formas: Excluir a estação de passar pelo proxy, tem incoveniente desta regra valer somente pra uma estação especifica e a mesma acessar tudo na net sem passar pelo controle das regras do Squid. Exemplo de regra pra estação 192.168.1.53: iptables -A FORWARD -s 192.168.1.53/32 -d 0.0.0.0/0 -p tcp --dport 80 -j ACCEPT Excluir o site destino, neste caso fica mais prático descobrir qual o IP do site e criar regras de firewall pra excluir o destino de passar pelo proxy e pode liberar todas as estações pra acessarem estes sites, exemplo pra Conectividade Social. No meu firewall utilizo esta regra para excluir uma estação do redirecionamento, no exemplo abaixo a maquina com IP 192.168.1.53 não passa pelo Squid. /usr/sbin/iptables -t nat -A PREROUTING -i eth1 -s \! 192.168.1.53 -p tcp -m multiport --dport 80,443 -j REDIRECT --to-ports 3128 /usr/sbin/iptables -A POSTROUTING -t nat -o eth0 -j MASQUERADE onde: eth0 = interface externa (que sai pra net) eth1 = interface interna (rede interna) Na estação não configure proxy no navegador, caso configure vai passar pelo proxy como outra estação qualquer, precisa configurar o gateway e DNS nas configurações de rede. ******************************************************** De:  Cleyton Luiz Scherer Para:  Thiago Macieira Cc:  linux-br@bazar2.conectiva.com.br Assunto:  Re: (linux-br)barrando httptunnel Data:  Sat, 24 Apr 2004 13:22:32 -0300 (BRT) Como eu resolvi: 1) No iptables: ############################## # Bloqueando socks tunneling # ############################## iptables -t filter -A FORWARD -s http-tunnel.com -j DROP iptables -t filter -A FORWARD -d http-tunnel.com -j DROP iptables -t filter -A FORWARD -s 64.83.28.77     -j DROP iptables -t filter -A FORWARD -d 64.83.28.77     -j DROP iptables -t filter -A FORWARD -d 200.221.7.2     -j DROP iptables -t filter -A FORWARD -d 63.219.179.196  -j DROP 2) No Squid: Colocando a palavra "tunnel" na blacklist. Ninguém acessa www a menos que seja pelo squid. Cleyton On Fri, 23 Apr 2004, Thiago Macieira wrote: > -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA1 > > Accenture_Luiz_Estivalet@Dell.com wrote: > >Ola, > >Como faco para barrar httptunnel e outros programas do genero com o > > iptables ou squid? ******************************************************** iptables -A INPUT -p tcp -i eth1 --dport 3128 -j REJECT ******************************************************** ******************************************************** De: William da Rocha Lima Para: leo@digioffice.com.br, linux-br@bazar.conectiva.com.br Assunto: RES: (linux-br) Squid X Data: 29 May 2003 14:30:11 -0300 Para resolver esse problema habilita-se na máquina firewall (onde está instalado o squid) algumas regras de repasse de pacotes somente para as porgtas do POP (25) e do SMTP (110). Configurando com IPCHAINS Para isso, basta executar essas regras: [root@localhost]# ipchains -A forward -p tcp -s 192.168.1.0/24 -d 0/0 25 -j MASQ [root@localhost]# ipchains -A forward -p tcp -s 192.168.1.0/24 -d 0/0 110 -j MASQ Elas basicamente dizem para repassar todos os pacotes vindos de qualquer porta de qualquer máquina da rede 192.168.1.0 e com a máscara 24 (255.255.255.0), com destino para as portas 25 ou 110 de qualquer máquina (0/0). Para listar as novas regras adicionadas basta executar: [root@local]# ipchains -L Chain input (policy ACCEPT): Chain forward (policy ACCEPT): target prot opt source destination ports MASQ tcp ------ 192.168.1.0/24 anywhere any -> smtp MASQ tcp ------ 192.168.1.0/24 anywhere any -> pop-3 Chain output (policy ACCEPT): Agora para que essas regras sejam sempre lidas na inicialização do sistema basta adicionar no final do arquivo /etc/rc.d/rc.local os dois comandos referentes as regras de repasse de pacotes. Existe uma outra forma elegante de se fazer isso, veja as instruções abaixo: 1. Vá para o diretório /etc/rc.d/init.d. 2. Use o editor de textos de sua preferência e crie um arquivo chamado ipchains com o seguinte conteúdo: #! /bin/sh # description: Inicializacao do ipchains # # chkconfig: 2345 80 30 # processname: ipchains # pidfile: /var/run/ipchains.pid . /etc/rc.d/init.d/functions . /etc/sysconfig/network if [ ${NETWORKING} = "no" ] then exit 0 fi case "$1" in start) gprintf "Iniciando o serviço de %s: " "IPChains" echo echo 1 > /proc/sys/net/ipv4/ip_forward /sbin/ipchains -P forward DENY /sbin/ipchains -A forward -p tcp -s 192.168.1.0/24 -d 0/0 25 -j MASQ /sbin/ipchains -A forward -p tcp -s 192.168.1.0/24 -d 0/0 110 -j MASQ ;; stop) gprintf "Parando o serviço de %s: " "IPChains" echo /sbin/ipchains --flush ;; *) gprintf "Uso: ipchains (start|stop)" echo ;; esac exit 0 4. Para ativar o ipchains: [root@localhost]# cd /etc/rc.d/init.d [root@localhost]# ./ipchains start e para desativar o mesmo execute: [root@localhost]# ./ipchains stop Configurando com IPTABLES Primeiramente levante o módulo de seu kernel: [root@localhost]# modprobe iptable_nat Faça o forward de pacotes de sua rede: [root@localhost]# echo 1 > /proc/sys/net/ipv4/ip_forward Crie a regra: (para a conexão da internet através da eth1) [root@localhost]# iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE Ou, para ppp0 (conexão discada): [root@localhost]# iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE As regras serão perdidas na hora do boot de sua máquina, portanto salve-as: [root@localhost]# iptables-save > /backup/regras Insira no final do arquivo /etc/rc.local: [root@localhost]# mcedit /etc/rc.local As seguintes linhas: modprobe iptable_nat echo 1 > /proc/sys/net/ipv4/ip_forward iptables-restore /backup/regras Toda vez em que for feito o boot suas regras serão inicializadas e suas máquinas da rede interna estarão se conectando a internet por meio de mascaramento. Estações Windows® Para configurar uma estação Windows®, siga os seguintes passos: 1. Vá para Iniciar->Configurações->Painel de Controle->Rede: 2. Clique em TCP/IP e pressione o botão Propriedades. 3. Clique em Configuração DNS 4. Clique em Ativar DNS e digite o nome de sua máquina no campo Host e o domínio no campo Domínio. Especifique também o DNS do provedor onde você esta se conectando. 5. Digite o endereço de IP de seu servidor em Ordem pesquisa servidor DNS e clique em Adicionar. 6. Digite o nome do seu domínio em Ordem pesquisa sufixo domínio e clique em Adicionar. 7. Clique em Gateway e informe o número ip do seu servidor. 8. Clique em Ok e saia da configuração de rede. Você terá de reinicializar o computador. Para testar a configuração, tente acessar algum endereço da Internet após ter reinicializado a máquina. Fonte: www.linuxit.com.br William da Rocha Lima wrocha@acbr.com.br Tel.: (11) 4166-7300 --------------------------------------------------------------------------- Esta lista é mantida pela Conectiva S.A. Visite http://www.conectiva.com.br Linux-BR@bazar2.conectiva.com.br Arquivo: http://bazar2.conectiva.com.br/mailman/listinfo/linux-br ******************************************************** De:  Alejandro Flores Responder-a:  Alejandro Flores Para:  IBBNET Cc:  Lista da conectiva Assunto:  Re: (linux-br)firewall / Squid Data:  Tue, 14 Dec 2004 11:16:21 -0300 Olá, > Estou com um firewall rodando no linux e compartilhando minha internet em > uma maquina, gostaria de colocar pra rolar agora o Squid, ai vem a pergunta, > Eu poderia rodar na mesma maquina ou é melhor rodar o Squid em outra maquina > depois do Firewall? Pois com está em uma empresa, quero tomar muito cuidado > com a segurança e não sei onde colocar o serviço. Não se deve utilizar o proxy na mesma máquina que o firewall porque: - Existe a possibilidade de se tunelar um trafego pelo proxy e com isso burlar suas regras de saída. - Você vai estar colocando um serviço no seu firewall. Se o serviço tiver alguma falha de segurança...  Apesar de você poder rodar o squid sem privilegios de root, e em um ambiente chroot. O ideal é colocar o proxy atrás do firewall. Abraço! Alejandro Flores ******************************************************** De: Rodrigo Barbosa Responder A: Discussão sobre segurança no Conectiva Linux Para: Discussão sobre segurança no Conectiva Linux Assunto: Re: RES: RES: RES: [seguranca] forçar saída pelo squid Data: Thu, 10 Mar 2005 21:38:32 -0300 -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Observe que ele disse que existem usuários na máquina que roda o Squid. Então, porta 80 vindo daquela máquina pode ser tanto o squid quanto outro usuário. Sim, ele poderia colocar o squid em uma máquina separada, o que como ele mesmo disse, resolveria o problema (utilizando a solução que vocês citou). Porém, ele quer evitar de fazer isso. Agora, outra solução. O Squid roda sob um usuário distinto. Existe maneira do iptables, na chain OUTPUT, identificar o usuário responsável pelo processo que esta gerando aquele dado. Portanto, podemos ter, na máquina que roda o squid: iptables -A OUTPUT -p tcp --destination-port 80 -m owner --uid-owner 109 \ -j ACCEPT iptables -A OUTPUT -p tcp --destination-port 80 -j DENY Na minha máquina, UID 109 é o usuário proxy, que o squid usa. Você pode liberar também para root. Acho que isso vai fornecer a solução que você está querendo. Estas regras funcionam diretamente com o iptables/kernel do Conectiva, portanto se esse for o que é utilizado, e imagino que seja já que esta lista de segurança é da Conectiva, esse procedimento vai resolver o seu problema. []s On Thu, Mar 10, 2005 at 07:06:11PM -0400, Walter Claudino da Silva Júnior wrote: > Cara muito simples criando a regra que faça o seguinte.... > > qualquer coisa que vier da maquina squid passe para o próximo roteador..... > qualquer coisa que vier da rede interna passe para o squid..... > > Como o squid é uma exeção a regra não e redirecionado para ele mesmo... > Pronto.... sem loop! > > o ip-tables tem plenas condições de resolver isso... > > Andson Gomes escreveu: > > >E como você faria isso? O proxy tem que sair para a porta 80, o browser > >também. Você faz a requisição http do browser ir para o squid, ai o squid > >teria de sair para a porta 80, e seria novamente redirecionado para ele > >mesmo, a não ser que você saiba como detectar que aquela saída vem do > >squid. > >Você sabe? > > > > > >-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= > > Andson Gomes > >____________________________________________ > >Chefe da Seção de Manutenção de Equipamentos > >Divisão de Manutenção e Suporte > >Departamento de Informática > >Tribunal de Justiça do Estado de Roraima > >Fone: (95) 621-2701 > >E-mail: andson@tj.rr.gov.br > >-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= > > > >-----Mensagem original----- > >De: seguranca-bounces@distro2.conectiva.com.br > >[mailto:seguranca-bounces@distro2.conectiva.com.br] Em nome de Walter > >Claudino da Silva Júnior > >Enviada em: quinta-feira, 10 de março de 2005 12:18 > >Para: Discussão sobre segurança no Conectiva Linux > >Assunto: Re: RES: RES: [seguranca] forçar saída pelo squid > > > >Não vira não vc coloca no router que qualquer coisas nessas portas devem > >ser > >redirecionadas para a maquina squid com exeção o próprio squid! > >Assim vc evita a geração deste loop! > > > >________________________________________________________ > >Lista seguranca > >seguranca@distro2.conectiva.com.br > >http://distro2.conectiva.com.br/mailman/listinfo/seguranca > > - -- Rodrigo Barbosa "Quid quid Latine dictum sit, altum viditur" "Be excellent to each other ..." - Bill & Ted (Wyld Stallyns) - ******************************************************** De: Tiago F Bianchini Responder A: tiago@bianchinisa.com.br Para: Rodrigo Barbosa , Discussão sobre segurança no Conectiva Linux , Antonio F. Zago Assunto: Re: [seguranca] [solução] forçar saída pelo squid Data: Fri, 11 Mar 2005 08:33:47 -0300 Em Qui 10 Mar 2005 21:38, Rodrigo Barbosa escreveu: > Observe que ele disse que existem usuários na máquina que roda o Squid. > Então, porta 80 vindo daquela máquina pode ser tanto o squid quanto > outro usuário. > > Sim, ele poderia colocar o squid em uma máquina separada, o que como > ele mesmo disse, resolveria o problema (utilizando a solução que > vocês citou). Porém, ele quer evitar de fazer isso. > > Agora, outra solução. > > O Squid roda sob um usuário distinto. Existe maneira do iptables, > na chain OUTPUT, identificar o usuário responsável pelo processo que > esta gerando aquele dado. > > Portanto, podemos ter, na máquina que roda o squid: > > iptables -A OUTPUT -p tcp --destination-port 80 -m owner --uid-owner 109 > \ -j ACCEPT > iptables -A OUTPUT -p tcp --destination-port 80 -j DENY > > Na minha máquina, UID 109 é o usuário proxy, que o squid usa. > Você pode liberar também para root. > > Acho que isso vai fornecer a solução que você está querendo. > > Estas regras funcionam diretamente com o iptables/kernel do Conectiva, > portanto se esse for o que é utilizado, e imagino que seja já que esta > lista de segurança é da Conectiva, esse procedimento vai resolver o seu > problema. Realmente isso é o q realmente funciona para resolver esse problema. Estive fora ontem e não pude dar um retorno pra lista, vi q varias pessoas deram suas opiniões, mas realmente o q serviu de solução para esse caso foi o q Rodrigo Barbosa explicou agora, detalhadamente. Eu já tinha utilizado essa solução, q foi sugerida pelo Marcelo Ricardo Leitner. Agradeço a todos q ajudaram. Valeu! ******************************************************** De: Wellington Terumi Uemura Responder A: Wellington Terumi Uemura Para: Lucas Carlessi Cc: linux-br@bazar2.conectiva.com.br Assunto: Re: (linux-br)IPTABLES - Redirec. porta 80 p 3128: problemas Data: Fri, 11 Mar 2005 03:14:23 -0300 Já tentou a seguinte regra, assumindo que seu SQUID esteja no IP 10.1.1.15 $IPTABLES -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to 10.1.1.15:3128 Qualquer Source ou Destination não informado no iptables ele já assume como 0/0 ou ANY, no caso você poderia definir algo como: $IPTABLES -t nat -A PREROUTING -p tcp -s 10.1.1.0/24 --dport 80 -j DNAT --to 10.1.1.15:3128 Ou ainda, sendo mais específico criando várias regras para cada IP da rede: $IPTABLES -t nat -A PREROUTING -p tcp -s 10.1.1.1 --dport 80 -j DNAT --to 10.1.1.15:3128 ... ... ... Não se esqueça de definir as regras corretamente para INPUT/OUTPUT ou tudo isso não vai funcionar. > $IPTABLES -t nat -A PREROUTING -i eth1 -s 0/0 -p tcp --dport 80 -j > REDIRECT --to-ports 3128 ******************************************************** De: Alejandro Flores Responder A: Alejandro Flores Para: Pedro Junior Ashidani Cc: Linux-BR Grupo Assunto: Re: (linux-br)Proxy Transparente Data: Tue, 22 Mar 2005 14:29:10 -0300 Olá, > Pessoal, > Existe alguma maneira criar regras que evitem de um conjunto de ip's não > passem pelo Proxy Transparent? > O Detalhe é que os ip's estão em várias sub-redes > Exemplo > $IPTABLES -t nat -A PREROUTING -i eth1 -s ! 200.97.0.13 -p tcp --dport > 80 -j REDIRECT --to-port 3128 > $IPTABLES -t nat -A PREROUTING -i eth1 -s ! 192.168.2.0/24 -p tcp > --dport 80 -j REDIRECT --to-port 3128 Exemplo simples: NO_PROXY_FOR="200.97.0.13/32 192.168.2.0/24" for ip in $NO_PROXY_FOR do $IPTABLES -t nat -A PREROUTING -i eth1 -s $ip -p tcp --dport 80 -j ACCEPT done $IPTABLES -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-ports 3128 Abraço! Alejandro Flores ******************************************************** De: Alejandro Flores Responder A: Alejandro Flores Para: Juscelino Santos Cc: linux-br@bazar2.conectiva.com.br Assunto: Re: (linux-br)Iptables + squid autenticado Data: Sat, 25 Jun 2005 09:01:37 -0300 Olá, > precisei colocar uma regra no meu iptables para que, se o usuario > tirasse as configurações de proxy do navegador ele nao conseguisse > navegar sem autenticar senha, só que tenho qeu conseguir fazer excessão > de um equipmento, ou seja , um ip especifico poderia navegar pela porta > 80, segue abaixo o que eu coloquei no meu iptables. Tem certeza que é só a porta 80? E a 443 (SSL), será que ele não ta precisando dessa também? > /usr/sbin/iptables -A FORWARD -p tcp --dport 80 -s 192.168.0.38 -j > ACCEPT (aqui eu tentei liberar a makina mas nao funcionou!) Tenta especificando a mascara de rede: iptables -A FORWARD -p tcp --dport 80 -s 192.168.0.38/32 -j ACCEPT E, (não preciso nem dizer mas vou :-) ), certifique-se de que a regra que bloqueia tudo está realmente abaixo dessa. > /usr/sbin/iptables -A FORWARD -p tcp --dport 80 -j REJECT ( essa aqui > bloqueou os "espertinhos") Verifique com o 'iptables -L FORWARD -nxv' se os contadores para a regra que você libera o determinado ip são incrementados. -- Abraço! Alejandro Flores http://www.triforsec.com.br/ ********************************************************