30
Jul
09

Configurando corretamente o driver INTEL, em seu xorg.conf

Bom dia, depois de algum tempo off, volto com uma documentação com aquela tradução meia boca pra galera…
Então… isto aqui serve apenas para voce ter um melhor proveito de sua placa de video intel, e conseguir rodar aplicações que exigem um pouco mais dela.

Hardware Suportado

Os drivers da Intel para Linux, suportam os seguintes chipsets:

Abreviação Nome Completo
G45 Intel® G45 Express Chipset
Q45 Intel® Q45 Express Chipset
G43 Intel® G43 Express Chipset
Q43 Intel® Q43 Express Chipset
GM45 Mobile Intel® GM45/GS45/GL40 Express Chipset
G35 Intel® G35 Express Chipset
Q35 Intel® Q35 Express Chipset
Q33 Intel® Q33 Express Chipset
G33 Intel® G33/G31 Express Chipset
965GM Mobile Intel® GM965 Express Chipset
965G G965 Integrated Graphics Controller
965Q Q963/Q965 Integrated Graphics Controller
946GZ 946GZ/GL Integrated Graphics Controller
945G 945G Integrated Graphics Controller
945GM Mobile 945GM/GMS/940GML Express Integrated Graphics Controller
915G 82915G/GV/910GL Express Chipset Family Graphics Controller
915GM Mobile 915GM/GMS/910GML Express Graphics Controller
865G 82865G Integrated Graphics Controller
855GM 82852/855GM Integrated Graphics Device
845G 82845G/GL[Brookdale-G]/GE Chipset Integrated Graphics Device
i830M 82830 Chipset Graphics Controller
815 82815 Chipset Graphics Controller
810 82810 Chipset Graphics Controller
810-DC100 82810-M DC-100 System and Graphics Controller

Nome

intel – Intel integrated graphics chipsets

Sinopse

Section “Device”
Identifier “devname”
Driver “intel”

EndSection

Descrição

intel é um driver do xorg para chipsets de graficos integrados. O drive suporta intensidade de cores de 8, 15, 16 e 24. Todos os modos visuais são suportados em 8. Para o i810/i815 outras profundidades de cores suportam os visuais de TrueColor e DirectColor. Para o i830M e posterior, apenas o TrueColor é suportado para profundidade de cores maiores que 8. O drive suporta aceleração 3D via o Direct Rendering Infrastructure (DRI), mas apenas em profundidade de cores 16 para o i810/i815 e profundidade de cores 16 e 24 para o 830M e posterior.

Hardware Suportado

intel suporta o i810, i810-DC100, i810e, i815, i830M, 845G, 852GM, 855GM, 865G, 915G, 915GM, 945G, 945GM, 965G, 965Q, 946GZ, 965GM, 945GME, G33, Q33, e Q35 chipsets.

Detalhes de Configaração

Por favor veja a documentação do xorg.conf(5) para detalhes de configurações gerais. Esta seção apenas irá informar configurações referentes ao drive da intel.

Os chipsets de familia 8xx e 9xx tem uma arquitetura de memoria unificada e usa a memoria do sistema para a memoria de video. Para a familia dos i810 e i815. Isso geralmente é definido pelo “agpgart” ou “agp” kernel driver. Linux, FreeBSD, OpenBSD, NetBSD, e Solaris tem esses drivers do kernel disponiveis.

Por padrao, o i810 usará 8 megabytes da memoria do sistema para graficos. Para o 830M e posterior, o driver ira alocar a memoria automaticamente. A opção VideoRam, que era utilizada para definir um tamanho maior de memoria para video, agora é ignorada.

As seguintes Options de drivers sao suportadas

Option “NoAccel” “boolean”
Desabilita ou Habilita a aceleração. Padrão: aceleração é habilitada.

Option “SWCursor” “boolean”
Desabilita ou Habilita o cursor de software. Padrão: cursor de software é desabilitado e um cursor de hardware é utilizado para configurações onde o cursor de hardware esta disponivel.

Option “ColorKey” “integer”
Define o valor padrão de pixel para a chave de YUV video overlay. Padrão: não definido.

