Firewall e NAT em FreeBSD com controle de banda e redirecionamento de portas e IPs
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.
No FreeBSD as interfaces de rede são reconhecidas
diferentemente do Linux. No Free elas são identificadas
de acordo com seu chipset e não pelo ethx.
Com um ifconfig você logo reconhecerá as placas de rede
instaladas, deverá ser algo parecido com vr0 ou rl0. No exemplo
irei utilizar duas placas Realtek, rl0 para interface externa e
rl1 para a interna.
Vamos ao arquivo:
#CONFIGURAÇÃO GERAL DO SISTEMA
#ativa o server como gateway
gateway_enable="YES"
#desativa o nível de segurança do kernel (não acho necessário ativar)
kern_securelevel_enable="NO"
#ativa o suporte de pacotes escritos para Linux
#o pacote deve estar instalado anteriormente
linux_enable="YES"
#vou ter que pesquisar
nfs_reserved_port_only="NO"
#desativa o sendmail
sendmail_enable="NONE"
#ativa ssh
sshd_enable="YES"
#CONFIGURAÇÃO DA REDE
#endereço principal da placa de rede externa
ifconfig_rl0="inet 200.200.200.222 netmask 255.255.255.0"
#com o alias é possível colocar mais de um endereço para a mesma placa
#pode ser necessário para o redirecionamento de IPs
ifconfig_rl0_alias0="inet 200.200.200.12 netmask 255.255.255.0"
ifconfig_rl0_alias0="inet 200.200.200.156 netmask 255.255.255.0"
#endereço principal da placa de rede interna
ifconfig_rl1="inet 10.23.0.1 netmask 255.255.0.0"
#gateway para o roteador
defaultrouter="200.248.106.1"
#nome do servidor
hostname="nat.pdh.com.br"
#CONFIGURAÇÃO DO FIREWALL
firewall_enable="YES"
firewall_type="OPEN"
firewall_quiet="YES"
firewall_logging="NO"
#CONFIGURAÇÃO DO SERVIÇO NATD
natd_enable="YES"
natd_flags="-l -u -f /etc/natd.conf"
#a linha abaixo deve especificar a interface externa
natd_interface="rl0"
#1Comentário enviado por cvs em 11/05/2005 - 08:11h
era isso que eu tava procurando... hehehehe
valeuuuuuuu... agora sim, aprendendo essa parte de firewall vou poder migrar alguns servidores da empresa pra freebsd.
#2Comentá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.
leysen
#3Comentário enviado por montaro em 11/05/2005 - 17:02h
em relacao a limitacao de banda no linux... existe outra opcao fora o squid pra se fazer essa limitacao?
#4Comentá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..
#5Comentário enviado por cardosoalcir em 11/05/2005 - 20:10h
montaro em linux tem o iptables, e em iptables eu não manjo muito, mas aqui no vol há vários artigos sobre o iptables, o meu negócio é ipfw :)
#6Comentário enviado por erickdnt em 11/05/2005 - 20:25h
eu tenho o fedora tem como eu jah ir para a parte de conpilaçao do kernel/? ou prexcisa usar "freebsd.?"
#7Comentá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...
#8Comentário enviado por rfranzen em 12/05/2005 - 09:27h
Ae Alcir ! Parabéns
Ficou bala o artigo, tá bem explicado e fez o que prometeu...
Legal mesmo, já foi pros favoritos ! =P
#9Comentário enviado por dfpereira em 16/05/2005 - 10:17h
Primeiramente, parabéns pelo artigo Alcir! Lendo seu artigo me ocorreu uma dúvida: Como o ipfw mascara IP?
#10Comentário enviado por edualfaia em 13/10/2005 - 14:28h
Fala Alcir, gostaria de saber se o arquivo natd.conf é criado automaticamente ou tem que ser no braco.
Valeu
#11Comentário enviado por cardosoalcir em 13/10/2005 - 19:13h
edualfaia, o natd.conf vc cria no braço, na verdade este arquivo eh um padraozinho, mas vc pode seta-lo com outro nome no rc.conf.
Um aBRaço!
#12Comentário enviado por netgate em 31/10/2005 - 19:01h
me diz uma coisa por que vc nao ultiliza o /etc/rc.firewall para colocar as regras do firewall
#13Comentário enviado por joao4linux em 08/03/2006 - 22:29h
Valeu Alcir!
Funcionou de primeira!
Parabéns!
João Almeida
#14Comentário enviado por ccprj em 31/10/2006 - 12:53h
Parabéns,
faz tempo que procurava "esse artigo"... gostei muito!
Abraço
Clebson Rabêlo
#15Comentário enviado por lscorrearj em 09/11/2006 - 15:30h
Boa tarde !
Trabalho com o conectiva 9 e iptables...-> onde eu consigo baixar o free e implementas essas regras..
Desde ja agradeço
#16Comentá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!
#17Comentá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 ?
Seu Artigos esta perfeito.
Parabéns!!!
#18Comentá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.
#19Comentá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.
#20Comentá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
#21Comentário enviado por massucatto em 30/03/2009 - 15:23h
No controle de banda seria necessário ter bastante memória? Preciso controlar banda no meu Data Center e minha rede é toda Gigabit 10/100/1000
Parabéns pelo artigo!!!
#22Comentá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" ...
#23Comentá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.
Boa Sorte!
#24Comentário enviado por removido em 25/02/2010 - 13:57h
legal, mas vc poderia explicar oq seria e para que servia aquelas opções adicionadas no kernel, é melhor ensinar a pescar doq entregar o peixe pronto
bom artigo
#25Comentário enviado por ojferracini em 04/03/2010 - 15:41h
Alcir, boa tarde
Excelente seu artigo
#26Comentá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.
#27Comentá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.
#28Comentário enviado por dulio2002 em 05/01/2011 - 19:45h
Muito obrigado... Mesmo assim está ajudando...
#29Comentário enviado por joao.prevedello em 14/11/2011 - 16:43h
E aiii alcir... quem q te ensinou e te colocou no mundo do FreeBSD? hihihihihi
#30Comentário enviado por jabj em 01/08/2012 - 15:17h
Boa tarde!
Alcir,
Estou com um problema na inicialização do ipfw no boot do freebsd.
O que ocorre é que na inicialização ele não consegue resolver nome.
Nas linhas que são apresentadas em tela no boot aparece:
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.
Por favor, poderia me ajudar?
Desde de já agradeço.
Ass.:
JABJ
#31Comentário enviado por joao.prevedello em 24/05/2018 - 17:13h
To passeando pela internet, pesquisando algumas coisas, e olha só quem encontro.... que legal, abraço tchê
Preferências de cookies
Usamos cookies essenciais para manter o site funcionando. Cookies de estatísticas e anúncios só serão carregados se você permitir.
valeuuuuuuu... agora sim, aprendendo essa parte de firewall vou poder migrar alguns servidores da empresa pra freebsd.