[FUG-BR] Source Nat temporário no FreeBSD
jeimerson
jeimerson em bol.com.br
Quinta Junho 5 09:49:48 BRT 2014
21/01/01 18:29 - Como usar o NATD no FreeBSD com o ipfw
Denis S. Silva
# $FreeBSD: 0.2 2000/01/21 01:33:01 dennix Exp $
Como usar o NATD (network address translator) no FreeBSD com o ipfw
Breve introducao;
Recompilando o kernel;
Configuracao:
Servidor;
Estacoes;
Testando;
Breve introducao;
O NAT funciona como um proxy transparente, tambem conhecido como
IP Masquerading ele ira funcionar como um roteador para uma pequena LAN,
oque significa depois de configurar a sua maquina bsd como gateway,
voce pode (apartir de outras maquinas em sua rede) surfar na Internet
utilizando um IP Valido(** ip valido para a internet**)
Em outras palavras faz com que voce possa acessar a InterNet com uma
unica conexao dedicada e varios micros ligados em LAN (rede local),
atraves de uma conexao PROXY*.
Esse "how-to" eh para a seguinte configuracao
O funcionamento do natd eh parecido com o no Wingate(windows),
Ipchains(linux).
O esquema seria algo proximo de:
+------
+ pc1 + ---
+------ |
+ pc2 + ---
+------ | +-----+ ++++++++++++
+ pc3 + --- ++++++++ BSD +++++++ Internet +
+-----+ | +-----+ ++++++++++++
+ pc3 + ---
+-----+ |
+ pc4 + ---
+-----+
rem> Visao geral da configuracao do BSD:
rem> Subistitua o 200.x.x.1/255.255.255.224 pelo seu IP valido e sua
rem> Netmask correspondente
ed0 - 200.x.x.1 / 255.255.255.224
ed1 - 192.168.0.1 / 255.255.255.0
gateway - 200.x.x.2
dns - 200.x.x.3
pcX:
IP 192.168.0.10
Netmask 255.255.255.0
Gateway 192.168.0.1
DNS 200.x.x.3
BSD - A maquina FreeBSD
pcX - Maquina cliente podendo ser Windows, OS/2, BeOS e/ou qquer outro
que suporte TCP/IP
Uma explicacao simples sobre a faixa de IP's disponivel para intranet/rede
local (IANA) de acordo com a RFC1597
No nosso exemplo utilizamos a Classe C (192.168.0.0)
Classe De Rede Netmask Endereco De Rede
A 255.0.0.0 10.0.0.0 - 10.255.255.255
B 255.255.0.0 172.16.0.0 - 172.31.255.255
C 255.255.255.0 192.168.0.0 - 192.168.255.255
Explicacao sobre termos usados no artigo "shell>", "edit>" e "rem>":
shell> sua shell (c shell, bash, korn, ...)
edit> seu editor de textos preferido (ee, vi, pico, ...)
rem> comentarios
Recompilando o kernel
---------------------
rem> Eh necessario recompilar o kernel adicionando as seguintes opcoes:
edit> /usr/src/sys/i386/conf/NATD
#
# NATD -- FreeBSD/i386
# FreeBSD 4.2
#
# $FreeBSD: src/sys/i386/conf/NATD,v 1.0 2000/01/21 13:16:07 dennix Exp $
options INCLUDE_CONFIG_FILE
options IPDIVERT
options IPFIREWALL #firewall
options IPFIREWALL_FORWARD #enable transparent proxy support
options IPFIREWALL_DEFAULT_TO_ACCEPT #allow everything by default
options TCP_DROP_SYNFIN #drop TCP packets with SYN+FIN
options TCP_RESTRICT_RST #restrict emission of TCP RST
#options IPFIREWALL_VERBOSE #print information about
#options IPFIREWALL_VERBOSE_LIMIT=100 #limit verbosity
Configuracao
------------
Configuracao do Servidor:
edit> /etc/rc.conf
natd_enable="YES"
natd_interface="ed0"
natd_flags="-l -f /etc/natd.conf"
gateway_enable="YES"
firewall_enable="YES"
firewall_type="UNKNOW"
firewall_quiet="YES"
network_interfaces="ed0 ed1 lo0"
ifconfig_ed0="inet 200.x.x.1 media netmask 255.255.255.224"
ifconfig_ed1="inet 192.168.0.1 netmask 255.255.255.0"
defaultrouter="200.x.x.2"
hostname="bsdbox"
edit> /etc/natd.conf
# qual a placa de rede que tem conexao com a internet
interface ed0
# para funcionar o ftp/dcc eh necessario as linhas abaixo
dynamic yes
same_ports yes
use_sockets yes
edit> /etc/rc.local
/sbin/ipfw -f flush
/sbin/ipfw add divert natd all from any to any via ed0
/sbin/ipfw add pass all from any to any
rem> depois de fazer todas essas configuracoes no servidor reboote-o
Configuracao das Estacoes clientes:
rem> exemplo de configuracao
rem> IP: 192.168.0.2
rem> Netmask: 255.255.255.0
rem> Gateway: 192.168.0.1
Testando
--------
rem> Para testar tente pingar de uma estacao para fora da rede
rem> pingado de uma maquina windows
C:\WINDOWS\Desktop>ping free.bsd.com.br
Disparando contra free.bsd.com.br [200.243.51.4] com 32 bytes de dados:
Resposta de 200.243.51.4:bytes=32 tempo=83ms Tempo de vida=249
Resposta de 200.243.51.4:bytes=32 tempo=68ms Tempo de vida=249
Resposta de 200.243.51.4:bytes=32 tempo=83ms Tempo de vida=249
Resposta de 200.243.51.4:bytes=32 tempo=68ms Tempo de vida=249
EstatÃsticas do Ping para 200.243.51.4:
Pacotes: Enviados = 4, Recebidos = 4, Perdidos = 0 (0% de perda),
Tempos aproximados de ida e volta em milissegundos:
MÃnimo = 68ms, Máximo = 83ms, Média = 75ms
C:\WINDOWS\Desktop> rem> pingando de uma maquina bsd
pupa# ping free.bsd.com.br
PING free.bsd.com.br (200.243.51.4): 56 data bytes
64 bytes from 200.243.51.4: icmp_seq=0 ttl=249 time=64.093 ms
64 bytes from 200.243.51.4: icmp_seq=1 ttl=249 time=87.913 ms
64 bytes from 200.243.51.4: icmp_seq=2 ttl=249 time=73.586 ms
64 bytes from 200.243.51.4: icmp_seq=3 ttl=249 time=65.479 ms
^C
--- free.bsd.com.br ping statistics ---
4 packets transmitted, 4 packets received, 0% packet loss
round-trip min/avg/max/stddev = 64.093/72.768/87.913/9.466 ms
rem> se a saida for algo assim ta funcionando
---
Paz profunda,
Denis S. Silva
Â
Fonte www.free.bsd.com.br
__________________________________________________________________
De: thiagoapadua em yahoo.com.br
Enviada: Quinta-feira, 5 de Junho de 2014 08:58
Para: freebsd em fug.com.br
Assunto: [FUG-BR] Source Nat temporário no FreeBSD
Só complementando, tenho o IPFW habilitado.
Em 05-06-2014 08:45, Thiago Andrighetti escreveu:
> Olá!
>
> Já adianto que sou novo em FreeBSD, minha experiência vem do Linux
e Mikrotik.
> Coloquei em funcionamento um FreeBSD com Openbgpd para ser meu
roteador de borda, tudo certo e funcionando.
> O que acontece, é que a interface que recebe meu link esta ligada em
um radio, pois o link chega de longe, e esses
> radios foram configurados por outra pessoa, eles só estão com IP,
não tem gateway configurado. Como consequencia
>
> do FreeBsd eu pingo ele, pois tenho um ip na mesma faixa, mas de
outras máquinas que estão antes do FreeBSD não
>
> consigo acessar esses radios.
> No Linux ou Mikrotik eu resolveria fazendo um SNAT de tudo que vai
pro ip do radio mudando a origem do pacote
> para o ip que está na placa do FreeBSD, na verdade era isso que eu
fazia no Mikrotik.
> Mas no FreeBSD fiquei meio perdido ainda nesta parte de NAT, até nem
habilitei nada de natd no rc.conf pois não
> imaginei que iria usar, esqueci desses radios benditos.
>
> Tem alguma regra que eu possa fazer essa mudança de origem de
pacote, pra eu poder acessar esses radios e colocar
> o bendito gateway correto?
>
> Queria ver algo só temporário, pra não ter nat nenhum no router
freebsd.
>
> Desculpem o tamanho da mensagem, e obrigado.
>
>
>
-------------------------
Histórico: [1]http://www.fug.com.br/historico/html/freebsd/
Sair da lista: [2]https://www.fug.com.br/mailman/listinfo/freebsd
References
1. http://www.fug.com.br/historico/html/freebsd/
2. https://www.fug.com.br/mailman/listinfo/freebsd
Mais detalhes sobre a lista de discussão freebsd