Option “CacheLines” “integer”
Este permite o usuario mudar a quantidade de memoria grafica utilizada em aceleração 2D e video quando a aceleração XAA esta habilitada. Diminuindo a quantidade garante mais para texturas 3D. Aumentando isto, pode melhorar a performance 2D pelo preço de sua performance 3D. Padrão: depende da resolução, intensidade de cor, e memoria de video disponivel. O driver aloca espaço para 3 ecrãs de pixmaps mais um HD-sized XV video. O padrao utilizado para uma configuração especifica  pode ser encontrado examinando o log do arquivo Xorg.

Option “DRI” “boolean”
Disabilita ou Habilita o suporte a DRI. Padrao: DRI é habilitado para configurações que ele é suportado.

Option “DDC” “boolean”

Desabilita ou Habilita o suporte a DDC. Padrão: habilitado. (é suportado apenas para os chipsets i810 e i815)

Option “Dac6Bit” “boolean”
Habilita ou Desabilita 6-bits por RGB para modo 8-bit. Padrao: 8-bits por RGB para modo 8-bit.

Option “XvMCSurfaces” “integer”
Esta opção habilita o XvMC. O parametro inteiro define o numero de superficies para usar. Valores validos sao 6 e 7. Padrão: XvMC é desabilitado.

Option “VideoKey” “integer”

Este é o mesmo que “ColorKey”. É utilizado para a compatibilidade de outros drivers.(é suportado para os chipsets 830M e posterior)

Option “XVideo” “boolean”
Disabilita ou habilida o suporte ao XVideo. Padrão: XVideo é habilitado para configurações que é suportado.

Option “Legacy3D” “boolean”
Hablita o suporte ao driver 3D i915_dri.so. Irá, entre outras coisas, fazer o driver 2D chamar o libGL para carregar o driver 3D i915_dri.so ao invés do novo i915tex_dri.so. Esta opção é apenas utilizada para chipsets entre i830-i945. Padrão para as series de chipsets i830-i945: Habilitado para as versões de drm do i915  < 1.7.0. Caso contrario desabilitado. Padrão para o i810: A opção não é utilizada. Padrão para o i965: A opção é sempre true.

Option “AperTexSize” “integer”
Define o tamanho em kiB da area de abertura AGP que é reservada para o gerenciamento de memoria DRM presente na drm i915 desde a versao 1.7.0 e posterior, e isto é usado no driver 3D no Mesa desde a versao 6.5.2 e posterior. Se o valor é muito grande para fazer a alocação da VideoRam, o driver tentará reduzir isto automaticamente. Se você utiliza apena o Mesa ou DRM antigos, você definirá este valor para zero, e ativa o pool de textura de legado (veja Option “Legacy3D” ). Se você roda programas 3D com um requerimento de memoria alto, Você ganhará alguma performance aumentando este valor. Padrão: 32768.

Option “PageFlip” “boolean”
Habilita o suporte para lançamento de pagina. Este talvez aumente a performance 3D ao custo de uma perda de performance com 2D e 3D juntos. Entretanto note que isto nao beneficiará sem corresponder o suporte ao Mesa 3D driver e talvez nao dará beneficios totais sem o triple buffering (veja Option “TripleBuffer” ). Padrão para i810: A opção não é utilizada. Padrao para i830 e posterior: Disabilitada (Esta opção atualmente é instavel).

Option “TripleBuffer” “boolean”
Habilita o suporte para triple buffering. Este aumentará a performance 3D ao custo de uma perda de performance em 2D e 3D juntos. Entretanto note que isto nao beneficiará sem corresponder o suporte ao Mesa 3D driver e talvez nao dara nenhum beneficio sem o lançamento de paginas  (veja Option “PageFlip” ). Padrão para i810: A opção não é utilizada. Padrao para i830 e posterior: Disabilitada.

Option “AccelMethod” “string”
Escolhe a arquitetura do modo de aceleração, entre “XAA” ou “EXA”. XAA é o antigo (mas estavel) baseado na arquitetura de aceleração do XFree86. EXA é uma nova e simples arquitetura de aceleração designado para uma melhor aceleração da extensão X Render. Padrão: “XAA”.

Option “ModeDebug” “boolean”
Habilita informações detalhadas sobre debuggin no log do servidor.

O 830M e posterior suportam as seguintes saidas no RandR 1.2:

