[FUGSPBR] Re: Redirecionamento

Capriotti capriotti em cee.com
Seg Ago 20 11:23:39 BRT 2001


Vamos lá, Joel:


Primeiro, como disso o Edso, você tem que habilitar ulguns suportes no seu 
kernel. É bem possível que, por ser novato (o que não é nenhum demérito), 
você não tenha tido tempo de se envolver com compilação de kernel.

Compilar um kernel novo faz bem, porque você passa a ter um núcleo do 
sistema mais leve e customizado.

Por exemplo, eu removo as opções de processador 386 e 486, removo a opção 
de processamento numérico por software (floating point), diminuo o número 
de usuários para 10 e incluo as opçãoes para firewall e nat (ipdivert).

Como fazer isso ? Fácil. Primeiro você tem que ter os fontes do kernel 
instalados (chamar o /stand/sysinstall na linha de comando).

Entrar na opção "configure"/distributions/
Dentro dessa opção você vai procurar a "sys" (não lembro direito; estou 
escrevendo de memória). Com certeza na descrição0 está escrito "System 
kernel" ou algo que o valha.

Escolha "OK" para fazer a instalação e espere os arquivos serem instalados.

Saia do /stand/sysinstall

vá para o diretório

/usr/src/sys/i386/conf

Esse é o diretório de arquivos de configuração do Kernel. lá você vai 
encontrar alguns arquivos, e dentre eles doi muito importantes:

GENERIC
e
LINT

O LINT é o arquivo onte estão TODAS as opções disponíveis para o kernel. Dê 
uma estudada nesse arquivo quando tiver um tempo. Vale a pena.

O GENERIC é o arquivo que gerou o kernel que é instalado por default no 
sistema, a partir do CD.

Para você fazer seu próprio kernel, faça o seguinte:

cp /usr/src/sys/i386/conf/GENERIC /usr/src/sys/i386/conf/JOSE

onde JOSE é na verdade o nome que você deu para sua máquina (o meu 
servidor, por exemplo, chama "diana", portanto, o arquivo de configuração 
do kernel também chama DIANA - em letras maiúsculas, sempre).

Esse comando copia o arquivo GENERIC para o JOSE

Edite o arquivo jose com seu editor de texto preferido (sem flame wasr 
aqui, moçada !!!) e faça as seguintes alterações :

Na linha

ident           GENERIC

(seguindo o exemplo) coloque

ident           JOSE

Se você estiver com uma rede pequena (10-20 usuários) não tema em mudar o

maxusers        32

para

maxusers        10

e, o mais importante, adicione as seguintes linhas:

options         IPFIREWALL              #firewall
options         IPFIREWALL_VERBOSE      #print information about
                                         # dropped packets
options         IPFIREWALL_FORWARD      #enable transparent proxy support
options         IPFIREWALL_VERBOSE_LIMIT=100    #limit verbosity
#options         IPFIREWALL_DEFAULT_TO_ACCEPT    #allow everything by default
options         IPV6FIREWALL            #firewall for IPv6
options         IPV6FIREWALL_VERBOSE
options         IPV6FIREWALL_VERBOSE_LIMIT=100
#options         IPV6FIREWALL_DEFAULT_TO_ACCEPT
options         IPDIVERT                #divert sockets
options         IPFILTER                #ipfilter support
options         IPFILTER_LOG            #ipfilter logging

options         DUMMYNET
options         BRIDGE
options         ICMP_BANDLIM

Note que eu não habilitei o uso do IPv6.

E, por via das dúvidas, embora não tenha nada a haver, coloquei a 
possibilidade de fazer a limitação de largura de banda também.

Depois de feitas essas alterações no seu arquivo de configuração, faça:

cd /usr/src/sys/i386/conf

config JOSE

(este comando demora alguns minutos)

cd ../../config/JOSE

make depend
(dependendo da velocidade da sua máquina, este comando pode demorar até 
duas horas - ne meu pentium 120 demora de 40 min a 1 hora)    )

se não der nenhum erro de compilação (que pode ser por causa de algum 
caracter ou parâmetro errado no arquivo de configuração) execute:

make

(mais uns 40 minutos, em máquinas lentas)

depois

make install.

Pronto ! se tudo der certinho na compilação, você tem um kernel novinho em 
folha, preparado para suas necessidades. Daí pra frente é só colocar pra 
funcionar ou o NATd ou o IPnat.

No caso do NAT:

faça um arquivo /etc/natd.conf contento

redirect_port udp 192.168.1.100 31337 20.246.0.252 31337

onde o 200.246.0.252 é o IP externo, público, da sua rede.

E o 192.168.1.100 é o IP da máquina interna que vai lidar com os pacotes 
redirecionados.

Para isso funcionar, o seu /etc/rc.conf tem que conter o seguinte:

firewall_enable="YES"           # Set to YES to enable firewall functionality
firewall_script="/etc/rc.firewall" # Which script to run to set up the firewall
firewall_type="OPEN"            # Firewall type (see /etc/rc.firewall)

!!!!!!!! Atenção !!! Estruture aqui suas regras de firewall ! Esta opção 
ABRE TUDO !!!


firewall_quiet="NO"             # Set to YES to suppress rule display
firewall_flags=""               # Flags passed to ipfw when type is a file
natd_program="/sbin/natd"       # path to natd, if you want a different one.
natd_enable="YES"               # Enable natd (if firewall_enable == YES).

#natd_interface="200.246.0.252" # Public interface or IPaddress to use.
natd_interface="rl0"

Nas linhas acima: OU um OU outro ! Eu prefiro usar o IP.

natd_flags=" -f /etc/natd.conf"  # Additional flags for natd.

Aqui é o pulo do gato: a opção -f faz com que o NAT obedeça o arquivo de 
configuração do arquivo que você criou.

esse arquivo de configuração pode ter várias outras regras. Em alguns 
sites, por exemplo, eu redireciono todo o tráfego da porta 25 tcp para uma 
máquina interna, que fica responsável só por email. No mesmo arquivo de 
NATd eu redireciono todo o tráfego de VPN para outro computador, que cuida 
dessa parte.

É isso aí. Espero que resolva.

Boa sorte.

At 09:21 AM 8/20/01 -0300, you wrote:
>Capriotti,
>
>     Seguinte, to meio cru no free. Vc tem um how-to mais detalhado? Usei a
>dica do Vinicius e já me dei mal no ipnat :) Deu um probleminha no
>/dev/ipnat: open: Device not configured
>
>Grande abraço
>Joel
>
>----
>Para sair da lista envie um e-mail para majordomo em fugspbr.org
>com as palavras "unsubscribe fugspbr" no corpo da mensagem.


----
Para sair da lista envie um e-mail para majordomo em fugspbr.org
com as palavras "unsubscribe fugspbr" no corpo da mensagem.



Mais detalhes sobre a lista de discussão freebsd