FUG-BR / Grupo Brasileiro de Usuarios de FreeBSD - Resumo do Site
 
06.07  
Inicio arrow Resumo do Site
Principal
Inicio
Noticias
Artigos
Regras da Lista
Assinar a Lista
Histrico da Lista
Forum
Keyserver
PC-BSD: Artigos
PC-BSD: Notcias
Galeria de Imagens
Contador Usurios FUG
FUGs Estaduais
Downloads
Enquetes
FAQ
Resumo do Site
Links
Pesquisar
Contato
Sobre a FUG-BR
RSS / Twitter
-
DOC-BR (FUG BR)
Introduo
Projeto DOC-BR
Handbook
FAQ Oficial
-
+ Noticias
Alertas de Seguranca
Alertas em Ports
BSD em Geral
DaemonNews (Ingles)
MyFreeBSD
Todas Categorias
-
Login
Nome de Usurio

Senha

Lembrar login
Esqueceu sua senha?
Sem conta? Crie uma


Resumo do Site
Controle de Trfego - IPFW2 + Dummynet PDF Imprimir E-mail
Por Guilherme Rosrio   
12/06/2006

Controle de Tráfego

IPFW2 + Dummynet


O Dummynet é uma ferramenta muito flexível para gerenciamento de banda, para impor ou simular algumas condições desejadas no tráfego da rede. Ele funciona interceptando os pacotes e passando-os por um ou mais "pipes" ou "queues", que podem efetuar a limitação de banda, perdas de pacotes, retardos de propagação etc. Os pipes são canais com largura de banda fixa, enquanto as queues representam filas de pacotes, associadas a um peso (weight). As queues compartilham, em proporção ao peso, a largura de banda dos pipes aos quais estão associadas.

Todo o gerenciamento do Dummynet é feito através do IPFW, que deverá estar configurado e funcionando.

options DUMMYNET
options HZ=1000

A segunda opção não é obrigatória, mas na maioria dos casos auxilia no funcionamento do Dummynet. Ela define a granularidade do timer utilizado pelo sistema, que é de 10ms (HZ=100) por padrão. Efeitos do Dummynet como o delay de propagação são aplicados um a cada ponto do timer, então reduzir a granularidade irá possibilitar o tratamento de taxas de tráfego mais altas, e a especificação de delays mais precisos. A opção HZ=1000 irá definir a granularidade para 1ms. Valores menores que 1ms não são recomendados, para maiores informações veja a RFC1323.

Adicionadas as opções, compile e instale o kernel, conforme descrito na seção Recompilação e Instalação do Kernel.

Após isso, basta adicionar as regras desejadas através do IPFW. As opções do IPFW específicas para Dummynet estão descritas abaixo.

Para definir um pipe utiliza-se o seguinte comando / regra:

ipfw pipe número config opções-configuração

Para a definição de uma queue utiliza-se o comando / regra abaixo:

ipfw queue número config opções-configuração

Em ambos os casos o parâmetro número não depende da númeração das demais regras do ipfw. As opções de configuração são as seguintes:


Opções de configuração específicas do pipe:

bw banda
Define a largura de banda do pipe. A banda deve ser especificada em Kbit/s, Mbit/s, KByte/s ou MByte/s.


delay delay
Define o delay de propagação do pipe. O delay deverá ser especificado em milisegundos.


Opções de configuração específicas da queue:

pipe número
Conecta a queue ao pipe especificado. Podem ser conectadas várias queues a um único pipe.

weight peso
Especifica o peso daquela queue. O valor pode variar de 1 a 100.


Principais opções de configuração, comuns ao pipe e à queue:

buckets tamanho-tabela
Especifica o tamanho da tabela usada para guardar as diversas queues. O valor pode variar de 16 a 65536, o padrão é 64.

mask especificação-máscara
Define diferentes fluxos através da aplicação da máscara especificada. Cada fluxo é enviado para uma queue ou pipe separado, criados dinamicamente. Cada pipe dinâmico terá a mesma largura de banda do pipe original, enquanto que cada queue dinâmica irá compartilhar com as demais dinâmicas a largura de banda do pipe ao qual está conectada a original. A especificação de máscara deve ser uma ou mais das seguintes:
dst-ip máscara, src-ip máscara, dst-port máscara, src-port máscara, proto máscara ou all.
O parâmetro all define que todos os bits em todos os campos são significantes.

noerror
Não reporta o erro quando um pacote for perdido, por exemplo em uma simulação de perda de pacotes ou congestionamento.

plr taxa-perda
Define a taxa de perda de pacotes. O valor deverá ser entre 0 e 1, com 0 significando nenhuma perda, e 1 significando 100% de perda.

