[FUGSPBR] DE novo a minha bridge
Capriotti
capriotti em cee.com
Ter Abr 9 09:04:34 BRT 2002
Cristian:
Está faltando informação aqui: Como o processo de "via-e-vem"pode acabar
sendo lento, vou tentar preencher o que eu acho que está faltando, ok ?
At 04:16 PM 4/8/2002 -0300, you wrote:
> [Free BSD1 - email e DNS]
> /\
> ||
> \/
> [roteador] <==> [HUB] <==> [FreeBSD2 - Bridge]
> /\ /\
> || ||
> \/ \/
> [redeNT1] [HUB] <==> [redeNT2]
>
>O que eu quero é o seguinte:
>A rede 2 deve conseguir usar o servidor DNS do FreeBSD1.
>A rede 2 deve ter acesso a internet com limitaco de banda de 64Kbit/s
>A rede 2 não deve enchergar os pcs da redeNT1
Estou assumindo que redeNT1 e redeNT2 estão em HUBs/Switches diferentes, e
a máquina FreeBSD2 tenha 3 placas de rede.
Claro que todo esse controle tem que ser feito na máquina FreeBSD2.
redeNT1 - 140.0.0.x (exemplo)
redeNT2 - 150.0.0.x (fornecido)
Interface de rede do FreeBSD2 para redeNT1 - rl0 (exemplo)
interface de rede do FreeBSD2 para redeNT2 - fxp1 (fornecido)
O que nós vamos discutir agora só é válido se seus usuários não puderem
alterar o IP das máquinas ! Caso eles tenham essa liberdade, o único jeito
seria um switch/roteador programável, onde VC limita o acesso de
determinado "ponto" (porrta de entrada do cabo); Mas isso foge do escopo e
não vou discutir.
Bloquear acesso da nedeNT1 para redeNT2 e vice-versa (estou assumindo o
vice-versa).
ipfw add 300 deny ip from 140.0.0.0/24 to 150.0.0.0/24 via rl0
ipfw add 400 deny ip from 150.0.0.0/24 to 140.0.0.0/24 via fxp1
Limitação de banda: do jeito que VC fez vai funcionar perfeitamente.
então, na ordem ficaria
ipfw pipe...
ipfw pipe...
ipfw add 500 [limitação 1]
ipfw add 600 [limitação 2]
Agora, com relação à navegação, VC especificou apenas usar o DNS do
FreeBSD1, mas as linhas que VC definiu são para outros serviços também...
Além disso, você não especificou se você que que seja usado apenas, única e
exclusivamente o DNS do FreeBSD1 e mais nenhum outro no mundo (o que seria
extremamente nazinsta, mas administrativamente poderia ter sua validade).
Então, para o caso do DNS exclusivo, existe uma solução extremamante
elegante que seria assim:
ipfw add 700 fwd [ip.do.FreeBSD1] udp from 150.0.0.0/24 to any 53 via fxp1
Essa linha, na prática, está dizendo que qualquer solicitação de DNS feita
na redeNT2, com qualquer endereço, vai ser direcionada para o FreeBSD1; Se
esse serviço estiver disponível naquela máquina (como está, segundo seu
esquema) vai ser aquela máquina que vai responder.
Mas pode ser que não seja essa a sua idéia, baseado nas regras que VC
colocou no seu exemplo. Então, se for esse o caso, vamos estudar:
ipfw add 800 allow udp from any to [ip.do.FreeBSD1] 53 via fxp1
esta linha está ok, liberando o tráfego, e todas as outras linhas que forem
baseadas nela vão estar ok, mas, para seu firewall ficar 100%, você tem que
bloquear o resto dos pacotes indesejados. E para fazer isso coloque a
seguinte linha:
ipfw add 65500 deny log ip from any to any
Note a opção LOG na linha ! Vou discuti-la depois.
Só que as linhas baseadas na linha 800 acima apenas liberam o tráfego de
saída, mas não o de entrada ! Isso significa que os computadores fazem a
pergunta mas a resposta é bloqueada na linha 65500 !
Nesse caso temos que adicionar uma linha que permita a entrada das respostas:
ipfw add 5000 allow tcp from any to any established
Na grande maioria dos casos isto funciona, mas no seu caso pode ser que
você precise de
ipfw add 5100 allow udp from any to any established
e
ipfw add 5200 allow icmp from any to any
para manter sua rede rodando redondinha.
Nota: é importante que você observe a ordem das linhas. Eu colocaria nesta
ordem NUMÉRICA (e não na ordem que eu escreve) que eu estou discutindo
aqui; É o mais lógico NA MINHA OPINIÃO.
Por último, gostaria de sugerir aqui uma estrutura geral de firewall, bem
genérica:
# Nat, se houver
#primeiro bloco de filtros:
#
# Filtros de segurança, contra spoofing, endereços de classes reservadas
(192.168, 172, 10) que não podem estar presentes em redes abertas, etc...
#segundo bloco
#
# Redirecionamentos
#Terceiro bloco
#
# O que é proibido na siua rede
#Quarto bloco
#
# O que é permitido em sua rede
# Quinto bloco - cláusula única:
#
# Proibir o resto que não foi previsto anteriormenmte
Agora, sobre a opção "LOG": Ela vai manter um registro de todo o tráfego
daquela linha no arquivo /var/log/security
Pode ser muito bom verificar esse arquivo para ver tentativas de invasão, e
também para estudar o porque seu firewall não está deixando passar
determinado tipo de acesso ou serviço.
Eu acho que fomos a fundo o suficiente neste caso. Caso ainda tenha alguma
dúvida escreva :)
[]s
Capriotti
>Arquivo /usr/local/etc/rc.d/firewall.sh : (o q eu acho q deveria ser
>feito)
>
>#INICIO
>#LIMITACAO DE BANDA
>ipfw pipe 10 config bw 64Kbit/s
>ipfw pipe 20 config bw 64kbit/s
>ipfw 1000 add pipe 10 all from any to any out via fxp1
>ipfw 1001 add pipe 20 all from any to any in via fxp1
>
>#Libera servicos da internet
>ipfw 750 add allow udp from any to any 53 via fxp1 #DNS
>ipfw 700 add allow tcp from any to any 80 via fxp1 #HTTP
>ipfw 650 add allow tcp from any to any 21 via fxp1 #FTP
>ipfw 640 add allow tcp from any to any 22 via fxp1 #SSH
>
>#ISOLA Acessos fxp1 -> rede1
>ipfw 800 add deny all from any to 150.xxx.xxx.1/24 via fxp1
>#FIM
>
>Alguma recomendacao extra, alguma correção???
>
>[]'s
>Cristian
>--
>---------------------------------------
> Cristian Thiago Moecke
> CPD - LMP - UFSC
> moecke em lmp.ufsc.br
>---------------------------------------
>
>
>----
>Para sair da lista envie um e-mail para majordomo em fugspbr.org
>com as palavras "unsubscribe fugspbr" no corpo da mensagem.
----
Para sair da lista envie um e-mail para majordomo em fugspbr.org
com as palavras "unsubscribe fugspbr" no corpo da mensagem.
Mais detalhes sobre a lista de discussão freebsd