[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