VGA
Saida VGA analogica
LVDS
Painel do laptop
TV
Saida de TV integrada

TMDS-1 Primeira saida DVI SDVO

TMDS-2 Segunda saida DVI SDVO

saidas SDVO e DVO TV não sao suportadas pelo driver desta vez.

referencia: http://alcor.concordia.ca/manpages/sys4/intel.4.html


07
Jul
09

SQL Injection, como prevenir falhas de segurança em PHP / MySQL

O QUE É SQL INJECTION ?

A técnica de injetar um codigo malicioso em um trecho de codigo de tratamento SQL.
A maioria das tentativas de SQL Injection irão ser realizadas em um input form, de seu codigo html, mas também podem ser manipuladas atraves das urls de seu site.

O comando mais basico de SQL Injection é parecido com este:

	Variavel' or 1=1--

Vamos supor agora que temos um form de login, e que ele ira receber esta variavel na forma em que foi escrita, sem nenhum tratamento.

Portanto, o codigo SQL que seria executado ficaria assim:

SELECT * FROM users WHERE username = 'Variavel' or 1=1--'

Viu como o código serve como uma luva no nosso SQL Injection :D ? O resultado ira nos dar acesso a um usuario, levando em conta que retornara verdadeiro, porque ? porque 1=1.

E o ‘–’ ? Isto serve para dizer ao SQL que ele irá ignorar qualquer outro comando SQL que foi colocado no final, portanto isso ira garantir que nenhum outro codigo SQL feito na programação interfira em nosso SQL Injection.

Algumas outras sintaxes comuns de SQL Injection são:

    ') or ('1'='1
    "or "1"="1
    ' or '1'='1
    Or 1=1--
    " or 1=1--
    ' or 1=1--

SQL INJECTION, ATACANDO ATRAVEZ DE URLS:

Você sabia que é possivel fazer um ataque de SQL Injection atravez de URLs ? E isso com certeza é mais perigoso. Geralmente quando utilizamos PHP + SQL, nossas urls ficam no formato:

http://YourWebsite.com/login.php?id=2

e adicionando o codigo sql ao final da url poderia ficar assim:

http://YourWebsite.com/login.php?id=2‘; DROP TABLE login; #

o carinha # é que nem o — que utilizamos anteriormente…

TÉCNICAS DE PREVENÇÃO DE SQL INJECTION

Editando o tamanho das nossas forms:
Isto apenas irá dar um trabalho a mais ao atacante, neste caso ele teria que refazer os formularios, removendo o tamanho, levando em consideração que os forms sao feitos em html puro, portanto qualquer um pode ver seu codigo…

Validação do tipo de dado:
Uma outra boa idéia é fazer a verificação de dados, quando sao digitados na form, portanto, se houver caracteres estranhos, como ‘, ; ou até mesmo um #, ja pode acusar erro e nao executar o codigo SQL :D

Privilegios de usuarios:
Uma tecnica que deve ser praticada também é de nunca acessar o banco de dados como root, e sim como um usuario que tenha certos privilegios, por exemplo, para pesquisas podemos fazer um usuario que seja apenas leitura, assim quando entramos com dados na form, mesmo que seja executado um comando sql malicioso, o usuario ira apenas poder ler dados, impedindo-o de inserir ou deletar registros.

A Verdadeira solução:
Utiliza-se a função ‘mysql_real_scape_string();’, veja como ele funciona:

 $name = "John";
    $name = mysql_real_escape_string($name);
    $SQL = "SELECT * FROM users WHERE username = '$name'";

portanto, quando um alguem mal intencionato tenta executar o SQL Injection, com esta função ele ficaria da seguinte forma:

    $malcious_input = "' OR 1'";
    // The Above Is The Malicious Input. Don't Be Scared!
    // With The mysql_real_escape_string() usage, the following is obtained:

	\' OR 1\'
    // Notice how the slashes escape the quotes! Now users can't enter malicious data

CONCLUSAO:
a função mysql_real_escape_string() – nao tem um nome tao incrivelmente magico, mas estes 24 caracteres sao a bondade do SQL Injection, o que salva os programadores descuidados… agora, é só aplicar a teoria em seus projetos ;D

23
Jun
09

XDMCP

X Display Manager

