slack zine 11

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

Post on 08-Apr-2018

263 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/6/2019 Slack Zine 11

    1/12

    slackwarezineSlackware is a registered trademarkof Slackware Linux, Inc.

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

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

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

    30 de Setembro de 2005 Edio

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

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

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

    slack

    users

    ndice

    Configurando Tablet no XPiter PUNK

    2

    Configurando uma placa GigabitClayton

    4

    Como utilizar o Ipod no slackwareHerbert

    6

    Usando Palm Tungsten E2no slackwareClayton 7

    Controlando o PowerDownloadda TelefonicaHerbert 8

    Criptografia no SSHDiego Fiori

    10

    Editorial

    e novo no ltimo segundo! SlackwareZine,

    zine que vive perigosamente -;). Falando

    rio, esse foi um bimestre bastante

    animado, com o SlackwareShow e o

    anamento do slackware 10.2.

    Vou fazer um jab aqui e agradecer smpresas que apoiaram o evento: LinuxMall,

    Linux Magazine Brasil, TempoReal e a FIAP

    que cedeu o espao e infraestrutura para o

    vento.

    Vale a pena agradecer tambm a todos os

    palestrantes, sendo que alguns ainda

    pagaram a viagem do bolso e a todos que

    participaram do evento! Espero que todos

    enham gostado e muito. Pela gente da

    ine, ano que vem tem mais -;)

    alando dessa edio. Temos dois artigosde configurao de hadware (um de tablets

    outro tratando de uma placa Gigabit),

    dois para interfacear com dispositivos

    xternos (iPod e Palm) e um sobre o

    funcionamento do SSH.

    Meus agradecimentos aos autores e fao

    aqui um chamamento para que nossos

    eitores mandem mais e mais artigos. Pois

    com a participao de vocs que podemos

    r para frente. E tornar a publicao cada

    dia melhor.

    Boa Leitura!

    Piter PUNK

  • 8/6/2019 Slack Zine 11

    2/12

    Ok, esse no um hardware dos mais comuns,mas quem tem acesso a um deles vive encafifadosobre como faz-lo funcionar. Do que estoufalando? Estou falando de mesas digitalizadoras(ou tablets, para os ntimos).

    No meu trabalho temos dois desses, um da Genius(NewSketch 1212HRIII) e um da Wacom(Graphire3). E isso particularmente legal, j quecada um deles utiliza um driver e uma interface de

    conexo diferente -:). E ambos funcionaram noLinux!

    Nenhum dos configuradores (xorgcfg,xorgconfig, xorgsetup, etc...) d suporte atablets, o que bem estranho, j que o usurio detablets costuma ser um designer e no um tcnicoem computao. Ou seja, aparecer noconfigurador ia ser bem legal. A configuraobsica simples, veja abaixo:

    1. Genius NewSketch 1212HRIII

    Esse tablet ligado na porta serial, com aalimentao vindo pelo conector de teclado. Ele

    vem com uma caneta e dois "mouses".

    A primeira coisa a fazer conectar tanto a canetaquanto um dos "mouses" no tablet. Se for ligadocom os dois conectados, o tablet entra no modocompatvel com o "Summa" que exatamente oque queremos.

    O truque de conectar o "mouse" foi o primeiropara fazer com que esse tablet funcione. Osegundo um pouco mais complexo. Precisamos

    que o GPM faa a inicializao do tablet, antes doX. Para isso, edite o arquivo /etc/rc.d/rc.gpmtrocando seja l o que estiver depois do "-t" porsumma e o /dev/mouse para /dev/ttyS0 (outtyS1 se o seu tablet estiver na segunda serial).Por exemplo, onde est:

    /usr/sbin/gpm -m /dev/mouse -t imps2

    Troque para

    /usr/sbin/gpm -m /dev/ttyS0 -t summa

    Nada que uma substituio rpida no VI no faa.Com o rc.gpm editado, reinicie o GPM:

    # /etc/rc.d/rc.gpm restart

    Em seguida, abra o /etc/X11/xorg.conf, parafazermos a configurao propriamente dita (afinal,ningum quer um tablet para ficar copiando ecolando textos com o gpm).

    Na seo "Module", bem no comeo do arquivo,

    adicione:Load "summa"

    Logo aps a configurao do mouse, adicione maisuma seo do tipo "InputDevice" (dessa vez para o nosso tablet):

    Section "InputDevice"

    Identifier "EasyPen"

    Driver "summa"

    Option "Device" "/dev/ttyS0"

    Option "InputFashion" "Tablet"

    Option "Mode" "Absolute"

    Option "Name" "EasyPen"

    Option "Compatible" "True"

    Option "Cursor" "Stylus"

    Option "Protocol" "Auto"

    Option "SendCoreEvents" "on"

    Option "Vendor" "GENIUS"

    EndSection

    Lembre-se que onde est /dev/ttyS0 deve ficar aserial em que o seu tablet est conectado. ttyS0refere-se primeira serial e ttyS1 segunda.

    Agora, na seo "ServerLayout" inclua:

    InputDevice "EasyPen" "SendCoreEvents"

    Basta reiniciar o X e o seu tablet j estarfuncionando! -:) So possveis vrias outrasconfiguraes. Utilizar as opes "MinX", "MaxX","MinY" e "MaxY" para delimitar a rea em que sepode escrever na tablet so algumas dasmelhores, j que sem elas o mapeamento fica meioaliengena, de uma rea quadrada (o espao dotablet) para uma retngular (o monitor).

    ConfigurandoTablets no X

  • 8/6/2019 Slack Zine 11

    3/12

    2. Wacom Graphire3

    Esta uma placa bem mais nova, com bem maisrecursos e que usa interface USB. Para "sentir" adiferena, basta conectar e (se o seu X l o mouseatravs do /dev/input/mice) usar! Claro, comisso j d para ter uma idia da facilidade.Enquanto o tablet da Genius foi testado tanto nokernel 2.4.31 como no 2.6.13, este foi testadoapenas utilizando o 2.6 (aquele que se encontrano /extra do slackware 10.2).

    Antes de configurar o X, devemos apenas dar umaolhada no arquivo /proc/bus/input/devices oque interessa para a gente um trechosemelhante a este:

    I: Bus=0003 Vendor=056a Product=0014

    Version=0312

    N: Name="Wacom Graphire3 6x8"

    P: Phys=usb-0000:00:10.0-1/input0

    H: Handlers=mouse1 event2B: EV=f

    B: KEY=1c43 0 70000 0 0 0 0 0 0 0 0

    B: REL=100

    B: ABS=3000003

    Repare no "Name", ali sabemos que estamosfalando do tablet. Devem haver mais outros doisdispositivos nesse arquivo, o teclado e o seumouse. Na linha em que est "Handlers" existeuma informao importante, qual o evento queest associado a ao tablet: event2.

    Com o nome do evento em mos, vamos editar o /etc/X11/xorg.conf. bem simples e rpido.Devemos inserir trs novos InputDevices, deixe-os prximos da seo que trata do mouse, paramanter o /etc/X11/xorg.conf organizado.

    Section "InputDevice"

    Identifier "Mouse2"

    Driver "wacom"

    Option "Device" \

    "/dev/input/event2"

    Option "Type" "cursor"

    Option "USB" "on"

    Option "Vendor" "WACOM"EndSection

    Section "InputDevice"

    Identifier "Mouse3"

    Driver "wacom"

    Option "Device" \

    "/dev/input/event2"

    Option "Type" "stylus"

    Option "USB" "on"

    Option "Vendor" "WACOM"

    EndSection

    Section "InputDevice"

    Identifier "Mouse4"

    Driver "wacom"

    Option "Device"

    "/dev/input/event2"

    Option "Type" "eraser"

    Option "USB" "on"

    Option "Vendor" "WACOM"

    EndSection

    Perceba que indicamos na opo "Device" o /dev/input/event2, j que event2 o evento emque o tablet "fala".

    Depois de includas as trs novas entradas, vpara a seo ServerLayout e insira asseguintes linhas:

    InputDevice "Mouse2" "SendCoreEvents"

    InputDevice "Mouse3" "SendCoreEvents"

    InputDevice "Mouse4" "SendCoreEvents"

    Agora s iniciar o X e ir para o abrao. Srio.

    Existem utilitrios especficos para regular e fazero ajuste fino do seu tablet, voc pode encontr-losem http://linuxwacom.sourceforge.net/ ,

    junto com uma farta documentao. Boa Sorte ebons desenhos!

    Piter PUNK

    store.slackware.com

    slackware 10.2

  • 8/6/2019 Slack Zine 11

    4/12

    Recentemente, durante mais um processo de"evangelizao" realizado aqui onde trabalho, umamigo teve alguns problemas com um notebookToshiba M45 S311.

    Todo o hardware da mquina foi reconhecido, onico problema foi a placa Ethernet, umaSysKonnect SK-98xx Gigabit. As verses maisrecentes do kernel j possuem um mdulo paraplacas SysKonnect/Marvell denominado sk98lin,no entanto, o modelo em questo, uma MarvellTechnology Group Ltd. 88E8036 Fast

    Ethernet Controller (rev 10), no suportada pelo release mais atual do kernel, pelomenos no at o momento em que esse textoestava sendo redigido.

    Bem, felizmente, existe uma atualizao dessemdulo que permite a utilizao da placa emquesto, vamos ao trabalho:

    root@papaleguas:~$ wget \

    http://www.syskonnect.de/\

    syskonnect/support/driver/\

    zip/linux/install-8_23.tar.bz2

    Tambm existe uma documentao oficial,fornecida pelo fabricante em:

    http://www.syskonnect.de/syskonnect/\

    support/driver/readme/\

    linux/sk98lin.html

    E um guia de instalao em:

    http://www.syskonnect.de/syskonnect/\

    support/driver/readme/\

    linux/README.htm

    Segundo o fabricante, o patch compatvel com

    as sries 2.6 e 2.4 do kernel, esse ltimo a partirdo release 2.4.13.

    Instalando:

    root@papaleguas:~$ tar -xvjf \

    install-8_23.tar.bz2

    root@papaleguas:~$ cd DriverInstall

    root@papaleguas:~$ ln -s \

    /usr/src/linux_verso_do_kernel \

    /usr/src/linux

    root@papaleguas:~$ ./install.sh

    Vale lembrar que o comando:

    root@papaleguas:~$ ln -s \

    /usr/src/linux_verso_do_kernel \

    /usr/src/linux

    Cria um link simblico dos fontes de seu kernelatual no diretrio /usr/src/linux, permitindo aoscript funcionar de maneira genrica,independente da verso do kernel utilizada,desde que a mesma seja suportada.

    Configurando uma Placa Gigabit

    to the real nerds

    slackware

  • 8/6/2019 Slack Zine 11

    5/12

    Desse modo, os fontes de seu kernel soobrigatrios para esse processo, informao bvia,no entanto, no custa lembrar...

    Se tudo correu bem, voc ir receber a informaoque para utilizar sua placa de rede, basta um"modprobe sk98lin".

    Bem, isso pode ser ou no verdade. No caso donotebook em que realizei a instalao no foi osuficiente. Vejamos:

    root@papaleguas:~$ modprobe sk98lin

    root@papaleguas:~$ ifconfig eth0 up

    root@papaleguas:~$ ifconfig eth0 \

    192.168.0.5 netmask 255.255.255.0

    root@papaleguas:~$ route add \

    default gw 192.168.0.1

    root@papaleguas:~$ vim /etc/resolv.conf

    (Adicione os servidores DNS do seu provedor)

    root@papaleguas:~$ lynx

    Deveria funcionar, mas no funciona... :(

    O ifconfig retorna as informaes que deveriaretornar, um cat /proc/net/sk98lin/eth0tambm...

    Bem, ao que parece, nosso sistema no conseguese comunicar de fato com o dispositivo. Vamos

    ver:

    root@papaleguas:~$ dmesg | more

    PCI: Using ACPI for IRQ routing

    PCI: if you experience problems, try using

    option 'pci=noacpi' or even 'acpi=off'

    No custa nada tentar. Principalmente sabendoque o suporte a ACPI bem estranho. Paraeditar a configurao do LILO utilizando o VIm,digite:

    root@papaleguas:~$ vim /etc/lilo.conf

    Adicione a seguinte linha aps as configuraesreferentes ao seu kernel:

    append = "pci=noacpi"

    Atualize o LILO::

    root@papaleguas:~$ lilo

    Caso use o GRUB:

    root@papaleguas:~$ vim \

    /boot/grub/grub.conf

    Adicione o seguinte parmetro no final da linhareferente s configuraes do seu kernel:

    kernel /boot/vmlinuz-2.x.xx-x... \

    --> Adicione isso: pci=noacpi

    Reinicie a mquina...

    Repita os passos anteriores:

    root@papaleguas:~$ modprobe sk98lin

    root@papaleguas:~$ ifconfig eth0 up

    root@papaleguas:~$ ifconfig eth0 \

    192.168.0.5 netmask \

    255.255.255.0

    root@papaleguas:~$ route add \

    default gw 192.168.0.1

    E pra fechar com chave de ouro:

    root@papaleguas:~$ lynx \www.slackwarezine.com.br

    Navegue a vontade!!!;)

    Agora basta inserir os parmetros em seu /etc/rc.d/rc.inet1.conf manualmente ou vianetconfig e pronto, sua rede ir funcionarautomaticamente. Lembre ( claro) de colocar omdulo para ser carregado no /etc/rc.d/rc.modules.

    Clayton

    A mais antiga das distrosem sua mais nova verso.10.2

  • 8/6/2019 Slack Zine 11

    6/12

    iPod um player porttil de audiodigital projetado pela Apple.Todos os modelos recentes doiPod oferecem suporte a portasFireWire, USB 2.0 e USB 1.1.

    Os dados so armazenados em umdisco rgido interno formatadocomo FAT32, portanto utilizar o

    iPod noslackware

    bem simples,basta montarmos o dispositivo emanipul-lo atravs de qualquersoftware j existente, como ogtkpod ou o amaroK

    Ao plugarmos o cabo USB do iPodo Kernel (no meu caso o 2.4.29)detecta o dispositivo econsequentemente o respectivomdulo (usb-storage) carregado:

    # dmesg | grep -i usbhub.c: new USB device 00:1d.7-1, \

    assigned address 5

    USB Mass Storage device found at 5

    Caso isto no ocorra faa o seguinte:

    # insmod usb-storage

    Using /lib/modules/2.4.29/\

    kernel/drivers/\

    usb/storage/usb-storage.o.gz

    Agora basta checar qual partio no respectivo

    dispositivo de disco contm os dados do iPod:# fdisk -l /dev/sda | grep sda

    Disk /dev/sda: 4095 MB, 4095737856 bytes

    /dev/sda1 * 1 5 40131 0 Empty

    /dev/sda2 * 6 497 3951990 b W95 FAT32

    Ou seja, o dispositivo em questo utiliza o /dev/sda2 (o iPod em questo o mini, de 4G).Finalizando, basta mont-lo e acess-lo atravs deum dos softwares citados:

    # mkdir /mnt/ipod

    # mount -t vfat /dev/sda2 /mnt/ipod

    # umount /mnt/ipod

    Podemos tambm adicionar uma entrada ao /etc/fstab para qualquer usurio ser capaz deutiliz-lo:

    $ cat /etc/fstab | grep ipod

    /dev/sda2 /mnt/ipod vfat noauto,user 0 0

    Para checar se tudo est funcionando comoprevisto:

    $ mount /mnt/ipod

    $ mount | grep -i ipod

    /dev/sda2 on /mnt/ipod type vfat \

    (rw,noexec,nosuid,nodev,user=herbert)

    Agora basta usar o seu player de som favoritopara escutar as msicas do seu iPod, como noscreenshot acima (em que o AmaroK est tocandoe transferindo msicas direto para o iPod).

    Herbert

    Como utilizar o

    iPod no slackware

  • 8/6/2019 Slack Zine 11

    7/12

    Recentemente adquiri um Palm Tungsten E2 dapalmOne e como de costume, todos os softwaresque acompanham o produto s possuem versopara "aquele" "Sistema Operacional" (No pudeevitar as aspas no "Sistema Operacional"). ;)

    Bem, felizmente, a comunidade no depende dosfabricantes para utilizar seus hardwares emSistemas Operacionais livres, desse modo, existem

    vrias alternativas existentes, como por exemplo:

    kpilot (disponvel nos CD's de instalao doslackware);

    jpilot (disponvel em:http://www.jpilot.org/download.html).

    Para fazer com que os modelos mais novos,baseados em conexo USB, possam sersincronizados utilizando o kpilot/jpilot, sonecessrios alguns passos. Vamos ao trabalho!!!

    Primeiro, devemos "subir" dois mdulos, ousbserial e o visor (presumindo que o hotplugno os levantou):

    root@papaleguas:~# modprobe usbserial

    root@papaleguas:~# modprobe visor

    O mdulo usbserial prov conexo entre umdispositivo USB e o micro, provendo transfernciade dados de maneira semelhante a uma conexoserial.

    J o mdulo visor, referente a dispositivospalmOne, Sony Clie e Handspring Visor. Tambmexistem mdulos para Compaq iPAQ, HP Jornada eCasio EM500 Driver, entre outros. Verifique se o

    seu kernel possui suporte ao seu hardware naseo USB Support/USB Serial Convertersupport.

    Vejamos quais so os mdulos USB que estoativos:

    root@papaleguas:~# lsmod | grep usb

    usbserial 21404 0 [visor]

    usb-storage 65216 0 \

    (unused)

    usb-ohci 19496 0 \

    (unused)

    usbcore 62508 1 \

    [visor usbserial usb-storage usb-ohci

    ehci-hcd]

    Tudo certo!!!

    Agora vamos remover o link simblico que okpilot cria e criar um novo:

    root@papaleguas:~# rm /dev/pilot

    root@papaleguas:~# ln -s /dev/ttyUSB1 \

    /dev/pilot

    Vejamos se est tudo ok:

    root@papaleguas:~# ls -la /dev/pilot

    lrwxrwxrwx 1 root root 7 2005-09-29 \

    21:13 /dev/pilot -> ttyUSB1

    Em seguida, conecte seu Palm na porta USB,aperte o boto de sincronismo do cabo de conexoe abra o kpilot.

    Em um terminal digite:

    root@papaleguas:~# lsusbBus 003 Device 001: ID 0000:0000

    Bus 002 Device 001: ID 0000:0000

    Bus 002 Device 013: ID 0830:0061 \

    Palm, Inc.

    Bus 001 Device 001: ID 0000:0000

    Bus 001 Device 002: ID 0f2d:9308 \

    ViPower, Inc.

    Tenha certeza que o seu device est "linkado" coma porta USB correta.

    Agora s esperar o backup terminar... 8^)

    At o prximo artigo,

    Clayton

    Usando o Palm Tungsten E2

    noslackware

    slackware 10.2firefox, thunderbird, subversion, cyrus-sasl... e muito mais!

  • 8/6/2019 Slack Zine 11

    8/12

    Power Download um servio do Speedy daTelefonica (aproximadamente R$35,00 mensais)que "turbina" a conexo do Speedy durante anoite e finais de semana. Por exemplo, meuSpeedy o 600 (agora 750), ao ativar o PowerDownload (aps as 20hs e finais de semana) omesmo passa a funcionar como se fosse umSpeedy de 1Mbit

    Como era de se esperar a Telefonica sempredificulta as nossas vidas e este servio deve serativado manualmente (todos os dias) peloSpeedyzone (a interface web deles

    http://www.speedyzone). Curiosamente, mesmoao ativarmos o servio religiosamente (todo santodia) s 20hs, muitas vezes ele deixa de funcionardo nada durante noite, nos obrigando areativarmos o servio sempre que isso acontece.

    Para resolver este problema criei um script queautomatiza todo este processo, ou seja, ativaautomaticamente o servio (todos os dias) por

    volta das 20hs e verifica de hora em hora se omesmo est realmente funcionando, caso negativo(parou de funcionar misteriosamente) o scriptativa novamente o servio.

    Uma outra vantagem deste esquema termoscontrole sobre o que estamos pagando (pelos logsgerados).

    O script bem simples:

    #!/bin/bash

    #

    # /usr/libexec/pdownload

    # Herbert Alexander Faleiros

    #

    #

    # Insira um usurio com UID alta (no use

    # o root). Esta uma medida de segurana

    # adicional, ou seja, evita que o root

    # acesse a net desnecessariamente.

    USER=

    if [ "${USER}" == "" ]; then

    clear && echo "Configure o \

    script antes de execut-lo!"

    exit 1

    fi

    # 1024 = 1M

    # Speedy 600/750 => Power Download: 1M.

    SPEED=1024

    BASE="http://www.speedyzone/\

    speedywebapp/servlet"

    EXEC="${BASE}/\

    StartStopService?servicio\

    =speedynight${SPEED}&accion"

    # Exibe o status atual do servio.

    function status() {

    echo -n "Power Download \

    ${SPEED} \

    ($(date '+%Y-%m-%d %H:%M:%S')): "

    su ${USER} -c \

    "lynx --dump \

    ${BASE}/activacionServicios " | \

    grep -q green.gif && \echo ativado || echo desativado

    }

    # wget - opes utilizadas (no alterar).

    OPTS="--quiet --spider"

    START=activar

    STOP=desactivar

    # Ativa o Power Download.

    function start() {

    su ${USER} -c \

    "wget \"${OPTS} ${EXEC}=${START}\""

    . $0 status

    }

    # Desativa o Power Download.

    function stop() {

    su ${USER} -c \

    "wget \"${OPTS} ${EXEC}=${STOP}\""

    . $0 status

    }

    case $1 in

    status)

    eval $1

    ;;start)

    eval $1

    ;;

    stop)

    eval $1

    ;;

    *)

    echo "Usage: $0 {start|stop|status}"

    exit 1

    ;;

    esac

    Controlando o PowerDownload da Telefnica

  • 8/6/2019 Slack Zine 11

    9/12

    Feito isto criamos um wrapper para evitarmos ainsero dos parmetros do script no crontab.

    #!/bin/bash

    #

    # /usr/bin/pdownload

    # Herbert Alexander Faleiros

    #

    #

    # Script original.

    EXEC=/usr/libexec/pdownload

    # Verifica o status do servio, caso o

    # Power Download esteja desativado, ativa

    # o servio.

    (${EXEC} status | \

    grep -q desativado && \

    ${EXEC} start) &>/dev/null

    # Verifica novamente o status e grava o

    # resultado no arquivo de log# especificado pelas regras no cron.

    . ${EXEC} status

    Aps os scripts serem criados e alocadoscorretamente nos locais especificados, bastainserirmos as seguintes regras no crontab:

    # segunda sexta, de hora em hora,

    # das 20:05 7:05

    5 20-7 * * mon-fri pdownload >> \

    /var/log/messages 2>&1

    # sbado e domingo, de hora em hora, o

    # dia todo5 * * * sat-sun pdownload >> \

    /var/log/messages 2>&1

    Feito isto nos certificamos de que aspermisses/donos dos dois scripts estocorretamente configurados.

    # chown 0.bin /usr/bin/pdownload

    # chown 0.0 /usr/libexec/pdownload

    # chmod 755 /usr/{bin,libexec}/pdownload

    Exemplo dos logs gerados:

    # cat /var/log/messages | \

    grep -i download

    Power Download 1024 (2005-09-11 \

    13:05:01): ativado

    Power Download 1024 (2005-09-11 \

    14:05:03): ativado

    Com isto evitamos (re)ativarmos o serviomanualmente e passamos a ter certo grau decontrole sobre o que estamos pagando. :)

    Herbert

    Autores

    Clayton Eduardo dos Santos, Trabalha comLinux desde 2003 e com Slackware desde2004. Atualmente desenvolve seu projeto depesquisa de Doutorado no Departamento de

    Engenharia Eltrica na USP de So Carlos e um dos administradores do slackpoint, portal100% voltado comunidade slackwarebrasileira.

    Diego Fiori de Carvalho, aluno doBacharelado em Informtica do ICMC-USP,SoCarlos S.P.,utiliza Linux desde 2002,desenvolveu um sistema de multimdiainterativa para Treinamento em Linux, temgrande interesse por desenvolvimentode aplicaes grficas e atualmente desenvolvedor da empresa 3WT de So

    Carlos.

    Herbert Alexander Faleiros (akaratmmmam), programador, graduando emFsica pela UFSCar. Seu primeiro contato como Slackware ocorreu em 2000. Atualmentetrabalha desenvolvendo solues em Java paraservidores de aplicaes, nas horas vagasescreve artigos sobre criptografia e buildscripts para o Slackware.

    Piter PUNK, mantenedor e principaldesenvolvedor do slackpkg. Possui experincia

    com UNIX e Linux desde '96 tendo escritodiversos artigos em revistas da rea,atualmente, trabalha como desenvolvedor de

    jogos na 3WT Corporation

  • 8/6/2019 Slack Zine 11

    10/12

    Criptografia no SSH (Secure Shell)

    Secure Shell um programa/protocolo paraacesso remoto de computadores, utilizando porpadro a porta 22 de sua mquina. Originalmentessh umproduto comercial, mas graas a nosso amigos doOpenBSD ( www.openbsd.org ), foi criado uma

    verso livre, chamada openssh, utilizado pelosnossos Linux amplamente.

    O SSH difere-se principalmente, do Telnet(programa de acesso remoto muito utilizado, hpouco tempo atrs), por ter uso de criptografia naseo, corrigindo possveis problemas de"sniffer"(escuta do canal), onde a senha dousurio passava sem nenhum tipo de criptografiano modo plain(texto puro), possibilitando a suacaptura por possveis invasores.

    Outra vantagem do SSH est na implementaode trocas de chave pblicas e privadas comalgoritmo de assinatura digital para autenticaoentre cliente e servidor.

    Como funciona a criptografia no SSH?

    Bom, para responder esta pergunta vamosprimeiro entender os conceitos.

    A criptografia um ramo da matemtica aplicadaque pretende abordar a segurana na cifragem demensagens sendo estas de qualquer tipo. Outradefinio mais amigvel, diz que entendidocomo o estudo dos princpios e tcnicas pelasquais as informaes podem ser transformadas,dificultando a leitura por pessoas no autorizadas.

    Primeiramente, interessante saber como umalgoritmo de criptografia considerado seguro.

    Antigamente, at o fim da dcada e, tem-semudado

    de 70, todos os algoritmos criptogrficos eramsecretos, guardados seus segredos funcionais e

    implementacionais a sete chaves. Maisrecentemente este conceito de resguardarinformaes e os algoritmos so publicadosmundialmente emconferncias como a CRYPTO daInternational Association for Cryptologic Research(www.iacr.org). Este intuito de disseminao doestudo de algoritmos criptogrficos, objetiva aanlise de pesquisadores especializados queconheam mtodos sofisticados para atac-lo.Caso seja negativo a maioria dos resultados deataques, a sociedade aceita o algoritmo comoseguro.

    Neste artigo vamos entender os algoritmos decriptografia usados no SSH. O protocolo 2.0 doSSH utiliza o algoritmo DSA(Digital Signature

    Algorithm) baseado no RSA para autenticao desenhas. Para autenticao de mensagens eleutiliza uma criptografia com hash, usando SHA eMD5. E no acabou....ainda tem criptografia daseo utilizando o algoritmo BlowFish, DES,TwoFish.. Calma....Vamos com Calma...tudo serdetalhado neste artigo a seguir...

    Chaves Assimtricas

    O RSA foi publicado em 1978 e seus autores so:Ron Rivest, Adi Shamir e Len Adleman. Estealgoritmo baseado na dificuldade computacionalde fatorar um nmero inteiro em primos. Eleutiliza duas chaves diferentes para criptografia,uma para criptografar e outra paradescriptografar, introduzindo o conceito de chavepblica e privada. Tendo as duas chaves em mos,uma mensagem que foi criptografada com uma, spode ser descriptografada com outra. Maisespecificamente, s pode ser descriptografadacom a chave privada uma mensagem que foicriptografada com sua respectiva chave pblica.

    Criptografia no SSH

  • 8/6/2019 Slack Zine 11

    11/12

    Como sugerem os nomes, a chave pblica podeser distribuda a vontade, enquanto que a privadadeve ser guardada e protegida. Este processochama-se troca de chaves assimtricas.

    Existe uma limitao neste processo, pois odesempenho lento para criao destas chaves atodo momento, por este motivo que elas so

    geradas somente quando necessrio earmazenadas no arquivo /home/YOUR_USER/.ssh/know_hosts

    A primeira vez que uma mquina conecta-se aoutra, por meio do protocolo ssh, o cliente recebea chave pblica da mquina servidor e pede aconfirmao da conexo. Desse modo, a mquinaservidor adicionada tabela do arquivoknow_hosts(ns conhecidos) e pedida a senha dousurio, para estabelecer a conexo.

    Nas prximas conexes s ser solicitada a senhado usurio, pois a chave pblica do host remoto jest guardada na mquina local.

    Assinatura Digital

    O SHA(Secure Hash Algorithm) umalgoritmohash do tipo Message Digest, desenvolvido pelaNSA Security. Parecido com o famoso MD5, oSHA transforma uma mensagem em uma string detamanho fixo de 128 bits. Este resultado d-se onome de hash(embaralhamento), o qual tem 2propriedades:

    1. Praticamente impossvel encontrar duasmensagens que resultam no mesmo hash.

    Pois o valor obtido atravs de vrios clculoscontendo operaes lgicas(XOR, OR, AND),sempre visando atenuar prximo do limite zero ascolises da funo de espalhamento, o estado daarte em criptografia de apenas uma via, ou seja,uma vez criptografado voc no tem adescriptografia.

    2. Se a comparao entre dois hashs for positiva,temos a garantia da procedncia da mensagem.

    Com estas propriedades o hash serve parafornecer uma espcie de identificao nica damensagem.

    Faa um teste, vamos utilizar o MD5 para isto..crie um arquivo texto simples chamado teste como seguinte contedo: slackware. Logo aps, crieoutro arquivo simples, chamado teste1 com oseguinte contedo: slackwarezine.

    Vamos utilizar o comando md5sum, para gerar umhash de 128 bits dos arquivos, como descrito aseguir:

    diego@osiris:~$ md5sum teste

    0c775fcbacc4054457ace755b12e06ab teste

    diego@osiris:~$ md5sum teste1

    58df1dcb93b788d5f954d62255870aeb teste1

    Perceba que os valores hash gerados, sototalmente diferentes para palavras to parecidascomo slackware e slackwarezine. Criptografiada seo (algoritmos de chave simtrica).

    Alm dos algoritmos de chaves assimtricas eassinatura digital, o ssh tambm utilizacriptografia da seo atravs de algoitmos dechave simtrica. Neste caso vrios algoritmos sorecorridos para esta finalidade, entre eles,podemos citar: DES, 3DES, BlowFish, TwoFish.

    Para exemplificar, relataremos neste artigo oalgoritmo Blowfish. Este algoritmo foidesenvolvido por Bruce Schneier em 1993, emuitos dizem que uma verso melhorada do algoritmo DES. Eletem processamento mais rpido que algoritmossimilares de chave secreta como DES(DataEncyption Standard) e IDEA(International DataEncryption Algorithm).

    Blowfish um algoritmo de cifragem simtrica deblocos que pode utilizar chaves de 32 a 448 bits,no caso do ssh utilizado 128 bits. Este algorimto utilizado para encriptar o contedo que trafegapela rede entre as mquinas que comunicam viassh.

    Assinatura Digital + \

    Chaves assimtricas + \

    Criptografia da seo = \

    SSHCrypto-Security

    Para exemplificar o processo de assinatura digitalcom autenticao comchaves assimtricas do SSHe criptografia da seo, ilustrado todo esteprocesso em uma figura. Utilizaremos 2personagens hipotticos para ilustrar o processode autenticao e verificao da procedncia doSSH e comunicao.

    Na figura, em 1, Jos D. conecta-se na mquina deLus Incio via ssh e recebe a chave pblica(RSA).Em 2, podemos verificar que a mquina de Jos D.gera um nmero aleatrio com hash que sercriptografado junto com seu login e senha eenviado para a mquina de Lus Incio.

    A mquina de Lus Incio descriptografa ocontedo com a chave privada(RSA) e verificaconsistncia. Caso positivo Lus Incio verificaque a procedncia est correta, pois foi geradapor Jos D. e que no foi adulterada durante a

    transmisso.

  • 8/6/2019 Slack Zine 11

    12/12

    Caso contrrio 3 possibilidades podem terocorrido:

    1. Mensagem corrompida;

    2. No foi assinado por Lus Incio;

    3. Foi adulterada no percurso.

    Aps o processo 2 da figura ter ocorrido comsucesso, a conexo pode ser estabelecida comgarantia de privacidade. Na figura, verificamosem 3, que uma vez estabelecida a conexo comconfiabilidade em duas vias, a seo criptografada, com algoritmo Blowfish, 3DES,etc...

    Verifique voc mesmo.

    Para verificar passo a passo a conexo emmquinas remotas com SSH e o chamado de seusalgoritmos de criptografia, utilize o parmetro -v( verbose):

    # ssh -v [email protected]

    OpenSSH_3.9p1, OpenSSL 0.9.7d 17 Mar 2004

    debug1: Reading configuration data \

    /etc/ssh/ssh_config

    debug1: Connecting to \

    smac.lcad.icmc.usp.br \

    [143.107.232.169] port 22.

    debug1: Connection established.

    debug1: identity file \

    /home/dfiori/.ssh/identity type -1

    debug1: identity file \

    /home/dfiori/.ssh/id_rsa type -1

    debug1: identity file \

    /home/dfiori/.ssh/id_dsa type -1

    debug1: Remote protocol version 2.0,\remote software version \

    OpenSSH_3.7.1p2

    debug1: match: OpenSSH_3.7.1p2 \

    pat OpenSSH*

    debug1: Enabling compatibility mode \

    for protocol 2.0

    debug1: Authentications that can \

    continue: publickey,password,\

    keyboard-interactive

    debug1: Local version string \

    SSH-2.0-OpenSSH_3.9p1

    debug1: SSH2_MSG_KEXINIT sent debug1: \

    SSH2_MSG_KEXINIT received

    debug1: kex: server->client \aes128-cbc hmac-md5 none \

    debug1: kex: client->server \

    aes128-cbc hmac-md5 none

    debug1: SSH2_MSG_KEX_DH_GEX_REQUEST\

    (1024