Página 1 de 2 12 ÚltimoÚltimo
+ Responder ao Tópico



  1. #1
    Alexandre_Catanduva
    Visitante

    Padrão Por favor, uma ajudinha a iniciante !

    Pessoal, estou tentando criar um firewall mas estou com algumas dificuldades. Vou tentar a situação detalhadamente, desculpem se o post ficar muito grande.

    Meu acesso a internet é com Speedy Business (ip fixo), tenho três servidores:
    1-) Firewall
    2-) Webserver (Apache), DNS (Bind), Proxy (Squid), Email (Postfix), Banco de dados (Firebird)
    3-) Lista de emails para clientes (Postfix / Postgree)

    Meu firewall tem três placas de rede:
    eth0 = speedy
    eth1 = 192.168.0.254 (rede interna)
    eth2 = 192.168.1.254 (DMZ: servidores 2 e 3 descritos acima)

    Hoje eu tenho apenas 1 switch, mas vou comprar outro amanhã para dividir as redes... Por isso a placa eth1 hoje está sem funcionalidade uma vez que configurei as estações (2 WinXP) com ip's 192.168.1.50 / 192.168.1.51, ou seja, hoje estão na mesma rede dos servidores.

    Preciso configurar um firewall que permita que usuários externos (meus clientes) acessem o servidor WEB onde hospedo meu site, e que ao configurar meu IP na Fapesp meu servidor DNS responda. Esses dois serviços estão na mesma máquina atrás do firewall (servidor 2).

    Outra coisa é que minhas duas estações XP tem que ter acesso total a internet (web via proxy, icq, msn, email, webmail "yahoo, terra, hotmail", etc).

    Eu já procurei alguns tutoriais sobre configuração de firewall com iptables e inclusive tentei criar um com ajuda do tutorial "Guia Foca GNU/Linux - Firewall Iptable" http://focalinux.cipsga.org.br/guia/...w-iptables.htm mas não deu certo.

    Se for preciso posso colocar ele aqui para vocês darem uma olhada.

    O que tava acontecendo é que do firewall eu conseguia pingar para fora (ping www.uol.com.br). Das estações eu conseguia pingar o firewall pelo ip fixo 200.x.x.x que está na eth0. Mas não consigo acessar nada pra fora (web, icq, msn, etc)

    No log do firewall tinha a seguinte linha (repetia varias vezes)
    Feb 16 16:18:48 firewall kernel: FIREWALL: FORWARD IN= eth2 OUT=eth0 SRC=192.168.1.1 DST=200.204.0.138 LEN=58 TOS=0x00 PREC=0x00 TTL=63 ID=9402 DF PROTO=udp SPT=32769 DPT=53 LEN=57

    O que devo fazer ?? Alguém pode me dar uma força ??
    Agradeço desde já qualquer ajuda...

    Um abraço,
    Alexandre

  2. #2

    Padrão Por favor, uma ajudinha a iniciante !

    So uma coisinha nao esqueça que tem de ter 2 servidores dns para a fapesp habilitar seu dominio.

    falows

  3. #3
    xargs -n 1 kill -9 Avatar de sergio
    Ingresso
    Jan 2004
    Localização
    Capital do Triângulo
    Posts
    5.201
    Posts de Blog
    9

    Padrão Por favor, uma ajudinha a iniciante !

    Citação Postado originalmente por ruyneto
    So uma coisinha nao esqueça que tem de ter 2 servidores dns para a fapesp habilitar seu dominio.

    falows
    hummmm.... discordo Ruy... aqui eu rodo DNS configurado em um server apenas atraves de NAT (meu server DNS, Apache, E-mail nao tem numero IP real e nao responde icmp, mas responde as consultas do registro.br e qq outro).

  4. #4
    xargs -n 1 kill -9 Avatar de sergio
    Ingresso
    Jan 2004
    Localização
    Capital do Triângulo
    Posts
    5.201
    Posts de Blog
    9

    Padrão Por favor, uma ajudinha a iniciante !

    Alexandre, posta seu firewall aqui para podermos dar uma olhada... quem sabe achamos o problema.

  5. #5

    Padrão Por favor, uma ajudinha a iniciante !

    Citação Postado originalmente por SerAntSou
    Citação Postado originalmente por ruyneto
    So uma coisinha nao esqueça que tem de ter 2 servidores dns para a fapesp habilitar seu dominio.

    falows
    hummmm.... discordo Ruy... aqui eu rodo DNS configurado em um server apenas atraves de NAT (meu server DNS, Apache, E-mail nao tem numero IP real e nao responde icmp, mas responde as consultas do registro.br e qq outro).
    So uma coisa como o registro aceitou a configuração de um dominio sem dois servidores dns?? pois sempre que vou registrar nomes no registro.br ele nao aceita se so por 1 servidor dns respondendo por aquele dominio.

    falows

  6. #6
    Alexandre_Catanduva
    Visitante

    Padrão Por favor, uma ajudinha a iniciante !

    Valeu pelo interesse em me ajudar pessoal. Aqui está meu script de firewall, to achando que ele está totalmente furado, vocês com mais experiência podem me dar umas dicas valiosas. Obrigado!

    Com relação ao registro na Fapesp, para registrar meu dominio faoi realmente necessário dois servidores DNS para respoder a requisição, um colega meu configurou nos servidores dele, mas to querendo colocar o meu como primario e deixar um dele como secundário.

    -------------------------- Aqui começa o script --------------------------------
    #!/bin/bash
    #modprobe iptable
    #modprobe ipt_filter
    modprobe iptable_nat
    modprobe ipt_conntrack
    #modprobe ipt_mangle
    modprobe ipt_TOS
    modprobe ipt_MASQUERADE
    modprobe ipt_LOG

    ##### Zera todas as regras anteriores #####
    iptables -t filter -F
    iptables -t nat -F
    iptables -t mangle -F

    ##### Definicao de politicas #####
    ## Tabela filter
    iptables -t filter -P INPUT DROP
    iptables -t filter -P OUTPUT ACCEPT
    iptables -t filter -P FORWARD DROP

    ## Tabela nat
    iptables -t nat -P PREROUTING ACCEPT
    iptables -t nat -P OUTPUT ACCEPT
    iptables -t nat -P POSTROUTING DROP

    ## Tabela mangle
    iptables -t mangle -P PREROUTING ACCEPT
    iptables -t mangle -P OUTPUT ACCEPT

    ##### Protecoes #####
    ## IP Spoofing ##
    for i in /proc/sys/net/ipv4/conf/*/rp_filter; do
    echo 1 >$i
    done

    ## Ping da morte ##
    #iptables -t filter -A ping-chain -p icmp --icmp-type echo-request -m limit --li
    mit 1/s -j ACCEPT
    #iptables -t filter -A ping-chain -j DROP

    ## Syn Flood ##
    #iptables -t filter -A syn-chain -p tcp --syn -m limit --limit 2/s -j ACCEPT
    #iptables -t filter -A syn-chain -j DROP

    ##### Ativa o redirecionamento de pacotes #####
    echo "1" >/proc/sys/net/ipv4/ip_forward

    ##### Numero maximo de conexoes simultaneas #####
    echo "8192" > /proc/sys/net/ipv4/ip_conntrack_max

    #################################################
    ### Tabela Filter ###
    #################################################
    ##### Chain INPUT #####
    ## Usado para tratar o trafego vindo da net ##
    iptables -N internet

    ## Aceita todo trafego vindo/indo para loopback ##
    iptables -A INPUT -i lo -j ACCEPT

    ## Todo trafego vindo da rede interna tbm eh aceito ##
    iptables -A INPUT -s 192.168.1.0/24 -i eth2 -j ACCEPT

    ## Conexoes vindas de fora (eth0) saum tratadas pelo chain "internet" ##
    iptables -A INPUT -i eth0 -j internet

    ## Qualquer outra conexaum desconhecida eh registrada e derrubada ##
    iptables -A INPUT -j LOG --log-prefix "FIREWALL: INPUT "
    iptables -A INPUT -j DROP

    ##### Chain FORWARD #####
    ## Permite redirecionamento de conexoes entre as interfaces locais. ##
    ## Qualquer trafego vindo/indo para outras interfaces serah bloqueada ##
    iptables -A FORWARD -d 192.168.1.0/24 -i eth0 -o eth2 -j ACCEPT
    iptables -A FORWARD -d 192.168.1.0/24 -i eth2 -o eth0 -j ACCEPT
    iptables -A FORWARD -d 192.168.0.0/24 -i eth0 -o eth1 -j ACCEPT
    iptables -A FORWARD -d 192.168.0.0/24 -i eth1 -o eth0 -j ACCEPT

    iptables -A FORWARD -j LOG --log-prefix "FIREWALL: FORWARD "
    iptables -A FORWARD -j DROP

    ##### Chain internet #####
    ## Aceitamos todas as mensagens icmp vindas da internet com certa limitacao ##
    iptables -A internet -p icmp -m limit --limit 2/s -j ACCEPT

    ## Aceitamos o trafego vindo da internet para os servicos WEB e DNS (portas 80/53) ##
    iptables -A internet -p tcp --dport 80 -j ACCEPT
    iptables -A internet -p udp --dport 53 -j ACCEPT

    ## Esses servicos serao registrados e bloqueados ##
    iptables -A internet -p tcp --dport 21 -j LOG --log-prefix "FIREWALL: ftp "
    iptables -A internet -p tcp --dport 25 -j LOG --log-prefix "FIREWALL: smtp "
    iptables -A internet -p tcp --dport 110 -j LOG --log-prefix "FIREWALL: pop3 "
    iptables -A internet -p tcp --dport 113 -j LOG --log-prefix "FIREWALL: identd "
    iptables -A internet -p udp --dport 111 -j LOG --log-prefix "FIREWALL: rpc "
    iptables -A internet -p tcp --dport 111 -j LOG --log-prefix "FIREWALL: rpc "
    iptables -A internet -p udp --dport 137:139 -j LOG --log-prefix "FIREWALL: samba "
    iptables -A internet -p tcp --dport 137:139 -j LOG --log-prefix "FIREWALL: samba "

    ## Bloqueia qualquer tentativa de acesso de fora para essa maquina ##
    iptables -A internet -m state --state ! ESTABLISHED,RELATED -j LOG --log-prefix "FIREWALL: ppp-in "
    iptables -A internet -m state --state ! ESTABLISHED,RELATED -j DROP

    ## Qualquer outro tipo de trafego eh aceito ##
    iptables -A internet -j ACCEPT

    #################################################
    ### Tabela NAT ###
    #################################################
    ##### Chain POSTROUTING #####
    ## Permite qualquer conexao vinda com destino ao lo e rede local para eth1 ##
    iptables -t nat -A POSTROUTING -o lo -j ACCEPT
    iptables -t nat -A POSTROUTING -o eth1 -j ACCEPT

    ## Direciona conexoes para WebServer e DNS (portas 80/53) ##
    iptables -t nat -A PREROUTING -i 200.x.x.x -p tcp --dport 80 -j DNAT --to 192.168.1.1:80
    iptables -t nat -A PREROUTING -i 200.x.x.x -p udp --dport 53 -j DNAT --to 192.168.1.1:53

    iptables -t nat -A POSTROUTING -p tcp -s 192.168.1.0/24 --sport 80 -j SNAT --to 200.x.x.x
    iptables -t nat -A POSTROUTING -p udp -s 192.168.1.0/24 --sport 53 -j SNAT --to 200.x.x.x

    ## Eh feito o masquerading ##
    iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

    ## Registra e bloqueia qualquer outro tipo de trafego desconhecido ##
    iptables -t nat -A POSTROUTING -j LOG --log-prefix "FIREWALL: SNAT "
    iptables -t nat -A POSTROUTING -j DROP

    #################################################
    ### Tabela magle ###
    #################################################
    iptables -t mangle -A OUTPUT -o eth2 -p tcp --dport 21 -j TOS --set-tos 0x10
    iptables -t mangle -A OUTPUT -o eth2 -p tcp --dport 23 -j TOS --set-tos 0x10
    iptables -t mangle -A OUTPUT -o eth2 -p tcp --dport 6665:6668 -j TOS --set-tos 0x10
    iptables -t mangle -A OUTPUT -o eth2 -p udp --dport 53 -j TOS --set-tos 0x10

  7. #7

    Padrão Por favor, uma ajudinha a iniciante !

    Cara assim de firewall nao sei mto, mas se prescisar ajuda no bind eh so postar que tento ajudar.

    falows

  8. #8
    Visitante

    Padrão Por favor, uma ajudinha a iniciante !

    Citação Postado originalmente por ruyneto
    Citação Postado originalmente por SerAntSou
    Citação Postado originalmente por ruyneto
    So uma coisinha nao esqueça que tem de ter 2 servidores dns para a fapesp habilitar seu dominio.

    falows
    hummmm.... discordo Ruy... aqui eu rodo DNS configurado em um server apenas atraves de NAT (meu server DNS, Apache, E-mail nao tem numero IP real e nao responde icmp, mas responde as consultas do registro.br e qq outro).
    So uma coisa como o registro aceitou a configuração de um dominio sem dois servidores dns?? pois sempre que vou registrar nomes no registro.br ele nao aceita se so por 1 servidor dns respondendo por aquele dominio.

    falows
    Na verdade meu NAT eh para 2 nros IPs validos... e no registro.br eu configuro os 2.

  9. #9
    Visitante

    Padrão Por favor, uma ajudinha a iniciante !

    Alexandre, a principio suas regras estao corretas a nao ser pelo synflood e ping da morte que deveriam estar descomentados...
    Talvez o problema seja no seu DNS mesmo.

    No masquerade coloque assim e ve se funciona:

    ipatbles -t nat -A POSTROUNTING -s 192.168.1.0/24 -j MASQUERADE -o eth0

  10. #10
    xargs -n 1 kill -9 Avatar de sergio
    Ingresso
    Jan 2004
    Localização
    Capital do Triângulo
    Posts
    5.201
    Posts de Blog
    9

    Padrão Por favor, uma ajudinha a iniciante !

    Citação Postado originalmente por Anonymous
    Alexandre, a principio suas regras estao corretas a nao ser pelo synflood e ping da morte que deveriam estar descomentados...
    Talvez o problema seja no seu DNS mesmo.

    No masquerade coloque assim e ve se funciona:

    ipatbles -t nat -A POSTROUNTING -s 192.168.1.0/24 -j MASQUERADE -o eth0
    ops: sou eu...

  11. #11
    Alexandre_Catanduva
    Visitante

    Padrão Por favor, uma ajudinha a iniciante !

    Fala Sergio, blz ?
    Seguinte, alterei o masquerade como você sugeriu e não funcionou. Do jeito que você falou nem do próprio firewall não consegui pingar pra fora (ping www.uol.com.br).
    Sobre o comentário no synflood e ping da morte eu dei bobeira, ainda bem que você viu ... Já acertei.

    Quando coloco esse script pra rodar olha o que grava no meu log:

    Feb 17 13:32:19 tubarao kernel: FIREWALL: FORWARD IN=eth2 OUT=eth0 SRC=192.168.1.51 DST=200.204.0.138 LEN=56 TOS=0x00 PREC=0x00 TTL=127 ID=25500 PROTO=UDP SPT=1048 DPT=53 LEN=36
    Feb 17 13:32:19 tubarao kernel: FIREWALL: FORWARD IN=eth2 OUT=eth0 SRC=192.168.1.50 DST=64.12.161.153 LEN=1052 TOS=0x00 PREC=0x00 TTL=127 ID=57053 PROTO=UDP SPT=4238 DPT=5140 LEN=1032
    Feb 17 13:32:19 tubarao kernel: FIREWALL: FORWARD IN=eth2 OUT=eth0 SRC=192.168.1.50 DST=200.204.0.138 LEN=56 TOS=0x00 PREC=0x00 TTL=127 ID=57054 PROTO=UDP SPT=4221 DPT=53 LEN=36
    Feb 17 13:32:20 tubarao kernel: FIREWALL: FORWARD IN=eth2 OUT=eth0 SRC=192.168.1.51 DST=200.204.0.138 LEN=56 TOS=0x00 PREC=0x00 TTL=127 ID=25501 PROTO=UDP SPT=1048 DPT=53 LEN=36
    Feb 17 13:32:20 tubarao kernel: FIREWALL: ppp-in IN=eth0 OUT= MAC=00:0d:87:a8:52:ce:00:90:96:81:79:1d:08:00 SRC=205.188.8.188 DST=200.161.24.93 LEN=1202 TOS=0x00 PREC=0x00 TTL=105 ID=20896 DF PROTO=TCP SPT=5190 DPT=1333 WINDOW=16384 RES=0x00 ACK PSH URGP=0
    Feb 17 13:32:20 tubarao kernel: FIREWALL: FORWARD IN=eth2 OUT=eth0 SRC=192.168.1.50 DST=200.204.0.138 LEN=56 TOS=0x00 PREC=0x00 TTL=127 ID=57055 PROTO=UDP SPT=4221 DPT=53 LEN=36
    Feb 17 13:32:21 tubarao kernel: FIREWALL: FORWARD IN=eth2 OUT=eth0 SRC=192.168.1.51 DST=200.204.0.138 LEN=56 TOS=0x00 PREC=0x00 TTL=127 ID=25503 PROTO=UDP SPT=1048 DPT=53 LEN=36
    Feb 17 13:32:21 tubarao kernel: FIREWALL: FORWARD IN=eth2 OUT=eth0 SRC=192.168.1.50 DST=200.204.0.138 LEN=56 TOS=0x00 PREC=0x00 TTL=127 ID=57057 PROTO=UDP SPT=4221 DPT=53 LEN=36

    Pelo o que está gravando me parece que é a regra do chain FORWARD da tabela filter... acho que o pau tá nesse trecho:

    ##### Chain FORWARD #####
    ## Permite redirecionamento de conexoes entre as interfaces locais. ##
    ## Qualquer trafego vindo/indo para outras interfaces serah bloqueada ##
    iptables -A FORWARD -d 192.168.1.0/24 -i eth0 -o eth2 -j ACCEPT
    iptables -A FORWARD -d 192.168.1.0/24 -i eth2 -o eth0 -j ACCEPT
    iptables -A FORWARD -d 192.168.0.0/24 -i eth0 -o eth1 -j ACCEPT
    iptables -A FORWARD -d 192.168.0.0/24 -i eth1 -o eth0 -j ACCEPT

    iptables -A FORWARD -j LOG --log-prefix "FIREWALL: FORWARD "
    iptables -A FORWARD -j DROP

    ------------------------- Fim do script --------------------------------------

    O que é mais estranho é que eu comentei esse trecho todo e mesmo assim não consegui acessar sites através das estações (winXP).
    Com o trecho comentado as linhas que postei do LOG não são gravadas.

  12. #12
    felco
    Visitante

    Padrão Por favor, uma ajudinha a iniciante !

    iptables -t nat -P POSTROUTING DROP
    Tira isso coloca ACCEPT e sobre o registro.br vc pode usar um endereco do tipo no-ip.org redirecionando pro seu IP real (do speedy) ja que no registro.br vc tera algo assim:
    DNS primario:
    ns1.dominio.com.br
    IP: 200.x.y.z

    DNS secundario:
    ns2dominio.no-ip.org
    IP: desnecessario

    O no-ip.org ja tem um DNS respondendo por ele logo vc nao precisa especificar o IP, eh como o IP do dominio no-ip.org eh diferente nao vai dar conflito... boa sorte!
    Isso funcionava antes eu usei por muito tempo assim, nao sei se agora ainda funciona mas se nao funcionar, existem dezenas de DNS server pub pra vc colocar o registro do seu dominio de graca.

  13. #13
    Alexandre_Catanduva
    Visitante

    Padrão Por favor, uma ajudinha a iniciante !

    E ai felco ?
    Testei a mudança que você sugeriu e ainda assim não estou conseguindo acessar das estações.

    Das estações consigo pingar todas as maquinas da rede inclusive o firewall pelo IP fixo 200.x.x.x
    Mas quando tento acessar algum site ou pingar algum site não tenho resposta.

    Minha configuração de rede das estações está assim:
    IP : 192.168.1.x
    Mask: 255.255.255.0
    Gw : 192.168.1.254 (ip que está configurado na eth2 do firewall)

    DNS: 200.204.0.138 (dns do terra)

    Será que alterei no lugar certo ??
    Eu alterei a linha:
    ##### Definicao de politicas #####
    ## Tabela nat
    iptables -t nat -P PREROUTING ACCEPT
    iptables -t nat -P OUTPUT ACCEPT
    iptables -t nat -P POSTROUTING DROP

    É isso mesmo ??se for, infelizmente não deu certo!
    Do firewall eu consigo pingar sites externos (Ex: ping www.uol.com.br) mas quando tento o mesmo das estações não funciona.

  14. #14
    xargs -n 1 kill -9 Avatar de sergio
    Ingresso
    Jan 2004
    Localização
    Capital do Triângulo
    Posts
    5.201
    Posts de Blog
    9

    Padrão Por favor, uma ajudinha a iniciante !

    na verdade vc tem dois pontos de DROP que estao vindo antes das regras de ACCEPT e isso nao funciona... ve ae:

    ##### Definicao de politicas #####
    ## Tabela filter
    iptables -t filter -P INPUT DROP
    iptables -t filter -P OUTPUT ACCEPT
    iptables -t filter -P FORWARD DROP

    ## Tabela nat
    iptables -t nat -P PREROUTING ACCEPT
    iptables -t nat -P OUTPUT ACCEPT
    iptables -t nat -P POSTROUTING DROP

    muda o DROP para ACCEPT, principalmente da tabela filter e ve se rola...

  15. #15
    felco
    Visitante

    Padrão Por favor, uma ajudinha a iniciante !

    Esse forward eu nao tinha visto mas deve mudar tambem

  16. #16
    Alexandre_Catanduva
    Visitante

    Padrão Por favor, uma ajudinha a iniciante !

    Fala Sergio, felco!! Tudo certo ??

    Então, eu fiz a alteração que vocês sugeriram e mesmo assim meu fire não funciona... Com essas alterações nem do proprio fire consigo pingar sites externos.

    Não falei antes, mas estou usando CL 10 ... No meu rc.local está assim:

    ----------------------------- rc.local -----------------------------------------
    modprobe iptable_nat
    iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
    echo "1" > /proc/sys/net/ipv4/ip_forward

    #/etc/rc.d/init.d/firewall
    --------------------------------------------------------------------------------

    Estou fazendo assim para os testes, quando vou testar o firewall eu comento as três primeiras linhas e descomento a última, quando preciso acessar a internet (como agora por exemplo) eu deixo como está ai em cima!! Com o rc.local do jeito que está ai em cima a internet funciona nas duas estações, mas assim eu to deixando minha máquina aberta pra Deus e todo mundo.. hehehehe.. E também não tem como eu direcionar as requisições de web e dns pro meu outro server.

    O que vocês sugerem ?? Acha que devo começar outro firewall do zero e ir testando regra por regra ?? Ou esse meu não está tão ruim e da pra tentar fazer funcionar ??

    Bom, aguardo sugestões!! E novamente agradeço a ajuda de todos.

  17. #17
    visitante
    Visitante

    Padrão Por favor, uma ajudinha a iniciante !

    uma pergunta

    vc esta com o ip_forward habilitado?

  18. #18
    felco
    Visitante

    Padrão Por favor, uma ajudinha a iniciante !

    Eu nao acho que vc deve comecar do zero, eu tenho certeza disso

  19. #19
    Alexandre_Catanduva
    Visitante

    Padrão Por favor, uma ajudinha a iniciante !

    Visitante, o ip_forward está habilitado sim !

  20. #20
    xargs -n 1 kill -9 Avatar de sergio
    Ingresso
    Jan 2004
    Localização
    Capital do Triângulo
    Posts
    5.201
    Posts de Blog
    9

    Padrão Por favor, uma ajudinha a iniciante !

    Alexandre, vc para o firewall e deixa soh as regras de Masquerade e Forward habilitadas, fica tudo normal? A rede navega blz? se sim ou seu DNS estah ok... esquece dele.
    Pegue as linhas de seu firewall e vah adicionando uma a uma na linha de comando ateh achar a regra que estah bloqueando a rede interna. Eh logico que algumas regras nao tem nada a ver com a rede interna (o syn-flood e DoS por ex.)