O que é o X ?
É um software de sistema ou de rede, que oferece ao usuario uma interface grafica. Portanto ele oferece os recursos basicos de uma interface grafica, tais como, arrastar janela, fazer imagens de bitmap e outras funçoes basicas de GUI.
No Linux, as principais interfaces graficas rodam em cima do X, tais como: KDE, Gnome e XFCE.

X Display Manager Control Protocol

Eu sempre busco a melhor maneira de utilizar o Linux, tanto no trabalho como em casa. E uma das grandes vantagens disso tudo, é que eu posso estar reutilizando desktops antigos, como Pentium II, Pentium e até mesmo um 486 como um terminal de X. Utilizando o X e o XDMCP, podemos intão montar uma solução de baixo custo para nossa casa ou trabalho. E o melhor de tudo, isto é GRATUITO, e como sigo minha filosofia Free Software de ser, estou aqui dividindo este conhecimento com vocês, sem falar que você estará deste jeito, ajudando o meio ambiente :D .

Recentemente, algumas distribuições, como o Ubuntu, dão a opção de fazer esta configuração por interface grafica, mas eu, como um bom Slacker, irei fazer uma configuração a moda antiga, para fins didaticos. E outra em interface gráfica, para nao ter misterios.

Funcionamento do XDMCP:

O servidor X (interface grafica) é geralmente iniciado com um gerenciador de usuarios e interfaces graficas (aka Display Manager), no qual iremos digitar o usuario que queremos entrar e escolher o gerenciador de janelas de nossa preferencia.

Quase todas as distribuições Linux, ja incluem em seu sistema um Display Manager, como o XDM, KDM e GDM. Irei utilizar para explicar os exemplos o KDM e GDM. Portanto, quando o Display Manager é iniciado, ele pode operar de duas formas:
- Ele pode gerenciar o X server rodando na maquina local, que no caso iria ser especificado em “Xservers”.
- Pode gerenciar Xservers remotos (tipicamente Xterminals) utilizando o XDMCP como especificado no arquivo “Xaccess”.

Vantagens do X:

1- É possível abrir vários servidores X e rodar não apenas aplicativos, mas também gerenciadores de janelas diferentes em cada um. Sim, você pode rodar o KDE e o Gnome, junto com o XFCE e o Blackbox, todos ao mesmo tempo. :)

2- Os servidores X não estão limitados a rodar aplicativos locais, eles podem rodar aplicativos a partir de qualquer micro da rede, ou mesmo de outros hosts da Internet. Este sistema de compartilhamento do X é chamado de XDMCP.

3- Ao rodar aplicativos remotamente a carga fica toda com o servidor. O cliente utiliza um mínimo de processamento, já que basicamente se limita a enviar os dados recebidos via rede para a tela. Usando um 486 com 8 MB de RAM já é possível ter um terminal X funcional.

4- Ao contrário do VNC, o X consegue uma velocidade de atualização de tela muito boa, mesmo em uma rede de 10 megabits. A principal diferença é que enquanto o VNC transmite a tela na forma de uma imagem, o X transmite apenas texto, com as instruções necessárias para o cliente montar as janelas. Apenas figuras e ícones são transmitidos na forma de imagem.

Configurando o servidor:

Nas distribuições que utilizam o KDM (como o Kubuntu e o Mandriva), procure pelos arquivos kdmrc e Xaccess (que sempre ficam na mesma pasta). Em algumas distribuições (como no Mandriva) eles ficam na pasta “/usr/share/config/kdm/” e, em outras (como no Kurumin e outras distribuições derivadas do Debian), ficam na pasta “/etc/kde3/kdm/“. Você pode usar o comando “locate” para encontrá-los.

Dentro do arquivo “Xaccess“, descomente a linha:

# * #any host can get a login window

