[FUG-BR] Source Nat temporário no FreeBSD

Thiago Andrighetti thiagoapadua em yahoo.com.br
Sexta Junho 6 09:03:18 BRT 2014


Rafael, resolveu meu problema  heheheheh. muito obrigado.

Aos demais que me responderam, muito obrigado pelas dicas de firewall, agora é estudar :).

Valeu!

 
-- 
Thiago Andrighetti de Pádua 



Em Quinta-feira, 5 de Junho de 2014 17:02, Rafael Ganascim <rganascim em gmail.com> escreveu:
 

>
>
>Em 05/06/2014 14:44, "Marcelo Gondim" <gondim em bsdinfo.com.br> escreveu:
>>
>> Em 05/06/14 13:46, Thiago Andrighetti escreveu:
>> > Bom, já uqe eu vou ter que rebootar de qq jeito então hehehe, por causa
>> > do kernel que tenho que habilitar o DIVERT, seria melhor então eu
>> > habilitar o PF  ao invés de usar o natd ?
>> >
>> > Só reforçando, que só vou fazer essa regra pra acessar meus radios,
>> > depois não vou usar mais nat nehum nessa maquina.
>> Opa Thiago,
>>
>> Eu uso ipfw + pf sendo que o pf eu uso somente para NAT. Para quem veio
>> de Linux eu acho o NAT do pf mais tranquilo de assimilar.
>> No kernel eu costumo habilitar isso abaixo para ipfw e pf:
>>
>> options         IPFIREWALL
>> options         IPFIREWALL_VERBOSE
>> options         IPFIREWALL_VERBOSE_LIMIT=100
>> options         IPFIREWALL_DEFAULT_TO_ACCEPT
>> options         IPFIREWALL_NAT
>> options         LIBALIAS
>> options         DUMMYNET
>> options         IPDIVERT
>>
>> # Habilitando PF e ALTQ
>> device pf
>> device pflog
>> device pfsync
>> options         ALTQ
>> options         ALTQ_CBQ        # Class Bases Queuing (CBQ)
>> options         ALTQ_RED        # Random Early Detection (RED)
>> options         ALTQ_RIO        # RED In/Out
>> options         ALTQ_HFSC       # Hierarchical Packet Scheduler (HFSC)
>> options         ALTQ_PRIQ       # Priority Queuing (PRIQ)
>> options         ALTQ_NOPCC      # Required for SMP build
>>
>> Abaixo uns exemplos de regras no pf.conf da vida:
>>
>> ext_if = "em0"
>> int_if = "em1"
>> table <masq> persist { 192.168.255.0/24, 10.0.0.0/8, 192.168.173.0/24,
>> 192.168.174.0/24 }
>> set skip on lo0
>> set limit states 40000
>>
>> #### NAT 1:1
>> binat on $ext_if from 192.168.255.2 to any -> 186.xxx.xxx.13
>>
>> #### NAT redirecionamento
>> rdr on $ext_if proto tcp from any to 186.xxx.xxx.14 port 80 ->
>> 192.168.255.1 port 80
>>
>> #### NAT N:1
>> nat on $ext_if from <masq> to any -> 186.xxx.xxx.9
>>
>> Para testar se tem erro nas regras: pfctl -nf pf.conf
>> Para carregar as regras: pfctl -f pf.conf
>> Para mostrar as regras: pfctl -s nat
>>
>> Bem isso é só para ajudar mas o ideal é você estudar o PF mesmo porque
>> tem muito mas muito mais opções.
>> >
>> >
>> > Em 05-06-2014 09:49, jeimerson escreveu:
>> >>      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: http://www.fug.com.br/historico/html/freebsd/
>> Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd
>
>Se for só para acessar os radios, faça um túnel SSH para o BSD e acesse-os.
>
># ssh -L 80:ip-do-radio:80 root em ip-do-bsd
>
>E então no seu browser: http://127.0.0.1/
>
>Abs
>
>-------------------------
>Histórico: http://www.fug.com.br/historico/html/freebsd/
>Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd
>
>


Mais detalhes sobre a lista de discussão freebsd