Neste artigo vou mostrar todos os passos de como criar um servidor firewall e NAT em FreeBSD com opções interessantes como redirecionamentos de portas e/ou IPs.
O objetivo deste artigo é criar um firewall com controle
de banda e redirecionamentos de portas e IPs de uma
interface com IPs válidos para PCs de dentro da rede.
Ele está muito bem comentado e com alguns dados até
desnecessários, mas como ele é voltado para iniciantes,
achei interessante ter vários dados no mesmo lugar, para
que não seja necessário buscar em vários lugares, tornando
um trabalho simples em algo complicado e que em muitas
vezes nos tira do foco do nosso trabalho.
Observação:
As linhas iniciadas por $ indicam um comando (desconsiderar
o $) e as linhas iniciadas por # indicam que é um comentário
e não será executado pelo sistema.
[2] Comentário enviado por leysen em 11/05/2005 - 13:52h
olá Alcir Cardoso,
vi o artigo e fiquei com uma pequena dúvida: tenho que reinstalar todos os serviços novamente, tipo reinstalar servidor de e-mail para poder utilizar o freebsd ? parabéns pelo artigo.
[4] Comentário enviado por cardosoalcir em 11/05/2005 - 20:05h
leysem se vc ja possui um free com estes serviços não eh necessário reinstalar ou reconfigurar os serviços ja existentes... Mas sinceramente acredito que separar as coisas ainda eh a melhor opção..
[7] Comentário enviado por cardosoalcir em 11/05/2005 - 21:12h
erick o linux e o free usam "pacotes" para a rede diferentes...
o linux usa o iptables e o free usa o ipfw ou seja não há como fazer exatamente como aqui demosntrado em linux.
E acho que não eh possivel implementar o ipfw no linux...
[16] Comentário enviado por netunne em 23/12/2006 - 14:22h
Oi Alcir Cardoso, muito interessante seu artigo. Parabéns! Gostaria apenas de adicionar uma dica aos que estejam interessados em tornar-se um provedor de acesso à internet profissional. A distribuição Netunne Provider (www.netunne.com.br) possibilita o controle de banda na layer4 ou layer7, de forma muito fácil. Além de fornecer outras importantes funcionalidades, como múltiplas conexões com à internet, publicação de servidores (NAT) e controle de usuários através de conta mensal ou cartões de minutos.
Essa dica vai ajudar muito a solucionar os problemas dos comentários acima. Obrigado Alcir e qualquer dúvida ou sugestão não hesite em entrar em contato (comercial@console.com.br). Abrs!
[17] Comentário enviado por alex_a_souza em 12/02/2007 - 18:44h
Como eu faço para limitar a velocidade dos downloads feito pelo (emule, kazaa, torrents, etc..) atravez do rc.firewall ou até mesmo pelo rc.local?
Tem como ?
[18] Comentário enviado por cardosoalcir em 12/02/2007 - 21:15h
Alex a restrição do controle de banda como mostrado no artigo ja segura os p2ps, e com ipfw não teria como fazer um controle independente pra isso. Com o PF tem como... mas nunca usei.
[19] Comentário enviado por alex_a_souza em 12/02/2007 - 22:52h
Certo!!!
Eu uso o rc.firewall liberando os clientes em vez de ser pelo rc.local
Como eu faria pra deixar só a porta de navegação aberta e as outras bloqueadas.
[20] Comentário enviado por allstrit em 13/02/2007 - 00:26h
amigo achei mto intersante seu artigo e vou tentar faze-lo mas antecipando gostaria de saber como implementar a autenticação de usuarios por web?.obrigado
[22] Comentário enviado por hyu1621 em 07/04/2009 - 00:27h
Instalei o FreeBSD Release 7.1, tentei configurar efetuando o seu passo a passo, mas estou optendo a seguinte resposta em todas as linhas que acrescentei no aquivo: - SERVER: unknown options "TCP_DROP_SYNFIN" ...
[23] Comentário enviado por cardosoalcir em 07/04/2009 - 12:46h
hyu1621 faltou dizer de qual arquivo vc está falando. Mas pelo que vc diz acho que eh na parte de inserir as entradas no Kernel.
Olha só quando escrevi esse artigo era pra FreeBSD 5 na época, e agora na versão 7 algumas coisas mudaram. A opção TCP_DROP_SYNFIN foi removida no 7, se remover essa linha do kernel a instalação pode continuar.
Não saberia te dizer o que isso pode mudar porque não fui mais a fundo na versão 7 pra saber se há outras coisas nativas ou não que tratam disso.
[26] Comentário enviado por dulio2002 em 05/01/2011 - 18:17h
Oi, estou com problemas quando coloco no rc.conf a seguinte linha: natd_interface="em0", em0 é a minha interface com a internet. O que ocorre é que o FreeBSD para de pingar para qualquer endereço de internet e para qualquer ip. O DNS está configurado certinho. Ps. Muito bom artigo/tutorial.. Abraço a todos.
[27] Comentário enviado por cardosoalcir em 05/01/2011 - 19:41h
Nobre Dulio,
aquele tutorial é velho, feito para a versão 5 do FreeBSD.
Eu sei que muita coisa mudou, e não sei como as coisas
estão hoje, pq só tenho usado o Ubuntu.
Nessa vou ficar te devendo.
Mas acredito que seja problemas com as linhas adicionadas
para compilar o kernel. Várias daquelas linhas hoje estão
depreciadas para a versão atual do kernel.
Ex.: Em minhas regras do ipfw eu tenho uma que libera meu provedor de e-mail e ao invés de utilizar o ip, utilizo o nome tipo:
## Libera EMAIL
/sbin/ipfw add allow tcp from me to smtp.xxx.com.br 110,25,587
/sbin/ipfw add allow tcp from me to pop3.xxx.com.br 110,25,587
/sbin/ipfw add allow tcp from smtp.xxx.com.br 110,25,587 to me
/sbin/ipfw add allow tcp from pop3.xxx.com.br 110,25,587 to me
/sbin/ipfw add allow tcp from ${rede_interna} to smtp.xxx.com.br 110,25,587
/sbin/ipfw add allow tcp from ${rede_interna} to pop3.xxx.com.br 110,25,587
/sbin/ipfw add allow tcp from smtp.xxx.com.br 110,25,587 to ${rede_interna}
/sbin/ipfw add allow tcp from pop3.xxxm.com.br 110,25,587 to ${rede_interna}
Toda vés que preciso iniciar o freebsd tenho que dar os seguintes camandos abaixo para que ele resolva o nome.
/etc/netstart
/etc/ipfw.rules (ipfw.rules é o nome de meu arquivo de regras)
Acho que tem a ver com a ordem em que coloco as linhas de serviço a ser ou não inicializados no rc.conf, mas mesmo colocando o meu igual ao seu exemplo não deu certo.