Basta retirar a tralha (#), fazendo com que o asterisco seja o primeiro caractere. Esta linha faz com que o servidor passe a aceitar conexões de todos os hosts da rede. Caso você prefira limitar o acesso a apenas alguns endereços (mais seguro), basta substituir o asterisco pelos endereços desejados.

Um pouco mais abaixo, no mesmo arquivo, descomente também a linha abaixo, novamente retirando a tralha:

# * CHOOSER BROADCAST #any indirect host can get a chooser
Xaccess
Xaccess

Esta linha é opcional. O Chooser Broadcast permite que os clientes contatem o servidor para obter uma lista de todos os servidores XDM disponíveis na rede (você pode ter mais de um, como veremos a seguir). Isso é feito usando o comando “X -indirect“.

Em seguida, edite também o arquivo kdmrc. Quase no final do arquivo você encontrará a linha:

[Xdmcp]
Enable=false

Basta alterá-la para:

[Xdmcp]
Enable=true

======================================================

Nas distribuições que utilizam o GDM (o gerenciador de login do Gnome), como o Ubuntu, Fedora, CentOS e diversas outras, a configuração é mais simples, pois o XDMCP pode ser ativado através do configurador da tela de login, o gdmsetup.

Acesse-o executando o comando como root, ou através do “Sistema > Adminstração > Tela de Login” (Sistema > Administração > Janela de início de sessão” no Ubuntu). Acesse a aba “Remoto” e, dentro da opção “Estilo” mude a opção de “Início de sessão remota desabilitada” para “Simples com o navegador de faces”. Esta simples alteração faz com que o XDMCP seja ativado, com o uso da tela de login simplificada, que pode ser configurada a seu gosto:

gdmsetup

gdmsetup

conexao

conexao

Acessando a opção “Configurar XDMCP” você tem acesso a um segundo menu de configuração, que permite definir o número máximo de clientes simultâneos (opção “Máximo de sessões remotas”), que pode ser ajustado de acordo com o número de clientes na rede, ou de acordo com os recursos de hardware do servidor.

Para que as alterações entrem em vigor (tanto no KDM quanto no GDM), é necessário reiniciar o gerenciador de login. Para isso, mude para um terminal de texto (Ctrl+Alt+F2) e reinicie o serviço responsável pelo gerenciador de login, como em:

# /etc/init.d/kdm restart

(ao usar o KDM)

# /etc/init.d/gdm restart


ou

# service dm restart

(no Mandriva)

A partir daí, os terminais já poderão abrir a tela de login do servidor através do comando “X -query IP_do_servidor“, como em:

# X -query 192.168.1.1

O comando deve ser dado com o terminal em modo texto. Se o cliente já estiver com uma sessão do X aberta, ou você desejar abrir mais de uma tela do servidor ao mesmo tempo, basta adicionar o parâmetro “:2″, como em:

# X :2 -query 192.168.1.1

O comando abrirá um segundo terminal gráfico, independente do primeiro, exibindo a tela de login do servidor. Você pode alternar entre os dois usando as teclas Ctrl+Alt+F7 e Ctrl+Alt+F8. Para abrir mais terminais, basta substituir o “:2″ por um número de 3 em diante.

Para automatizar o processo, fazendo com que o terminal abra automaticamente a tela de login do servidor no final do boot, sem passar pelo login local e sem a necessidade de digitar este comando a cada boot, edite o arquivo “/etc/inittab” (no terminal, como root) e altere a linha “x:5:respawn:/etc/X11/prefdm -nodaemon“, que estará no final do arquivo para “x:5:respawn:/etc/X11/X -query IP_do_servidor”, como em:

x:5:respawn:/etc/X11/X -query 192.168.1.1

Isso faz com que o terminal aborte o carregamento do ambiente gráfico local e abra a tela de login do servidor via XDMCP. Este é um velho truque para aproveitar micros antigos, transformando-os em terminais burros. Eu cheguei a usar um Thinkpad 560 como segundo micro durante um bom tempo entre 1998 e 2000 (época em que os notebooks ainda eram muito caros), graças ao XDMCP. Ele era um simples Pentium 100 com 16 MB de RAM e por isso era muito limitado para rodar programas localmente, mas funcionava muito bem como terminal.

Continuando, uma segunda opção é utilizar o comando “X -broadcast” em substituição ao “X -query”. A diferença é que enquanto o X -query exige que você especifique o endereço IP do servidor, o X -broadcast é automático, ele se encarrega de emitir um pacote de broadcast na rede e contatar o primeiro servidor X que responder ao chamado. O “X -broadcast” é sempre usado sem argumentos, como em:

# X :2 -broadcast

Se você tiver mais de um servidor XDM na rede, uma terceira opção é usar o comando: “X -indirect IP_do_servidor“. Nesse caso, você se conectará a um servidor X configurado, mas, ao invés de obter a tela de login automaticamente, terá um menu com todos os servidores X disponíveis na rede e poderá escolher qual usar a cada sessão. A partir daí o cliente escolhe a qual servidor deseja se conectar a cada boot.

Para que o servidor forneça esta lista é preciso que a linha “* CHOOSER BROADCAST” do arquivo Xaccess esteja descomentada (no KDM), ou que a opção “Honrar pedidos indiretos” esteja ativada no gdmsetup (ao usar o GDM).

Um pequeno truque não documentado é substituir o endereço do servidor pelo endereço da rede, como em “X -indirect 192.168.0.0“. Isso faz com que o pedido de listagem vá para todos os servidores XDM da rede. A vantagem é que o cliente não fica preso a um servidor específico; o cliente sempre conseguirá obter a lista, mesmo que apenas um dos servidores da rede esteja ligado.

A principal vantagem de utilizar o XDMCP é que não é preciso instalar nenhum software adicional no servidor nem nas estações, apenas fazer a configuração necessária. Uma vez conectadas no servidor, as estações utilizam automaticamente a conexão com a web, impressora, gravador de DVD, scanner, etc. instalados nele. Não é necessário configurar os compartilhamentos de impressora e conexão, já que, na verdade, tudo é acessado “localmente” dentro do servidor. A única diferença é que neste caso as imagem são enviadas às estações, ao invés de serem exibidas no monitor do servidor.

O mesmo acontece com relação aos arquivos. Tudo que é aberto e salvo não sai do HD do servidor. Você pode criar um login de usuário para cada um que for acessar o servidor, assim cada um terá onde armazenar seus arquivos e suas configurações e você precisará fazer backup de um único local. Um único servidor, com um processador razoável, rede de 100 megabits e 1 GB de RAM, pode facilmente atender a 20 estações simultaneamente.

Uma última peculiaridade do X é a forma estranha como é definido quem é o cliente e quem é o servidor. O servidor X cuida do acesso ao hardware, da criação de janelas, leitura do teclado, etc. Ele envia estes dados aos programas (o que inclui o gerenciador de janelas), que são chamados de clientes X e estes devolvem as imagens e outros dados que serão mostrados na tela.

Enquanto você está trabalhando localmente, isso parece bastante lógico. Afinal, o servidor X é o intermediário entre o hardware e os programas, que são os clientes. No entanto, a coisa começa a ficar um pouco mais estranha quando começamos a trabalhar em rede.

Se você usa um 486 como um “cliente” que roda aplicativos de um “servidor” remoto, chamamos o 486 de cliente e o servidor de servidor para que fique mais claro a função de ambos. Afinal, o 486 está servindo quase que como um mero terminal burro, que se limita a mostrar imagens no monitor.

Contudo, tecnicamente falando, o servidor X está rodando no 486, já que é ele quem está com o monitor, teclado, etc. O “servidor de rede”, nesse caso, entra apenas com as imagens que serão exibidas por este servidor X (no 486), ou seja, faz o papel de cliente. Este é um ponto confuso, onde é preciso prestar atenção para não trocar as bolas.

Referencias:

http://tldp.org/HOWTO/XDMCP-HOWTO/index.html
http://www.guiadohardware.net/tutoriais/configurando-servidor-xdmcp/

1- É possível abrir vários servidores X e rodar não apenas aplicativos, mas também gerenciadores de janelas diferentes em cada um. Sim, você pode rodar o KDE e o Gnome, junto com o XFCE e o Blackbox, todos ao mesmo tempo. :)