queue {slots | tamanhoKBytes}
Tamanho da fila, em slots ou KBytes.


Os comandos para manipular as regras de pipes e queues são similares aos das regras comuns do IPFW:

ipfw {pipe | queue} {delete | list | show} número


Exemplos


 

Limitar o tráfego da rede 10.10.0.0/16 para a 192.168.0.0/16 em 300 Kbit/s:

ipfw add 1000 pipe 1 src-ip 10.10.0.0/16 dst-ip 192.168.0.0/16
ipfw pipe 1 config bw 300Kbit/s queue 50KBytes


Simular uma perda de pacotes de entrada de 5%:

ipfw add 1000 pipe 1 in
ipfw pipe 1 config plr 0.05


Limitar o tráfego em 300Kbit/s de entrada em ambas as direções:

ipfw add 1000 pipe 1 in
ipfw add 1100 pipe 2 out
ipfw pipe 1 config bw 300Kbit/s queue 50KBytes
ipfw pipe 2 config bw 300Kbit/s queue 50KBytes


Limitar o tráfego de cada máquina da rede 10.10.0.0/16 em 128Kbit/s nas duas direções:

ipfw add 1000 pipe 1 src-ip 10.10.0.0/16 out
ipfw add 1100 pipe 2 dst-ip 10.10.0.0/16 in
ipfw pipe 1 config mask src-ip 0x000000ff bw 128Kbit/s queue 10KBytes
ipfw pipe 2 config mask dst-ip 0x000000ff bw 128Kbit/s queue 10KBytes


Introduzir um delay no tráfego:

ipfw add 1000 pipe 1 in
ipfw add 1100 pipe 2 out
ipfw pipe 1 config delay 250ms bw 1Mbit/s
ipfw pipe 2 config delay 250ms bw 1Mbit/s



Devemos dar atenção ao tamanho da queue (fila) nos pipes quando fazemos limitação de banda, pois apesar de limitarmos a largura de banda em 50 Kbit/s, por exemplo, o MTU da interface de rede continua o normal, 1500 bytes. Se não for especificado o tamanho da fila, ela será muito grande e irá gerar um delay não desejado no tráfego. O tamanho padrão da fila é 50 slots, que multiplicado pelo MTU de 1500 bytes, dá o valor de 600 Kbits. Essa fila iria levar 12 segundos para ser preenchida por uma banda de 50 Kbit/s, o que é um atraso muito grande na comunicação.

Referencia: http://www2.unijui.tche.br/~heini/freebsd/dummynet.html


Comente! (1 Comentrios)
ltima Atualizao ( 12/06/2006 )
 
Compartilhamento de Arquivos para clientes Unix PDF Imprimir E-mail
Por Guilherme Rosrio   
12/06/2006

Compartilhamento de Arquivos para clientes Unix

NFS (Network File System)


O NFS ou Network File System - sistema de arquivos em rede - permite que clientes acessem arquivos compartilhados em um servidor como se fossem arquivos locais. Com isso, podemos por exemplo guardar arquivos de instalação de programas em um servidor e acessá-los pela rede, facilitando a operação e economizando espaço em disco nos clientes. Outra aplicação prática é guardar os diretórios home dos usuários em um único servidor, e em qualquer máquina que o usuário logar-se terá os mesmos arquivos. Também pode-se compartilhar drives de CDROM ou qualquer outro dispositivo de armazenamento. O NFS foi originalmente criado pela Sun Microsystems nos anos 80, e é definido pela RFC1094.

Daemons usados pelo NFS:

nfsd - Processa os pedidos dos clientes NFS.
mountd - Faz a entrega dos pedidos que o nfsd passa a ele.
portmap - É o daemon portmapper, que permite que os clientes descubram que porta o servidor NFS está usando.

Para que tais daemons sejam inicializados no servidor, é necessário inserir as seguintes linhas ao arquivo /etc/rc.conf:

portmap_enable="YES"
nfs_server_enable="YES"
mountd_flags="-r"

No cliente, deve ser adicionada a seguinte linha ao /etc/rc.conf:

nfs_client_enable="YES"

O arquivo /etc/exports, no servidor, especifica que arquivos devem ser compartilhados com os clientes. Cada linha especifica um diretório, quem pode acessá-lo e também pode ser especificado o tipo de acesso desejado.


Por exemplo, para compartilhar o drive de CDROM com todas as máquinas da rede 192.168.0.0/16, a seguinte linha deve ser inserida:

/cdrom -ro -network 192.168 -mask 255.255.0.0

