-
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
-
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
-
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).
-
Por favor, uma ajudinha a iniciante !
Alexandre, posta seu firewall aqui para podermos dar uma olhada... quem sabe achamos o problema.
-
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
-
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
-
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
-
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.
-
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
-
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
:oops: sou eu...
-
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.
-
Por favor, uma ajudinha a iniciante !
Citação:
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.
-
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.
-
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...
-
Por favor, uma ajudinha a iniciante !
Esse forward eu nao tinha visto mas deve mudar tambem
-
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.
-
Por favor, uma ajudinha a iniciante !
uma pergunta
vc esta com o ip_forward habilitado?
-
Por favor, uma ajudinha a iniciante !
Eu nao acho que vc deve comecar do zero, eu tenho certeza disso
-
Por favor, uma ajudinha a iniciante !
Visitante, o ip_forward está habilitado sim !
-
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.)