2- Os servidores X não estão limitados a rodar aplicativos locais, eles podem rodar aplicativos a partir de qualquer micro da rede, ou mesmo de outros hosts da Internet. Este sistema de compartilhamento do X é chamado de XDMCP.

3- Ao rodar aplicativos remotamente a carga fica toda com o servidor. O cliente utiliza um mínimo de processamento, já que basicamente se limita a enviar os dados recebidos via rede para a tela. Usando um 486 com 8 MB de RAM já é possível ter um terminal X funcional.

4- Ao contrário do VNC, o X consegue uma velocidade de atualização de tela muito boa, mesmo em uma rede de 10 megabits. A principal diferença é que enquanto o VNC transmite a tela na forma de uma imagem, o X transmite apenas texto, com as instruções necessárias para o cliente montar as janelas. Apenas figuras e ícones são transmitidos na forma de imagem.

19
Jun
09

TFTP

Trivial File Transfer Protocol.

O Trivial File Transfer Protocol (ou apenas TFTP) é um protocolo de transferência de dados, muito simples, semelhante ao FTP.

O TFTP é usualmente utilizado para transferir pequenos dados entre “hosts” numa rede, tal como quando um terminal remoto ou um cliente inicia o seu funcionamento, a partir do servidor.

Algumas caracteristicas do TFTP:
-É baseado em UDP (usa a port 69) ao contrário do FTP que se basea no TCP (usa a port 21);
-Ele não lista os dados de um diretorio;
-Ele não tem mecanismos de encriptação ou autenticação;
-É utilizado para ler ou escrever arquivos de um servidor remoto;
-Devido a sua pouca segurança, o TFTP é perigoso de se usar via Internet, portanto o seu uso geralmente é aplicado apenas em redes locais ou privadas.