O parâmetro -ro especifica a permissão read-only, ou somente leitura.

 

Para compartilhar o /home para as máquinas 192.168.0.2, 192.168.0.3 e 192.168.0.4, insira a seguinte linha:

/home 192.168.0.2 192.168.0.3 192.168.0.4

 

Para compartilhar o diretório /teste para a máquina 192.168.0.5 e deixar ela acessar esse diretório como root (se o root na máquina cliente montar o /teste do servidor poderá acessá-lo com todos os poderes de root), basta inserir a seguinte linha:

/teste -maproot=root 192.168.0.5

 

Para compartilhar os diretórios /usr/src e /usr/ports com a máquina teste.exemplo.org, insira a seguinte linha:

/usr/src /usr/ports teste.exemplo.org

 

Para compartilhar o diretório /teste2 com todo mundo e dar permissão de somente leitura, adicione a seguinte linha:

/teste2 -ro

 

Com esses exemplos, pode-se ter uma boa idéia de qual é o formato do arquivo /etc/exports. Para maiores detalhes, veja o manual com o comando "man exports".

Depois de configurar o NFS, é necessário reiniciar a máquina. Se apenas foi modificado o arquivo /etc/exports, basta reiniciar o mountd para que as alterações entrem em vigor:

# kill -HUP `cat /var/run/mountd.pid`

ou simplesmente

# killall -HUP mountd

 

Para montar um diretório compartilhado, utiliza-se no cliente o comando mount, no seguinte formato:

# mount servidor:/compartilhamento /mountpoint

 

Por exemplo, para montar o /home do servidor 192.168.0.1 no diretório /mnt local, basta digitar:

# mount 192.168.0.1:/home /mnt

 

Se for necessário que algum compartilhamento seja montado automaticamente no cliente, no momento da inicialização, basta adicioná-lo ao arquivo /etc/fstab. Seguindo o mesmo exemplo acima, deveríamos adicionar a seguinte linha ao /etc/fstab:

192.168.0.1:/home /mnt nfs rw 0 0

Para maiores detalhes do formato do arquivo, man fstab.

 

Há um utilitário para visualizar estatísticas sobre as atividades do servidor NFS, fica em /usr/bin/nfsstat. Ele mostra um relatório bem detalhado se invocado sem parâmetros. Se for utilizado o comando "nfsstat -w 2" teremos um relatório resumido, e será atualizado a cada 2 segundos, constatemente (obviamente o valor pode ser alterado).

Referencia: http://www2.unijui.tche.br/~heini/freebsd/nfs.html


Comente! (2 Comentrios)
ltima Atualizao ( 12/06/2006 )
 
Tutorial para Instalao e configurao do ProFTPD PDF Imprimir E-mail
Por Guilherme Rosrio   
12/06/2006

FTP (File Transfer Protocol)

ProFTPD

 

O ProFTP nasceu do desejo de seus criadores de um servidor FTP seguro e altamente configurável. Possui um bom desempenho e é utilizado em sites de grande tráfego, como ftp.kernel.org, ftp.samba.org e SourceForge. Sua página é www.proftpd.org.

Efetue o download do source da última versão do ProFTPD. Atualmente, é a 1.2.9, faremos o download do arquivo ftp://ftp.proftpd.org/distrib/source/proftpd-1.3.0.tar.gz. Descompacte e extraia no diretório /tmp, será criado o diretório /tmp/proftpd-1.2.9 com os arquivos extraídos.

Crie um grupo chamado ftp com gid 120, e um usuário ftp com uid e gid 120:

# pw group add ftp -g 120
# pw user add ftp -c "ProFTPD" -d "/nonexistent" -s "/sbin/nologin" -u 120 -g 120

Deverá ser definido e criado o diretório que irá abrigar os arquivos e diretórios do nosso FTP anônimo, no nosso caso criamos o diretório /usr/ftp. Deve-se atribuir o dono ftp e grupo ftp a este diretório, assim como a todos os arquivos que forem publicados abaixo dele posteriormente:

# mkdir /usr/ftp
# chown ftp:ftp /usr/ftp

Vá até o diretório /tmp/proftpd-1.2.9. Leia os arquivos README e INSTALL. Execute a seguinte seqüência de comandos:

# ./configure
# make
# make install

Isto irá configurar os fontes para a compilação de acordo com o ambiente, compilar e então instalar.

O ProFTPD possui apenas um arquivo de configuração, que fica em /usr/local/etc/proftpd.conf. No momento da instalação, é instalada neste local uma cópia do basic.conf, que é um dos exemplos de configurações. Mesmo para um funcionamento básico, temos que fazer algumas modificações.

