[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