Exemplo de uma seção TFTP:
O host A envia um pacote de pedido de leitura (RRQ) ou de pedido de escrita (WRQ) para o host S atravez da conhecida porta 69 (hot) , contendo o nome do dado e o tipo de transferencia.

S responde com um pacote de reconhecimento (ACK) para o pacote de escrita e  diretamente com o dado para o pacote de leitura. Host S envia os pacotes para uma porta recem alocada no host A, e todos os outros pacotes a partir deste momento serão enviados para aquela porta.

O host de origem (neste caso o A) envia pacotes de dados numerados para o host de destino (S), sendo que o ultimo pacote é um pacote de tamanho total (512 bytes), o host de destino responde com pacotes de reconhecimento numerados para cada pacote de dado recebido.

O pacote final de dados, e enviado com um tamanho menor do que o de bloco total (menor que 512 bytes), caso o pacote de dados seja multiplo do valor total, ele enviara um pacote de dados de tamanho 0, apenas para identificar que a transferencia foi completada.

O receptor responde a cada dado com o seu pacote de reconhecimento associado, quando o remetente (quem esta enviando os dados) recebe estes pacotes de reconhecimento, ele imediatamente responde com o proximo pacote de dados.

Se, eventualmente, um pacote de reconhecimento não for recebido, o remetente envia novamente o pacote de dados.

Exemplos de utilização do TFTP:
Quando fazemos o boot em um servidor LTSP, após iniciarmos a maquina utilizando como boot o PXE, recebemos o ip por DHCP, então a imagem do sistema de arquivos do Linux é gravado na memória RAM do cliente, porém… como esta imagem vem até o cliente?
Simples meu amigo… TFTP. :D

Exemplo de configuração no Linux (debian):
pacote: atftp
http://www.vivaolinux.com.br/dica/Configuracao-do-servidor-TFTP/

Referencias:
http://pt.wikipedia.org/wiki/Trivial_File_Transfer_Protocol
http://en.wikipedia.org/wiki/Trivial_File_Transfer_Protocol
http://www.vivaolinux.com.br/dica/Configuracao-do-servidor-TFTP/

15
Jun
09

PXE

Pre-boot eXecution Environment.

O Ambiente de Pré-execução (PXE ou ‘pixie’, ambos do inglês: Preboot eXecution Environment) é um ambiente para inicializar computadores usando a Interface da Placa de Rede sem a dependência da disponibilidade de dispositivos de armazenamento (como Disco Rígidos) ou algum Sistema Operacional instalado.

Funcionamento:
Um cliente tenta localizar um serviço de redirecionamento de PXE na rede (como um proxy DHCP) com o intuito de receber informações sobre servidores de boot PXE disponiveis. Após receber resposta, o cliente ira perguntar a um servidor de boot apropriado qual o caminho do arquivo ou por um NBP (Network Bootstrap Program), e armazear esta informação dentro da RAM do computador usando o TFTP, apos o armazenamento ele verifica as informações e depois as executa.