Altere os parâmetros

<Anonymous ~ftp>
User nobody
Group nogroup

para

<Anonymous /usr/ftp>
User ftp
Group ftp

Além disso, logo abaixo, insira a seguinte linha:

RequireValidShell off

Feitas essas alterações, o servidor FTP já pode ser inicializado e testado. Inicie-o digitando /usr/local/sbin/proftpd, e verifique se está rodando através do comando

# ps aux | grep proftpd

Teste o serviço, logando tanto com um usuário e senha comuns quanto anonimamente, através do login ftp ou anonymous. Deverá estar funcionando normalmente, mas ainda temos algumas configurações a fazer.

Uma boa documentação acerca da configuração do ProFTPD pode ser encontrada no seu site. Uma página muito útil é a descrição de todas as diretivas possíveis no arquivo proftpd.conf, e pode ser encontrada em http://www.proftpd.org/docs/directives/linked/by-name.html.

Para que o ProFTPD leia novamente seu arquivo de configuração, caso este seja modificado, é necessário enviar o sinal HUP, com o comando

# killall -HUP proftpd

Segue abaixo um arquivo de configuração comentado que pode ser utilizado como base para a sua configuração.

------------------- Arquivo proftpd.conf --------------------
# proftpd.conf

# Arquivo exibido no momento da conexao
DisplayConnect /usr/local/etc/proftpd.banner

# Nao exibe informacoes sobre que tipo de servidor esta rodando
ServerIdent off

# Modo no qual o servidor ira rodar (standalone ou inetd)
ServerType standalone

# Como nao temos VirtualHosts, este servidor (principal) sera o padrao
DefaultServer on

# Porta para o socket de controle
Port 21

# Umask padrao para arquivos uploaded
Umask 022

# Maximo de processos filho (cada conexao utiliza um processo)
MaxInstances 30

# Maximo de usuarios autenticados (incluindo anonimos) e mensagem
MaxClients 20 "Desculpe, o numero maximo de clientes foi atingido"

# Maximo de usuarios autenticados (incluindo anonimos) por IP
MaxClientsPerHost 4 "Desculpe, maximo de 4 conexoes por cliente"

# Usuario sob o qual o servidor ira rodar
User ftp

# Grupo sob o qual o servidor ira rodar
Group ftp

# Os usuarios nao poderao sair de seu diretorio home (chrooted)
DefaultRoot ~

# Nao permite o login do usuario root
RootLogin off

# Nao requer que os usuarios tenham um shell valido (definido
# em /etc/shells)
RequireValidShell off

# Nao bloqueia usuarios baseando-se no arquivo /etc/ftpusers
UseFtpUsers off

# Tempo maximo em segundos para login
TimeoutLogin 120

# Tempo maximo em segundos conectado mas sem qualquer comando ou
# troca de dados
TimeoutIdle 600

# Tempo maximo em segundos sem transferencia de dados (arquivos,
# listagens de diretorios)
TimeoutNoTransfer 900

# Tempo maximo em segundos com uma transferencia parada, travada
TimeoutStalled 900

# Numero maximo de tentativas de login
MaxLoginAttempts 3

# Nao tenta descobrir o hostname do cliente
UseReverseDNS off

# Nao tenta efetuar consulta do username remoto (ident - RFC1413)
IdentLookups off

# Arquivo de log geral
SystemLog /var/log/proftpd/system.log

# Arquivo de log das transferencias
TransferLog /var/log/proftpd/transfer.log

# Especifica o modo de transferencia padrao (ascii ou binary)
DefaultTransferMode binary

# Permite que arquivos sejam sobrescritos (caso seja feito upload
# de um arquivo ja existente)
AllowOverwrite on

# Abre o contexto de usuarios anonimos, especificando a raiz do
# FTP anonimo
<Anonymous /usr/ftp>

   # Usuario sob o qual cada instancia de FTP anonimo deve rodar
   User ftp

   # Grupo sob o qual cada instancia de FTP anonimo deve rodar
   Group ftp

   # Define o login anonymous como sinonimo (alias) do login ftp
   UserAlias anonymous ftp

   # Numero maximo de usuarios anonimos
   MaxClients 10

   # Limita qualquer gravacao neste contexto (por exemplo upload
   # de arquivo)
   <Limit WRITE>
   DenyAll
   </Limit>

# Fecha o contexto de usuarios anonimos
</Anonymous>

------------------- Fim do arquivo proftpd.conf --------------------

O conteúdo do arquivo proftpd.banner fica a seu critério, pode ser utilizada uma simples identificação como "Servidor FTP Exemplo". Crie o diretório /var/log/proftpd, para que sejam armazenados aí os arquivos de log.

