ou diversos arquivos, na realidade est realizando dois
4451 procedimentos distintos: Empacotar
Linux System Administration e comprimir. Em ambientes Unix-like, essas duas tarefas so realizadas de www.4linux.com.br forma logicamente distintas. Contedo O programa tar, cujo nome deriva de tape archiver, realiza a Compactadores, Empacotadores e Procedimentos de Backup 2 tarefa de concatenar 2.1 Introduo Terica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 todos os arquivos e diretrios preservando as informaes do 2.2 O empacotador cpio . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 filesystem, isto 2.3 O empacotador tar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 , seus meta-dados. 2.4 Compactadores GZIP, BZIP2 . . . . . . . . . . . . . . . . . . . . . . . . 12 Criado com propsito de backup em dispositivos de acesso 2.4.1 Gzip e Bzip2 com Arquivos de Texto . . . . . . . . . . . . . . . . 14 sequencial (unidades 2.4.2 Gzip e Bzip2 com Arquivos Binrios . . . . . . . . . . . . . . . . 16 de fita), o tar utilizado hoje em dia como uma ferramenta de 2.5 Comando dd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 empacotamento, 2 podendo ser utilizado em conjunto com compactadores como gzip ou bzip2. Compactadores, 3 2.1 Introduo Terica 4Linux www.4linux.com.br Empacotadores e A utilizao da ferramenta tar bastante simples. Seguindo o filosofia Unix faa Procedimentos de Backup apenas uma tarefa, mas faa bem feito, o tar um programa especialista em empacotar 2.1 Introduo Terica vrios arquivos. Dessa forma, quando utilizamos os parmetros z A compresso e empacotamento de arquivos e diretrios muito ou j estamos importante em na realidade fazendo uma chamada externa aos comandos gzip qualquer sistema computacional. Ambos os procedimentos so ou bzip2, necessrios desde especialistas em compresso de dados. o ponto de vista de distribuio de softwares, de economia de banda Outros programas que trabalham de forma anloga ao tar so o e de espao dump e cpio. de armazenamento, e de backup do sistema. Veremos neste Ambos foram criados com a mesma finalidade, mas so pouco captulo o principal utilizados hoje em dia, programa de empacotamento GNU/Linux e os dois principais pois no so to versteis quanto o tar. compactadores. Este captulo explica muitas coisas sobre compactao e A forma mais conhecida de realizar compresso e empacotamento empacotamento de arquivos, em ambiente tudo isso extremamente necessrio quando falamos de backup. Windows utilizando o programa Winzip. Um programa que Podemos zipa um arquivo, ter diferentes tipos de backup, so eles: Incremental - O backup incremental visa salvar apenas as -v -> mostrar o que est fazendo em detalhes diferenas em relao -u -> sobrescreve arquivos existentes Ento, vejamos os principais ao ultimo backup completo, por exemplo: Um backup completo grupos de opes acontece e como utiliz-las. Para empacotar o contedo do diretrio /etc no domingo. O incremental salvar os dados de domingo para com o cpio segunda, devemos fazer o seguinte: de domingo para tera, de domingo para quarta, de domingo para 1 # find /etc | cpio -ov > / backup / pacote . cpio quinta, de O comando acima empacotar todos os objetos da sada do domingo para sexta e de domingo para sbado, ou seja, at chegar comando ls /etc. Para no prximo visualizar seu contedo: backup completo. 1 # cpio -iv --list < / backup / pacote . cpio Diferencial -Diferente do incremental, o diferencial, faz apenas os Linux System Administration Pgina 5 incrementos, 2.2 O empacotador cpio 4Linux www.4linux.com.br assim gerando um volume menor de dados. Se o backup completo Vamos renomear o diretrio /etc para /etc.old : 1 # mv /etc /etc.old foi gerado no domingo, ele salva de domingo para segunda, de segunda para Restaure o backup do /etc: 1 # cpio -iv < / backup / pacote . cpio tera, de 2 # ls /etc tera para quarta e assim at o prximo backup completo chegar. Adicione arquivos ao pacote.cpio j criado: Completo - Visa salvar todos os dados, mesmo o que j foram 1 # find / boot | cpio -ov -A -F / backup / pacote . cpio salvos anteriormente, Para visualizar seu contedo: assim fazendo um backup completo de todos os objetos em 1 # cpio -iv --list < / backup / pacote . cpio questo. Adicione um usurio chamado inexistente: Conhecendo os tipos de backup, vamos conhecer algumas 1 # useradd inexistente ferramentas que podem Verifique que ele foi criado no arquivo /etc/passwd: nos ajudar. 1 # tail -n1 /etc/ passwd Crie o diretrio de backup para os nosso testes: O comando cpio somente volta os arquivos, caso ele no exista ou Pgina 4 Linux System Administration ele seja mais 4Linux www.4linux.com.br 2.2 O empacotador cpio recente que o atual: 1 # mkdir / backup Pgina 6 Linux System Administration 2.2 O empacotador cpio 4Linux www.4linux.com.br 2.2 O empacotador cpio O comando cpio empacota arquivos/diretrios, suas principais 1 # cpio -iv < / backup / pacote . cpio opes so: Verifique que os arquivos no foram alterados, pois as datas so -i -> extrair backup mais atuais ou as -o -> criar backup mesmas dos arquivos no pacote: 1 # tail -n1 /etc/ passwd -t -> mostrar uma tabela com o contedo do backup -F -> essa opo especifica o arquivo de backup Para forar a restaurao faa: 1 # cpio -iuv < / backup / pacote . cpio -d -> cria diretrios se necessrio Verifique que no existe mais o usurio inexistente: 1 # tail -n1 /etc/ passwd -j -> comprime ou extrai arquivos tar resultante com o bzip2; Remova o arquivo /etc/passwd: -f -> especifica o arquivo tar a ser usado; 1 # rm -f /etc/ passwd -C -> troca de diretrio, para local de armazenamento ou Restaure apenas o arquivo /etc/passwd: restaurao de dados. 1 # cpio -ivF / backup / pacote . cpio / etc / passwd Vamos empacotar o diretrio /etc e /usr: Linux System Administration Pgina 7 1 # tar -cvf / backup /etc.tar /etc 2.3 O empacotador tar 4Linux www.4linux.com.br 2 # tar -cvf / backup /usr.tar /usr 2.3 O empacotador tar Verifique o tamanho do pacote usr.tar: O que os compactadores como gzip e bzip2 no conseguem fazer, o 1 # du -sh / backup /usr.tar tar (Tape Archives) Podemos utilizar parmetros para reduzir o tamanho do pacote, faz. Ele um aplicativo capaz de armazenar vrios arquivos em um atravs de compactadores s. Porm, como gzip e bzip2. Vamos observar o tempo com o comando time e no capaz de compactar os arquivos armazenados. Como o possvel notar, o tar tamanho dos dois compactadores para vermos suas vantagens e serve de complemento para os compactadores e vice-versa. Por desvantagens. isso, foi criado um Empacotando e compactando com gzip o diretrio /usr: parmetro no tar para que ambos os programas possam trabalhar 1 # time tar -zcvf / backup /usr . tar .gz / usr juntos. Assim, o Empacotando e compactando com bzip2 o diretrio /usr: 1 # time tar -jcvf / backup /usr . tar . bz2 / usr tar "junta"os arquivos em um s e este arquivo, por sua vez, ento Linux System Administration Pgina 9 compactado por 2.3 O empacotador tar 4Linux www.4linux.com.br um dos compactadores suportados pelo tar. Podemos observar que o compactador gzip mais rpido que o O tar tambm consegue gravar a propriedade e as permisses dos bzip2, mas qual arquivos. Ainda, deles fez a melhor compactao: consegue manter a estrutura de diretrios original (se houve 1 # du -sh / backup /usr* compactao com diretrios), O bzip2 faz a melhor compactao, mas em compensao leva um assim como as ligaes diretas e simblicas. tempo maior que A sintaxe do TAR : o gzip. Para visualizar o contedo dos pacotes tar faa: 1 tar [par metros ] [-f arquivo ] [-C diret rio ] [ arquivos ...]. 1# tar -tf / backup /usr.tar.gz Abaixo, segue a lista dos principais parmetros: 2# tar -tf / backup /usr.tar.bz2 -c -> cria um novo arquivo tar; 3# tar -tf / backup /usr.tar -p -> mantm as permisses originais do(s) arquivo(s); 4# tar -tf / backup /etc.tar -r -> acrescenta arquivos a um arquivo tar; Para adicionar arquivos ao pacote j criado utilize o parmetro -r, -t -> exibe o contedo de um arquivo tar; mas somente -v -> exibe detalhes da operao; possvel em pacotes que ainda no foram compactados: Crie um -x -> extrai arquivos de um arquivo tar; arquivo chamado Pgina 8 Linux System Administration aaaaaaaaaaaaaaaaaaa em /etc: 4Linux www.4linux.com.br 2.3 O empacotador tar 1 # touch /etc/ aaaaaaaaaaaaaaaaaaa -z -> comprime ou extrai arquivos tar resultante com o gzip; Adicione ao tar criado: 1 # tar -rf / backup /etc.tar /etc / aaaaaaaaaaaaaaaaaaa estar ciente dessa conveno ou seja, do algoritmo de compresso. Visualize: H dois tipos bsicos de compresso, aquele em que no h perdas 1 # tar -tf / backup /etc.tar de informaes Vamos acessar o diretrio /backup e descompactar o /usr feito com e aquele em que elas ocorrem. Obviamente quando o assunto gzip: backup de informaes Pgina 10 Linux System Administration vitais, devemos utilizar algoritmos sem perdas. J em arquivos de 4Linux www.4linux.com.br 2.3 O empacotador tar imagens, 1 # cd / backup vdeos e udio, h casos que podemos nos dar ao luxo de perdas 2 # tar -zxvf usr.tar.gz de informaes Verifique que o pacote compactado foi descompactado no diretrio em detrimento da qualidade, que em geral praticamente atual e no na imperceptvel para os no raiz: especialistas da rea. 1 # ls Para determinar qual vai ser o ponto inicial para descompactar o Os principais programas de compresso que utilizaremos so o pacote utilize o bzip2 e gzip . O parmetro -C. Descompacte o pacote feito com bzip2 no diretrio bzip2 utiliza os algoritmos Burrows-Wheeler transform e Huffman /mnt: coding; j o 1 # tar -jxvf usr.tar.bz2 -C / mnt gzip utiliza os algoritmos LZ77 e Huffman coding. Todos esses Verifique o diretrio /mnt: algoritmos fazem 1 # ls /mnt parte do grupo dos algoritmos que no ocasionam perdas de dados. Agora delete o diretrio /etc: A forma de utilizao desses comandos bastante simples. Para o 1 # rm -rf /etc gzip, bzip2, Volte o backup feito com o tar a partir do diretrio /: basta fornecer o arquivo de entrada que a compresso se dar no 1 # tar xvf etc.tar -C / prprio arquivo. Verifique: Eis uma diferena entre o tar e esses programas, ele recebe dois Linux System Administration Pgina 11 argumentos, os 2.4 Compactadores GZIP, BZIP2 4Linux www.4linux.com.br arquivos de entrada e o arquivo de sada, ou seja, aqueles a serem 1 # ls /etc empacotados e 2.4 Compactadores GZIP, BZIP2 comprimidos. Compresso de dados o processo de codificar a informao de Verifique que no possvel compactar um diretrio sem empacot- forma que seja possvel lo antes. Tente armazen-la em um nmero menor de bits. Por exemplo, se Pgina 12 Linux System Administration definssemos que 4Linux www.4linux.com.br 2.4 Compactadores GZIP, BZIP2 a palavra compresso passaria a ser abreviada por comp, com o gzip e com o bzip2: 1 # gzip etc estaramos diminuindo 2 # bzip2 etc o nmero de bits necessrios para armazenar esta apostila. Para determinarmos qual o melhor compactador vamos analisar dois Entretanto, para que voc pudesse entender o que comp significa tipos de seria necessrio arquivos: texto puro e binrio. Para isso vamos cri-los. Crie dois arquivos de texto puro. Abra o arquivo texto1 no editor Determine o intervalo de tempo que leva para descomprimir o vim e insira uma arquivo texto1.gz: linha contento os nmeros de 0 a 9: 1 # time gunzip texto1 .gz 1 # vim texto1 Vamos repetir os procedimentos utilizando o bzip2: Determine o 2 0123456789 intervalo de tempo Ainda dentro do vim, copie essa linha e cole 250.000 vezes e que leva para comprimir o arquivo texto2 com bzip2: salve o arquivo: 1 # time bzip2 texto2 1 <ESC > Determine o tamanho final do arquivo texto2 aps ser comprimido 2 yy com bzip2: 3 250000 p 1 # ls -lh texto2 .bz2 4 :x! Determine o intervalo de tempo que leva para descomprimir o Crie uma cpia deste arquivo chamando-a de texto2: arquivo texto2.bz2: 1 # cp texto1 texto2 1 # time bunzip2 texto2 .bz2 Crie um par de arquivos binrios para nossos testes. Utilizaremos Linux System Administration Pgina 15 como base, o 2.4 Compactadores GZIP, BZIP2 4Linux www.4linux.com.br programa aptitude: 2.4.2 Gzip e Bzip2 com Arquivos Binrios Linux System Administration Pgina 13 Utilize a tabela tab:comparacao2 para anotar os resultados obtidos 2.4 Compactadores GZIP, BZIP2 4Linux www.4linux.com.br nos testes com 1 # cp /usr/bin/ aptitude bin1 gzip e bzip em arquivos binrios: Duplique esse arquivo: 1 # cp bin1 bin2 Determine o intervalo de tempo que leva para comprimir o arquivo Verifique que foram criados quatro arquivos com tamanhos bin1 com gzip: 1 # time gzip bin1 parecidos, aproximadamente Determine o tamanho final do arquivo bin1 aps ser comprimido 2.4MB, sendo dois deles binrios e dois texto puro: 1 # ls -lh bin* texto * com gzip: 1 # ls -lh bin1 .gz 2.4.1 Gzip e Bzip2 com Arquivos de Texto Determine o intervalo de tempo que leva para descomprimir o Utilize a tabela tab:comparacao1 para anotar os resultados obtidos arquivo bin1.gz: nos testes com 1 # time gunzip bin1 .gz gzip e bzip em arquivos de texto puro: Vamos repetir os procedimentos utilizando o bzip2: Determine o Vamos iniciar os testes com os arquivos texto. intervalo de tempo Determine o intervalo de tempo que leva para comprimir o arquivo que leva para comprimir o arquivo bin2 com bzip2: texto1 com 1 # time bzip2 bin2 gzip: Determine o tamanho final do arquivo bin2 aps ser comprimido Pgina 14 Linux System Administration com bzip2: 4Linux www.4linux.com.br 2.4 Compactadores GZIP, BZIP2 Pgina 16 Linux System Administration 1 # time gzip texto1 4Linux www.4linux.com.br 2.5 Comando dd Determine o tamanho final do arquivo texto1 aps ser comprimido 1 # ls -lh bin2 .bz2 com gzip: 1 # ls -lh texto1 .gz Determine o intervalo de tempo que leva para descomprimir o arquivo bin2.bz2: Backup com ferramentas XFS 1 # time bunzip2 bin2 .bz2 3.1 Introduo Terica 2.5 Comando dd O XFS um sistema de arquivos de alta performance com suporte a O comando dd tem a capacidade de copiar bit a bit. Segue um journaling, que exemplo de seu teve origem na plataforma IRIX da SGI. completamente multi- uso: FAZER PARTIO MENOR E COPIAR processo, e pode 1 # dd if =/ dev/ sda3 of =/ dev/ sda11 suportar grandes sistemas de arquivos com atributos estendidos, O comando acima efetuar a clonagem da partio sda3, para a tamanho de blocos partio sda11. varivel. O XFS baseado em extents e utiliza bem o uso de Btrees Cuidado com o comando dd, qualquer falta de ateno pode (diretrios, danificar o sistema, extenses, e espao livre) para ajudar no ganho de performance e de forma irrecupervel. escalabilidade. Onde: if=/dev/sda3 3.2 Gerenciando backup em parties XFS O nome do arquivo de entrada. Existem diversas ferramentas para gerenciar parties do tipo XFS, of=/dev/sda11 em nossa pratica Linux System Administration Pgina 17 vamos manipular a aplicao do sistema de arquivos, backup e restore no sistema 4451 de arquivos XFS. Antes de usar os comandos prepare sua infra adicionando um novo Linux System Administration disco para o backup. Um novo disco sera usado em /dev/sdb para www.4linux.com.br as tarefas, sendo que a primeira partio /dev/sdb1 deve conter 2GB e a segunda Contedo 6GB: Backup com Ferramentas XFS 2 Aplicando sistema de arquivos XFS 3.1 Introduo Terica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 O comando mkfs.xfs usado para aplicar sistema de arquivos XFS 3.2 Gerenciando backup em parties XFS . . . . . . . . . . . . . . . . . . 3 em uma partio. 3.3 Gerar backup com xfsdump . . . . . . . . . . . . . . . . . . . . . . . . . 4 O comando tambm pode ser usado com a flag -t como em mkfs -t 3.4 Restaurando backup com xfsrestore . . . . . . . . . . . . . . . . . . . . 8 xfs. 3.5 Criar e Restaurar Backup Remoto . . . . . . . . . . . . . . . . . . . . . 9 3 Agendamento de Tarefas 12 3.3 Gerar backup com xfsdump 4Linux www.4linux.com.br 1 # mkfs .xfs /dev/ sdb1 3.6 Introduo Terica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 2 Ou 3.6.1 Agendamento de Tarefas com AT . . . . . . . . . . . . . . . . . 15 3 # mkfs -t xfs /dev/ sdb2 3.6.2 Agendando Tarefas com o CRON . . . . . . . . . . . . . . . . . 19 Como a partio j possui o sistema de arquivos XFS, crie o ponto 3.6.3 Restringindo o uso do crontab . . . . . . . . . . . . . . . . . . . 24 de montagem, 2 monte a partio e faa a cpia de novos arquivos. 1 # mkdir / media /xfs 15 xfsdump : level 0 dump of debian :/ media / xfs 2 # mount -t xfs /dev/ sdb1 / media / xfs 16 xfsdump : dump date : Thu Apr 26 16:05:12 2012 3 # cp -R /var / media /xfs 17 xfsdump : session id: ce153353 -0 d33 -4 fc5 -aa88 -10274 eeaff4b 18 xfsdump : session label : " backup " 3.3 Gerar backup com xfsdump 19 xfsdump : ino map phase 1: constructing initial dump list O comando xfsdump utilizado para fazer backup de arquivos com 20 xfsdump : ino map phase 2: skipping (no pruning necessary ) seus atributos 21 xfsdump : ino map phase 3: skipping ( only one dump stream ) em um sistema de arquivos. O xfsdump examina os arquivos e 22 xfsdump : ino map construction complete determina quais 23 xfsdump : estimated dump size : 171053504 bytes precisam ser salvos (backup), e copia esses arquivos para um disco 24 especificado, 25 ==================== dump label dialog ==================== como fita magntica ou outra mdia de armazenamento. 26 27 please enter label for media in drive 0 ( timeout in 300 sec ) A ferramenta usa diretivas especficas do XFS para otimizao, e 28 -> quit ( Digite o comando para sair do prompt do xfsdump ) tambm sabe como 29 salvar os atributos extensos do XFS. Os backups criados pelo 30 ----------------------- end dialog ----------------------- xfsdump so do tipo 31 "endian safe"e assim podem ser transferidos entre mquinas Linux 32 xfsdump : creating dump session media file 0 ( media 0, file 0) de diferentes arquiteturas 33 xfsdump : dumping ino map e tambm entre mquinas IRIX. 34 xfsdump : dumping directories Crie um local para nosso backup em /media usando a segunda 35 xfsdump : dumping non - directory files partio de 6GB 36 xfsdump : status at 16:05:46: 1/3842 files dumped , 0 ,0% data dumped 1 # mkdir / media / backup , 2 # mount -t xfs /dev/ sdb2 / media / backup Linux System Administration Pgina 5 Use o comando xfsdump para fazer o backup da partio /dev/sdb1 3.3 Gerar backup com xfsdump 4Linux www.4linux.com.br 34 seconds elapsed Pgina 4 Linux System Administration 37 xfsdump : ending media file 4Linux www.4linux.com.br 3.3 Gerar backup com xfsdump 38 xfsdump : media file size 160228640 bytes 1 # xfsdump -l 0 -p 30 -f / media / backup / backup .0. dump / media / xfs 2 39 xfsdump : dump size (non -dir files ) : 158883080 bytes 3 xfsdump : using file dump ( drive_simple ) strategy 40 xfsdump : dump complete : 38 seconds elapsed 4 xfsdump : version 3.0.4 ( dump format 3.0) - Running single - threaded 41 xfsdump : Dump Status : SUCCESS 5 Opes utlizadas: 6 ==================== dump label dialog ==================== -l: Especifica um nvel de dump de 0 a 9. O nvel de dump 7 determina o que 8 please enter label for this dump session ( timeout in 300 sec ) sera armazenados no backup. Um dump de de nvel 0 absoluto 9 -> backup ( Digite o nome do rotulo e tecle Enter ) onde todos 10 os arquivos so armazenados. Um nvel de dump 1 a 9 referido 11 session label entered : " backup " 12 como um 13 ----------------------- end dialog ----------------------- dump incremental. Apenas os arquivos que foram alterados desde o 14 dump de base (nivel 0) so despejados. 11 xfsdump : ino map phase 3: skipping ( only one dump stream ) -p: Faz com que relatrios de progresso sejam impressos no 12 xfsdump : ino map construction complete intervalo especificado 13 xfsdump : estimated dump size : 38464 bytes 14 (intervalo dada em segundos). O relatrio indica quantos arquivos 15 ==================== dump label dialog ==================== foram despejadas, o nmero total de arquivos para descarregar, a 16 please enter label for media in drive 0 ( timeout in 300 sec ) porcentagem 17 -> backup ( Digite o nome do rotulo e tecle Enter ) de dados, objeto de dumping, e o tempo decorrido. 18 media label entered : " backup " -f: Especifica um destino de despejo. Um destino pode ser o 19 caminho de um 20 ----------------------- end dialog ----------------------- dispositivo (como uma unidade de fita), um arquivo regular ou uma 21 xfsdump : creating dump session media file 0 ( media 0, file 0) unidade de 22 xfsdump : dumping ino map fita remota. 23 xfsdump : dumping directories Onde foi parar o backup da partio /dev/sdb1? 24 xfsdump : dumping non - directory files 25 xfsdump : ending media file Como resultado do comando foi criado um arquivo com a extenso 26 xfsdump : media file size 33968 bytes .dump no diretrio 27 xfsdump : dump size (non -dir files ) : 10304 bytes /media/backup. Atravs deste arquivo podemos restaurar o backup 28 xfsdump : Dump Status : SUCCESS completo da Linux System Administration Pgina 7 partio /dev/sdb1. 3.4 Restaurando backup com xfsrestore 4Linux www.4linux.com.br Como incrementar o backup com apenas arquivos alterados? Como resultado do comando foi criado um novo arquivo com a Primeiro faa uma alterao na partio gravando um novo arquivo extenso .dump no ou alterando diretrio /media/backup (backup.1.dump). Neste arquivo temos o arquivos j gravados. incremento da partio Pgina 6 Linux System Administration (o que tem de novo). Compare o tamanho dos dois arquivos: 4Linux www.4linux.com.br 3.3 Gerar backup com xfsdump 1 # cd / media / backup 1 # echo " Esta uma nova altera o" >> / media / xfs / var / log / mail . 2 # ls -lh log 3 -rw -r--r-- 1 root root 153M Abr 26 16:29 backup .0. dump Use o comando xfsdump para criar um backup do contedo alterado 4 -rw -r--r-- 1 root root 34K Abr 26 16:40 backup .1. dump (backup incremental) 1 # xfsdump -l 1 -p 30 -f / media / backup / backup .1. dump / media / xfs 3.4 Restaurando backup com xfsrestore 2 O comando xfsrestore executa a funo reversa do xfsdump; 3 xfsdump : using file dump ( drive_simple ) strategy podendo restaurar uma 4 xfsdump : version 3.0.4 ( dump format 3.0) - Running single - threaded cpia de segurana completa de um sistema de arquivos. Backups 5 xfsdump : level 1 incremental dump of debian :/ media / xfs based on incrementais level 0 dump begun subsequentes podem ser colocados depois em cima do backup 6 xfsdump : dump date : Thu Apr 26 16:40:17 2012 completo. Arquivos 7 xfsdump : session id: ff2f5ed8 -977c -417e -8538 -40513 baf6939 nicos e subdiretrios podem ser restaurados a partir de backups 8 xfsdump : session label : " backup " completos ou 9 xfsdump : ino map phase 1: constructing initial dump list parciais. 10 xfsdump : ino map phase 2: pruning unneeded subtrees Primeiro crie um novo local para armazenar o backup restaurado, e 1 # xfsrestore -f / media / backup / backup .0. dump / media / xfs use o comando 3.5 Criar e Restaurar Backup Remoto xfsrestore para restaurar o backup incremental: A pratica bem parecida com o procedimento local mudando 1 # mkdir / backup apenas, comandos 2 # xfsrestore -f / media / backup / backup .1. dump / backup / 3 adicionados para a conexo remota e a compactao dos arquivos. 4 xfsrestore : using file dump ( drive_simple ) strategy Em nossa infra 5 xfsrestore : version 3.0.4 ( dump format 3.0) - Running single - Linux System Administration Pgina 9 threaded 3.5 Criar e Restaurar Backup Remoto 4Linux www.4linux.com.br 6 xfsrestore : searching media for dump vamos precisa de 2 maquinas com SSH. 7 xfsrestore : examining media file 0 Maquina 1: Debian 6 com IP 192.168.200.1 (pacote xfsdump 8 xfsrestore : dump description : instalado) 9 xfsrestore : hostname : debian Maquina 2: CentOS 6 com IP 192.168.200.2 (pacote xfsdump 10 xfsrestore : mount point : / media / xfs instalado) Pgina 8 Linux System Administration Backup Completo via SSH 4Linux www.4linux.com.br 3.5 Criar e Restaurar Backup Remoto Na maquina Debian 6 use o comando xfdump para criar um backup 11 xfsrestore : volume : /dev/ sdb1 completo do 12 xfsrestore : session time : Thu Apr 26 16:40:17 2012 diretrio /media/xfs. 13 xfsrestore : level : 1 1 # xfsdump -l 0 -L backup - / media / xfs | gzip | ssh root@192 14 xfsrestore : session label : " backup " .168.200.2 dd of =/ backup / backup$ ( date +%d -%m -%Y).gz 15 xfsrestore : media label : " backup " 16 xfsrestore : file system id: 3 eca0743 -cfa5 -45 b4 -8376 - Descrio das opes utilizadas: c892e3793511 xfsdump -l 0 -L backup - /media/xfs | : Comando usado para criar 17 xfsrestore : session id: ff2f5ed8 -977c -417e -8538 -40513 baf6939 o backup 18 xfsrestore : media id: ddf5382d -3770 -4 aef -861f- e390edf46cd5 completo (-l 0) do diretrio /media/xfs com o label "backup"; 19 xfsrestore : using online session inventory gzip | : O resultado do comando xfsdump sera compactado atraves 20 xfsrestore : searching media for directory dump deste comando; 21 xfsrestore : reading directories ssh root@192.168.200.2 : Envia o backup compactado para a 22 xfsrestore : 3 directories and 54 entries processed maquina remota; 23 xfsrestore : directory post - processing dd of=/backup/backup$(date +%d-%m-%Y).gz : Na maquina 24 xfsrestore : restoring non - directory files remota o backup 25 xfsrestore : restore complete : 0 seconds elapsed compactado sera gravado em um arquivo (dd of) com a data atual 26 xfsrestore : Restore Status : SUCCESS Toda a estrutura de diretrios com o arquivo auth.log foi restaurado. em Liste o conteudo /backup. do diretrio /backup e comprove a restaurao. Atravs da linha de comando em nosso exemplo, o backup foi criado 1 # ls -l / backup /var/log/ auth . log de forma remota 2 -rw -r----- 1 root root 9422 Abr 26 16:38 / backup / var / log / auth . log na maquina CentOS no diretrio /backup. No esquea de criar este Caso precise de uma restaurao completa do /dev/sdb1, use o diretrio na comando: maquina CentOS. Restore completo via SSH Pgina 10 Linux System Administration Agendamento de Tarefas 4Linux www.4linux.com.br 3.5 Criar e Restaurar Backup Remoto Para restaurar use o comando xfsrestore na maquina Debian 3.6 Introduo Terica apontando o diretrio A crontab utilizada para agendar comandos que sero de destino: executados periodicamente, 1 # ssh root@192 .168.200.2 "dd if =/ backup / backup30 -04 -2012. gz" | ao contrrio do comando at, que executa comandos pontualmente. gunzip -c | xfsrestore - / mnt / H dois Descrio das opes utilizadas: tipos de crontab: a de usurios e a do sistema. Ambas so ssh root@192.168.200.2 : Recebe o backup compactado da arquivos que contm maquina remota; tabelas com informao de quando o comando especificado deve dd if=/backup/backup30-04-2012.gz | : Na maquina remota o ser executado, backup compactado sendo que cada linha corresponde a um nico agendamento. sera lido atravs de um arquivo (dd if); A crontab gerenciada pelo daemon crond, que a cada um gunzip -c | : O resultado do comando anterior sera minuto verifica se h descompactado atraves algum agendamento que deve ser executado e, se houver, executa- deste comando; o. xfsrestore - /mnt/backup/ : Comando usado para restaurar o A crontab dos usurios pode ser acessada pelo comando: backup da maquina 1 # crontab [-e|-r|-l] remota no diretrio /opt. A tabela fica armazenada em arquivos com o nome do usurio dono Backup incremental via SSH da tabela. J a Na maquina Debian altere um arquivo no diretrio /media/xfs e crie crontab do sistema encontrada no arquivo /etc/crontab e j um backup incremental possui agendamentos (-l 1) na maquina CentOS: para realizar as tarefas que se encontram nos diretrios 1 # echo " Novo conteudo " >> / media / xfs / var / log / auth . log /etc/cron.[hourly|daily|weekly|monthly]. 2 # xfsdump -l 1 -L backup - / media / xfs | gzip | ssh root@192 Sendo que o programa chamado run-parts quem executa os .168.200.2 dd of =/ backup / backup - incremental01 -$( date +%d -%m - referidos agendamentos. %Y). O formato das crontabs dos usurios e do sistema so quase gz iguais. A exceo Restore incremental via SSH que a crontab do sistema possui um campo a mais, como pode ser Para restaurar apenas o que foi incrementado no backup completo: visto a seguir: Linux System Administration Pgina 11 13 3.5 Criar e Restaurar Backup Remoto 4Linux www.4linux.com.br 3.6 Introduo Terica 4Linux www.4linux.com.br 1 # ssh root@192 .168.200.2 "dd if =/ backup / backup - incremental01 1 crontab (usu rios ) -30 -04 -2012. gz" | gunzip -c | xfsrestore - / opt 2 # minuto hora dia ms diaDaSemana comando Dica: Para no precisar informar a senha crie uma configurao 3 com chaves no SSH 4 crontab ( sistema ) entre as maquinas Debian e CentOS! 5 # minuto hora dia ms diaDaSemana USU RIO comando Pgina 12 Linux System Administration A nica diferena entre as duas crontabs que na do sistema h interface de linha de comando do Linux. muito eficiente se um campo aplicado no agendamento para especificar qual o usurio que ir executar o comando de tarefas que sejam disparadas somente uma vez. O at permite o agendado. controle Alm disso cada campo possui um conjunto de valores vlidos, dos usurios que podem agendar comandos atravs dos arquivos sendo eles: /etc/at.allow minuto: varia de 0-59; e /etc/at.deny. Estes arquivos so organizados no formato de um hora: varia de 0-23; usurio por linha. dia: varia de 1-31; Durante o agendamento verificado primeiro o arquivo /etc/at.allow ms: varia de 1-12; (listando quem diaDaSemana: varia de 0-7, sendo: pode executar o comando) e depois /etc/at.deny. Caso eles no 0 ou 7 domingo 1 - segunda-feira 2 - tera-feira 3 - quarta-feira 4 - existam, o agendamento quinta-feira 5 - de comando permitido a todos os usurios. sexta-feira 6 - sbado Verifique se a data e a hora do sistema esto corretas: usurio: um usurio vlido no sistema; Linux System Administration Pgina 15 comando: o path completo para o comando. 3.6 Introduo Terica 4Linux www.4linux.com.br Pgina 14 Linux System Administration 1 # date 4Linux www.4linux.com.br 3.6 Introduo Terica Aps essa verificao podemos comear a realizar agendamentos. Podemos controlar quais usurios podem acessar ou no o cron. Agende para 10 minutos no futuro um backup do diretrio /etc, Para isso colocando seu backup basta criar um dos arquivos: /etc/cron.allow ou /etc/cron.deny. A no diretrio /backup. mesma dica Agende a tarefa de backup: vlida para o comando at: /etc/at.allow ou at.deny. 1 # at HH:mm MM/DD/ YYYY Considerando o formato j listado, podemos realizar agendamentos 2 at > tar zcvf / backup /backup - etc . tar .gz / etc / utilizando alguns 3 at > ( Ctrl + d) operadores que facilitam o trabalho. So eles: Agendada esta tarefa, confirme-a listando todos os agendamentos vrgula (,) -> especifica uma lista de valores, por exemplo: pendentes: 1 # atq 1,3,4,7,8; hifen (-) -> especifica um intervalo de valores, por exemplo: 1-15 Vamos explorar o diretrio onde ficam os agendamentos: (de 1 a 15); # cd /var/spool/cron/atjobs # ls -la asterisco (*) -> especifica todos os valores possveis; # cd /var/spool/at # ls -la barra (/) -> especifica pulos de valores, por exemplo: se no Mostre o contedo dos arquivos contidos nesse diretrio: Pgina 16 Linux System Administration campo hora utilizarmos 4Linux www.4linux.com.br 3.6 Introduo Terica */3 o comando ser executado s 0,3,6,9,12,15,18,21 horas; 1 # cat ( agendamento ) 3.6.1 Agendamento de Tarefas com AT Perceba que no agendamento, temos nossas variveis e o O comando "at"pode agendar tarefas de forma semelhante ao cron, comando. e integrado Vamos realizar outro agendamento qualquer, para executar em 15 Bloqueie o uso do agendador de tarefas at para usurios comuns: minutos, para que 1 # touch /etc/at. allow possamos aprender como apag-lo: Teste o bloqueio com o usurio mandark: 1 # at HH:mm MM/DD/ YYYY 1 $ at 12:00 01/01/2014 2 at > echo " Teste " > /tmp/at.out Pgina 18 Linux System Administration 3 at > ^d 4Linux www.4linux.com.br 3.6 Introduo Terica Liste os agendamentos correntes e verifique que um novo arquivo 3.6.2 Agendando Tarefas com o CRON foi criado Cuidados especiais com scripts no diretrio de spool do at. Utilize nos comandos do script e no agendador, sempre o (path) 1 # cd /var/ spool / cron / atjobs caminho completo do 2 # ls -la aplicativo a ser executado, exemplo para o comando tar, use Agendada esta tarefa, confirme-a listando todos os agendamentos /bin/tar, tambm na linha pendentes: de comando que inserir no cron use o caminho completo para o 1 # atq script, por exemplo, 1) Remova o ltimo agendamento: executar um script que est em /home/zago, use a linha: 1 # atrm [n mero_agendamento ] /home/zago/nome-do-script Linux System Administration Pgina 17 3.6 Introduo Terica 4Linux www.4linux.com.br e no somente nome-do-script. Liste os agendamentos ativos e liste o contedo do diretrio de Muito cuidado com scripts, o comodismo pode cair no esquecimento spool do at e veja e no atualizar que o job foi removido: o script de backup quando incluir novos servios, diretrios ou 1 # atq usurios, monitore 2 # ls /var/ spool / cron / atjobs constantemente, teste e avalie o que est sendo feito. Verifique o backup que estava agendado pelo comando at: Tenha os seguintes cuidados quando elaborar scripts para execuo 1 # ls / backup pelo cron. Todos usurios comuns podem utilizar o comando at, por padro Nestes scripts no pode conter comandos que requer interao com somente vem criado o usurio, tais o arquivo /etc/at.deny, neste arquivo so configurados os usurios como pedir senha para completar a conexo de um ftp, nestes que no podem casos deve ser colocado utilizar o agendador de tarefas at, caso queira bloquear o uso de todas as instrues dentro do script de maneira que possa alguns usurios completar a conexo especficos adicione-os neste arquivo, sendo um usurio por linha, passando o login e senha. se quiser bloquear Comandos que requerem confirmao para execuo, por exemplo, o uso de todos, crie o arquivo /etc/at.allow em branco. apagar arquivos, Caso queira habilitar o uso do agendador de tarefas at para apenas o rm pede confirmao, mas com o parmetro -rf no pede, ento alguns usurios seria assim: rm -rf especficos, crie o arquivo /etc/at.allow e coloque um nome por <arquivo, diretrio ou /caminho/o que deve apagar> linha. No deve ter nenhum comando que pea confirmao ou qualquer interao com o usurio. iniciais e tabs so ignorados. As linhas cujo primeiro caractere no- Fique atento s permisses, quando possvel agende como root branco for um para executar o "#"so comentrios, e so ignorados. Uma linha ativa em um script, use o "sudo"para dar permisses de execuo em programas arquivo agenda uma que requer poderes definio de ambiente ou um comando do cron. de root na execuo, acesso a diretrios de backup e etc.... Definio de ambiente: Espao em disco quando baixar arquivos, backup ..., comandos de Pgina 20 Linux System Administration parar servios ou 4Linux www.4linux.com.br 3.6 Introduo Terica manipular arquivos em uso. Revise periodicamente scripts que nome=valor -> A string valor pode ser colocada entre aspas (simples requerem atualiza- ou duplas, mas Linux System Administration Pgina 19 correspondentes) para preservar espaos iniciais ou finais. 3.6 Introduo Terica 4Linux www.4linux.com.br Vrias variveis de ambiente so definidas automaticamente pelo o, tais como backup de dados dos usurios, incluir novos servidor cron. usurios... SHELL definida como /bin/sh, LOGNAME e HOME so definidos a O cron limita a busca nos diretrios /bin e /usr/bin, portanto indique o partir da linha caminho completo do /etc/passwd referente ao usurio que agendou a tarefa. HOME e do programa ou script, ou melhor indique sempre, mesmo que SHELL podem estejam nestes ser modificadas, mas LOGNAME no. diretrios. O formato de um comando do cron em grande parte o padro V7. Para agendar as tarefas usamos o comando crontab com a sintaxe Cada linha descrita abaixo: tem cinco campos de hora e data, seguidos por um comando. Os 1 # crontab [-u usurio] { -e | -l | -r } comandos so u -> permite que o superusurio agende tarefas para outros executados pelo servidor cron quando os campos minuto, hora, e usurios, pois o comando ms correspondem su pode atrapalhar o crontab. Um usurio comum no precisa usar hora atual, e quando pelo menos um dos campos de dia (dia do essa ms, ou dia da opo para especificar ele prprio. semana) correspondem ao dia atual. e -> edita o arquivo de tarefas agendadas pelo usurio. A Entre na crontab do usurio para edit-la: formatao desse arquivo 1 # crontab -e ser descrita mais adiante. Para entendermos a diferena entre os campos dia do ms e dia l -> lista o arquivo de tarefas agendadas pelo usurio. da semana, r -> apaga o arquivo de tarefas agendadas pelo usurio. vamos agendar uma tarefa no crontab para escrever a data no Basicamente, para agendarmos uma tarefa deveremos editar o terminal 2: nosso arquivo agenda 1 # minuto hora dia_do_mes ms dia_da_semana comando com o comando: 2 * * 13 09 6 / bin / date > / dev / tty2 1 # crontab -e No comando acima foi feito um agendamento para ser executado, O arquivo agenda tem as seguintes caractersticas: as linhas em todos os minutos branco, espaos de todas as horas, no dia 13 de setembro e todos os sbados de sistema que opera praticamente da mesma forma, apenas tem um setembro, ou seja, campo a mais, os campos dia do ms e dia da semana trabalham de forma o usurio que executar o script. Seu arquivo de configurao o separada. Vamos /etc/crontab. mudar nossa data e hora para verificarmos: Debian: 1 # date 091323582013 1 # cat /etc/ crontab Linux System Administration Pgina 21 2 SHELL =/ bin/sh 3.6 Introduo Terica 4Linux www.4linux.com.br 3 PATH =/ usr/ local / sbin :/ usr/ local / bin :/ sbin :/ bin :/ usr / sbin :/ usr / Mudamos a data para o dia 13 de setembro de 2013, uma sexta- bin feira. Visualize a 4 data: 5 #m h dom mon dow user command 1 # cal 2013 6 17 * * * * root cd / && run - parts -- report / etc / cron . hourly 7 25 6 * * * root test -x /usr/ sbin / anacron || ( cd / && run - parts -- Visualize no terminal 2 pela data, que, executado o comando report /etc/ cron . daily ) hoje, dia 13 de 8 47 6 * * 7 root test -x /usr / sbin / anacron || ( cd / && run - parts setembro de 2013 e que amanh, sbado ele tambm -- report /etc/ cron . weekly ) executado. 9 52 6 1 * * root test -x /usr/ sbin / anacron || ( cd / && run - parts -- Visualize os agendamentos feitos pelo o usurio. report /etc/ cron . monthly ) 1 # crontab -l CentOS: Onde ficam armazenados os agendamentos feitos pelos usurios 1 # cat /etc/ crontab com o crontab 2 SHELL =/ bin/sh -e? 3 PATH =/ sbin :/ bin :/ usr/ sbin :/ usr / bin # cd /var/spool/cron/crontabs # ls 4 MAILTO = root # cd /var/spool/cron # ls 5 HOME =/ No apague ou edite o seu agendamento dentro desse diretrio, use 6 7 01 * * * * root run - parts / etc / cron . hourly os comandos 8 02 4 * * * root run - parts / etc / cron . daily para fazer isso. Linux System Administration Pgina 23 Aps verificar que os agendamentos foram efetuados corretamente, 3.6 Introduo Terica 4Linux www.4linux.com.br apague todos 9 22 4 * * 0 root run - parts / etc / cron . weekly os agendamentos do usurio. 10 42 4 1 * * root run - parts / etc / cron . monthly 1 # crontab -r O programa run-parts executa todos os scripts executveis dentro Pgina 22 Linux System Administration de um certo 4Linux www.4linux.com.br 3.6 Introduo Terica diretrio. Ento com essas linhas, temos diretrios programados Para apagar somente um agendamento do usurio, use o crontab - para executar programas e e retire de hora em hora, diariamente, semanalmente ou mensalmente. a linha desejada. Abaixo a Agora que aprendemos a utilizar a crontab do usurio podemos tabela: usar a crontab do Ainda dentro do diretrio /etc, temos quatro agendamentos pr- definidos: cron.hourly, cron.daily, cron.weekly e cron.montly Onde: 4.1 Introduo Terica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 cron.hourly: de hora em hora 4.2 Usando os nmeros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 cron.daily: de dia em dia 4.3 Usando a estrutura se . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 cron.weekly: de semana em semana 4.4 Utilizando a estrutura if . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 cron.montly: de ms em ms 4.5 Exemplos de script com IF . . . . . . . . . . . . . . . . . . . . . . . . . 11 3.6.3 Restringindo o uso do crontab 2 Os arquivos /etc/cron.allow e /etc/cron.deny so usados para restringir acesso ao Automatizao de Tarefas cron. O formato de ambos arquivos de controle de acesso consiste em um nome com Shell de usurio por linha. Espaos em branco no so permitidos em nenhum destes Script I arquivos. O daemon do cron no precisa ser reiniciado se os 4.1 Introduo Terica arquivos de controle de Tarefas administrativas so, muitas vezes, longas e repetitivas. acesso forem modificados. Os arquivos de controle de acesso so Podemos automatizar lidos a cada vez esses procedimentos atravs de scripts. Na verdade, os scripts que o usurio tentar adicionar ou apagar uma tarefa do cron. podem nos O usurio root pode usar o cron sempre, independentemente dos auxiliar muito, numa vasta gama de atividades. nomes de usurio O que um script? uma sequncia de instrues que so listados nos arquivos de controle de acesso. executadas toda vez Pgina 24 Linux System Administration que o mesmo chamado. 4Linux www.4linux.com.br 3.6 Introduo Terica Mas, qual a diferena entre um script e um programa, j que Se o arquivo /etc/cron.allow existe, somente os usurios listados ambos so sequncias neste podero usar de instrues? o cron, e ento o arquivo cron.deny ser ignorado. Um script, um programa no compilado. O processador da Se o arquivo cron.allow no existe, os usurios listados no mquina s capaz cron.deny no podero de executar programas binrios, isto , compilados especificamente usar o cron. Linux System Administration Pgina 25 para ele. Dessa forma, necessrio um programa que interprete esse script, em 4451 tempo de execuo, para que o mesmo possa ser executado. No nosso caso, esse Linux System Administration programa ser www.4linux.com.br uma shell, j que estamos falando de shell scripts. Sendo uma linguagem de programao, a Shell Script possui uma Contedo srie de estruturas de controle como loops e condicionais, mas que so estudadas Automatizao de Tarefas com Shell Script I 2 apenas em cursos mais avanados. Estudando um exemplo -alh); imprimir a data (date) e voltar ao diretrio original (cd -). Vejamos o seguinte exemplo de Shell Script: Executando o script 3 Um programa ou script no GNU/Linux deve possuir permisso de 4.1 Introduo Terica 4Linux www.4linux.com.br execuo. Supondo 1 # vim shell .sh que nosso script denomina-se shell.sh, para podermos execut- 2 #!/ bin/ bash lo, devemos 3 # Meu primeiro shell script executar o comando: 4 cd ~ 1 # chmod u+x shell .sh 5 clear Pgina 4 Linux System Administration 6 ls -alh 4Linux www.4linux.com.br 4.1 Introduo Terica 7 date E em seguida executar o script: 8 cd - 1 # ./ shell .sh Este um script bem simples. As linhas que comeam pelo Em algumas situaes, pode ser necessrio fornecer parmetros smbolo "cedilha"so para um script. comentrios, ou seja, tudo que aparece depois do desse carcter Por exemplo, se ao invs de listar o contedo do diretrio pessoal desprezado. Os do usurio, quisssemos comentrios so muito importantes nos programas, pois so uma que o script listasse o contedo de um diretrio qualquer. forma de documentlos. Supondo que esse novo script chama-se script2.sh, uma possvel Imagine se voc tiver que fazer uma alterao num programa escrito forma de utilizao a um ano do script seria: antes. Ser que voc ir se lembrar de todas as estruturas e 1 # ./ script2 .sh /etc variveis que utilizou? Para passar parmetros para esse script, precisamos conhecer a Provavelmente no. Se for outra pessoa quem tiver que efetuar essa funo de algumas mudana, a variveis: $1, $2. Quando passamos algum parmetro para o situao ser pior ainda! nosso script, Mas a primeira linha, na qual aparece um comentrio, possui uma esse parmetro fica armazenado em uma varivel especfica. Por caracterstica exemplo: um tanto estranha. Na verdade, a primeira linha de um script, 1 # ./ script3 .sh par metro1 par metro2 par metro3 indica qual ser o Para conseguirmos resgatar o valor desses parmetro, precisamos interpretador daquele script. Em nosso exemplo ser o programa chamar as variveis binbash, uma $1,$2 e $3, por exemplo: shell. Se estivssemos criando um script com a linguagem de 1 # vim script3 .sh programao Perl, 2 #!/ bin/ bash a primeira linha seria algo como usrbinperl. 3# O script, propriamente dito, executa 4 comandos simples: Acessar 4 # Esse script pega o valor dos par metros e imprimi na tela . o diretrio do 5 echo $1 usurio corrente (cd ); limpar a tela (clear); listar o contedo diretrio 6 echo $2 corrente (ls 7 echo $3 8 # ./ script3 42 the answer Linux System Administration Pgina 5 Pgina 6 Linux System Administration 4.2 Usando os nmeros 4Linux www.4linux.com.br 4Linux www.4linux.com.br 4.3 Usando a estrutura se 4.2 Usando os nmeros resultado de alguma parte do script pode ter vrios rumos. Usando Muitas vezes quando fazemos scripts, precisamos de uma funo a condio se, que faa o trabalho possvel testar o resultado de uma condicional. das operaes matemticas bsicas como soma, diviso, Por exemplo: multiplicao e subtrao. a=1 b=2 SE b >a ENTO IMPRIMA bSENOIMPRIMAa FIMSE Em shell script podemos usar o comando expr para realiz-las. A varivel $? J a A varivel interrogao conhecida por testar o valor de retorno de contagem de linhas feita pelo comando wc. E o comando cut qualquer comando serve para cortar quando mostrada aps sua execuo. Com ela podemos verificar se a sada no ponto especificado pelo separador. o programa Vamos ver esse exemplo: um script que deve dizer quantos foi executado com sucesso ou no. Para isso basta saber que essa usurios esto presentes, varivel quantos grupos esto presentes e no final mostrar quantos objetos tem dois retornos principais. 1 # pwd meu sistema 2 # echo $? tem, a soma dos usurios e dos grupos: 3#0 1 #!/ bin/ bash Quando o resultado dessa varivel igual a 0: Comando 2# executado com sucesso! 3 echo " Aguarde ..... " 1 # pws 4 sleep 3 2 # echo $? 5 G=wc -l /etc/ group | cut -d" " -f1 3 # != 0 6 U=wc -l /etc/ passwd | cut -d" " -f1 7 echo "O sistema possui $U usu rios ." Quando o resultado diferente de 0, quer dizer que existiu algum 8 echo "O sistema possui $G grupos ." problema na 9 echo "O sistema possui expr $G + $U objetos ." execuo do comando. Cada programa tem sua tabela e excees, mas sempre retornam 4.3 Usando a estrutura se 0 quando o At o presente momento, fizemos scripts que no possuem programa bem executado. O comando test escolhas, ou seja, comandos Linux System Administration Pgina 7 de execuo em linha de comando em srie, utilizando nossa lgica 4.3 Usando a estrutura se 4Linux www.4linux.com.br para O teste de condicionais (strings, matemticas e em arquivos) em fazer com que aquele script seja executado corretamente. Mas se Shell Script feito qualquer coisa atravs do comando test. Vamos conferir algumas formas de testar acontecer no meio do caminho, no temos a oportunidade de condicionais. trabalhar com as famosas Testando strings exceptions. 1 # test "uva" = "uva" As exceptions, tambm conhecidas como excees, servem para 2 # echo $? ajudar quando o 3#0 1 # test "uva" = " banana " 6 if [ -z $REPLY ] ; then 2 # echo $? 7 echo "Usurio $USER no existe !" 3#1 8 else Testando expresses matemticas 9 echo "Usurio Existe " 1# test 5 -eq 2 10 fi 2# echo $? Ao invs de verificar se a varivel que recebia o resultado do 3# 1 comando estava vazia, 1# test 2 -eq 2 poderamos ter utilizado o comando test antes da estrutura e 2# echo $? checar apenas seu 3# 0 cdigo de erro: Testando expresses em arquivos 1 #!/ bin/ bash 1 # test -z $vazia 2 ## Primeiro script - Verificando se um usu rio existe 2 # echo $? 3# 3#0 4 echo " Digite usurio para consulta :" Pgina 8 Linux System Administration 5 read USER 4Linux www.4linux.com.br 4.3 Usando a estrutura se 6 REPLY =$( getent passwd | grep $USER ) 1 # var= valor 7 2 # test -z $var 8 test -z $REPLY 3 # echo $? 9 if [ $? -eq 0 ] ; then 4#1 10 echo "Usurio $USER no existe !" Acima mostramos algumas formas de se testar as condicionais 11 else utilizadas dentro da 12 echo " Pagamento em dia" estrutura se. Lembre-se que podemos usar as condicionais tanto 13 fi dentro, quanto Pgina 10 Linux System Administration fora da estrutura se, depende do caso e do meio. 4Linux www.4linux.com.br 4.5 Exemplos de script com IF Abaixo podemos ver uma lista de operadores para nossa diverso. 4.5 Exemplos de script com IF Existem muitos outros operadores para que possamos dominar o Exemplo 1: Verifica se um determinado usurio esta logado no mundo e consequentemente sistema. o sistemas UNIX com shell script. Estes so apenas os essenciais! 1 #!/ bin/ bash Linux System Administration Pgina 9 2 clear 4.4 Utilizando a estrutura if 4Linux www.4linux.com.br 3 echo " Digite o nome do usurio " 4.4 Utilizando a estrutura if 4 read USER 5 if who | grep $USER > /dev/ null Abaixo alguns exemplos realmente prticos de como utilizar a 6 then estrutura if. 7 clear 1 #!/ bin/ bash 8 echo $USER esta logado 2 ## Primeiro script - Verificando se um usu rio existe 9 else 3 echo " Digite usurio para consulta :" 10 clear 4 read USER 11 echo $USER no est logado 5 REPLY =$( getent passwd | grep $USER ) 12 fi Exemplo 2: Pesquisa uma palavra dentro de um arquivo. exatas, o "case"vai agir de acordo com resultados exatos. 1 #!/ bin/ bash Temos o "while"para testa continuamente uma expresso, at que 2 clear ela se torne falsa, 3 echo " Escreva o nome do arquivo e a palavra a ser pesquisada :" e ainda contamos com o lao "for"que vai substituindo uma varivel 4 read file word por um valor,e 5 if grep $word $file > /dev/ null vai executando os comandos que so pedidos. 6 then 7 clear 5.2 Utilizando a estrutura case 8 echo "A palavra $word existe no arquivo $file ." Outra estrutura bastante til quando vrios if precisam ser 9 fi declarados a estrutura Linux System Administration Pgina 11 case. 4451 case <valor> in <padro1>) comandos ;; <padro2>) comandos ;; <padro3>) Linux System Administration comandos ;; *) comandos ;; esac 3 www.4linux.com.br 5.2 Utilizando a estrutura case 4Linux www.4linux.com.br Exemplo 1: Executar comandos dependendo do usurio digitado. Contedo 1 #!/ bin/ bash Automatizando Tarefas com Shell Script II 2 2 5.1 Introduo Terica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 3 clear 5.2 Utilizando a estrutura case . . . . . . . . . . . . . . . . . . . . . . . . . 3 4 echo " Digite um nome de usurio " 5 read Usuario 5.3 Utilizando a estrutura while . . . . . . . . . . . . . . . . . . . . . . . . 5 6 case $Usuario in 5.4 Utilizando a estrutura for . . . . . . . . . . . . . . . . . . . . . . . . . . 6 7 aluno ) 5.5 Transformar Shell Script em binrio . . . . . . . . . . . . . . . . . . . . . 8 8 clear ; ls /etc ; cal ; date 2 9 ;;
Automatizando Tarefas com 10 root )
11 clear ; whoami 12 ;; Shell 13 *) 14 clear Script II 15 echo $Usuario no existe 16 ;; 5.1 Introduo Terica 17 esac Tarefas administrativas so, muitas vezes, longas e repetitivas. Exemplo 2: Script que exibe informaes do sistema. Podemos automatizar 1 #!/ bin/ bash esses procedimentos atravs de scripts. Como exemplo podemos 2 clear utilizar o 3 echo " Escolha uma opo para informa es da maquina ( Digite o "case"para comandos de fluxo, tal como o if, mas enquanto if testa numero expresses no )" 4 echo "1- Horario do sistema " 4 read SITE 5 echo "2- Tempo que o servidor esta ligado " 5 while ping -c1 $SITE > /dev/ null 2 >&1 6 echo "3- Quantidade de usurio logados " 6 do 7 echo "4- Sair " 7 echo "O site $SITE est no ar." 8 read ESC 8 done 9 case $ESC in Exemplo 2: Cria quantos arquivos voc indicar com uma 10 1) determinada extenso. 11 H=$( uptime | awk -F" " { print $1 }) 1 #!/ bin/sh 12 echo " Agora so $H" 2 clear Pgina 4 Linux System Administration 3 echo " Digite o nome do arquivo " 4Linux www.4linux.com.br 5.3 Utilizando a estrutura while 4 read ARQ 13 ;; 5 clear 14 2) 6 echo " Digite a extens o do arquivo " 15 T=$( uptime | awk -F" " { print $3 }) 7 read EXT 16 echo "O sistema esta $T ligado " 8 clear 17 ;; 9 echo " Digite o numero de arquivos criados " 18 3) 10 read NUM 19 U=$( uptime | awk -F" " { print $4 }) 11 i=1 20 echo " Existem $U atualmete logados " 12 while [ $i -le $NUM ] 21 ;; 13 do 22 4) 14 touch $ARQ$i . $EXT 23 echo "Bye ..." 15 i= expr $i + 1 24 ;; 16 done 25 *) 26 echo "Opo invalida " 5.4 Utilizando a estrutura for 27 ;; O for pode ser utilizado efetuar um looping no estilo do while ou 28 esac para processar 5.3 Utilizando a estrutura while uma lista. 1 for VARIAVEL in <lista > ; do Quando repeties so necessrias podemos utilizar estruturas de Pgina 6 Linux System Administration looping como 4Linux www.4linux.com.br 5.4 Utilizando a estrutura for while e for. 2 comandos com a VARIAVEL 1 while [< express o> ]; do 3 done 2 comandos Exemplo 1: Compactar todos os arquivos do diretrio atual. 3 done 1 #!/ bin/ bash Exemplo 1: Verificar se um site esta no ar. 2 for i in ls -1 1 #!/ bin/ bash 3 do 2 clear 4 tar -cvzf $i.tar.gz $i 3 echo " Digite o endere o de um site " 5 done Linux System Administration Pgina 5 Exemplo 2: Apaga todos os arquivos de uma determinada 5.4 Utilizando a estrutura for 4Linux www.4linux.com.br extenso. 1 #!/ bin/ bash 1 # tar -xvzf shc -3.8.6. tgz 2 clear Copie o binrio o shc para /usr/local/bin 3 echo " Digite a extens o dos arquivos que voc quer apagar " 1 # cp shc -3.8.6/ shc /usr/ local / bin / 4 read ARQ Compile seu shell script usando o comando: 5 for i in *. $ARQ ; do 1 # shc -v -r -f script 6 rm $i Opes de linha de comando: 7 done -v: Modo verbose (mostra o que esta fazendo); Exemplo de Loop -r: Gera um binrio compatvel com mais de um sistema; Vamos criar um script que far uma verificao de quais mquinas -f: Opo para o compilador buscar o arquivo; esto ativas na Copie o arquivo binrio para /bin (assim todos os usurios tero rede, para isso usaremos o comando ping. acesso) 1 # ping 192.168.200.254 1 # cp script .x /bin/ script Usaremos algumas opes do comando ping para que ele no entre Acerte as permisses do arquivo para que todos os usurios tenham num loop, como acesso. acontece por padro, e espere nossa interao para interrompe-lo: Linux System Administration Pgina 9 Linux System Administration Pgina 7 5.5 Transformar Shell Script em binrio 4Linux www.4linux.com.br 5.5 Transformar Shell Script em binrio 4Linux www.4linux.com.br 1 # chmod 755 /bin/ script 1 # ping -c 2 -w 2 192.168.200.1 Acesse o sistema com um usuario comum e digite o nome do script Iremos agora elaborar o shell script hostup.sh Pgina 10 Linux System Administration 1 #!/ bin/ bash 2 for IP in $(seq 1 15); do 3 ping -c 2 -w 2 192.168.200. $IP > / dev / null && 4451 4 echo " 192.168.200. $IP - UP" || Linux System Administration 5 echo " 192.168.200. $IP - DOWN " 6 done www.4linux.com.br D permisso de execuo ao script e execute-o para test-lo: 1 # cd / sbin Contedo 2 # chmod u+x hostup .sh Gerenciamento de dados SQL 2 3 # hostup .sh 6.1 Introduo ao SGBD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 Programar em shell script uma arte, e como na arte, em shell o 6.2 Instalao do MySQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 limite a sua 6.3 Criao do Banco de Dados e Tabelas . . . . . . . . . . . . . . . . . . . 4 imaginao. Para se aprofundar nesse assunto: 6.4 Inserir e pesquisar dados em tabelas . . . . . . . . . . . . . . . . . . . . 6 http://jneves.wordpress.com/ http://aurelio.net 6.5 Atualizar campos e registros em tabelas . . . . . . . . . . . . . . . . . . 6 5.5 Transformar Shell Script em binrio 6.6 Alterando privilgios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2 Obtenha o arquivo compactado no site usando o comando wget: Pgina 8 Linux System Administration 4Linux www.4linux.com.br 5.5 Transformar Shell Script em binrio Gerenciamento de dados SQL 1 # wget -c http :// www. datsi .fi. upm .es /~ frosal / sources /shc -3.8.6. tgz 6.1 Introduo ao SGBD Descompacte o arquivo: Antes de iniciar a criao de bancos de dados e tabelas, preciso Novamente podemos nos valer do parmetro opcional IF NOT ter instalado na EXISTS para executarmos maquina um SGBD. Que consiste um sistema gestor de base de o comando sem termos certeza da existncia ou no da tabela. Para dados, onde disponibiliza criarmos uma interface para que clientes (usurios), possam interagir com o uma tabela executamos a seguinte parte da sintaxe: CREATE banco TABLE nome_tabela. de dados, de varias maneiras como inserir dados, pesquisar, excluir, Pgina 4 Linux System Administration entre outras 4Linux www.4linux.com.br 6.3 Criao do Banco de Dados e Tabelas tarefas. Mas mais comum criarmos a tabela j acompanhada de seus Os comandos so executados usando a linguagem SQL (Structured campos (fields). Vamos Query Language criar no nosso exemplo a tabela LPI com os seguintes campos: - Linguagem de Consulta Estruturada), que uma linguagem para id - campo de identificao; banco de dados certificacao - ttulo do nvel da prova; prova - tipo de prova; nota relacional, facilitando a interao com vrios SGBDs, como por - notas da exemplo o Firebird, prova; PostgreSQL, MySQL, entre outros. A sintaxe completa do comando ser: As provas do LPI iro cobrar comandos bsicos de SQL. 1 mysql > create table lpi ( 2 -> id int (10) unsigned not null auto_increment , 6.2 Instalao do MySQL 3 -> certificacao varchar (80) not null , 1) Para os nossos testes, vamos utilizar o MySql: 4 -> prova int (4) unsigned not null , 1 # aptitude install mysql - server 5 -> nota varchar (80) not null , 3 6 -> primary key (id)); 6.3 Criao do Banco de Dados e Tabelas 4Linux www.4linux.com.br Os campos so definidos da seguinte forma: 2) Ganhando acesso ao Banco de dados: nome_campo tipo [ NULL | NOT NULL ] [ DEFAULT valor_padro] [ 1 # mysql -u root -p AUTO_INCREMENT 3) Visualizando databases: ] 1 mysql > show databases ; No campo id por exemplo o tipo int(10) com o modificador 6.3 Criao do Banco de Dados e Tabelas unsigned, ele no 1) Criando database: aceita valores nulos (not null) e auto_increment, ou seja, seu 1 mysql > create database lpi; valor definido 2) Utilizando database: automaticamente, aumentando de 1 (um) em 1 (um) toda vez que 1 mysql > use lpi; um novo registro 3) Veremos agora como criar as tabelas, onde os dados sero adicionado. Para fazer uso desta funcionalidade necessrio armazenados. A adicionar o valor 0 sntese de criao de tabelas do MySQL a seguinte: ou null neste campo. CREATE [TEMPORARY] TABLE [IF NOT EXISTS] nome_tabela No campo certificacao escolhemos o tipo varchar(80) o que [(definio_create,...)] significa que este [table_options] [select_statement] campo aceita caracteres alfanumricos com no mximo 80 deles. O 3 FLUSH PRIVILEGES ; campo tambm Atribui todos os privilgios todas as tabelas do banco lpi ao no pode ser nulo. usurio curso, a 4) Visualizando as tabelas: partir da mquina localhost, cuja senha cursolinux. O comando Linux System Administration Pgina 5 FLUSH PRIVILEGES 6.4 Inserir e pesquisar dados em tabelas 4Linux www.4linux.com.br atualiza as novas alteraes no daemon do MySQL. Caso o 1 mysql > show tables ; usurio 5) Liste a estrutura da tabela: curso no exista, um novo usurio ser criado. 1 mysql > desc lpi; Linux System Administration Pgina 7 Com o retorno do comando desc podemos ver quais os campos da 6.6 Alterando privilgios 4Linux www.4linux.com.br tabela, qual o 2) Saindo do Mysql: tipo dos campos, se aceitam ou no valores nulos, se existe uma 1 mysql > quit chave primria, e 3) Faa testes de login com o usurio root e o usurio curso: se algum campo possui a propriedade auto_increment. 1 # mysql -u root -p 2 # mysql -u curso -p 6.4 Inserir e pesquisar dados em tabelas Pgina 8 Linux System Administration 1) Para preencher os campos da tabela 1 mysql > INSERT INTO lpi (id , certificacao , prova , nota ) VALUES (01, LPI , 101, 630 ); 4451 2) Selecionar todos os registros da tabela lpi onde o campo nota Linux System Administration possui o valor www.4linux.com.br igual a 101: 1 mysql > SELECT * FROM lpi WHERE nota = 101 ; Contedo 6.5 Atualizar campos e registros em tabelas Administrao de Usurios I 3 1) Adicione um novo campo na tabela: 7.1 Registro de usurios no sistema . . . . . . . . . . . . . . . . . . . . . . 4 Pgina 6 Linux System Administration 7.1.1 Arquivo /etc/passwd . . . . . . . . . . . . . . . . . . . . . . . . . 5 4Linux www.4linux.com.br 6.6 Alterando privilgios 7.1.2 Arquivo /etc/shadow . . . . . . . . . . . . . . . . . . . . . . . . . 7 1 mysql > alter table lpi 7.2 Levantamento de informaes dos usurios . . . . . . . . . . . . . . . 8 2 -> add nome varchar (80) not null ; 7.2.1 Comando chage . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 2) Liste a estrutura da tabela: 7.2.2 Comando id . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 1 mysql > desc lpi; 3) Selecionar todos os registros da tabela lpi: 7.2.3 Comando groups . . . . . . . . . . . . . . . . . . . . . . . . . . 9 1 mysql > select * from lpi; 7.2.4 Comando finger . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 4) Atualize o registro 1 onde o campo id possui o valor igual a 1: 7.2.5 Comando users . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 1 mysql > update lpi set nome = fulano where id = 1 ; 7.2.6 Comando who . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 7.2.7 Comando w . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 6.6 Alterando privilgios 7.3 Criando grupo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 1) Adicionando usurio: 7.3.1 Comando addgroup . . . . . . . . . . . . . . . . . . . . . . . . . 11 1 mysql > GRANT ALL PRIVILEGES ON lpi .* TO curso@localhost 7.3.2 Comando groupadd . . . . . . . . . . . . . . . . . . . . . . . . . 11 2 IDENTIFIED BY cursolinux WITH GRANT OPTION ; 7.3.3 Comando adduser . . . . . . . . . . . . . . . . . . . . . . . . . . 12 4 7.4 Criando Usurios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 4Linux www.4linux.com.br 7.1 Registro de usurios no sistema 7.4.1 Comando adduser . . . . . . . . . . . . . . . . . . . . . . . . . . 13 group -> man 5 group 7.4.2 Comando useradd . . . . . . . . . . . . . . . . . . . . . . . . . . 14 gshadow -> man 5 gshadow 7.5 Adicionando usurio ao grupo . . . . . . . . . . . . . . . . . . . . . . . 15 7.1.1 Arquivo /etc/passwd 7.5.1 Comando addgroup . . . . . . . . . . . . . . . . . . . . . . . . . 15 Cada usurio cadastrado no sistema identificado por uma linha no 7.5.2 Comando adduser . . . . . . . . . . . . . . . . . . . . . . . . . . 16 arquivo /etc/- 7.5.3 Comando gpasswd . . . . . . . . . . . . . . . . . . . . . . . . . 17 passwd. Os campos so separados pelo caractere : (dois pontos). 7.6 Deletando usurio de um grupo . . . . . . . . . . . . . . . . . . . . . . 17 O formato do arquivo 7.6.1 Comando deluser . . . . . . . . . . . . . . . . . . . . . . . . . . 17 /etc/passwd o seguinte: usuario:x:1000:1000:User da Silva,8111- 7.6.2 Comando gpasswd . . . . . . . . . . . . . . . . . . . . . . . . . 18 1234:/home/usurio:/bin/Onde: 2 Campo 1 -> Login do usurio; 4Linux www.4linux.com.br Contedo Campo 2 -> Referncia da senha do usurio, pois ela fica 7.6.3 Comando delgroup . . . . . . . . . . . . . . . . . . . . . . . . . . 19 armazenada em outro 7.7 Removendo usurios . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 arquivo. 7.7.1 Comando userdel . . . . . . . . . . . . . . . . . . . . . . . . . . 19 Campo 3 -> O UID - User Identify o nmero de identificao do 7.7.2 Comando deluser . . . . . . . . . . . . . . . . . . . . . . . . . . 21 usurio. Essa 7.8 Removendo grupos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 identificao dividida conforme a categoria dos usurios: 7.8.1 Comando deluser . . . . . . . . . . . . . . . . . . . . . . . . . . 22 UID 0 -> o nmero do usurio administrador root. 7.8.2 Comando groupdel . . . . . . . . . . . . . . . . . . . . . . . . . . 23 Debian: 7.8.3 Comando delgroup . . . . . . . . . . . . . . . . . . . . . . . . . . 23 UID de 1 a 999 -> So os nmeros para usurios de sistema. Linux System Administration Pgina 3 UID de 1000 a 65535 -> So os nmeros para usurios normais. Administrao de Usurios I CentOS: UID de 1 a 499 -> So os nmeros para usurios de sistema. 7.1 Registro de usurios no sistema Linux System Administration Pgina 5 H quatro arquivos bsicos que dizem respeito administrao de 7.1 Registro de usurios no sistema 4Linux www.4linux.com.br usurios, UID de 500 a 65535 -> So os nmeros para usurios normais. sendo eles: Essas definies de usurios de sistema e usurios normais podem passwd -> contm as informaes dos usurios; variar nas distribuies, shadow -> contm as informaes das senhas dos usurios; somente o UID 0 padro em todas as distribuies. group -> contm as informaes dos grupos e usurios que fazem Campo 4 -> O GID - Group Identity o nmero de identificao do parte deles; grupo gshadow -> contm informaes a respeito das senhas de grupo. primrio do usurio. Essa identificao tambm dividida em 3 Leitura Sugerida, para administrao de usurios: categorias como o passwd -> man 5 passwd UID: shadow -> man 5 shadow GID 0 -> o nmero do grupo administrador root. Leitura Sugerida, para administrao dos grupos: Debian: GID de 1 a 999 -> So os nmeros para grupos de sistema. GID de 1000 a 65535 -> So os nmeros para grupos normais. por ativar ou no esse suporte. sempre recomendado deixar as CentOS: senhas shadow UID de 1 a 499 -> So os nmeros para grupos de sistema. ativadas. UID de 500 a 65535 -> So os nmeros para grupos normais. Caso encontremos algum servidor GNU/Linux sem as senhas Campo 5 -> Comentrios e informaes adicionais sobre o usurio; shadow configuradas, Campo 6 -> Diretrio pessoal; podemos utilizar o comando pwconv para ativ-las e pwunconv Campo 7 -> Shell do usurio; para desativlas. Usar o comando getent, a maneira certa de se acessar arquivos Em relao s senhas shadow e os comandos pwconv e de controle pwunconv, muitas no GNU/Linux. perguntas podem ser feitas na prova. Fique atento! Pgina 6 Linux System Administration O arquivo shadow no trata somente a questo de segurana de 4Linux www.4linux.com.br 7.1 Registro de usurios no sistema senhas. Ele tambm 7.1.2 Arquivo /etc/shadow trata de polticas de contas do usurio, como, por exemplo, por As senhas dos usurios ficam armazenadas no arquivo quantos dias a /etc/shadow conhecido conta de um usurio vlida? Quando vai expirar? Quando deve ser como senhas sombras (shadow passwords). As senhas ficam nele a troca de senha? pois um arquivo E alguns outros parmetros que podem ser alterados manualmente mais seguro que o arquivo /etc/passwd. No arquivo /etc/passwd ou usando qualquer o comando chage. usurio poderia visualiz-las e copi-las para outro diretrio ou Linux System Administration Pgina 7 mquina remota. J 7.2 Levantamento de informaes dos usurios 4Linux o arquivo /etc/shadow tem suas permisses muito mais restritas, www.4linux.com.br no permitindo 7.2 Levantamento de informaes dos que ele seja copiado e nem visualizado diretamente por um usurio comum. Isso usurios uma grande ajuda na questo de segurana, pois se as senhas 7.2.1 Comando chage estivessem no prprio O comando chage configura algumas caractersticas da senha, /etc/passwd seria muito fcil para um invasor com usurio comum, como: data de copiar esse validade, data de aviso de troca, dentre outras. O Nome do usurio arquivo para outro servidor e aplicar uma ferramenta de brute force no exemplo para quebrar as aluno, fique atento, porque esse comando muito til em seu dia- senhas. a-dia: O suporte a senhas shadow costuma vir ativado por padro em 1 # chage -E 03/08/2012 aluno 2 # chage -l aluno todas as distribuies. 3 ltima mudan a de senha : Set 12, 2011 Em algumas delas, se forem instaladas no modo expert, possvel 4 Esta senha expira em : nunca optar 5 Senha inativa : nunca 6 Conta expira em : Mar 08, 2012 7 N mero m nimo de dias entre mudan as de senha : 0 7.2 Levantamento de informaes dos usurios 4Linux 8 N mero m ximo de dias entre mundan as de senha : 99999 www.4linux.com.br 9 N mero de dias de aviso antes da senha expirar : 7 1 # users 7.2.2 Comando id 7.2.6 Comando who O comando id mostra as informaes de UID, GID e grupos O comando who mostra quais usurios esto logados na secundrios dos mquina. Traz informaes usurios. Para ver essas informaes do usurio corrente, fazemos adicionais sobre qual terminal est sendo utilizado, o momento e a da seguinte partir de forma: qual mquina foi feito o login de cada usurio. 1 # id 1 # who Para ver as informaes do usurio aluno utilize a seguinte sintaxe: 7.2.7 Comando w 1 # id aluno O comando w similar ao who, mas traz tambm informaes Pgina 8 Linux System Administration sobre o que 4Linux www.4linux.com.br 7.2 Levantamento de informaes dos cada usurio est fazendo, tanto local quanto remotamente. Esse usurios comando muito 7.2.3 Comando groups til para ver se no existem conexes indevidas em nosso sistema. A lista dos grupos existentes no sistema armazenada em A sintaxe do comando w para visualizar todos os usurios logados /etc/group. a seguinte: O uso do comando groups, sem parmetros, faz com que o sistema 1#w informe os grupos Para visualizar se o usurio aluno est logado a sintaxe a dos quais o usurio membro. seguinte: 1 # groups 1 # w aluno Para ver qual grupo o usurio aluno pertence utilize a seguinte Pgina 10 Linux System Administration sintaxe: 4Linux www.4linux.com.br 7.3 Criando grupo 1 # groups aluno 7.3 Criando grupo 7.2.4 Comando finger Um usurio sempre deve pertencer a um grupo primrio, mas pode O comando finger mais amigvel e nos traz maiores ser adicionado a informaes como: Login, grupos secundrios, normalmente usado dentro de uma estrutura Nome, Diretrio home, Shell, nmero de e-mails no lidos e os empresarial onde horrios das os usurios precisam pertencer a vrios grupos para terem acessos ltimas autenticaes que esse usurio realizou. a arquivos de 1 # finger aluno outros setores. 7.2.5 Comando users 7.3.1 Comando addgroup O comando users mostra de maneira bem simples os usurios Adiciona um grupo ao sistema. ou adiciona um usurio a um grupo. que esto logados S funciona no Debian: no sistema. A sintaxe do comando users a seguinte: Adicione o grupo rede e grupo internet: Linux System Administration Pgina 9 1 # addgroup rede 2 # addgroup internet usurios no formato tradicional, ou seja, com nome, senha e grupo, CentOS: definindo, alm No existe o comando. disso ele tambm pode criar grupos e adicionar usurios em grupos. 7.3.2 Comando groupadd No caso do CentOS, o comando adduser um link para o O comando groupadd cria um novo grupo usando valores comando useradd. especificados na linha de Este comando pode ser usado de vrias formas, mas a sintaxe mais comando e os valores padres do sistema. O novo grupo ser utilizada a criado nos arquivos seguinte: do sistema, conforme o requerido. Adicione o grupo aula: Debian: Linux System Administration Pgina 11 1 # adduser [usurio] 7.4 Criando Usurios 4Linux www.4linux.com.br Adicione o usurio mandark e a usuria meemee: 1 # groupadd aula 1 # adduser mandark 7.3.3 Comando adduser 2 # adduser meemee S funciona no Debian: Dessa maneira ele adicionar o usurio, j pedindo para definir sua Adicione o grupo empresa e social: senha e as informaes 1 # adduser --group empresa adicionais. Automaticamente, ele j cria um grupo com o mesmo 2 # adduser --group social nome do CentOS: usurio e copia todos os arquivos que esto no diretrio /etc/skel No funciona no CentOS devido ao comando ser um link para o para o diretrio comando "useradd". home do usurio. Visualize os grupos que o usurio mandark pertence e tambm os 7.4 Criando Usurios arquivos/diretrios Antes de criarmos um usurio, vamos definir o que conter por criados a partir do /etc/skel em seu diretrio home: padro em seu diretrio Linux System Administration Pgina 13 home, isto definido no arquivo /etc/skel, tudo o que estiver dentro 7.4 Criando Usurios 4Linux www.4linux.com.br deste 1 # id mandark diretrio ser adicionado ao home do usurio por padro. Crie um 2 # ls / home / mandark diretrio e um CentOS: arquivo dentro do diretrio /etc/skel: O comando adduser no CentOS um link para o comando useradd. 1 # mkdir /etc/ skel / importante Veja o comando 2 # touch /etc/ skel / atividades . txt "useradd". Pgina 12 Linux System Administration 4Linux www.4linux.com.br 7.4 Criando Usurios 7.4.2 Comando useradd Podemos tambm adicionar usurios atravs do comando 7.4.1 Comando adduser useradd, que um pouco O comando "adduser" um "script"customizado que trabalha como o mais complexo e precisa de alguns parmetros a mais. comando "useradd". Adicione o usurio levinsky e o usurio leelee: O "adduser" bastante utilizado por administradores que precisam 1 # useradd leelee cadastrar 2 # useradd levinsky Tente se logar com o usurio levinsky em um terminal e repare que O comando addgroup pode ser utilizado para adicionar um usurio a no possvel, um grupo. Adicione pois ainda no foi definida uma senha para ele. Adicione uma senha o usurio mandark ao grupo rede, aula e aluno: para o Linux System Administration Pgina 15 usurio: 7.5 Adicionando usurio ao grupo 4Linux www.4linux.com.br 1 # passwd levinsky 1 # addgroup mandark rede Agora tente se logar no terminal com o usurio levinsky e veja que, 2 # addgroup mandark aula possvel aps 3 # addgroup mandark aluno ser definida a senha. Mas tente se logar na parte grfica e veja o CentOS: que acontece, no No existe o comando. possvel, pois o usurio no tem diretrio home. 7.5.2 Comando adduser Para criar o usurio deedee com os principais atributos faa: S funciona no Debian: Pgina 14 Linux System Administration O comando adduser tambm utilizado para adicionar um usurio 4Linux www.4linux.com.br 7.5 Adicionando usurio ao grupo um grupo, sua 1 # useradd -m -s /bin/ bash -u 3000 -g 100 -p perl -e print crypt sintaxe : (123456 , " salt ") deedee 1 # adduser [usurio] [ grupo ] Acima criamos o usurio deedee, onde: Adicione o usurio mandark ao grupo empresa: -m -> cria diretrio home, caso ele no exista 1 # adduser mandark empresa -s -> shell do usurio Visualize os grupos que o usurio pertence: -u -> UID 1 # id mandark -g -> GID CentOS: -p -> senha criptografada Pgina 16 Linux System Administration perl -e print crypt(123456, salt) -> criptografar senha 123456 no 4Linux www.4linux.com.br 7.6 Deletando usurio de um grupo formato crypt O comando adduser no CentOS um link para o comando useradd. Verifique o UID e GID do usurio vendas: Veja o comando 1 # id deedee "useradd". Logue-se com o usurio deedee no terminal e na parte grfica. 7.5.3 Comando gpasswd 7.5 Adicionando usurio ao grupo O comando gpasswd pode ser utilizado para definir a senha de um 7.5.1 Comando addgroup grupo. Utilizando a opo -a podemos adicionar um usurio a um grupo secundrio. 1 # id mandark Para adicionar um usurio a um grupo secundrio a sintaxe a 7.6 Deletando usurio de um grupo seguinte: 1 # gpasswd -a [usurio] [ grupo ] 7.6.1 Comando deluser Adicione o usurio mandark ao grupo internet e social: S funciona no Debian: O comando deluser tambm utilizado 1 # gpasswd -a mandark internet para remover um 2 # gpasswd -a mandark social usurio de um grupo: Delete o usurio mandark do grupo rede: Visualize: Linux System Administration Pgina 17 7.6 Deletando usurio de um grupo 4Linux www.4linux.com.br antes, fazer um backup de tudo o que aquele usurio possua ou 1 # deluser mandark rede transferir todos os Visualize: arquivos para o responsvel. O usurio que ser removido no pode 1 # id mandark estar logado. CentOS: 7.7.1 Comando userdel No tem o comando. A sintaxe para remover o usurio e manter o seu diretrio home a 7.6.2 Comando gpasswd seguinte: O comando gpasswd pode ser utilizado para remover um usurio de Linux System Administration Pgina 19 um grupo secundrio. 7.7 Removendo usurios 4Linux www.4linux.com.br Para remover um usurio de um grupo secundrio a sintaxe a 1 # userdel [usurio] seguinte: Remova a usuria meemee: 1 # gpasswd -d [usurio] [ grupo ] 1 # userdel meemee Removendo o usurio mandark do grupo internet: Repare que a usuria meemee foi removida, mas seu diretrio home 1 # gpasswd -d mandark internet no: Visualize: 1 # ls -l / home 1 # id mandark O problema aqui que o prximo usurio que for criado, herdar o Pgina 18 Linux System Administration diretrio pra si, 4Linux www.4linux.com.br 7.7 Removendo usurios veja: 7.6.3 Comando delgroup 1 # adduser herdeiro Remove um usurio de um grupo. S funciona Debian: 2 # ls -l / home Remova o usurio mandark do grupo social: Alm de ser criado um diretrio home, ele tambm herda o do 1 # delgroup mandark social usurio anterior, isto Visualize: acontece porque os usurios so criados conforme os UIDs 1 # id mandark disponveis na sequncia. 7.7 Removendo usurios Para remover o usurio e o seu diretrio home, necessrio A remoo de usurios pode ser feita de duas formas. A primeira utilizar a opo mantendo o diretrio -r da seguinte forma: 1 # userdel -r [usurio] home do usurio e a segunda, removendo tambm o home. Remova o usurio deedee e seu diretrio home: aconselhvel 1 # userdel -r deedee que se remova o diretrio do usurio para que um prximo usurio Pgina 20 Linux System Administration adicionado ao 4Linux www.4linux.com.br 7.7 Removendo usurios sistema no acabe como dono daquele diretrio e tendo acesso a Verifique que foi deletado o diretrio home do usurio deedee: informaes s 1 # ls -l / home quais ele no deveria ter. Isso pode acontecer porque a delegao 7.7.2 Comando deluser de UIDs sequencial. S funciona no Debian: O comando deluser deleta um usurio. Mas para remover o usurio com o seu diretrio, tambm Delete o usurio aconselhvel, levinsky: 1 # deluser levinsky Visualize que o usurio mandark pertence ao grupo aula que Verifique que o diretrio home do usurio no foi removido: criamos anteriormente: 1 # ls -l / home 1 # id mandark Adicione novamente o usurio levinsky: Removendo o grupo aula: 1 # adduser levinsky 1 # groupdel aula Delete o usurio levinsky e seu diretrio home: Visualize que o usurio mandark no pertence mais ao grupo aula: 1 # deluser levinsky --remove - home 1 # id mandark Verifique que o diretrio home do usurio foi removido: 7.8.3 Comando delgroup 1 # ls -l / home Remove um grupo do sistema. Remova o grupo internet: Linux System Administration Pgina 21 1 # delgroup internet 7.8 Removendo grupos 4Linux www.4linux.com.br Linux System Administration Pgina 23 Adicione novamente o usurio levinsky: 7.8 Removendo grupos 4Linux www.4linux.com.br 1 # adduser levinsky CentOS: Delete o usurio levinsky e faa um backup do seu diretrio home: No existe o comando. 1 # deluser levinsky --remove - home -- backup Pgina 24 Linux System Administration Verifique que seu diretrio home foi compactado: 1 # ls -l / home Para complementar a seo removendo usurios com o comando 4451 deluser muito Linux System Administration interessante olhar o arquivo /etc/deluser.conf. www.4linux.com.br CentOS: No tem o comando. Contedo 7.8 Removendo grupos Administrao de Usurios II 2 7.8.1 Comando deluser 8.1 Modificando Usurios . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 O comando deluser pode tambm deletar um grupo, desde que este 8.1.1 Comando passwd . . . . . . . . . . . . . . . . . . . . . . . . . . 3 no seja o 8.1.2 Comando usermod . . . . . . . . . . . . . . . . . . . . . . . . . 4 grupo primrio de um usurio. Vamos deletar o grupo criado 8.2 Alterao do Dono e Grupo . . . . . . . . . . . . . . . . . . . . . . . . . 7 anteriormente chamado 8.3 Introduo a tipos de permisses . . . . . . . . . . . . . . . . . . . . . . 9 empresa: 8.4 Permisses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 Pgina 22 Linux System Administration 8.4.1 LITERAL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 4Linux www.4linux.com.br 7.8 Removendo grupos 8.4.2 OCTAL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 1 # deluser --group empresa 8.4.3 Exemplos de permisses . . . . . . . . . . . . . . . . . . . . . . 17 7.8.2 Comando groupdel 8.5 Umask . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 Apaga um grupo do sistema. Quando usado, este comando apaga 8.5.1 Clculo da umask . . . . . . . . . . . . . . . . . . . . . . . . . . 21 todos os dados 8.6 Permisses Especiais . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 do grupo especificado dos arquivos de contas do sistema. No 2 possvel remover o grupo primrio de um usurio. Remova o usurio primeiro. Administrao de Usurios II 1 groupmod -n vendas rede 8.1 Modificando Usurios Pgina 4 Linux System Administration A modificao de usurios limitada ao usurio root. Iremos 4Linux www.4linux.com.br 8.1 Modificando Usurios aprender aqui como Outro comando que pode ser utilizado para modificar parmetros do mudamos alguns parmetros que so necessrios no dia-a-dia, usurio o como troca de senhas, usermod. Ele possibilita alterar qualquer tipo de informao grupos e controle de login. relativa ao usurio. 8.1.1 Comando passwd Um dos parmetros que pode ser modificado o grupo primrio, Depois do usurio ter sido criado podemos usar alguns comandos usando-se a opo para modificar sua -g. Com a opo -G, podemos alterar os grupos secundrios. conta. O primeiro ser o passwd que possibilita adicionar ou A sintaxe para modificar o grupo primrio de um usurio a modificar a senha de seguinte: um usurio. As principais sintaxes que podem ser utilizadas nesse 1 # usermod -g [ grupo ] [usurio ] comando esto Verifique o grupo primrio do usurio mandark: descritas abaixo. 1 # id mandark Para modificar a senha do usurio corrente: Altere seu grupo primrio para audio: 1 # passwd 1 # usermod -g audio mandark Caso esteja modificando a senha de um usurio normal, primeiro As alteraes podem ser visualizadas no arquivo /etc/passwd no ser solicitada campo GID, a senha corrente para permitir a definio de uma nova senha. Isso ou diretamente no arqu1ivo /etc/group. Para trocar todos os no grupos secundrios 3 pelos grupos aluno e vendas, faa: 8.1 Modificando Usurios 4Linux www.4linux.com.br 1 # usermod -G aluno , vendas mandark acontece com o usurio root, que pode definir a nova senha Visualize: diretamente, tanto 1 # id mandark para ele quanto para os outros usurios. Altere seu grupo primrio para mandark: Para modificar a senha do usurio mandark: Linux System Administration Pgina 5 1 # passwd mandark 8.1 Modificando Usurios 4Linux www.4linux.com.br Para bloquear a conta do usurio mandark: 1 # usermod -g mandark mandark 1 # passwd -l mandark Para mudarmos o campo de informaes dentro do arquivo Tente se logar com o usurio mandark, no possvel, pois sua /etc/passwd, precisamos conta est bloqueada. usar o comando usermod com a opo -c. Para desbloquear a conta do usurio mandark: 1 # usermod -c " Dpto vendas " mandark 1 # passwd -u mandark 2 # getent passwd | grep mandark Agora o usurio j pode se logar. 3 mandark :x :1001:1001: Dpto mandark :/ home / mandark :/ bin / bash Outras opes do comando: 8.1.2 Comando usermod -d diretrio [-m] : cria um novo diretrio home para o usurio. A Para modificar nomes de grupos do sistema, utilizamos o comando: opo -m faz com 1 # groupmod -n [novo - nome ] [nome - grupo ] que o diretrio atual do usurio seja movido para o novo diretrio. -e mm/dd/yy : altera a data de expirao da conta do usurio. rio do dono " -l nome : altera o nome de identificao do usurio (o usurio no 5 # chown [ dono :] [ arquivo ] -> troca dono e grupo " mesmo grupo prim pode estar logado). rio do dono " -s shell : altera o shell do usurio. 6 # chown [. grupo ] [ arquivo ] -> troca o grupo 7 # chown [: grupo ] [ arquivo ] -> troca o grupo -u uid : altera o nmero de UID do usurio. -L : bloqueia a conta acrescentando um ! no incio da linha do Troque o dono para leelee: 1 # chown leelee / home / leelee usurio no arquivo Visualize: /etc/passwd 1 # ls -ld / home / leelee -U : desbloqueia a conta 2 drwxr -xr -x 2 leelee leelee 4096 2011 -11 -08 18:00 leelee Pgina 6 Linux System Administration Troque a senha do usurio leelee: 4Linux www.4linux.com.br 8.2 Alterao do Dono e Grupo 1 # passwd leelee 8.2 Alterao do Dono e Grupo Agora se logue na parte grfica como usurio leelee. Para poder Como j vimos, cada arquivo e diretrio possui um dono e um grupo. alterar o dono/- Para alter-los grupo de arquivos e diretrios dentro do diretrio utilize o parmetro podemos utilizar os comandos chown e chgrp como nos -R para fazer exemplos a seguir. a alterao recursiva Vamos criar o diretrio home do usurio leelee que ainda no existe: Pgina 8 Linux System Administration 1 # mkdir / home / leelee 4Linux www.4linux.com.br 8.3 Introduo a tipos de permisses Como criamos como usurio root, o dono e o grupo do diretrio 8.3 Introduo a tipos de permisses criado pertencem ao O GNU/Linux um sistema multi-usurio e portanto, possui um usurio root e grupo root: esquema de permisses 1 # ls -ld / home / leelee que prov a privacidade e/ou compartilhamento de arquivos entre 2 drwxr -xr -x 2 root root 4096 2011 -11 -08 18:00 leelee usurios. Temos que mudar o usurio e grupo para o usurio leelee e seu Na verdade, esse esquema de permisses parte fundamental do grupo primrio sistema. Neste leelee. Alterando apenas o grupo de root para leelee: captulo, iremos aprender sobre ele e tambm como criar e remover 1 # chgrp leelee / home / leelee Visualize: contas de usurios. 1 # ls -ld / home / leelee Quando comeamos a trabalhar com usurios no sistema 2 drwxr -xr -x 2 root leelee 4096 2011 -11 -08 18:00 leelee GNU/Linux podemos dividilos Outra forma de trocar apenas o grupo com o comando chown, veja em trs categorias: sua sintaxe: Usurio Administrador (Super Usurio): usurio conhecido 1 # chown [ dono . grupo ] [ arquivo ] -> troca dono e grupo como root no Linux System Administration Pgina 7 sistema. esse usurio que controla todo o sistema e no possui 8.2 Alterao do Dono e Grupo 4Linux www.4linux.com.br nenhuma 2 # chown [ dono : grupo ] [ arquivo ] -> troca dono e grupo restrio. Mas devemos ter uma certa cautela ao us-lo pois com 3 # chown [ dono ] [ arquivo ] -> troca apenas o dono qualquer 4 # chown [ dono .] [ arquivo ] -> troca dono e grupo " mesmo grupo prim deslize podemos danificar todo o sistema; Usurios de Sistema: so aqueles que no precisam logar no Para que os usurios comuns e o root tenham acesso ao sistema e sistema, so consigam trabalhar utilizados para controlar servios. Esses usurios no devem normalmente, so necessrios 5 elementos. possuir senhas Nome; nem Shell vlida. Um exemplo desses usurios o www-data Senha; que usado Diretrio Home; exclusivamente para controlar o servidor web Apache; Shell; Usurios comuns: so utilizados para trabalhar no sistema Grupo Primrio; GNU/Linux. So Devemos ter em mente que um usurio sempre deve estar contas criadas para aqueles que utilizam ou operam o sistema. vinculado a um grupo, sempre aconselhvel pois isso afeta diretamente a questo de permisses dentro do que cada usurio comum ou administrador tenha sua prpria conta e sistema. s utilize a conta root para administrao do sistema. 8.4 Permisses Tanto para o usurio root, quanto para o usurio comum, sempre Cada arquivo no sistema possui trs permisses bsicas: aconselhvel r (4) -> read - para leitura; ter uma boa poltica de criao de senhas, para que um possvel Pgina 10 Linux System Administration invasor no se 4Linux www.4linux.com.br 8.4 Permisses aproveite de um usurio com uma senha fraca. At mesmo um w (2) -> write - para escrita; usurio comum, x (1) -> execute - para execuo; precisa tomar cuidado com a sua senha, pois esse seria o primeiro A cada permisso atribudo um valor, mostrado entre parnteses, passo para o que ser utilizado invasor escalar privilgios no sistema, e virar o usurio para a definio de permisses. administrador root. Evite Alm disso, cada arquivo contm trs conjuntos de permisses, usar senhas com datas de aniversrio, casamento e outras datas sendo elas: que so fceis permisso do dono (u) - user do arquivo; de serem descobertas. Evite usar palavras listadas em um do grupo (g) - group ao qual o arquivo pertence; dicionrio. Uma boa outros (o) - others aqueles que no pertencem ao grupo e no so Linux System Administration Pgina 9 os donos do 8.4 Permisses 4Linux www.4linux.com.br arquivo; dica mesclar a senhas com letras maisculas e minsculas, Sendo assim, considere a seguinte sada do comando ls -l, para um nmeros e caracteres arquivo: permisso especiais. do arquivo: Alguns sistemas GNU/Linux podem ter usurios que chamamos de 1 -rw -r--r-- 1 root root 0 Jan 15 09:52 arquivo administradores. E para um diretrio: permisso do diretrio: Esses usurios no vm configurados por padro, eles so usurios 1 drwxr -xr -x 2 root root 4096 Jan 15 09:52 diret rio normais Vamos entender o que essas linhas significam. O primeiro caractere mas que possuem alguns privilgios a mais em algumas aplicaes. pode ser: - -> indicando a listagem de um arquivo comum; Sua permisso para outros Somente leitura: r - - d -> indicando um diretrio; O comando para trocar as permisses o chmod. H duas sintaxes l -> indicando um link simblico; possveis: literal Linux System Administration Pgina 11 e octal. 8.4 Permisses 4Linux www.4linux.com.br 8.4.1 LITERAL p -> indicando um pipe nomeado; 1 $ chmod u-rw /tmp/ arquivo s -> indicando um socket; O parmetro u-rw que define o esquema de permisses. A c -> indicando um dispositivo de caractere; primeira letra indica b -> indicando um dispositivo de bloco. para qual(is) usurio(s) as permisses esto sendo alteradas. Os prximos trs conjuntos de trs caracteres indicam as Usamos a letra u permisses do usurio para indicar o prprio dono, g para indicar o grupo, o para outros dono do arquivo, permisses de grupo e permisses para outros e ainda a letra usurios. Nesses a para indicar todos. trs conjuntos, se o caractere encontrado for um - (hfen) significa O caractere seguinte poder ser um sinal de = para deixar a que a permisso permisso igual que est ausente, ou seja, no h a respectiva permisso. Se alguma ou se deseja, + para garantir a permisso ou - para retirar a todas as letras permisso. Por fim, (r, w e x) forem encontradas, indicar as permisses que o arquivo detalhamos a permisso: A letra r significa leitura, w escrita e tem permisses x execuo, definidas. como era de se esperar. Seguindo o conjunto de permisses, h um nmero que indica a Assim, o exemplo anterior retira as permisses de leitura e escrita quantidade de links para o usurio simblicos que o arquivo ou diretrio tem. Aps o nmero de links, dono do arquivo. vem a indicao Verifique novamente a permisso do arquivo: do usurio dono do arquivo, seguido do grupo ao qual ele, o arquivo 1 $ ls -l /tmp/ arquivo ou diretrio, 2 ----r--r-- 1 aluno aluno 0 2011 -11 -04 12:17 arquivo pertence. Sua permisso para o dono Nenhuma: - - - J criado aluno, mandark no grupo aluno Linux System Administration Pgina 13 Vamos criar um arquivo para testes, se logue como usurio aluno: 8.4 Permisses 4Linux www.4linux.com.br 1 $ cd /tmp Sua permisso para grupo Somente leitura: r - - 2 $ touch arquivo Sua permisso para outros Somente leitura: r - - Visualize a permisso do arquivo criado: As permisses seguem uma ordem dono, grupo, outros, ou seja, se 1 $ ls -l /tmp/ arquivo voc o dono as 2 -rw -r--r-- 1 aluno aluno 0 2011 -11 -04 12:17 arquivo permisses que se encaixam no seu perfil a de dono, mesmo que Sua permisso para o dono Leitura e escrita: r w - voc pertena Pgina 12 Linux System Administration ao grupo, as permisses de dono prevalecem. 4Linux www.4linux.com.br 8.4 Permisses Tente visualizar o arquivo como usurio aluno: Sua permisso para grupo Somente leitura: r - - 1 $ cat /tmp/ arquivo Agora se logue com o usurio mandark, que pertence ao grupo No possvel isso porque o x o responsvel por dar acessos ao aluno, em outro diretrio, mas terminal e tente ler o arquivo: ainda possvel visualizar o contedo do diretrio: 1 $ cat /tmp/ arquivo 1 $ ls /tmp/ diretorio As permisses de grupo permitem que ele abra o arquivo para Visualize as permisses do diretrio e do arquivo: leitura, mas no para 1 $ ls -ld /tmp/ diretorio escrita: 2 drw -r--r-- 2 aluno aluno 4096 2011 -11 -04 17:02 diretorio / 1 $ echo oi >> /tmp/ arquivo 3 $ ls -l /tmp/ diretorio / novo Vejamos mais um exemplo, como usurio aluno faa: 4 -????????? ? ? ? ? ? novo 1 $ chmod g+w /tmp/ arquivo 8.4.2 OCTAL Este comando adiciona a permisso de escrita para os usurios que A segunda sintaxe a forma numrica. Neste caso, o parmetro que fazem parte do define as mesmo grupo ao qual o arquivo pertence. As demais permisses permisses composto de trs nmeros de 0 a 7, que no so alteradas. correspondem s permisses Pgina 14 Linux System Administration para o usurio dono, para o grupo e para outros. Cada nmero 4Linux www.4linux.com.br 8.4 Permisses formado pela soma Se logue com o usurio mandark que pertence ao grupo aluno e das permisses atribudas, sendo que execuo vale 1, escrita tente escrever no vale 2 e leitura arquivo. 4. 1 $ echo tchau >> /tmp/ arquivo Pgina 16 Linux System Administration 2 $ cat /tmp/ arquivo 4Linux www.4linux.com.br 8.4 Permisses Fazendo o teste com diretrio, como usurio aluno crie um diretrio: Vejamos um exemplo: 1 $ mkdir /tmp/ diretorio 1 # chmod 640 /tmp/ arquivo Verifique a permisso do diretrio: Neste caso, estamos atribuindo a permisso de: 1 $ ls -ld /tmp/ diretorio leitura e escrita 6 (r=4 + w=2) ao usurio dono 2 drwxr -xr -x 2 aluno aluno 4096 2011 -11 -04 17:02 diretorio / leitura 4 (r=4) ao grupo Crie um arquivo dentro do diretrio: 0 (sem permisses) outros usurios 1 $ touch /tmp/ diretorio / novo importante observar que quando usamos a forma literal, alteramos Visualize e acesse o diretrio: apenas o parmetro 1 $ ls -l /tmp/ diretorio 2 $ cd /tmp/ diretorio especificado, no alterando as demais permisses. J na forma Retire o acesso ao diretrio para todos os usurios: numrica, 1 $ cd .. alteramos todas as permisses simultaneamente. 2 $ chmod a-x /tmp/ diretorio 8.4.3 Exemplos de permisses Linux System Administration Pgina 15 Comando para atribuir permisso total a um arquivo chamado 8.4 Permisses 4Linux www.4linux.com.br naofazer: Agora tente acessar o diretrio: 1 # touch /tmp/ naofazer 1 $ cd /tmp/ diretorio 2 # chmod 777 /tmp/ naofazer Linux System Administration Pgina 17 8.4 Permisses 4Linux www.4linux.com.br 6 Ou 7 # chmod -R 700 /tmp/ diretorio 1 # chmod a+rwx /tmp/ naofazer Linux System Administration Pgina 19 Ou 8.5 Umask 4Linux www.4linux.com.br 1 # chmod u+rwx ,g+rwx ,o+rwx /tmp / naofazer DEPOIS: Verifique a permisso: 1 # ls -ld /tmp/ diretorio 1 # ls -l /tmp/ naofazer 2 drwx ------ 2 aluno aluno 4096 2011 -11 -04 17:02 diretorio / 2 -rwxrwxrwx 1 root root 0 2011 -11 -06 22:17 naofazer 3 4 # ls -l /tmp/ diretorio / novo Evite dar permisso total para um arquivo ou diretrio a no ser que 5 -rwx ------ 1 aluno aluno 0 2011 -11 -04 17:40 novo seja realmente preciso. 8.5 Umask No se deve fazer isso em nenhum tipo de arquivo, isso apenas O umask altera o valor da mscara de criao de arquivos e um exemplo!!! diretrios. Essa Comando para retirar a permisso de escrita de todos os usurios mscara utilizada para definir o permissionamento padro de do arquivo naofazer: um arquivo ou 1 # chmod 666 /tmp/ naofazer diretrio quando ele criado. Ou 1 Debian : 1 # chmod a-x /tmp/ naofazer 2 Pgina 18 Linux System Administration 3 O valor padr o da " umask " fica armazenada no arquivo "/ etc / login . 4Linux www.4linux.com.br 8.4 Permisses defs ". Caso no exista adicione umask <valor \ _da \ _umask >. Ou 4 1 # chmod u-x,g-x,o-x /tmp/ naofazer 5 Ex: 6 Visualize: 7 umask 0022 1 # ls -l /tmp/ naofazer 8 Comando para alterar a permisso padro do arquivo arquivo para 9 O primeiro "0" significa modo octal , pode -se passar o valor em que todos os hexadecimal colocando "0x" como prefixo . usurios apenas possam l-lo. 10 CentOS : 1 # chmod 444 /tmp/ arquivo 11 Visualize: 12 O valor padr o da " umask " fica armazenada no arquivo "/ etc / bashrc 1 # ls -l /tmp/ arquivo " Utilizando o exemplo anterior do modo Literal, vamos alterar a Para visualizar a umask atual: permisso recursivamente, Pgina 20 Linux System Administration dando permisso total somente para o dono: 4Linux www.4linux.com.br 8.5 Umask ANTES: 1 # umask 1 # ls -ld /tmp/ diretorio No Debian: a umask padro de 0022 No CentOs: a umask varia 2 drw -r--r-- 2 aluno aluno 4096 2011 -11 -04 17:02 diretorio / de acordo 3 com o usurio, quando seu UID maior do que 99 e seu grupo tem 4 # ls -l /tmp/ diretorio / novo o mesmo nmero 5 -rw -r--r-- 1 aluno aluno 0 2011 -11 -04 17:40 novo do UID, sua umask 0002, caso contrrio ser 0022. 8.5.1 Clculo da umask Repare que a permisso no muda para o arquivo com a umask 022 Para Diretrio: e umask 033. Para calcular a umask para um diretrio, pegue a permisso total Lembre-se da regra de clculo de umask. Pensar da forma que o que um diretrio sistema pode chegar, 777. Subtraia a sua umask atual. funciona pode te confundir na prova: Para diretrios: Sempre EX: umask 022 substituir de 777; Para 777 permisso mxima para um diretrio - 022 umask atual = 755 arquivos: Verificar o umask. Se o nmero for mpar, subtrair permisso do somente onde temos diretrio a ser criado execuo, em nmeros pares mantemos os nmeros. Ex: umask 033 8.6 Permisses Especiais 777 permisso mxima para um diretrio - 033 umask atual = 744 H um conjunto especial de permisses, conhecido tambm como permisso do bits especiais, diretrio a ser criado Para Arquivo: sendo eles: Para calcular a umask para um arquivo, saiba que um arquivo no O SUID bit atribudo a um arquivo binrio com permisso de pode ser criado execuo, quando com permisso de execuo por padro, esta permisso s pode Pgina 22 Linux System Administration ser passada para 4Linux www.4linux.com.br 8.6 Permisses Especiais ele manualmente. Logo a permisso do arquivo no pode ser mpar, desejamos que um usurio qualquer execute o comando com as porque o bit de permisses do execuo vale 1. Como calcular? Ex: umask 022 usurio dono do comando. Se esse comando pertencer ao usurio 777 Permisso mxima para um arquivo - 022 umask atual = 755 root um usurio permisso para o qualquer ir execut-lo com as permisses de root desde que Linux System Administration Pgina 21 tenha permisses 8.6 Permisses Especiais 4Linux www.4linux.com.br para execut-lo. Por esse motivo o SUID constitui uma grande arquivo, mas lembre-se no pode ter permisso de execuo, ento ameaa de segurana subtraia 1 dos e sua utilizao deve ser bastante cautelosa. bits que sejam mpares: O SGID bit geralmente atribuvel a diretrios. Quando um 755 - 111 retirando os bits de execuo = 644 permisso real do arquivo criado dentro arquivo de um diretrio com SGID bit ativado, o contedo gravado dentro Ex: umask 033 do diretrio ir 777 Permisso mxima para um arquivo - 033 umask atual = 744 herdar o grupo do diretrio e no o grupo do usurio que criou tal permisso para o contedo. Este arquivo, mas lembre-se no pode ter permisso de execuo, ento bit especial muito til quando utilizamos diretrios para grupos de subtraia 1 dos trabalhos e em bits que sejam mpares: servidores de arquivos. 744 - 100 retirando os bits de execuo = 644 permisso real do O Sitcky bit era bastante utilizado para realizar otimizaes de arquivo acesso a contedos, entretanto, a partir da srie 2.6 do kernel do Linux essa tarefa Veja que quando o arquivo ou diretrio no tem permisso de realizada diretamente execuo, o bit especial pelo kernel. A nica utilidade desse bit, atualmente, fazer representado por uma letra S (Upper Case), e quando possuem diretrios de uma permisso utilizao comum a todos os usurios, como no /tmp. Quando esse de execuo, o bit especial apresentado como s (Lower Case). bit est ativo O mesmo em um diretrio, todo contedo criado dentro dele pertencer ao acontece com o Sticky bit, mas com a letra t e T. criador do contedo Exemplo dos bits especiais com permisso de execuo: e por mais que ele atribua a esse contedo permisses totais para 1 # chmod 4100 /tmp/a todos os usurios, 2 # chmod 2010 /tmp/b o nico que poder excluir o arquivo ou diretrio ser o prprio dono 3 # chmod 1001 /tmp/c 4 ou o root ou 5 # ls -l ainda o dono do diretrio que tem a permisso. Para atribuirmos 6 ---s------ 1 root root 0 2008 -07 -21 13:50 a esses bits especiais, 7 ------s--- 1 root root 0 2008 -07 -21 13:50 b procedemos da mesma forma que nas permisses comuns, 8 ---------t 1 root root caio 0 2008 -07 -21 13:50 c somando os valores Todas as permisses especias que no contiverem execuo so e utilizando o comando chmod, mas agora utilizando quatro maisculas. nmeros, o primeiro S e T. nmero sendo o bit especial, seguido dos trs da permisso Exemplos: padro. Suid Bit: Veja o exemplo abaixo: Podemos usar como exemplo o comando passwd. 1 # chmod 4000 /tmp/a 1 # ls -l /usr/bin/ passwd 2 # chmod 2000 /tmp/b 2 -rwsr -xr -x 1 root root 31640 2008 -06 -12 20:39 / usr / bin / passwd 3 # chmod 1000 /tmp/c Pgina 24 Linux System Administration 4 4Linux www.4linux.com.br 8.6 Permisses Especiais 5 # ls -l /tmp Os nossos usurios comuns s podem mudar sua senha pois o 6 ---S------ 1 caio caio 0 2008 -07 -21 13:50 a comando passwd 7 ------S--- 1 caio caio 0 2008 -07 -21 13:50 b 8 ---------T 1 caio caio 0 2008 -07 -21 13:50 c est com o bit SUID ativado. Linux System Administration Pgina 23 Desabilite o Suid: 8.6 Permisses Especiais 4Linux www.4linux.com.br 1 # chmod 755 /usr/bin/ passwd O bit especial para o campo de permisses do dono o SUID 2 # ls -l /usr/bin/ passwd representado por Agora se logue como aluno e tente mudar sua senha: 1 $ passwd s ou S. Para o grupo SGID tambm representado por s ou S. J o campo No possvel, pois o aluno no tem permisso de escrita nos de permisses de outros usurios, o Sticky BIT, representado por arquivos: 1 /etc/ passwd e /etc/ shadow . t ou T. Como root, volte a permisso original: 1 # chmod 4755 /usr/bin/ passwd 2 # ls -l /usr/bin/ passwd arquivos: SGID Bit: 1 $ ls -ld / teste Crie um diretrio com permisso total para qualquer usurio: 2 drwxrwsrwt 2 root root 4096 2011 -11 -07 11:19 / teste 1 # mkdir / teste 3 $ ls -l / teste 2 # chmod 777 / teste 4 -rwxrwxrwx 1 aluno aluno 0 2011 -11 -07 11:01 / teste / numero1 Agora qualquer usurio tem acesso ao diretrio teste. 5 -rwxrwxrwx 1 aluno root 0 2011 -11 -07 11:19 / teste / numero2 Linux System Administration Pgina 25 Agora que voc viu que tem permisso total nos arquivos, tente 8.6 Permisses Especiais 4Linux www.4linux.com.br deletar algum arquivo Como usurio aluno crie um arquivo no diretrio teste: dentro do diretrio teste: 1 $ touch / teste / numero1 1 $ rm / teste / numero1 Verifique quem o dono e quem o grupo do arquivo criado: Apesar da permisso total no arquivo, no possvel remover 1 $ ls -l / teste devido a permisso do 2 -rw -r--r-- 1 aluno aluno 0 2011 -11 -07 11:01 numero1 diretrio com Stick Bit. Verifique que o grupo o mesmo do usurio. Linux System Administration Pgina 27 Agora como root altere a permisso do diretrio teste, adicionando o SGID Bit: 4451 1 # chmod 2777 / teste Novamente como usurio aluno, crie um novo arquivo dentro do Linux System Administration diretrio teste: www.4linux.com.br 1 $ touch / teste / numero2 Verifique quem o dono e quem o grupo do arquivo criado: 1 $ ls -l / teste Contedo Quotas de Disco 2 2 -rw -r--r-- 1 aluno aluno 0 2011 -11 -07 11:01 numero1 8.1 Introduo Terica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 3 -rw -r--r-- 1 aluno root 0 2011 -11 -07 11:19 numero2 8.1.1 Quotas por Usurio . . . . . . . . . . . . . . . . . . . . . . . . . 6 Visualize que o grupo agora no mais o do usurio e sim o mesmo 8.1.2 Quotas por Grupo . . . . . . . . . . . . . . . . . . . . . . . . . . 10 do diretrio. 8.2 Replicando quotas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 Stick Bit: 8.3 Criando usurio com quota definida (S funciona no Debian) . . . Pgina 26 Linux System Administration 4Linux www.4linux.com.br 8.6 Permisses Especiais . . . 13 Como root modifique novamente a permisso do diretrio teste, 8.3.1 Aviso de quota excedida . . . . . . . . . . . . . . . . . . . . . . . 13 adicione o Stick 2 Bit: 1 # chmod 1777 / teste Quotas de Disco Agora modifique as permisses dos arquivos dentro dele dando 8.1 Introduo Terica permisso total para A utilizao de um sistema de quotas um assunto to importante todos os usurios: quanto dividir o 1 # chmod 777 / teste /* disco rgido em parties. O sistema de quotas serve para Agora se logue como usurio mandark, visualize as permisses do limitarmos a quantidade diretrio e dos de blocos e inodes que um usurio ou grupo pode utilizar em uma Uma vez criada essa estrutura, basta editar os arquivos de controle determinada de quotas e partio. distribuir as quantidades de forma apropriada. A quota somente Imagine um HD com 100MB de home e 10 usurios. Se no pode ser aplicada utilizarmos um sistema por parties. de quota por nmero de blocos possvel que um dos usurios Instale o pacote de quota: resolva fazer # aptitude install quota o download de um arquivo de 90MB utilizando 90% do espao # yum install quota disponvel, fazendo Edite o arquivo /etc/fstab e inclua as opes de quota por usurio e com que os outros usurios tenham que dividir os outros 10MB por grupo em livres. Se aplicarmos /home: um sistema de quotas, podemos definir que cada usurio utilizar no 1 UUID =12 e9cf3f -99b3 -4 e8e -8079 - d4337b2ce9c8 / home ext3 mximo 10MB, defaults , de forma que cada um ter o mesmo espao disponvel, tornando a usrquota , grpquota 0 2 diviso justa. Remonte o /home para que as alteraes sejam efetuadas: Em um cenrio como este, resolvemos parte do problema, pois o 1 # mount -o remount / home usurio capaz de Verifique se as opes de quota foram aplicadas: 1 # mount criar um nmero, suficientemente grande de arquivos com tamanho zero de forma Crie os arquivos de quota na raiz da partio que receber o que ele no ocupe os 10MB atribudos a ele mas estoure o nmero sistema de quotas: Pgina 4 Linux System Administration mximo de inodes 4Linux www.4linux.com.br 8.1 Introduo Terica que o sistema de arquivos dispe, impossibilitando assim, que outro 1 # quotacheck -cug / home usurio -c -> cria arquivos de quota grave qualquer coisa neste sistema de arquivos, mesmo que haja -u -> checa quotas de usurios espao livre. -g -> checa quotas de grupos Caso d erro: O sistema de quotas uma funcionalidade do filesystem e do -f -> fora checagem das quotas kernel, sendo assim, -m -> fora checagem no filesystem montado como leitura e escrita , ambos tm que serem capazes de suport-lo. Uma vez que o no remonta o filesystem suporta filesystem como somente leitura em caso de erro. quotas, devemos adicionar os parmetros de montagem, usrquota Certifique-se de que os arquivos de controle de quota foram criados: e grpquota ao "aquota.group"e filesystem que utilizaremos com esse sistema. Isso feito no "aquota.user". arquivo /etc/fstab. 1 # ls -l / home Alm disso, temos que criar, na raiz desses filesystems, os Habilite a quota na partio /home: arquivos de controle, 1 # quotaon / home 3 Caso queira desabilitar a quota na partio o comando : 8.1 Introduo Terica 4Linux www.4linux.com.br 1 # quotaoff / home chamados aquota.user e aquota.group. Verifique se o sistema de quota est ativo, listando as suas hard -> limite mximo permitido de espao disponvel para informaes de quotas gravao, aps exceder para usurios: sua quota, existe um perodo de tempo chamado grace time para Linux System Administration Pgina 5 uso deste limite. 8.1 Introduo Terica 4Linux www.4linux.com.br inodes -> tamanho real utilizado em nmero de arquivos. (no 1 # repquota -va possvel alterar) Verifique se o sistema de quota est ativo, listando as suas soft -> limite da quota de nmero de arquivos que podem ser informaes de quotas criados, ao ultrapassar para grupos: este limite o usurio estoura sua quota. 1 # repquota -vag hard -> limite mximo permitido de nmero de arquivos que podem 8.1.1 Quotas por Usurio ser criado, aps Vamos definir qual a quantidade de recursos do HD que cada exceder sua quota, existe um perodo de tempo chamado grace usurio poder utilizar. time para uso deste Vamos impor que o usurio mandark poder utilizar at 50MB com limite. um limite Verifique se o limite j est aplicado: mximo de 60MB ou 100 arquivos com o limite mximo de 110 1 # repquota -v -a arquivos. J que fizemos a gentileza de determinar que o usurio poder usar Editando a quota do usurio mandark: 10MB ou 10 1 # edquota -u mandark arquivos a mais caso ele estoure a sua quota, devemos determinar Dentro do edquota, faremos as configuraes para que a quota do tambm por usurio mandark, quanto tempo ele poder usar esse espao a mais. seja de 50MB e ele possa criar 100 arquivos, com um limite mximo Determine que os usurios tero 5 dias de grace period: acima da 1 # edquota -t sua quota de 10MB e 10 arquivos. Altere o arquivo para que fique Caso o usurio estoure sua quota ele tem um tempo(grace period) como mostrado a antes de sua seguir: Linux System Administration Pgina 7 1 Disk quotas for user mandark ( uid 1001) : 8.1 Introduo Terica 4Linux www.4linux.com.br 2 Filesystem blocks soft hard inodes soft hard conta ser bloqueada para apagar os arquivos necessrios para 3 /dev/ sda3 0 50000 60000 0 100 110 utilizar o limite de 4 ^-------NO MEXER -------^ sua quota. Onde: Consulte a quota do usurio mandark. Pgina 6 Linux System Administration 1 # quota -u mandark 4Linux www.4linux.com.br 8.1 Introduo Terica Efetue login em outro terminal utilizando o usurio mandark e Filsesystem -> partio onde ser aplicada a quota. vamos rodar um blocks -> tamanho real utilizado em KBytes. (no possvel alterar) comando para encher o disco: soft -> limite da quota de espao disponvel para gravao, ao 1 $ yes > a ultrapassar este limite Depois que a quota estourou, volte ao terminal do root, examine o o usurio estoura sua quota. status da quota e veja se a quota do usurio mandark est estourada por espao 200000 -> soft para espao disponvel para uso utilizado: 210000 -> hard para espao disponvel para uso 1 # repquota -va Linux System Administration Pgina 9 Vamos executar o seguinte comando para estourar o nmero de 8.1 Introduo Terica 4Linux www.4linux.com.br inodes permitidos 1000 -> soft para nmero de arquivos para o usurio mandark: 1010 -> hard para nmero de arquivos 1 $ touch file {1..100} home -> partio para aplicar a quota Depois que a quota estourou, volte ao terminal do root, examine o Cheque os valores da quota do usurio mandark: status da quota 1 # quota -u mandark e veja se a quota do usurio mandark est tambm por nmero de 8.1.2 Quotas por Grupo arquivos: Defina quota por grupo para o grupo users: 1 # repquota -va 1 # setquota -g users 50000 60000 100 110 Quando o usurio est com a quota estourada possvel aumentar Ou o "grace period" 1 # edquota -g users para ele: 1 Disk quotas for group users ( gid 100) : Pgina 8 Linux System Administration 2 Filesystem blocks soft hard inodes soft hard 4Linux www.4linux.com.br 8.1 Introduo Terica 3 /dev/ sda3 0 50000 60000 0 100 110 1 # setquota -u mandark -T 86400 86400 / home 4 ^----------NO MEXER ----------^ Onde: -u -> defini que a quota pra um usurio mandark -> usurio Verifique o status da quota por grupo: que receber a 1 # repquota -vag definio de quota -T -> define o prodo de grace time 86400 -> Pgina 10 Linux System Administration tempo em segundos 4Linux www.4linux.com.br 8.1 Introduo Terica (por tamanho) 86400 -> tempo em segundos (por inode) /home -> Verifique os detalhes mais avanados sobre o uso das quotas nas partio que ser parties. definida a quota 1 # quotastats Voltando ao terminal logado, como usurio mandark, vamos Adicione o usurio mandark ao grupo users: 1 # adduser mandark users apagar os arquivos Crie um diretrio para teste de quota por grupo: criados: 1 # mkdir / home / users 1 $ rm a file * Troque sua permisso para toda vez que um arquivo for criado, Cheque os valores da quota do usurio mandark: 1 # quota -u mandark pertena ao grupo Outra forma de definir a quota do usurio atravs do comando users, para isso mude tambm o grupo do diretrio para users: 1 # chmod 2775 / home / users setquota, este comando 2 # chgrp users / home / users muito til para scripts. Acesse o diretrio /home/users com o usurio mandark e estoure a Vamos aumentar o tamanho da quota do usurio mandark: quota de grupo 1 # setquota -u mandark 200000 210000 1000 1010 / home por tamanho: -u -> indica que ser definida quota para um usurio 1 $ yes > a mandark -> usurio que receber os valores da quota Estoure a quota de grupo por nmero de arquivos: 1 $ touch arq {1..101} 8.3.1 Aviso de quota excedida Verifique o status da quota por grupo: Avisos sobre quota ultrapassada podem ser enviadas Linux System Administration Pgina 11 automaticamente a todos os 8.2 Replicando quotas 4Linux www.4linux.com.br usurios pelo utilitrio warnquota. Ele poder ser executado 1 # repquota -vag periodicamente atravs 8.2 Replicando quotas do cron (por padro isto feito diariamente na distribuio Debian Verifique a quota por usurios: pelo script 1 # repquota -va /etc/cron.daily/quota), no CentOS necessrio agendar a O usurio mandark tem quota definida e o usurio rh no tem, ento execuo do comando vamos copiar a warnquota. Dados adicionais sobre o envio das mensagens devem quota do usurio mandark para o usurio herdeiro: ser especificados 1 # edquota -up mandark herdeiro no arquivo /etc/warnquota.conf seu formato o seguinte: Onde: 1 # Programa usado para enviar as mensagens -u -> usurio 2 MAIL_CMD = "/usr/ sbin / sendmail -t" -p -> prottipo 3 # Campo de origem da mensagem -g -> grupo Linux System Administration Pgina 13 Verifique a quota por usurios: 8.3 Criando usurio com quota definida (S funciona no Debian)4Linux 1 # repquota -va www.4linux.com.br Pgina 12 Linux System Administration 4 FROM = " root@localhost " 4Linux www.4linux.com.br8.3 Criando usurio com quota definida (S 5 # but they don t have to be: funciona no Debian) 6 SUBJECT = Quota excedida 7 CC_TO = " root@localhost " 8.3 Criando usurio com quota definida (S 8 SUPPORT = " root@localhost " funciona 9 PHONE = " 5555 -2525 " O e-mail enviado aos usurios.. no Debian) Quando a quota por grupo deve-se eleger um usurio para Edite o arquivo /etc/adduser.conf e adicione um usurio que j tenha receber os e-mails de uma quota quota excedida do grupo. definida na opo QUOTAUSER= . Ex: o usurio mandark j tem O arquivo /etc/quotagrpadmins serve para configurar o usurio que cota definida e receber os emails quero passar esta quota para um usurio novo: de quota excedida do grupo: 1 # vim /etc/ adduser . conf 1 # vim /etc/ quotagrpadmins 2 # linha 67 completo com o nome do usu rio que tem quota definida : 2 grupo : usuario 3 3 users : mandark 4 QUOTAUSER =" mandark " Para receber o aviso para usurios e para grupos execute: Crie um usurio com o comando adduser e veja que ele j ter 1 # warnquota -u quota definida: 2 # warnquota -g 1 # adduser compras Caso queira pode colocar no crontab para executar de tempos em 2 # repquota -va tempos: 1 # vim /etc/ crontab qualquer PC e dar suporte a quaisquer tipos de recursos que o 2 #min hora dia_do_mes ms dia_da_semana usu rio comando usurio 3 00 15 * * * root / usr / sbin / warnquota pretenda utilizar, o desenvolvedor compila um kernel que fornece -u todas as funcionalidades 4 00 15 * * * root / usr / sbin / warnquota bsicas e, em separado, compila pedaos de cdigo que do -g suporte a funcionalidades Pgina 14 Linux System Administration 4Linux www.4linux.com.br8.3 Criando usurio com quota definida (S mais especficas. Esses pedaos de cdigo so os chamados funciona no Debian) mdulos. Obs.: O Debian j faz a checagem por padro no crontab: Dessa forma, quando o sistema carregado, um kernel bsico se /etc/cron.daily/quota. coloca na memria Linux System Administration Pgina 15 e passa a controlar a mquina. Neste ponto so verificadas outras funcionalidades 4451 que se espera que o kernel d suporte, como por exemplo utilizar uma partio XFS. Linux System Administration Neste momento, se o kernel no possuir suporte nativo a esse file www.4linux.com.br system ele ir verificar se o mdulo que d suporte a ele foi compilado e se est Contedo disponvel. Se Trabalhando com Mdulos 2 esse mdulo for encontrado, ele ser carregado expandindo as 10.1 Introduo Terica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 funcionalidades do 10.2 Gerenciando os mdulos . . . . . . . . . . . . . . . . . . . . . . . . . . 4 kernel. 10.2.1 Identificando Dispositivos e seus mdulos . . . . . . . . . . . . . 13 3 Servidor de Impresso 16 10.2 Gerenciando os mdulos 4Linux www.4linux.com.br 10.3 Introduo Terica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 Em um sistema como esse, haver diversos mdulos carregados e 10.3.1 Instalao Servidor Cups . . . . . . . . . . . . . . . . . . . . . . 17 um nmero maior 10.4 Compartilhando a impressora . . . . . . . . . . . . . . . . . . . . . . . . 40 ainda que no estar sendo utilizado, mas disponvel. 10.5 Configurao do Cliente . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 Os mdulos disponveis, em geral, encontram-se no diretrio 2 /lib/modules, podem ser visualizados com o comando "modprobe -l"e os mdulos que Trabalhando com Mdulos esto carregados podem ser visualizados com o comando lsmod. 10.1 Introduo Terica Ao mesmo tempo que a capacidade de subir mdulos uma Quando instalamos um Debian, RedHat, Suse, Slackware, entre vantagem do ponto de outras distribuies, vista que apenas os mdulos realmente necessrios sero estamos utilizando um kernel que foi compilado pelos carregados, h a desvantagem desenvolvedores da distribuio. de fragmentao do kernel na memria. O kernel que vem por padro em uma distribuio, deve ser capaz de rodar em praticamente 10.2 Gerenciando os mdulos O desenvolvimento de uma nova funcionalidade para o kernel do 12 nvidia 1765632 11 ( autoclean ) Linux pode ser 13 i810_audio 26312 0 implementada diretamente no Kernel ou compilada como um 14 soundcore 6276 0 [ i810_audio ] mdulo. 15 ac97_codec 12488 0 [ i810_audio ] Pgina 4 Linux System Administration 16 nfsd 74256 8 ( autoclean ) 4Linux www.4linux.com.br 10.2 Gerenciando os mdulos Observe a coluna Used. Ela reflete quantos processos esto De modo geral, a escolha tende a ser a compilao como mdulo. fazendo uso do mdulo. Isso se traduz no Todo mdulo deve implementar um campo na sua estrutura de carregamento dinmico do cdigo apenas quando esta dados denominado funcionalidade for necessria. usage counter para esta finalidade. Um mdulo s pode ser Alm disso, torna o kernel mais enxuto, leve, e portanto mais removido da memria eficiente. Diversos Linux System Administration Pgina 5 componentes do kernel do Linux so implementados como mdulos, 10.2 Gerenciando os mdulos 4Linux www.4linux.com.br por exemplo, se o seu usage counter for zero. filesystems, device drivers, e novas camadas de protocolos de Os mdulos so carregados atravs do programa insmod e uma comunicao. estrutura do tipo Em alguns casos, compilar o cdigo juntamente com o kernel pode module alocada quando seu carregamento solicitado. Esta ser necessrio. estrutura contm Se um determinado componente precisa alterar alguma estrutura do smbolos globais que podem ser vistos pelo kernel e outros kernel, ele no mdulos, informando os ter privilgios de fazer isso dinamicamente, ou mesmo que gere pontos de entrada de suas funes, suas variveis globais, seu sua prpria estrutura usage counter, flags, modificada, o restante do kernel e outros mdulos carregados ainda entre outros. estaro Algumas vezes, um mdulo depende de outro para realizar enxergando a antiga estrutura. determinadas operaes. Ao executar o comando lsmod voc pode ver quais mdulos esto Outro campo na estrutura module utilizado para informar as carregados atualmente dependncias dele. Se no seu kernel. Abaixo um exemplo da sada deste comando: o mdulo B depende de A, este deve ser carregado antes de ser 1 # lsmod possvel carregar B. 2 Module Size Used by Tainted : P O usage counter de A incrementado sempre que um mdulo que 3 ppp_generic 24060 0 ( autoclean ) ( unused ) depende dele 4 slhc 6564 0 ( autoclean ) [ ppp_generic ] carregado. Deste modo, no se permite que A seja removido antes 5 ircomm -tty 24224 0 ( autoclean ) ( unused ) de seus dependentes. 6 ircomm 9736 0 ( autoclean ) [ ircomm - tty ] O kernel prov o comando modprobe para facilitar o gerenciamento 7 irda 112112 0 ( autoclean ) [ ircomm - tty ircomm ] de dependncias. 8 lp 8096 0 ( autoclean )( unused ) Este comando tenta carregar automaticamente qualquer 9 parport 34176 0 ( autoclean ) [lp] dependncia do mdulo 10 printer 8448 0 ( unused ) 11 agpgart 40896 3 ( autoclean ) solicitado. Por exemplo, ao tentar carregar o mdulo MS-DOS, o 1 # lsmod comando modprobe 2 # cat / proc / modules carrega primeiro o mdulo fat, seguido por MS-DOS. Para verificar os mdulos esto carregados, usamos o comando O comando modprobe faz uso de um arquivo chamado modules.dep lsmod. para determinar Veja que a sada do comando lsmod em colunas, listado todos as dependncias de todos os mdulos compilados para o kernel mdulos que esto corrente. Este arquivo carregados em memria, inclusive os que no esto em uso. Onde: gerado pela execuo, no start-up da mquina, de outro programa Module exibe o nome do mdulo chamado Size exibe em bytes, o tamanho da memria do mdulo depmod. Ele avalia, durante o carregamento inicial do kernel, todos Used by exibe a contagem de quantas instncias do mdulo esto os mdulos carregadas e o compilados, normalmente armazenados em /lib/modules, e gera o mdulo que est usando; os valores so importantes porque no arquivo modules. podemos remover dep. um mdulo que esteja sendo usado, a no ser que nesse campo, o Para remover um mdulo da memria, utiliza-se o comando rmmod. valor seja zero. modprobe -r ou Tambm exibe se o mdulo depende de outro para funcionar, rmmod -r so usados para remover uma pilha de mdulos. mostrando o nome do O usurio, atravs da configurao de um novo kernel, pode alterar mdulo que ele depende. o modo como Para determinar quais mdulos esto compilados (disponveis): diversos componentes so carregados: compilados junto com o Linux System Administration Pgina 7 kernel ou como mdulos. 10.2 Gerenciando os mdulos 4Linux www.4linux.com.br 1 # modprobe -l Normalmente recomendado fazer uso o mximo possvel de mdulos. Entretanto, Uma das opes do comando modprobe listar os mdulos em casos em que o componente permanentemente necessrio, disponveis em /lib/modules/. pode ser Para isso, basta utilizar a opo -l: mais eficiente compil-lo junto com o kernel, ganhando em para determinar o nmero de mdulos carregados e o nmero de performance. mdulos disponveis: 1 # lsmod | grep -v ^" Module " | wc -l Pgina 6 Linux System Administration 2 # modprobe -l | wc -l 4Linux www.4linux.com.br 10.2 Gerenciando os mdulos de suma importncia saber a verso do kernel para saber se a Determine para que serve o mdulo chamado ext3: 1 # modinfo ext3 verso suporta ou O comando modinfo exibe informaes sobre um mdulo no um mdulo. Determine quais mdulos so utilizados pelo filesystem ext3: Determine qual verso do kernel est sendo utilizada: 1 # lsmod | grep ext3 1 # uname -r Carregue o mdulo do filesystem vfat: Dica LPI: O comando que exibe o Kernel em uso, e suas opes : 1 # modprobe vfat uname O comando modprobe ou modprobe -i o responsvel por -a carregar um mdulo Determine quais mdulos esto carregados: e suas dependncias. Determine quais so as dependncias do 6 vermagic : 2.6.32 -5 -686 SMP mod_unload modversions 686 mdulo vfat: Verificado que o mdulo fat depende do mdulo nls_base. Agora Pgina 8 Linux System Administration verifique se o mdulo 4Linux www.4linux.com.br 10.2 Gerenciando os mdulos nls_base no depende de outro mdulo: 1 # modinfo vfat 1 # modinfo nls_base Determine quais mdulos so utilizados pelo filesystem vfat: 2 filename : /lib/ modules /2.6.32 -5 -686/ kernel /fs/ nls / nls_base .ko 1 # lsmod | grep vfat 3 license : DUAL BSD/GPL Remova o mdulo vfat: 4 depends : 1 # modprobe -r vfat 5 vermagic : 2.6.32 -5 -686 SMP mod_unload modversions 686 O comando modprobe tambm pode ser utilizado para remover O mdulo nls_base no depende de nenhum outro mdulo, ento mdulos que no agora, carregue estejam sendo utilizados por outros mdulos. Alm dele remover o os mdulos na ordem de dependncias: mdulo, ele tambm nls_base -> fat -> vfat remove suas dependncias. Para executar essa ao, basta usar a Lembrando que voc deve passar o caminho completo do mdulo opo -r: para utilizar o Outra forma de carregar mdulos atravs do comando , mas comando . diferente do comando Para visualizar todos os mdulos disponveis utiliza-se o comando modprobe necessrio passar o caminho completo do mdulo e modprobe com tambm necessrio a opo -l, mas para visualizar se um mdulo especfico est carregar suas dependncias primeiro. disponvel utilize seu Verifique quais so as dependncias do mdulo vfat: nome como argumento. 1 # modinfo vfat Todos os mdulos: 2 filename : /lib/ modules /2.6.32 -5 -686/ kernel /fs/ fat / vfat .ko Pgina 10 Linux System Administration 3 author : Gordon Chaffee 4Linux www.4linux.com.br 10.2 Gerenciando os mdulos 4 description : VFAT filesystem support 1 # modprobe -l 5 license : GPL Mdulo especfico: 6 srcversion : 13 B4B9904275625D3971810 1 # modprobe -l nls_base 7 depends : fat ,nlsbase 2 # modprobe -l fat 8 vermagic : 2.6.32 -5 -686 SMP mod_unload modversions 686 3 # modprobe -l vfat Linux System Administration Pgina 9 Ento para carregar o mdulo nls_base fat e vfat faa: 10.2 Gerenciando os mdulos 4Linux www.4linux.com.br 1 # insmod /lib/ modules /$( uname -r)/$( modprobe -l nls_base ) Na sada temos duas dependncias para o mdulo vfat, agora 2 # insmod /lib/ modules /$( uname -r)/$( modprobe -l fat ) precisamos saber se 3 # insmod /lib/ modules /$( uname -r)/$( modprobe -l vfat ) suas dependncias no so dependentes de outras dependncias: Veja que todos eles foram carregados com sucesso: 1 # modinfo fat 1 # lsmod | grep fat 2 filename : /lib/ modules /2.6.32 -5 -686/ kernel /fs/ fat / fat .ko Outra forma de remover mdulos atravs do comando rmmod, 3 license : GPL mas diferente do 4 srcversion : F3CEDF3D6DC8D993978847D comando modprobe -r ele s remove o mdulo que no esteja 5 depends : nls_base sendo utilizado por outro e no remove suas dependncias. 3 # modprobe vfat Na sada do comando anterior verifique qual mdulo est sendo O comando depmod gera o arquivo modules.dep. utilizado por outro: 10.2.1 Identificando Dispositivos e seus mdulos vfat -> no tem dependente Identifique qual a placa de rede do seu computador: fat -> vfat depende dele 1 # lspci -nn | grep -i eth nls_base -> fat depende dele 2 03:00.0 Ethernet controller [0200]: Realtek Semiconductor Co., Ltd . Linux System Administration Pgina 11 RTL8101E / RTL8102E PCI Express Fast Ethernet controller [10 ec 10.2 Gerenciando os mdulos 4Linux www.4linux.com.br :8136] (rev 02) Logo para removermos temos que seguir a ordem: DICA: Repare no nmero 10ec:8136 (PCI iD) este nmero nico vfat -> fat -> nls_base para este dispositivo Removendo os mdulos: e atravs dele podemos saber qual o nome do seu mdulo e qual 1 # rmmod vfat verso do 2 # rmmod fat kernel tem suporte a ele. 3 # rmmod nls_base Acesse o site: http://www.kmuto.jp/debian/hcl/ Veja que todos eles foram descarregados com sucesso: Digite o nmero encontrado: 10ec:8136 e descubra qual o nome do 1 # lsmod | grep fat mdulo e quais Como o modprobe sabe quais mdulos dependem de quais verses do kernel tm suporte a este mdulo. mdulos? Outra forma de identificar o modulo, de um dispositivo o "lspci", 1 # cd /lib/ modules /$( uname -r) com filtro de uma 2 # ls -l palavra chave, continuando o exemplo da placa de rede: 3 # less modules .dep Linux System Administration Pgina 13 O arquivo modules.dep o responsvel por armazenar os dados de 10.2 Gerenciando os mdulos 4Linux www.4linux.com.br dependncias 1 # lspci | grep -i net de mdulos, atravs dele os comandos modprobe e modinfo, 2 04:00.0 Ethernet controller : Marvell Technology Group Ltd . 88 E8057 conseguem obter as PCI -E Gigabit Ethernet Controller ( rev 10) informaes necessrias para serem executados, teste arquivo Repare o nmero de id da placa de rede 04:00.0 e descubra qual o gerado em todo nome do mdulo boot. que a sua placa de rede necessita: No acredita que o modprobe usa esse arquivo? Remova-o e tente 1 # lspci -v -s 04:00.0 carregar o 2 04:00.0 Ethernet controller : Marvell Technology Group Ltd . 88 E8057 mdulo vfat: PCI -E Gigabit Ethernet Controller ( rev 10) 1 # rm /lib/ modules /$( uname -r)/ modules . dep 3 Subsystem : Sony Corporation Device 907 a 2 # modprobe vfat 4 Flags : bus master , fast devsel , latency 0, IRQ 46 Pgina 12 Linux System Administration 5 Memory at e6620000 (64 - bit , non - prefetchable ) [ size =16 K] 4Linux www.4linux.com.br 10.2 Gerenciando os mdulos 6 I/O ports at a000 [ size =256] No funcionou? E agora? Construa o arquivo modules.dep e tente 7 Expansion ROM at e6600000 [ disabled ] [ size =128 K] novamente: 8 Capabilities : [48] Power Management version 3 1 # depmod 9 Capabilities : [5c] MSI: Enable + Count =1/1 Maskable - 64 bit + 2 # ls /lib/ modules /$( uname -r)/ modules . dep 10 Capabilities : [c0] Express Legacy Endpoint , MSI 00 11 Capabilities : [100] Advanced Error Reporting Bloqueie o mdulo da placa de rede de ser carregado na hora do 12 Capabilities : [130] Device Serial Number 6b -3b -74 -ff -ff -49 -42 -54 boot: 13 Kernel driver in use: sky2 1 # vim /etc/ modprobe .d/ blacklist . conf 14 Kernel modules : sky2 2 blacklist r8169 Outra forma de busca seria buscar informaes na internet ou tentar Reinicie a mquina e veja que o mdulo no carregado: determinar qual 1 # lsmod | grep r8169 o mdulo que ela utiliza na raa(tentativa e erro): Linux System Administration Pgina 15 1# modprobe -l | grep -i realtek 10.2 Gerenciando os mdulos 4Linux www.4linux.com.br 2# modprobe -l | grep -i real Caso precise que um mdulo seja carregado automaticamente na 3# modprobe -l | grep -i tek hora do boot 4# modprobe -l | grep rtl faa: 5# modprobe ...( m dulos obtidos nas s idas ) Debian: Pgina 14 Linux System Administration 1 # vim /etc/ modules 4Linux www.4linux.com.br 10.2 Gerenciando os mdulos 2 zaurus No h uma regra geral para determinar qual o mdulo que CentOS: fornece suporte 1 # vim /etc/rc. modules a um determinado hardware. A forma mais fcil utilizar um kernel 2 modprobe zaurus genrico 3 # chmod +x /etc/rc. modules e tentar descobrir qual o mdulo que utilizado por meio dos Verifique que o mdulo zaurus para PDA ZAURUS no est comandos lsmod carregado, reinicie a e modinfo, procurar na rvore do kernel, ou procurar nos mquina e veja que ele ser carregado automaticamente, aps o mecanismos de busca na boot: Internet. 1 # lsmod | grep zaurus Aps descobrir o mdulo descarregue-o e veja que a placa rede Pgina 16 Linux System Administration parou de funcionar: 1 # modprobe -r r8169 Servidor de Impresso No CentOS ao derrubar o mdulo da placa de rede ele recarrega o 10.3 Introduo Terica mdulo automaticamente, O CUPS - Common Unix Printing System uma das formas mais isto porque existe o arquivo: /etc/sysconfig/network- utilizadas atualmente scripts/networkfunctions, para trabalhar com impresso no mundo GNU/Linux. Ele utiliza o este arquivo mantm funes que controlam muitos scripts de protocolo interface e IPP - Internet Printing Protocol para gerenciar as filas e trabalhos de funces que esto em contato com programas em execuo que impresso. Com tenham solicitado o IPP voc pode imprimir de qualquer lugar, atravs da internet informaes sobre mudanas no status de uma interface. para sua impressora Caso queira bloquear o carregamento de um mdulo na inicializao domstica, por exemplo. Alm disso, o CUPS fornece uma edite o arquivo interface Web /etc/modprobe.d/blacklist.conf e adicione blacklist [mdulo]. para gerenciamento de quotas de impresso e que oferece suporte 4Linux www.4linux.com.br 10.3 Introduo Terica maioria das Selecione novamente o driver: impressoras existentes. Linux System Administration Pgina 21 A melhor documentao a respeito do CUPS pode ser encontrada 10.3 Introduo Terica 4Linux www.4linux.com.br online no manual Antes de fazer o download, pode-se tentar instalar o driver hplip oficial no projeto, disponvel no endereo http://www.cups.org pelo gerenciador 10.3.1 Instalao Servidor Cups de pacotes de sua distribuio: Debian: Debian: 1 # apt -get install hplip 1 # apt -get install cups -bsd Verifique a verso: CentOS: 1 # dpkg -l hplip 17 10.3 Introduo Terica 4Linux www.4linux.com.br CentOS: 1 # yum install hplip 1 # yum install cups -lpd Agora podemos gerenciar as configuraes relacionadas Verifique a verso: 1 # rpm -q hplip impressora. Para Compare as verses com a do site, talvez sua verso no tenha isso utilizaremos a interface de gerenciamento do CUPS via suporte para a browser. Para isso, impressora, ento faa o download da verso mais atual: abra seu navegador preferido e digite http://localhost:631. Pgina 22 Linux System Administration Antes de continuarmos a instalao do servidor de impresso 4Linux www.4linux.com.br 10.3 Introduo Terica devemos saber Ao clicar em download, aparecer a tela abaixo, preencha conforme se a impressora tem suporte ao linux e qual o seu driver. o solicitado: No Para isso identifique o nome e modelo da impressora, no nosso CentOS: exemplo a impressora Clique em avanar, verfique que na prxima tela, apresentado que ser a HP Deskjet D1660. o pacote fornecido DICA: Para descobrir o driver da impressora e se ela tem suporte pela distribuio no tem suporte a esta impressora: Red Hat acesse o Enterprise linux site: http://www.openprinting.org 6.0 supplies HPLIP 1.6.7 and it does not support your printer. Clique em Printers: Linux System Administration Pgina 23 Pgina 18 Linux System Administration 10.3 Introduo Terica 4Linux www.4linux.com.br 4Linux www.4linux.com.br 10.3 Introduo Terica Clique em avanar: Selecione o fabricante(Manufacter) e modelo(Model) e depois clique Faa o download: em Show this Pgina 24 Linux System Administration printer: 4Linux www.4linux.com.br 10.3 Introduo Terica Linux System Administration Pgina 19 Para instalar: 10.3 Introduo Terica 4Linux www.4linux.com.br 1 # rpm -i hplip -3.11.12 _rhel -6.0. x86_64 . rpm Aparecer o nome da impressora no topo da pgina: No Debian: E no final aparecer o nome do driver, selecione-o: Na tela seguinte alertado que o Debian6 fornece uma verso do Pgina 20 Linux System Administration driver hplip que no suporte a impressora HP. Debian 6.0 supplies HPLIP 2.8.6 and it 24 ----------------- does not support 25 Automatic mode will install the full HPLIP solution with the most Linux System Administration Pgina 25 common options . 10.3 Introduo Terica 4Linux www.4linux.com.br 26 Custom mode allows you to choose installation options to fit your printer specific requirements . Clique em avanar: 27 Qual o tipo de instala o: autom tica 28 Please choose the installation mode (a= automatic *, c= custom , q= quit Clique em avanar novamente: ) Para finalizar faa o download do driver: :a Pgina 26 Linux System Administration 29 Initializing . Please wait ... 4Linux www.4linux.com.br 10.3 Introduo Terica 30 Execute o arquivo baixado: 31 INTRODUCTION 1 # bash hplip -3.11.10. run 32 ------------ 2 Creating directory hplip -3.11.10 33 This installer will install HPLIP version 3.11.10 on your computer . 3 Verifying archive integrity ... All good . 34 Please close any running package management systems now (YaST , 4 Uncompressing HPLIP 3.11.10 Self Extracting Archive Adept ................................................................................. , Synaptic , Up2date , etc). 5 warning : hplip - install should not be run as root . 35 6 HP Linux Imaging and Printing System ( ver . 3.11.10) 36 7 HPLIP Installer ver. 5.1 37 DISTRO /OS CONFIRMATION 8 38 ---------------------- 9 Copyright (c) 2001 -9 Hewlett - Packard Development Company , LP 39 Distro appears to be Debian 6.0.3. 10 This software comes with ABSOLUTELY NO WARRANTY . 40 DICA : Quando perguntar qual a vers o da sua distro no cado do 11 This is free software , and you are welcome to distribute it Debian , 12 under certain conditions . See COPYING file for more details . diga que no est correto e selecione manualmente a vers o 6.0 , 13 o pacote no atualizado constantemente quanto a distribui o e 14 Installer log saved in: hplip - install_Mon -21 - Nov -2011 _17 :18:45. log por isso , falhar a instala o postriormente se no escolher 15 manualmente . 16 / error : You are running the installer as root . It is highly 41 Is " Debian 6.0.3 " your correct distro /OS and version (y= yes *, n=no , recommended that you run the installer as q= quit ) ? n 17 error : a regular (non - root ) user . Do you still wish to continue ? 42 18 Continue instalando : 43 DISTRO /OS SELECTION Continue with 44 ------------------- installation (y=yes , n=no*, q= quit ) ? y 45 19 46 Choose the name of the distro /OS that most closely matches your 20 note : Defaults for each question are maked with a *. Press <enter > system : to accept the default . 47 Linux System Administration Pgina 27 Pgina 28 Linux System Administration 10.3 Introduo Terica 4Linux www.4linux.com.br 4Linux www.4linux.com.br 10.3 Introduo Terica 21 48 Num. Distro /OS Name 22 49 ---- ------------------------ 23 INSTALLATION MODE 50 0 Mepis 88 Distro set to: Debian 6.0.2 51 1 Debian 89 52 2 SUSE Linux 90 53 3 Mandriva Linux 91 INSTALLATION NOTES 54 4 Fedora 92 ------------------ 55 5 Red Hat 93 NOTE : Disable the CD Sources in your apt sources . list or the install 56 6 Red Hat Enterprise Linux will fail and hang . 57 7 Ubuntu 94 58 8 PCLinuxOS 95 Please read the installation notes . Press <enter > to continue or q 59 9 Linux Mint to quit : 60 10 gOS 96 97 61 11 Linpus Linux 98 RUNNING PRE - INSTALL COMMANDS 62 12 IGOS 99 ---------------------------- 63 13 Boss 100 OK 64 14 Linux From Scratch 101 65 Escolha Debian : 1 102 66 Enter number 0...14 (q= quit ) ? 1 103 INSTALL MISSING REQUIRED DEPENDENCIES 67 104 ------------------------------------- 68 Choose the version of " Debian " that most closely matches your system 105 warning : There are 8 missing REQUIRED dependencies . : 106 note : Installation of dependencies requires an active internet 69 connection . 70 Num. Distro /OS Version 107 warning : Missing REQUIRED dependency : gcc ( gcc - GNU Project C 71 -------------------------------------------- and C 72 0 Unknown or not listed ++ Compiler ) 73 1 5.0 (" Lenny ") 108 warning : Missing REQUIRED dependency : make ( make - GNU make 74 2 5.0.1 (" Lenny ") utility 75 3 5.0.2 (" Lenny ") to maintain groups of programs ) 76 4 5.0.3 (" Lenny ") 109 warning : Missing REQUIRED dependency : python - devel ( Python 77 5 5.0.4 (" Lenny ") devel - 78 6 5.0.5 (" Lenny ") Python development files ) 79 7 5.0.6 (" Lenny ") 110 warning : Missing REQUIRED dependency : cups - devel ( CUPS devel 80 8 5.0.7 (" Lenny ") - Common 81 9 5.0.8 (" Lenny ") Unix Printing System development files ) 82 10 6.0 (" Squeeze ") 111 warning : Missing REQUIRED dependency : libusb ( libusb - USB 83 11 6.0.1 (" Squeeze ") library ) Linux System Administration Pgina 29 112 warning : Missing REQUIRED dependency : libtool ( libtool - Library 10.3 Introduo Terica 4Linux www.4linux.com.br building support services ) 84 12 6.0.2 (" Squeeze ") Pgina 30 Linux System Administration 85 Escolha a vers o mais pr xima a sua distro : 4Linux www.4linux.com.br 10.3 Introduo Terica 86 Enter number 0...12 (q= quit ) ? 12 87 113 warning : Missing REQUIRED dependency : cups - image ( CUPS image - CUPS image development files ) Linux System Administration Pgina 31 114 warning : Missing REQUIRED dependency : libjpeg ( libjpeg - JPEG 10.3 Introduo Terica 4Linux www.4linux.com.br library ) 134 CHECKING FOR NETWORK CONNECTION 115 135 ------------------------------- 116 136 Network connection present . 117 INSTALL MISSING OPTIONAL DEPENDENCIES 137 118 ------------------------------------- 138 119 warning : There are 10 missing OPTIONAL dependencies . 139 RUNNING PRE - PACKAGE COMMANDS 120 note : Installation of dependencies requires an active internet 140 ---------------------------- connection . 141 su -c " dpkg -- configure -a" (Pre - depend step 1) 121 warning : Missing REQUIRED dependency for option network : 142 su -c "apt -get install -f" (Pre - depend step 2) libcrypto 143 su -c "apt -get update " (Pre - depend step 3) ( libcrypto - OpenSSL cryptographic library ) 144 warning : An error occurred running su -c "apt - get install --yes 122 warning : Missing REQUIRED dependency for option network : cupsys -bsd" libnetsnmp - devel ( libnetsnmp - devel - SNMP networking library 145 su -c "apt -get install --yes cupsys - bsd " (Pre - depend step 4) development files ) 146 OK 123 warning : Missing REQUIRED dependency for option gui_qt4 : pyqt4 - 147 dbus ( PyQt 4 DBus - DBus Support for PyQt4 ) 148 124 warning : Missing REQUIRED dependency for option gui_qt4 : pyqt4 ( 149 DEPENDENCY AND CONFLICT RESOLUTION PyQt 4- Qt interface for Python ( for Qt version 4.x)) 150 ---------------------------------- 125 warning : Missing OPTIONAL dependency for option fax : reportlab ( 151 Running su -c "apt -get install --force - yes -y g++" Reportlab - PDF library for Python ) 152 Please wait , this may take several minutes ... 126 warning : Missing REQUIRED dependency for option fax : dbus ( 153 Running su -c "apt -get install --force - yes -y make " DBus - 154 Please wait , this may take several minutes ... Message bus system ) 155 Running su -c "apt -get install --force - yes -y python - dev " 127 warning : Missing REQUIRED dependency for option scan : sane - 156 Please wait , this may take several minutes ... devel ( 157 Running su -c "apt -get install --force - yes -y libcups2 - dev " SANE - Scanning library development files ) 158 Please wait , this may take several minutes ... 128 warning : Missing OPTIONAL dependency for option scan : pil ( PIL - 159 Running su -c "apt -get install --force - yes -y cups - bsd " Python Imaging Library ( required for commandline scanning with hp 160 Please wait , this may take several minutes ... - scan )) 161 Running su -c "apt -get install --force - yes -y cups - client " 129 warning : Missing OPTIONAL dependency for option scan : xsane ( 162 Please wait , this may take several minutes ... xsane 163 Running su -c "apt -get install --force - yes -y libusb - dev " - Graphical scanner frontend for SANE ) 164 Please wait , this may take several minutes ... 130 warning : Missing OPTIONAL dependency for option base : cups - ddk 165 Running su -c "apt -get install --force - yes -y libtool " ( 166 Please wait , this may take several minutes ... CUPS DDK - CUPS driver development kit ) 167 Running su -c "apt -get install --force - yes -y libcupsimage2 " 131 warning : This installer cannot install cups -ddk for your distro /OS 168 Please wait , this may take several minutes ... and/or version . 169 Running su -c "apt -get install --force - yes -y libcupsimage2 - dev " 132 Pgina 32 Linux System Administration 133 4Linux www.4linux.com.br 10.3 Introduo Terica 170 Please wait , this may take several minutes ... 208 BUILD AND INSTALL 171 Running su -c "apt -get install --force - yes -y libjpeg62 - dev " 209 ----------------- 172 Please wait , this may take several minutes ... 210 Running ./ configure --with - hpppddir =/ usr / share / ppd /HP -- libdir 173 Running su -c "apt -get install --force - yes -y libssl - dev " =/ usr 174 Please wait , this may take several minutes ... / lib64 -- prefix =/ usr --enable - qt4 --enable -doc - build --disable - 175 Running su -c "apt -get install --force - yes -y libsnmp - dev " cups -ppd - install --disable - foomatic -drv - install --disable - 176 Please wait , this may take several minutes ... foomatic -ppd - install --disable -hpijs - install --disable - policykit 177 Running su -c "apt -get install --force - yes -y python -qt4 - dbus " --enable -cups -drv - install --enable - hpcups - install --enable - 178 Please wait , this may take several minutes ... network - build --enable -dbus - build --enable -scan - build --enable - 179 Running su -c "apt -get install --force - yes -y python - qt4 " fax -build 180 Please wait , this may take several minutes ... 211 Please wait , this may take several minutes ... 181 Running su -c "apt -get install --force - yes -y python - reportlab " 212 Command completed successfully . 182 Please wait , this may take several minutes ... 213 183 Running su -c "apt -get install --force - yes -y libdbus -1- dev " 214 Running make clean 184 Please wait , this may take several minutes ... 215 Please wait , this may take several minutes ... 185 Running su -c "apt -get install --force - yes -y libsane - dev " 216 Command completed successfully . 186 Please wait , this may take several minutes ... 217 187 Running su -c "apt -get install --force - yes -y python - imaging " 218 Running make 188 Please wait , this may take several minutes ... 219 Please wait , this may take several minutes ... 189 Running su -c "apt -get install --force - yes -y xsane " 220 Command completed successfully . 190 Please wait , this may take several minutes ... 221 191 222 Running make install 192 RUNNING POST - PACKAGE COMMANDS 223 Please wait , this may take several minutes ... 193 ----------------------------- 224 Command completed successfully . 194 OK 225 195 226 196 227 Build complete . 197 RE - CHECKING DEPENDENCIES 228 198 ------------------------ 229 199 warning : An optional dependency pil ( PIL - Python Imaging Library ( 230 POST - BUILD COMMANDS required for commandline scanning with hp - scan )) is still 231 ------------------- missing . 232 /usr/ sbin / usermod -a -G lp , lpadmin root (Post - build step 1) 233 200 warning : Some features may not function as expected . 234 201 202 235 RESTART OR RE - PLUG IS REQUIRED 203 PRE - BUILD COMMANDS Pgina 34 Linux System Administration 204 ------------------ 4Linux www.4linux.com.br 10.3 Introduo Terica Linux System Administration Pgina 33 236 ------------------------------ 10.3 Introduo Terica 4Linux www.4linux.com.br 237 If you are installing a USB connected printer , and the printer was 205 OK plugged in 206 238 when you started this installer , you will need to either restart 207 your PC or 239 unplug and re - plug in your printer ( USB cable only ). If you choose Digite a senha do administrador para adicionar a impressora, todos to restart , que pertenam 240 run this command after restarting : hp - setup ( Note : If you are using ao grupo lpadmin so administradores do cups. a parallel Imprima uma pgina teste: 241 connection , you will have to restart your PC. If you are using Linux System Administration Pgina 39 network / wireless , 10.4 Compartilhando a impressora 4Linux www.4linux.com.br 242 you can ignore and continue ). 243 Restart or re - plug in your printer (r= restart , p=re - plug in*, i= 10.4 Compartilhando a impressora ignore / continue , q= quit ) : Na aba Administration do lado direito, habilite: 244 Please unplug and re - plugin your printer now . Press <enter > to - Visualizar impressoras compartilhadas por outros sistemas continue or q to quit : <enter > - Compartilhar impressoras conectadas a este servidor Com a inmpressora ligada e conectada ao servidor: execute o - Habilitar administrao remota comando instalado Pgina 40 Linux System Administration pelo pacote: 4Linux www.4linux.com.br 10.5 Configurao do Cliente 1 # hp - setup Tudo o que pode ser feito no gerenciador grfico, pode ser feito no Escolha o tipo de conexo da impressora e avance: arquivo de configurao Linux System Administration Pgina 35 do servidor cups: 10.3 Introduo Terica 4Linux www.4linux.com.br 1 # cat /etc/ cups / cupsd . conf O dispositivo ser reconhecido: Adicione a impressora: 10.5 Configurao do Cliente Pgina 36 Linux System Administration O arquivo para configurao do client o client.conf que por padro 4Linux www.4linux.com.br 10.3 Introduo Terica no existe ou Pode-se adicionar a impressora diretamente pela sua interface est vazio: grfica caso o driver 1 # vim /etc/ cups / client . conf j esteja instalado: Esse arquivo deve conter o endereo IP do Servidor de Impresso Acesse: http://localhost:631 na rede: Preencha o nome da impressora, os demais campos no so ServerName 192.168.200.254 obrigatrios, este ser Linux System Administration Pgina 41 10.5 Configurao do Cliente 4Linux www.4linux.com.br o nome que aparecer na rede: Reinicie o servio do cups: Linux System Administration Pgina 37 1 # /etc/ init .d/ cups restart 10.3 Introduo Terica 4Linux www.4linux.com.br Caso sua impressora j esteja conectada ao servidor e ligada, Definimos nossa impressora conectada atravs da porta USB, mas ela ser detectada e se fosse uma automaticamente, escolha a forma com que ela est conectada impressora da rede, ou Paralela? Podemos conferir como ela seria corretamente, referenciada caso ela no tenha sido reconhecida. usando o comando abaixo: 1 # lpinfo -v Escolha o driver para o tipo da sua impressora: Dica LPI: Se voc tivesse um impressora em na segunda porta Pgina 38 Linux System Administration 4Linux www.4linux.com.br 10.3 Introduo Terica paralela, esta seria referenciada como /dev/lp1. 11.7 Verificando portas abertas . . . . . . . . . . . . . . . . . . . . . . . . . . 40 Podemos agora fazer um teste de impresso com o comando lp: 11.7.1 Comando netstat . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 1 # lp - dnome_da_impressora /etc / shadow 11.7.2 Comando nmap . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 Dica LPI: a opo -d"recebe o nome da minha impressora 11.8 Comando tcpdump . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 /etc/shadow o Servio de Rede Telnet 46 arquivo que ser impresso 11.9 Telnet TELetype NETwork . . . . . . . . . . . . . . . . . . . . . . . . 48 . 11.10Instalao e configurao do Telnet . . . . . . . . . . . . . . . . . . . . Verifique agora a fila de impresso atual: 49 1 # lpstat -t 2 Pgina 42 Linux System Administration 4Linux www.4linux.com.br 10.5 Configurao do Cliente ou Redes avanado 1 # lpq - Pnome_da_empresa 11.1 Introduo Terica Para remover o trabalho da fila de impresso por modo texto 11.1.1 IPV4 execute: No IPV4, os endereo IP so compostos por 4 blocos de 8 bits (32 1 # lprm - Pnome_da_impressora n mero_do_job bits no total), Linux System Administration Pgina 43 que so representados atravs de nmeros de 0 a 255, como "200.156.23.43"ou 4451 "64.245.32.11". Linux System Administration As faixas de endereos comeadas com "10", com "192.168" ou com de "172.16" www.4linux.com.br at "172.31" so reservadas para uso em redes locais e por isso Contedo no so usados na internet. Os roteadores que compe a grande rede so Redes avanado 2 configurados para ignorar 11.1 Introduo Terica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 estes pacotes, de forma que as inmeras redes locais que utilizam 11.1.1 IPV4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 endereos na 11.2 Mscara de rede . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 faixa "192.168.0.x"(por exemplo) podem conviver pacificamente. 11.2.1 Alterando o nmero de bits da mscara de sub-rede . . . . . . . Embora aparentem ser uma coisa s, os endereos IP incluem duas 8 informaes. 11.2.2 Ipv6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 O endereo da rede e o endereo do host dentro dela. Em uma rede 11.3 Tipos de Endereos IPv6 . . . . . . . . . . . . . . . . . . . . . . . . . . 24 domstica, 11.3.1 Endereos Unicast . . . . . . . . . . . . . . . . . . . . . . . . . 25 por exemplo, voc poderia utilizar os endereos "192.168.1.1", 11.4 Endereos Anycast . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 "192.168.1.2"e 11.4.1 Endereo Multicast . . . . . . . . . . . . . . . . . . . . . . . . . 31 "192.168.1.3", onde o "192.168.1." o endereo da rede (e por isso 11.5 Estrutura do endereo Anycast . . . . . . . . . . . . . . . . . . . . . . . 33 no muda) e o 11.6 ARP - Address Resolution Protocol . . . . . . . . . . . . . . . . . . . . . ltimo nmero (1, 2 e 3) identifica os trs micros que fazem parte 36 dela. Os micros da rede local podem acessar a internet atravs de um ou seja, apenas 256 endereos) o desperdcio muito grande. roteador, que pode Muitas empresas ser tanto um servidor com duas placas de rede, quando um modem alugam faixas de endereos classe C para utilizar apenas dois ou ADSL ou outro trs endereos por dispositivo que oferea a opo de compartilhar a conexo. Neste exemplo. caso, o roteador Para piorar, parte dos endereos esto reservados para as classes passa a ser o gateway da rede e utiliza seu endereo IP vlido para D e E, que jamais encaminhar as foram implementadas. Isto faz com que j haja uma grande falta de 3 endereos, 11.1 Introduo Terica 4Linux www.4linux.com.br principalmente os de classe A e B, que j esto todos ocupados. requisies feitas pelos micros da rede interna. Este recurso Pgina 4 Linux System Administration chamado de NAT 4Linux www.4linux.com.br 11.2 Mscara de rede (Network Address Translation). 11.2 Mscara de rede Endereos de 32 bits permitem cerca de 4 bilhes de endereos A mscara de rede, juntamente com o endereo IP, define a rede o diferentes, quase computador pertence, o suficiente para dar um endereo IP exclusivo para cada habitante isto , que outros endereos IP que o computador pode comunicar do planeta. Os diretamente endereos so divididos em: na mesma LAN. O grande problema que os endereos so sempre divididos em A fim de compreender a mscara lembre-se sempre que os 4 bytes duas partes, rede que define tanto o e host. Nos endereos de classe A, o primeiro octeto se refere endereo IP e a mscara de rede poderiam ser representados em rede e os trs octetos formato binrio. seguintes referem-se ao host. Temos apenas 126 faixas de A mscara de rede , por definio, uma seqncia de "1"a partir da endereos classe A esquerda para disponveis no mundo, dadas a governos, instituies e at mesmo a direita, seguido por um certo nmero de "0"(a faixa de rede). algumas empresas Devido a esta regra privadas, como por exemplo a IBM. As faixas de endereos classe A a mscara de rede muitas vezes representada com valores consomem decimais, que soam cerca de metade dos endereos IP disponveis, representando um como um ou mais "255", seguido por um ou mais "0". gigantesco desperdcio, Utilizando mscaras de sub-rede padro para cada classe de j que nenhuma das faixas completamente utilizada. Ser que a endereos, onde so IBM utilizados oito, dezesseis ou vinte e quatro bits para a mscara de utiliza todos os 16 milhes de endereos IP a que tem direito? rede, conforme Certamente no. descrito a seguir: Mesmo nos endereos classe B (dois octetos para a rede, dois para Por isso que existe uma outra notao conhecida como CIDR o host, garantindo (Classless Inter-Domain 65 mil endereos) e nos classe C (trs octetos para a rede e um para o host, Routing), onde a mscara de sub-rede indicada simplesmente pelo A boa notcia que possvel dividir uma rede (qualquer rede) em nmero de bits sub-redes, onde utilizados na mscara de sub-rede, conforme exemplos a seguir: cada sub-rede fica apenas com uma faixa de nmeros IP de toda a Linux System Administration Pgina 5 faixa original. 11.2 Mscara de rede 4Linux www.4linux.com.br Por exemplo, a rede Classe C 200.100.100.0/255.255.255.0, com Porm com este esquema de endereamento, baseado apenas nas 256 nmeros IPs mscaras de disponveis (na prtica so 254 nmeros que podem ser utilizados, rede padro para cada classe (oito, dezesseis ou vinte e quatro descontando o bits), haveria um primeiro que o nmero da prpria rede e o ltimo que o endereo grande desperdcio de nmeros IP. Por exemplo, que empresa no de broadcast, mundo precisaria poderia ser dividida em 8 sub-redes, com 32 nmeros IP em cada da faixa completa de uma rede classe A, na qual esto disponveis sub-rede. O mais de 16 esquema a seguir ilustra este conceito: milhes de endereos IP? Pgina 6 Linux System Administration Analise o outro extremo desta questo. Imagine, por exemplo, uma 4Linux www.4linux.com.br 11.2 Mscara de rede empresa de Rede original: 256 endereos IP disponveis: 200.100.100.0 -> porte mdio, que tem a matriz em So Paulo e mais cinco filiais em 200.100.100.255 Diviso outras cidades da rede em 8 sub-redes, onde cada sub-rede fica com 32 endereos do Brasil. Agora imagine que em nenhuma das localidades, a rede IP: tem mais do Sub-rede 01: 200.100.100.0 -> 200.100.100.31 que 30 computadores. Se for usado as mscaras de sub-rede Sub-rede 02: 200.100.100.32 -> 200.100.100.63 padro, teria que ser Sub-rede 03: 200.100.100.64 -> 200.100.100.95 definida uma rede Classe C (at 254 computadores), para cada Sub-rede 04: 200.100.100.96 -> 200.100.100.127 localidade. Observe Sub-rede 05: 200.100.100.128 -> 200.100.100.159 que estamos reservando 254 nmeros IP para cada localidade (uma Sub-rede 06: 200.100.100.160 -> 200.100.100.191 rede classe C Sub-rede 07: 200.100.100.192 -> 200.100.100.223 com mscara 255.255.255.0), quando na verdade, no mximo, 30 Sub-rede 08: 200.100.100.224 -> 200.100.100.255 nmeros sero Para o exemplo da empresa com seis localidades (matriz mais cinco utilizados em cada localidade. Na prtica, um belo desperdcio de filiais), onde, endereos IP, no mximo, so necessrios trinta endereos IP por localidade, a mesmo em um empresa de porte mdio ou pequeno. utilizao de uma Observe que neste exemplo, uma nica rede Classe C seria nica rede classe C, dividida em 8 sub-redes seria a soluo ideal. suficiente. J que so Na prtica a seis localidades (a matriz mais seis filiais), com um mximo de 30 primeira e a ltima sub-rede so descartadas, pois o primeiro IP da endereos por primeira subrede localidade, um total de 254 endereos de uma rede Classe C seria representa o endereo de rede e o ltimo IP da ltima sub-rede mais do que representa o suficiente. Ainda haveria desperdcio, mas agora bem menor. endereo de broadcast. Com isso restariam, ainda, seis sub-redes. octetos so iguais a 1. Este conceito est ilustrado na tabela a Exatamente a seguir: quantia necessria para o exemplo proposto. Observe que ao invs Mscaras de rede com 8, 16 e 24 bits de seis redes No exemplo da rede com matriz em So Paulo e mais cinco classe C, bastou uma nica rede Classe C, subdividida em seis sub- escritrios, vamos utilizar redes. Uma bela uma rede classe C, que ser subdividida em seis sub-redes (na economia de endereos. Claro que se um dos escritrios, ou a prtica 8, mas a matriz, precisasse de Pgina 8 Linux System Administration mais de 32 endereos IP, um esquema diferente de diviso teria que 4Linux www.4linux.com.br 11.2 Mscara de rede ser criado. primeira e a ltima no so utilizadas). Para fazer esta subdiviso, Entendido o conceito terico de diviso em sub-redes, resta o voc deve alterar trabalho prtico, ou o nmero de bits iguais a 1 na mscara de sub-rede. Por exemplo, seja: ao invs de 24 bits, O que tem que ser alterado para fazer a diviso em sub-redes? voc ter que utilizar 25, 26, 27 ou um nmero a ser definido. Bem, Linux System Administration Pgina 7 j avanamos 11.2 Mscara de rede 4Linux www.4linux.com.br mais um pouco: Como calcular o nmero de sub-redes e o nmero de nmeros IP Para fazer a diviso de uma rede em sub-redes, preciso dentro de aumentar o nmero cada sub-rede? de bits iguais a 1, alterando com isso a mscara de sub-rede. Como listar as faixas de endereos dentro de cada sub-rede? Quantos bits devem ser utilizados para a mscara de sub-rede? Observe o que tem que ser alterado para fazer a diviso de uma Agora, naturalmente, surge uma nova questo: "Quantos bits?". rede padro (com Ou de uma outra mscara de 8, 16 ou 24 bits) em uma ou mais sub-redes. Em maneira (j procurando induzir o seu raciocnio): "O que define o seguida, veja alguns nmero de bits a exemplos de diviso de uma rede em sub-redes. Mos a obra. ser utilizados a mais?" 11.2.1 Alterando o nmero de bits da mscara de Bem, esta uma questo bem mais simples do que pode parecer. sub-rede Vamos a ela. No Por padro so utilizadas mscaras de sub-rede de 8, 16 ou 24 bits, exemplo proposto, precisamos dividir a rede em seis sub-redes. Ou conforme indicado seja, o nmero no esquema a seguir: de sub-redes deve ser, pelo menos, seis. Sempre lembrando que a Uma mscara de 8 bits significa que todos os bits do primeiro octeto primeira e a so iguais a 1; ltima sub-rede no so utilizadas. O nmero de sub-redes uma mscara de 16 bits significa que todos os bits do primeiro e do proporcional ao nmero segundo octeto de bits que vamos adicionar mscara de sub-rede j existente. O so iguais a 1 e uma mscara de 24 bits significa que todos os bits nmero de rede dos trs primeiros dado pela frmula a seguir, onde n o nmero de bits a mais a serem utilizados para a mscara de sub-rede: 1. Nm. de sub-redes = 2n-2 Nmero de redes e nmero de hosts em cada rede. No nosso exemplo esto disponveis at 8 bits do ltimo octeto para Claro que algumas situaes no se aplicam na prtica. Por serem tambm exemplo, usando apenas utilizados na mscara de sub-rede. Claro que na prtica no um bit a mais para a mscara de sub-rede, isto , 25 bits ao invs podemos usar os 8 bits, de 24. Neste seno ficaramos com o endereo de broadcast: 255.255.255.255, caso teremos 0 sub-redes disponveis. Pois com 1 bit possvel como mscara de criar apenas duas sub-rede. Alm disso, quanto mais bits pegar para a mscara de sub-redes, como a primeira e a ltima so descartadas, conforme sub-rede, menos descrito anteriormente, sobraro para os nmeros IP da rede. Por exemplo, se adicionar na prtica as duas sub-redes geradas no podero ser utilizadas. A mais um bit a mesma mscara j existente, ficarei com 25 bits para a mscara e 7 para situao ocorre com o uso de 7 bits a mais para a mscara de sub- nmeros IP, se rede, ou seja, adicionar mais dois bits mscara original de 24 bits, ficarei com 26 31 ao invs de 24. Nesta situao sobra apenas um bit para os bits para a endereos IP. mscara e somente 6 para nmeros IP e assim por diante. O Com 1 bit posso ter apenas dois endereos IP, descontanto o nmero de bits que primeiro e o ltimo restam para os nmeros IP, definem quantos nmeros IP podem que no so utilizados, no sobra nenhum endereo IP. As haver em cada situaes intermedirias sub-rede. A frmula para determinar o nmero de endereos IP que so mais realistas. No nosso exemplo, precisamos dividir a dentro de cada subrede, rede Classe indicado a seguir, onde n o nmeo de bits destinados a parte de C - 200.100.100.0/255.255.255.0, em seis sub-redes. De acordo host do com a tabela da Linux System Administration Pgina 9 Figura anterior, precisamos utilizar 3 bits a mais para obter as seis 11.2 Mscara de rede 4Linux www.4linux.com.br sub-redes dese- endereo (32 - bits usados para a mscara): Pgina 10 Linux System Administration 2. Nm. de end. IP dentro de cada sub-rede = 2n-2 4Linux www.4linux.com.br 11.2 Mscara de rede Na tabela a seguir, veja os clculos para a diviso de sub-redes que jadas. ser feita no Observe que utilizando trs bits a mais, ao invs de 24 bits (mscara exemplo. Observe que quanto mais bits adicionado mscara de original), vamos sub-rede, mais utilizar 27 bits para a mscara de sub-rede. Com isso sobram cinco sub-redes possvel obter, porm com um menor nmero de bits para os mquinas em cada nmeros IPs dentro de cada sub-rede, o que d um total de 30 sub-rede. Lembrando que no exemplo estamos subdividindo uma nmeros IP por subrede. rede classe C - Exatamente o que precisamos. 200.100.100.0/255.255.255.0, ou seja, uma rede com 24 bits para a A prxima questo que pode surgir como que fica a mscara de mscara de sub-rede, agora sub-rede original. que ao invs de 24 bits, estou utilizando 27 bits, conforme ilustrado C) em vrias sub-redes, sendo que o nmero de endereos IP em na tabela a cada sub-rede seguir: reduzido (por termos utilizados bits adicionais para a mscara de Figura - Mscara de sub-rede com 27 bits. sub-rede, bits estes Para determinar a nova mscara temos que revisar o valor de cada que originalmente eram destinados aos endereos IP). Esta diviso bit. Da esquerda pode ser feita em para a direita, cada bit representa o seguinte valor, respectivamente: redes de qualquer uma das classes padro A, B ou C. Por exemplo, 128 64 32 16 8 4 2 1 por padro, na Como os trs primeiros bits do ltimo octeto foram tambm Classe A so utilizados 8 bits para a mscara de sub-rede e 24 bits utilizados para a mscara, para hosts. Voc estes trs bits somam para o valor do ltimo octeto. No nosso pode utilizar, por exemplo, 12 bits para a mscara de sub-rede, exemplo, o ltimo restando com isso 20 octeto da mscara ter o seguinte valor: 128+64+32 = 224. Com bits para endereos de host. isso a nova mscara Na tabela a seguir, apresentado os clculos para o nmero de de sub-rede, mscara esta que ser utilizada pelas seis sub-redes, sub-redes e o nmero a seguinte: de hosts dentro de cada sub-rede, apenas para os casos que podem 255.255.255.224. Observe que ao adicionar bits mscara de sub- ser utilizados rede, fazemos na prtica, ou seja, duas ou mais sub-redes e dois ou mais isso a partir do bit de maior valor, ou seja, o bit mais da esquerda, endereos vlidos em com o valor de cada sub-rede, quando for feita a sub-diviso de uma rede Classe C, 128, depois usamos o prximo bit com valor 64 e assim por diante. com mscara Na tabela a original igual a 255.255.255.0.. seguir, apresento a ilustrao de como fica a nova mscara de sub- Nmero de redes e nmero de hosts em cada rede - divso de rede: uma rede Classe Figura - Como fica a nova mscara de sub-rede. C. Com o uso de trs bits adicionais para a mscara de rede, teremos Lembrando que a frmula para calcular o nmero de sub-redes : seis sub-redes Nm. de sub-redes = 2n-2 Linux System Administration Pgina 11 onde n o nmero de bits a mais utilizados para a mscara de sub- 11.2 Mscara de rede 4Linux www.4linux.com.br rede E a frmula disponveis (uma para cada escritrio) com um nmero mximo de para calcular o nmero de endereos IP dentro de cada sub-rede : 30 nmeros IP Nm de IPs por subrede = 2n-2 por sub-rede. Exatamente o que precisamos para o exemplo Pgina 12 Linux System Administration proposto.A idia bsica 4Linux www.4linux.com.br 11.2 Mscara de rede de subnet bastante simples. Utiliza-se bits adicionais para a onde n o nmero de bits restantes, isto , no utilizados pela mscara de subrede. mscara de subrede. Com isso se tem uma diviso da rede original (classe A, classe B ou At aqui foram vistos ememplos da rede Classe C, que est sendo classe subdividida em vrias sub-redes. Porm tambm possvel subdividir redes Classe Observe como o entendimento dos clculos binrios realizados pelo A e redes Classe TCP/IP facilita B. Lembrando que redes classe A utilizam, por padro, apenas 8 o entendimento de vrios assuntos relacionados ao TCP/IP, bits para o endereo inclusive o conceito de de rede, j redes classe B, utilizam, por padro, 16 bits. Na tabela a subnet. Por padro a classe B utiliza 16 bits para a mscara de sub- seguir, apresento rede, ou seja, um resumo do nmero de bits utilizados para a mscara de sub- uma mscara padro: 255.255..0.0. Agora se utilizar oito bits rede, por padro, nas adicionais (todo o classes A, B e C: terceiro octeto) para a mscara, ter todos os bits do terceiro octeto Figura - Mscara padro para as classes A, B e C como sendo Para subdividir uma rede classe A em sub-redes, basta usar bits iguais a 1, com isso a mscara passa a ser: 255.255.255.0. Este adicionais para a resultado est mscara de sub-rede. Por padro so utilizados 8 bits. Se voc coerente com a tabela da Figura 16.11. Agora ao invs de 8 bits utilizar 10, 12 ou mais adicionais, utilize 9. bits, estar criando sub-redes. O mesmo raciocnio vlido para as Ou seja, todo o terceiro octeto (8 bits) mais o primeiro bit do quarto redes classe B, octeto. O primeiro as quais utilizam, por padro, 16 bits para a mscara de sub-rede. bit, o bit bem esquerda o bit de valor mais alto, ou seja, o que Se voc utilizar vale 128. Ao 18, 20 ou mais bits para a mscara de sub-rede, estar subdividindo usar este bit tambm para a mscara de sub-rede, ser obtida a a rede classe B seguinte mscara: em vrias sub-redes. 255.255.255.128. Tambm fecha com a tabela anterior. Com isso se As frmulas para clculo do nmero de sub-redes e do nmero de conclui que o hosts em cada entendimento da aritemtica e da representao binria, facilita sub-rede so as mesmas apresentadas anteriormente, muito o estudo do independentemente da classe protocolo TCP/IP e de assuntos relacionados, tais como subnet e da rede que est sendo dividida em sub-redes. roteamento. A seguir apresentado uma tabela com o nmero de sub-redes e o A seguir apresentada uma tabela com o nmero de sub-redes e o nmero de nmero de hosts em cada sub-rede, dependendo do nmero de bits adicionais hosts em cada sub-rede, dependendo do nmero de bits adicionais (alm do padro (alm do padro definido para a classe) utilizados para a mscara de sub-rede, para definido para a (classe) utilizados para a mscara de sub-rede, para a diviso de uma a diviso de rede Classe B: uma rede Classe A: Linux System Administration Pgina 13 Pgina 14 Linux System Administration 11.2 Mscara de rede 4Linux www.4linux.com.br 4Linux www.4linux.com.br 11.2 Mscara de rede Tabela - Nmero de redes e nmero de hosts em cada rede - Tabela - Nmero de redes e nmero de hosts em cada rede - Classe B. Classe A. Um fato importante, que destacado novamente que todas as 10. Por exemplo, para n=2, a frmula resulta em 2, para n=3, a sub-redes (resultantes frmula resulta em 6, da diviso de uma rede), utilizam o mesmo nmero para a mscara para n=4 a frmula resulta em 14. Bem, est respondida a questo de sub-rede. da letra a, temos Por exemplo, na quarta linha da tabela indicada na Figura 16.12, que utilizar quatro bits do quarto octeto para fazer parte da mscara utilizado 5 bits adicionais de sub-rede. para a mscara de sub-rede, o que resulta em 30 sub-redes a) Quantos bits sero necessrios para fazer a diviso e obter pelo diferentes, porm menos 10 subredes? todas utilizando como mscara de sub-rede o seguinte nmero: R: 4 bits. 255.248.0.0. Como utilizei quatro bits do ltimo octeto (alm dos 24 bits dos trs Muito bem, entendido o conceito de diviso em sub-redes e de primeiros octetos, determinao do os quais j faziam parte da mscara original), sobraram apenas 4 nmero de sub-redes, do nmero de hosts em cada sub-rede e de bits para os endereos como formada IP, ou seja, para os endereos de hosts em cada sub-rede. Tenho a nova mscara de sub-rede, a prxima questo que pode surgir a que lembrar seguinte: da seguinte frmula: Nm. de end. IP dentro de cada sub-rede = 2n- Como listar as faixas de endereos para cada sub-rede? Este 2 substituindo exatamente o assunto n por 4, vou obter um valor de 14. Com isso j estou em condies que vem a seguir. de responder a Como listar as faixas de endereos dentro de cada sub-rede alternativa b. Vamos entender esta questo atravs de exemplos prticos. b) Quantos nmeros IP (hosts) estaro disponveis em cada sub- Exemplo 01: Dividir a seguinte rede classe C: rede? R: 14. 229.45.32.0/255.255.255.0. So necessrias, Como utilizei quatro bits do quarto octeto para fazer a diviso em pelo menos, 10 sub-redes. Determinar o seguinte: sub-redes, os quatro Linux System Administration Pgina 15 primeiros bits foram definidos iguais a 1. Basta somar os respectivos 11.2 Mscara de rede 4Linux www.4linux.com.br valores, ou seja: a) Quantos bits sero necessrios para fazer a diviso e obter pelo 128+64+32+16 = 240. Ou seja, com os quatro primeiros bits do menos 10 subredes? quarto octeto sendo b) Quantos nmeros IP (hosts) estaro disponveis em cada sub- iguais a 1, o valor do quarto octeto passa para 240, com isso j rede? temos condies de c) Qual a nova mscara de sub-rede? responder a alternativa c. d) Listar a faixa de endereos de cada sub-rede. Vamos ao trabalho. Pgina 16 Linux System Administration Para responder 4Linux www.4linux.com.br 11.2 Mscara de rede a questo da letra a, voc deve lembrar da frmula: c) Qual a nova mscara de sub-rede? R: 255.255.255.240 Nm. de sub-redes = 2n-2 importante lembrar, mais uma vez, que esta ser a mscara de Voc pode ir substituindo n por valores sucessivos, at atingir ou sub-rede utilizada superar o valor de por todas as 14 sub-redes. d) Listar a faixa de endereos de cada sub-rede. Esta a novidade Sub-rede 06 229.45.32.80 -> 229.45.32.95 deste item. Linux System Administration Pgina 17 Como saber de que nmero at que nmero vai cada endereo IP. 11.2 Mscara de rede 4Linux www.4linux.com.br Esta tambm Sub-rede 07 229.45.32.96 -> 229.45.32.111 fcil, embora seja novidade. Observe o ltimo bit definido para a Sub-rede 08 229.45.32.112 -> 229.45.32.127 mscara. No nosso Sub-rede 09 229.45.32.128 -> 229.45.32.143 exemplo o quarto bit do quarto octeto. Qual o valor decimal do Sub-rede 10 229.45.32.144 -> 229.45.32.159 quarto bit? 16 (o Sub-rede 11 229.45.32.160 -> 229.45.32.175 primeiro 128, o segundo 64, o terceiro 32 e assim por diante, Sub-rede 12 229.45.32.176 -> 229.45.32.191 conforme explicado Sub-rede 13 229.45.32.192 -> 229.45.32.207 na Parte 2). O valor do ltimo bit um indicativo das faixas de Sub-rede 14 229.45.32.208 -> 229.45.32.223 variao para este Sub-rede 15 229.45.32.224 -> 229.45.32.239 exemplo. Ou seja, na prtica temos 16 hosts em cada sub-rede, Sub-rede 16 229.45.32.240 -> 229.45.32.255 embora o primeiro e Vamos a mais um exemplo prtico, agora usando uma rede classe o ltimo no devam ser utilizados, pois o primeiro o endereo da B, que tem inicialmente, prpria sub-rede uma mscara de sub-rede: 255.255.0.0 e o ltimo o endereo de broadcast da sub-rede. Por isso que Exemplo 02: Dividir a seguinte rede classe B: ficam 14 hosts por 150.100.0.0/255.255.0.0. So necessrias, sub-rede, devido ao -2"na frmula, o -2"significa: - o primeiro - o pelo menos, 20 sub-redes. Determinar o seguinte: ltimo. Ao listar a) Quantos bits sero necessrios para fazer a diviso e obter pelo as faixas, consideramos os 16 hosts, apenas importante salienar menos 10 subredes? que o primeiro b) Quantos nmeros IP (hosts) estaro disponveis em cada sub- e o ltimo no so utilizados. Com isso a primeira sub-rede vai do rede? host 0 at o 15, c) Qual a nova mscara de sub-rede? a segunda sub-rede do 16 at o 31, a terceira do 32 at o 47 e d) Listar a faixa de endereos de cada sub-rede. Vamos ao trabalho. assim por diante, Para responder conforme indicado no esquema a seguir: a questo da letra a, voc deve lembrar da frmula: Diviso da rede em 14 sub-redes, onde cada sub-rede fica com 16 Pgina 18 Linux System Administration endereos IP, 4Linux www.4linux.com.br 11.2 Mscara de rede sendo que a primeira e a ltima sub-rede no so utilizadas e o Nm. de sub-redes = 2n-2 primeiro e o ltimo Voc pode ir substituindo n por valores sucessivos, at atingir ou nmero IP, dentro de cada sub-rede, tambm no so utilizados: superar o valor de Sub-rede 01 229.45.32.0 -> 229.45.32.15 10. Por exemplo, para n=2, a frmula resulta em 2, para n=3, a Sub-rede 02 229.45.32.16 -> 229.45.32.31 frmula resulta em Sub-rede 03 229.45.32.32 -> 229.45.32.47 6, para n=4 a frmula resulta em 14 e para n=5 a frmula resulta em Sub-rede 04 229.45.32.48 -> 229.45.32.63 30. Bem, est Sub-rede 05 229.45.32.64 -> 229.45.32.79 respondida a questo da letra a, temos que utilizar cinco bits do terceiro octeto para fazer parte da mscara de sub-rede. Pois se utilizar apenas 4 bits, 11.2 Mscara de rede 4Linux www.4linux.com.br obter somente condies de responder a alternativa c. 14 sub-redes e usando mais de 5 bits, obter um nmero de sub- c) Qual a nova mscara de sub-rede? redes bem maior R: 255.255.248.0 importante lembrar, mais uma vez, que esta do que o necessrio. ser a mscara de a) Quantos bits sero necessrios para fazer a diviso e obter pelo sub-rede utilizada por todas as 30 sub-redes. menos 20 subredes? d) Listar a faixa de endereos de cada sub-rede. Como saber de R: 5 bits. que nmero at que Como utilizei cinco bits do terceiro octeto (alm dos 16 bits dos dois nmero vai cada endereo IP. Esta tambm fcil e o raciocnio o primeiros octetos, mesmo utilizado os quais j faziam parte da mscara original), sobraram apenas 11 para o exemplo anterior, onde foi feita uma diviso de uma rede bits (os classe C. Observe trs restantes do terceiro octeto mais os 8 bits do quarto octeto) para o ltimo bit definido para a mscara. No nosso exemplo o quinto os endereos bit do terceiro IP, ou seja, para os endereos de hosts em cada sub-rede. Lembre- octeto. Qual o valor decimal do quinto bit (de qualque octeto)? 8 (o se da seguinte primeiro 128, frmula: o segundo 64, o terceiro 32, o quarto 16 e o quinto 8. O valor do Nm. de endereos IP dentro de cada sub-rede = 2n-2 Substituindo ltimo bit um n por 11 (nmero indicativo das faixas de variao para este exemplo. Ou seja, na de bits que restarama para a parte de host), vou obter um valor de prtica temos 2048 2046, j descontando hosts em cada sub-rede, embora o primeiro e o ltimo no devam o primeiro e o ltimo nmero, os quais no podem ser utilizados, ser utilizados, pois conforme j o primeiro o endereo da prpria sub-rede e o ltimo o endereo descrito anteriormente. Com isso j estou em condies de de broadcast responder a alternativa da sub-rede. Por isso que ficam 2046 hosts por sub-rede, devido ao b. -2"na frmula, o b) Quantos nmeros IP (hosts) estaro disponveis em cada sub- -2"significa: - o primeiro - o ltimo. Ao listar as faixas, consideramos rede? o valor do ltimo R: 2046. bit da mscara. No nosso exemplo o 8. A primeira faixa vai do zero Como utilizei cinco bits do terceiro octeto para fazer a diviso em at um nmero sub-redes, os cinco anterior ao valor do ltimo bit, no caso do 0 ao 7. A seguir indico a primeiros bits foram definidos iguais a 1. Basta somar os respectivos faixa de endereos valores, ou da primeira sub-rede (sub-rede que no ser utilizada na prtica, seja: 128+64+32+16+8 = 248. Ou seja, com os quatro primeiros bits pois descarta-se a do quarto primeira e a ltima): octeto sendo iguais a 1, o valor do quarto octeto passa para 248, Sub-rede 01 150.100.0.1 -> 150.100.7.254 com isso j temos Com isso todo endereo IP que tiver o terceiro nmero na faixa Linux System Administration Pgina 19 entre 0 e 7, ser um nmero IP da primeira sub-rede, conforme os exemplos a seguir: corresponde a sub-rede 17, na qual o terceiro octeto varia entre 128 150.100.0.25 e 135, conforme 150.100.3.20 indicado a seguir: 150.100.5.0 11.2.2 Ipv6 150.100.6.244 "IPv6 a nova verso do protocolo de redes de dados nos quais a Pgina 20 Linux System Administration Internet est baseada. 4Linux www.4linux.com.br 11.2 Mscara de rede O IETF (Internet Engineering Task Force), desenvolveu suas Importante: Observe que os valores de 0 a 7 so definidos no especificaes terceiro octeto, que bsicas durante os anos 90. A principal motivao para o onde estamos utilizando cinco bits a mais para fazer a diviso em desenvolvimento e lanamento sub-redes. do IPv6 foi a expanso do espao de endereos disponveis na Qual seria a faixa de endereos IP da prxima sub-rede. Aqui vale o Internet, mesmo reciocnio. permitindo assim que se conectem bilhes de novos dispositivos O ltimo bit da mscara equivale ao valor 8. Esta a variao da (PDAs, telefones terceira celulares, etc), novos usrios e tecnologias sempre-conectada parte do nmero IP, que onde esta sendo feita a diviso em sub- (xDSL, cabo, Ethernet redes. Ento, se a ou fibra direto na residncia, comunicao via rede eltrica, etc). primeira foi de 0 at 7, a segunda sub-rede ter valores de 8 a 15 no No existem classes como A, B e C. O IPv6 utiliza o conceito de terceiro octeto, CIDR (FULLER, a terceira sub-rede ter valores de 16 a 23 e assim por diante. 1993), onde um determinado nmero de bits corresponde ao prefixo Diviso da rede em 32 sub-redes, onde cada sub-rede fica com da rede, e os 2048 endereos IP, bits restantes identificam o n. sendo que a primeira e a ltima sub-rede no so utilizadas e o Pgina 22 Linux System Administration primeiro e o ltimo 4Linux www.4linux.com.br 11.2 Mscara de rede nmero IP, dentro de cada sub-rede, tambm no so utilizados: O protocolo ARP no utilizado em IPv6, pois no existe broadcast Linux System Administration Pgina 21 em IPv6 e o ARP 11.2 Mscara de rede 4Linux www.4linux.com.br baseia-se em broadcast. Em seu lugar, utilizado o protocolo Com base na tabela apresentada, fica fcil responder em que sub- ICMPv6 e transmisso rede est contido multicast. um determinado nmero IP. Por exemplo, considere o nmero IP Espao de endereamento 150.100.130.222. O espao de endereamento do IPv6 de 128 bits, contra os 32 bits Primeiro voc observa o terceiro octeto do nmero IP (o terceiro, do IPv4. Esta porque neste a mudana mais visvel do IPv6 em relao ao IPv4. Algumas das octeto que esto os ltimos bits que foram utilizados para a mscara primeiras propostas de sub-rede). de evoluo do IPv4 - vide CALLON (1992), PISTICELLO (1993) e Consultando a tabela anterior, voc observa o valor de 130 para o BRADNER & terceiro octeto MANKIN (1993) - propunham espaos de endereamento de 64 ou por agregao bem como um grande nmero de ns por sub-rede. 96 bits, perfeitamente Isso per- suficientes para um prazo razoavelmente longo. Linux System Administration Pgina 23 A proposta mais interessante, denominada TUBA (TCP and UDP 11.3 Tipos de Endereos IPv6 4Linux www.4linux.com.br with Bigger Addresses) mite: propunha a substituio do IP pelo CNLP da pilha OSI. O CNLP a) liberal distribuio de faixas de endereamento a usurios finais, bem tornando desnecessrios, documentado e tem um espao de endereamento de at 20 octetos por exemplo, os complexos roteadores NAT (Network Address (160 bits). A Translation indisposio generalizada da comunidade Internet com o protocolo traduo de endereo de rede) para compartilhamento de um IP OSI, constatada por vrios usurios. no trabalho de DIXON (1993), acabou sepultando a idia. Textos a O IPv6 acaba com os cidados de segunda classe da Internet; favor e contra o b) Com o desuso do NAT, ocorre uma grande simplificao na TUBA e o OSI podem ser encontrados facilmente na Internet. configurao de servidores O endereamento finalmente adotado visa, principalmente: a) abrir e dispositivos de rede, o que contribui para o barateamento do espao criao acesso Internet. de tantas classes de endereos quantas forem necessrias, e ainda Evita todos os problemas citados por PEA (2001) e permite que ter espao apaream de sobra para um nmero virtualmente inesgotvel de endereos protocolos mais sofisticados como voz sobre IP. dentro de cada Nada impede de um sistema operacional ou dispositivo de rede classe; implementar NAT b) utilizao massiva de roteamento por agregao, onde todas as para IPv6, e de fato implementado no Linux. Alguns sub-redes de administradores de rede tm uma mesma rede apresentam o mesmo prefixo de rede. Isto diminui a sensao subjetiva de que NAT aumenta a segurana, embora drasticamente isso seja muito o nmero de rotas que cada roteador tem de conhecer, em todos os discutvel. nveis. 11.3 Tipos de Endereos IPv6 Embora o roteamento por agregao seja padro para IPv4 desde O grande espao de endereamento visa a criao facilitada de 1995 com a implementao classes de endereamento. da CIDR (FULLER, 1993), nem todas as redes classe A, B ou C Tais classes, mais apropriadamente denominadas de faixas de podem endereamento, ser renumeradas, e os roteadores da espinha dorsal da Internet tm so registradas junto IETF. Segue uma lista das principais faixas e de conhecer os rotas especficas para inmeras redes no agregadas. respectivos prefixos IPv6. O tamanho do endereo IPv6 comporta tanto profundas hierarquias Pgina 24 Linux System Administration de endereamento 4Linux www.4linux.com.br 11.3 Tipos de Endereos IPv6 Aproximadamente 15% do espao de endereamento IPv6 foi Agregatable Global Unicast Address alocado. Restam Loopback Address ainda 85%. Linux System Administration Pgina 25 Segundo a RFC 2374, uma mesma interface, que utiliza o protocolo 11.3 Tipos de Endereos IPv6 4Linux www.4linux.com.br IPv6, pode utilizar Unspecified Address mais de um endereo, diferentemente do IPv4, onde tal NSAP Address caracterstica s era possvel IPX AddressSite-local Unicast Address em roteadores. Essa caracterstica importante porque na verso 6 Link-local Unicast Address algumas IPv4-compatible IPv6 Address aplicaes, em geral de controle, utilizam-se de endereos especiais Agregatable Global Unicast Address que veremos Esse tipo de endereo unicast equivalente ao endereo global adiante. Para o endereamento das interfaces existem ento 3 tipos unicast usado em de endereos: IPv4. Sendo assim o endereo que ser usado globalmente na Unicast; Internet. Essa Anycast; estrutura de endereos globais permite uma agregao de prefixos Multicast. de roteamento Outra caracterstica marcante do IPv6 que no existem mais os que limitam o nmero de entradas nas tabelas de rotas. endereos broadcast, A estrutura deste tipo de endereo dividida em 4 nveis, o primeiro que endereavam todos os hosts de um mesmo domnio de coliso, o FP - Format isto , uma Prefix, que indica justamente que se trata de um endereo do tipo pacote com endereo de destino do tipo broadcast era enviado para Global Unicast, todos os hosts esse FP deve ser sempre 001, como vimos na tabela III - Alocao de seu domnio de coliso. Com a abolio desse tipo endereo, de endereos outro protocolo IPv6, na seo anterior. muito comum no IPv4 tambm ficou em desuso, o ARP Address O segundo campo chamado Global Routing Prefix, e destinado a Resolution Protocol, identificao que usava endereos broadcast para descoberta do endereo MAC dos ISPs - Internet Service Provider, ele possui vrios nveis e da interface seguem a estrutura referente ao endereo de destino do pacote. apresentada na seo anterior. O terceiro campo Subnet ID tambm 11.3.1 Endereos Unicast foi apresentado Esse tipo de endereo comumente usado em IPv4, que identifica anteriormente como sendo o campo Site ID da estrutura de apenas uma hierarquizao do endereo nica interface. Desta forma um pacote destinado a um endereo do IPv6, o ltimo nvel o Interface ID, que tambm j foi abordado e tipo Unicast possui 64 enviado diretamente para a interface associada a esse endereo. bits. Abaixo, vemos na figura a estrutura desse tipo de endereo: Pgina 26 Linux System Administration Foram definidos 4Linux www.4linux.com.br 11.3 Tipos de Endereos IPv6 pela RFC 2374 vrios tipos de endereos Unicast : Estrutura do endereo Aggregatable Global Unicast Address. Loopback Address NSAP Address Esse tipo de endereo, como o prprio nome j diz, o endereo da Esse tipo de endereo ident ificado pelo prefixo FP - 0000001. Ele prpria interface. foi definido pela Porm ele s pode ser usado quando um n envia um pacote para RFC 1888 - OSI NSAPs and IPv6 como mecanismo de suporte para ele mesmo. No endereamento IPv4 esse tipo de endereo era geralmente o 127.0.0.1, em IPv6 OSI NSAP - Network Service Access Point em redes IPv6. Possui indicado por: alm do FP de 7 0:0:0:0:0:0:0:1 bits, que o indica, 121 bits para constituio de seu endereo. IPX ou simplesmente: Address ::1 tambm um endereo especial para compatibilidade de endereos Esse endereo no pode ser associado a nenhuma interface fsica, existentes. nem como endereo identificado pelo prefixo 0000010, includo para prover mecanismo de fonte, nem como endereo de destino, mas pode ser imaginado de mapeamento como sendo de endereos IPX - Internal Packet eXchange em endereos IPv6. de uma interface virtual, a interface loopback. Um pacote IPv6 com Os endereos endereo destino IPX so utilizados em redes Netware, de propriedade da Novell. Da do tipo loopback address tambm no deve deixar o prprio host, mesma forma sendo que esse que o NSAP Address possui 7 bits de FP e 121 bits para endereo nunca ser repassado por um roteador IPv6. constituio do endereo. Unspecified Address Site Local Unicast Address Esse tipo de endereo indica exatamente a ausncia de um O endereo do tipo Site Local similar aos endereos privados endereo. Ele nunca usados em IPv4, dever ser utilizado como um endereo vlido para nenhum host. A como as redes 10.0.0.0 /8, 172.16.0.0/16 e 198.168.0.0/16. Esses sua utilidade endereos podem para que estaes que ainda no foram inicializadas, sejam ser usados para uma comunicao restrita dentro de um domnio identificadas com endereos especfico. deste tipo, ou seja, hosts que ainda no tenham aprendido seus Este tipo de endereo identificado pelo prefixo FEC0::/10 ou prprios 1111111011 em binrio. endereos globais, utilizem tais endereos para se autoconfigurar. Ele pode ser definido para uso interno numa organizao atravs da Alm disso, esse concatenao tipo de endereo no deve ser utilizado como endereo de destino do campo de SLA (16 bits) com a identificao da interface (64 bits). ou em cabealho Este Linux System Administration Pgina 27 tipo de endereamento pode ser considerado como privado, visto 11.3 Tipos de Endereos IPv6 4Linux www.4linux.com.br que ele est restrito de roteamento de pacotes IPv6. Seu formato o seguinte: a um domnio sem ligao Internet. Desta forma ele no pode ser 0:0:0:0:0:0:0:0 anunciado ou simplesmente: :: externamente por roteadores. Abaixo podemos visualizar a estrutura cujos ltimos 32 bits so um endereo IPv4. Desta forma, anexando- deste tipo de se um prefixo endereo. nulo (96 bits de zeros) a um endereo IPv4 (32 bits) obtm-se o Pgina 28 Linux System Administration seguinte formato: 4Linux www.4linux.com.br 11.3 Tipos de Endereos IPv6 0:0:0:0:0:0:192.168.30.1 Estrutura do endereo Site Local Unicast Address. ou no seu formato abreviado Link Local Unicast Address ::192.168.30.1 Este tipo de endereo automaticamente configurado em qualquer Abaixo mostrada a estrutura deste endereo. host IPv6, atravs Estrutura do endereo IPv6 compatible IPv4 Address. da conjugao do seu prefixo FE80::/10 ou 1111111010 em binrio, como pode 11.4 Endereos Anycast ser visto na tabela III, e a identificao da interface no formato EUI- Esse tipo de endereo utilizado para identificar um grupo de 64, mostrado interfaces pertencentes anteriormente. Estes endereos so utilizados nos processos de a hosts diferentes. Um pacote destinado a um endereo Anycast configurao dinmica enviado para um automtica (autoconfigurao) e no processo de descoberta de das interfaces identificadas pelo endereo. Especificamente, o elementos na pacote enviado para hierarquia de roteamento (Neighbor Discovery Protocol). Estes a interface mais prxima, de acordo com o protocolo de roteamento. procedimentos sero Um endereo do tipo Anycast no pode ser utilizado como endereo vistos com detalhes na prxima seo. Este endereamento permite de origem de tambm a um pacote IPv6. Este tipo de endereamento ser til na deteco comunicao entre ns pertencentes ao mesmo enlace. Como nos rpida de um Pgina 30 Linux System Administration endereos Site 4Linux www.4linux.com.br 11.4 Endereos Anycast Local, esse tipo de endereo no deve ser enviado como endereo determinado servidor ou servio. Por exemplo, poder ser definido de origem ou destino um grupo de em pacotes. Alm disso esses endereos no so repassados pelos servidores de DNS configurados com endereamento Anycast, roteadores. assim um host ir Abaixo podemos visualizar a estrutura deste tipo de endereo. alcanar o servidor mais prximo utilizando este tipo de endereo. Estrutura do endereo Site Local Unicast Address. Existe um prefixo mais longo desse mesmo endereo para cada IPv4-compatible IPv6 Address endereo Anycast Linux System Administration Pgina 29 atribudo que identifica a regio ao qual todas as interfaces 11.4 Endereos Anycast 4Linux www.4linux.com.br Esse tipo de endereo usado em IPv6 como um mecanismo de pertencem. Abaixo transio entre IPv6 mostrada a estrutura bsica deste tipo de endereo. e IPv4. utilizado como endereos de destino e origem em tunnel Estrutura do endereo Anycast. (encapsulamento 11.4.1 Endereo Multicast de um protocolo sobre outro) IPv6 sobre IPv4. representado por Da mesma forma que o endereo Anycast, este endereo identifica um endereo IPv6 um grupo de interfaces pertencente a diferentes hosts mas um pacote destinado FF01::2 Indica todos os roteadores dentro de um escopo local, a um endereo isto , todas Multicast enviado para todas as interfaces que fazem parte deste as interfaces de um mesmo roteador. grupo. FF02::2 Indica todos os roteadores dentro de um escopo de Um endereo do tipo Multicast Address um endereo IPv6, que enlace local, isto indicado pelo prefixo , todos os roteadores interligados por um mesmo enlace. FP, como visto na tabela III, FF00::/8 ou 11111111 em binrio. O FF05::2 Indica todos os roteadores dentro de um escopo site segundo octeto local, isto , que se segue ao prefixo (FP = FF) define o tempo de vida (lifetime), todos os roteadores que possuem um mesmo site ID. os 4 primeiros FF02::1:FFxx:xxxx Endereo especial chamado de Solicited- bits e o escopo do endereo Multicast, os ltimos 4 bits deste octeto. Node Multicast Um endereo Pgina 32 Linux System Administration com lifetime permanente tem um parmetro de tempo de vida igual a 4Linux www.4linux.com.br 11.5 Estrutura do endereo Anycast "0", enquanto Address, onde xx:xxxx representam os ltimos 24 bits do endereo um endereo temporrio tem o mesmo parmetro igual a "1". O IPv6 Unicast escopo para este do host. tipo de endereo apresenta os valores j definidos de 1, 2, 3, 4, 5, 8 Solicited-Node Multicast Address e "E"(os outros Esse tipo de endereo Multicast especial usado para mensagens esto reservados para o futuro, sendo que o escopo F j est de solicitao reservado para ser de vizinho que auxilia o Neighbor Discovery Protocol e que ser usado para mbito galctico) para identificar um host, enlace, site, visto com mais organizao ou detalhes na prxima seo. Esse endereo um grupo Multicast um escopo global, respectivamente. Os outros 112 bits so que corresponde a utilizados para identificar um endereo IPv6 Unicast. A figura abaixo apresenta a estrutura o grupo Multicast. Abaixo, visualizamos a estrutura de um endereo. desse endereo. Linux System Administration Pgina 31 11.5 Estrutura do endereo Anycast 11.4 Endereos Anycast 4Linux www.4linux.com.br Comandos avanados de redes: Estrutura do endereo Anycast. Configure uma rede para que as mquinas Debian e Red Hat fiquem Dentro dos endereos Multicast j reservados, podemos identificar em redes distintas: alguns endereos rede 192.168.200.0 especiais utilizados para funes especficas (todos de lifetime Com a mscara 255.255.255.240, teremos dezesseis endereos por permanente): sub-rede, sendo FF01::1 Indica todas as interfaces de escopo local, isto , quatorze utilizveis, pois o primeiro reservado para rede e o ltimo somente as interfaces pra broadcast. de um mesmo host. subrede. FF02::1 Indica todas as interfaces de um escopo de enlace local, Ranges: 192.168.200. isto , todos 0-15 64-79 128-143 192-207 os hosts de um mesmo domnio de coliso. Linux System Administration Pgina 33 (cliente CentOS) ajuste o encaminhamento: 11.5 Estrutura do endereo Anycast 4Linux www.4linux.com.br Visualize o bloqueio do encaminhamento de pacotes: 16-31 80-95 144-159 208-223 Linux System Administration Pgina 35 32-47 96-111 160-175 224-239 11.6 ARP - Address Resolution Protocol 4Linux www.4linux.com.br 48-63 112-127 176-191 240-255 1 # cat / proc /sys/net/ ipv4 / ip_forward Para as mquinas Debian vamos utilizar o range 80-95 1 = habilitado 0 = desabilitado 1 # ifconfig eth0 192.168.200.81 netmask 255.255.255.255.248 Altere seu valor temporariamente: Para as mquinas CentOS vamos utilizar o range 240-255: 1 # echo 1 > / proc /sys/net/ ipv4 / ip_forward 1 # ifconfig eth0 192.168.200.241 netmask 255.255.255.255.240 Para ficar permanente edite o arquivo /etc/sysctl.conf e adicione a Agora na Debian tente pingar a mquina CentOS e vice-versa: linha abaixo: 1 # ping 192.168.200.241 1 # vim /etc/ sysctl . conf No possvel, pois as mquinas esto em sub-redes diferentes. 2 net. ipv4 . ip_forward = 1 Agora no cliente CentOS adicione duas placas de rede uma pra Salve o arquivo e execute o comando seguinte para validar a regra e cada subrede. ficar permanente: 1 # ifconfig eth1 192.168.200.82 netmask 255.255.255.255.240 1 # sysctl -p 2 # ifconfig eth2 192.168.200.242 netmask 255.255.255.255.240 11.6 ARP - Address Resolution Protocol Pingue da mquina cliente CentOS os dois servidores: Address Resolution Protocol ou ARP um protocolo usado para 1 # ping 192.168.200.241 encontrar um endereo 2 # ping 192.168.200.81 Pgina 34 Linux System Administration da camada de enlace (Ethernet, por exemplo) a partir do endereo 4Linux www.4linux.com.br 11.5 Estrutura do endereo Anycast da camada Agora na Debian tente pingar a mquina CentOS e vice-versa: de rede (como um endereo IP). O emissor difunde em broadcast 1 # ping 192.168.200.241 um pacote ARP Ainda no possvel. contendo o endereo IP de outro host e espera uma resposta com Para que as duas mquina possam se pingar, adicione o cliente um endereo MAC Debian como rota: respectivo. Cada mquina mantm uma tabela de resoluo em No Server Debian: cache para reduzir 1 # route add default gw 192.168.200.82 a latncia e carga na rede. O ARP permite que o endereo IP seja No Server CentOS: independente do 1 # route add default gw 192.168.200.242 endereo Ethernet, mas apenas funciona se todos os hosts o Agora na Debian tente pingar a mquina CentOS e vice-versa: suportarem. 1 # ping 192.168.200.241 Pgina 36 Linux System Administration Novamente no server Debian tente pingar a mquina servidora 4Linux www.4linux.com.br 11.6 ARP - Address Resolution Protocol CentOS e vice-versa: No servidor Debian: Mesmo aps adicionarmos a rota para o gateway das redes ainda Execute o comando ping para o endereo de broadcast: no possvel 1 # ping -b 192.168.200.95 ping-los. O linux por padro no aceita pacotes icmp em broadcast: Visualize: Isto ocorre porque o linux por padro no encaminha pacotes, na 1 # cat / proc /sys/net/ ipv4 / icmp_echo_ignore_broadcast mquina gateway Para habilitar temporariamente: 1 # echo 0 > / proc /sys/net/ ipv4 / icmp_echo_ignore_broadcast No servidor Debian: Para habilitar permanentemente, adicione a linha a seguir no arquivo 1 # ifconfig eth0 inet6 add ::192.168.0.1/96 /etc/sysctl.conf: No servidor CentOS: 1 # vim /etc/ sysctl . conf 1 # ifconfig eth0 inet6 add ::192.168.0.2/96 2 net. ipv4 . icmp_echo_ignore_broadcast = 0 Tente pingar entre as mquinas, a partir da CentOS: Salve e releia as configuraes: 1 # ping -I eth0 ::192.168.0.1 1 # sysctl -p Para remover o endereo: Execute o comando ping novamente para o endereo de 1 # ifconfig <interface > inet6 del <ipv6address >/< prefixlength > broadcast: Remova de ambos: Debian: 1 # ping -b 192.168.200.95 1 # ifconfig eth0 inet6 del ::192.168.0.1/96 Agora visualize a tabela ARP com o comando arp : CentOS: Linux System Administration Pgina 37 Linux System Administration Pgina 39 11.6 ARP - Address Resolution Protocol 4Linux www.4linux.com.br 11.7 Verificando portas abertas 4Linux www.4linux.com.br 1 # arp -n 1 # ifconfig eth0 inet6 del ::192.168.0.2/96 Vamos configurar a rede IPV6 agora: Ao conectarmos o cabo de 11.7 Verificando portas abertas rede a placa de rede j obtm um endereo IPV6, atravs do endereo de sua placa de 11.7.1 Comando netstat rede. Cheque o O comando netstat exibe o status das conexes, tabelas de rotas, servidor Debian: Para visualizar o ipv6 configurado estatsticas da automaticamente: interface, conexes mascaradas e participaes em multicast. 1 # ifconfig eth0 | grep inet6 Vamos ver alguns ou exemplos do comando. 1 # ip -6 addr show dev eth0 O comando netstat sem parmetros traduz os IPs para os nomes, Cheque se o servidor CentOS est com o suporte a ipv6 habilitado: por isso, desse 1 # cat /etc/ sysconfig / network : modo, ele demora bastante para gerar um resultado. Resolve-se 2 NETWORKING_IPV6 =yes esse problema Verifique se a placa de rede tem suporte habilitado: usando a opo -n: 1 # cat /etc/ sysconfig / network - scripts /ifcfg - eth0 O comando exibe por padro 4 colunas: 2 IPV6INIT = yes Proto - Protocolo que pode ser TCP, UDP, TCPv6, ou UDPv6 Ping as mquinas pelo IPV6: Local Address - Endereo local (seu PC) 1 # ping6 -I eth0 fe80 ::72 f1: a1ff : fec5 : fc1c Foreign Address - Endereo remoto Onde: State - Exibe o estado da conexo de rede que podem ser Pgina 38 Linux System Administration CLOSE_WAIT, CLOSED, 4Linux www.4linux.com.br 11.6 ARP - Address Resolution Protocol ESTABLISHED, FIN_WAIT_1, FIN_WAIT_2, LAST_ACK, LISTEN, -I -> especifica a interface eth0 -> a interface para o ping6 SYN_RECEIVED, fe80::72f1:a1ff:fec5:fc1c SYN_SEND, e TIME_WAIT. -> ipv6 a ser pingado Para saber mais sobre os estados das conexes consulte a RFC Configurando um endereo ipv6 na interface: 793 http://tools.ietf.org/html/rfc793 1 # ifconfig <interface > inet6 add <ipv6address >/< prefixlength > -a : exibe todas as conexes e as portas TCP e UDP. n ar. Nmap pode enviar pacotes ICMP echo request para verificar Pgina 40 Linux System Administration se determinado 4Linux www.4linux.com.br 11.7 Verificando portas abertas host ou rede est ativa. Hoje em dia, existem muitos filtros -n : exibe os nmeros das portas ao invs do nome. querejeitam os pacotes -p : exibe o PID (Process ID). ICMP echo request, ento envia um pacote TCP ACK paraa porta -l : exibe os sockets que estejam ouvindo. 80 (default) e -r : exibe a tabela de roteamento. caso receba RST o alvo est ativo. A terceira tcnica envia um -t : exibe os sockets TCP. pacote SYN e espera -u: exibe os sockets UDP. um RST ou SYN-ACK. Podemos fazer uso de vrios parmetros juntos: -sR A opo -n exibe todas as portas e no formato numrico. RCP scan: Este mtodo trabalha em conjunto com vrias tcnicas 1 # netstat -n do Nmap. Ele As opes -t e -l exibem as conexes TCP e as portas considera todas as portas TCP e UDP abertas e envia comandos disponveis respectivamente NULL SunRPC, para cada conexo com a sua mquina: para determinar se realmente so portas RPC. como se o 1 # netstat -ntl comando rpcinfo -p A opo -u exibe as conexes UDP: estivesse sendo utilizado, mesmo atravs de um firewall ( ou 1 # netstat -nul protegido por TCPwrappers A opo -p exibe o nmero do processo e o nome do programa ). responsvel. -sS 1 # netstat -nltup TCP SYN scan: Tcnica tambm conhecida como half-open, pois Linux System Administration Pgina 41 11.7 Verificando portas abertas 4Linux www.4linux.com.br no abre uma A opo -a exibe tanto os socket que estejam ouvindo quanto Pgina 42 Linux System Administration 4Linux www.4linux.com.br 11.7 Verificando portas abertas aqueles que no conexo TCP completa. enviado um pacote SYN, como se ele estejam. netstat -an fosse uma conexo A opo -r exibe a rota do sistema. netstat -rn real e aguarda uma resposta. Caso um pacote SYN-ACK seja 11.7.2 Comando nmap recebido, aporta est O Nmap um escaneador de hosts que usa recursos avanados aberta, enquanto um como resposta indica que a porta est fechada. para verificar o estado Avantagem do seu alvo. Existem diversas formas e parmetros a serem dessa abordagem que poucos iro detectar esse scanning de informados durante portas. umavarredura. - sT Mtodos de Varredura TCP connect() scan: a tcnica mais bsica de TCP scanning. -sP utilizada achamada Ping scan: Algumas vezes necessrio saber se um determinado de sistema (system call) connect() que envia um sinal as portas host ou rede est ativas.Caso a porta esteja aberta recebe como resposta connect(). um dos scan 1 # nmap -v -n -O localhost mais rpidos, porm Cheque as portas abertas: fcil de ser detectado. 1 # nmap -v -sT -sU localhost -sU No servidor CentOS: Cheque em que porta o servio ssh est UDP scan: Este mtodo utilizado para determinar qual porta UDP escutando: est aberta em 1 # nmap -sV localhost um host. A tcnica consiste em enviar um pacote UDP de 0 byte 11.8 Comando tcpdump para cada porta O comando tcpdump mostra o trfego de uma rede. Ele exibe a do host. Se for recebido uma mensagem ICMP port unreachable descrio do contedo ento a porta est de pacotes numa interface de rede que case com uma expresso fechada, seno a portapode estar aberta. Para variar um pouco, a booleana. Microsoft ignorou Pgina 44 Linux System Administration a sugesto da RFC e com isso a varredura de mquinas Windows 4Linux www.4linux.com.br 11.8 Comando tcpdump muito rpida. Sintaxe: tcpdump <opes> <dispositivo> <expresso> -sV Opes: Version detection: Aps as portas TCP e/ou UDP serem -A Imprime cada pacote em cdigo ASCII. descobertas por algum dos -c Termina a execuo aps receber n pacotes. mtodos, o nmap ir determinar qual o servio est rodando -D Exibe a lista das interfaces de rede disponveis no sistema e que atualmente. Oarquivo o tcpdump nmap-service-probes utilizado para determinar tipos de capaz de capturar pacotes. Esta opo associa um nmero a cada protocolos,nome da aplicao, interface o qual nmero da verso e outros detalhes pode ser usado no lugar do nome da mesma, ex: 1 - eth0, 2 eth1, -O 3 any, 4 lo Ativa a identificao do host remoto via TCP/IP. Ir apresentar (loopback); verso do SistemaOperacional -i Recebe como parmetro a interface ou o nmero associado a ela. e tempo ativo Se especificado 1 p< lista_de_portas > any captura pacotes de todas as interfaces porm, sem ser no Linux System Administration Pgina 43 modo promscuo. 11.8 Comando tcpdump 4Linux www.4linux.com.br -n No converte endereos em nomes. (endereos de host, nmero Especifica quais portas devem ser verificadas na varredura. Por de portas, default, todas asportas etc.) entre 1 e 1024 so varridas. -r L os pacotes a partir de um arquivo (que tenha sido criado com a -n opo -w). No ir resolver nome de hosts a serem varridos. -s Define o tamanho de cada pacote a ser capturado. interessante -v utilizar o valor Modo verbose. Mostra tudo o que est se passando. 1500 para que seja examinado o maior tamanho possvel de pacote. Na mquina Debian: -t No exibe o timestamp em cada linha. Cheque o sistema operacional utilizado: -v Exibe a sada com mais detalhes. Acesse o servidor CentOS por ssh e monitore com tcpdump: -vv Exibe a sada com mais detalhes ainda. 1 # tcpdump -i eth0 -n port 50000 -vvv Exibe a sada com informaes ainda mais detalhadas. Pgina 46 Linux System Administration -w Escreve os pacotes em um arquivo que pode ser lido posteriormente com a opo Servio de Rede Telnet -r. Antes de partir direto para o acesso remoto via telnet, preciso Linux System Administration Pgina 45 explicar uma teoria 11.8 Comando tcpdump 4Linux www.4linux.com.br importante j que vai ser trabalhado configurao de servios como -x Exibe o contedo do pacote no formato hexadecimal. telnet, ssh, -X Exibe o contedo do pacote nos formatos hexadecimal e ASCII. NFS. expresso Seleciona quais pacotes sero exibidos. Se no for Os servios de rede podem ser divididos em trs tipos bsicos: definida nenhuma expresso xinetd todos os pacotes sero exibidos. Do contrrio somente os pacotes portmap com os stand alone quais a expresso coincidir sero exibidos. A expresso consiste em Os servios tipo [x]inetd so aqueles que dependem do uma ou mais superdaemon de rede inetd premissas. As premissas usualmente consistem em um ID (nome ou InterNET daemon. A verso mais atual do inetd o xinetd nmero) precedido eXtended InterNET por um ou mais qualificadores.Existem trs diferentes tipos de daemon. A funo de um superdaemon apenas controlar alguns qualificadores: servios que no type (tipo) Especifica host, net, port e portrange. Ex: host dragon, tero daemon prprio. net 192.168, Um daemon um processo servidor que roda em segundo plano port 22, portrange 5000-5777. esperando requisies. dir (direo) Indica a direo dos pacotes a serem capturados. Quando se fala de inetd e xinetd, fala-se do mesmo superdaemon, Podem ser: src, dst, mas em src or dst e src e dst, que significam respectivamente origem, algumas distros (como o Debian) ainda o inetd. S que o xinetd destino, origem ou possui alguns destino e origem e destino. Se nada for definido assume origem ou recursos a mais como controle de acesso, capacidade de fazer logs destino. e determinar proto (protocolo) Define qual o tipo de protocolo ser exibido. Os horrios para que o servio esteja disponvel. protocolos possveis Esse superdaemon fica escutando nas portas que os servios so: ether, fddi, tr, wlan, ip, ip6, arp, rarp, decnet, tcp e udp. controlados por ele Exemplos: trabalham carregando o programa apropriado quando chega uma Acesse um site e monitore com tcpdump: requisio na determinada 1 # tcpdump -i eth0 -n port 80 porta. Exemplos de servios tipo inetd: telnet, FTP, POP3 etc. Ao Onde: longo -i -> interface, -n -> no resolve nomes, port -> identifica a porta de 47 monitoramento. 11.9 Telnet TELetype NETwork 4Linux www.4linux.com.br do tempo, alguns dos servios que eram controlados pelo inetd est se dando entre as partes envolvidas facilitando ataques do tipo passaram a operar manin- como stand alone a fim de contornar problemas associados ao inetd. the-middle. Essas falhas tm feito cair a utilizao do protocolo Os servios stand alone so aqueles em que cada tipo de servidor telnet em possui seu daemon favor do SSH. prprio. Esta forma de trabalho preferida hoje em dia pois Pgina 48 Linux System Administration possibilita um maior 4Linux www.4linux.com.br 11.10 Instalao e configurao do Telnet controle sobre cada servio sem separado. Exemplos de servios Atualmente, o telnet ainda bastante utilizado para realizar que operam dessa configuraes em equipamentos forma: SSH, httpd (daemon do Apache), FTP, dentre outros. de rede especificos e tambm para testar o funcionamento de Os servios tipo portmap so aqueles que no possuem porta servios especifica para operar, como um servidor de POP3 eliminando a necessidade de programas como por exemplo, o NIS e o NFS. Estes servios enviam uma clientes especializados. chamada RPC O telnet controlado pelo superdaemon do Linux (inetd ou xinetd). Remote Procedure Call para a mquina servidora causando a Para execuo de uma que possa saber mais sobre as portas, basta dar uma olhadinha determina subrotina. Dessa forma quando um cliente faz a depois no seguinte requisio de NFS a arquivo: um servidor, ele est enviando um RPC tipo NFS e que quando 1 # cat /etc/ services chegar ao servidor 11.10 Instalao e configurao do Telnet ser tratada como tal, carregando a subrotina apropriada para enviar Caso queira testar o telnet, a primeira coisa instalar o servidor e o a resposta ao cliente: cliente. 1 No Debian : 11.9 Telnet TELetype NETwork 2 # aptitude install telnet telnetd openbsd - inetd 1 No CentOS : Telnet um protocolo que pode ser utilizado tanto localmente 2 # yum install telnet telnet - server xinetd quanto na internet. O A configurao de um servidor telnet, na realidade, feita telnet considerado muito inseguro e se usar altamente configurando o [x]inetd. desencorajado. Ao longo No Debian, o inetd utilizado, em sistemas como o Red Hat o dos anos vm sendo descobertas diversas vulnerabilidades em suas sistema utilizado implementaes xinetd. e, provavelmente, h muitas outras que ainda no foram No Debian: determinadas. Verifique que a linha de configurao do telnet no est comentada Por padro, os dados enviados no so criptografados incluindo no arquivo de usurios e configurao do inetd, se estiver comentada, ento descomente: senhas Linux System Administration Pgina 49 No possui esquema de autenticao que possibilite garantir que a 11.10 Instalao e configurao do Telnet 4Linux www.4linux.com.br comunicao 1 # vim /etc/ inetd . conf 2 telnet stream tcp nowait telnetd / usr / bin / tcpd / usr / sbin /in. telnetd Em um sistema xinet haver um arquivo de configurao para cada Descrio da opes: tipo de servio e telnet: nome do servidor, como est registrado em /etc/services; eles estaro no subdiretrio xinetd.d no diretrio /etc stream: tipo de socket usado pelo protocolo, possveis valores so: 1 # vim /etc/ xinetd .d/ telnet stream, 2{ dgram, raw, rdm e seqpacket; tcp tipo do protocolo usado; 3 disable = no nowait/wait aguardar/no aguardar : significativo para tipos de 4 flags = REUSE soquete de 5 socket_type = stream 6 wait = no datagrama (dgram), outros tipos de socket usam o valor nowait. 7 user = root telnetd: usurio e grupo que iro controlar o processo de servidor; 8 server = /usr/ sbin /in. telnetd /usr/sbin/tcpd: o executvel para o programa TCP Wrappers 9 log_on_failure += USERID /usr/sbin/in.telnetd: o programa que ir lidar com as informaes 10 } da conexo. Para reiniciar o daemon do xinetd: Se a linha do telnet no estiver comentada significa que o servio j 1 # service xinetd restart est habilitado. Linux System Administration Pgina 51 Para garantir que o telnet seja iniciado, reinicie o daemon do inetd. Para reiniciar o 4451 daemon do inetd: 1 # service openbsd - inetd stop Linux System Administration 2 # service openbsd - inetd start www.4linux.com.br Faa agora uma check list para verificar se o servio est funcionando: 1 # netstat -anp | grep 23 Contedo Data e Hora do Sistema e Servidor de NTP 2 2 tcp 0 0 0.0.0.0:23 0.0.0.0:* OUA 2922/ inetd 12.1 Introduo Terica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 Pgina 50 Linux System Administration 12.1.1 NTP -Network Time Protocol . . . . . . . . . . . . . . . . . . . . 6 4Linux www.4linux.com.br 11.10 Instalao e configurao do Telnet Se a porta estiver em estado de LISTEN ou OUA significa que ela 12.1.2 Organizao em Strata . . . . . . . . . . . . . . . . . . . . . . . 6 est ouvindo, ou 12.1.3 Ajuste Manual de Horrio . . . . . . . . . . . . . . . . . . . . . . 8 seja, est disponvel. Voc pode ver se o processo do telenet est 12.1.4 Trabalhando com NTP nos Clientes . . . . . . . . . . . . . . . . 9 ativo usando o 12.1.5 Configurao do Servidor de NTP . . . . . . . . . . . . . . . . . 9 fuser: 12.1.6 Monitorando nossa conexo NTP: . . . . . . . . . . . . . . . . . 14 1 # fuser -v 23/ tcp 12.2 Acertando horrio de vero . . . . . . . . . . . . . . . . . . . . . . . . . 19 2 23/ tcp: root 2922 F .... inetd 12.2.1 Configurando . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 Para fazer um acesso remoto em um servidor que tem o telnet Rsyslog 21 habilitado muito 12.3 Introduo Terica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 simples: 12.3.1 Organizao do Rsyslog . . . . . . . . . . . . . . . . . . . . . . . 22 1 # telnet <ip_do_servidor > 12.4 Configurando o sistema de Logs no cliente (Debian): . . . . . . . . . No CentOS: . . 26 12.4.1 Logs Centralizados, configurando um servidor de Logs Visualizar a hora: (Server 1 # date Debian) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 Acertar data e hora: 12.4.2 Logs Centralizados, configurando um servidor de Logs 3 (Server 12.1 Introduo Terica 4Linux www.4linux.com.br CentOS) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 1 # date mmddHHMMYYYY 12.4.3 Rotao de Logs . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 Onde: 2 m ms , d dia, H hora, M minuto, Y ano EX: dia 15 de julho de 1983 s 13:15 Data e Hora do Sistema e 1 # date 071513151983 Outra forma : Servidor de 1 # date -s "07/15/1983 13:15" Para mudar somente a hora: NTP 1 # date -s "12:01" Para mudar somente a data: 12.1 Introduo Terica 1 # date -s "mm/dd/ YYYY " Manter o sistema com o horrio correto uma tarefa muito Repare que ao mudar somente a data, alterado o horrio para importante e que muitas 00:00. vezes negligenciada pelos administradores. Sem o horrio J o comando hwclock utilizado para mostrar ou ajustar a hora ajustado corretamente, da BIOS da mquina fica difcil agendar tarefas a serem executadas periodicamente, ou sendo conhecido como RTC - Real Time Clock. Este o relgio que at mesmo fazer fica continuamente a leitura dos logs e determinar em que horrio um determinado em funcionamento mesmo que a mquina esteja desligada; de evento ocorreu. Esse forma que detalhe torna-se ainda mais importante quando temos um servidor Pgina 4 Linux System Administration de e-mail rodando 4Linux www.4linux.com.br 12.1 Introduo Terica na mquina. Imagine um e-mail que pode ser enviado a/de qualquer o horrio esteja atualizado da prxima vez que a mquina for parte do mundo religada. Sua forma de e, somando a diferena de fuso horrio, um servidor com a hora utilizao bastante simples: errada, fica muito Visualizar hora da Bios: 1 # hwclock difcil determinar a hora na qual o e-mail foi enviado. Ajustar o horrio da BIOS utilizando o horrio do sistema: H basicamente duas formas de ajustar as configuraes de horrio 1 # hwclock -w do sistema: 2 Ou manualmente, utilizando os comandos date e hwclock ou usando 3 # hwclock -- systohc o servio de Ajustar o horrio do sistema utilizando o horrio da BIOS: NTP - Network Time Protocol. 1 # hwclock -s O comando date utilizado para mostrar ou ajustar a data e hora 2 Ou do sistema. 3 # hwclock -- hctosys Ajustar o relgio da BIOS: Conectados aos "stratum 1"h o "stratum 2"que em geral esto 1 # hwclock --set --date =" mm/dd/YY HH:MM:ss" conectados a mais Outro ponto importante no que diz respeito s configuraes de data de um servidor de stratum 1 e determinam de fato qual a hora e hora do sistema padro com base a configurao da "timezone", ou seja, o fuso horrio em que a nos dados recebidos dos "stratum 1"utilizando o algoritmo do NTP. mquina Os "stratum 2"responde ao "stratum 3"que responde ao "stratum 4"e se encontra. Essa configurao pode ser efetuada utilizando os assim por diante comandos dpkgreconfigure at atingir, no mximo, 16 nveis. Uma representao esquemtica tzdata" (especfico do Debian) e "system-config-date" em dessa estrutura distribuies pode ser vista na figura. como CentOS, Suse e Gentoo. Pgina 6 Linux System Administration Linux System Administration Pgina 5 4Linux www.4linux.com.br 12.1 Introduo Terica 12.1 Introduo Terica 4Linux www.4linux.com.br A menos que estejamos montando um servidor para ser um "stratum 12.1.1 NTP -Network Time Protocol 1", 2 ou 3, O protocolo de sincronizao de horrios "NTP"foi desenvolvido a nunca devemos utilizar os servidores "stratum 1"ou 2 para fim de possibilitar sincronizarmos nossos que qualquer computador ligado internet possa ajustar sua data e servidores; mas sim acessar um "stratum 3". Dessa forma deixamos hora automaticamente os nveis mais utilizando um servidor de hora preciso. O NTP um servio na baixos para as mquinas que realmente precisam acess-los. camada Ainda assim, nossa poltica de acesso aos "stratum 3"deve ser de aplicao que utiliza o protocolo UDP na camada de transporte tambm bastante fazendo uso da criteriosa. Se nossa rede possu diversas mquinas, no h sentido porta 123 para realizar a sincronizao de horrios. em fazermos O NTP, criado em 1985, um dos protocolos de internet mais todas elas se sincronizarem em um "stratum 3", mas sim escolher antigos ainda em uso e uma de nossas pode atingir uma preciso de aproximadamente 200s(duzentos mquinas para ser um stratum 4 e nossos clientes realizarem a microssegundos). sincronizao a 12.1.2 Organizao em Strata partir dela. A hierarquia do NTP dividida em vrios nveis, o conjunto deles Sendo assim, vamos proceder com a configurao dos servidores e denominado dos clientes. "strata"e cada um deles corresponde a um "stratum". A raiz desse Linux System Administration Pgina 7 12.1 Introduo Terica 4Linux www.4linux.com.br sistema o denominado stratum 0 e que corresponde aos relgios nucleares espalhados 12.1.3 Ajuste Manual de Horrio pelo Verifique qual a sua localizao geogrfica no CentOS: mundo, aos quais esto conectados os servidores de "stratum 1", 1 # cat /etc/ sysconfig / clock ou seja, so eles Verifique qual a sua localizao geogrfica no Debian: 1 # cat /etc/ timezone que fazem o processamento da informao recebida do stratum 0. Caso esteja com um dos fusos horrios incorreto, corrija-o com um Linux System Administration Pgina 9 dos comandos: 12.1 Introduo Terica 4Linux www.4linux.com.br CentOS: No CentOS verifique se o pacote ntp est instalado: 1 # rm -rf /etc/ localtime 1 # rpm -q ntp 2 # cd /usr/ share / zoneinfo / America Caso no esteja instalado, instale-o: 3 # ln Sao_Paulo /etc/ localtime 1 # yum install ntp 4 OU Vamos configurar o nosso servidor de NTP. Abra o arquivo de 5 # system -config - date configurao: Debian: 1 # vim /etc/ntp. conf 1 # dpkg - reconfigure tzdata Vamos precisar obter endereos de servidores oficiais de "NTP", Verifique a data e hora do sistema e da BIOS: para isso, podemos 1 # date acessar o site http://www.ntp.br, que a pgina do projeto NTP. 2 # hwclock Logo na pgina inicial Pgina 8 Linux System Administration haver uma lista de servidores pblicos, mantidos pelo projeto 4Linux www.4linux.com.br 12.1 Introduo Terica ntp.br. 12.1.4 Trabalhando com NTP nos Clientes sempre aconselhvel utilizar mais de um servidor para que, caso Instalar o cliente NTP no Debian: ocorra algum erro 1 # aptitude install ntpdate em algum deles, o nosso sistema possa continuar com a No CentOS o comando ntpdate j vem instalado com o pacote "ntp". configurao correta. Para as mquinas da rede que forem os clientes NTP, possvel No arquivo de configurao devemos localizar a linha para fazer a sincronizao configurao do servidor do horrio com o servidor por meio do comando "ntpdate", assim: com o qual sincronizaremos a nossa mquina: 1 # ntpdate [ip -do - servidor -na - rede ] Os parmetros adicionais "iburst"fazem com que sejam enviados No Debian, caso no tenha um servidor NTP na rede, podemos oito pacotes em vez simplesmente reiniciar de apenas um durante a sincronizao inicial e o parmetro o "daemon"do "ntpdate": "prefer"faz com que a 1 # ntpdate - debian resposta de um servidor preferido seja descartada se ela diferir O comando utilizar o(s) servidor(es) configurado(s) no arquivo muito das respostas /etc/default/ntpdate. dos demais servidores, caso contrrio, ser utilizado sem qualquer 12.1.5 Configurao do Servidor de NTP considerao Agora que aprendemos a ajustar manualmente a hora do sistema e para outras respostas. da BIOS, vamos Pgina 10 Linux System Administration utilizar o mtodo mais preciso, ou seja, criar a estrutura de 4Linux www.4linux.com.br 12.1 Introduo Terica servidores e clientes de Vamos adicionar a linha especificando quais "hosts"podero realizar NTP. sincronizao O servidor NTP provido pelo pacote "ntp", tanto no Debian quanto com a nossa mquina: no CentOS. 1 restrict 127.0.0.1 Configure o servidor CentOS para fornecer as horas: 2 restrict 192.168.200.0 mask 255.255.255.0 3 disable auth endereo, estado, deslocamento, atraso, disperso, varincia A primeira restrio est liberando requisies vindas do Exemplo: "localhost"e a segunda da 1 54475 34931.294 200.20.186.75 9074 0.009958844 0.008390600 nossa rede. Foi desabilitada a autenticao por chaves tambm. 0.000390895 0.000132755 Alguns arquivos 2 54475 34931.301 200.192.232.43 f0f4 0.000348814 0.015550265 importantes no Debian: 0.001120348 0.000023645 statsdir /var/log/ntpstats/ diretrio onde vo ficar os logs de 3 54475 34932.303 200.189.40.28 f0f4 0.000810708 0.017701986 estatsticas do 0.188995109 0.000043145 4 54475 34934.286 200.160.0.28 f0d4 0.000332344 0.000271801 meu servidor NTP. 0.000620139 0.000037467 Os principais logs do ntp so o loopstats, que apresenta as 5 54475 34935.286 200.160.7.165 9614 0.000003557 0.000216088 informaes do loop 0.000826694 0.000022076 local, ou seja, as variveis do sistema, e o peerstats, que apresenta 6 54475 34935.301 200.19.119.69 9334 0.002667663 0.015740055 as informaes 0.001858731 0.001733883 de cada associao. 7 54475 34935.303 200.186.125.200 f034 0.004857359 0.016764821 loopstats 0.000719509 0.000303380 Seu formato o seguinte: 8 54475 34936.301 200.189.40.42 f0b4 -0.000738445 0.015510523 day, second, offset, drift compensation, estimated error, 0.000390094 0.000039731 stability, polling interval 9 54475 34936.301 200.19.119.120 9434 0.000009164 0.015505927 dia, segundo, deslocamento, escorregamento, erro estimado, 0.000447001 0.000030319 10 54475 34938.301 200.192.232.28 f0f4 0.000363627 0.015584684 estabilidade, Pgina 12 Linux System Administration e intervalo de consulta 4Linux www.4linux.com.br 12.1 Introduo Terica Exemplo: 0.063231626 0.000020460 1 54475 73467.286 -0.000057852 31.695 0.000015298 0.006470 4 11 54475 34939.286 200.160.0.8 f054 0.000368748 0.000334013 2 54475 73548.286 -0.000084064 31.688 0.000017049 0.006471 4 0.000484437 0.000013953 3 54475 73682.286 -0.000077221 31.678 0.000016130 0.006988 4 12 54475 34939.286 200.160.0.43 f034 0.000325615 0.000260201 4 54475 73698.286 -0.000077448 31.677 0.000015103 0.006550 4 0.000849475 0.000039634 5 54475 73761.286 -0.000083230 31.672 0.000014275 0.006376 4 A interpretao dos arquivos de log fica bastante facilitada com o Linux System Administration Pgina 11 uso de grficos. E 12.1 Introduo Terica 4Linux www.4linux.com.br uma vez que se conhece seu formato fica muito fcil ger-los. Vrias 6 54475 73889.286 -0.000059100 31.665 0.000015846 0.006487 4 7 54475 74004.285 -0.000045825 31.660 0.000015548 0.006324 4 ferramentas 8 54475 74086.286 -0.000038670 31.657 0.000014762 0.006011 4 podem ser utilizadas para isso, mas recomenda-se o uso do 9 54475 74156.285 -0.000052920 31.653 0.000014699 0.005759 4 "gnuplot". Foge do 10 54475 74251.285 -0.000053223 31.649 0.000013766 0.005651 4 escopo desse site dar informaes detalhadas sobre a instalao ou 11 54475 74268.286 -0.000062545 31.648 0.000013292 0.005298 4 uso dessa ferramenta, peerstats ento consulte http://www.gnuplot.info/ para mais informaes. O Seu formato o seguinte: software day, second, address, status, offset, delay, dispersion, skew funciona em GNU/Linux, FreeBSD, Windows e outros sistemas. (variance)dia, segundo, Segue um exemplo de uso, no GNU/Linux com interface grfica, que 4Linux www.4linux.com.br 12.1 Introduo Terica permitir aos 3 *a.ntp.br 200.160.7.186 2 u 57 64 377 9.184 interessados entender o processo: -1.259 4.398 Cria-se um arquivo chamado deslocamento.txt com o seguinte 4 +b.ntp.br 200.20.186.76 2 u 55 64 377 18.036 contedo: 0.391 4.413 5 +c.ntp.br 200.160.7.186 2 u 51 64 377 36.675 1# set term gif -0.939 3.361 2# set output "| display " 3# set title " Deslocamento " Onde: 4# plot "/ var/log/ ntpstats / loopstats " using 2:3 t" deslocamento " with A primeira coluna apresenta os tally codes, que significam o linespoints lt rgb "# d0d0d0 "; seguinte: * -> o system Observe-se que o comando plot faz referncia ao arquivo loopstats, peer, par do sistema, ou principal fonte de sincronizao; e usa suas colunas o -> o system peer, par do sistema, ou principal fonte de 2 e 3, onde: 2 representa o tempo, no dia, em segundos; e 3 sincronizao, mas apenas representa o se a fonte for o sinal de um pulso por segundo (PPS); deslocamento, em milisegundos. + -> candidate, ou um relgio sobrevivente, indica que uma boa Executa-se o seguinte comando: fonte de sincronizao 1 # gnuplot deslocamento .txt e que est sendo utilizada no momento, juntamente com o par do E pronto, como a sada esta redirecionada para display, v-se o gif sistema, gerado na tela: para ajustar o relgio local; Linux System Administration Pgina 13 - -> outlyer, ou relgio afastado, indica que uma boa fonte de 12.1 Introduo Terica 4Linux www.4linux.com.br sincronizao, mas driftfile /var/lib/ntp/ntp.drift arquivo onde ficar configurado o valor no sobreviveu ao algoritmo de agrupamento, ou seja, no momento estimado de h opes melhores erro de frequncia entre o relgio do sistema e o servidor de e ela no est sendo utilizada; sincronia de "stratum" x -> falseticker, ou relgio falso, indica que no uma boa fonte de anterior. sincronizao, 12.1.6 Monitorando nossa conexo NTP: foi descartada j no algoritmo de seleo de relgios por discordar O ntp traz consigo algumas ferramentas que permitem monitorar seu muito das outras funcionamento. fontes; A mais importante o ntpq. A seguir so apresentados dois . -> excess, excesso: a fonte foi rejeitada por no estar entre as 10 comandos do ntpq que melhores; permitem visualizar algumas variveis importantes do ntp: (espao em branco) -> reject, relgio rejeitado porque no 1 # ntpq -c pe responde, porque h Uma reposta normal se parece com essa: um loop na sincronizao, ou porque ele apresenta uma distncia na 1 remote refid st t when poll reach delay offset sincronizao jitter enorme. 2 A seguir so apresentados os significados das demais colunas: Pgina 14 Linux System Administration Linux System Administration Pgina 15 12.1 Introduo Terica 4Linux www.4linux.com.br 2 version =" ntpd 4.2.4 p8@1 .1612 - o Tue Apr 19 07:08:18 UTC 2011 (1) remote = Nome ou IP da fonte de tempo; ", refid = a referncia (par do sistema) qual o servidor de tempo 3 processor =" x86_64 ", system =" Linux /2.6.32 -28 - generic ", leap =00 , remoto est sincronizado; 4 stratum =3, precision =-20, rootdelay =10.710 , rootdispersion =18.517 , st = o estrato da fonte de tempo; 5 peer =15790 , refid =200.160.0.8 , 6 reftime = d25da5f5 .4450 ebec Thu , Nov 3 2011 21:44:53.266 , poll =6, when = quanto segundos se passaram desde a ltima consulta 7 clock = d25da712 .870 b54e3 Thu , Nov 3 2011 21:49:38.527 , state =4, essa fonte de 8 offset = -0.550 , frequency =35.515 , jitter =8.471 , noise =0.604 , tempo; 9 stability =0.111 , tai =0 poll = de quantos em quantos segundos essa fonte consultada; As mais importantes esto indicadas a seguir: reach = um registrador de 8 bits que vai girando para a esquerda version -> verso do ntp; representado na stratum -> estrato do servidor local; forma octal, que mostra o resultado das ltimas 8 consultas fonte precision -> preciso indicada com o expoente de um nmero base de tempo: 377 2; = 11.111.111 significa que todas as consultas foram bem sucedidas; rootdelay -> atraso ou tempo de ida e volta dos pacotes at o outros nmero estrato 0, em milissegundos; indicam falhas, por exemplo 375 = 11.111.101, indica que a rootdispersion -> erro mximo da medida de offset em relao ao penltima consulta falhou; estrato 0, em delay = atraso, ou tempo de ida e volta, em milissegundos, dos milissegundos; pacotes at essa refid -> o par do sistema, ou principal referncia; fonte de tempo; offset -> deslocamento, quanto o relgio local tem de ser adiantado offset = deslocamento, ou quanto o relgio local tem de ser ou atrasado adiantado ou atrasado, para chegar hora certa (hora igual do estrato 0); em milissegundos, para ficar igual ao da fonte de tempo; frequency -> erro na frequncia do relgio local, em relao jitter = a variao, em milissegundos, entre as diferentes medidas frequncia do estrato de deslocamento 0, em partes por milho (PPM). para essa fonte de tempo. Linux System Administration Pgina 17 Enquanto o "ntpq -c pe" apresenta as variveis relacionadas a 12.1 Introduo Terica 4Linux www.4linux.com.br cada associao, Vamos determinar se a sincronizao est funcionando ou seja, a cada fonte de tempo, o "ntpq -c rl" apresenta as corretamente. Para isso vamos variveis (globais) do alterar a hora do sistema e depois iniciar o servio de NTP: sistema. 1 # date 010101012009 1 # ntpq -c rl 2 Sada do comando "ntpq -c rl": 3 # /etc/ init .d/ ntpd stop Pgina 16 Linux System Administration 4 4Linux www.4linux.com.br 12.1 Introduo Terica 5 # /etc/ init .d/ ntpd start && tail -f / var / log / messages 1 assID =0 status =0644 leap_none , sync_ntp , 4 events , event_peer / Agora, verifique a hora do sistema novamente e veja se funcionou: strat_chg , 1 # date Configurando o client Debian para sincronizar com o servidor: 1 # aptitude install ntp conter as seguintes linhas: Adicione o servidor a lista de servidores e comente os demais: 1 # cd /usr/ share / zoneinfo / Brazil 1 # vim /etc/ntp. conf 1 # vim verao .zic 2 Linux System Administration Pgina 19 3 # adicione na linha 15 e comente os outros server : 12.2 Acertando horrio de vero 4Linux www.4linux.com.br 4 server 192.168.200.100 iburst prefer 2 Rule Brazil 2012 only - Oct 20 00:00 1 S Vamos determinar se a sincronizao est funcionando 3 Rule Brazil 2013 only - Feb 16 00:00 0 - corretamente. Para isso vamos 4 Zone Brazil / East -3:00 Brazil BR%sT alterar a hora do sistema e depois iniciar o servio de NTP: Uma vez feitos os devidos ajustes no arquivo verao.zic execute o 1 # date 010101012009 comando zic: 2 # /etc/ init .d/ntp stop 1 # cd /usr/ share / zoneinfo / Brazil / 3 # /etc/ init .d/ntp start && tail -f / var / log / syslog 2 # zic verao .zic Pgina 18 Linux System Administration Neste caso em particular o comando atualizar o arquivo East. 4Linux www.4linux.com.br 12.2 Acertando horrio de vero Para verificar se as configuraes corretas foram feitas, execute o Agora, verifique a hora do sistema novamente e veja se funcionou: comando "zdump", 1 # date conforme segue abaixo: 12.2 Acertando horrio de vero 1 # zdump -v /usr/ share / zoneinfo / Brazil / East | grep 201[23] O Decreto n 6.558/08 (DOU de 09/09/2008), determina que o Voc dever obter uma resposta como a que segue abaixo: horrio de vero ser 1 Brazil / East Sun Oct 21 02:59:59 2012 UTC = Sat Oct 20 23:59:59 2012 fixo no Brasil e comear sempre a partir da zero hora do terceiro BRT isdst =0 gmtoff = -10800 2 Brazil / East Sun Oct 21 03:00:00 2012 UTC = Sun Oct 21 01:00:00 2012 domingo do ms BRST isdst =1 gmtoff = -7200 de outubro de cada ano, at zero hora do terceiro domingo do ms 3 Brazil / East Sun Feb 17 01:59:59 2013 UTC = Sat Feb 16 23:59:59 2013 de fevereiro do BRST isdst =1 gmtoff = -7200 ano subsequente. 4 Brazil / East Sun Feb 17 02:00:00 2013 UTC = Sat Feb 16 23:00:00 2013 A nica exceo para a regra relacionada ao encerramento do BRT isdst =0 gmtoff = -10800 horrio de vero Note que em "Sat Oct 20 23:59:59 2012"o sistema ainda no est que, se porventura coincidir com o Carnaval, dever ser adiado em no Horrio de uma semana. Vero (indicao BRT). No segundo seguinte as modificaes do 12.2.1 Configurando Horrio de Vero Verifique se existe no diretrio /usr/share/zoneinfo/Brazil algum entram em vigor, adiantando o localtime em uma hora: "Sun Oct 21 arquivo que contenha 01:00:00 2012 informaes relativas a outros horrios de vero (DICA: geralmente Pgina 20 Linux System Administration um arquivo com 4Linux www.4linux.com.br 12.2 Acertando horrio de vero extenso .zic). BRST"(O horrio mostrado ao usurio passar para 1 da manh, e a) Se no existir nenhum arquivo com tais informaes ento crie no para meianoite, um novo, de nome mostrando o adiantamento do horrio). "verao.zic"por exemplo, no diretrio /usr/share/zoneinfo/Brazil/. Este Em "Sat Feb 16 23:59:59 2012 BRST", o Horrio de Vero terminar arquivo dever no segundo seguinte, com o localtime sendo ento atrasado em 1 hora: "Sat Feb Facilidades do Rsyslog 16 23:00:00 auth - Mensagens de segurana/autorizao. 2012 BRT"(o horrio mostrado ao usurio voltar para s 23:00). authpriv - Mensagens de segurana/autorizao (privadas). Cheque trocando a data: cron - Servios de agendamento (cron e at). 1 # date -s 10/20/2012 23:59:30 daemon - Outros servios do sistema que no possuem Cheque novamente: facilidades especficas. 1 # date -s 02/16/2013 23:59:30 ftp - Servio de ftp do sistema. O horrio tem de ser atualizado automaticamente quando for fazer kern - Mensagens do kernel. 00:00. lpr - Subsistema de impresso. Linux System Administration Pgina 21 Local0-7 - Reservados para uso local. mail - Subsistema de e-mail. Rsyslog news - Subsistema de notcias da USENET 12.3 Introduo Terica Linux System Administration Pgina 23 A necessidade de registro das atividades dos usurios e servios 12.3 Introduo Terica 4Linux www.4linux.com.br dos sistemas . notoriamente, muito importante para Administradores de Sistemas. security - Sinnimo para a facilidade auth. A norma NBR rsyslog - Mensagens internas geradas pelo rsyslog. ISO/IEC 27002 recomenda no item 10.10.1 as seguintes user - Mensagens genricas de nvel do usurio. caractersticas de um sistema uucp- Subsistema de UUCP. de logs: * - Confere com todas as facilidades. 1. Identificao dos usurios; Nveis 2. Datas e horrios de entrada e sada de terminais; emerg - O sistema est inutilizvel. 3. Hostname ou endereo IP, para servios acessados via rede; alert - Uma ao deve ser tomada imediatamente para resolver o 4. Registro das tentativas de acessos aceitos e rejeitados. problema. crit - Condies crticas. 12.3.1 Organizao do Rsyslog err - Condies de erro. Cada linha do arquivo /etc/rsyslog.conf organizada pela seguinte warning - Condies de alerta. sintaxe: notice - Condio normal, mas significante. 1 # facilidade .nvel destino info - Mensagens informativas. Vamos entender o que cada um desses itens: debug - Mensagens de depurao. 22 4Linux www.4linux.com.br 12.3 Introduo Terica * - Confere com todos os nveis. Pgina 24 Linux System Administration facilidade - usada para especificar que tipo de programa est 4Linux www.4linux.com.br 12.3 Introduo Terica enviando a mensagem. none - Nenhuma prioridade. nvel - Especifica o nvel de gravidade da mensagem. error - Sinnimo para o nvel err. destino - Especifica para onde deve ser mandada a mensagem de panic - Sinnimo para o nvel emerg. log. warn - Sinnimo para o nvel warning. Vamos entender cada uma delas. Destinos arquivo - O Rsyslog enviar os logs para um arquivo. Essa opo 1) Instale o pacote do rsyslog no Cliente: a mais 1 Se for Debian : comum. 2 # aptitude install rsyslog (|)- O Rsyslog enviar os logs atravs de um pipe. Muito usado 3 OU para redirecionar 4 Se for CentOS : 5 # yum install rsyslog logs um terminal. (@) - Com a arroba, o Rsyslog enviar seus logs para um 2) Edite o arquivo de configurao do rsyslog, e ative as seguintes computador remoto, opes de utilizando hostname ou endereo IP. Logs: 1 # vim /etc/ rsyslog . conf user1,user2 - Especificando o usurio, o Rsyslog enviar a 2 # Erros de login so enviados para o terminal 2: mensagem para os 3 authpriv . error |/ dev/ tty2 usurios especificados. Mltiplos usurios so separados por 4 # Redirecionar todos os logs para o arquivo / var / log / tudo . log : vrgula. 5 *.* /var/log/ tudo .log * - Com o asterisco, o Rsyslog enviar os logs para todos usurios 6 # Redirecionar a sada de logs do cron para o usu rio aluno : logados no 7 cron .* aluno momento, atravs do comando "wall". 8 # Redirecionar todos os logs para um servidor remoto Debian e Centos Arquivos importantes : Debian: Principal arquivo de log: /var/log/syslog Logs de controle do Pgina 26 Linux System Administration kernel: 4Linux www.4linux.com.br 12.4 Configurando o sistema de Logs no cliente (Debian): /var/log/messages Logs de depurao de daemons: 9 # Debian /var/log/daemon.log 10 *.* @192 .168.200.101 Linux System Administration Pgina 25 11 # CentOS 12.4 Configurando o sistema de Logs no cliente (Debian): 4Linux 12 *.* @192 .168.200.100 www.4linux.com.br 5) Reinicie o rsyslog: CentOS: Principal arquivo de log: /var/log/messages Logs de 1 # /etc/ init .d/ rsyslog stop controle do kernel: 2 # /etc/ init .d/ rsyslog start /var/log/messages Logs de depurao de daemons: 6) Verifique o arquivo /var/log/tudo.log /var/log/messages 1 # cat /var/log/ tudo .log Debian e CentOS: Logs utilizados pelo comando last: /var/log/wtmp 7) Tente se logar como aluno no terminal 3, mas erre a senha, Logs utilizados depois logue-se corretamente, pelo comando last: /var/log/btmp Log utilizado pelo comando em seguida veja o log de erro de login no terminal dois: lastlog: /var/log/lastlog 1 # ctrl + alt + 2 Logs utilizados pelos comandos w e who: /var/run/utmp 8) Reinicie o servio do cron no terminal 1 como root e veja o log na 12.4 Configurando o sistema de Logs no tela do usurio aluno que est logado no terminal 3: cliente 1 # /etc/ init .d/ cron restart (Debian): Linux System Administration Pgina 27 12.4 Configurando o sistema de Logs no cliente (Debian): 4Linux 2 # /etc/ init .d/ rsyslog start www.4linux.com.br Certifique-se de que a porta est disponvel para conexes remotas: 12.4.1 Logs Centralizados, configurando um servidor Linux System Administration Pgina 29 12.4 Configurando o sistema de Logs no cliente (Debian): 4Linux de Logs www.4linux.com.br (Server Debian) 1 # nestat -lun | grep 514 Primeiro, necessrio que o servidor seja habilitado para Verifique o log: recebermos logs de outras 1 # tail -f /var/log/ tudo .log mquinas, para isto, acrescente o parmetro -r: 12.4.3 Rotao de Logs 1 # vim /etc/ default / rsyslog Com o tempo, os logs podem ocupar muito do espao disponvel na Modifique o contedo do arquivo, acrescentando o parmetro: partio. Por 1 RYSLOGD_OPTIONS ="-c4 ,-r" isso, devemos configurar corretamente a poltica de rotao dos Depois, precisamos descomentar no arquivo as linhas: logs, ou seja, durante # vim /etc/rsyslog.conf $ModLoad imudp $UDPServerRun 514 quanto tempo os logs sero armazenados no seu computador. Crie uma entrada para redirecionar os logs para um arquivo: Para isso, edite o arquivo /etc/logrotate.conf: 1 # vim /etc/ rsyslog . conf 1 # vim /etc/ logrotate . conf 2 *.* /var/log/ tudo .log 2 # Definindo rota o de logs semanalmente Reinicialize o servio Rsyslog: 3 weekly 1 # /etc/ init .d/ rsyslog stop 4 # Manter os logs de 4 semanas 2 # /etc/ init .d/ rsyslog start 5 rotate 4 Certifique-se de que a porta est disponvel para conexes remotas: 6 # Criar um arquivo novo para cada rota o de logs Pgina 28 Linux System Administration 7 create 4Linux www.4linux.com.br 12.4 Configurando o sistema de Logs no 8 # Descomente caso queira compactar os logs em formato .gz cliente (Debian): 9 compress 1 # nestat -lun | grep 514 10 # Todo arquivo dentro deste diret rio ser considerado como uma # Verifique o log: configura o de log rotate . 1 # tail -f /var/log/ tudo .log 11 include /etc/ logrotate .d 12.4.2 Logs Centralizados, configurando um servidor 12 # Configura es para wtmp e btmp de Logs 13 /var/log/ wtmp { 14 missingok (Server CentOS) 15 monthly O CentOS vem com o pacote rsyslog instalado por padro. Pgina 30 Linux System Administration 1 # vim /etc/ sysconfig / rsyslog 4Linux www.4linux.com.br 12.4 Configurando o sistema de Logs no 2 # Acrescente a opo -r cliente (Debian): 3 SYSLOGD_OPTIONS ="-r -m 0" 16 create 0664 root utmp Crie uma entrada para redirecionar os logs para um arquivo: 17 rotate 1 1 # vim /etc/ rsyslog . conf 18 } 2 *.* /var/log/ tudo .log 19 /var/log/ btmp { Reinicialize o servio rsyslog: 20 missingok 1 # /etc/ init .d/ rsyslog stop 21 monthly 22 create 0664 root utmp Verifique que: o arquivo teste.err tem menos de 5M. o arquivo 23 rotate 1 teste.info tem mais de 24 } 5M. 25 # system - specific logs may be configured here Agora, execute o comando logrotate manualmente: Crie uma configurao de logrotate: 1 # logrotate /etc/ logrotate . conf 1 # vim /etc/ logrotate .d/ errors Verifique que o arquivo teste.err foi rotacionado, mas o teste.info Inclua no arquivo o seguinte contedo: no. Isto porque o 1 /var/log/ teste .err /var/log/ teste . info { arquivo teste.info no atingiu os 5M necessrios para o 2 daily rotacionamento. 3 size 5M Pgina 32 Linux System Administration 4 sharedscripts 4Linux www.4linux.com.br 12.4 Configurando o sistema de Logs no 5 postrotate cliente (Debian): 6 /usr/bin/ pkill -1 rsyslog 1 # ls -lh /var/log/ teste * 7 endscript 8 rotate 5 Como forar o rotacionamento dos logs: 9} 1 # logrotate -f /etc/ logrotate . conf /var/log/teste.err /var/log/teste.info - Os arquivos teste.err e Repare que ao forar o rotacionamento com a opo -f todos os teste.info sero logs marcados rotacionados diariamente at 5 vezes, caso o arquivo tenha pelo para rotacionamento foram rotacionados independente do tamanho: 1 # ls -lh /var/log/ teste * menos 5M. daily - O sistema de logs ser dirio. size 5M - Faz a rotao No Debian o arquivo aps o rotacionamento com compresso somente se o recebe a extenso: arquivo alcanar 5M. ".1.gz"No CentOS o arquivo aps o rotacionamento com Linux System Administration Pgina 31 compresso recebe a 12.4 Configurando o sistema de Logs no cliente (Debian): 4Linux extenso: "$date + www.4linux.com.br Linux System Administration Pgina 33 sharedscripts - Marca o incio do bloco de comandos. postrotate - Executa os scripts aps aplicar a rotao aos 000 arquivos. Nome do curso /usr/bin/pkill -1 rsyslog - Envia sinal 1 ao processo rsyslog. endscript - Encerra o bloco de comandos. www.4linux.com.br rotate 5 - Aplica a rotao aos arquivos 5 vezes. Adicione contedo aos arquivos para fazermos testes: Contedo 1 # cat /var/log /* >> /var/log/ teste . err Servidor SSH 2 2 # cat / boot /* >> /var/log/ teste . info 13.1 Introduo Terica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 Podem aparecer mensagens de erros na tela, pois o comando cat 13.1.1 SSH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 no pode visualizar 13.1.2 Chaves de Criptografia Assimtricas . . . . . . . . . . . . . . . . 3 o contedo de diretrios. Para visualizar o tamanho dos arquivos: 13.1.3 Acesso SSH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 1 # du -sh /var/log/ teste .* 13.1.4 Copiando Arquivos Remotos . . . . . . . . . . . . . . . . . . . . 6 13.1.5 Cpia maq_LOCAL para maq_REMOTA . . . . . . . . . . . . . 6 uma vez que eles no utilizam criptografia. 13.1.6 Cpia maq_REMOTA para maq_LOCAL . . . . . . . . . . . . . 6 13.1.2 Chaves de Criptografia Assimtricas 13.1.7 SSH com Chaves Assimtricas . . . . . . . . . . . . . . . . . . . 7 Criar um par de chaves assimtricas tem basicamente duas 13.1.8 Acesso por SSH sem senha com ssh-agent . . . . . . . . . . . . 10 funes: 13.1.9 Configurando o servidor SSH (CentOS): . . . . . . . . . . . . . . 11 3 13.1.10Cpia remota com porta diferente: . . . . . . . . . . . . . . . . . 16 13.1 Introduo Terica 4Linux www.4linux.com.br 13.1.11Tunelamento SSH . . . . . . . . . . . . . . . . . . . . . . . . . . 16 Aumentar o nvel de segurana - definindo uma frase senha; 13.1.12Mensagem em broadcast: wall . . . . . . . . . . . . . . . . . . . 18 Facilitar a execuo de scripts remotamente - no definir uma TCP Wrappers 19 frase senha. 13.2 Introduo Terica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 A criao de chaves assimtricas consiste na gerao de dois 13.2.1 Entendendo o TCP Wrappers . . . . . . . . . . . . . . . . . . . . 20 arquivos que contm 13.2.2 Suporte a TCP/Wrappers . . . . . . . . . . . . . . . . . . . . . . 22 seqncias de caracteres aleatrios (pseudo) e que s tm 2 funcionalidade se os dois trabalharem em conjunto. Ou seja, quando criamos um par de Servidor SSH chaves ser criada 13.1 Introduo Terica uma chave pblica e uma chave privada. A chave privada sua e absolutamente 13.1.1 SSH ningum deve ter acesso a ela; a sua chave pblica voc coloca no Secure Shell ou SSH o conjunto de padres e o protocolo servidor remoto. associado que permite Quando voc tentar estabelecer uma conexo ela s ser possvel estabelecer um canal seguro entre dois computadores. Ele utiliza o se a chave privada sistema de se encaixar na chave pblica. Com esse sistema, existe apenas chave criptogrfica pblica para autenticar um computador remoto, uma nica chave podendo utilizar privada que se encaixa em uma nica chave pblica. esse sistema de chaves, tambm para autenticar usurios. A idia Como s h um par que se completa, apenas quem possuir a chave do SSH prover privada poder confidencialidade e integridade dos dados trocados entre dois estabelecer uma conexo utilizando a respectiva chave pblica. computadores usando Uma ilustrao do criptografia e mensagens de autenticao codificadas (MACs). par de chaves assimtricas pode ser vista na figura: Quando Esse protocolo tipicamente utilizado para conectar-se mquinas criamos um par de chaves remotas e executar assimtricas devemos tomar o cuidado com a chave privada para comandos, entretanto, h inmeras outras funcionalidades como que ningum realizar tunelamentos, tenha acesso a ela. redirecionamento de portas, conexes X11 (interface grfica) alm de 13.1.3 Acesso SSH transferncia de arquivos. 1) Acessando uma mquina remota: Em geral, o SSH utiliza a porta 22/tcp e a alternativa segura ao O SSH possui diversas formas de utilizao; a mais bsica de todas TELNET e FTP serve para estabelecer uma simples shell remota: 4Linux www.4linux.com.br 13.1 Introduo Terica 1 # ssh nome_usuario_remoto@ip_servidor Para copiar diretrio: Ou com a opo -l de login: 1 # scp -r usuario@ip_de_origem ( remoto ):/ diret rio / destino 1 # ssh -l nome_usuario_remoto ip_servidor Copiando arquivo: Pgina 4 Nome do curso 1 # scp aluno@192 .168.0.1:/ home / aluno / arquivo / tmp 4Linux www.4linux.com.br 13.1 Introduo Terica Visualize o arquivo copiado: Outra opo se logar no servidor remoto com o mesmo nome de 1 # ls /tmp usurio que voc Copiando diretrio: est logado, desde que este mesmo usurio exista remotamente: 1 # scp -r aluno@192 .168.0.1:/ home / aluno / diretorio / tmp 1 # ssh ip_servidor Visualize o diretrio copiado: Acessar o servidor por ssh: 1 # ls /tmp 1 # ssh aluno@192 .168.0.1 13.1.7 SSH com Chaves Assimtricas Ou: Quando criarmos o par de chaves assimtricas, ser criado um 1 # ssh -l aluno 192.168.0.1 diretrio /.ssh na Desconecte e conecte-se novamente sem colocar o nome do home do usurio. usurio: Em nossa mquina local, sem ser via ssh, vamos criar o par de 1 # ssh 192.168.0.1 chaves: Determine qual a porta utilizada pelo SSH: Nome do curso Pgina 7 1 # nmap localhost 13.1 Introduo Terica 4Linux www.4linux.com.br A porta padro do ssh a porta 22. Digite uma senha na passphrase, no exemplo colocamos 123456. 2) Execute um comando na mquina remota: 1 # ssh - keygen -t rsa 1 # ssh aluno@192 .168.0.1 ls -l / etc / yum / yum . repos .d 2 Generating public / private rsa key pair . Nome do curso Pgina 5 3 Enter file in which to save the key (/ root /. ssh / id_rsa ): 13.1 Introduo Terica 4Linux www.4linux.com.br 4 Enter passphrase ( empty for no passphrase ): 123456 13.1.4 Copiando Arquivos Remotos 5 Enter same passphrase again : 123456 13.1.5 Cpia maq_LOCAL para maq_REMOTA 6 Your identification has been saved in / root /. ssh / id_rsa . 7 Your public key has been saved in / root /. ssh / id_rsa . pub . Para copiar arquivo: 8 The key fingerprint is: 1 # scp arquivo usuario@ip_de_destino :/ destino 9 c6 :51:3 e :75:0 e :10: b7 :98:5 d:6d :81:5 f:8a:8f :38:2 a root@aula # Para copiar diretrio: 10 The key s randomart image is: 1 # scp -r diret rio usuario@ip_de_destino :/ destino 11 +--[ RSA 2048] - - - -+ Copiando arquivo: 12 | ... Eo+ | 1 # scp / home / aluno / arquivo aluno@192 .168.0.1:/ home / aluno 13 | . . o . o . | Copiando diretrio: 14 | . . . o | 1 # scp -r / home / aluno / diretorio aluno@192 .168.0.1:/ home / aluno 15 | . . + | 13.1.6 Cpia maq_REMOTA para maq_LOCAL 16 |. + o S | Para copiar arquivo: 17 | * . | 1 # scp usuario@ip_de_origem ( remoto ):/ arquivo / destino 18 |. ooo | Pgina 6 Nome do curso 19 | .o+o | 20 | .=+ | 21 +-----------------+ Em resumo, o que o ssh-copy-id faz nada mais do que copiar o Obs.: A passphrase pode ser desde uma senha "normal", com 6 ou contedo do arquivo 12 caracteres, ".ssh/id_rsa.pub", dentro do seu diretrio home, para o arquivo at uma frase complexa, sem limite de tamanho; o importante que ".ssh/authorized_ no seja keys"dentro do diretrio home do servidor remoto, uma operao algo fcil de adivinhar. Caso a passphrase no seja definida o que tambm acesso remoto ser pode ser realizada manualmente em caso de problemas. sem senha. Tente acessar o servidor: A partir da, ao invs de pedir sua senha, o servidor envia um Nome do curso Pgina 9 "desafio"encriptado 13.1 Introduo Terica 4Linux www.4linux.com.br usando a chave pblica. Para respond-lo, o cliente SSH na sua 1 # ssh root@192 .168.0.1 mquina precisa 2 3 Enter passphrase for key / root /. ssh / id_rsa : 123456 usar a chave privada, que por sua vez precisa ser destravada 4 Last login : Tue Jun 14 08:54:15 2011 from 192.168.0.100 usando a passphrase. Pgina 8 Nome do curso 13.1.8 Acesso por SSH sem senha com ssh-agent 4Linux www.4linux.com.br 13.1 Introduo Terica O comando ssh-agent usado para salvar as passphrases na Mesmo que algum consiga roubar sua chave privada, no memria, sem com conseguir conectar sem isso abrir mo da segurana. Ele funciona como uma espcie de saber a passphrase e vice-versa. "cache", onde voc O comando gerar os arquivos ".ssh/id_rsa"e digita a passphrase apenas uma vez e ela fica gravada na memria ".ssh/id_rsa.pub"dentro do seu diretrio at que a sesso home, que so, respectivamente, sua chave privada e sua chave seja encerrada. A segurana no prejudicada, pois a passphrase pblica. O no salva em ".ssh/id_rsa" um arquivo secreto, que deve usar obrigatoriamente o lugar algum, fica apenas armazenada (de forma encriptada) em uma modo de acesso rea protegida "600", para evitar que outros usurios da mquina possam l-lo. de memria, acessvel apenas ao ssh-agent. Ao desligar o micro, Muitos servidores tudo perdido. recusam a conexo caso os arquivos estejam com as permisses 1 # ssh - agent abertas. 2 SSH_AUTH_SOCK =/ tmp/ssh - dSVLR17117 / agent .17117; export 1) Verifique que as chaves foram criadas: SSH_AUTH_SOCK ; 3 SSH_AGENT_PID =17118; export SSH_AGENT_PID ; 1 # ls / root /. ssh 4 echo Agent pid 17118; 2 id_rsa id_rsa .pub known_hosts Depois de gerar seu par de chaves, falta o comando final, que Execute os comandos que exportam as variveis criadas pelo instala a chave pblica comando ssh-agent: 1 # SSH_AUTH_SOCK =/ tmp/ssh - dSVLR17117 / agent .17117; export no servidor, permitindo que ela seja usada para autenticao: SSH_AUTH_SOCK ; 1 # ssh -copy -id -i ~/. ssh/ id_rsa . pub usuario@ip_do_servidor 2 # SSH_AGENT_PID =17118; export SSH_AGENT_PID ; Copiando a chave: Adicione a chave: 1 # ssh -copy -id -i ~/. ssh/ id_rsa . pub root@192 .168.0.1 1 # ssh -add 2 Enter passphrase for / root /. ssh / id_rsa : 123456 10 # OpenSSH is to specify options with their default value where 3 Identity added : / root /. ssh/ id_rsa (/ root /. ssh / id_rsa ) 11 # possible , but leave them commented . Uncommented options change Pgina 10 Nome do curso a 4Linux www.4linux.com.br 13.1 Introduo Terica 12 # default value . Tente acessar o servidor sem colocar a passphrase: 13 1 # ssh root@192 .168.0.1 14 AllowUsers suporte 15 Port 2222 13.1.9 Configurando o servidor SSH (CentOS): 16 # Protocol 2,1 H diversos parmetros de configurao que podem ser alterados 17 Protocol 2 de forma a ajustar 18 # AddressFamily any seus parmetros de funcionamento. 19 # ListenAddress 0.0.0.0 Vamos entender alguns desses parmetros editando o arquivo de 20 # ListenAddress :: configurao do 21 servidor de SSH. Edite o arquivo /etc/ssh/sshd_config: 22 # HostKey for protocol version 1 Alguns parmetros: 23 # HostKey /etc/ssh/ ssh_host_key Keyword Description Default AllowGroups Habilita acesso apenas 24 # HostKeys for protocol version 2 para grupos especificados 25 # HostKey /etc/ssh/ ssh_host_rsa_key 26 # HostKey /etc/ssh/ ssh_host_dsa_key * AllowUsers Habilita acesso apenas para usurios especificados * 27 # Lifetime and size of ephemeral version 1 server key # Deny- KeyRegenerationInterval 1h Groups Nega acesso apenas para grupos especificados none 28 # ServerKeyBits 768 DenyUsers Nega acesso 29 # Logging apenas para usurios especificados none 30 # obsoletes QuietMode and FascistLogging Port - porta de acesso ao ssh 31 # SyslogFacility AUTH PermitRootLogin - habilita/nega acesso do usurio root por ssh 32 SyslogFacility AUTHPRIV X11Forwading - habilita/nega acesso ao X 33 # LogLevel INFO Banner /etc/issue.net - habilita banner do issue.net 34 # Authentication : LoginGraceTime - tempo para se logar no servidor 35 LoginGraceTime 15 Alterando o arquivo: Pgina 12 Nome do curso Nome do curso Pgina 11 4Linux www.4linux.com.br 13.1 Introduo Terica 36 PermitRootLogin no 13.1 Introduo Terica 4Linux www.4linux.com.br 37 # StrictModes yes 1 # vim /etc/ssh/ sshd_config 38 # MaxAuthTries 6 2 # $OpenBSD : sshd_config ,v 1.73 2005/12/06 22:38:28 reyk Exp $ 39 3 40 # RSAAuthentication yes 4# This is the sshd server system - wide configuration file . See 41 # PubkeyAuthentication yes 5# sshd_config (5) for more information . 6 42 # AuthorizedKeysFile .ssh/ authorized_keys 43 7# This sshd was compiled with PATH =/ usr / local / bin :/ bin :/ usr / bin 8 44 # For this to work you will also need host keys in / etc / ssh / 9# The strategy used for options in the default sshd_config shipped ssh_known_hosts with 45 # RhostsRSAAuthentication no 46 # similar for protocol version 2 78 # UsePAM no 47 # HostbasedAuthentication no 79 UsePAM yes 48 # Change to yes if you don t trust ~/. ssh / known_hosts for 80 49 # RhostsRSAAuthentication and HostbasedAuthentication 81 # Accept locale - related environment variables 50 # IgnoreUserKnownHosts no 82 AcceptEnv LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE 51 # Don t read the user s ~/. rhosts and ~/. shosts files LC_MONETARY 52 # IgnoreRhosts yes LC_MESSAGES 53 83 AcceptEnv LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE 54 # To disable tunneled clear text passwords , change to no here ! LC_MEASUREMENT 55 # PasswordAuthentication yes 84 AcceptEnv LC_IDENTIFICATION LC_ALL 56 # PermitEmptyPasswords no 85 # AllowTcpForwarding yes 57 PasswordAuthentication yes 86 # GatewayPorts no 58 # Change to no to disable s/key passwords # 87 # X11Forwarding no ChallengeResponseAuthentication yes 88 X11Forwarding yes 59 ChallengeResponseAuthentication no 89 # X11DisplayOffset 10 60 # Kerberos options 90 # X11UseLocalhost yes 61 # KerberosAuthentication no 91 # PrintMotd yes 62 # KerberosOrLocalPasswd yes 92 # PrintLastLog yes 63 # KerberosTicketCleanup yes 93 # TCPKeepAlive yes 64 # KerberosGetAFSToken no 94 # UseLogin no 65 # GSSAPI options 95 # UsePrivilegeSeparation yes 66 # GSSAPIAuthentication no 96 # PermitUserEnvironment no 67 GSSAPIAuthentication yes 97 # Compression delayed 68 # GSSAPICleanupCredentials yes 98 # ClientAliveInterval 0 69 GSSAPICleanupCredentials yes 99 # ClientAliveCountMax 3 70 # Set this to yes to enable PAM authentication , account processing 100 # ShowPatchLevel no Nome do curso Pgina 13 101 # UseDNS yes 13.1 Introduo Terica 4Linux www.4linux.com.br Pgina 14 Nome do curso , 4Linux www.4linux.com.br 13.1 Introduo Terica 71 # and session processing . If this is enabled , PAM authentication 102 # PidFile /var/run/ sshd .pid will 103 # MaxStartups 10 72 # be allowed through the ChallengeResponseAuthentication mechanism 104 # PermitTunnel no . 105 # ChrootDirectory none 73 # Depending on your PAM configuration , this may bypass the setting 106 # no default banner path of 107 Banner /etc/ issue .net 74 # PasswordAuthentication , PermitEmptyPasswords , and 108 75 # " PermitRootLogin without - password ". If you just want the PAM 109 # override default of no subsystems account and 110 Subsystem sftp /usr/ libexec / openssh /sftp - server 76 # session checks to run without PAM authentication , then enable this Reinicie o servio: but set 1 # service sshd restart 77 # ChallengeResponseAuthentication =no Agora para fazer o acesso da mquina remota ao servidor: 1 # ssh -p 2222 suporte@192 .168.0.1 Pgina 16 Nome do curso Onde: -p identifica a porta 4Linux www.4linux.com.br 13.1 Introduo Terica Como usurio suporte, determine qual a porta utilizada pelo SSH: As duas portas essenciais so a 80, para HTTP e a 443, para 1 $ nmap -sV localhost HTTPS, as quais Agora ele no consegue identificar a porta do ssh, pois voc alterou garantem uma navegao em pginas da Web sem restries. a porta padro, No h necessidade do administrador da rede deixar vrias portas mas ainda existem parmetros do nmap que conseguem identificar: abertas, uma vez 1 $ nmap -p 0 -65535 -sV localhost que conexes indesejadas e que comprometam a segurana da Nome do curso Pgina 15 instituio possam 13.1 Introduo Terica 4Linux www.4linux.com.br ser estabelecidas atravs das mesmas. A opo -p serve para passar um range de portas ou uma porta Contudo, isso compromete a dinamicidade de aplicaes na especfica a ser Internet. Um funcionrio escaneada. ou aluno que queira acessar painis de controle de sites, arquivos Ele ainda no identificou qual o servio est sendo executado na via FTP ou amigos porta, ento coloque via Instant Messengers, por exemplo, no ter a capacidade de a opo -sV para escanear a verso do programa: faz-lo, uma vez que 1 # nmap -sV -p 0 -65535 localhost as respectivas portas para seus funcionamentos esto bloqueadas. -s - escaneia -V - banner(mostra programa e verso) Para quebrar essa imposio rgida, porm necessria, o SSH 13.1.10 Cpia remota com porta diferente: oferece o recurso do 1 # scp -P 2222 arquivo suporte@192 .168.0.1: Tnel. -P - porta Acesse em seu navegador o ip do servidor: Ao no se definir um destino aps os dois pontos : o arquivo ou http://192.168.0.1 diretrio ser Voc ver o site da dexter.com.br. copiado para o diretrio home do usurio remoto. Por ssh vamos criar um tnel com esse servidor e mapear a porta 13.1.11 Tunelamento SSH 80 para a porta Uma forma simples de encriptografar protocolos que em condies 12345 na nossa mquina local: normais no suportam 1 # ssh -Lporta_local : servidor_remoto : porta_remota usu encriptao usar o SSH para criar tneis seguros, ligando uma das rio@servidor_remoto portas Lembre-se que estamos utilizando uma porta diferente da padro, e da sua mquina porta do servidor onde o servio em questo est que o nico ativo. usurio que pode se conectar o aluno: Por exemplo, se algum se encontra dentro de uma instituio cuja 1 # ssh -p 2222 -L12345 :192.168.0.1:80 conexo Internet aluno@IP_DO_SERVIDOR_DEXTER protegida por um firewall que bloqueia determinadas portas de Acesse o site no navegador localmente: http://localhost:12345 conexo, no Nome do curso Pgina 17 13.1 Introduo Terica 4Linux www.4linux.com.br ser possvel, por exemplo, acessar e-mails via POP3, o qual utiliza Para desconectar, deslogue do servidor. a porta 110, nem Outras opes: envi-los via SMTP, pela porta 25. -f - O parmetro -f"dentro do comando faz com que ele seja Nome do curso Pgina 19 executado em background, liberando o terminal depois que a conexo estabelecida. TCP Wrappers -N - O parmetro -N"faz com que o SSH apenas crie o 13.2 Introduo Terica redirecionamento da porta, Os TCP Wrappers so usados para aplicar regras de acesso a sem abrir um terminal do servidor remoto. diversos servios em 13.1.12 Mensagem em broadcast: wall seu servidor, podendo permitir ou negar conexes a eles. Eles so O comando wall envia uma mensagem a todos os usurios logados controlados por no sistema. dois arquivos: /etc/hosts.allow - configurao de acessos Este comando faz a leitura de um arquivo ou entrada padro e permitidos para determinados escreve o resultado IPs e /etc/hosts.deny - configurao de acessos negados para em todos os terminais onde existem usurios conectados. Somente determinados o usurio root IPs. TCP - Sigla para "Transmission Control Protocol". pode utilizar este comando. 13.2.1 Entendendo o TCP Wrappers No confundam o comando wall com o antigo netsend da Existem dezenas de possibilidades de configurao para o Microsoft. A mensagem tcp_wrappers e voc pode broadcast enviada pelo wall, para todos os terminais estud-las em extenso atravs das pginas de manual conectados naquele hosts_access e hosts_options. determinado servidor, enquanto o netsend faz broadcast para Portanto, sero ilustrados apenas alguns casos interessantes do uso todos os endereos desta ferramenta. ativos na rede. As regras de controle de acesso, existentes nestes dois arquivos, Enviando sua mensagem: tm o seguinte 1 # wall formato: 2 minha mensagem 1 lista_de_daemons : lista_de_clientes [: comando ] 3 <ctrl +d><enter > 1- Acesse o servidor por ssh lista_de_daemons: Lista de um ou mais nomes de daemons (como 2- Acesse o diretrio onde ficam as imagens do site da aula: especificados /var/www/intranet/- no /etc/inetd.conf), ou curingas. 20 menu 4Linux www.4linux.com.br 13.2 Introduo Terica Pgina 18 Nome do curso lista_de_clientes: Lista de um ou mais endereos ou nomes de 4Linux www.4linux.com.br 13.1 Introduo Terica 3- Renomeie o arquivo home.png para home.original.png mquinas, padres 4- copie uma imagem do cliente para o servidor e substitua a ou curingas utilizados para especificar quais clientes podem e quais imagem do home: arquivo no podem acessar a ser copiado: /usr/share/images/desktop-base/gnome-foot.png o servio. salve o arquivo comando (opcional): possvel executar um comando sempre que com o nome de home.png uma regra casa 5- Acesse o site e verifique se o cone para ir para o home mudou. com um padro e utilizada. Veja exemplos a seguir: ao 192.168.220.255). Como citado anteriormente, curingas podem ser utilizados tanto na Nome do curso Pgina 21 lista de daemons 13.2 Introduo Terica 4Linux www.4linux.com.br quanto na lista de clientes. Entre os existentes, pode-se destacar os Alm destes mtodos, possvel identificar um cliente atravs do seguintes: IP/mscara de ALL - Significa todos os servios ou todos os clientes, dependendo rede. Voc pode especificar, por exemplo, apenas do campo 192.168.220.0/255.255.255.128, e qualquer em que se encontra. mquina com endereo IP entre 192.168.220.0 e 192.168.220.127 LOCAL - Este curinga casa com qualquer nome de mquina que casaria com no contenha um o padro. caractere ponto ., isto , uma mquina local. 13.2.2 Suporte a TCP/Wrappers PARANOID - Casa com qualquer nome de mquina que no case Para saber se um servio tem suporte a TCP/Wrappers verifique com seu endereo. suas bibliotecas: Isto geralmente ocorre quando algum servidor DNS est mal 1 # which sshd configurado ou quando 2 # ldd /usr/ sbin / sshd alguma mquina est tentando se passar por outra. A existncia da libwrap confirma o suporte a TCP/Wrappers: Na lista de clientes podem ser utilizados nomes ou endereos de 1 libwrap .so .0 => /lib/ libwrap .so .0 (0 xb7ef7000 ) mquinas, ou ento Bloqueie todos os acessos ao seu servidor por ssh: padres que especificam um conjunto de mquinas. Se a cadeia de 1 # vim /etc/ hosts . deny caracteres que 2 sshd : ALL identifica um cliente inicia com um ponto ., um nome de mquina Tente acessar seu servidor CentOS por ssh a partir da mquina ir casar com Debian: 1 # ssh -p 2222 192.168.0.1 este padro sempre que o final desse nome casar com o padro No possvel devido a regra do TCP/Wrappers. Libere o acesso especificado. Por ssh ao seu servidor exemplo, se fosse utilizada a cadeia de caracteres CentOS apenas para seu cliente Debian: .minhaorganizao, o nome de Pgina 22 Nome do curso mquina server.minhaorganizao casaria com o padro. 4Linux www.4linux.com.br 13.2 Introduo Terica Similarmente, se a cadeia de caracteres termina com um ponto ., 1 # vim /etc/ hosts . allow um endereo de 2 sshd : 192.168.0.100 mquina ir casar com o padro quando seus campos numricos Acesse seu servidor CentOS por ssh a partir da mquina Debian: iniciais casarem 1 # ssh -p 2222 192.168.0.1 com a cadeia de caracteres especificada. Para exemplificar, se Nome do curso Pgina 23 fosse utilizada a cadeia de caracteres 192.168.220., todas as mquinas que tenham 4451 um endereo IP que inicie com estes 3 conjuntos de nmeros iro casar com o Linux System Administration padro (192.168.220.0 www.4linux.com.br Encriptar ou cifrar so termos usados para descrever a Contedo transformao de informaes Introduo ao uso do GPG 2 legveis/teis em dados embaralhados (sem sentido), que no se 14.1 Introduo terica sobre criptografia . . . . . . . . . . . . . . . . . . . . 3 aproveita. 14.2 Caractersticas da criptografia simtrica . . . . . . . . . . . . . . . . . . Decriptar ou decifrar so termos usados para descrever a 4 transforamo de informaes 14.3 Caractersticas da criptografia assimtrica . . . . . . . . . . . . . . . . 4 sem sentido (embaralhadas) em informaes legveis/teis. 14.4 GNUPG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 3 14.5 Gerando chaves . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 14.2 Caractersticas da criptografia simtrica 4Linux www.4linux.com.br 14.6 Exportando uma chave pblica . . . . . . . . . . . . . . . . . . . . . . . 9 14.2 Caractersticas da criptografia simtrica 14.7 Dica de segurana . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 Simples e til; 14.8 Importado uma chave pblica . . . . . . . . . . . . . . . . . . . . . . . 11 Cobre situaes nas quais uma parte esteja envolvida; 14.9 Encriptar arquivos com GPG . . . . . . . . . . . . . . . . . . . . . . . . 13 A pessoa que encripta a mesma que decripta. 14.10Decriptar arquivos com GPG . . . . . . . . . . . . . . . . . . . . . . . . 13 Exemplos de Algoritmos Simtricos: 14.11Criando assinaturas com GPG . . . . . . . . . . . . . . . . . . . . . . . 14 (Advanced Encryption Standard): Est presente nos softwares 2 BitLocker, Introduo ao uso do GPG WinZip, no padro WPA2 etc; DES: Algoritimo criado pela IBM; 14.1 Introduo terica sobre criptografia IDEA :International Data Encryption Algorithm O que criptografia? Blowfish: Elaborado por Bruce Schneier em 1993, leva o nome de Criptografia o estudo dos princpios e tcnicas pelas quais a um peixe informao pode ser que no Brasil conhecido como baiacu transformada da sua forma original para outra ilegvel, de forma que 14.3 Caractersticas da criptografia possa ser conhecida apenas por seu destinatrio (detentor da "chave secreta"), o que a assimtrica torna Proporciona privacidade e autenticidade; difcil de ser lida por algum no autorizado. teis na troca de e-mail; Assim sendo, s o receptor da mensagem pode ler a informao Seu uso exige que cada um dos lados possua um par chaves: uma com facilidade. A pblica e quem interessa a criptografia e quem contribuiu e contribui para ela outra privada evoluir? Militares, Diferena entre Chave Pblica e Privada Pgina 4 Linux System Administration diplomatas e pessoas que precisam guardar segredos e at 4Linux www.4linux.com.br 14.3 Caractersticas da criptografia amantes. assimtrica O que simetria? A chave pblica de um usurio de e-mail deve ser de conhecimento Simetria se refere igualdade de propriedades existente entre dois das pessoas lados opostos de que lhe desejam enviar mensagens. Voc pode disponibilizar uma mesma situao. publicamente, sem problemas. Funes hash MD5 e SHA; A chave privada deve sempre ser de conhecimento exclusivo do ZIP, ZLIB e BZIP2 para compresso dono. Tome muito Certifique-se que este pacote esteja instalado na sua distribuio. cuidado para que ningum tome posse de sua chave privada! A par Para instalar no Debian: de chaves do 1 # aptitude install gnupg remetente confere autenticidade, isto , atribui legitimidade s Para instalar no CentOS: informaes trocadas 1 # yum install gnupg entre partes diferentes. A par de chaves do destinatrio confere Para verificar a verso do GnuPG (Debian e CentOS) privacidade, isto , 1 # gpg -- version atribui sigilo s informaes trocadas entre partes distintas. 2 gpg ( GnuPG ) 1.4.10 3 Copyright (C) 2008 Free Software Foundation , Inc . Logo, entre os interlocutores, o uso das duas chaves leva em conta 4 License GPLv3 +: GNU GPL version 3 or later <http :// gnu . org / que cada um licenses / possua a chave pblica do outro. gpl.html > Mas afinal o que esta tal chave? Pgina 6 Linux System Administration Seria uma senha grande ou um parmetro para se encriptar e 4Linux www.4linux.com.br 14.5 Gerando chaves decriptar informaes. 5 This is free software : you are free to change and redistribute it. E qual deve ser o tamanho da chave em bits? 6 There is NO WARRANTY , to the extent permitted by law . Isto relativo e deve ser levado em conta os seguintes fatores: 7 Produtividade; 8 Home : ~/. gnupg Segurana 9 Algoritmos suportados : 10 Chave p blica : RSA , RSA -E, RSA -S, ELG -E, DSA Chaves com 512 bits oferecem melhor desempenho nas operaes 11 Cifra : 3DES , CAST5 , BLOWFISH , AES , AES192 , AES256 , criptogrficas, TWOFISH , mas so facilmente quebradas. O uso de chaves grandes causa CAMELLIA128 , lentido, mas proporciona 12 CAMELLIA192 , CAMELLIA256 muita segurana. 13 Dispers o: MD5 , SHA1 , RIPEMD160 , SHA256 , SHA384 , SHA512 , Qual seria o tamanho "ideal"? SHA224 1024 bits ou 2048 bits para os mais "precavidos". 14 Compress o: Uncompressed , ZIP , ZLIB , BZIP2 Linux System Administration Pgina 5 14.5 Gerando chaves 14.4 GNUPG 4Linux www.4linux.com.br Acesse a maquina Debian com um usurio comum, e digite o 14.4 GNUPG comando abaixo para Vamos utililizar o software gnup. O gnupg licenciado pela GPL e gerar a chave pblica e privada. pode ser usado 1 $ gpg --gen -key tanto no Linux, quanto no Windows e MAC OS X. O gnupg trabalha 2 gpg ( GnuPG ) 1.4.10; Copyright (C) 2008 Free Software Foundation , Inc com critografia . simtrica e assimtrica. Os algoritmos que o gnupg utiliza so: 3 This is free software : you are free to change and redistribute it. RSA para criptografia assimtrica; 4 There is NO WARRANTY , to the extent permitted by law . TripleDES, AES e Blowfish; A utilizar o comando o diretrio oculto .gnupg sera criado na home Digite a frase secreta e em seguida confirme a mesma do usurio logado. No h bytes aleatrios suficientes. Por favor, faa algum outro 1 gpg: directory / home / aluno /. gnupg created trabalho para que o As chaves pblica e privada sero criadas com os nomes sistema possa coletar mais entropia! (So necessrios mais 276 "pubring.gpg"e "secring.gpg". bytes) Linux System Administration Pgina 7 Agora o gpg far vrios clculos para gerar uma chave pblica 14.5 Gerando chaves 4Linux www.4linux.com.br e uma privada. 1 gpg: porta - chaves / home / aluno /. gnupg / secring .gpg criado Abra outro terminal com usurio root, e digite comandos de 2 gpg: porta - chaves / home / aluno /. gnupg / pubring .gpg criado pesquisa e listagem Varias perguntas sero feitas durante a criao do par de chaves. de arquivos para gerar mais entropia Responda com as gpg: /home/aluno/.gnupg/trustdb.gpg: banco de dados de seguintes opes: confiabilidade criado gpg: Por favor selecione o tipo de chave desejado: key B28CCB9D marked as ultimately trusted chaves pblica e Tecle 2 para selecionar DSA usada para assinaturas digitais e privada criadas e assinadas. Elgamal usada gpg: a verificar a base de dados de confiana gpg: 3 marginal(s) para conferir privacidade s comunicaes. needed, 1 complete( DSA keys may be between 1024 and 3072 bits long. s) needed, PGP trust model gpg: depth: 0 valid: 1 signed: 0 trust: 0-, Tecle 1024 para selecionar o tamanho da chave 0q, Por favor especifique por quanto tempo a chave deve ser vlida. 0n, 0m, 0f, 1u gpg: proxima verificao da base de dados de Tecle 1y para definir o tempo de renovao das chaves por 1 confiana a 2013-07- ano 12 pub 1024D/B28CCB9D 2012-07-12 [expires: 2013-07-12] Key Is this correct? (y/N) fingerprint = A125 Tecle y para confirmar a informao D989 0EFC 74E2 6ED2 D309 3FC5 09C6 B28C CB9D uid Aluno You need a user ID to identify your key; the software constructs the Linux Administration user ID from the (Maquina Debian) <aluno@dexter.com.br> sub 1024g/A40A66E8 Real Name, Comment and Email Address in this form: "Heinrich 2012-07-12 Heine (Der Dichter) [expires: 2013-07-12] <heinrichh@duesseldorf.de>" Nome completo: Aluno Linux Administration 14.6 Exportando uma chave pblica Endereo de correio eletrnico: aluno@dexter.com.br Para exportar a chave pblica do usurio para um arquivo, utilizae o Comentrio: Maquina Debian comando abaixo Pgina 8 Linux System Administration com o usurio comum: 4Linux www.4linux.com.br 14.6 Exportando uma chave pblica Linux System Administration Pgina 9 Voc selecionou este identificador de usurio: "Aluno Linux 14.6 Exportando uma chave pblica 4Linux www.4linux.com.br Administration (Maquina 1 $ gpg --armor -- output " chave_publica_aluno . txt " -- export " Debian) <aluno@dexter.com.br>" aluno@dexter .com.br" Muda (N)ome, (C)omentrio, (E)ndereo ou (O)k/(S)air? O Visualize o contedo do arquivo que contm a chave pblica atravs Voc precisa de uma frase secreta para proteger sua chave. do comando cat: 21 6 lwIu3m +/ 1 $ cat chave_publica_aluno .txt MCrUD8e5a3E7bqbkXPo3w48X1k4MtzgyUMhygVNaDd9b3CTcWlk6JnV 2 ----- BEGIN PGP PUBLIC KEY BLOCK ----- 22 5 y5yXYbU9BxABJv + 3 Version : GnuPG v1 .4.10 (GNU/ Linux ) TTJbwg5tHdiXcl6lFPkUeR1kdjmu1Rux6Sv7uD4siRz5m6uv 4 23 ZpOITwQYEQIADwUCT /8 B3QIbDAUJAeEzgAAKCRA / 5 mQGiBE // Ad0RBADlzDbqxM5Bqfqq2tq / xQnGsozLnQP / AKCtFY87vAfc LIVO1pYHPOvn43OoVBSvbHyvNcGb0TGX 24 PeW/ Oy8gsaa6igw7UgCfYMnwny2z1EeXQE / h9NssRF9dyCk = 6 Nw9bZ8oroYB / 25 = utVZ I5705zqLRQjuy7G090u6sMjbg6U5e9GHSTrTy6YxQ3LZ5ZftJXgO 26 -----END PGP PUBLIC KEY BLOCK ----- 7 p9awnnYv6ke2hTFhfRg53hVAL17N86QVomfNWJjEk0DKf + Pgina 10 Linux System Administration aeYZgIHMTvXwCgsykb 4Linux www.4linux.com.br 14.7 Dica de segurana 8 M34ZOUJbISJBW4SgcQiHTmUD / j0PeL1d0I4ekhGQcp5oENoePz8ZJNhZe / f3OTg2 14.7 Dica de segurana 9 Os arquivos pubring.gpg, secring.gpg e trustdb.gpg guardam chaves qmtbeFWSqEQXNfrRXoc0eCfvIuk93TIpMYOFwUHssKIILrLwSAiat6AMcH e informaes xpFTjK referentes ao par. Guarde a cpia em um local de difcil acesso. 10 dxdbWcHNBr9OO + ddrsMVVe03jSkbX6rdd +271 NcsAl + Faa uma cpia dos arquivos do diretrio /.gnupg qzYN9ezUdDTv8iLacp +1o 1 $ ls . gnupg / 11 REMtBACZ +ss+ iMIU0mvnH33qoXTEz9boo + 2 gpg. conf pubring .gpg pubring . gpg ~ random_seed secring . gpg Or0LEKHqYwppZn3p5GwnBxebOAMEa / trustdb .gpg 12 + OqZx2oANPj0EoP0QAV1f7I2sNSf + h1v4 +OP/ Compatibilidade: O gnupg gera arquivos com extenso .gpg uWCpcYpzfXmSGovcm0K0bLnycAW quando encripta. Um 13 programa proprietrio gera um arquivo com extenso .pgp. IGQ90uJXQ5Ze3pW5WOmL3NFJ1olRezbcAqT5Z1qmcoAQnD6mC7RBQ Wx1bm8gTGlu 14.8 Importado uma chave pblica 14 Acesse a maquina CentOS com um usurio comum (diferente do dXggQWRtaW5pc3RyYXRpb24gKE1hcXVpbmEgRGViaWFuKSA8YWx1b aluno) e repita os m9AZGV4dGVy procedimentos da sesso "Gerando chaves", alterando as seguintes 15 LmNvbS5icj6IaAQTEQIAKAUCT /8 informaes: B3QIbAwUJAeEzgAYLCQgHAwIGFQgCCQoLBBYC Nome completo 16 AwECHgECF4AACgkQP8UJxrKMy516YwCggwMGttnNbIqmrUYKx6NdRy Endereo de correio eletrnico Ma13YAn0nM Comentrio 17 hzMZgZmqQyvlWNn7iECMFY1ZuQENBE // Ad0QBADdQ8GM1hh9 + Na maquina CentOS envie para o usurio Aluno da maquina ilWnSfoavffSMqd Debian, o arquivo da 18 1 tn69uBpEmGju2f + j92qY2 / wZWeiYTCYZvU6Tlfjqk6 + chave pblica atravs do comando scp: OcozdyInpnhVXHHCodmN 1 $ scp chave_publica_user_centos . txt aluno@192 .168.200.1: 19 HSuJKFDd2T + Linux System Administration Pgina 11 gG85MI4yqI95AXgHgVbOZX9U1WacMmcAIDBmVlpPunZ3E3dxijd6w 14.8 Importado uma chave pblica 4Linux www.4linux.com.br 20 yCvWF5mOcFiFNCtoowADBgQAvTjy8D5ANTyvTb4EAz9w4J + Na maquina Debian, importe a chave de usurio do CentOS atravs n40zlgebUVJ45f7eU do comando: 1 $ gpg -- import chave_publica_user_centos . txt 1 $ ls Para listar as chaves importadas use o comando: 2 lista_secreta .txt lista_secreta . txt . gpg 1 $ gpg --list - keys Linux System Administration Pgina 13 Depois de adicionar o destinatrio, defina a autenticidade associada 14.11 Criando assinaturas com GPG 4Linux www.4linux.com.br aquela chave 14.11 Criando assinaturas com GPG (o grau de confiana): Cenrio: Vamos supor que voc quer enviar um arquivo de texto e 1 $ gpg --edit -key "Tux CentOS " que o destinatrio Use o comando "trust"para definir o grau de confiana): deseja uma prova sua de que realmente foi voc quem enviou. Uma 1 Command > trust assinatura no Please decide how far you trust this user to correctly verify other basta, ainda mais em um texto. users keys (by Crie um arquivo chamado aviso.txt e digite uma frase: looking at passports, checking fingerprints from different sources, 1 $ echo "Sua frase aqui " > aviso . txt etc.) Use o comando gpg para assinar um arquivo com a opo Tecle 5 para definir que Confia totalmente clearsign: Para sair da edio da chave use o comando quit: 1 $ gpg -- clearsign aviso .txt 1 Command > quit 2 Enter passphrase : Pgina 12 Linux System Administration Liste o contedo do diretrio para verificar o arquivo original (.txt) e o 4Linux www.4linux.com.br 14.9 Encriptar arquivos com GPG arquivo assinado 14.9 Encriptar arquivos com GPG (.asc) Antes de enviar um arquivo ao usurio que importou sua chave 1 $ ls pblica, garanta a 2 aviso .txt aviso .txt.asc segurana na troca de informaes encriptando o arquivo com o Visualize o contedo do arquivo assinado: comando GPG. 1 $ cat aviso .txt.asc Na maquina Debian, use o comando abaixo para encriptar o arquivo 2 ----- BEGIN PGP SIGNED MESSAGE ----- 3 Hash : SHA1 lista_secreta.txt 4 Sua frase aqui usando a chave pblica do usurio do CentOS: 5 ----- BEGIN PGP SIGNATURE ----- 1 $ gpg -- recipient "Tux CentOS " -- output " lista_secreta . txt . gpg " -- 6 Version : GnuPG v1 .4.10 (GNU/ Linux ) encrypt " lista_secreta .txt " Pgina 14 Linux System Administration Envie o arquivo encriptado ao usurio da maquina CentOS: 4Linux www.4linux.com.br 14.11 Criando assinaturas com GPG 1 $ scp lista_secreta .txt.gpg tux@192 .168.200.2: 7 iEYEARECAAYFAkv +2 14.10 Decriptar arquivos com GPG y4ACgkQixXsqYEooo6D2QCfYSwOZE3Yy6LlXeYspLxrOdw9e1cAoKpPC Na maquina CentOS, use o comando abaixo para decriptar o AoSDYZYY / arquivo lista_secreta.txt.gpg, c8BkC9SzY + gk0P = DDzt 8 -----END PGP SIGNATURE ----- informando sua frase secretao: 1 $ gpg --decrypt - files " lista_secreta . txt . gpg " O arquivo "arquivo.txt.asc"est pronto para ser enviado, mas no 2 Enter passphrase : est encriptado. Para verificar se ocorreu tudo com sucesso, liste o contedo do Se ele no est encriptado, falta privacidade ou autenticidade? diretrio Privacidade. Se o arquivo j est assinado, existe sim autenticidade. Agora, eu posso operacional GNU/Linux. Ele fica entre os programas de usurio e o disponibilizar o hardware do sistema. arquivo assinado no servidor de arquivos que Maria tem acesso ou o kernel quem fornece suporte ao hardware, protocolos e alguns enviar por email softwares. como anexo. Vimos no captulo de Mdulos que kerneis genricos baseiam-se Ou pode enviar o contedo do arquivo no corpo de uma mensagem, na utilizao de mas alguns mdulos, ou seja, o desenvolvedor compila um kernel bsico e clientes de e-mail tem problemas de codificao e isto pode gerar compila todo o resto erros. O Gmail por em forma de mdulos, de maneira que todos os suportes adicionais exemplo utiliza a codificao UTF-8. sejam adicionados O outro usurio ao receber o arquivo testar a assinatura com o de forma modular. comando: Quando compilamos um kernel, a idia torn-lo mais enxuto e 1 $ gpg -- verify " aviso .txt.asc " seguro. Frequentemente 2 gpg: Signature made Thu 12 Jul 2012 21:11:54 PM BRT using DSA key seremos forados a realizar uma compilao a fim de adicionar o ID suporte a 8128 A28E Good signature from " Tux CentOS ( Maquina alguma funcionalidade que no veio habilitada por padro. CentOS ) De certa forma, queremos passar de um esquema modular a um 3 gpg: <tux@dexter .com.br >" esquema em que Linux System Administration Pgina 15 a maioria, se no todas, as funcionalidades que iremos utilizar 4451 estejam built-in no kernel, ou seja, no modular, como pode ser visto na figura abaixo. Linux System Administration 3 www.4linux.com.br 15.1 Introduo Terica 4Linux www.4linux.com.br A perfeio seria ter um kernel bem compilado contendo apenas o Contedo conjunto de partes estritamente necessrias ao funcionamento do nosso servidor e no Compilao do Kernel 2 ter nenhum 15.1 Introduo Terica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 mdulo externo compilado. Retiraramos at o suporte a carregar 15.2 Introduo ao Kernel verso 3 . . . . . . . . . . . . . . . . . . . . . . . 5 mdulos. 15.3 Funcionalidades do Kernel 3.3 . . . . . . . . . . . . . . . . . . . . . . . 5 Configurar um kernel manualmente frequentemente tido como o 15.4 Conhecendo o hardware da maquina . . . . . . . . . . . . . . . . . . . 7 procedimento 15.5 Configurar, compilar e instalar o Kernel . . . . . . . . . . . . . . . . . . 9 mais difcil que um usurio de Gnu/Linux tem que fazer. Isso no 2 bem verdade, Compilao do Kernel depois de configurar uns dez kerneis voc nem lembrar que foi difcil :) Como tudo 15.1 Introduo Terica na vida mais uma questo de prtica do que de inteligncia. O centro atravs do qual todas distribuies so construdas o No entanto, uma coisa verdade: voc deve conhecer muito bem kernel do sistema seu sistema quando voc comear a configurar o kernel manualmente. A maior e re-striping ao sistema de arquivos Btrfs, permitindo que a migrao parte das informaes de pode ser obtida utilizando o comando lspci. RAIDs criados com o Btrfs seja pausada, cancelada e reiniciada Pgina 4 Linux System Administration aps uma falha. 4Linux www.4linux.com.br 15.2 Introduo ao Kernel verso 3 Fuso com o projeto Android 15.2 Introduo ao Kernel verso 3 A fuso entre o Kernel Linux e o kernel modificado do Android, se A verso 3 do kernel foi lanada em 22 de Julho de 2011 em torna realidade comemorao aos nesta verso, trazendo melhorias para ambos os projetos onde 20 anos do Linux, com alteraes bastante tcnicas incluindo proporciona a melhora suporte a mais dispositivos, do suporte do sistema operacional em outras plataformas ou at reduo na fragmentao no sistema de arquivos Btrfs e um mesmo rodar backend de aplicativos dele usando o Kernel Linux. armazenamento para o Xen. Outras mudanas aparecem com Melhor ligao em interfaces de redes suporte mais amplo H um novo dispositivo que combina mltiplos dispositivos Ethernet a placas de rede wireless, webcams, e at mesmo o Kinect da em um nico Microsoft. dispositivo virtual. Este dispositivo de rede virtual pode usar a A verso 3.0 teve seu lanamento com 14,647,033 linhas de cdigo, tcnica Round-Robin diferente de para dividir o trfego de rede entre as mltiplas portas; outras verses, como pode ser comparada na lista abaixo: alternativamente, uma porta Verso 1.0.0: 176,250 linnhas de cdigo; designada de "backup ativo"pode assumir a conexo caso ocorram Verso 2.2.0: 1,800,847 linhas de cdigo; problemas com Verso 2.4.0: 3,377,902 linhas de cdigo; a conexo primria de rede. Verso 2.6.0: 5,929,913 linhas de cdigo; Open VSwitch Verso 3.0: 14,647,033 linhas de cdigo. O Open vswitch uma implementao de software de um switch de rede de mltiplas 15.3 Funcionalidades do Kernel 3.3 camadas, onde est sendo mesclado na rvore principal do Kernel. Quais so as novas funcionalidades do Kernel 3.3? Esta implementao A verso 3.3 do Kernel trouxe muitas novidades significativas, e projetada para cenrios mais complexos, e especialmente para ser esta a verso usado que sera instalada em nossa pratica. Acompanhe abaixo um resumo como um vswitch em ambientes de servidores virtualizados. de algumas Suporte a drivers novidades: Esta verso teve uma reviso melhorada no suporte do Kernel Suporte melhorado a sistemas de arquivos (hardware), para que Linux System Administration Pgina 5 houvesse progresso nos drivers de cdigo aberto para a 15.3 Funcionalidades do Kernel 3.3 4Linux www.4linux.com.br processadores AMD, Intel e Redimensionamento do sistema de arquivos Ext4 mais inteligente e processadores grficos NVIDIA. suporte a balanceamento Suporte de inicializao EFI Esta verso apresenta um esboo de inicializao EFI que permite 2 # lsusb que uma ima- Pgina 8 Linux System Administration Pgina 6 Linux System Administration 4Linux www.4linux.com.br 15.5 Configurar, compilar e instalar o Kernel 4Linux www.4linux.com.br 15.4 Conhecendo o hardware da maquina 15.5 Configurar, compilar e instalar o Kernel gem bzImage x86, seja carregada e executada diretamente pelo Agora que voc sabe as novidades do Kernel 3.3 e tem firmware do EFI. O conhecimento do hardware bzImage aparece para o firmware como uma aplicao EFI. Tanto a da maquina, vamos colocar em pratica a implementao da verso 3 BIOS e gerenciadores do Kernel. O de inicializao EFI podem carregar e executar a mesma bzImage, download sera feito no endereo do kernel.org, e a distribuio permitindo usada sera o Debian que uma nica imagem de kernel possa trabalhar em qualquer 6. ambiente de inicializao. Antes de compilar qualquer verso do Kernel, comece instalando os 15.4 Conhecendo o hardware da maquina pacotes abaixo Vamos conhecer um pouco do hardware antes de iniciarmos a para resolver as dependncias durante a compilao. configurao do kernel: 1 # aptitude install make gcc g++ autoconf libncurses5 libncurses5 - dev 1# cat / proc / interrupts ncurses - base ncurses -bin ncurses - term 2# cat / proc / ioports 1 # yum install ncurses - devel 3# cat / proc / meminfo 2 # yum groupinstall " Development Tools " 4# cat / proc / cpuinfo O proximo passo para compilarmos um kernel fazer o download Dica LPI: Lembre-se: de seu cdigo /proc/interrupts - contm as informaes dos canais IRQ; fonte a partir do site: /proc/ioports - contm as informaes Input/Output; http://www.kernel.org /proc/meminfo - contm informaes da memria; Linux System Administration Pgina 9 /proc/cpuinfo - contm informaes do processador; 15.5 Configurar, compilar e instalar o Kernel 4Linux www.4linux.com.br /proc/mtab - contm informaes dos diretrios que esto montados; Seguindo a FHS acesse o diretrio /usr/src para baixar a fonte do /proc/swaps - contm informaes dos swaps em uso; Kernel. Linux System Administration Pgina 7 1 # cd /usr/src/ 15.4 Conhecendo o hardware da maquina 4Linux www.4linux.com.br Use o comando wget e baixe a verso 3.3.3 usando o endereo /proc/dma - contm informaes dos canais de DMA em uso; abaixo: /proc/filesystems - contm informaes dos sistemas de arquivos; 1 # wget -c http :// www. kernel .org / pub / linux / kernel /v3 .0/ linux -3.3.3. /proc/modules - contm informaes dos mdulos carregados; tar.bz2 Para obtermos informaes a respeito dos componentes PCI e Para desempacotar e descompactar use o comando tar no arquivo USB conectados baixado 1 # tar jxvf linux -3.3.3. tar.bz2 mquina devemos instalar dois programas o lscpi e o lsusb: 1 # aptitude install pciutils usbutils Crie um link simblico padronizando o nome linux como fonte do 1 # yum install pciutils usbutils Kernel Veja os dispositivos PCI e USB conectados mquina: 1 # ln -s /usr/src/linux -3.3.3 / usr / src / linux 1 # lspci 2 # cd linux Um passo extremamente importante antes de configurar o nosso A interface de configurao fornece uma estrutura de menus e sub- kernel sempre menus nos quais adicionar uma EXTRAVERSION afim de organizar uma eventual devemos navegar afim de selecionar as opes que desejamos estrutura de mdulos adicionar, remover no /lib. ou compilar como mdulos. Utilize o comando date para gerar uma string de extraversion: Aps salvar as configuraes, podemos visualizar o arquivo gerado 1 # date +" -%Y%m%dc1" e copi-lo para 2 -20120725 c1 um lugar seguro: Adicione essa string varivel EXTRAVERSION na Makefile do 1 # less . config kernel: Pgina 12 Linux System Administration Pgina 10 Linux System Administration 4Linux www.4linux.com.br 15.5 Configurar, compilar e instalar o Kernel 4Linux www.4linux.com.br 15.5 Configurar, compilar e instalar o Kernel 2 # cp . config / boot /config -3.3.3 -20120725 c1 1 # cd /usr/src/linux -3.3.3 Agora que est tudo pronto, vamos compilar o kernel: 2 # vim Makefile 1 # make CONFIG_DEBUG_SECTION_MISMATCH =y 3 EXTRAVERSION = -20120725 c1 Dica: Caso seu processador possua varios ncleos otimize a Veja as opes da Makefile do kernel: compilao atravs da 1 # make help flag -j. Exemplo: Maneiras de configurar o kernel: 1 # make CONFIG_DEBUG_SECTION_MISMATCH =y -j4 make menuconfig: Escolha de opes usando interface ncurses; -j4: Executa a compilao do kernel em quatro processos make config: Configurao a base de perguntas e respostas no simultneos! terminal; Aps compilar o kernel e seus mdulos, vamos copiar os mdulos make xconfig: Configurao modo grfico feito em QT ; para o diretrio make gconfig: Configurao modo grfico feito em GTK; apropriado em /lib/modules: make localmodconfig: Configurao a base de perguntas e 1 # make modules respostas no terminal, 2 # make modules_install onde possvel retirar mdulos no utilizados do seu kernel! Dica LPI: O Processo de compilao do kernel: make ; make Se essa no for a primeira compilao desse kernel, sempre modules_ recomendado realizar install uma limpeza no diretrio do fonte do kernel: Depois de compilado o kernel, ser gerado um arquivo da imagem 1 # make mrproper (o bzImage) no mrproper -> remove todos arquivos gerados pelo comando make + diretrio /usr/src/linux-3.3.3/arch/XXX/boot. arquivo config + Onde XXX a arquitetura da mquina. vrios arquivos de backup Copie-o para o diretrio /boot, com o nome de vmlinuz, este o Inicie o processo de configurao do kernel: nome dado ao Linux System Administration Pgina 11 kernel: 15.5 Configurar, compilar e instalar o Kernel 4Linux www.4linux.com.br Linux System Administration Pgina 13 1 # make menuconfig 15.5 Configurar, compilar e instalar o Kernel 4Linux www.4linux.com.br 1 # cd arch / i386 / boot / 2 # file bzImage 16.2.1 Melhorias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 3 # cp bzImage / boot / vmlinuz -3.3.3 -20120725 c1 16.2.2 GRUB vs GRUB2 . . . . . . . . . . . . . . . . . . . . . . . . . . 14 Se o nosso kernel tiver sido compilado com mdulos que sejam 16.2.3 Hierarquia de arquivos e diretrios . . . . . . . . . . . . . . . . . 15 extremamente 16.2.4 Configurao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 necessrios durante o boot, ser necessrio criar uma imagem de 16.2.5 Entradas personalizadas . . . . . . . . . . . . . . . . . . . . . . 19 boot. 16.2.6 Criando menus personalizados . . . . . . . . . . . . . . . . . . . 21 Para isso, precisamos instalar o seguinte pacote no Debian: 16.2.7 Regras para construo de menuentry . . . . . . . . . . . . . . . 22 1 # aptitude install initramfs - tools 16.2.8 Configurando fonte e cores . . . . . . . . . . . . . . . . . . . . . 23 Agora devemos construir nosso arquivo initrd no /boot: 16.2.9 Segurana no grub2 . . . . . . . . . . . . . . . . . . . . . . . . . 24 1 # mkinitramfs -o / boot / initrd .img -3.3.3 -20120725 c1 / lib / modules 16.3 Colocar Imagem no Grub2 . . . . . . . . . . . . . . . . . . . . . . . . . 25 /3.3.3 -20120725 c1 16.4 Atualizando novas entradas no menu . . . . . . . . . . . . . . . . . . . 1 # mkinitrd / boot /initrd -3.3.3 -20120725 c1. img / lib / modules 26 /3.3.3 -20120725 c1 2 Pgina 14 Linux System Administration 4Linux www.4linux.com.br 15.5 Configurar, compilar e instalar o Kernel Feitos esses procedimentos devemos configurar o nosso Boot Gerenciadores de Boot Loader. 16.1 Introduo Terica Esta parte mais simples! Se o Kernel tem o nome vmlinuz-verso Um bootloader o software responsvel por carregar o sistema no diretrio /boot. operacional durante Aos invs de criar uma configurao manual com a entrada do a inicializao do sistema. H vrios bootloaders diferentes Kernel e initrd-img, disponveis no apenas digite o comando abaixo e a entrada no Grub 1 ou 2 sera GNU/Linux. O papel do bootloader fornecer uma lista de opes feita de forma de sistemas automtica: operacionais disponveis na mquina e que podem ser carregados. 1 # update - grub Uma vez que Linux System Administration Pgina 15 o usurio. Escolheu qual sistema deseja subir o GRUB inicia o 4451 carregamento do kernel na memria RAM o qual passa a ter o controle sobre a Linux System Administration mquina. Ao contrrio da maioria dos programas que colocam seus arquivos www.4linux.com.br de configurao Contedo no diretrio /etc o grub coloca-os no diretrio /boot/grub. 16.1.1 GRUB (Padro CentOS) Gerenciadores de Boot 2 Este o BootLoader padro do CentOS. Para que nosso novo 16.1 Introduo Terica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 kernel, possa ser 16.1.1 GRUB (Padro CentOS) . . . . . . . . . . . . . . . . . . . . . . . 3 inicializado, devemos configurar nosso bootloader. Veja agora 16.1.2 Segurana no grub . . . . . . . . . . . . . . . . . . . . . . . . . . 12 como fazer isso no 16.2 GRUB2 (Padro Debian) . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 Grub. Embora seja "enjoado", o grub no to complicado como pode Se voc quisesse que o Debian passasse a ser o sistema default, parecer primeira bastaria trocar vista. Vamos aproveitar a deixa para aprender um pouco mais sobre "default 0"por "default 2". O mesmo vale para os outros sistemas ele. operacionais instalados. O grub usa o arquivo de configurao "/boot/grub/menu.lst" no A linha "timeout 5" um pouco mais cosmtica. Ela diz que se voc Debian, no CentOS no pressionar ele um link para /boot/grub/grub.conf. Este arquivo lido a nenhuma tecla na tela de boot, o sistema default ser iniciado cada boot, por isso depois de 5 segundos. 3 Pgina 4 Linux System Administration 16.1 Introduo Terica 4Linux www.4linux.com.br 4Linux www.4linux.com.br 16.1 Introduo Terica no necessrio reinstalar o grub ao fazer alteraes, como no Voc pode aumentar ou diminuir o tempo a seu gosto. caso do lilo. A linha "color cyan/blue white/blue"tambm cosmtica. Ela apenas Este um exemplo de arquivo de configurao do grub: indica as cores 1 default 0 do texto e do fundo na tela de boot. Veja que as cores so definidas 2 timeout 5 duas vezes. Da 3 color cyan / blue white / blue primeira voc diz as cores que so usadas quando exibida a 4 splashimage =( hd0 ,0)/ grub / splash . xpm .gz mensagem de boot 5 e na segunda as cores que sero usadas em micros onde no seja 6 title CentOS 7 root (hd0 ,0) possvel exibir a 8 kernel / vmlinuz -2.6.32 -71. el6lx86_64 ro root =/ dev / VolGroup / lv_root imagem de fundo. 9 initrd / initramfs -2.6.32 -71. el6lx86_64 Completando, temos a linha 10 "splashimage=(hd0,0)/grub/splash.xpm.gz", que indica 11 title Microsoft Windows a imagem de fundo que ser exibida. No caso do CentOS usado 12 root (hd0 ,2) um arquivo de 13 makeactive # Se usar Windows7 comente esta linha . tema, que composto por diversos arquivos dentro da imagem de 14 chainloader +1 fundo. 15 O "(hd0,0)"dentro da opo diz a partio onde o CentOS est 16 title Debian Squeeze 17 root (hd0 ,3) instalado, onde ele 18 kernel / vmlinuz -2.6.31 ro root =/ dev / sda3 vai procurar o arquivo. Como pode ver, o grub usa uma 19 initrd / initrd .img -2.6.31 nomenclatura prpria para O CentOS o default, por causa da opo "default 0"no incio do designar as parties do HD, o que acaba sendo o aspecto da arquivo. Do ponto configurao mais de vista do grub, o CentOS o sistema "0", o Windows o sistema difcil de entender. 1, enquanto No Linux os HDs e parties so acessados atravs de dispositivos que o Debian o sistema 2. Note que ele conta os sistemas especiais, localizados includos na lista a dentro do diretrio "/dev". Um HD IDE instalado como master na partir do zero. primeira porta IDE, visto pelo sistema como "/dev/hda"e a primeira partio ou seja, o que o BIOS acessa primeiro na hora de carregar o dentro dele sistema, ser vista como "/dev/hda1". Se voc usasse um HD serial ATA, ento visto como "(hd0)", independentemente de ser SATA ou IDE, ele seria visto como enquanto o outro ser "/dev/sda"e a primeira partio como "/dev/sda1". visto como "(hd1)". Se voc est me acompanhando at aqui, sente e respire fundo, Uma forma de confirmar isso checar o contedo do arquivo pois nada disso vale "/boot/grub/device.map" para o grub. Para "simplificar", os desenvolvedores decidiram adotar (com o sistema j instalado). Ele contm uma lista dos HDs uma nomenclatura detectados pelo grub, e prpria, onde os HDs e parties so nomeados a partir do zero. o endereo atribudo a cada um. Ou seja, o "/dev/hda1"ou /dev/sda1 referenciado na configurao Agora que entendemos como o grub nomeia os HDs e parties, do grub como podemos ir ao "(hd0,0)"(primeiro HD, primeira partio). O "(hd0,2)"do exemplo que interessa, ou seja, entender como funcionam as mltiplas seria referente terceira sees do grub, que partio do primeiro HD, ou seja, faria referncia ao "/dev/hda3"ou permitem carregar cada sistema operacional. /dev/sda3. No exemplo, o HD est configurado da seguinte forma: Em resumo, na nomenclatura adotada pelo grub temos: 1 /dev/ sda1 : CentOS 1 /dev/hda = 0 Pgina 6 Linux System Administration Linux System Administration Pgina 5 4Linux www.4linux.com.br 16.1 Introduo Terica 16.1 Introduo Terica 4Linux www.4linux.com.br 2 /dev/ sda2 : Windows 2 /dev/hdb = 1 3 /dev/ sda3 : Debian 3 /dev/hdc = 2 Esta configurao vem bem a calhar, pois permite explicar os casos 4 /dev/hdd = 3 mais comuns, As parties dentro de cada HD so tambm nomeadas a partir do ou seja, a seo referente ao CentOS, ao Windows e referente a zero: outras distribuies 1 /dev/ hda1 ou /dev/ sda1 = 0,0 Linux, no caso o Debian. 2 /dev/ hda2 ou /dev/ sda2 = 0,1 Vamos comear com a seo do CentOS: 3 /dev/ hda3 ou /dev/ sda3 = 0,2 1 title CentOS 4 /dev/ hda4 ou /dev/ sda4 = 0,3 2 root (hd0 ,0) 5 /dev/ hda5 ou /dev/ sda5 = 0,4 3 kernel / vmlinuz -2.6.32 -71. el6lx86_64 ro root =/ dev / VolGroup / lv_root 6 /dev/ hda6 ou /dev/ sda6 = 0,5 4 initrd / initramfs -2.6.32 -71. el6lx86_64 Para o grub esta distino entre hds no existe. O A linha "title" contm apenas o nome do sistema, da forma como "/dev/sda1"continua sendo "(hd0,0)"dentro ele ir aparecer na do grub. tela de boot. No preciso que o nome indique corretamente o O que acontece ento se voc tiver um HD IDE e outro SATA na sistema, voc pode mesma mquina? usar apelidos, o importante apenas que um sistema receba um Bem, a depende de como eles estiverem configurados dentro do apelido diferente setup. O HD "primrio", do outro. A linha "root" logo a seguir, indica a localizao do /boot (no usado. formato do grub), ou Em seguida temos a seo referente ao Windows: seja, onde o sistema est instalado. Como o CentOS neste caso 1 title Microsoft Windows est instalado na 2 root (hd0 ,2) primeira partio do HD, usamos "(hd0,0)". 3 makeactive A terceira linha, "kernel", indica o arquivo com o kernel, que ser 4 chainloader +1 carregado no O Windows um caso especial, pois ele no carregado incio do boot. O Kernel vai sempre dentro da pasta "/boot"e o diretamente pelo grub. arquivo tem o nome Em vez disso ele inicializado em um modo chamado de padro de "vmlinuz", seguido da verso, como "vmlinuz-2.6.32- "chainload", onde o grub 71.el6lx86_64". Alm simplesmente carrega o gerenciador de boot do Windows (que de indicar a localizao do arquivo, voc pode incluir opes que instalado dentro da sero passadas partio) e deixa que ele se encarregue de inicializar o sistema. Isso para ele no incio do boot, por exemplo: "acpi=off", "vga=791"e indicado pela assim por diante. linha "chainloader +1". A opo de acpi=off desabilita o gerenciador de energia acpi, j a Isto simplifica as coisas, pois voc precisa apenas indicar um nome opo vga=791 ou apelido na indica a resoluo de vdeo que ser usada no terminal. O nmero linha "title"e indicar a partio onde ele est instalado na linha "root". "791"indica No nosso 1024x768, "788"indica 800x600 e se voc substituir o nmero pela exemplo, o Windows est instalado na terceira partio do HD, por palavra "normal", isso o "(hd0,2)". o terminal passa a usar a resoluo de texto padro, como nos A opo "makeactive" marca a partio do Windows como ativa, monitores CGA ;). uma configurao Linux System Administration Pgina 7 que necessria ao inicializar o Windows 95/98/ME, onde ainda 16.1 Introduo Terica 4Linux www.4linux.com.br utilizado o MSDOS Usando "vga=normal"o bootsplash exibido durante o carregamento na fase inicial do boot. Ela no mais necessria no XP ou no Vista, do sistema tambm mas, deixa de funcionar. como tambm no atrapalha, comum que ela continue sendo Finalmente, temos a linha "initrd", que opcional, permitindo usada. indicar a localizao Concluindo, temos a seo referente ao Debian, que pode ser usada de um arquivo initrd, que ser carregado junto com o Kernel. O initrd (com as devidas nem sempre modificaes) tambm para outras distribuies Linux instaladas no usado. Quando necessrio, ele gerado durante a instalao, HD: incluindo mdulos Pgina 8 Linux System Administration de que o sistema precisar no incio do boot. Se ele no estiver 4Linux www.4linux.com.br 16.1 Introduo Terica 1 title Debian GNU/ Linux ( testing / unstable ) dentro da 2 root (hd0 ,3) pasta "/boot"junto com o Kernel, no precisa se preocupar, pois ele 3 kernel / boot / vmlinuz -2.6.18 ro quiet vga =791 no est sendo 4 initrd / boot / initrd .img -2.6.18 O problema o Windows, j que ele chega "chutando o balde", Esta seo muito similar seo do CentOS, que vimos a pouco. gravando seu gerenciador O Debian neste de boot na MBR sem nem te consultar. caso est instalado na quarta partio, que no grub vista como Isto acaba se revelando um grande problema, j que voc perde o "(hd0,3)". O importante acesso ao Linux indicar corretamente o arquivo com o Kernel, dentro da partio e instalado no HD sempre que precisar reinstalar o Windows. o initrd Nestes casos, voc pode regravar o grub dando boot com um live (caso exista). CD do linux. Voc poderia duplicar estas quatro linhas para incluir outras D boot pelo CD e abra um terminal como root. A partir da, use o distribuies. Bastaria comando "grub"para alterar a partio dentro da linha "root"e indicar corretamente o entrar no prompt do grub, onde usaremos os comandos para arquivo do Kernel e regravar o gerenciador o initrd que seriam usados. de boot: Embora seja um tema um pouco chato de estudar, importante 1 # grub conhecer pelo menos Dentro do prompt, precisamos rodar dois comandos, especificando a o bsico sobre a configurao do grub, pois ele usado atualmente partio onde em praticamente o CentOS (ou a distribuio "dona"do grub) est instalada e o todas as distribuies, de forma que um conhecimento que voc dispositivo onde o grub vai acabar usando ser instalado. bastante. Comece rodando o comando "root", que especifica a partio de Continuando, a configurao feita no arquivo "/boot/grub/menu.lst" instalao do sistema. lido pelo grub No exemplo, o CentOS est instalado no "(hd0,0)", de forma que o a cada boot, por isso voc no precisa se preocupar em regravar o comando grub a cada fica: alterao no arquivo, como no caso do lilo. Em geral, voc s Pgina 10 Linux System Administration precisa regravar o grub 4Linux www.4linux.com.br 16.1 Introduo Terica em caso de acidentes, como quando ele subscrito acidentalmente, 1 grub > root (hd0 ,0) ao reinstalar o Falta agora o comando "setup", que especifica aonde o grub ser Windows ou instalar outra distribuio no mesmo HD. gravado. Neste No caso das distribuies, Linux, quase sempre voc tem a opo caso, estou gravando o grub na MBR do primeiro HD: de instalar gravando 1 grub > setup (hd0) o gerenciador de boot na partio, o que permite reinstalar sem Terminando, voc pode sair do prompt do grub usando o "quit"e subscrever o reiniciar o micro. grub "titular". Aqui, por exemplo, temos um screenshot do instalador Este um exemplo de operao que mais simples no grub. No lilo, do Ubuntu: era necessrio Linux System Administration Pgina 9 montar a partio e abrir um chroot para conseguir regravar o 16.1 Introduo Terica 4Linux www.4linux.com.br gerenciador :). Mais um problema comum acontece quando voc precisa configurar Note que isto necessrio apenas ao regravar o grub manualmente. o grub numa Outra pegadinha mquina com vrios HDs. Nestes casos, alm de verificar como o que quando voc tem uma instalao do Windows no segundo HD grub detectou (hd1,0 no cada um, voc precisa se preocupar em gravar o grub no MBR do grub), como em situaes onde voc compra outro HD para instalar HD correto. Linux e instala O problema muito simples. Quando voc possui mais de um HD o HD com o Windows como secundrio, necessrio adicionar duas na mquina, voc linhas na seo configura uma ordem de boot no Setup do micro. O HD que estiver do grub referente ao Windows. Elas fazem com que a posio lgica em primeiro na dos dois ordem de boot do setup, ser usado para inicializar a mquina e, HD seja trocada, fazendo com que o Windows pense que est consequentemente inicializando a partir ser reconhecido pelo grub como "(hd0)". do primeiro. Sem isso, voc tem um erro de "partio Se voc instalar o CentOS no segundo HD, e o grub for instalado na invlida"durante o boot e o MBR do segundo Windows no carregado. HD, o CentOS no vai inicializar depois de instalado, pois o BIOS do Ao adicionar as duas linhas, a seo referente ao Windows ficaria: micro continuar 1 title Windows lendo o MBR do primeiro HD. 2 root (hd1 ,0) A soluo no caso bem simples. Mesmo que voc instale o 3 makeactive CentOS, ou qualquer 4 chainloader +1 5 map (hd1) (hd0) outra distribuio no segundo HD, tome sempre o cuidado de gravar 6 map (hd0) (hd1) o grub no MBR do primeiro HD. Se voc est instalando o Debian (por 16.1.2 Segurana no grub exemplo), na partio Para melhorarmos nossa segurana local, uma boa seria colocar /dev/sdb1 (a primeira partio do segundo HD) o "root", ou seja, o senha no grub, dispositivo aonde ento vamos fazer melhor, iremos colocar uma senha criptografada o sistema est sendo instalado ser "(hd1,0)", mas na hora de nele: gravar o grub, voc 1 # / sbin /grub -md5 - crypt 2 $1$q0ZwgzZO$BMy4amrK53Q01oRLg . W166ivy indicaria o "(hd0)", que o primeiro HD. Pgina 12 Linux System Administration Ao fazer isso manualmente pelo prompt do grub, voc usaria os 4Linux www.4linux.com.br 16.2 GRUB2 (Padro Debian) comandos: Aps digitarmos nossa senha ela criptografada em md5, a basta Linux System Administration Pgina 11 copi-la e editar 16.1 Introduo Terica 4Linux www.4linux.com.br 1 # grub o arquivo /boot/grub/menu.lst. 2 grub > root (hd1 ,0) Adicione no comeo do arquivo a seguinte linha: 3 grub > setup (hd0) 1 password --md5 \$1\ $q0ZwgzZO \ $BMy4amrK53Q01oRLg . W166ivy 4 grub > quit A importncia de termos senha no Grub que se o mesmo estiver livre de senha, qualquer pessoa na hora da inicializao pode edit-lo e inicializ-lo no h "/find boot/grub/stage1"no prompt do grub. Stage 1.5 foi para ganhar eliminado poderes de root sem saber a senha. o principal arquivo de menu /boot/grub/grub.cfg no para ser 16.2 GRUB2 (Padro Debian) editado mesmo Este o bootloader padro no Debian Squeeze. Na inicializao do pelo root. computador o grub.cfg sobrescrito sempre que houver uma atualizao, um GRUB2 apresenta o menu e espera a atuao do usurio dentro do kernel for adicionado/ tempo fixado ou removido ou o usurio executar update-grub. transfere automaticamente o controle para o sistema operacional. o usurio pode criar um arquivo personalizado em GRUB2 um software Open Source. Ele descendente do GRUB /etc/grub.d/40_custom com (GRand Unified suas prprias entradas. Esse arquivo no ser sobrescrito. Bootloader). o arquivo de configurao principal para alterar as configuraes Foi completamente reescrito para dar ao usurio flexibilidade e do menu o performance significativamente /etc/default/grub. aumentadas. existem vrios arquivos para configurar o menu - /etc/default/grub mencionado 16.2.1 Melhorias acima e todos os arquivos da pasta /etc/grub.d/. As melhorias em relao ao GRUB incluem : mudou a numerao das parties. A primeira partio agora 1 - apoio de scripts - mdulo de carregamento dinmico - modo de em vez de 0. recuperao - menus O primeiro dispositivo no entanto continua 0 (no mudou). personalizados - temas - suporte ao menu grfico - imagens iso de Pgina 14 Linux System Administration Live CD de 4Linux www.4linux.com.br 16.2 GRUB2 (Padro Debian) Linux System Administration Pgina 13 buscas automticas para outros sistema operacionais como 16.2 GRUB2 (Padro Debian) 4Linux www.4linux.com.br Windows sempre boot diretamente do disco rgido - nova estrutura de arquivos de que update-grub executado. configurao - sem nenhuma mudana na configurao dos arquivos acontecer at suporte a plataforma x-86 (tal como PowerPc) - suporte universal a que o comando UUIDs update-grub seja executado. 16.2.2 GRUB vs GRUB2 16.2.3 Hierarquia de arquivos e diretrios O menu do GRUB2 parecer familiar aos usurios do Grub mas h /boot/grub/grub.cfg muitas diferenas o que mais se assemelha ao /boot/grub/menu.lst do GRUB mas internamente. diferentemente - pressione a tecla SHIFT para mostrar o menu durante o boot (no desse o grub.cfg no se destina a ser editado. Cada seo GRUB legacy claramente delimitada formalmente ESC). - /boot/grub/menu.lst do GRUB legacy foi com (### BEGIN) e a referncia do arquivo na pasta /etc/grub.d a substituido por /boot/- partir da qual grub/grub.cfg no GRUB2. a informao foi gerada. grub.cfg atualizado executando o - 00_header: suas configuraes normalmente so importadas de comando update-grub informaes do e automaticamente modificado quando h uma atualizao ou /etc/default/grub e os usurios no precisam mudar esse arquivo. instalao/remoo - 05_debian_theme : configura splash image, cor do texto, cor de de kernel. realce e tema. Na Por padro, e sempre que o comando update-grub executado, ausncia de splash image esse arquivo configura um tema este arquivo feito monocromtico para o somente leitura. Isto porque a inteno que o arquivo no seja menu inicial. editado manualmente. - 10_hurd : no usada. O usurio tambm ver uma infinidade de arquivos *. mod na pasta - 10_linux : localiza kernels no root device para o sistema /boot/grub. Esses operacional em uso. arquivos so da natureza modular do GRUB 2 e so carregados Leva essa informao e estabelece os nomes apresentados no necessariamente menu para estes pelo GRUB 2. kernels. /etc/default/grub - 20_memtest86+ : procura por /boot/memtest86+.bin e o inclue Esse arquivo pode ser editado e configurado. Detalhes da como opo no configurao esto mais menu do GRUB 2. No h opo para remover essa entrada do adiante em Configurando GRUB 2. menu.Pode ser inibido /etc/grub.d/ (diretrio) removendo o executvel desse arquivo sudo chmod -x Os arquivos nessa pasta so lidos durante a execuo do comando /etc/grub.d/20_memtest86+ update-grub e e executando depois update-grub. Linux System Administration Pgina 15 - 30_os-prober : procura por Linux e outros sistemas 16.2 GRUB2 (Padro Debian) 4Linux www.4linux.com.br operacionais.Resultados so suas instrues so incorporadas ao /boot/grub/grub.cfg. colocados no grub.cfg baseando-se nos scripts desse arquivo. O A colocao dos tens de menu no grub.cfg determinada pela arquivo dividido ordem em que os arquivos Pgina 16 Linux System Administration so executados nessa pasta. Arquivos com numeral no incio so 4Linux www.4linux.com.br 16.2 GRUB2 (Padro Debian) executados em 4 sees representando os tipos de sistemas operacionais primeiro comeando pelo menor. 10_linux executado antes de manipulados pelos 20_mentest que scripts : Linux, Windows, OSX e Hurd. Variveis nesse arquivo executado antes de 40_custom. determinam o formato Entradas personalizadas podem ser criadas no arquivo 40_custom dos nomes exibidos no /boot/grub/grub.cfg e no menu do GRUB 2. ou outro recm Usurios criado. familiarizados com scripts bsico podem alterar essas variveis e Somente arquivos executveis geram sada para o grub.cfg durante mudar o formato a execuo do das entradas de menu exibidas. Alternativamente o usurio pode update-grub. inserir uma entrada Os arquivos default nesta pasta so : no /etc/default/grub a qual desativa esse script. 40_custom : Para adicionar entradas de menu personalizado que limite ou se o menu est oculto. sero inseridas - GRUB_DEFAULT=xxxx no grub.cfg depois de update-grub. Mais informaes sobre esse Uma entrada de menu exata, incluida entre aspas, tambm pode ser arquivo na parte usada. Neste de configurao. caso, a localizao no menu no importa. Exemplo: 16.2.4 Configurao GRUB_DEFAULT=Debian Alteraes na configurao so normalmente feitas em Squeeze /etc/defaul/grub e nos - GRUB_TIMEOUT= Configura o tempo. arquivos da pasta /etc/grub.d. - GRUB_HIDDEN_TIMEOUT=0 O menu ficar oculto. O arquivo /boot/grub/grub.cfg no deve ser editado pelo usurio; - GRUB_HIDDEN_TIMEOUT=0 mudanas nesse O menu no ser oculto arquivo so feitas pelos scripts de configurao. - GRUB_HIDDEN_TIMEOUT_QUIET=true Algumas das alteraes mais comuns como OS/kernel default, true = nenhuma contagem regressiva exibida. A tela ficar em menu timeout podem branco. false = Um ser feitas pelo StartUp-Manager. contador ser exibido numa tela em branco durante o tempo do O Arquivo /etc/default/grub o principal arquivo de configurao GRUB_HIDDEN_TIMEOUT. para alterar as - GRUB_GFXMODE=640480 Descomente essa linha para mudar a configuraes padro. resoluo. Ela Aps a instalao as seguintes linhas podem ser alteradas pelo fornece resolues suportadas pela placa de vdeo do usurio usurio : (640480, 800600, - GRUB_DEFAULT Pgina 18 Linux System Administration Configura a entrada padro do menu. 4Linux www.4linux.com.br 16.2 GRUB2 (Padro Debian) Entradas podem ser numricas ou saved (ltima usada). 12801024, etc). aplica-se apenas a resoluo do menu de boot. Linux System Administration Pgina 17 Dica: Definindo a mesma resoluo do sistema operacional o tempo 16.2 GRUB2 (Padro Debian) 4Linux www.4linux.com.br de inicializao - GRUB_DEFAULT=0 diminuir ligeiramente. Configura a entrada default pela posio. Como no GRUB a primeira Embora no seja necessrio, o usurio tambm pode especificar a entrada zero, cor BitDepth a segunda 1, etc, anexando-o configurao da resoluo. Um exemplo seria - GRUB_DEFAULT=saved 1280x1024x24 ou 640x480x32. Define a entrada de menu padro com o que foi selecionado O usurio tambm pode adicionar vrias resolues. Se o GRUB2 anteriormente (a ltima no pode usar a seleo). primeira entrada, ela ir tentar o prximo ajuste. Se o menu exibido durante a inicializao, a ltima entrada As configuraes so separadas por uma vrgula. Exemplo: selecionada ser realada. 1280x1024x16, 800x600x24, Se nenhuma ao for tomada, esta seleo ser iniciada no final do 640480. tempo Se utilizar uma splash image, certifique-se que a configurao da resoluo e do tamanho da imagem so compatveis. O contedo desse arquivo adiconado ao grub.cfg sem alteraes Se estiver usando uma entrada que produz uma mensagem no quando o comando encontrado ao update-grub executado. executar update-grub, tente adicionar ou alterar a cor BitDepth. Ao contrrio do grub.cfg, arquivos personalizados podem ser Se esta linha est comentada (#) ou a resoluo no est disponvel editados a qualquer o GRUB 2 usa momento, no so s leitura, e podem ser propriedade do usurio, a configurao padro determinada pelo /etc/grub.d/00_header. se ele desejar. - GRUB_DISABLE_LINUX_RECOVERY=true Adicione ou Os arquivos personalizados so estticos. O contedo no ser descomente essa linha alterado, quando se no desejar o Recovery mode no menu. Recovery mode para novos kernels so adicionados ou removidos. apenas um Se o arquivo personalizado coloca as entradas no topo do grub.cfg, kernel, fazer uma entrada especial em /etc/grub/40_custom. o usurio poder 16.2.5 Entradas personalizadas confirmar no /etc/default/grub (DEFAULT= x) aps executar GRUB2 permite ao usurio criar selees de menus personalizados update-grub. Certifiquese que sero automaticamente se ainda aponta para a entrada de menu desejada. Para contar, a adicionados ao menu principal quando o comando update-grub primeira entrada exe- do menu no arquivo /etc/default/grub 0. Linux System Administration Pgina 19 Pgina 20 Linux System Administration 16.2 GRUB2 (Padro Debian) 4Linux www.4linux.com.br 4Linux www.4linux.com.br 16.2 GRUB2 (Padro Debian) cutado. Um arquivo 40_custom vazio est disponvel em /etc/grub.d/ 16.2.6 Criando menus personalizados para uso ou O usurio pode editar o arquivo default /etc/grub.d/40_custom ou para servir de exemplo para criar menus personalizados. Aqui esto criar um novo. A algumas consideraes maneira mais fcil de criar o contedo de um menu personalizado para menus personalizados: copiar uma O nome do arquivo determina a ordem das selees no menu. entrada do /boot/grub/grub.cfg. Depois de copiado, o contedo do Nomes numrico so 40_custom pode executados primeiro, seguido por nomes alfabticos. ser adaptado a vontade do usurio. Entrada 10_linux aparecer antes de 30_os prober, que ser De acordo com o arquivo personalizado padro da amostra colocado antes de entradas (etc/grub.d/40_custom/) 40_custom, que ir preceder my.custom.entries. as duas primeiras linhas de um arquivo personalizado em /etc/grub.d O usurio que desejar que as suas entradas de menu personalizado devem ser: apaream em 1 #!/ bin/sh primeiro lugar no menu principal pode nomear a pasta para 06_xxx 2 exec tail -n +3 $0 que suas listas podem ser copiadas entradas de menu existente no arquivo estaro em primeiro lugar no menu. boot/grub/grub.cfg O arquivo deve ser feito executvel : ou de um arquivo do GRUB legacy. Se for copiado do arquivo 1 # chmod +x /etc/ grub .d/ filename menu.lst do GRUB legacy: uma cpia de backup deste arquivo pode estar na pasta /boot/grub 8 search -no - floppy -fs - uuid -set 22290 d2e -82 c9 -48 d5 -92 c1 - se o usurio ce138634eedc atualizou do GRUB para GRUB 2. 9 linux / boot / vmlinuz -2.6.31 -15 - generic root = UUID =22290 d2e -82 c9 as seguintes entradas do menu do GRUB legacy devem ser -48 d5 mudadas : -92c1 - ce138634eedc ro vga =789 quiet splash Pgina 22 Linux System Administration title mudado para menuentry. A linha deve terminar com ({) 4Linux www.4linux.com.br 16.2 GRUB2 (Padro Debian) root muda para set root= 10 initrd / boot / initrd .img -2.6.31 -15 - generic kernel passa a ser linux 11 } qualquer designao de parties (sda4, sdb6) deve ser mudada 12 # Essa uma entrada de exemplo para uma parti o com Windows : porque no 13 menuentry " Windows Vista " { GRUB legacy a primeira partio 0 e no GRUB2 1 (o primeiro 14 set root =( hd0 ,2) disco continua 15 chainloader +1 sendo 0 igual ao GRUB legacy). 16 } Linux System Administration Pgina 21 16.2.8 Configurando fonte e cores 16.2 GRUB2 (Padro Debian) 4Linux www.4linux.com.br Estas linhas esto contidas em /etc/grub.d/05_debian_theme. 16.2.7 Regras para construo de menuentry A cor definida pela linha abaixo. A primeira cor a cor do texto, a a primeira linha inicia com menuentry e termina com ({) segunda a cor o que est entre aspas o que vai aparecer no menu do GRUB 2. de fundo. Edite como 1 set color \ _normal = black / black desejar O cdigo abaixo define a cor de entradas selecionadas. A primeira a ltima linha do menuentry deve ser (}) cor a cor do no deixe espaos em branco no fim das linhas texto em destaque, a segunda a cor de fundo da linha a linha set root= deve apontar para a localizao de inicializao selecionada. Se black a do GRUB2 segunda entrada, a linha de destaque ser transparente e apenas o (sdXY) texto mudar de referncia root da linha Linux dever apontar para a partio do cor. sistema. 1 set color_highlight = magenta / black Dica : Se GRUB 2 no encontra o kernel referenciado, tente O black a cor de transparncia GRUB2 padro . Altere apenas a substituir a UUID cor do primeiro pelo nome do dispositivo (exemplo: / dev/sda6). (ou seja, xxxxx /black), se utilizar uma imagem de splash. Exemplo de menuentry : Se o segundo valor nesta linha alterada para uma cor diferente de 1 ### BEGIN /etc/ grub .d/10 _linux ### black a imagem 2 menuentry " Debian Squeeze , Linux 2.6.31 -15 - generic " { splash ser escondida atrs de um fundo de cor slida. 3 recordfail =1 Linux System Administration Pgina 23 4 if [ -n ${ have_grubenv } ]; then save_env recordfail ; fi 16.2 GRUB2 (Padro Debian) 4Linux www.4linux.com.br 5 set quiet =1 16.2.9 Segurana no grub2 6 insmod ext2 Para melhorarmos nossa segurana local, uma boa seria colocar 7 set root =( hd0 ,0) senha no grub2, ento vamos fazer melhor, iremos colocar uma senha criptografada 7 .8037149 nele, para isso B1F04504F84E019100C56D86816D3859ED7DD557CBEEBD2F95 temos que gerar uma senha criptografada: 8 1 # ( echo 123456 ; echo 123456) | grub - mkpasswd - pbkdf2 B5177CCC5C5947559092C4A5320E70B8AA07C81EEAE37711763589D 2 Enter password : 525 3 Reenter password : 9 F77C54E10CF85EOF 4 Your PBKDF2 is grub . pbkdf2 . sha512 .10000.1 Atualize o grub2: CCB58AE691A20A26872A50FF5D0 1 # update - grub 5 A importncia de termos senha no Grub que se o mesmo estiver ED4D1C872F8B3366548C3AA23F1B735B5CB6498B672835C7A1FD3D1 livre de senha, 0E3E8E8677776 qualquer pessoa na hora da inicializao pode edit-lo e inicializ-lo 6 D71658264789132F72B08E66A4224FCD . para ganhar C6B51DB03F8665FD6B080EDF502DBAD2A20 poderes de root sem saber 7 F3F1992FC878C3CDAE11E4AF82C6EA74A19469A7FB4C7F96275FA7D 16.3 Colocar Imagem no Grub2 F3834EB7070EE Para colocar uma imagem no grub2 bem simples basta ter uma 8 D9FFAEBC9C84ADB9D272052A7 imagem valida, Onde : (echo 123456 ;echo 123456) 123456 a senha, caso no JPEG, PNG, TGA e JPG, e passar o seu caminho dentro de um queira passar a arquivo e ja esta senha no comando execute diretamente e preencha o prompt com a pronto. Vamos a prtica, dentro do diretrio home tem uma imagem senha quando jpeg, dexter.jpeg, for solicitado: vamos colocar ela no grub. Copie a imagem para o /boot/grub: 1 # grub - mkpasswd - pbkdf2 1 cp / root / dexter . jpeg / boot / grub Aps digitarmos nossa senha ela criptografada em sha512, a Entre no arquivo 05_debian_theme na linha 146 e mude a imagem basta copi-la e padrao do grub editar o arquivo /etc/grub.d/00_header. para a nova: Adicione no final do arquivo a seguinte linha: 1 # vim +146 /etc/ grub .d/05 _debian_theme 1 # vim /etc/ grub .d/00 _header 2 Na linha onde 2 cat << EOF 3 ANTES 3 set superusers =" user " 4 4 password_pbkdf2 user grub . pbkdf2 . sha512 .10000.393 F191284EF Linux System Administration Pgina 25 5 16.4 Atualizando novas entradas no menu 4Linux www.4linux.com.br E4575DCFFE4D939635CFDDF63E254B86F0DB409C0EE6723691D24C0 5 145 set_background_image "${ WALLPAPER }" "${ COLOR_NORMAL }" BB7 "${ 63 COLOR_HIGHLIGHT }" | | E0599CE6E39DD22EE5713816D155D0F89EABCDBF0057DEB6DDE953 6 146 set_background_image "/usr / share / images / desktop - base / 401 desktop - Pgina 24 Linux System Administration grub .png" || 4Linux www.4linux.com.br 16.3 Colocar Imagem no Grub2 7 147 set_default_theme 8 9 DEPOIS Linux System Administration Pgina 27 10 16.4 Atualizando novas entradas no menu 4Linux www.4linux.com.br 11 145 set_background_image "${ WALLPAPER }" "${ COLOR_NORMAL 1 # grubby --title = CentOS --add - kernel =/ boot / vmlinuz -3.2.1 - }" "${ 20111225 c1 COLOR_HIGHLIGHT }" | | -- initrd =/ boot / initrd .img -20111225 c1 --args =" root =/ dev / VolGroup / 12 146 set_background_image "/ boot / grub / dexter . jpeg " || lv_root " 13 147 set_default_theme Pgina 28 Linux System Administration Pronto, agora basta atualizar o grub, ja vai estar valendo: 1 # update - grub2 16.4 Atualizando novas entradas no menu Execute o comando para inserir o novo kernel no arquivo de configurao do GRUB ou edite-o na mo: 1 # update - grub2 OU 1 # vi / boot / grub / grub .cfg Pgina 26 Linux System Administration 4Linux www.4linux.com.br 16.4 Atualizando novas entradas no menu 1 1 menuentry Debian GNU/Linux , with Linux 2.6.32 -5 -686 --class debian --class 2 gnu - linux --class gnu --class os { 3 2 insmod part_msdos 4 3 insmod ext2 5 4 set root =(hd0 , msdos2 ) 6 5 search --no - floppy --fs - uuid --set 8970340d-ac56 -461b -815a -2388 f9bdadd3 7 6 linux / vmlinuz -2.6.32 -5 -686 root = UUID =661 d7f7c -3 bfc -4 b9e -b6d3 -9 c56cda87d3a ro quiet 8 7 initrd / initrd .img -2.6.32 -5 -686 Aps feitas essas alteraes, reinicie o computador, e veja se o nosso Novo kernel "boota". Para adicionar automaticamente um kernel ao Bootloader o nome do kernel deve comear com vmlinuz e as imagens dos mdulos com initrd ou initramfs. 1 # update - grub 2 ou 3 # update - grub2