slack zine 9

Upload: deposito-da-fe-da-igreja-catolica-apostolica-romana

Post on 08-Apr-2018

265 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/6/2019 Slack Zine 9

    1/16

    slackwarezineSlackware is a registered trademarkof Slackware Linux, Inc.

    O slackware a distribuio linux maisantiga ainda em atividade. Tendo sidocriada por Patrick Volkerding em 1993, apartir da SLS.

    Em todos esses anos, a distroconquistou ardorosos utilizadores,principalmente graas sua filosofia desimplicidade e estabilidade.

    Um produto de extrema qualidade pausurios com esta mesma caractersE este zine de slacker para slacker

    15 de Junho de 2005 Edio

    Reproduo do material contido nesta revista permitida desde quese incluam os crditos aos autores e a frase:

    Reproduzida da Slackware Zine #9 www.slackwarezine.com.br

    com fonte igual ou maior do corpo do texto e em local visvel

    slack

    users

    ndice

    Iluminao Virtual em OpenGLDiego Fiori de Carvalho

    2

    Instalando o Skype 1.1.03 noslackwareClayton dos Santos

    Controlando Banda com o HTBWanderson Santiago dos Reis

    Integrando Linux e Netware

    Flavio do Carmo Jr.

    Mais segurana com o AIDELeandro Toledo

    10

    Autenticao do Squid via SambaFrederico R. C. Costa

    13

    Backups Usando Fitas DATClayton dos Santos1

    Editorial

    Um atraso monstruoso. Conseguimos uma proeza,lanamos a edio #9.5 antes da #9! Agora,porqu a #9 atrasou?

    O primeiro motivo foi um pouco dedesorganizao da nossa parte. Ns, editores

    da zine, nos responsabilizamos por isso.Falta de planejamento e uma m distribuiodas tarefas foram os principais problemas. E,esperamos que tenham sido resolvidos.

    O segundo motivo (relacionado com o primeiro)foi o FISL. Estivemos l presentes e foimuito gratificante ver o retorno dos leitorese, claro, tivemos que fazer uma edioespecial para o evento. O que foi em cimadessa edio.

    Agora, quem no teve culpa pelo que aconteceuforam os nossos colaboradores! Todosestiveram de parabns e nos enviaram timosartigos, tanto para a edio especial, comopara essa. Esperamos que as colaboraes e oretorno da comunidade continue melhorandocada vez e que ns possamos atender a essasespectativas.

    Essa edio deve agradar todos os tipos deusurio, tem artigos de programao, artigospara desktop e vrios artigos paraadministradores de sistemas (que estavamreclamando do teor da revista e, pelo jeito,responderam do jeito certo, mandando

    artigos). No mais, divirtam-se com essaedio e aguardem a #10, para julho.

    Piter PUNK

    slackwarezine antes tarde do que nunca

  • 8/6/2019 Slack Zine 9

    2/16

    Introduo

    Para este artigo ficar mais didtico, procurei dividloem 2 partes principais: Divagando sobre luz eManipulao de luzes.

    A primeira parte ilustra as propriedades fsicas daluz, e a segunda comenta sobre a criao, seleo e

    posicionamento de luzes. No tpico manipulao deluzes, encontra-se a explicao das trs principaiscaractersticas de iluminao: cor, atenuao eposicionamento. Estas propriedades so ilustradascom exemplos de cdigo e figuras.

    Mesmo tendo um cuidado especial com o didatismo, importante que o leitor possua conhecimentosbsicos de OpenGL, inclusive para compreender oscdigos apresentados.

    Divagando sobre Luzes

    Fisicamente, a luz composta de ftons, partculas

    minsculas de luz que so determinados por suaposio, sentido e frequncia.

    A luz uma onda eletromagntica que possui umagrande faixa de comprimentos de onda. O olhohumano percebe apenas uma faixa estreita desseespectro. A luz visvel pelo ser humano, pode variarde 390 nanmetros (nm), para a cor violeta, at 720nm para a cor vermelha. Na realidade o que seuolho v uma mistura dos ftons de ondasdiferentes que geram as cores do mundo real.

    A luz branca ideal consiste em uma quantidade

    exatamente igual de luz de todas as faixas. Nossoolho percebe a cor quando as nossas clulasespeciais, chamadas cones, presentes na retinaexcitam-se aps serem golpeados pelos diversosftons.

    Existem 3 tipos de cones, os que so mais sensveisa cor vermelha, outros a cor verde e a azul. apartir deste princpio de sensibilizao dos cones,que foi inspirado a construo dos monitoresgrficos, os quais emulam as cores visveis com ailuminao dos pixels nos vrios nveis deintensidade das trs componentes de cor(RGB).

    Do mesmo modo o OpenGL aproxima a luz,caracterizando-a pela quantidade de luz vermelha,

    verde e azul que emite, e o material das superfcies determinada pela porcentagem de componentes

    vermelhos, verdes e azuis que incidem sobre oobjeto e so refletidos.

    Mas no se preocupe com todos estes conceitosfsicos, pois a SGI procurou facilitar a vida doprogramador criando comandos que implementamas funes matemticas necessrias para ailuminao de cenas 3D em superfcies 2D(monitorde vdeo). O objetivo maior de uma aplicao 3D alcanar a perfeio de confundir-se com uma cenareal, desse modo que os criadores de animaes3D pensam.

    Criao, seleo e posicionamento de luzes

    Basicamente, para interagirmos com iluminao 3D,necessitamos interagir com a funo glLightfv(), aqual utilizada para definir os parmetros de umaluz. Em OpenGL, determinamos uma fonte de luz

    aps setarmos vrios parmetros que refletem asgrandezas fsicas do mundo real.

    Os parmetros fundamentais para criao de umaluz em OpenGL so: a propriedade de cor,propriedades de posicionamento e propriedades deatenuao.

    Propriedade de Cor: Cores e Reflexo dosMateriais

    A manipulao das propriedades de cor permiteminteraes com as diferentes propriedades fsicasdos materiais. A aproximao da cor de um material realizada dependendo da quantidade percentualde luz de cada nvel de cor RGB, ou seja, setivermos um objeto inteiramente azul, este refletirtoda a luz azul que incide sobre ele e absorvertoda a luz vermelha e verde.

    Dessa maneira, so absorvidos alguns ftons eoutros so refletidos pela superfcie,consequentementeas propriedades da superfciepodem brilhar de diferentes maneiras. E esse efeitofsico simulado pelo OpenGL.

    IluminaoVirtual

    em OpenGL

    continua

    02

  • 8/6/2019 Slack Zine 9

    3/16

    Existem 3 tipos de luzes(efeito "brilho") quepodemos determinar seus valores para a cenacriada:

    Luz Ambiente(GL_AMBIENT): Luz provenientede todas as direes, devido a mltiplasreflexes da cena e refletida pela superfcie domaterial em todas as direes.

    Luz Difusa(GL_DIFFUSE): Luz que incide noobjeto de uma direo bem definida e refleteigualmente em todas as direes, a intesidadede luz refletida depende diretamente do ngulode incidncia da luz na superfcie do material.

    Luz Especular(GL_SPECULAR): Luz que incideno objeto de uma direo bem definida e quetende a refletir-se pela normal, ou seja 90. Omelhor exemplo deste tipo de efeito a reflexode luz em superfcies metlicas (ou em umespelho).

    Podemos visualizar esses tipos de luzes na figuraabaixo:

    Propriedades de Posicionamento

    (GL_POSITION):

    Controlam a localizao e o tipo da luz. OpenGLrespeita o sistema de coordenadas homogneas(x,y,z)[1], para definirmos a posio de uma luz,basta preenchermos este padro de coordenadas eainda definirmos um valor para w, a componente deposio de luz. A componente w pode receber dois

    valores distintos:

    0 : para uma luz direcional que ilumina a partir doinfinito.1 : para uma luz localizada na cena.

    Para entendermos melhor podemos observar ovalor padro do GL_POSITION (0.0, 0.0, 1.0,0.0) ilumina a partir da direo do eixo z no infinito(considerando que o eixo z avana do fundo domonitor para fora da tela). Podemos criar diversosefeitos de luz movimentando a cmera ou a prprialuz pela cena.

    Para criar uma fonte de luz que se move com oobservador, indique a posio da luz antes deespecificar a posio da cmera.

    glPushMatrix();glLightfv(GL_LIGHT0, GL_POSITION,\

    lightposition);/* Colocar aqui os comandos de *//* transformao de viso. */

    /* Colocar aqui os comandos para *//* desenhar os objetos */glPopMatrix();

    GL_LIGHT0 define a fonte de luz que voc esttrabalhando. GL_POSITION define que o parmetroa ser modificado o de posio lightposition aposio no eixo x,y,z da fonte de luz. Voc podemover a cmera em x,y e z e a luz circula o objeto.

    Para criar uma fonte de luz fixa, basta indicar aposio da luz e depois especificar a cmera.

    GlPushMatrix();/* Colocar aqui os comandos de *//* transformao de viso. */

    glLightfv(GL_LIGHT0, GL_POSITION,\lightposition);

    /* Colocar aqui os comandos para *//* desenhar os objetos */glPopMatrix();

    No exemplo de luz mvel implementamosprimeiramente a posio da cmera e depois astransformaes de viso e finalmente o desenho dacena, nesse caso, podemos setar as condies da

    viso entre uma renderizao e outra do desenhoda cena, isto nos permite criar a sensao demovimento do foco de luz.

    J no segundo exemplo perdemos a sensao demovimentao, pois determinamos astransformaes de viso antes de fixarmos o foco deluz.

    Propriedades de Atenuao

    Esta propriedade define o nvel de atenuao deuma fonte de luz de acordo com a distncia damesma em relao aos objetos da cena. Existem 3tipos de atenuao de fontes de luz em OpenGL[2]:

    Constante(GL_CONSTANT_ATTENUATION):No realiza atenuao, deixa a luz do objetocomo estava anteriormente, ou seja oafastamento do objeto no influncia nailuminao.

    Linear(GL_LINEAR_ATTENUATION): Aintensidade diminue linearmente com adistncia, ou seja o afastamento do objetoprovoca alteraes na iluminao, quanto maislonge o objeto estiver menos iluminao ter.

    continuacontinua

    03

  • 8/6/2019 Slack Zine 9

    4/16

    Quadrtica(GL_QUADRATIC_ATTENUATION):A intensidade diminue quadraticamente com adistncia, ou seja, o afastamento do objeto trara sensao de distncia percorrida, pois estedesaparecer aos poucos, quando estiversendo posicionado em direo ao infinito.

    Vamos agora observar um exemplo de aplicaocom iluminao, para verificarmos os mtodos

    apresentados neste artigo.

    //Definio dos valores dos vetores para//as componentes de luz.GLfloat luz_ambiente[] = \

    { 0.0, 0.0, 0.0, 1.0 };GLfloat luz_difusa[] = \

    { 1.0, 1.0, 1.0, 1.0 };GLfloat luz_especular[] = \

    { 1.0, 1.0, 1.0, 1.0 };GLfloat luz_posicao[] = \

    { 1.0, 1.0, 1.0, 0.0 };

    //Essas Linhas definem as propriedades//de cor para a cena, com a determinao//para da fonte de luz GL_LIGHT0.glLightfv(GL_LIGHT0, GL_AMBIENT,\

    luz_ambiente);glLightfv(GL_LIGHT0, GL_DIFFUSE,\

    luz_difusa);glLightfv(GL_LIGHT0, GL_SPECULAR,\

    luz_especular);

    //Define a propriedade de posicionamento//da fonte de luz GL_LIGHT0.glLightfv(GL_LIGHT0, GL_POSITION,\

    luz_posicao);

    //Define a propriedade de atenuao da//fonte de luz GL_LIGHT0.glLightfv(GL_LIGHT0,\

    GL_LINEAR_ATTENUATION, 0.1);//Habilita o uso de iluminaoglEnable(GL_LIGHTING);//Habilita clculo de remoo de//superfcies ocultasglEnable(GL_DEPTH_TEST);

    //Habilita a fonte de luz de nmero 0.Em//Opengl podemos definir at 8 focos//(GL_LIGHT0 at GL_LIGHT7).glEnable(GL_LIGHT0);

    Referncias:[1] "Programao 3D com OpenGL" na edio n 8da slackwarezine.[2] Verso eletrnica do RedBook Opengl.

    http://www.opengl.org/documentation/\red_book_1.0/

    Diego Fiori de Carvalho

    04

    continua

  • 8/6/2019 Slack Zine 9

    5/16

    Recentemente, realizei o setup de um novo desktopaqui onde trabalho e coloquei o bom e velhoslackware 10.0 para rodar nele. Depois deinstalado e devidamente "patcheado", comecei ainstalar os aplicativos que mais utilizo no meucotidiano e um deles o skype.

    Pra quem no conhece, o skype uma "sute decomunicao completa", com funes que vo desdea troca de mensagem instantneas, at a utilizaoda tecnologia de Voip (voz sobre ip), possibilitandoconversas entre usurios de todo o mundo a custozero e com excelente qualidade de som, suportando

    incluvise conferncias entre mltiplos usuriossimultaneamente.

    Bem, como estava dizendo, fui at o site do skype ebaixei a ltima (e nica) verso disponvel paradownload, a verso 1.103 (linux), que pode serencontrada em:

    http://www.skype.com/go/\getskype-linux-dynamic

    http://www.skype.com/go/\getskype-linux-static

    O processo de instalao do skype trivial:

    su -cd /usr/localcp ~clayton/\

    skype_staticQT-1.1.0.3.tar.bz2 .tar -xvjf skype_staticQT-1.1.0.3.tar.bz2mv skype_staticQT-1.1.0.3.tar.bz2 skypecd skypeexit

    No momento da execuo que ocorre o grandeproblema... :(

    $ ./skype./skype: error while loading sharedlibraries: libdbus-1.so.0: \

    cannot open shared object file: \No such file or directory

    $ ldd skypelibdbus-1.so.0 => not found...

    De fato, a libdbus a nica lib requerida pelo binriono existe no sistema... ou seja, devemos instal-la sequisermos usar o skype.

    Vale lembrar que verses anteriores do skype

    funcionam normalmente no slackware, no entanto,como o site no mantm as verses anteriores paradownload, acredito que na maior parte dos casos,seja necessrio fazer o release mais atual funcionar

    Bem, quem disponibiliza a biblioteca o projetoFreeDesktop, atravs do pacote dbus, infelizmenteno disponvel para o nosso querido slackware viabuilds oficiais. A nica exigncia do dbus umparser xml como a libxml ou o expat, ambosdisponveis no slackware via CD's de instalao.Desse modo, no precisamos nos preocupar comisso. Vamos ao trabalho:

    $ wget http://dbus.freedesktop.org/\releases/dbus-0.33.tar.gz

    $ tar -xvzf dbus-0.33.tar.gz$ cd dbus-0.33$ ./configure --disable-glib$ make

    Por default, so gerados os builds para Qt e Glib,vamos gerar um build somente para Qt, afinal esse toolkit que o skype utiliza.

    $ su -# cd ~clayton/dbus-0.33

    # checkinstall# ldconfig# cd /usr/local/skype# ldd skype | grep libdbus

    libdbus-1.so.0 => not found

    U... ???

    # locate libdbus/usr/local/lib/libdbus-qt-1.so.1.0.0

    Hummmm, o velho truque para enganar o ld...(ainda como root)

    # ln -s /usr/local/lib/\libdbus-qt-1.so.1.0.0 \/usr/local/lib/libdbus-1.so.1.0.0

    # ldconfig# exit$ cd /usr/local/skype$ ./skype

    Prontinho, tudo funcionando!!! Espero que esseartigo seja til a toda a comunidade...

    Clayton dos Santo

  • 8/6/2019 Slack Zine 9

    6/16

    1 - Introduo

    O HTB (Hierarchical Token Bucket) uma boaalternativa em substituio ao CBQ (Class BasedQueueing) pois este mais preciso e fcil de utilizar.

    A diferena para o CBQ que ele aloca banda parauma ou mais classes e toma emprestadatemporariamente a banda de outras classes que noestejam sendo utilizadas completamente.

    Para utilizar o HTB voc precisa de um kernel maior

    ou igual 2.4.20 e da ferramentatc (Traffic Control)includa no pacote iproute2. Eu utilizei apenas oslackware 10.1 (kernel 2.4.29).

    Para configurarmos o HTB temos basicamente trsalternativas: Criar um script com todos os comandos(se voc souber quais claro); Utilizar o htb.initsemelhante ao cbq.init e que demanda uma sriede configuraes, bem familiar para quem j utiliza oCBQ ou utilizar a ferramenta HTB Tools. Como euquero simplificar e no tenho experincia com o CBQoptei pelo HTB Tools criada dentro da filosofia doslackware.

    2 - Instalao e Configurao

    Faa o download em:http://htb-tools.arny.ro/\

    htb_tools-0.2.5.tar.gz

    Descompacte e instale da maneira traficional(./configure && make && checkinstall)

    Antes que eu me esquea, utilizando o HTB Toolsno necessrio instalar o pacote iproute2 (casono queira), pois o HTB Tools j inclui uma versoadequada da ferramentatc para o HTB, apenas dum: cp tc /sbin. Instalado o HTB Tools seuslackware ter os binrios :

    q_parser: l o arquivo de configurao onde osclientes, as classes, e a banda alocada definida e gera um script conforme asconfiguraes estabelecidas;

    q_show: exibe em tempo real a bandausada/alocada para cada classe/clientede acordo com a configurao;

    q_checkcfg: verifica a sintaxe do arquivo deconfigurao.

    A instalao cria arquivos de configurao padroem /etc/htb. Utilizando o HTB Tools conseguimossimplificar bastante a configurao e monitoramentode alocao de banda tanto para upload como paradownload. A grande sacada do criador do HTB Tool(http://www.arny.ro) foi definir uma configuraosemelhante a do arquivo named.conf (quem nuncadeu uma espiada?).

    Vamos ao exemplo: voc possui um link de 512kpbscompartilhado entre dois clientes , teoricamentecada um deveria ter 256kpbs garantidos (QOS),contudo voc deixou a coisa frouxa e um dosclientes comea a reclamar que o link est muitolento e que no consegue realizar transaesimportantes. No precisa dizer mais nada, o outrocliente est abusando do link. A culpa no dele,pois voc deixou, no mesmo? Para resolver esteproblema vamos de fato distribuir o link da seguinteforma: cada cliente ter 192kpbs garantidos e nomximo 256kps para upload/download.

    Supondo que a sua interface WAN seja a eth0vamos controlar o upload criando o arquivo /etc/htb/eth0-qos.cfg com o seguinte contedo:

    class upload {bandwidth 480;limit 512;burst 2;priority 1;

    client cliente_1 {bandwidth 192;limit 256;burst 2;priority 1;

    src {192.168.1.2;

    };};

    client cliente_2 {bandwidth 192;limit 256;burst 2;priority 1;

    src {192.168.2.2;

    };};

    };class default { bandwidth 8; };

    Controlando Banda com o HTB

    continua

    06

  • 8/6/2019 Slack Zine 9

    7/16

  • 8/6/2019 Slack Zine 9

    8/16

    1. Incio

    Este texto pretende de forma simples tanto explicarcomo mapear compartilhamentos criados em umservidor Netware (Novell) em seu micro com Linux.

    2. Verificando/Preparando o Kernel

    Verificando o sistema atual:

    # modprobe -l | egrep 'ncp|ipx'

    Se retornar os dois mdulos ncpfs e ipx voc noprecisa recompilar seu kernel. No retornar nadapode indicar que estes mdulos esto compiladoscomo built-in na imagem do kernel, portanto antesde recompilar o kernel eu aconselho que testemcriar o mapeamento antes (passo 5).

    Para que seu sistema reconhea o sistema dearquivos ncpfs, sera necessrio que seu kerneltenha suporte ao mesmo e tambm suporte ao IPX.

    Acesse o diretrio /usr/src/linux e execute:

    # make menuconfig

    V at Networking Options e ative:

    The IPX Protocol[*] IPX: Full Internal IPX Network

    Agora volte a tela incial e acesse:

    File SystemsNetwork File Systems NCP File System Support[*] Em todos abaixo referentes ao NCP

    Saia do menuconfig salvando suas alteraes e faaos seguintes passos:

    # make dep && make clean && make bzImage# make modules && make modules_install# cp arch/i386/boot/bzImage /boot/lin-ncp# echo -e "image = /boot/lin-ncproot = `mount | head -1 | cut -c1-9`label = NCPread-only" >>/etc/lilo.conf# lilo && reboot

    Eu aconselho 100% que voce leia um documentosobre recompilao do kernel, j que nodescrevemos aqui todo o processo. A mquina irreiniciar e rebootar com o kernel novo.

    3. Obtendo o pacote ncpfs-2.2.4.tar.gz

    Voc pode baixar a verso mais atualizada dopacote ncpfs no site:

    ftp://platan.vc.cvut.cz/pub/linux/ncpfs

    A verso utilizada neste documento ser a 2.2.4,para baix-la usaremos:

    $ wget ftp://platan.vc.cvut.cz/pub/\linux/ncpfs/ncpfs-2.2.4.tar.gz

    4. Instalando o ncpfs-2.2.4

    V at o diretrio onde voc baixou o pacote eexecute:

    $ tar -zxvf ncpfs-2.2.4.tar.gz

    $ cd ncpfs-2.2.4$ ./configure$ make$ su# make install

    5. Montando o servio Novell no Linux

    Primeiro vamos conhecer um pouco do ncpmount esuas opes (entre parnteses os equivalentes no /etc/fstab):

    -h . exibe o help

    -n . tenta o mapeamento sem senha (nopasswd)-S server . nome do servidor Netware(server=)

    -P password . faz o mapeamento com essa senh(passwd=)

    -U username . nome do usurio para omapeamento (user=)

    -V volume . nome do servio a ser montado(volume=)

    -m . permite vrios mapeamentos com o mesmousurio (multiple)

    continua

    Integrando Linux e Netware

    08

  • 8/6/2019 Slack Zine 9

    9/16

    OK, com estas opes j somos capazes de montarnosso servio Novell:

    # ncpmount -S SERVERNAME \-U USERNAME \-V DADOS \-P 123456 /mnt/novell

    Com isso eu montei o volume DADOS do servidorSERVERNAME pelo usurio USERNAME e senha 123456no diretrio do Linux /mnt/novell. Vamosadicionar uma linha ao arquivo /etc/fstab parafacilitar nossa vida, com a seguinte sintaxe:

    SERVERNAME/USERNAME \/mnt/novell ncpfs \noauto,defaults,\passwd=123456,multiple

    noauto significa que no ser montado durante oboot da mquina, para que seja montado sempreque a mquina for iniciada utilize auto. Agora para

    montar nosso servio Novell no Linux digitamossomente:

    # mount /mnt/novell

    Caso seu usurio na Novell no possua senha,utilize no mtodo 1 a opo -n e no mtodo 2(fstab) a opao nopasswd invs de passwd=xxxxx

    6. Concluso

    Com esse pacote ncpfs e algum "trabalhinho" porparte nossa, ns temos a capacidade de integrar o

    Linux com servios Netware. Cada vez mais o Linuxmostrando sua compatibilidade.

    Flavio do Carmo Jr a.k.a. drkn

    continua

    Autores

    Clayton Eduardo dos Santos, Trabalhacom Linux desde 2003 e com Slackware desde2004. Atualmente desenvolve seu projeto depesquisa de Doutorado no Departamento deEngenharia Eltrica na USP de So Carlos e um dos administradores do slackpoint, portal

    100% voltado comunidade slackwarebrasileira.

    Diego Fiori Carvalho, aluno doBacharelado em Informtica do ICMC-USP,So Carlos S.P.,utiliza Linux desde 2002, desenvolveu umsistema de multimdia interativa paraTreinamento em Linux, tem grande interessepor desenvolvimento de aplicaes grficas eatualmente desenvolvedor da empresa 3WTde So Carlos.

    Toledo, Iniciou com computadores em 1993 e

    Linux em 1998, usando Slackware 3.4 kernel2.0.30. Desde ento, vem acompanhando aevoluo desse maravilhoso sistema

    juntamente com toda a comunidade desoftware livre. Atualmente editor emantenedor do Slackware Zine.

    Flavio do Carmo Juniora.k.a. drkn, 22 anos,cursando Sistemas de Informaes. Teve seuprimeiro computador, um 386, aos 10 anosque o satisfez ate enjoar de Prince of Persiadepois de uns 2 anos, voltou a mexer emcomputadores em 95 quando ganhou um

    Celeron 400Mhz, quakemaniaco de carteirinhase viu em desvantagem quando surgiu oADSL e ento iniciou-se no mundo Linux em99 pulando por vrias distribuies atconhecer o slackware. Obrigatoriamentetrabalhou com debian e suse por 1 ano emeio, mas nunca se afastou do seu desktopslackware. Atualmente trabalha na rea deadministrao de servidores Linux na Bebidas

    Asteca & Molhos Hinomoto.

    Frederico R. C. Costa a.k.a Cyberfred,estudante de Sistemas de Informao.Usurio Slackware desde 1998. Trabalha

    como administrador de redes no jornal Dirioda Manh e no ponto de presena (PoP-GO)da RNP (Rede Nacional de Ensino e Pesquisa)em Gois.

    09

    slack

    users

  • 8/6/2019 Slack Zine 9

    10/16

    1. Introduo

    O AIDE (Advanced Intrusion DetectionEnvironment) para quem no sabe, um sistemaque checa a integridade de arquivos e diretriosdefinidos por voc mesmo no arquivo de poltica. Ele uma alternativa ao to famoso (que no funciona)tripwire. Com ele possvel detectar quaisarquivos foram adicionados, mudados e apagados;

    entre outras funes.

    2. Como funciona?

    Seu funcionamento simples, consiste em umacriao de um banco de dados contendoinformaes sobre os arquivos e diretrios paramais tarde fazer a verificao entre esse banco dedados e os arquivos atuais utilizando criptografia.

    Aps essa verificao gerado um log de tudo queaconteceu no seu sistema.

    3. Instalao

    Requerimentos:

    AIDE-0.10: http://aide.sourceforge.netMhash-0.9.1: http://mhash.sourceforge.net

    3.1 Instalando a lib Mhash

    Descompacte o source e compile como outroprograma qualquer, tirando a opo de compilarestaticamente a lib (a compilao dinmica geraerros ao AIDE depois):

    $ tar -zxvf mhash-0.9.1.tar.gz

    $ cd mhash-0.9.1.tar.gz$ ./configure --enable-static$ make

    (como root)# make install

    NOTA: O slackware 10 vem com a lib mhashcompilada dinamicamente mas precisamos delacompilada estaticamente para que o AIDE sejacompilado perfeitamente.

    3.2 Instalando o AIDE

    Como todo programa source, descompactamos ecompilamos:

    $ tar -zxvf aide-0.10.tar.gz$ cd aide-0.10$ ./configure \

    --sysconfdir=/etc/aide \

    --with-config_file=\/etc/aide/aide.conf \

    --with-mhash$ make(como root)# make install

    4. Configurao do arquivo de poltica

    Com tudo instalado devidamente instalado, restaagora configurar o AIDE. A sintaxe do arquivo depoltica simples, para funcionar basta setar duas

    variveis de sistema e depois s regras para

    diretrios e/ou arquivos. Abaixo segue uma tabelade descrio para as regras:

    p -> permisso de arquivoi -> inoden -> quantidade de vnculosu -> propriedade do usuriog -> propriedade do grupos -> tamanho do arquivom -> ltima alteraoa -> ltimo acessoc -> alterao de inodeS -> alterao no tamanho

    Concatenao de regras:

    E -> tudo ignoradoL -> p+i+n+u+gR -> p+i+n+u+g+s+m+c+md5> -> p+i+n+u+g+S

    Isso como se fosse uma alias ou um grupo deregras, para simplificar a vida e ficar mais fcil a

    visualizao das mesmas.

    Mais segurana com o AIDE

    continua

    10

  • 8/6/2019 Slack Zine 9

    11/16

    Podem ser utilizados vrios algoritmos de hashjunto s regras: md5, sha1, md1600, tiger, crc32,haval e gost. Os algoritmos mais usados econfiveis so: md5 e sha1. Mas voc pode escolhere usar qual desejar.

    Agora que j sabemos do que consiste o arquivo deconfigurao, vamos cri-lo. Como root, crie odiretorio:

    # mkdir /etc/aide

    Crie o arquivo /etc/aide/aide.conf com oseguinte contedo:

    #AIDE confdatabase=file:/etc/aide/aide.dbdatabase_out=file:/etc/aide/aide.db.new

    Regra = p+i+n+u+g+s+b+m+c+md5+sha1

    /etc p+i+u+g

    /bin Regra/sbin Regra/var Regra!/var/log/.*!/var/spool/.*!/var/adm/utmp$

    Setamos as duas variveis do banco que contm asinformaes do sistema, definimos uma regrapadro chamada 'Regra', diretrios com a regracriada e outros com regras diferentes. O ponto deexclamao '!' funciona como uma negao, osarquivos de existem dentro do diretrio /var/log/

    ,/var/spool/

    e o arquivos que comecemutmp dentro de /var/adm no sero checados

    AIDE found differences between database and filesystem!!Start timestamp: 2005-01-31 20:01:01Summary:Total number of files=7299,added files=2,removed files=0,changed files=1

    Added files:added:/etc/aide/aide.db

    added:/sbin/lalaChanged files:changed:/sbinDetailed information about changes:

    Directory: /sbinSize : 6768 , 6792

    Mtime : 1997-10-06 08:10:09 , 2005-01-31 20:00:52

    Ctime : 2005-01-31 01:41:08 , 2005-01-31 20:00:52

    5. Checando a integridade e analisando oslogs

    Agora que j temos o AIDE instalado e configuradovamos a funcionalidade :) Primeiro vamos criar obanco de dados, com o seguinte comando:

    # aide -i

    Ir criar o arquivo /etc/aide/aide.db.newbaseado no seu arquivo de poltica.

    DICA: Remova os arquivos deconfiguraes e mova o banco de dadospara um lugar seguro e de somente leitura,geralmente em outra mquina.

    Vamos ento, checar a integridade dos arquivos. Aprimeira vez que voc criar o banco de dados vocter que fazer uma cpia dele para aide.db dentrodo diretrio de configurao, assim:

    # cp /etc/aide/aide.db.new \/etc/aide/aide.db

    E depois:

    # aide -C > aide.log

    Dependendo das suas polticas a checagem podedemorar um pouco. Neste momento o AIDE analisao arquivo aide.db.new com o aide.db e gera um logdas mudanas. Estamos redirecionando a sada parao arquivo aide.log para depois podermos analis-lo. Um exemplo dos logs gerados pelo AIDE podeser vista no quadro logo abaixo, preservandoinclusive a formatao original.

    continua

    continua

    11

  • 8/6/2019 Slack Zine 9

    12/16

    O log bastante fcil de se entender, ele comeamostrando timestamp de gerao do log em seguidade um sumrio contendo: total de nmero dearquivos, arquivos adicionados, arquivos removidose arquivos mudados. E logo abaixo os detalhes dosarquivos que sofreram 'mutaes' :)

    Para simplificar o uso do AIDE, acrescente-o nocron com o intervalo de tempo que desejar, de no

    mnimo uma e mximo quatro horas.

    6. Por que no o Tripwire ?

    O tripwire um software de verificao deintegridade de arquivos, assim como o AIDE.Existem duas verses:uma verso de cdigo abertoe outra de cdigo fechado. Infelizmente no pudetestar sua verso de cdigo aberto pois requer gcc2.96 para compilao e no possuo no momentonenhum sistema com essa gcc.

    Infelizmente (de novo) no pude testar a verso de

    cdigo fechado pois iria pagar por um software como fim apenas de test-lo.

    Algumas 'features' do tripwire so melhores doque a do AIDE, como: mandar e-mail aps

    verificao de integridade e um log mais recheado.

    7. Concluso

    Sistemas de verificao de integridade de arquivose diretrios ajudam aumentar mais a segurana deseus servidores, protegendo-o contra rootkits,backdoors, cavalos de tria entre outras 'pragas'.

    Uma tima soluo o AIDE e a lista TODO enchemos olhos com as novas 'features', esperar ecomprovar :)

    Leandro Toledo

    12

    ERRATA

    Na edio especial 8.5, lanada durante oTerceiro Encontro Nacional LinuxChix, foipublicada uma matria sobre como reordenarinterfaces de rede.

    Infelizmente a matria continha um pequenoerro. Onde diz para fazer:

    # ifconfig eth0 down# ifconfig eth1 down# nameif -s

    Existe um problema, no possvel passar ainterface eth0 para eth1 enquanto a eth1continua l, muito menos passar a eth1 paraeth0. Com isso, muitos leitores conseguiramum erro.

    Ento, o ideal fazer:

    # ifconfig eth0 down# ifconfig eth1 down# nameif eth2 00:E0:7D:87:8E:20# nameif eth0 00:02:55:32:21:02# nameif eth1 00:E0:7D:87:8E:20

    Assim, primeiro passamos a eth0 para eth2,depois a eth1 para eth0 e, por fim, a eth2 paraeth1. Usando uma varivel auxiliar (a eth2),como utilizamos para trocar o valor de duas

    variveis em programao.

    Usar o nameif -s durante o boot ir funcionarperfeitamente, pois ele ser utilizado antes dequalquer interface estar configurada, ou seja,no necessrio se preocupar com essa partedo artigo.

    gotslack?http://store.slackware.com

  • 8/6/2019 Slack Zine 9

    13/16

    Este roteiro foi criado para auxiliar a configuraode um servidor SQUID para tornar automtica aautenticao de um usurio utilizando InternetExplorer.

    O SQUID possui um mdulo de autenticao(ntlm_auth) que permite que usurios utilizem omesmo login/senha tanto para logar no domnio,quanto para autenticar-se no browser.

    Se o usurio utilizar S.O Windows com browserInternet Explorer, esta autenticao pode serautomatizada, ou seja, aps o usurio se logar nodomnio, no ser necessrio informar novamente ologin/senha para poder navegar.

    As configuraes contidas neste documento foramcriadas em um servidor slackware 9.1, glibc-2.3.2, kernel 2.4.24, samba-3.0.2a e squid-2.5.STABLE5.

    Este processo funcionou em um ambiente onde no

    utilizado TRANSPARENT PROXY, ainda no fiztestes se esta soluo funciona com TransparentProxy, gostaria de ter um feedback de quem testar.

    1. Baixe os sources do Samba e Squid:

    # wget -c -t0 \http://us2.samba.org/samba/\

    ftp/samba-latest.tar.gz# wget -c -t0 \

    http://www.squid-cache.org/\Versions/v2/2.5/\squid-2.5.STABLE5.tar.gz

    2. Descompacte e compile:

    2.1 - SAMBA

    # tar xvfz samba-latest.tar.gz# cd samba-3.0.2a/sources# ./configure --prefix=/usr \

    --sysconfdir=/etc/samba \--with-privatedir=\

    /etc/samba/private \--with-lockdir=/var/lock \

    --with-piddir=/var/run \--with-configdir=/etc/samba \--with-automount --with-smbmount \--with-quotas with-winbind \--with-winbind-auth-challenge

    # make# make install

    2.2 - SQUID

    # cd squid-2.5.STABLE5# ./configure --prefix=/usr \

    --sysconfdir=/etc/squid \--enable-delay-pools \

    --enable-snmp --enable-htcp \--enable-ssl \--enable-default-err-language=\

    Portuguese \--enable-linux-netfilter \--enable-auth=ntlm,basic \--enable-external-acl-helpers=\

    wbinfo_group \--with-samba-sources=../samba-3.0.2a

    # make# make install

    Auntenticao do

    SQUID via Samba

    continua

    13

    [A-Za-z0-9]+[Zz]ineexistem vrias...

  • 8/6/2019 Slack Zine 9

    14/16

    3.2.2 - Configurao do SQUID

    As seguintes linhas devem ser adicionadas ao /etc/squid/squid.conf:

    # Grupo que o usuario que roda o# SQUID (nobody) faz partecache_effective_group nobody

    # ACL indicando que AuthorizedUsers# requer autenticacao para navegaracl AuthorizedUsers proxy_auth REQUIRED

    # Libera acesso para ACL AuthorizedUsershttp_access allow AuthorizedUsers

    # Configuracao p/ o Internet Explorer# autenticar automaticamenteauth_param ntlm program \

    /usr/bin/ntlm_auth \--helper-protocol=\

    squid-2.5-ntlmssp

    auth_param ntlm children 5auth_param ntlm max_challenge_reuses 0auth_param ntlm max_challenge_lifetime \

    20 minutes

    # Configuracao p/ Netscape, Mozilla etc.# que nao autenticam automaticamente,# sendo necessrio informa login/senhaauth_param basic \

    program /usr/bin/ntlm_auth \--helper-protocol=\

    squid-2.5-basicauth_param basic children 5auth_param basic realm \

    Squid Proxy. Enter with \username/password

    auth_param basic credentialsttl 2 hours

    IMPORTANTE:ao editar o squid.conf, procure no arquivoonde est cada parmetro explicitado (noexemplo cima) e o substitua, pois, alocalizao de cada um destes parmetrosno arquivo de configurao muitoimportante.

    3. Configurando os servios:

    3.1 - Servidor SAMBA (PDC)

    No meu caso o SAMBA utilizado como servidor dedomnio (PDC) utiliza a mesma verso do compiladono servidor SQUID, ou seja, samba-3.0.2a. Noservidor (PDC) necessrio adicionar o usurioroot ao smbpasswd:

    # smbpasswd -a root# smbpasswd -e root

    No testei se esta soluo funciona com versesdiferentes do samba no servidor e no cliente. Casoalgum teste, gostaria de ter um feedback.

    3.2 - Servidor SQUID

    3.2.1 - Configurao do SAMBA (winbind)

    Esta mquina dever rodar os servios smbd, nmbd

    e winbindd alm, claro, do squid. Para configurar oSAMBA nesta mquina, que servir apenas parafazer as consultas de usurio e senha via SMB, vocdever editar o arquivo /etc/smb.conf:

    workgroup = SEU_WORKGROUPserver string = Squid Servernetbios name = squidlog level = 2log file = /var/log/samba/%m.logmax log size = 50security = domainpassword server = \

    NOME-ou-IP_do_Servidor_SAMBA_(PDC)

    socket options = \TCP_NODELAY \SO_RCVBUF=8192 \SO_SNDBUF=8192

    encrypt passwords = yeswinbind uid = 10000-20000winbind gid = 10000-20000winbind enum users =yeswinbind enum groups = yestemplate homedir = /dev/nulltemplate shell = /dev/nullwinbind use default domain = yes

    continuacontinua

    14

    s existe uma.

    slackwarezine

  • 8/6/2019 Slack Zine 9

    15/16

    3.2.3 - Configurao e teste do Winbind

    Inicie os seguintes servios:

    # smbd -D# nmbd -D# winbindd

    necessrio inserir a mquina SQUID no domnio

    do SAMBA (PDC), para isto, siga os seguintespassos:

    # net join -W WORKGROUP -U root

    No comando acima, deve-se informar a senhacadastrada para o usurio root no smbpasswd doPDC. Se tudo estiver correto, voc receber umamensagem de "bem-vindo ao domnio".

    Para testar se o Winbind est funcionandoperfeitamente, execute os comandos abaixo:

    # wbinfo -tchecking the trust secret via RPC \

    calls succeeded

    Se voc recebeu uma mensagem como a acimacitada, as configuraes esto OK.

    # wbinfo -u

    O comando acima dever mostrar uma lista dosusurios cadastrados no SAMBA (PDC).

    # wbinfo -a WORKGROUP\mane%senhaplaintext password authentication succeededchallenge/response password \

    authentication succeeded

    O comando acima testa a autenticao do usurio nodomnio, que no neste caso, USURIO=mane,SENHA=senha e DOMNIO=WORKGROUP. Se vocreceber as mensagens como no exemplo, ento esttudo PERFEITO.

    Para o squid ter acesso s informaes do Winbind necessrio alterar o grupo do diretrio /var/lock/winbindd_privileged para o mesmoexplicitado no squid.conf emcache_effective_group, que, no exemplo aquicitado, o grupo nobody, assim:

    # chgrp nobody \/var/lock/winbindd_privileged

    4. Finalizando:

    Inicie o squid, sendo que a primeira vez que seinicia o squid, necessrio antes, criar os diretriode cache, para isto:

    # squid -z

    Criado os diretrios de cache, inicie o SQUID, com seguinte comando:

    # squid -D

    Em uma estao Windows, logue no domnio,configure o Internet Explorer para utilizar servidorProxy, feche o Browser. Ao abrir o browsernovamente ver que no ser solicitado senha paranavegar.

    Agora que tudo funcionou, lembre-se de incluir o nseu rc.local uma chamada para o squid. Afinal, vocno vai querer ter que reinicia-lo manualmente (oucorrer o risco de esquecer de inicia-lo) no prximo

    boot do seu server.No caso do samba, existe um pacote que vem noprprio slackware, lembre-se de remov-lo antes dinstalar o nosso, compilado com suporte ao winbind

    Pensando ainda em facilitar a sua vida, lembre-se defazer um pacote de ambos os programas, assim, seprecisar deles em uma prxima vez, os pacotes jestaro prontos.

    Frederico R. C. Costa

  • 8/6/2019 Slack Zine 9

    16/16

    O arquivo lista_para_backup.txt, contm a listade arquivos e/ou diretrios que iro compor obackup, como por exemplo:

    /home/postgres/backup//arquivos_rede/etc/passwd/var/log/

    A flag j utilizada nas instrues decriao/restaurao, compacta os dados com obzip2 antes da cpia para a fita.

    Voc tambm pode obter informaes sobre o cronpara agendar backups ou ainda utilizar ferramentasgrficas de backup, que na opinio de alguns, somais fceis de gerenciar. Sua escolha vai dependerdo perodo em que os backups sero realizados.

    Para habilitar um backup dirio, crie um arquivodentro do /etc/cron.daily chamadobackup_dirio, com o seguinte contedo:

    # Limpa a fitamt -f /dev/st0 erase

    # Faz backup do banco (por exemplo)sudo -u postgres \

    /usr/local/pgsql/bin/pg_dumpall > \~postgres/backup/backup_banco

    # Registrando a datadate > ~postgres/backup/backup_date.txt

    # Grava na fitatar -cjv -T \

    ~postgres/backup/backup.txt \-f /dev/st0

    Em seguida d ao arquivo permisso de execuocom o comando chmod. Os processos para backupsemanal, mensal, de hora em hora, etc so anlogose podero ser realizados facilmente, no deixem dedar uma olhada em:

    cron.dailycron.hourlycron.monthlycron.weekly

    Todos dentro do /etc. Um crontab -l mostra oshorrios e dias em que os scripts de cada umdesses diretrios so executados. Um man crond ecrontab tambm no fazem mal a ningum... :)

    Existem inmeras maneiras de se realizar esse tipode backup, bem como, um grande nmero deferramentas modo texto/grficas disponveis paraesse fim. Acredito que esse breve tutorial sejasuficiente e funcional para a maior parte dos casos.

    Clayton dos Santo