Teste essa nova configuração, deverá funcionar normalmente. Verifique também regularmente os arquivos de log do ProFTPD, principalmente em caso de qualquer problema.

Temos ainda alguns utilitários que permitem verificar o que anda acontecendo com o servidor FTP, em tempo real. São eles:

ftpcount -> mostra o número atual de conexões ao servidor FTP
ftpwho -> mostra quais usuários estão conectados atualmente
ftptop -> mostra informações sobre as conexões num estilo parecido ao do comando top
ftpshut -> tira o servidor FTP do ar, sem encerrar seu processo. Para retornar, deve-se executar "ftpshut -R"

Os comandos ftpcount, ftpwho e ftptop utilizam um arquivo chamado Scoreboard, que registra informações sobre as sessões atuais de FTP. Este arquivo fica por padrão em /usr/local/var/proftpd/proftpd.scoreboard. Caso este arquivo seja mudado de lugar (via proftpd.conf) deverá ser especificado na linha de comando dos utilitários qual o caminho do arquivo Scoreboard. Há ainda um arquivo que guarda o PID do processo principal, e fica por padrão em /usr/local/var/proftpd.pid.

Para que o ProFTPD seja inicializado no boot e terminado no shutdown corretamente, crie um script de inicialização e shutdown em /usr/local/etc/rc.d/proftpd.sh, conforme explicado anteriormente.

O comando para inicializar deverá ser:

/usr/local/sbin/proftpd

O comando para finalizar deverá ser:

kill `cat /usr/local/var/proftpd.pid`

 

Referencia: http://www2.unijui.tche.br/~heini/freebsd/proftpd.html


Comente! (3 Comentrios)
ltima Atualizao ( 12/06/2006 )
 
Recompilao e Instalao do Kernel PDF Imprimir E-mail
Por Guilherme Rosrio   
12/06/2006

Recompilação e Instalação do Kernel


Existem determinadas tarefas que exigem que o kernel seja configurado com opções diferentes do padrão (GENERIC), para então ser recompilado e instalado no lugar do kernel antigo. Siga as etapas abaixo.

Verifique se existe o diretório /usr/src/sys. Caso não exista, então você não instalou os fontes do kernel, e precisará fazer isso. Basta executar /stand/sysinstall, escolher Configure, Distributions, src e então sys. Isso irá instalar os fontes.

Agora, vá para o diretório /usr/src/sys/i386/conf. É aí que fica o arquivo de configuração do kernel. Copie o GENERIC para o nome de sua preferência (geralmente o hostname da máquina).

Edite o arquivo de configuração que você acabou de copiar (não o GENERIC) e insira ou altere as opções que desejar. Podem ser removidas as referências a dispositivos de hardware que você não possui, e também interfaces ou opções que você não irá utilizar. Isto irá inclusive melhorar a performance do sistema, já que irá trabalhar com um kernel mais "leve" e sem drivers desnecessários. Para maiores informações consulte o arquivo LINT, no diretório /usr/src/sys/i386/conf.

Após isso, altere a configuração do Securelevel para -1, reinicie a máquina e então execute:

# cd /usr/src
# make buildkernel KERNCONF=SEUKERNEL
# make installkernel KERNCONF=SEUKERNEL

Com isso, o novo kernel será criado e copiado ao diretório raiz como /kernel, e o kernel antigo será movido para /kernel.old. Para terminar, reinicie a máquina para carregar seu novo kernel.

Caso a sua máquina não bootar com o novo kernel, não se preocupe. Basta pressionar qualquer tecla (exceto enter) durante a contagem regressiva, na inicialização. Então digite os seguintes comandos:

unload
boot kernel.old

Isso fará com que seja inicializado o seu kernel antigo. Pode também ser entrado o comando "boot kernel.GENERIC", para incializar o kernel "padrão de fábrica".

Após tudo estar funcionando, deverá ser alterado o Securelevel para o nível desejado (caso seja utilizado) e reiniciar novamente.

 

Referencia: http://www2.unijui.tche.br/~heini/freebsd/kernel.html


Comente!
ltima Atualizao ( 12/06/2006 )
 
<< Incio < Anterior 71 72 73 74 Prximo > Fim >>

Resultados 577 - 584 de 590
FUG-BR - Espalhando BSD
Dicas Rpidas:
 






Wallpapers
Online:
Ns temos 22 visitantes online


Devil Store - Sua loja BSD
FreeBSD Brasil LTDA

FUG-BR: Desde 1999, espalhando BSD pelo Brasil.