Onde uso o PXE ?
Aqui irei dar 2 exemplos muito comuns de uso do PXE
1- Usado em servidores LTSP, o PXE que ira passar as informações para boot dos clientes.
2- Usado para fazer instalação de um distribuição em varias maquinas simultaneamente por rede, como explicado aqui.

Referencias:
http://www.howtoforge.com/setting-up-a-pxe-install-server-for-multiple-linux-distributions-on-debian-lenny
http://pt.wikipedia.org/wiki/Preboot_Execution_Environment
http://www.guiadohardware.net/termos/pxe

09
Jun
09

DHCP

Dinamic Host Control Protocol

O que é DHCP:
É um protocolo de serviço TCP/IP que oferece configuração dinâmica de terminais. Uma das varias vantagens do DHCP é que você não precisa definir manualmente o IP dos terminais, o servidor DHCP vai enviar um IP para cada maquina, e pode-se configurar no proprio servidor o tempo de vida desse IP.

O DHCP opera da seguinte forma:
Um cliente envia um pacote UDP para todas as maquinas com um pedido de DHCP, os servidores DHCP que capturarem este pacote irão responder com um pacote de configurações onde constará, pelo menos, um endereço IP, uma mascara de rede, e outros parametros opcionais, como gateway e endereços de DNS.

Criterios de atribuição de IPs:
-Atribuição manual: Onde existe uma relação entre o endereço MAC do cliente e o endereço IP a fornecer. Essa associação é feita manualmente pelo administrador da rede, com isso apenas os clientes cujo MAC consta nesta lista poderão receber configurações desse servidor.

-Atribuição automatica: Onde o cliente obtém um endereço de um espaço de endereços possíveis, especificado pelo administrador. Geralmente não existe vínculo entre os vários MAC habilitados a esse espaço de endereços.

-Atribuição dinâmica: Tem funcionamento parecido com o automatico, porém cada cliente tem um tempo de vida para seu IP, e este tempo começa a expirar assim que o cliente for desconectado da rede, portanto na proxima vez que ele se conectar na rede, se o tempo de vida ainda for valido (maior que zero) ele continuará com o mesmo IP, caso contrario será fornecido um novo IP ao cliente.

Servidor DHCP Linux:
pacote debian-like: dhcp3-server
pacote outras distros: dhcpd

- Configurações necessarias para iniciarmos o serviço:
arquivo dhcpd.conf

ddns-update-style none;
#tempo de vida do IP neste caso 1200 segundos ou 20 minutos
default-lease-time 1200;
#se houver outro servidor dhcp na rede, este sera o preferencial
authoritative;
#especificações da distribuição de IPs
subnet 10.0.0.0 netmask 255.0.0.0 {
   #faixa em que sera distribuidos os ips
   range 10.0.0.1 10.0.0.253
   #especifica o roteador/gateway, no caso pode-se atribuir este
   #ip fixo na maquina que ira rodar o serviço de dhcpd.
   option routers 10.0.0.254
   #especifica os servidores dns que serao usados, lembrar de
   #sempre especificar os servidores dns da rede interna, depois
   #os servidores dns da internet (br. telecom por exemplo).
   option domain-name-servers 10.0.0.254, 201.10.120.3
   #endereço de broadcast
   option broadcast-address 10.0.0.255
}
#exemplo de atribuição de IP fixo a um cliente
host nome_exemplo1 {
   #especificação do MAC address da placa do cliente.
   hardware athernet 00:00:00:00:00:00;
   #endereço de IP que o cliente ira receber.
   fixed-address 10.0.0.2;
}

Referencias:
http://www.vivaolinux.com.br/artigo/DHCP-Configurandoo-de-forma-simples-e-eficiente/?pagina=3
http://pt.wikipedia.org/wiki/DHCP
Minha cabeça… :D

08
Jun
09

Starting… again

Hoje, após a remoção misteriosa de meus arquivos pessoais e de TODOS os arquivos que não tinham relação com a empresa (incluindo os do WordPress) do meu FTP, resolvi desativa-lo, e apaguei meu banco de dados e o restante dos arquivos do meu FTP, agora irei gerenciar este site diretamente dos servidores da WordPress.




 

Novembro 2009
D S T Q Q S S
« Jul    
1234567
891011121314
15161718192021
22232425262728
2930  

Categorias

Páginas