treinamento avançado em linux

Upload: jeffersonalves

Post on 06-Apr-2018

248 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/3/2019 Treinamento avanado em linux

    1/62

    TREINAMENTOAVANADO EMLINUX

    Autor:Bruno Mortgua Ribeiro

  • 8/3/2019 Treinamento avanado em linux

    2/62

    APOSTILA TREINAMENTO AVANADO EM LINUX

    V1.5

    Instrutor: Bruno Mortgua Ribeiro

  • 8/3/2019 Treinamento avanado em linux

    3/62

    Contedo do Curso:

    -ChangeLog v1.5-Introduo-Objetivos-Listas de Discusses de Bauru-Recapitulando o mdulo Bsico

    oHistria do Linux (no ser revisado)oInstalao do Conectiva, do Slackware, via Rede (no ser revisado)oComandos Bsicos do Sistema

    Man

    Projeto LDP, help, info (no ser revisado)

    LogoutShutdown -r now

    SuLs (-la)

    Cd (deslocamento relativo x absoluto)

    Cp

    Mv

    Alias

    Clear

    Mkdir (-p)

    Rmdir (-p)

    Rm (-rf)

    Who (w, who is god, whoami)

    Df

    Free

    Cat /proc/cpuinfo

    Setterm

    Tput

    Uptime

    Arquivos da Inicializao

    Variveis

    Varivel PS1

    Arquivo /etc/motd

    Arquivo /etc/issue e /etc/issue.net

    Ps (aux)

    Kill

    Killall

    Sinais (1, 9, 15)

    Touch

    Find

    Locate

    Top

  • 8/3/2019 Treinamento avanado em linux

    4/62

    Vi (:w :x :q :q! /)

    Background (&)

    Jobs

    Fg

    Ln (-s)

    Chmod (ugo +rwx)

    Umask

    Chown (user:group)

    Chgrp

    Caracteres Especiais (~,[],*,?)

    Home do Usurio

    Adicionando um Grupo

    Adicionando um Usurio

    Senhas SHADOWArquivo /etc/passwd

    Arquivo /etc/group

    Porque saber editar manualmente usurios e grupos?

    oCaractersticas da Shell BASHoShell Script

    #!/bin/bash

    If [ condicao ] then fi

    For variavel in lista do done

    Script Adiciona 1000 usurios

    Script Abrir Interface que Escolher

    -Aprofundando-se em SHELL ScriptoCase

    oReescrevendo o script de abrir interface usando o case

    oWhile

    oO comando CUT

    oEscrevendo um script para acertar as permisses do HOME dos usurios

    oPara aprofundar: Script LogRotate.sh

    -Utilizando o VIoEditando um texto

    oIndo para a ltima linha

    oIndo para a primeira linha

    oIndo para a ensima linha

    oRemovendo uma linha

    oRemovendo a partir do cursor

    oColocando nmero nas linhas

    oSubstituindo linhas

    oSalvando

    oSaindo e salvando

    oSaindo sem salvar

    oSalvando para outro arquivo

    oSaindo e salvando em outro arquivo

  • 8/3/2019 Treinamento avanado em linux

    5/62

    oForar salvao

    oInserir linha abaixo do cursor

    oInserir linha acima do cursor

    oCopiar e colar linhas

    -Entendendo o sistema de arquivos do LinuxoEstrutura de Diretrios

    oMOUNT

    oFSTAB

    oFDISK

    oFSCKoFDFORMAT

    oMKFS

    oMKSWAP

    -Configurao e Instalao do KerneloEntendendo o conceito de mdulos

    oGerenciando Mdulos

    oAdicionando Suporte a um Novo Hardware

    oPersonalizando o kernel

    -Ferramentas Bsicas de RedeoIfconfig

    oRouteoNetstat

    oPing

    oTraceroute

    oNslookup

    oEditando os arquivos de configurao manualmente

    -Compactadores e Empacotadores de ArquivosoGzip

    oZip

    oBzip

    o

    CompressoTar

    -Agendamento de TarefasoCron

    oAt

    -Entendendo o Super Daemon Inetdo/etc/inetd.conf

    o/etc/hosts.allow

    o/etc/hosts.deny

    -Configurando o boot da mquina: /etc/lilo.conf-Instalao e compilao de aplicativos

  • 8/3/2019 Treinamento avanado em linux

    6/62

    oO gcc

    oO comando ./configure

    oMdulos do perl

    oO comando make

    oO comando make install

    oQuando ocorrem os problemas...

    oGerenciamento de pacotes RPMInstalando

    Removendo

    AtualizandoPesquisando

    Erros Comuns

    -Configurando o NFSoEscolhendo os diretrios a compartilhar

    oAtualizando tabela de arquivos compartilhados

    oPortmap

    oAcionando o Portmap

    oAcionando o NFS

    oVerificando arquivos compartilhados pela mquina

    oVerificando clientes que esto acessando os arquivos compartilhados

    -SAMBAoEntendendo o Funcionamento do NetBIOS

    oEntendendo o Funcionamento do Samba

    oConfigurando um servidor SAMBA

    oCompartilhando Diretrios atravs do SAMBA

    oAcessando arquivos compartilhados atravs do Linux

    oFazendo uma mquina Windows se autenticar no Linux

    -Configurando o SSHDoRetirando a compatibilidade com a Verso 1

    oRetirando o uso da diretiva UseLogin

    o

    Aumentando a chave criptogrficaoPermitindo ao root se logar remotamente

    -Configurando o ProFTPdoHabilitando usurio anonymous

    oMudando informaes do servidor

    oDiretivas de configurao

    -Configurando o BINDoEntendendo o DNS

    oConfigurando uma Zona de Exemplo

    oConfigurando uma Zona Reversa de Exemplo

    oOs arquivos de Zonas

  • 8/3/2019 Treinamento avanado em linux

    7/62

    -Configurando o ApacheoSobre

    oPorque utiliza-lo

    oExemplo de configurao

    -Configurando o PostFixoEntendendo o servidor de Emails

    oPorque utilizar postfix

    oDiretivas de configurao

    -SeguranaoQuesitos para um sistema seguro

    oOnde se atualizar

    oMontando um firewall linuxEntendendo o iptables

    Regras de entrada, sada e passagem de pacotesTabelas do iptables

    Proibindo protocolos

    Proibindo portas e tipos de mensagens

    Proibindo flags TCP

    Proibindo estados de pacotes

    Limitando as conexes

    ChangeLog v1.5As mudanas da verso 1.0 para a verso 1.5 so:-Corrigido erro pequeno na parte de While-Includo o comando tput-Includo o comando setterm-Includo o desafio logRotate.sh-Includa a parte de NFS-Includa a parte sobre SAMBA - 17/06/2002-Adicionada a seo de SEGURANA - 17/06/2002-Mudado um pouco o comando TOP - 17/06/2002

    -Corrigido pequeno erro na parte de samba referente a valid users, queantes estava como @usuario o que na verdade poderia ser @grupo ousimplesmente usuario - 19/06/2002

    -Corrigido pequena falha na parte sobre man, j que ficava um nmero 9 auto-colocado pelo OpenOffice como continuao da ordenao

    -Corrigidos erros de acentuao - 19/06/2002-Faltou a opo count=8139 no comando DD - 19/06/2002-Sria incongruncia na OBS do comando MOUNT foi corrigida, j que / um

    ponto de montagem de uma partio de nosso HD e no nosso HD como foi dito- 19/06/2002

    -Corrigidos erros de escrita - 19/06/2002

  • 8/3/2019 Treinamento avanado em linux

    8/62

    -Corrigido problema srio no comando MKFS onde se dizia que o mkfs DEVERIAsuportar o sistema de arquivos a ser montado, mas quem realmente devesuportar este sistema o kernel - 19/06/2002

    -Adicionada a seo: Arquivo /etc/group - 19/06/2002-Adicionada a seo: Porque saber editar manualmente usurios e grupos? -

    19/06/2002-Disponibilizada verses em .SDW e .TXT do documento - 19/06/2002-Reescrita e melhorada um pouco a parte sobre SAMBA (corrigido pequeno detalhe

    no mapeamento de diretrios via script de logon, porque utilizava-se z:, mas estediretrio utilizado pelo windows como um temporrio do netlogon e istocausava problemas) - 21/06/2002

    -Reescrita a parte sobre FSTAB para correo de alguns erros - 21/06/2002

    INTRODUO

    muito importante a constante atualizao tecnolgica, principalmente nos diasatuais nos quais a internet se tornou no s uma realidade global, como tambm umanecessidade empresarial.

    As instituies de ensino, sempre pioneiras no gnero UNIX e INTERNET, nodevem e no podem ficar para trs nesta nova onda global: o LINUX.

    Sistema operacional que surgiu e se difundiu com o apoio de UNIVERSIDADES, oLINUX vem crescendo esplendorosamente e se mostrando um sistema operacionalaltamente confivel e robusto, satisfazendo todas as necessidades do mercado, com

    exceo da falta de profissionais especficos para ele.Devido a isto, venho com esta apostila e este treinamento (a apostila ser distribuda

    gratuitamente na internet e eu ofereo o treinamento para qualquer empresa ou instituioque desejar) tentar reprimir a falta de profissionais e o mais importante, divulgar ainda maiso LINUX.

    OBJETIVOS

    Os objetivos deste treinamento no so os de tornar seus adeptos especialistasavanados no sistema operacional, e sim usurios e administradores avanados.Isto quer dizer que eles dominaram algumas caractersticas do sistema, mas devem

    estudar e se aprofundar muito para se tornarem especialistas e profissionais no mesmo.Espero converter os usurios que leiam e faam o treinamento e mostrar-lhes quo

    fcil entrar no mundo LINUX.Percebam que a apostila tcnica, no sendo altamente instrutiva isoladamente, por

    isso, faam os exemplos desta e vejam os manuais para maiores entendimentos. Ela apenas um complemento do treinamento completo, mas pode facilmente se tornar um cursoatravs de um documento para as pessoas mais esforadas e interessadas.

  • 8/3/2019 Treinamento avanado em linux

    9/62

    NO ficarei preso a uma nica distribuio, mas gostaria de lembrar quepessoalmente eu utilizo o FwSec Linux, um Slackware Linux modificado e com asegurana reimplementada pela minha empresa (Firewalls Security), portanto, todos osexemplos mostrados sero em Conectiva Linux (no qual sou certificado) e SlackwareLinux.

    Tambm NO mencionarei o uso de Configuradores Grficos (tais comoLinuxConf e WebMin).

    Os exemplos aqui apresentados so EXEMPLOS, embora as configuraesfuncionem podem no ser as ideais para um servidor e devem ser revistas e acrescentadas.

    Esta apostila PODE e DEVE ser distribuda livremente, desde que no seja alterada.Esta pode ser encontrada online em .

    Listas de Discusses de Bauru

    Estou tentando formular algumas listas para discusso sobre o sistema operacionalLinux em Bauru.

    Atualmente, existem as seguintes listas criadas:senacctitcpdump

    segurancalinux

    Para se cadastrar acesse:www.firewalls.com.br/mailman/listinfo/nomeDaLista

    Coloque seu email e uma senha e voc receber uma mensagem com instrues.O objetivo destas listas ter discusses de qualidade, portanto sero monitoradas e

    assuntos infundados sero proibidos.

    Recapitulando o mdulo Bsico

    - ManComando que nos mostra o manual de um outro comando.Uso: man [seo] comandoObserve que seo opcional, mas pode ser:

    1 2 3 4

  • 8/3/2019 Treinamento avanado em linux

    10/62

    5 6 7 8

    Exemplo de uso:man 1 lsUtilize /palavra para procurar e q para sair.

    - LogoutFecha a shell do usurio. Este comando utilizado quando se termina sua

    sesso ou para se trocar de usurio.

    - Shutdown -r nowComando utilizado para reiniciar a mquina. Possui alguns similares:

    RebootInit 6Ctrl + Alt + Del

    Existe tambm o shutdown -h now que desliga a mquina. Seus similares:Halt

    Init 0

    - SuUtilizado para se trocar de usurio sem efetuar logout. Muito comum em

    acessos via rede, j que via rede por default o root no pode se logar.Usa-se tambm su -c "comando a executar" para se executar um comando

    com poderes de root e depois retornar. Obviamente ser pedida uma senha.Uso do su:

    su nomeDoUsuarioAseVirar

    - LsComando que serve para listar arquivos. Suas opes mais utilizadas so

    -la, onde o -l significa para listar as permisses (inclusive) e o -a para listar todos osarquivos (lembrando que para o linux arquivos comeados com . so ocultos).

    OBS: O Conectiva Linux possui um alias chamado l para o comando ls -la,use-o e caso a sua distribuio no contenha tal alias, crie-o. Veja mais adiante como faz-lo.

  • 8/3/2019 Treinamento avanado em linux

    11/62

    - Cd (deslocamento relativo x absoluto)Comando para mudar-se de diretrio. O deslocamento absoluto se tem

    quando utilizamos a raiz (/) para indicarmos para onde queremos ir. Por exemplo,imaginemos que estamos no diretrio /usr/src/linux e desejamos ir para o diretrio/usr/src/teste. Temos duas opes, a seguir:

    cd /usr/src/teste Deslocamento absoluto, observe o uso do / no incio dodiretrio para o qual queremos ir

    cd ../teste Deslocamento relativo, perceba que se estivssemos em umoutro diretrio (/usr) por exemplo, no iramos cair onde queremos. Da a conveno de"relativo".

    - Cp

    Copia arquivos. Use: cp arquivoASerCopiado novoArquivoOpes interessantes:-i Pede confirmao antes de substituir um arquivo existente-R Cpia recursiva. Serve para copiar diretrios e seu contedo.

    - MvMove arquivos. Use-o tambm para renomear.Uso: mv arquivo novaLocalizacao/

    mv arquivo novoNomeRecomendado:

    -i Confirma antes de substituir um arquivo existente.

    OBS: No Conectiva Linux existe um alias tanto para o comando cp como para o mvcom a opo -i.

    - AliasCria um apelido para um comando. Tem precedncia sobre o comando, ou

    seja, pode-se criar um alias do tipo: alias ls="ls -la". Toda vez que digitarmos ls naverdade ele executar ls -la.

    - ClearLimpa a tela. Recomenda-se a criao de um alias chamado c para estecomando.

    - Mkdir (-p)Comando para a criao de diretrios. Usa-se o -p caso se queira criar uma

    "rvore" de diretrios.

  • 8/3/2019 Treinamento avanado em linux

    12/62

    - Rmdir (-p)Complemento do comando mkdir. Serve para remover um diretrio vazio.

    A opo -p serve para remover uma rvore de diretrios vazia (sem arquivos).

    - Rm (-rf)Comando utilizado para apagar arquivos. Observe que o rm simplesmente

    no apaga diretrios. Sua opo -r indica para apagar recursivamente, ou seja, ir apagandotodos os arquivos em subdiretrios e inclusive os prprios diretrios. A opo -f foraapagar, e no emite mensagens de erro caso no exista um arquivo.

    Ex: rm -rf arquivoQueNaoExisteNo acontecer NADA. Nenhuma mensagem de erro ser informada.

    - Who (w, who is god, whoami)O commando who e w listam os usurios que esto logados na mquina. O

    w tem uma sada um pouco mais complexa, mostrando mais informaes.O comando who is god uma stira e retorna o nome de seu usurio.

    O comando whoami (pode ser escrito who am i) tambm retorna o nome deseu usurio e utilizado para saber com qual usurio voc est logado, muito usado quandose utiliza o su e acaba se confundindo quem voc.

    - DfMostra informaes de sistemas de arquivos montados (mesmo CDRom e

    Disquete).

    - FreeMostra informaes de memria (swap inclusive).

    - Cat /proc/cpuinfoInformaes muito completas de seu processador.

    - Setterm

  • 8/3/2019 Treinamento avanado em linux

    13/62

    Este comando serve para modificar configuraes do terminal do Linux, taiscomo cor de fundo e cor da letra.

    Ex:setterm -background green --> Fundo Verdesetterm -foreground yellow --> Letra "amarela". O amarela

    est entre aspas devido ao fato de que a cor no parece ser amarelo no.OBS: Este comando mudar a cor a partir do momento em que ele for dado,

    ou seja, voc precisa imprimir algo na tela ou dar um clear para realmente mudar a cor.

    - TputUtilizaremos este comando para posicionar o cursor na tela, onde quisermos.

    Ele ser muito til quando estivermos construindo shell scripts.Ex:

    tput cup 5 10 Posiciona o cursor na linha 5 coluna 10.

    - UptimeMostra a quanto tempo o sistema est ligado. Os maiores uptimes da

    internet so com mquinas UNIX.

    - Arquivos da InicializaoAlguns arquivos so executados quando o sistema reinicializa. O que nos

    ser conveniente falar por agora ser o arquivo /etc/rc.d/rc.local (todas as distribuiesdevem t-lo implementado).

    Este arquivo ser o ltimo a ser executado quando da inicializao dosistema.

    Diversos arquivos so executados no processo de entrada de um usurio nosistema.

    So eles:.bashrc.profile.bash_login

    Os 3 se localizam no HOME do usurioE:

    /etc/bashrc/etc/profile

    Observe que enquanto os 3 primeiros so exclusivos dos usurios (cadausurio pode ter suas configuraes), os ltimos 2 so globais a todos os usurios queentrarem no sistema.

    No recomenda-se alterar o arquivo /etc/profile j que este deconfiguraes e variveis.

    - Variveis

  • 8/3/2019 Treinamento avanado em linux

    14/62

    Variveis nada mais so do que espaos na memria que armazenamvalores. O linux possui variveis do prprio sistema, que armazenam valores deconfiguraes ou informaes da mquina.

    Para v-las utilize o comando set.Para darmos um valor a uma varivel e torna-la global ao sistema, fazemos

    export varivel=valor.Para retirarmos uma varivel fazemos unset varivel.

    - Varivel PS1Esta varivel guarda os valores para o PROMPT do Linux. Observe que

    estes valores podem ser variveis interpretadas pela SHELL, e por default o so, ou seja, sevoc utilizar uma shell que no a shell BASH, eles podem ficar sem sentido.

    A varivel PS1 uma varivel normal do sistema, qualquer valor que fordado a ela ir ficar no prompt.No entanto ela possui alguns valores especiais interessantes, eis alguns:

    \h Host da mquina\W Diretrio Corrente\w Caminha completo do diretrio corrente\u Nome do usurio\t Hora\\$ Fica $ se for usurio normal e # se for root

    Exemplo:export PS1="[\h@\w]\\$ "

    - Arquivo /etc/motdEste arquivo lido pelo sistema quando um usurio loga na mquina e seu

    contedo enviado para a tela do usurio, como uma mensagem de boas vindas ou algo dotipo. Preste ateno que comandos NO sero interpretados.

    - Arquivo /etc/issueTela vista ANTES do usurio se logar. Seria a prpria mensagem antes do

    login. Observe que o arquivo /etc/issue.net o mesmo que o issue mas vlido paraconexes via rede (telnet). Em algumas distribuies este arquivo apenas um link para o/etc/issue.

    - Ps (aux)Comando que lista os processos em execuo no sistema. Recomenda-se

    sempre utiliza-lo com as opes AUX, para que liste TODOS os processos ativos nosistema.

  • 8/3/2019 Treinamento avanado em linux

    15/62

    - KillServe para matar um processo em execuo. Deve-se utilizar um dos sinais

    existentes para esta tarefa. O sinal padro o sinal 15. Aps o sinal, deve-se informar oPID (identificador nico de processos) do processo que se deseja matar (encerrar).

    - KillallImplementao do linux muito interessante. Permite-se que se mate diversos

    processos com o mesmo nome de uma nica vez. Observe que pode utiliz-lo para matarum nico processo pelo nome, desde que se tenha o cuidado de perceber se no existemoutros processos com este nome.

    Ex: killall httpdKillall -9 vi

    - Sinais (1, 9, 15) importante se lembrar destes 3 sinais principais:

    1-) SigHUP Manda a aplicao reiniciar9-) SigKILL Manda o kernel tirar a aplicao da lista de

    processos ativos (mata mesmo!)15-) SigTERMManda um sinal para que a aplicao termine

    normalmente

    Os sinais so utilizados para comunicaes INTER-PROCESSOS, ou seja,quando um processo deseja indicar algo para outro processo.

    Neste caso, o processo kill (killall a mesma coisa), envia o sinal quepedirmos para a aplicao.

    Existem outros sinais (como SigINT) que so utilizados pelo sistema. Paravisualiz-los utilize o comando kill -l.

    - TouchCria um arquivo texto vazio. Muito interessante na hora de se testar alguma

    coisa. Uso: touch nomeDeArquivoaCriar nomeDeArquivoaCriar2 ...Pode-se criar diversos arquivos de uma nica vez.

    - FindBusca arquivos. Muito avanado.Uso: find DirAProcurar opes

  • 8/3/2019 Treinamento avanado em linux

    16/62

    Exemplos de uso:find / -name Rodrigo.tar Procura a partir da raiz (no sistema

    todo) o arquivo chamado Rodrigo.tarfind /home -exec grep "teste" {} \; -exec ls -la {} \: Procura a

    partir do diretrio /home arquivos com o contedo teste (grep teste) e lista estearquivo (ls -la).

    find /usr -type l -ok rm -rf {} \; Procura no diretrio /usr links (-type l) e caso encontre, confirma se deve ou no apagar (-ok rm -rf).

    Consulte o manual para informaes mais interessantes.

    - LocateBusca arquivos, mas utiliza uma base de dados como padro, o que o torna

    muito rpido. Cuidado!! Atualize sempre sua base de dados, ou iro aparecer arquivos quej foram removidos em suas buscas.Outro problema do locate o fato de que ele busca qualquer ocorrncia da

    palavra a buscar, ou seja, se voc fizer locate a, ele ir listar TUDO no sistema que contma palavra a.

    Para atualizar sua base de dados utilize: updatedbPara buscar utilize: locate oqbuscar

    - TopMtodo interessante de se vizualizar os processos ativos na mquina.

    Use: M --> Ordenar por consumo de memriaP --> Ordenar por consumo de CPU

    - Vi (:w :x :q :q! /)timo editor de textos que recomenda-se e muito saber. As opes vistas

    foram:Modo Comando, Fim de Linha e de Edio:w Salva arquivo:x Salva e sai:q Sai quando voc no alterou nada:q! Sai sem salvar/palavra Procura palavran Procura pela prxima ocorrncia de palavra

    - Background (&)O linux possui uma opo interessante que a de mandar processos para o

    segundo plano, liberando assim o ambiente do usurio.Pode-se fazer isso atravs do sinal & aps qualquer comando.

    - Jobs

  • 8/3/2019 Treinamento avanado em linux

    17/62

    Lista os processos que esto em segundo plano, retornando o nmero doprocesso de segundo plano, que dever ser utilizado para traze-lo de volta.

    - FgComando que trs de volta um processo do segundo plano.Uso: fg numeroProcessodeSegundoPlanoRetornadoPeloJobs

    - ln (-s)Este comando cria um link (atalho) entre diretrios e arquivos. Um link

    simblico (opo -s) nada mais do que um arquivo no HD que aponta para a reaonde est o arquivo original. Se o original apagado, o link fica "quebrado". J um

    link direto (apenas ln) d um outro nome para a mesma rea do HD. Como umbackup contra remoo indevida, no entanto usa-se o mesmo espao do HD,referenciando-no de duas maneiras diferentes. Crie e compare. Um link direto nopode ser feito entre diretrios.

    Uso: ln -s Original Linkln Original Link

    - Chmod (ugo +rwx)Comando que muda as permisses de um arquivo. Estas podem ser vistas

    atravs do comando ls -l.

    A esquerda dos arquivos aparecer uma cadeia de caracteres de difcilcompreenso inicial, mas prestem ateno:

    PrimeiroCaractere Indica o tipo de arquivo, pode ser:- Arquivo normal (executvel ou texto)d Diretrioc Dispositivo orientado a caracteres (modem, portas seriais)b Dispositivo orientado a blocos (hd)s Socket mapeado em arquivo ("Em Unix tudo arquivo")p FIFO, comunicao inter-processosl Link Simblico

    3 prximos Caracteres Permisses Vlidas para o DONO do arquivo, 1 colunacom nome de usurio.

    R Permisso de leitura. Para diretrios, pode listar seu contedo.W Permisso de escrita.X Permisso de execuo. Para diretrios, pode entrar nele.

    3 prximos Caracteres Permisses Vlidas para o GRUPO dono de um arquivo,2 coluna, do lado da do DONO do arquivo. Observe que o GRUPO dono nonecessariamente tem o DONO como membro.

    3 prximos Caracteres Permisses para o restante dos usurios do sistema.Ex: chmod ugo+rwx -R arquivoOudiretrio.

  • 8/3/2019 Treinamento avanado em linux

    18/62

    A opo -R manda dar a permisso recursivamente a todos os arquivos esubdiretrios deste diretrio em questo.

    Esclarecendo a Sintaxe UGO:U Refere-se as permisses para o DONOG Refere-se as permisses para o GRUPO DONOO Refere-se as permisses para o restante dos usuriosA Refere-se as permisses para TODOS os usurios (mesmo que

    Ugo junto)+rwx Est-se dando todas as permisses-rwx Est-se tirando todas as permissesOBS: Pode utilizar apenas -r ou -w sozinhos, por exemplo.=rw Estaria-se igualando as permisses a +RW-X, ou seja,

    quando se utiliza o sinal de igual, as permisses se IGUALAM as que o sinal indica, sendo

    retiradas as que no forem mencionadas.

    - UmaskComando que muda a mscara de permisses padro para a criao de

    arquivos e diretrios.Seu uso ser explicado mais adiante, apenas em modo OCTAL e no

    CARACTERE. O modo CARACTERE foi explicado no curso bsico, mas no o ser nestaapostila.

    - Chown (user:group)Utilizado para mudar o DONO e o GRUPO dono de um arquivo ou

    diretrio.Uso: chown novodono:novogrupo arquivoOudiretorioObserve que a opo :novogrupo pode ser omitida ou trocada por

    .novogrupo.Tambm aqui existe a opo -R.

    - ChgrpUtilizado para mudar apenas o grupo dono de um arquivo.

    Uso: chgrp novogrupo ArquivoOuDiretrio

    - Caracteres Especiais (~,[],*,?)So tambm conhecidos como METACARACTERES.Os mais comuns e utilizados so:

    * Simboliza TUDO? Simboliza QUALQUER CARACTERE~ Simboliza o HOME do usurio Corrente[AB]* Qualquer arquivo (*) comeado com A ou com B.

  • 8/3/2019 Treinamento avanado em linux

    19/62

    - Home do usurio

    Diretrio que pertence ao usurio, onde ele pode tudo. O comando cdisolado leva o usurio at este diretrio. Ao logar no sistema, o usurio cai tambm em seuhome.

    - Adicionando um GrupoUm grupo nada mais do que a unio de diversos usurios com as mesmas

    caractersticas. Por exemplo, poderamos ter um grupo estudantes ou alunos.Para adicionarmos este grupo, devemos utilizar o comando:

    groupadd alunosNo arquivo /etc/group ser adicionada uma entrada alunos, e ser dado um

    GID (identificador de grupo) a este grupo.

    - Adicionando um UsurioQualquer pessoa que for utilizar o linux deve necessariamente possuir um

    usurio vlido na mquina. Lembrando que NO devemos utilizar o root a menos quenecessrio, esta tarefa importantssima mesmo para usurios caseiros.

    Adicionando:useradd rodrigo -g alunos

    Adicionamos o usurio rodrigo no grupo alunos. Observe que a opo -gnomegrupo no se faz necessria, e caso seja omitida, teremos comportamentos diferentes

    em algumas distribuies:RedHat e familiares (incluindo Conectiva):

    Ser criado um grupo com o mesmo nome do usurio e este seradicionado neste grupo

    Slackware:O usurio ser adicionado em um grupo chamado users

    Isto ocorre devido a no padronizao deste ato e ao fato de um usurioNECESSARIAMENTE pertencer a algum grupo

    - Senhas SHADOWO esquema de senhas chamado SHADOW foi criado devido ao fato de oLinux (e os Unix-Like da vida) utilizarem em suas senhas um mtodo de criptografiachamado DES (Data Encryption Standard). Este mtodo fraco (utiliza chaves de apenas64 bits) e pode ser facilmente quebrado (Veja o livro Cracking DES para entender melhorsobre este assunto). Como o arquivo /etc/passwd necessita ter permisso de leitura paratodos, qualquer usurio facilmente conseguiria obter a senha de ROOT do sistema.

    Com isso criaram o SHADOW, onde as senhas criptografadas com o DESficam no arquivo /etc/shadow que s pode ser visto pelo root.

    Sobra ento no arquivo /etc/passwd apenas um * ou ! no lugar da senhacriptografada do usurio.

  • 8/3/2019 Treinamento avanado em linux

    20/62

    Todas as distribuies linux trazem o SHADOW por padro.

    - Arquivo /etc/passwdEste arquivo contm os usurios cadastrados na mquina e informaes

    sobre eles. Sua sintaxe :login:UID:GID:Descrio:Home:Shell

    Onde:login Nome do usurio na mquinaUID Identificador do usurio. O Linux utiliza este

    nmero para dar ou tirar permisses. Pode ser repetidoentre usurios.

    GID Identificador do grupo principal do usurio.Descrio Qualquer coisa, se for omitido, deve-se deixar

    ::. Geralmente coloca-se nome e cargo do usurioHome Diretrio pessoal do usurio. No

    necessariamente, mas recomenda-se que ele fique no/home e tenha o mesmo nome do usurio.Ex: Usurio: Rodrigo

    Home: /home/RodrigoShell Shell que o usurio ir utilizar para se logar no

    sistema. Use /bin/false caso o usurio no deva logar. E/bin/bash caso deva.

    OBS:Deve ter ficado na cabea do leitor atento o fato de CASO O

    USURIO NO DEVA LOGAR.Mas quando isto acontece?Digamos que temos uma aplicao que deve ser executada com as

    permisses de um usurio. Criamos um para ela, mas este no um usurio vlido, comominha aplicao iria entrar na mquina? Este um caso.

    - Arquivo /etc/groupSimilarmente ao /etc/passwd este arquivo possui as configuraes dos

    grupos (o /etc/passwd possui dos usurios)

    Sua sintaxe geral ::x::,Os usurios que pertencerem a este grupo estaro listados neste arquivo, a

    menos que o grupo seja primrio do usurio, neste caso apenas estaria referenciado em/etc/passwd no campo gid.

    Preste ateno que neste arquivo que o GID dos grupos est especificado,sendo que o /etc/passwd apenas consulta ele.

    - Porque saber editar manualmente usurios e grupos?Esta uma pergunta bem simples, j que teremos de editar manualmente em

  • 8/3/2019 Treinamento avanado em linux

    21/62

    diversas situaes onde desejarmos modificar opes de usurios e desejarmos fazeristo de uma forma rpida e segura.

    Caractersticas da Shell BASH

    O TAB completa, tanto comandos como nomes de arquivos ou diretrios,use-o.

    Setas para cima e para baixo movimentam-no entre os comandos que jforam digitados.

    Shift+PageUP sobe a tela.

    Ctrl+D efetua LOGOFF.Cuidado!! O Linux FAZ DIFERENA ENTRE MAISCULAS EMINSCULAS.

    Cuidado!! No existe UNDELETE no Linux porque seu sistema de arquivosse auto-defragmenta durante seu uso.

    Shell Script

    Um shell script nada mais do que se utilizar diversos comandosencadeados em um arquivo. Estes comandos sero executados na ordem em que foremvistos.

    Use: sh arquivo para executar.#!/bin/bash

    oDeve ser utilizado no incio dos shell scriptoIndica qual shell dever ser utilizada para a execuooNo necessriooCaso omitido, o script ser executado usando-se a shell que o

    usurio estiver utilizando no momento.

    If [ condicao ] then fioComando condicional, caso a opo for verdadeira ele executa o

    que estiver entre o then e o fioOpcionalmente pode-se utilizar o else.oEx:

    if [ $valor = "1" ]then

    echo "Valor = 1 "echo " legal!" Ocorrer um erro, porque as "permitem que valores dentro dela sejam interpretados.

  • 8/3/2019 Treinamento avanado em linux

    22/62

    Neste caso o ! ser interpretado como o operador NOTe causar um erro. Portanto deve-se utilzar queimpede que qualquer coisa seja interpretada.

    elseecho Valor != 1 Agora esta certo

    fiFor variavel in lista do done

    oComando de loopoA varivel ir assumir a cada itereo do loop um valor da listaoEx:

    for nome in Rodrigo Alberto Gilbertodo

    echo $nome

    doneoIr ter a sada:

    RodrigoAlbertoGilberto

    Script Adiciona 1000 usuriosCria-se um arquivo chamado /tmp/nomes.txtNeste arquivo coloca-se o nome dos 1000 usurios.Faz-se o seguinte script:

    ofor user in `cat /tmp/nomes.txt`odo

    useradd $userodone

    Observe o cat /tmp/nomes.txt` no lugar da lista. A crase fazcom que o comando seja executado.

    O comando CAT lista o contedo de um arquivo, no casonomes.txt que fica no lugar da LISTA.

    A varivel user assume valor por valor desta lista a cada

    iterao e utilizado o comando useradd para adicionar ousurio.Tambm pode ser escrito assim:

    for user in `cat /tmp/nomes.txt` ; do useradd $user;done

    Script Abrir Interface que EscolherLembre-se que o arquivo .xinitrc localizado no home do

    usurio executado assim que a interface grfica abre.#!/bin/bashecho "Escolha a interface"

  • 8/3/2019 Treinamento avanado em linux

    23/62

    echo " 1- KDE"echo " 2- Wmaker"echo " 3- Gnome"read ifaceif [ $iface = "1" ]then

    kdeexit

    fiif [ $iface = "2" ]then

    echo "wmaker" > ~/.xinitrcfi

    if [ $iface = "3" ]thenecho "gnome" > ~/.xinitrc

    fistartx

    OBS: Observe o echo "gnome" > ~/.xinitrc, utilizei ometaractere ~ para indicar o home do usurio, assim independente do usurio que executar,o script funcionar.

    O comando exit serve para fechar o script, porque eu nodesejo que o startx seja executado caso kde tenha sido.

    Coloquei um nico startx ao final do script, ao invs de um

    por if. Utilizei o comando read para acessar um valor digitado pelousurio e armazenei este valor na varivel iface, que no precisa ser previamente declarada.

    Aprofundando-se em SHELL Script

    - CaseUsado quando se necessita de muitos Ifs.Funciona assim:

    case $Varivel invalor) comando

    comandocomando;;

    valor2) comandocomando;;

    *) comandocomando

  • 8/3/2019 Treinamento avanado em linux

    24/62

    ;;esac

    Exerccio: Reescrever o script de abrir interface usando o case

    - WhileFaz um loop que s sair quando encontrar o comando break ou a condio

    for FALSA.Sintaxe:

    while Condiodo

    comandos

    done

    Ex:a=0while [ $a -le 10 ]do

    echo $aexpr $a + 1

    donePrimeiro indiquei que a varivel a tem valor 0.O While testa se a varivel a menor ou igual a 10 (-le um operador)

    Se for, e , imprime seu valor, primeiramente 0.O comando expr soma 1 ao valor de a.O loop refeito, novamente se testa se a menor que 10 e assim por diante.Perceba o operador -le, temos outros:

    -eq Igual-ne Diferente-gt Maior que-ge Maior ou igual-lt Menor que-le Menor ou igual

    - O comando CUTEste comando embora pouco conhecido realmente MUITO til. Sua

    funo a de capturar apenas uma parte de uma linha, ou expresso.Quando iramos querer isto?Vamos pensar, lembrem-se do arquivo /etc/passwd, nele temos diversas

    informaes.Porque no simplesmente capturar o nome do usurio e nada mais?Como faramos isto? Listar apenas o nome dos usurios do sistema?Veja:

  • 8/3/2019 Treinamento avanado em linux

    25/62

    cat /etc/passwd |cut -f1 -d":"

    Mas o que fizemos?Primeiramente listei o contedo do arquivo com o cat.Canalizei ele para o comando cut.-f1 Indica que quero o 1 campo. Nossa que primeiro campo?? Vou

    especificar com o -d-d":" Indiquei que o que separa cada campo o caracterer dois pontos (:).

    Exerccio: Escrever um script para acertar as permisses do HOME dos usurios.

    DESAFIO:DESAFIO:DESAFIO:DESAFIO: Construir um script que faz o seguinte:

    L um arquivo chamado LOGS.txt que possui a seguinte sintaxee ser criado a parte:

    ArquivoDelog TAMANHOEx:

    /log/tudo.log 10000Aps ler este arquivo, ele ir ser rodado via CRON (ver mais

    adiante) e de tempos em temos ele ir checar os arquivos que

    estiverem no arquivo LOGS.txt e seus respectivos tamanhos.Se o tamanho for atingido ou for passado, ele ir compactar oarquivo de log, gerando um chamadonomedoarquivo.log.DIAMESANO.tar.gz.

    No nosso exemplo, o arquivo /log/tudo.log ao atingir o tamanho10000 ir ficar:

    /log/tudo.log.19012002.tar.gzDia 19 de janeiro de 2002

    Utilizando o VI

  • 8/3/2019 Treinamento avanado em linux

    26/62

    Editando um texto: vi nomedoarquivo

    vi +linha nomedoarquivo Abre direto nalinhaIndo para a ltima linha: :$Indo para a primeira linha: gg ou :1Indo para a ensima linha: :nRemovendo uma linha: ddRemovendo a partir da linha n at a tima: :n,$ dColocando nmero nas linhas: :set numberTirando nmero das linhas: :set nonumber

    Substituindo linhas: :n,n2 s/palavraSerSubstituida/palavraVaiSubstituir/gSalvando: :w

    Saindo e salvando: :xSaindo sem salvar: :q ou :q! caso tenha modificadoSalvando para outro arquivo: :w outroarquivoSaindo e salvando em outro arquivo: :x outroarquivoForar salvao: :x! til quando o arquivo est como ROInserir linha abaixo do cursor: oInserir linha acima do cursor: OInserir: [INSERT] ou iSubstituir: [INSERT 2x] ou rInserir no fim da linha: AInserir aps o cursor: aCopiar e colar linhas: y copia linha

    P cola linha

  • 8/3/2019 Treinamento avanado em linux

    27/62

    Entendendo o sistema de arquivos do Linux

    Nome: ext2Caractersticas: Pesquisa Binria

    No fragmentao

    Permisses de Arquivo (podem ser extendidas)

    Arquivos com 255 caracteres no nome

    Qualquer caractere especial no nome

    Por default, no sncrono

    Nome: ext3Caractersticas: Novo sistema

    Journaling FS (assim como o do Aix e o ReiserFS)Pesquisa Binria

    Grava o que foi feito, no necessita FSCK mesmo caso caia a energia

    Pode ser aumentado em tempo real, sem perda de dados

    Idem a ext2 no restante

    Estrutura de Diretrios

    importantssimo a qualquer administrador de sistemas entender a

    estrutura de diretrios do sistema. Isso porque manter a padronizao definida, o ajudar asaber onde as coisas esto e a futuros administradores ou auxiliares acharem tudo nosistema.

    O Linux possui uma estrutura muito bem organizada e realmente adevemos seguir.

    Irei colocar cada um dos diretrios principais e o que neles devemconter:

    /etc Configuraes do sistema/lib Bibliotecas compartilhadas necessrias ao sistema/mnt Montagem de discos e perifricos/opt Pacotes adicionais NO fornecidos com o sistema (no

    utilizado quase)/sbin Diretrio usado na inicializao do sistema, pacotes essenciais

    para manuteno. Demais pacotes para a administrao do sistema devem ficar em/usr/sbin ou /usr/local/sbin.

    /usr Segundo maior diretrio (logo aps o /), recomenda-se monta-lo como RO para evitar danos. A grande maioria dos aplicativos do sistema e instaladoscom ele ficam a partir deste diretrio.

    /var Diretrio que contm arquivos variveis, tais como spool (filasde email, crontab, impresso) e logs. Este diretrio existe para que os arquivos que

  • 8/3/2019 Treinamento avanado em linux

    28/62

    necessitem ser modificados fiquem nele e no no /usr, liberando assim sua montagem comoRO.

    /root Alguns Unix-Like no o utilizam (utilizam /home/root). odiretrio que contm os arquivos do administrador (seu home).

    /proc Diretrio VIRTUAL onde o kernel armazena suas informaes.Alguns dados deste podem ser modificados, como os abaixo de /proc/sys que contminformaes muito pertinentes a performance tunning do sistema.

    /tmp Diretrio que contm arquivos temporrios. Todos os usuriosnecessitam poder escrever neste diretrio (para gravar seus temporrios), no entanto um nopode apagar o temporrio do outro (se no teramos um problema), devido a isto estediretrio possui uma permisso especial, que possibilita escrever mas s apagar aquilo quefor seu. Esta permisso chama-se STICK BIT.

    /home Os diretrios pessoais dos usurios devem ficar a partir daqui.

    /bin Aplicativos e utilitrios usados durante a inicializao dosistema, antes de qualquer sistema de arquivos ser montado. As shells dos usurioscostumam ficar aqui tambm. Binrios de usurios devem ficar em /usr/bin.

    /boot Contm a imagem do kernel e tudo o que for necessrio aoprocesso de boot, menos configuraes.

    /dev Dispositivos do sistema.

    MOUNT

    Comando utilizado para se acessar qualquer dispositivo no Linux.Como dispositivo entenda disquete, cdrom, e o prprio HD.Sua sintaxe :

    mount -t tipofs /dev/dispositivo /ponto/de/montagemPonto de montagem: Diretrio que ser utilizado para acessar odispositivo.TipoFS: Tipo do sistema de arquivos do dispositivo, geralmente:

    Vfat Fat32Msdos Fat16NTFS NTFS

    Ext2 LinuxIso9660 CdromUmsdos FS especial, sistema Linux sobre FAT.

    Monta FAT32 e FAT16, alm de ext2.OBS: Nossas parties so montadas durante o boot do sistema, por isso

    / um ponto de montagem que indica uma das parties de nosso HD.

  • 8/3/2019 Treinamento avanado em linux

    29/62

    FSTAB

    Como foi dito, alguns sistemas de arquivos devem ser montados durante o boot,para que todo o resto funcione. o caso de nossas parties ativas do linux e a prpriaswap.

    No arquivo /etc/fstab esto as informaes do que dever ser montadoautomaticamente no boot da mquina e algumas opes de dispositivos que so muitoacessados e seu FS no muda (ex: cdrom).

    Isto faz com que utilizemos apenas mount /ponto/de/montagem para acessar tais

    dispositivos, j que o resto das informaes o linux busca no fstab.

    Sua sintaxe geral:

    Dispositivo ponto de montagem FS opes OrdemBackup OrdemFSCK

    Onde opes podem ser:AutoAsyncAtimeDev

    ExecNoatimeNoautoNodevNosuidNouserRemountRoRwSuidSyncUserDefaults --> rw,suid,dev,exec,auto,nouser,async

    Ordem Backup:Usado pelo comando dump para fazer backup do FS.Caso seja 0 no far backup.Nmeros 1 acima sero feito backups na ordem (1 primeiro e assim por

    diante)Nmeros repetidos ser feito backup do que estiver primeiro no fstab.

    Ordem FSCK:Usado pelo comando FSCK para checar o FS.

  • 8/3/2019 Treinamento avanado em linux

    30/62

    Caso seja 0 no ser checado.Nmeros 1 acima sero checados na ordem (1 primeiro e assim por diante)Em caso de nmeros repetidos ser checado primeiro, o que aparecer antes

    no FSTAB.

    FDISK

    Utilizado para se criar ou destruir parties. Observe que seuparticionamento SEMPRE destrutivo.

    Uso: fdisk /dev/hdx X indica o HD e no a partioSer visto em aula suas opes:__________________________________________________________

    ____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________

    FSCK

    No se necessita passa-lo, j que o sistema o faz automaticamentequando precisar, durante o boot.

    Observe que caso algum pane acontea na passagem automaticamente,ser solicitada a senha do administrador e dever ser passado o fsck manualmente.

    Digite a senha e faa:fsck -c -v /dev/hdxy X seu HD, Y partio que deu problema.

    -c Manda checar-v Informa tudo o que est fazendo e pede confirmao

    FDFORMAT

    Utilizado para formatarDISQUETES.Use: fdformat /dev/fd0.Ele no ir criar um sistema de arquivos no disquete. Use o mkfs.

    MKFS

  • 8/3/2019 Treinamento avanado em linux

    31/62

    Utilizado para criar um sistema de arquivos.Perceba a necessidade de se especificar o sistema a ser criado e o fatode que o kernel DEVE suportar este sistema.Uso:mkfs -t tipofs /dev/dispositivoOnde tipofs um dos tipos j mencionado e dispositivo pode serqualquer dispositivo de armazenamento. Ex: fd0, hda1.

    MKSWAP

    Utilizado para se "formatar" uma swap. Gerar seu sistema dearquivos. Utilizamos ele assim:mkswap -c /dev/hdxyA opo -c opcional mas recomendada, j que checa o HD antes de

    criar a swap.Aps isto feito, deve-se necessariamente ativar a swap para que o

    sistema a reconhea.Faa isso com o comando:swapon /dev/hdxyAlguns alunos mais "fuados" j tero visto:swapon -a

    Que indica para se ativar a swap de todos os dispositivos deswap encontrados em /etc/fstab.

    Lembre-se de adicionar a nova swap l para que no prximoboot seu sistema a reconhea automaticamente.

    Bem, como eu j disse o Linux poderoso, Linux Linux,portanto temos uma opo de caso necessitemos de mais swap, mas no tenhamos umapartio a parte para isto.

    o caso da swap em arquivo. Sua desvantagem o fato deser mais lenta, j que estar dentro do sistema de arquivos ext2 alm do seu prprio, mas uma maneira de se ganhar memria SEM TER QUE REINICIAR ou qualquer coisa do tipo.

    Para criar este "arquivo de swap", faa os seguintes passos:

    1-) dd if=/dev/zero of=/swap bs=1024 count=81392-) mkswap -c /swap3-) swapon /swap

    Passo1: O comando dd "copia transformando". Ele foi utilizado para secriar o arquivo de swap sem contedo (/dev/zero) e com um tamanho equivalente a 8139blocos (8MB). Obviamente voc pode adeqar este tamanho para o que necessitar.

    Passo2: Cria-se o sistema de swap neste arquivoPasso3: Ativa-se a swap deste arquivo.Use o comando free e voc ver que o espao de swap foi incrementado.

  • 8/3/2019 Treinamento avanado em linux

    32/62

    Configurao e Instalao do Kernel

    A grande caracterstica do Linux o fonte aberto, que facilita odesenvolvimento. Ele realmente est muito desenvolvido e constantemente so lanadosmuitas verses novas de seu ncleo.

    Algumas destas novidades so importantes para ns e por isso desejamos atualizarnosso sistema. Mesmo que no queiramos atualizar, devemos no mnimo recompilar nossokernel que vem no sistema para que se adapte apenas a nossa mquina, fazendo assim uma

    grande economia de memria e desempenho.O primeiro passo baixar o novo kernel.Faa isso acessando: www.kernel.org ou em caso

    de pessoas de dentro da Unesp: ftp.feb.unesp.br/pub/Linux

    oEntendendo o conceito de mdulos

    O kernel do linux muito bem elaborado e projetado.Obviamente foi pensado em diversas possibilidades do uso de um

    sistema operacional, como por exemplo o fato de no utilizarmos o cdrom 100% dosmomentos em que estamos no computador.

    Se no assim, porque o suporte ao CD deve estar o tempo todo namemria, ocupando espao?

    Com isto inventaram o conceito de mdulos, ou seja, quando o sistemaoperacional precisa, ele carrega o cdigo para memria, usa e descarrega.

    oGerenciando Mdulos

    Existem alguns comandos para o gerenciamento de mdulos dosistema operacional. So eles:

    modprobe -l Lista os mdulos disponveismodprobe mdulo Carrega o mdulo na memriainsmod mdulo Carrega o mdulo na memria mas no checalsmod Lista os mdulos carregados

    oAdicionando Suporte a um Novo Hardware

  • 8/3/2019 Treinamento avanado em linux

    33/62

    Para isto, devemos recompilar nosso kernel

    oPersonalizando o kernel (recompilando)

    Aps baixar o arquivo do kernel, vamos supor chamado:linux-2.4.17.tar.bz2

    Copie-o para /usr/src e entre neste diretrioMova o kernel antigo para outro nome (mv linux linux.old)Descompacte-o (veja compactadores nesta apostila).Move ele para um nome mais descritivo (mv linux linux-2.4.17)

    Crie um link chamado linux (alguns aplicativos precisam)ln -s linux-2.4.17 linuxEntre no diretrio dos fontescd linuxInicie a configurao:make menuconfig Recomendado, pode ser make xconfig oumake config tambmEscolha o que deseja inserir (m para mdulo) e saia.make depmake cleanmake bzImage

    make installmake modulesmake modules_installV para a raiz (cd /)Mova o arquivo vmlinuz (imagem do kernel) para o diretrio /boot Padro do FS do linuxMova o arquivo System.map para o diretrio /boot tambmEdite o lilo.conf para que o sistema boote pelo novo kernelDigite liloPRONTO!! Reinicie sua mquina.OBS: TODOS OS DETALHES SERO VISTOS EM AULA.

    ATENTE-SE PARA CASO NO SEU SISTEMA J EXISTA O ARQUIVO/BOOT/VMLINUZ (FAA UM BACKUP DE SEGURANA E PREVINA ISTO NOLILO.CONF TAMBM).

    O LILO.CONF SER EXPLICADO MAIS ADIANTE NESTAAPOSTILA.

  • 8/3/2019 Treinamento avanado em linux

    34/62

    Ferramentas Bsicas de Rede

    oIfconfig Este comando retorna informaes sobre as placas de rede(mesmo virtuais) e a interface lo.Ele pode ser utilizado para mudar informaes de rede assim:ifconfig interface ip netmask mascaraREDEEx:

    ifconfig eth0 192.168.0.1 netmask 255.255.255.0

    ifconfig eth0:0 192.168.0.2 netmask 255.255.255.0Primeiro, dizemos que o ip de nossa placa ser 192.168.0.1 classe C.Depois, configuramos um ip virtual para esta placa tambm classe C.

    oRoute Comando que gerencia a tabela de roteamentoesttica do Linux. Apenas iremos utilizar estecomando (em casos bsicos, claro, roteamentos maisavanados podem ser feitos, lembrando que ser umroteamento esttico e limitado. Veja: AdvancedRouting HOWTO para entender melhor o uso doiproute) para definir o gateway de nossa mquina:

    route add default gw IPdoGATEWAY

    Use: route -n para listar a tabela de roteamento.oNetstat Lista conexes ativas. Use netstat -na para

    listar todas as conexes ativas e que esto escutando.oPing Famoso comando que utiliza o protocolo

    ICMP para verificar o delay de uma mquina a outrana rede.

    oTraceroute Comando muito utilizado para severificar o caminho efetuado por um pacote de umamquina a outra na rede.

    oNslookup Retorna o nome da mquina a partir deseu nmero IP.

    Use: nslookup IPUma opo interessante seria:

    nslookup -type=mx ip Retorna o servidor de email destedomnio. Veja manual.

    Editando os arquivos de configurao manualmente

  • 8/3/2019 Treinamento avanado em linux

    35/62

    Esta parte do treinamento se torna um pouco mais complicada, devido ao fato de asmuitas distribuies existentes trabalharem diferentemente com os arquivos deconfigurao.

    No Slackware esta tarefa muito mais simples, bastando editar-se o arquivo/etc/rc.d/rc.inet1. Neste arquivo, existem variveis com nomes bem demonstrativos quebastam ser colocados seus valores corretos para trabalhar perfeitamente. Preste ateno queestamos ensinando apenas com uma nica interface de rede, no cabendo a este treinamentoaprofundar-se no uso de duas. Caso seja da sua necessidade, por favor mande um emailpara [email protected] que no exitaremos emauxiliar-lhe.

    No Conectiva Linux:Edite o arquivo /etc/sysconfig/network Variveis bem demonstrativasEdite o arquivo /etc/sysconfig/network-scripts/ifcfg-eth0 Variveis bem

    demonstrativas.Estes dois scripts servem para setarmos o IP, GATEWAY e NOME damquina. Observe que ifcfg-eth0 se trata da primeira interface, setivssemos um ifcfg-eth1 seria a segunda e assim por diante.Podemos tambm setar uma virtual com ifcfg-eth0:0.Caso queira setar um ip virtual, apenas copie o ifcfg-eth0 para ifcfg-eth0:0 eedite suas opes.Aps as alteraes, faa ifdown eth0 e ifup eth0 para que elas sejamvalidadas.

    Agora as opes so vlidas para todas as distribuies:

    Arquivo /etc/hosts

    Este arquivo contm os nomes de hosts conhecidos da mquina e queno seriam necessrios checar o servidor de DNS.

    muito til. Sua sintaxe :IP FQDN APELIDO

    Para quem no sabe, FQDN seria o nome completo da mquina, coma seguinte sintaxe:

    NOMEMQUINA.NOMEDOMNIO.DOMNIOPRIMEIRAGRANDEZA.Ex:

    www.firewalls.com.br | | | || | DOMNIO PRIMEIRA GRANDEZA| || NOME| DOMNIO

  • 8/3/2019 Treinamento avanado em linux

    36/62

    NOMEMQUINA

    Um exemplo da sintaxe do arquivo /etc/hosts seria:

    200.158.118.169 www.firewalls.com.br web

    Quando fizermos por exemplo, ping web, automaticamente minha mquinasaber que WEB seria a mquina com ip 200.158.118.169.

    Arquivo /etc/resolv.confEste arquivo contm o nome do domnio que nossa mquina pertence e os

    servidores DNS de nossa mquina.

    Um exemplo deste arquivo seria:

    domain firewalls.com.br Domnio firewalls.com.brnameserver 200.158.118.169 DNS primrio

    nameserver 200.206.116.2 DNS secondrionameserver 200.145.150.1 DNS tercirionameserver 200.145.160.1 DNS quaternrio

    Arquivo /etc/host.conf

    Define a ordem de resoluo de um HOSTNAME, ou seja, se primeiro osistema deve procurar o nome de hosts no arquivo /etc/hosts ou se deve requisitar aoservidor de DNS.

    Um exemplo deste arquivo:

    order hosts,bind Primeiro v o arquivo hosts depois o DNSmulti on Permite mais de um endereo por host no

    arquivo /etc/hosts

    Adio de ROTAS

    Recomendo SEMPRE utilizar o comando route.

  • 8/3/2019 Treinamento avanado em linux

    37/62

    Configurando sua placa de REDE

    Obviamente este seria o primeiro passo, mas como ele genrico a todas asdistribuies quis coloca-lo aqui primeiro, onde o aluno j estar familiarizado com asconfiguraes de rede do linux.

    1-) Adicione suporte a sua placa de rede no kernel (recompilar), geralmenteadicionamos como mdulo, mas no necessariamente.

    2-) Edite o arquivo /etc/modules.conf. Este arquivo contm configuraeslidas antes de se carregar qualquer mdulo no kernel.

    3-) Coloque a seguinte linha:

    alias eth0 nomemduloPara a segunda placa, coloque alias eth1 nomemdulo e assim pordiante para outras placas de rede.

    Perceba que o nome do mdulo apenas seu nome, sem extenso .oou seu caminho no sistema.

    Um exemplo seria:alias eth0 dmfealias eth1 rtl8139

    Ok, tudo pronto, agora basta testar.

    Primeiramente de um ping em seu GATEWAY (definido com o comando route).

    Caso no responda cheque novamente as rotas, digite ifconfig para ver se a placa derede est no ar.Se tudo parecer correto mas continuar sem responder, verifique o cabo de rede.

    Compactadores e Empacotadores de Arquivos

    Tpico importantssimo para a utilizao de qualquer sistema operacional,compactadores e empacotadores so SEMPRE utilizados na internet para diminuir o

    tamanho de arquivos (transferncias mais rpidas) e unir diversos arquivos em um nico.Compactador Diminui o tamanho de um arquivo. Arquivos texto so

    mais facilmente compactados e tendem a diminuir entre 60 e 70% de seu tamanho.Empacotador Une diversos arquivos ou diretrios em um nico. Os

    usurios no lidam muito com este termo, j que no sistema operacional concorrente oscompactadores so tambm empacotadores.

    oGziptimo compactador.Para utilizar:

  • 8/3/2019 Treinamento avanado em linux

    38/62

    gzip arquivoAcompactarO arquivo ser substitudo pelo mesmo nome mas com extenso .gz, que

    indica que ele foi compactado com o gzip.Para descompactar:

    gzip -d arquivoAdescompactar.gzgunzip arquivoAdescompactar.gz

    As duas opes acima so idnticas.oZip

    Pouco utilizado no mundo Linux, um compactador/empacotador.Utilize zip arquivo.zip Arquivo1 Arquivo2.Cuidado ao zipar diretrios!!Para dezipar, use:

    unzip arquivo.zip

    oBzipCompactador mais atual e mais eficiente que o GZIP. No est sendo

    muito utilizado e atualmente est na verso 2.Use:

    bzip2 arquivoAcompactarEste arquivo ser substitudo por um com o mesmo nome e extenso

    .bz2.Para descompactar:

    bunzip2 arquivoAdescompactar.bz2

    bzip2 -d arquivoAdescompactar.bz2As 2 opes so iguais.

    oCompressMuito antigo, mas ainda hoje encontramos uso deste compactador.Para compactar:

    compress arquivoAcompactarSer gerado um arquivo com a extenso .ZPara descompactar:

    Uncompress arquivoAdescompactar.ZoTar

    Praticamente um MITO do mundo UNIX. Este excelente empacotadorserve para a criao de BACKUPs, tendo muitas e muitas opes.Veremos aqui as mais importantes, tais como as opes de criao de umarquivo empacotado e j compactado (utilizando gzip, bzip2 oucompress).Criando um arquivo .tar:

    tar cvf nome.tar ArquivosouDiretoriosATARGIARVoltando um arquivo .tar:

    tar xvf nome.tarCriando um arquivo .tar.gz:

  • 8/3/2019 Treinamento avanado em linux

    39/62

    tar zcvf nome.tar.gz ArquivosouDiretoriosATARGZIPARVoltando um arquivo .tar.gz:

    tar zxvf nome.tar.gzCriando um arquivo .tar.bz2:

    tar Icvf nome.tar.bz2 ArquivosouDiretoriosATARBZIPAR Conectiva 6tar jcvf nome.tar.bz2 ArquivosouDiretoriosATARBZIPAR Conectiva 7tar ycvf nome.tar.bz2 ArquivosouDiretoriosATARBZIPAR Slackware

    Voltando um arquivo .tar.bz2:tar Ixvf nome.tar.bz2 ArquivosouDiretoriosATARBZIPAR Conectiva 6tar jxvf nome.tar.bz2 ArquivosouDiretoriosATARBZIPAR Conectiva 7tar yxvf nome.tar.bz2 ArquivosouDiretoriosATARBZIPAR Slackware

    Existem muitas outras opes do TAR. Veja o manual para maioresinstrues.

    Agendamento de Tarefas

    O agendamento de tarefas faz parte do dia-a-dia dos administradores desistemas. Sempre necessrio automatizar as tarefas. Isto ns aprendemos atravs dacriao de scripts. Mas nossos scripts muitas vezes necessitam ser executados de tempos

    em tempos. Como fazer isso? Programando sua execuo. Utilize o cron e o at para isto.

    oCron

    Agenda tarefas a serem executadas sempre. Isto quer dizer, por exemplo,tarefas a serem executadas todo dia a meia noite por exemplo. Ou todo dia 10 as 10:00horas e assim por diante.

    O cron permite o agendamento de tarefas por usurio. Cada um pode ter

    suas tarefas e estas sero executadas com as permisses deste usurio.Comumentemente agendaremos tarefas como root.Agendando uma tarefa:crontab -eSer aberto o editor vi, editando o arquivo correto. Ali dentro, siga a

    seguinte sintaxe (uma por linha):MinutoHoraDiadomesMesDiadasemana comandoEx:12345600***LsDentro do crontab deve-se colocar a segunda linha da tabela

    acima. A primeira linha ser utilizada para a descrio dos campos, a seguir:

  • 8/3/2019 Treinamento avanado em linux

    40/62

    CampoValorIntervalo1Minutos0 a 592Hora0 a 233Dia do ms1 a 314Ms1 a125Dia da semana0 a 6 (0=domingo)6Comando a ser executado-No nosso exemplo, ocomando ls ser executado exatamente a meia noite em ponto (0 horas e 0 minutos) todosos dias. O * significa todos os valores possveis.

    oAt

    Agendamento de tarefas a serem executadas uma nica vez. Por exemplo,uma tarefa que necessite ser executada hoje a meia noite.

    Uso:at hora -f arquivoEx:at midnight -f /root/Instalados/logrotate.shUtilize o atq para visualizar as tarefas agendadas e atrm numeroDatarefa para

    desagendar uma tarefa.

    Entendendo o Super Daemon Inetd

    A funo do inetd a de economizar memria. Como? Imaginemos umservidor ftp que no recebe muitas requisies, digamos umas 5 por dia, por exemplo.

    Este servidor ftp fica o tempo todo na memria da mquina, ocupando umespao que no necessrio. No entanto, poderia haver alguma maneira de fazer com queeste servio no ficasse no ar o tempo todo, apenas quando necessrio.

    Da surgiu o inetd. Ele fica no ar, esperando conexes para os mais diversosservios (configurados em /etc/inetd.conf). Quando a conexo chega, ele apenas repassapara o servio especfico.

    Infelizmente, como inconveniente temos o fato de que ser necessriocarregar o servio para a memria, o que torna o processo mais lento.

    o/etc/inetd.confSua sintaxe :ftp stream tcp nowait root /usr/sbin/tcpd in.ftpd -l -a

  • 8/3/2019 Treinamento avanado em linux

    41/62

    Explicando os campos:ftp Servio que escuta na porta 21 (ver /etc/services)

    stream Modo para conexes TCP (dgram para udp)tcp Protocolo de conexo

    nowait No ficar esperandoroot Rodar como usurio root

    /usr/bin/tcpd in.ftpd -l -a Programa a ser chamado e seus parmetros

    o/etc/hosts.allowObserve no exemplo acima, que o programa a ser chamado TCPD.

    Este o programa que chamamos de TCP Wrappers. Como parmetro passado o servio aser protegido, no caso in.ftpd.

    TCP Wrappers implementa um controle de acesso aos servios querodam sob o inetd atravs do nmero ip ou nome da mquina.

    O arquivo /etc/hosts.allow contm os servios que sero permitidos.Caso esteja sendo permitido, ele nem sequer ir checar o que est sendo negado.

    Sua sintaxe :Servio:IP

    Ex:in.ftpd:localhost Libera localhost a conectar no servio FTPAll:200.158.118.169 Libera tudo para a mquina 200.158.118.169

    o/etc/hosts.denyNeste arquivo proibimos os servios. Sua sintaxe igual a do

    arquivo /etc/hosts.allow.

    Configurando o boot da mquina: /etc/lilo.conf

    Lilo (LInux LOader) o gerenciador de boot mais utilizado e antigo nosistema operacional Linux.

    Atualmente temos tambm ganhando muito prestgio o chamado GRUB.Um exemplo de sua configurao seria:

    boot=/dev/hda HD em que o LILO ser instaladomap=/boot/map Mapa do HDinstall=/boot/boot.b Geometria do HD

  • 8/3/2019 Treinamento avanado em linux

    42/62

    prompt Exibir o prompt do lilotimeout=50 5 segundos de esperaimage=/boot/vmlinuz-FwSec-1.0 Imagem do kernel a ser carregadalabel=linux Quando for escolhido o nome linuxroot=/dev/hdb1 Partio raiz = /dev/hdb1read-only Monta-se como ROpassword=teste Necessita-se digitar a senha TESTEother=/dev/hda3 Na partio /dev/hda3label=outroSO Ser carregado caso outroSO seja escolhido

    Instalao e compilao de aplicativos

    No Linux a grande maioria dos aplicativos sero encontrados em seu estadonatural, ou seja, em cdigo fonte, geralmente na linguagem C.

    Nesta parte do treinamento aprenderemos como compilar tais aplicativos etorn-los executveis.

    Sempre leia o arquivo README e/ou INSTALL.Geralmente fazemos apenas:

    ./configuremakemake install

    oO gccEm minha opinio o melhor compilador C existente. O kernel do Linux foi

    feito para ser compilado no compilador C da GNU (o gcc).Ele possui diversas caractersticas importantssimas:

    Total compatibilidade com o ANSI C

    Recursos de otimizao de cdigo automticosPara compilar um programa em C, use:gcc arquivo.c -o arquivoBinrioAserGerado

    oO comando ./configureA grande maioria dos aplicativos possui uma opo de configurao que se

    trata do comando ./configure. Este comando faz com que a aplicao verifique todas asnecessidades para a compilao de um programa, tais como bibliotecas e outros aplicativose o sistema operacional em uso. Geralmente podemos utilizar ./configure -

  • 8/3/2019 Treinamento avanado em linux

    43/62

    prefix=/dir/a/ser/instalado para especificar um diretrio onde a aplicao dever serinstalada.

    Observe atentamente possveis erros aqui, como a falta de bibliotecasinstaladas no sistema.

    Quando falta uma biblioteca, devemos instal-la antes de prosseguir.Para isto, basta acessar www.freshmeat.net e

    procurar pela biblioteca faltante.Ao baix-la, descompact-la e entrar no diretrio, dando ./configure.Aps isto, make e make install.Verificar se o diretrio em que a biblioteca foi instalada est em

    /etc/ld.so.config, caso no esteja, inserir.Aps isto, digite ldconfig.

    oMdulos do perlPerl uma grande linguagem de programao e muitas aplicaes

    necessitaram dele. Ele funciona modularizado (assim como o kernel do Linux). Parainstalar um novo mdulo, entre no diretrio do mesmo e digite:

    perl Makefile.plmakemake install

    oO comando makeO comando make l as instrues de um arquivo Makefile no diretriocorrente e atravs destas, compila um programa com cdigos separados ecom as opes do compilador que se fazem necessrias. Aps o./configure a grande maioria das aplicaes pedem o make.

    oO comando make install

    Este comando apenas copia os binrios gerados pelo comando make paraseus respectivos locais dentro do sistema.

    oQuando ocorrem os problemas...Problemas ocorrem quando estamos fazendo algo errado. Tem certeza

    que leu o arquivo README e INSTALL e l no fala nada de diferente para a instalao??Sim?

  • 8/3/2019 Treinamento avanado em linux

    44/62

    Ok, ento verifique as dependncias, ou seja, verifique se no faltamaplicativos ou bibliotecas, lembre-se de sempre ver as mensagens de erro que aparecem,tanto no configure quanto no make.

    Dificilmente uma aplicao conter erros e estar disponvel paradownload, mas muitas vezes ser necessrio modificar alguma opo no compatvel com oseu sistema. Verifique os erros de compilao e baseado em conhecimento de programao(caso voc no tenha, ou pea para quem tem ou tente baixar outra verso ou j binrio)tente arrumar.

    oGerenciamento de pacotes RPMOs pacotes RPM foram inventados pela RedHat Linux e fazem parte do

    projeto de desmistificao do Linux, tornando-o um sistema operacional mais facilmente

    gerencivel e acessvel a usurios caseiros.Os pacotes possuem extenso .RPM e so pr-compilados (no estamos

    falando dos SRPMs).Instalando

    Para instalar um pacote RPM faa:rpm -ivh pacote.rpm

    RemovendoPara remover um pacote RPM faa:

    rpm -e nomedopacoteAtualizando

    Para atualizar um pacote RPM faa:rpm -uvh pacote.rpmPesquisando

    Para pesquisar se determinado pacote RPM est instalado faa:rpm -qa |grep NOME

    A opo -qa lista todos os instalados e o |grep procura pelo nome,j que geralmente no sabemos o nome, seno poderamosutilizar diretamente rpm -q nome.A sada do rpm -qa o que deve ser utilizado pelo rpm -e quandose deseja excluir um pacote

  • 8/3/2019 Treinamento avanado em linux

    45/62

    Erros ComunsFalha nas Dependncias:

    Falta algum aplicativo que este precisa para instalar. Casovoc tenha instalado tal aplicativo, mas o sistema no estejareconhecendo (voc no instalou como RPM), use a opo -nodeps.Pacote mais atualizado j instalado:

    Quando voc tenta instalar um pacote mais antigo do que umj instalado, utilize a opo -oldpackage para forar a instalao.Pacote j instalado:

    Quando voc deseja instalar um pacote j instalado (talvez oque esteja instalado esteja com problemas), utilize a opo -replacepkgs.

    Arquivos conflitam:Isto acontece quando um pacote que est sendo instalado irsubstituir um arquivo existente. Nestas ocasies use a opo -replacefiles.Opo -force:

    Une -oldpackage + --replacepkgs + --replacefiles.

    Configurando o NFSNetwork File System (NFS) consiste em um servio muito utilizado no

    mundo UNIX e obviamente portado para o Linux para o compartilhamento de arquivos emrede.

    Ele permite se acessar uma mquina remota, montando-a em sua prpriacomo um dispositivo qualquer, permitindo assim um acesso simples, como a um diretriolocal.

    oEscolhendo os diretrios a compartilharOs diretrios que desejarmos compartilhar devem ser mencionados no

    arquivo /etc/exports.A sintaxe deste arquivo segue o seguinte exemplo:

    /home/focker 192.168.0.*(ro)Primeiramente temos o diretrio a ser compartilhado: /home/fockerMquinas que podem acessar o compartilhamento:192.168.0.* --> ClasseCPermisses de acesso: ro --> Somente LeituraObserve que por mais que voc compartilhe com permisses de leitura e

    escrita (rw) necessrio que no sistema de arquivos local, tal permisso tambm seja dada atodos no sistema, isto devido ao fato de que as permisses do sistema local sobressaem-sesobre as do NFS.

    oAtualizando tabela de arquivos compartilhados

  • 8/3/2019 Treinamento avanado em linux

    46/62

    Para atualizar a tabela de arquivos compartilhados devemos utilizar ocomando exportfs -a.

    oPortmapServio necessrio para o bom funcionamento do NFS e de qualquer

    servio baseado em RPC (Remote Procedure Call).RPC foi inventado pela Sun para que servios no utilizassem uma porta

    fixa para rodar.Devido ao fato de no rodar em uma porta fixa, faz-se necessrio que

    algum servio indique aos clientes que tentem acessar em qual porta o servidor estrodando, esta a funo do Portmap.

    oAcionando o PortmapPara ativar o portmap basta cham-lo na linha de comando e no caso do

    Conectiva ainda tem-se a opo:

    cd /etc/rc.d/init.d./portmap startoAcionando o NFS

    Aps todas estas configuraes feitas, deve-se acionar o NFS. Chame-o nalinha de comandos (nfsd).

    No Conectiva:cd /etc/rc.d/init.d./portmap start

    oVerificando arquivos compartilhados pela mquinaPara verificar quais arquivos esto sendo compartilhados por uma

    mquina, faa: showmount -e IPNo caso de voc estar na mquina que voc quer ver, apenas faa

    showmount -e.oVerificando clientes que esto acessando os arquivos

    compartilhadosPara se verificar quais clientes esto acessando a mquina, faa:

    showmount IPCaso voc esteja na mquina, faa apenas showmount.

    SAMBA

    Samba como todos devem saber um sistema integrado para Linux que faz com queeste suporte o protocolo NetBEUI, classicamente utilizado pelos produtos Microsoft

  • 8/3/2019 Treinamento avanado em linux

    47/62

    Entendendo o Funcionamento do NetBIOS

    Os aplicativos de impresso e compartilhamento de arquivos so baseados noNetBIOS (network basic input output system). O BIOS define a interface de aplicaespara solicitar servios de I/O no DOS. O NetBIOS extende esta interface at os servios derede.

    A evoluo do NetBIOS fez com que funcionasse sobre o TCP/IP e fosse divididoem em partes.

    No nos aprofundaremos no estudo deste protocolo e sim como fazer com que oLinux se comunique com as mquinhas Windows em uma rede.Entendendo o Funcionamento do Samba muito importante lembrar que o programa se chama SAMBA devido ao nome dado a

    uma das partes do NetBIOS: SMBPara entendermos melhor o funcionamento do Samba, precisaremos saber um pouco

    mais sobre o NetBIOS.Ele precisa mapear os nomes dos computadores NetBIOS para um endereo IP, para

    isto, o NetBIOS possui 3 modos:Via BroadcastVia lmhosts

    Via um servidor de Nomes NetBIOS

    Configurando um servidor SAMBA

    Neste treinamento no iremos nos aprofundar no funcionamento de servidores denomes NetBIOS, nem em opes mais avanadas do SAMBA, nos prendendo mais a partede compartilhamento de arquivos propriamente dita.

    A configurao do Samba muito simples e se baseia exclusivamente em umarquivo de configurao: smb.conf

    Vejamos aqui um exemplo da seo principal deste arquivo:

    [global] --> Indica as configuraes vlidas para todoshosts allow = 192.168.0. --> A rede 192.168.0.0 tem permisso de acessar

    workgroup = windows --> Nome do Workgroup que deve ser colocadonas estaesnetbios name = server --> Nome NETBIOS do Servidor SAMBAserver string = Firewalls Samba Server --> String de Apresentaosecurity = share --> Especifica que a segurana esta no

    compartilhamento

    log file = /log/samba/%m.log --> Ser criado um arquivo de log com o nome damquina.log para cada mquina que acessar o

    servidor samba. Este arquivo ser criado em/log/samba. Observar que %m uma varivel. Ela

  • 8/3/2019 Treinamento avanado em linux

    48/62

    que ser substituda pelo nome da mquina queestiver acessando o compartilhamento.

    guest account = nobody --> Permitir acesso a usurios no autenticados

    Compartilhando Diretrios atravs do SAMBA

    Como pudemos perceber na seo global de nosso arquivo smb.conf, no est sendoespecificado nenhum diretrio que ser compartilhado.

    Iremos fazer isso agora:

    [public] --> Nome do compartilhamentocomment = Espaco Publico --> Comentrio para este compartilhamento

    brownseable = yes --> Poder ser visto por todoscreate mode = 0777 --> Ao ser criado, a permisso ser 0777directory mode = 0777 --> Mesmo para as permisse de diretriopath = /home/Backups --> Localizao do diretrio compartilhado

    no sistemapublic = yes --> Este diretrio tem acesso pblico, todos

    podem acess-loonly guest = yes --> Usurios no autenticados iro acessar

    diretrioread only = no --> No est somente para leitura

    Esta configurao acima um exemplo sutil de um compartilhamento aberto paratodos os indivduos que desejarem acessar.

    Agora, caso se deseje algo mais restrito, poderamos ter compartilhamentosbaseados em usurios (usurio + senha):

    [rodrigo] --> Nome do compartilhamentocomment = Diretorio Rodrigo --> Comentriobrownseable = yes --> Poder ser vistocreate mode = 0770 --> Mscara da criaodirectory mode = 0770 --> Mscara de diretrios

    path = /home/rodrigo --> Localizao na mquinavalid users = @rodrigo --> Usurios que podem acessarread only = no --> Pode-se escrever

    Existem diversas configuraes avanadas que se podem fazer atravs do samba,que sero vistas mais adiantes neste treinamento.

    Obviamente devido a escassez do tempo, muitas delas sero deixadas para que oaluno aprenda sozinho. O principal do caminho lhes ser fornecido.

    Acessando arquivos compartilhados atravs do Linux

  • 8/3/2019 Treinamento avanado em linux

    49/62

    Obviamente os usurios Linux tambm iro querer acessar dados compartilhadospelas mquinas Windows (ou servidores SAMBA).

    Nestes casos, temos trs opes:Utilizar o SMBClientUtilizar o SMBMount

    Utilizar o comando mount -t smbfs

    A terceira opo chama a segunda quando executada no sistema, portanto noiremos explic-la.

    Nenhuma das duas opes necessitam configuraes da mquina Linux queacessar os compartilhamentos.

    Basta fazer:smbclient \\\\servidor\\compartilhamento -U

    ou

    smbmount \\\\servidor\\compartilhamento username=A grande diferena entre as duas opes anteriores est no fato do SMBMOUNT

    criar um ponto de montagem para o compartilhamento remoto, permitindo assim que oacessemos como um diretrio local, enquanto o smbclient possui um cliente especfico.

    Fazendo uma mquina Windows se autenticar no Linux

    Chegamos a parte mais complexa de nosso pequeno estudo sobre o SAMBA.Devido a grande demanda de servios pedido para diversos consultores do mercado,

    relativos a utilizao de um servidor SAMBA (em linux) para fazer a autenticao ecompartilhamento dos dados para uma rede windows, estaremos ensinando como executartal servio.

    Nesta etapa do treinamento, seu instrutor e voc j montaram um servidor SAMBAem Linux, o acessaram atravs de outro Linux, e com mquinas no mesmo workgroup,trocaram arquivos entre Windows e Linux.

    Agora iremos para a parte mais interessante, como fazer estas mquinas Windowsse autenticarem e execurarem scripts de LOGON que esto no nosso sistema Linux.

    A primeira etapa envolver a configurao dos clientes Windows:- Entre no Registro- Siga at o seguinte item:

    /HKEY_LOCAL_MACHINE/System/CurrentControlSet/Services/VxD/VNETSUP - Crie uma chave com o nome: EnablePlainTextPassword- E com contedo: 1

    Isto foi feito para habilitar senhas em texto puro no sistema Windows, j que eleutiliza um esquema de criptografia diferente de nossas mquinas Linux.

    Obviamente isto gera um certo grau de periculosidade em redes, portantorecomendamos fortemente o estudo de implementaes SAMBA com criptografiahabilitada.

    - Agora, nas propriedades do ambiente de rede, escolha a opo de Clientede Redes Microsoft.

  • 8/3/2019 Treinamento avanado em linux

    50/62

    - Na aba apropriada escolha a opo de efetuar logon em um domnio NT.- Coloque o nome do Workgroup.

    Pronto, sua mquina Windows est pronta, vamos para a parte mais gostosa,configurar nosso servidor Linux!

    Criemos o compartilhamento NetLogon, onde ficaro nossos scripts de logon:

    [netlogon]

    comment = Network Logon Service

    path = /home/Samba/netlogon

    public = no

    writable = no

    browsable = no

    Feito isso, iremos ter de alterar e acrescentar algumas opes em nossa seo globaldo arquivo smb.conf:

    domain logons = yes --> Indica que ser servidor de LOGONsecurity = user --> Segurana para usuriosdomain master = yes --> Ser o mestre do domniopassword level = 5 --> Senhas de no mnimo 5 dgitosusername level = 5 --> Usurios com no mnimo 5 letrassmb passwd file = /home/Samba/private/smbpasswd--> Arquivo de senhaslogon script = %m.bat --> Script de logon

    Vejamos alguns detalhes deste arquivo acima.

    Estamos especificando um arquivo de senhas, portanto devemos cri-lo, mas antestemos de saber que o usurio a ser criado no SAMBA deve existir no sistema.

    Para criarmos tal usurio, fazemos:smbpasswd -a

    Ser solicitada a senha do usurio.Caso se deseje modificar, use smbpasswd (sem a opo -a)

    Como podemos perceber a senha para o sistema e para o SAMBA ser diferente.

    Aps termos criado este arquivo de senhas, devemos nos atentar para a TAG logonscript = %m.bat

    Ela ir procurar o script de logon no diretrio netlogon que criamos no sistema.

    O arquivo ter o .bat

  • 8/3/2019 Treinamento avanado em linux

    51/62

    Obviamente a extenso .bat foi mantida apenas para fins de facilitar a visualizao,o Linux no far diferena para isto.

    Poderamos tambm substituir o %m por %u, especificando assim um script delogon por usurio especfico.

    Claro, tambm poderamos simplesmente colocar o nome do script, sendo este nicopara todos.

    Vamos agora ver um exemplo de script de logon:

    vi scriptLogon.bat:

    net time \\192.168.0.1 /set /yes

    net use r: \\192.168.0.1\public

    Mas o que isso?Estes comandos sero executados assim que um usurio se logar em nosso servidor,

    ou seja, o primeiro comando apenas acerta a hora da mquina do usurio que est selogando com a hora de nosso servidor, facilitando assim o monitoramento das atividadesdos usurios.

    O segundo comando mapeia o compartilhamento pblico que criamos para o R: dousurio que est se autenticando.

    Configurando o SSHD

    O SSH veio para substituir as fraquezas encontradas com o TELNET. Elefornece recursos para administrao remota criptografada.

    Seu arquivo de configurao comumente fica em /etc/ssh/sshd_config epara ativ-lo basta digitarmos sshd, j que ele vem pr-configurado.

    O servidor SSH l os arquivos de configurao /etc/hosts.allow e/etc/hosts.deny assim como o TCP Wrappers.

    oRetirando a compatibilidade com a Verso 1 importante atentarmos para isto, j que tal compatibilidade possua uma

    vulnerabilidade em algumas verses do OpenSSH.Mude a linha:

    Protocol 2,1 do arquivo de configurao para Protocol 2

    oRetirando o uso da diretiva UseLoginA diretiva UseLogin tambm possua vulnerabilidade em algumas verses

    do OpenSSH, portanto convm desabilit-la (atente que esta vem desabilitada por padro).Para isto, basta alterar:

  • 8/3/2019 Treinamento avanado em linux

    52/62

    UseLogin yes para UseLogin no

    oAumentando a chave criptogrficaVoc pode querer aumentar o tamanho da chave criptogrfica a ser

    negociada com o servidor. Para isto basta alterar a diretiva:ServerKeyBits 624

    Para:ServerKeyBits 2048 por exemplo, como eu costumo recomendar.

    Deixe pelo menos 1024 bits de chave criptogrfica.

    oPermitindo ao root se logar remotamente

    Isto no nem um pouco recomendado, mas no sei por qual motivo insanovoc pode necessitar disto, portanto ensinarei aqui.

    Lembre-se voc pode logar-se remotamente com um usurio e utilizar o supara se tornar root.

    Caso deseje se logar diretamente como root, use a diretiva:PermitRootLogin yes

    Configurando o ProFTPdEu recomendo fortemente o uso do ProFTPd sobre o WU FTPD (padro

    na maioria das distribuies, no no Slackware 8.0).Esta recomendao devida ao fato do servidor Wu FTPD possuir muitas

    vulnerabilidades e um histrico de falhas muito grande e o proftpd ter sido feito com grandenfase em segurana.

    Abaixo coloco um exemplo de um arquivo de configurao do proftpd eexplico suas diretivas mais importantes.

    Preste ateno que o proftpd possui MUITOS recursos. Para conhecertodos eles, acesse o site www.proftpd.org e veja o manual.

    O proftpd l os arquivos /etc/hosts.allow e /etc/hosts.deny assim como oTCP Wrappers.

    Arquivo: /etc/proftpd.conf

    ServerName "Firewalls Security FTP Server" Nome do servidorServerType standalone Tipo: pode ser standalone ou inetd para rodar sob o inetdDefaultServer onPort 21 Escutar na porta 21Umask 022MaxInstances 30

  • 8/3/2019 Treinamento avanado em linux

    53/62

    User nobody Rodar com permisses do usurio nobodyGroup nobodyRootLogin no No permitir o root se logar via ftpDisplayConnect /etc/welcome.FTPServerIdent on "Bem Vindo"

    AllowOverwrite on Permite sobrescrever arquivos em qualquer diretrio Usurio anonymous cair no home do usurio ftp

    User ftp Logar como usurio ftpGroup ftpUserAlias anonymous ftp Permite entrar com user=anonymous que virar ftpMaxClients 10 Mximo de conexes annimas permitidas

    Deny All No permite nenhum usurio anonymous escrever no sistema

    Configurando o BIND

    oEntendendo o DNSNa internet as mquinas se comunicam atravs de um nmero nico que

    identifica cada uma (o IP).Este nmero possui 32 bits, separados em 4 grupos de 8 bits cada.Obviamente humanamente impossvel e invivel lembrar-se de tantos

    nmeros.

    Para isto foi criado um sistema que facilita o processo de comunicaoentre as mquinas.Este o sistema de DNS.Ele possibilita que demos um nome ao invs de um IP para as mquinas.Na verdade a comunicao continua sendo via IP, mas ns fornecemos

    um nome e o servidor de DNS retorna o IP para a comunicao.Claramente este um sistema hierrquico (seria impossvel um nico

    servidor conhecer os nomes de mquinas da internet toda).Quero dizer hierrquico porque cada DNS responsvel por uma faixa

    de Ips e quando recebe uma consulta a um IP que ele no o responsvel ele lana estaconsulta um nvel acima at chegar no servidor que seja o real responsvel.

  • 8/3/2019 Treinamento avanado em linux

    54/62

    oConfigurando uma Zona de ExemploVamos iniciar a configurao de um servidor DNS de exemplo.Primeiramente devemos conhecer o domnio que queremos configurar.Como exemplo, configuraremos o domnio firewalls.com.br.

    Edite o arquivo /etc/named.conf:options { Opes globais

    directory "/etc/named". Os arquivos ficaro em /etc/named};zone "firewalls.com.br" { Domnio firewalls.com.br

    type master; DNS masterfile "firewalls.named"; Arquivo /etc/named/firewalls.named

    };zone "118.158.in-addr.arpa" { Zona Reversatype master; DNS masterfile "firewalls.rev"; Arquivo /etc/named/firewalls.rev

    };zone "." { Zona . (Primeira hierrquia=

    type hint; Tipo HINT (root servers)file "named.ca"; Arquivo que j vem padro (root servers)

    };zone "0.0.127.in-addr.arpa" { Zona reversa do localhost

    type master; Servidor DNS master

    file "local.rev"; Arquivo /etc/named/local.rev};

    oConfigurando uma Zona Reversa de ExemploArquivo /etc/named/local.rev:$TTL 24h ; tempo que permite outros DNS fazerem cache@ IN SOA localhost. root.localhost. {

    1 ; para servidor slave28800 ; ciclo de atualizao do slave14400 ; ciclo de tentativas do slave antes da prxima em caso de

    erro3600000 ; tempo limite para que o slave passe a responder86400 } ; TTL padro do domnio

    IN NS localhost. ; DNS do domnio ser LOCALHOST

    1 IN PTR localhost. ; IP 1 host localhostArquivo /etc/named/firewalls.rev:$TTL 24h ; tempo que permite outros DNS fazerem cache@ IN SOA ns.firewalls.com.br. root.firewalls.com.br. {

    1 ; para servidor slave28800 ; ciclo de atualizao do slave

  • 8/3/2019 Treinamento avanado em linux

    55/62

    14400 ; ciclo de tentativas do slave antes da prxima em caso deerro

    3600000 ; tempo limite para que o slave passe a responder86400 } ; TTL padro do domnio

    IN NS ns.firewalls.com.br. ; DNS do domnioIN NS nss.firewalls.com.br. ; DNS reserva

    1 IN PTR ns.firewalls.com.br.2 IN PTR nss.firewalls.com.br.3 IN PTR pop.firewalls.com.br.4 IN PTR email.firewalls.com.br.10 IN PTR gateway.firewall.com.br.

    oOs arquivos de ZonasArquivo /etc/named/firewalls.named:

    @ IN SOA ns.firewalls.com.br. root.firewalls.com.br.1 ; para servidor slave28800 ; ciclo de atualizao do slave14400 ; ciclo de tentativas do slave antes da prxima em caso de

    erro3600000 ; tempo limite para que o slave passe a responder86400 } ; TTL padro do domnio

    IN NS ns.firewalls.com.br.IN NS nss.firewalls.com.br.IN MX 10 pop.firewalls.com.br. ; precedncia 10 de emailIN MX 20 email.firewalls.com.br. ; precedncia 20 de email

    ; quanto menor a precedncia maior a preferncians IN A 200.158.118.1nss IN A 200.158.118.2pop IN A 200.158.118.3email IN A 200.158.118.4gateway IN A 200.158.118.10localhost IN A 127.0.0.1

    Configurando o Apache

    oSobreO apache pode ser encontrado em www.apache.org e um servidor WEB muito poderoso egratuito.Atualmente ele vem sendo utilizado por cerca de 60% dos servidores

    WEB do mundo e foi inclusive recomendado pelo GartnerGroup.Com o atual crescimento e onda de vrus e ataques a servidores WEB no

    mundo, o apache ganhou muita confiabilidade devido a sua imunidade a estes ataques e acomprovao de sua extrema segurana.

  • 8/3/2019 Treinamento avanado em linux

    56/62

    oPorque utiliz-loRobustoSeguroRpidoFlexvelAdministrvelCheio de recursos e opesFcil configurao

    oExemplo de configurao

    Aqui forneo um exemplo de configurao do Apache e explico ospontos mais importantes.

    # Configuraes PrincipaisPort 80 Servidor Roda na Porta 80User nobody Roda com permisses do user nobodyGroup nobodyServerType standalone Roda standalone e no sob inetdServerRoot /etc/httpd Arquivos do servidor esto em /etc/httpdMinSpareServers 2 Mnimo de 2 servidores ativos (e sem conexo)MaxSpareServers 4 Mximo de 4 servidores ativos (e sem conexo)StartServers 2 Inicia 2 servidores no comeoMaxClients 150 Mximo de 150 conexes

    # Mdulos (apenas um exemplo, o servidor no funcionar se no# forem declarados outros mdulos necessrios)LoadModule php4_module modules/libphp4.so Identifica mdulo php4 Se for definido SSL (httpd -DSSL)

    LoadModule ssl_module modules/libssl.so Identifica mdulo sslClearModuleList Limpa lista de mdulos carregados

    AddModule mod_php4.c Carrega (insere) mdulo no apacheAddModule mod_ssl.c

    # Hosts VirtuaisNameVirtualHost www.firewalls.com.br Caso uma

    conexo chegue sem o nome de destino,o default ser www.firewalls.com.br

    HostVirtual www.firewalls.com.br

  • 8/3/2019 Treinamento avanado em linux

    57/62

    DocumentRoot /home/httpd/firewalls Documentos se encontram em...ServerName www.firewalls.com.br Nome

    do servidor a ser apresentadoServerAdmin [email protected] Email

    do administrador, caso algum erroocorra

    DocumentRoot /home/httpd/tcpdumpServerName www.br.tcpdump.org ServerAdmin [email protected]

    # Diretrios Diretrio /home/httpd/firewallsOptions Indexes FollowSymLinks Includes ExecCGI Opes de acesso ao

    diretrioAllowOverride None No permite ser sobreposto pelo arquivo .htaccessOrder allow, deny Ordem de permissoAllow from all Permite todos

    Options Indexes FollowSymLinks Includes ExecCGIAllowOverride None

    Order allow, denyAllow from all

    # Arquivos Arquivos nomeados .htaccess

    Order allow, denyDeny from all

    # Logs

    ErrorLog /log/apache/ApacheError.log Log de Erros do ApacheLogLevel warn Logs no nvel de Alerta (normal)AccessLog /log/apache/ApacheAccess.log Logs de Acesso do Apache

    # Opes DiversasUserDir web Diretrio nos homes dos usurios que armazenam suas

    pginas, ser acessado assim: ww.servidor.com.br/~usuario

  • 8/3/2019 Treinamento avanado em linux

    58/62

    DirectoryIndex index.html index.htm index.php Estes arquivosso os ndices das pginas

    AccessFileName htaccess Opes de acesso tambm so encontradas no arquivo.htaccess

    HostnameLookups Off No transforma Ips em NomesAlias /focker /home/httpd/firewalls/focker Apelido para /focker

    # Locations Caso acessem www.servidor.com.br/focker

    Order deny,allow Ordem de permissoDeny from all Probe todosAllow from localhost Exceto da mquina local

    SeguranaoQuesitos para um sistema seguroMuitas pessoas nos perguntam constantemente o que necessrio para se

    montar um sistema seguro.Possivelmente elas se decepcionam com as respostas:

    Basta se manter atualizado e ter uma boa poltica de seguranaIsto quer dizer que devemos agir com segurana, sempre pensar na

    segurana.No existem regras fixas. No existe segurana 100%.O bsico que podemos fazer ser visto aqui, obviamente tcnicas e

    implementaes mais avanadas de segurana existem, mas no caberiam no escopo destetreinamento.

    E vale sempre lembrar:DESABILITE tudo que no for necessrio!!!

    oOnde se atualizarA comunidade de segurana mais lenta do que os crackers devido

    ao fato de segurar mais a informao.

    Obviamente isto no uma verdade 100% absoluta, mas os meios decomunicao dos atacantes realmente funcionam melhor e so mais rpidos.Eles incluem desde programas BATE PAPO famosos como o IRC e

    o ICQ at listas de email e sistemas USENET exclusivos.Os profissionais de segurana e todos os interessados podem contar

    com empresas e rgos que divulgam as informaes nos pases.Um deles o CERT (Computer Emergency and Response Team).Maiores informaes e treinamentos tambm podem ser obtidos

    atravs do curso ISPA 600 - Segurana em Comunicao de Dados e Firewall.Uma lista de discusso sobre o assunto, porm fechada a apenas

    profissionais que trabalham na rea pode ser encontrada atravs do site:

  • 8/3/2019 Treinamento avanado em linux

    59/62

    www.firewalls.com.br/mailman/listinfo/seguranca

    oMontando um firewall linuxEntendendo o iptables

    Netfilter e as iptables so a mais nova inovao em Firewallpara Linux. Finalmente diversos conceitos avanados de Firewall foram implementadospara um sistema Linux.

    Mquinas Linux podem agora substituir carssimas caixaspretas, ou seja, hardwares comerciais feitos exclusivamente para atuarem como Firewallde uma rede.

    Regras de entrada, sada e passagem de pacotes

    Existem 3 possibilidades para um pacote transitando em uma

    com um Firewall e que envolvam este Firewall.1-) O pacote para o FirewallRegra de Entrada: INPUT

    2-) O pacote passar pelo FirewallRegra de Repasse: FORWARD

    3-) O pacote sair do FirewallRegra de Sada: OUTPUT

    Tabelas do iptables

    O Iptables como o prprio nome indica trabalha com tabelas.Existem 3 tabelas no Iptables, a saber:

    1-) Tabela FilterTabela default que trata os pacotes normalmente

    2-) Tabela NATUtilizada em mascaramentos e NAT

    3-) Tabela MangleUtilizada para reescrever informaes dos pacotes

    Obviamente devido ao tempo, iremos tratar apenas da tabela FILTERProibindo protocolos

    Antes de lidarmos com o iptables em si, muito importantesalientarmos que um bom Firewall consiste de um conjunto de regras bem elabor