You are on page 1of 345

4451

Linux System Administration

www.4linux.com.br

Contedo
Compactadores, Empacotadores e Procedimentos de Backup 2.1 2.2 Introduo Terica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . O empacotador cpio . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 3 5 8

2.3 O empacotador tar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2.4 Compactadores GZIP, BZIP2 . . . . . . . . . . . . . . . . . . . . . . . . 12 2.4.1 Gzip e Bzip2 com Arquivos de Texto . . . . . . . . . . . . . . . . 14 2.4.2 Gzip e Bzip2 com Arquivos Binrios . . . . . . . . . . . . . . . . 16 2.5 Comando dd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

Compactadores, Empacotadores e Procedimentos de Backup


2.1 Introduo Terica
A compresso e empacotamento de arquivos e diretrios muito importante em qualquer sistema computacional. Ambos os procedimentos so necessrios desde o ponto de vista de distribuio de softwares, de economia de banda e de espao de armazenamento, e de backup do sistema. Veremos neste captulo o principal programa de empacotamento GNU/Linux e os dois principais compactadores. A forma mais conhecida de realizar compresso e empacotamento em ambiente Windows utilizando o programa Winzip. Um programa que zipa um arquivo, ou diversos arquivos, na realidade est realizando dois procedimentos distintos: Empacotar e comprimir. Em ambientes Unix-like, essas duas tarefas so realizadas de forma logicamente distintas. O programa tar, cujo nome deriva de tape archiver, realiza a tarefa de concatenar todos os arquivos e diretrios preservando as informaes do lesystem, isto , seus meta-dados. Criado com propsito de backup em dispositivos de acesso sequencial (unidades de ta), o tar utilizado hoje em dia como uma ferramenta de empacotamento, podendo ser utilizado em conjunto com compactadores como gzip ou bzip2.

2.1 Introduo Terica

4Linux www.4linux.com.br

A utilizao da ferramenta tar bastante simples. Seguindo o losoa Unix faa apenas uma tarefa, mas faa bem feito, o tar um programa especialista em empacotar vrios arquivos. Dessa forma, quando utilizamos os parmetros z ou j estamos na realidade fazendo uma chamada externa aos comandos gzip ou bzip2, especialistas em compresso de dados. Outros programas que trabalham de forma anloga ao tar so o dump e cpio. Ambos foram criados com a mesma nalidade, mas so pouco utilizados hoje em dia, pois no so to versteis quanto o tar. Este captulo explica muitas coisas sobre compactao e empacotamento de arquivos, tudo isso extremamente necessrio quando falamos de backup. Podemos ter diferentes tipos de backup, so eles: Incremental - O backup incremental visa salvar apenas as diferenas em relao ao ultimo backup completo, por exemplo: Um backup completo acontece no domingo. O incremental salvar os dados de domingo para segunda, de domingo para tera, de domingo para quarta, de domingo para quinta, de domingo para sexta e de domingo para sbado, ou seja, at chegar no prximo backup completo. Diferencial -Diferente do incremental, o diferencial, faz apenas os incrementos, assim gerando um volume menor de dados. Se o backup completo foi gerado no domingo, ele salva de domingo para segunda, de segunda para tera, de tera para quarta e assim at o prximo backup completo chegar. Completo - Visa salvar todos os dados, mesmo o que j foram salvos anteriormente, assim fazendo um backup completo de todos os objetos em questo. Conhecendo os tipos de backup, vamos conhecer algumas ferramentas que podem nos ajudar. Crie o diretrio de backup para os nosso testes:

Pgina 4

Linux System Administration

4Linux www.4linux.com.br

2.2 O empacotador cpio

# mkdir / backup

2.2 O empacotador cpio


O comando cpio empacota arquivos/diretrios, suas principais opes so: -i -> extrair backup -o -> criar backup -t -> mostrar uma tabela com o contedo do backup -F -> essa opo especica o arquivo de backup -d -> cria diretrios se necessrio -v -> mostrar o que est fazendo em detalhes -u -> sobrescreve arquivos existentes Ento, vejamos os principais grupos de opes e como utiliz-las. Para empacotar o contedo do diretrio /etc com o cpio devemos fazer o seguinte:

find / etc | cpio - ov > / backup / pacote . cpio

O comando acima empacotar todos os objetos da sada do comando ls /etc. Para visualizar seu contedo:

# cpio -iv -- list < / backup / pacote . cpio

Linux System Administration

Pgina 5

2.2 O empacotador cpio

4Linux www.4linux.com.br

Vamos renomear o diretrio /etc para /etc.old :

# mv / etc / etc . old

Restaure o backup do /etc:

1 2

# cpio -iv < / backup / pacote . cpio # ls / etc

Adicione arquivos ao pacote.cpio j criado:

# find / boot | cpio - ov -A -F / backup / pacote . cpio

Para visualizar seu contedo:

# cpio -iv -- list < / backup / pacote . cpio

Adicione um usurio chamado inexistente:

# useradd inexistente

Verique que ele foi criado no arquivo /etc/passwd:

# tail -n1 / etc / passwd

O comando cpio somente volta os arquivos, caso ele no exista ou ele seja mais recente que o atual:

Pgina 6

Linux System Administration

4Linux www.4linux.com.br

2.2 O empacotador cpio

# cpio -iv < / backup / pacote . cpio

Verique que os arquivos no foram alterados, pois as datas so mais atuais ou as mesmas dos arquivos no pacote:

# tail -n1 / etc / passwd

Para forar a restaurao faa:

# cpio - iuv < / backup / pacote . cpio

Verique que no existe mais o usurio inexistente:

# tail -n1 / etc / passwd

Remova o arquivo /etc/passwd:

# rm -f / etc / passwd

Restaure apenas o arquivo /etc/passwd:

# cpio - ivF / backup / pacote . cpio / etc / passwd

Linux System Administration

Pgina 7

2.3 O empacotador tar

4Linux www.4linux.com.br

2.3 O empacotador tar


O que os compactadores como gzip e bzip2 no conseguem fazer, o tar (Tape Archives) faz. Ele um aplicativo capaz de armazenar vrios arquivos em um s. Porm, no capaz de compactar os arquivos armazenados. Como possvel notar, o tar serve de complemento para os compactadores e vice-versa. Por isso, foi criado um parmetro no tar para que ambos os programas possam trabalhar juntos. Assim, o tar "junta"os arquivos em um s e este arquivo, por sua vez, ento compactado por um dos compactadores suportados pelo tar. O tar tambm consegue gravar a propriedade e as permisses dos arquivos. Ainda, consegue manter a estrutura de diretrios original (se houve compactao com diretrios), assim como as ligaes diretas e simblicas. A sintaxe do TAR :

tar [ par metros ] [ - f arquivo ] [ - C diret rio ] [ arquivos ...].

Abaixo, segue a lista dos principais parmetros: -c -> cria um novo arquivo tar; -p -> mantm as permisses originais do(s) arquivo(s); -r -> acrescenta arquivos a um arquivo tar; -t -> exibe o contedo de um arquivo tar; -v -> exibe detalhes da operao; -x -> extrai arquivos de um arquivo tar;

Pgina 8

Linux System Administration

4Linux www.4linux.com.br

2.3 O empacotador tar

-z -> comprime ou extrai arquivos tar resultante com o gzip;

-j -> comprime ou extrai arquivos tar resultante com o bzip2;

-f -> especica o arquivo tar a ser usado;

-C -> troca de diretrio, para local de armazenamento ou restaurao de dados.

Vamos empacotar o diretrio /etc e /usr:

1 2

# tar - cvf / backup / etc . tar / etc # tar - cvf / backup / usr . tar / usr

Verique o tamanho do pacote usr.tar:

# du -sh / backup / usr . tar

Podemos utilizar parmetros para reduzir o tamanho do pacote, atravs de compactadores como gzip e bzip2. Vamos observar o tempo com o comando time e o tamanho dos dois compactadores para vermos suas vantagens e desvantagens. Empacotando e compactando com gzip o diretrio /usr:

# time tar - zcvf / backup / usr . tar . gz / usr

Empacotando e compactando com bzip2 o diretrio /usr:

# time tar - jcvf / backup / usr . tar . bz2 / usr

Linux System Administration

Pgina 9

2.3 O empacotador tar

4Linux www.4linux.com.br

Podemos observar que o compactador gzip mais rpido que o bzip2, mas qual deles fez a melhor compactao:

# du -sh / backup / usr *

O bzip2 faz a melhor compactao, mas em compensao leva um tempo maior que o gzip. Para visualizar o contedo dos pacotes tar faa:

1 2 3 4

# tar -tf / backup / usr . tar . gz # tar -tf / backup / usr . tar . bz2 # tar -tf / backup / usr . tar # tar -tf / backup / etc . tar

Para adicionar arquivos ao pacote j criado utilize o parmetro -r, mas somente possvel em pacotes que ainda no foram compactados: Crie um arquivo chamado aaaaaaaaaaaaaaaaaaa em /etc:

# touch / etc / aaaaaaaaaaaaaaaaaaa

Adicione ao tar criado:

# tar -rf / backup / etc . tar / etc / aaaaaaaaaaaaaaaaaaa

Visualize:

# tar -tf / backup / etc . tar

Vamos acessar o diretrio /backup e descompactar o /usr feito com gzip:

Pgina 10

Linux System Administration

4Linux www.4linux.com.br

2.3 O empacotador tar

1 2

# cd / backup # tar - zxvf usr . tar . gz

Verique que o pacote compactado foi descompactado no diretrio atual e no na raiz:

# ls

Para determinar qual vai ser o ponto inicial para descompactar o pacote utilize o parmetro -C. Descompacte o pacote feito com bzip2 no diretrio /mnt:

# tar - jxvf usr . tar . bz2 -C / mnt

Verique o diretrio /mnt:

# ls / mnt

Agora delete o diretrio /etc:

# rm -rf / etc

Volte o backup feito com o tar a partir do diretrio /:

# tar xvf etc . tar -C /

Verique:

Linux System Administration

Pgina 11

2.4 Compactadores GZIP, BZIP2

4Linux www.4linux.com.br

# ls / etc

2.4 Compactadores GZIP, BZIP2


Compresso de dados o processo de codicar a informao de forma que seja possvel armazen-la em um nmero menor de bits. Por exemplo, se denssemos que a palavra compresso passaria a ser abreviada por comp, estaramos diminuindo o nmero de bits necessrios para armazenar esta apostila. Entretanto, para que voc pudesse entender o que comp signica seria necessrio estar ciente dessa conveno ou seja, do algoritmo de compresso. H dois tipos bsicos de compresso, aquele em que no h perdas de informaes e aquele em que elas ocorrem. Obviamente quando o assunto backup de informaes vitais, devemos utilizar algoritmos sem perdas. J em arquivos de imagens, vdeos e udio, h casos que podemos nos dar ao luxo de perdas de informaes em detrimento da qualidade, que em geral praticamente imperceptvel para os no especialistas da rea. Os principais programas de compresso que utilizaremos so o bzip2 e gzip . O bzip2 utiliza os algoritmos Burrows-Wheeler transform e Huffman coding; j o gzip utiliza os algoritmos LZ77 e Huffman coding. Todos esses algoritmos fazem parte do grupo dos algoritmos que no ocasionam perdas de dados. A forma de utilizao desses comandos bastante simples. Para o gzip, bzip2, basta fornecer o arquivo de entrada que a compresso se dar no prprio arquivo. Eis uma diferena entre o tar e esses programas, ele recebe dois argumentos, os arquivos de entrada e o arquivo de sada, ou seja, aqueles a serem empacotados e comprimidos. Verique que no possvel compactar um diretrio sem empacot-lo antes. Tente

Pgina 12

Linux System Administration

4Linux www.4linux.com.br

2.4 Compactadores GZIP, BZIP2

com o gzip e com o bzip2:

1 2

# gzip etc # bzip2 etc

Para determinarmos qual o melhor compactador vamos analisar dois tipos de arquivos: texto puro e binrio. Para isso vamos cri-los.

Crie dois arquivos de texto puro. Abra o arquivo texto1 no editor vim e insira uma linha contento os nmeros de 0 a 9:

1 2

# vim texto1 123456789

Ainda dentro do vim, copie essa linha e cole 250.000 vezes e salve o arquivo:

1 2 3 4

<ESC > yy 25 :x! p

Crie uma cpia deste arquivo chamando-a de texto2:

# cp texto1 texto2

Crie um par de arquivos binrios para nossos testes. Utilizaremos como base, o programa aptitude:

Linux System Administration

Pgina 13

2.4 Compactadores GZIP, BZIP2

4Linux www.4linux.com.br

# cp / usr / bin / aptitude bin1

Duplique esse arquivo:

# cp bin1 bin2

Verique que foram criados quatro arquivos com tamanhos parecidos, aproximadamente 2.4MB, sendo dois deles binrios e dois texto puro:

# ls -lh bin * texto *

2.4.1 Gzip e Bzip2 com Arquivos de Texto


Utilize a tabela tab:comparacao1 para anotar os resultados obtidos nos testes com gzip e bzip em arquivos de texto puro:

Vamos iniciar os testes com os arquivos texto.

Determine o intervalo de tempo que leva para comprimir o arquivo texto1 com gzip:

Pgina 14

Linux System Administration

4Linux www.4linux.com.br

2.4 Compactadores GZIP, BZIP2

# time gzip texto1

Determine o tamanho nal do arquivo texto1 aps ser comprimido com gzip:

# ls -lh texto1 . gz

Determine o intervalo de tempo que leva para descomprimir o arquivo texto1.gz:

# time gunzip texto1 . gz

Vamos repetir os procedimentos utilizando o bzip2: Determine o intervalo de tempo que leva para comprimir o arquivo texto2 com bzip2:

# time bzip2 texto2

Determine o tamanho nal do arquivo texto2 aps ser comprimido com bzip2:

# ls -lh texto2 . bz2

Determine o intervalo de tempo que leva para descomprimir o arquivo texto2.bz2:

# time bunzip2 texto2 . bz2

Linux System Administration

Pgina 15

2.4 Compactadores GZIP, BZIP2

4Linux www.4linux.com.br

2.4.2 Gzip e Bzip2 com Arquivos Binrios


Utilize a tabela tab:comparacao2 para anotar os resultados obtidos nos testes com gzip e bzip em arquivos binrios:

Determine o intervalo de tempo que leva para comprimir o arquivo bin1 com gzip:

# time gzip bin1

Determine o tamanho nal do arquivo bin1 aps ser comprimido com gzip:

# ls -lh bin1 . gz

Determine o intervalo de tempo que leva para descomprimir o arquivo bin1.gz:

# time gunzip bin1 . gz

Vamos repetir os procedimentos utilizando o bzip2: Determine o intervalo de tempo que leva para comprimir o arquivo bin2 com bzip2:

# time bzip2 bin2

Determine o tamanho nal do arquivo bin2 aps ser comprimido com bzip2:

Pgina 16

Linux System Administration

4Linux www.4linux.com.br

2.5 Comando dd

# ls -lh bin2 . bz2

Determine o intervalo de tempo que leva para descomprimir o arquivo bin2.bz2:

# time bunzip2 bin2 . bz2

2.5 Comando dd
O comando dd tem a capacidade de copiar bit a bit. Segue um exemplo de seu uso: FAZER PARTIO MENOR E COPIAR

# dd if =/ dev / sda3 of =/ dev / sda11

O comando acima efetuar a clonagem da partio sda3, para a partio sda11.

Cuidado com o comando dd, qualquer falta de ateno pode danicar o sistema, de forma irrecupervel.

Onde: if=/dev/sda3 O nome do arquivo de entrada. of=/dev/sda11

Linux System Administration

Pgina 17

4451
Linux System Administration

www.4linux.com.br

Contedo
Backup com Ferramentas XFS 3.1 Introduo Terica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2 Gerenciando backup em parties XFS . . . . . . . . . . . . . . . . . . 3.3 Gerar backup com xfsdump . . . . . . . . . . . . . . . . . . . . . . . . . 3.4 Restaurando backup com xfsrestore . . . . . . . . . . . . . . . . . . . . 3.5 Criar e Restaurar Backup Remoto . . . . . . . . . . . . . . . . . . . . . Agendamento de Tarefas 3.6.1 Agendamento de Tarefas com AT 2 3 3 4 8 9 12 . . . . . . . . . . . . . . . . . 15

3.6 Introduo Terica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 3.6.2 Agendando Tarefas com o CRON . . . . . . . . . . . . . . . . . 19 3.6.3 Restringindo o uso do crontab . . . . . . . . . . . . . . . . . . . 24

Backup com ferramentas XFS


3.1 Introduo Terica
O XFS um sistema de arquivos de alta performance com suporte a journaling, que teve origem na plataforma IRIX da SGI. completamente multi-processo, e pode suportar grandes sistemas de arquivos com atributos estendidos, tamanho de blocos varivel. O XFS baseado em extents e utiliza bem o uso de Btrees (diretrios, extenses, e espao livre) para ajudar no ganho de performance e escalabilidade.

3.2 Gerenciando backup em parties XFS


Existem diversas ferramentas para gerenciar parties do tipo XFS, em nossa pratica vamos manipular a aplicao do sistema de arquivos, backup e restore no sistema de arquivos XFS. Antes de usar os comandos prepare sua infra adicionando um novo disco para o backup. Um novo disco sera usado em /dev/sdb para as tarefas, sendo que a primeira partio /dev/sdb1 deve conter 2GB e a segunda 6GB: Aplicando sistema de arquivos XFS O comando mkfs.xfs usado para aplicar sistema de arquivos XFS em uma partio. O comando tambm pode ser usado com a ag -t como em mkfs -t xfs.

3.3 Gerar backup com xfsdump

4Linux www.4linux.com.br

1 2 3

# mkfs . xfs / dev / sdb1 Ou # mkfs -t xfs / dev / sdb2

Como a partio j possui o sistema de arquivos XFS, crie o ponto de montagem, monte a partio e faa a cpia de novos arquivos.

1 2 3

# mkdir / media / xfs # mount -t xfs / dev / sdb1 / media / xfs # cp -R / var / media / xfs

3.3 Gerar backup com xfsdump


O comando xfsdump utilizado para fazer backup de arquivos com seus atributos em um sistema de arquivos. O xfsdump examina os arquivos e determina quais precisam ser salvos (backup), e copia esses arquivos para um disco especicado, como ta magntica ou outra mdia de armazenamento. A ferramenta usa diretivas especcas do XFS para otimizao, e tambm sabe como salvar os atributos extensos do XFS. Os backups criados pelo xfsdump so do tipo "endian safe"e assim podem ser transferidos entre mquinas Linux de diferentes arquiteturas e tambm entre mquinas IRIX. Crie um local para nosso backup em /media usando a segunda partio de 6GB

1 2

# mkdir / media / backup # mount -t xfs / dev / sdb2 / media / backup

Use o comando xfsdump para fazer o backup da partio /dev/sdb1

Pgina 4

Linux System Administration

4Linux www.4linux.com.br

3.3 Gerar backup com xfsdump

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36

# xfsdump -l

-p 3

-f / media / backup / backup . . dump

/ media / xfs

xfsdump : using file dump ( drive_simple ) strategy xfsdump : version 3. .4 ( dump format 3. ) - Running single - threaded ==================== dump label dialog ==================== please enter label for this dump session ( timeout in 3 -> backup ( Digite o nome do rotulo e tecle Enter ) session label entered : " backup " ----------------------- end dialog ----------------------xfsdump : level dump of debian :/ media / xfs sec )

xfsdump : dump date : Thu Apr 26 16: 5:12 2 12 xfsdump : session id : ce153353 - d33 -4 fc5 - aa88 -1 274 eeaff4b xfsdump : session label : " backup " xfsdump : ino map phase 1: constructing initial dump list xfsdump : ino map phase 2: skipping ( no pruning necessary ) xfsdump : ino map phase 3: skipping ( only one dump stream ) xfsdump : ino map construction complete xfsdump : estimated dump size : 171 535 4 bytes ==================== dump label dialog ==================== please enter label for media in drive ( timeout in 3 sec )

-> quit ( Digite o comando para sair do prompt do xfsdump ) ----------------------- end dialog ----------------------xfsdump : creating dump session media file xfsdump : dumping ino map xfsdump : dumping directories xfsdump : dumping non - directory files xfsdump : status at 16: 5:46: 1/3842 files dumped , , % data dumped , ( media , file )

Linux System Administration

Pgina 5

3.3 Gerar backup com xfsdump

4Linux www.4linux.com.br

34 seconds elapsed
37 38 39 40 41

xfsdump : ending media file xfsdump : media file size 16 22864 bytes bytes xfsdump : dump size ( non - dir files ) : 158883 8 xfsdump : dump complete : 38 seconds elapsed xfsdump : Dump Status : SUCCESS

Opes utlizadas:

-l: Especica um nvel de dump de 0 a 9. O nvel de dump determina o que sera armazenados no backup. Um dump de de nvel 0 absoluto onde todos os arquivos so armazenados. Um nvel de dump 1 a 9 referido como um dump incremental. Apenas os arquivos que foram alterados desde o dump de base (nivel 0) so despejados. -p: Faz com que relatrios de progresso sejam impressos no intervalo especicado (intervalo dada em segundos). O relatrio indica quantos arquivos foram despejadas, o nmero total de arquivos para descarregar, a porcentagem de dados, objeto de dumping, e o tempo decorrido. -f: Especica um destino de despejo. Um destino pode ser o caminho de um dispositivo (como uma unidade de ta), um arquivo regular ou uma unidade de ta remota.

Onde foi parar o backup da partio /dev/sdb1? Como resultado do comando foi criado um arquivo com a extenso .dump no diretrio /media/backup. Atravs deste arquivo podemos restaurar o backup completo da partio /dev/sdb1. Como incrementar o backup com apenas arquivos alterados? Primeiro faa uma alterao na partio gravando um novo arquivo ou alterando arquivos j gravados.

Pgina 6

Linux System Administration

4Linux www.4linux.com.br

3.3 Gerar backup com xfsdump

# echo " Esta uma nova altera o " >> / media / xfs / var / log / mail . log

Use o comando xfsdump para criar um backup do contedo alterado (backup incremental)

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28

# xfsdump -l 1 -p 3

-f / media / backup / backup .1. dump

/ media / xfs

xfsdump : using file dump ( drive_simple ) strategy xfsdump : version 3. .4 ( dump format 3. ) - Running single - threaded xfsdump : level 1 incremental dump of debian :/ media / xfs based on level dump begun xfsdump : dump date : Thu Apr 26 16:4 :17 2 12 xfsdump : session id : ff2f5ed8 -977 c -417 e -8538 -4 513 baf6939 xfsdump : session label : " backup " xfsdump : ino map phase 1: constructing initial dump list xfsdump : ino map phase 2: pruning unneeded subtrees xfsdump : ino map phase 3: skipping ( only one dump stream ) xfsdump : ino map construction complete xfsdump : estimated dump size : 38464 bytes ==================== dump label dialog ==================== please enter label for media in drive media label entered : " backup " ----------------------- end dialog ----------------------xfsdump : creating dump session media file xfsdump : dumping ino map xfsdump : dumping directories xfsdump : dumping non - directory files xfsdump : ending media file xfsdump : media file size 33968 bytes xfsdump : dump size ( non - dir files ) : 1 3 4 bytes xfsdump : Dump Status : SUCCESS ( media , file ) ( timeout in 3 sec ) -> backup ( Digite o nome do rotulo e tecle Enter )

Linux System Administration

Pgina 7

3.4 Restaurando backup com xfsrestore

4Linux www.4linux.com.br

Como resultado do comando foi criado um novo arquivo com a extenso .dump no diretrio /media/backup (backup.1.dump). Neste arquivo temos o incremento da partio (o que tem de novo). Compare o tamanho dos dois arquivos:

1 2 3 4

# cd / media / backup # ls -lh -rw -r --r - - 1 root root 153 M Abr 26 16:29 backup . . dump -rw -r --r - - 1 root root 34 K Abr 26 16:4 backup .1. dump

3.4 Restaurando backup com xfsrestore


O comando xfsrestore executa a funo reversa do xfsdump; podendo restaurar uma cpia de segurana completa de um sistema de arquivos. Backups incrementais subsequentes podem ser colocados depois em cima do backup completo. Arquivos nicos e subdiretrios podem ser restaurados a partir de backups completos ou parciais. Primeiro crie um novo local para armazenar o backup restaurado, e use o comando xfsrestore para restaurar o backup incremental:

1 2 3 4 5 6 7 8 9 10

# mkdir / backup # xfsrestore -f / media / backup / backup .1. dump / backup /

xfsrestore : using file dump ( drive_simple ) strategy xfsrestore : version 3. .4 ( dump format 3. ) - Running single threaded xfsrestore : searching media for dump xfsrestore : examining media file xfsrestore : dump description : xfsrestore : hostname : debian xfsrestore : mount point : / media / xfs

Pgina 8

Linux System Administration

4Linux www.4linux.com.br

3.5 Criar e Restaurar Backup Remoto

11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26

xfsrestore : volume : / dev / sdb1 xfsrestore : session time : Thu Apr 26 16:4 :17 2 12 xfsrestore : level : 1 xfsrestore : session label : " backup " xfsrestore : media label : " backup " xfsrestore : file system id : 3 eca 743 - cfa5 -45 b4 -8376 - c892e3793511 xfsrestore : session id : ff2f5ed8 -977 c -417 e -8538 -4 513 baf6939 xfsrestore : media id : ddf5382d -377 -4 aef -861 f - e39 edf46cd5 xfsrestore : using online session inventory xfsrestore : searching media for directory dump xfsrestore : reading directories xfsrestore : 3 directories and 54 entries processed xfsrestore : directory post - processing xfsrestore : restoring non - directory files xfsrestore : restore complete : seconds elapsed xfsrestore : Restore Status : SUCCESS

Toda a estrutura de diretrios com o arquivo auth.log foi restaurado. Liste o conteudo do diretrio /backup e comprove a restaurao.

1 2

# ls -l / backup / var / log / auth . log -rw -r ---- - 1 root root 9422 Abr 26 16:38 / backup / var / log / auth . log

Caso precise de uma restaurao completa do /dev/sdb1, use o comando:

# xfsrestore

-f / media / backup / backup . . dump / media / xfs

3.5 Criar e Restaurar Backup Remoto


A pratica bem parecida com o procedimento local mudando apenas, comandos adicionados para a conexo remota e a compactao dos arquivos. Em nossa infra

Linux System Administration

Pgina 9

3.5 Criar e Restaurar Backup Remoto

4Linux www.4linux.com.br

vamos precisa de 2 maquinas com SSH. Maquina 1: Debian 6 com IP 192.168.200.1 (pacote xfsdump instalado) Maquina 2: CentOS 6 com IP 192.168.200.2 (pacote xfsdump instalado) Backup Completo via SSH Na maquina Debian 6 use o comando xfdump para criar um backup completo do diretrio /media/xfs.

# xfsdump -l .168.2

-L backup

- / media / xfs | gzip | ssh root@192

.2 dd of =/ backup / backup$ ( date +% d -% m -% Y ) . gz

Descrio das opes utilizadas: xfsdump -l 0 -L backup - /media/xfs | : Comando usado para criar o backup completo (-l 0) do diretrio /media/xfs com o label "backup"; gzip | : O resultado do comando xfsdump sera compactado atraves deste comando; ssh root@192.168.200.2 : Envia o backup compactado para a maquina remota; dd of=/backup/backup$(date +%d-%m-%Y).gz : Na maquina remota o backup compactado sera gravado em um arquivo (dd of) com a data atual em /backup. Atravs da linha de comando em nosso exemplo, o backup foi criado de forma remota na maquina CentOS no diretrio /backup. No esquea de criar este diretrio na maquina CentOS. Restore completo via SSH

Pgina 10

Linux System Administration

4Linux www.4linux.com.br

3.5 Criar e Restaurar Backup Remoto

Para restaurar use o comando xfsrestore na maquina Debian apontando o diretrio de destino:

# ssh root@192 .168.2

.2 " dd if =/ backup / backup3 - 4 -2 12. gz " |

gunzip -c | xfsrestore - / mnt /

Descrio das opes utilizadas: ssh root@192.168.200.2 : Recebe o backup compactado da maquina remota; dd if=/backup/backup30-04-2012.gz | : Na maquina remota o backup compactado sera lido atravs de um arquivo (dd if); gunzip -c | : O resultado do comando anterior sera descompactado atraves deste comando; xfsrestore - /mnt/backup/ : Comando usado para restaurar o backup da maquina remota no diretrio /opt. Backup incremental via SSH Na maquina Debian altere um arquivo no diretrio /media/xfs e crie um backup incremental (-l 1) na maquina CentOS:

1 2

# echo " Novo conteudo " >> / media / xfs / var / log / auth . log # xfsdump -l 1 -L backup .168.2 gz - / media / xfs | gzip | ssh root@192 .2 dd of =/ backup / backup - incremental 1 - $ ( date +% d -% m -% Y ) .

Restore incremental via SSH Para restaurar apenas o que foi incrementado no backup completo:

Linux System Administration

Pgina 11

3.5 Criar e Restaurar Backup Remoto

4Linux www.4linux.com.br

# ssh root@192 .168.2

.2 " dd if =/ backup / backup - incremental 1

-3 - 4 -2 12. gz " | gunzip -c | xfsrestore - / opt

Dica: Para no precisar informar a senha crie uma congurao com chaves no SSH entre as maquinas Debian e CentOS!

Pgina 12

Linux System Administration

Agendamento de Tarefas
3.6 Introduo Terica
A crontab utilizada para agendar comandos que sero executados periodicamente, ao contrrio do comando at, que executa comandos pontualmente. H dois tipos de crontab: a de usurios e a do sistema. Ambas so arquivos que contm tabelas com informao de quando o comando especicado deve ser executado, sendo que cada linha corresponde a um nico agendamento. A crontab gerenciada pelo daemon crond, que a cada um minuto verica se h algum agendamento que deve ser executado e, se houver, executa-o. A crontab dos usurios pode ser acessada pelo comando:

# crontab [ - e | - r | - l ]

A tabela ca armazenada em arquivos com o nome do usurio dono da tabela. J a crontab do sistema encontrada no arquivo /etc/crontab e j possui agendamenSendo que o programa chamado run-parts quem executa os referidos agendamentos. O formato das crontabs dos usurios e do sistema so quase iguais. A exceo que a crontab do sistema possui um campo a mais, como pode ser visto a seguir:

tos para realizar as tarefas que se encontram nos diretrios /etc/cron.[hourly|daily|weekly|month

13

3.6 Introduo Terica

4Linux www.4linux.com.br

1 2 3 4 5

crontab ( usu rios ) # minuto hora dia m s diaDaSemana comando crontab ( sistema ) # minuto hora dia m s diaDaSemana USU RIO comando

A nica diferena entre as duas crontabs que na do sistema h um campo para especicar qual o usurio que ir executar o comando agendado.

Alm disso cada campo possui um conjunto de valores vlidos, sendo eles: minuto: varia de 0-59; hora: varia de 0-23; dia: varia de 1-31; ms: varia de 1-12; diaDaSemana: varia de 0-7, sendo: 0 ou 7 domingo 1 - segunda-feira 2 - tera-feira 3 - quarta-feira 4 - quinta-feira 5 sexta-feira 6 - sbado

usurio: um usurio vlido no sistema;

comando: o path completo para o comando.

Pgina 14

Linux System Administration

4Linux www.4linux.com.br

3.6 Introduo Terica

Podemos controlar quais usurios podem acessar ou no o cron. Para isso basta criar um dos arquivos: /etc/cron.allow ou /etc/cron.deny. A mesma dica vlida para o comando at: /etc/at.allow ou at.deny.

Considerando o formato j listado, podemos realizar agendamentos utilizando alguns operadores que facilitam o trabalho. So eles: vrgula (,) -> especica uma lista de valores, por exemplo: 1,3,4,7,8; hifen (-) -> especica um intervalo de valores, por exemplo: 1-15 (de 1 a 15); asterisco (*) -> especica todos os valores possveis; barra (/) -> especica pulos de valores, por exemplo: se no campo hora utilizarmos */3 o comando ser executado s 0,3,6,9,12,15,18,21 horas;

3.6.1 Agendamento de Tarefas com AT


O comando "at"pode agendar tarefas de forma semelhante ao cron, e integrado interface de linha de comando do Linux. muito eciente se aplicado no agendamento de tarefas que sejam disparadas somente uma vez. O at permite o controle dos usurios que podem agendar comandos atravs dos arquivos /etc/at.allow e /etc/at.deny. Estes arquivos so organizados no formato de um usurio por linha. Durante o agendamento vericado primeiro o arquivo /etc/at.allow (listando quem pode executar o comando) e depois /etc/at.deny. Caso eles no existam, o agendamento de comando permitido a todos os usurios. Verique se a data e a hora do sistema esto corretas:

Linux System Administration

Pgina 15

3.6 Introduo Terica

4Linux www.4linux.com.br

# date

Aps essa vericao podemos comear a realizar agendamentos.

Agende para 10 minutos no futuro um backup do diretrio /etc, colocando seu backup no diretrio /backup. Agende a tarefa de backup:

1 2 3

# at HH : mm MM / DD / YYYY at > tar zcvf / backup / backup - etc . tar . gz / etc / at > ( Ctrl + d )

Agendada esta tarefa, conrme-a listando todos os agendamentos pendentes:

# atq

Vamos explorar o diretrio onde cam os agendamentos:

# cd /var/spool/cron/atjobs # ls -la

# cd /var/spool/at # ls -la

Mostre o contedo dos arquivos contidos nesse diretrio:

Pgina 16

Linux System Administration

4Linux www.4linux.com.br

3.6 Introduo Terica

# cat ( agendamento )

Perceba que no agendamento, temos nossas variveis e o comando.

Vamos realizar outro agendamento qualquer, para executar em 15 minutos, para que possamos aprender como apag-lo:

1 2 3

# at HH : mm MM / DD / YYYY at > echo " Teste " > / tmp / at . out at > ^d

Liste os agendamentos correntes e verique que um novo arquivo foi criado no diretrio de spool do at.

1 2

# cd / var / spool / cron / atjobs # ls -la

Agendada esta tarefa, conrme-a listando todos os agendamentos pendentes:

# atq

1) Remova o ltimo agendamento:

# atrm [n mero_agendamento ]

Linux System Administration

Pgina 17

3.6 Introduo Terica

4Linux www.4linux.com.br

Liste os agendamentos ativos e liste o contedo do diretrio de spool do at e veja que o job foi removido:

1 2

# atq # ls / var / spool / cron / atjobs

Verique o backup que estava agendado pelo comando at:

# ls / backup

Todos usurios comuns podem utilizar o comando at, por padro somente vem criado o arquivo /etc/at.deny, neste arquivo so congurados os usurios que no podem utilizar o agendador de tarefas at, caso queira bloquear o uso de alguns usurios especcos adicione-os neste arquivo, sendo um usurio por linha, se quiser bloquear o uso de todos, crie o arquivo /etc/at.allow em branco. Caso queira habilitar o uso do agendador de tarefas at para apenas alguns usurios especcos, crie o arquivo /etc/at.allow e coloque um nome por linha. Bloqueie o uso do agendador de tarefas at para usurios comuns:

# touch / etc / at . allow

Teste o bloqueio com o usurio mandark:

$ at 12:

1/ 1/2 14

Pgina 18

Linux System Administration

4Linux www.4linux.com.br

3.6 Introduo Terica

3.6.2 Agendando Tarefas com o CRON


Cuidados especiais com scripts

Utilize nos comandos do script e no agendador, sempre o (path) caminho completo do aplicativo a ser executado, exemplo para o comando tar, use /bin/tar, tambm na linha de comando que inserir no cron use o caminho completo para o script, por exemplo, executar um script que est em /home/zago, use a linha: /home/zago/nome-do-script e no somente nome-do-script. Muito cuidado com scripts, o comodismo pode cair no esquecimento e no atualizar o script de backup quando incluir novos servios, diretrios ou usurios, monitore constantemente, teste e avalie o que est sendo feito. Tenha os seguintes cuidados quando elaborar scripts para execuo pelo cron. Nestes scripts no pode conter comandos que requer interao com o usurio, tais como pedir senha para completar a conexo de um ftp, nestes casos deve ser colocado todas as instrues dentro do script de maneira que possa completar a conexo passando o login e senha. Comandos que requerem conrmao para execuo, por exemplo, apagar arquivos, o rm pede conrmao, mas com o parmetro -rf no pede, ento seria assim: rm -rf <arquivo, diretrio ou /caminho/o que deve apagar> No deve ter nenhum comando que pea conrmao ou qualquer interao com o usurio. Fique atento s permisses, quando possvel agende como root para executar o script, use o "sudo"para dar permisses de execuo em programas que requer poderes de root na execuo, acesso a diretrios de backup e etc.... Espao em disco quando baixar arquivos, backup ..., comandos de parar servios ou manipular arquivos em uso. Revise periodicamente scripts que requerem atualiza-

Linux System Administration

Pgina 19

3.6 Introduo Terica

4Linux www.4linux.com.br

o, tais como backup de dados dos usurios, incluir novos usurios... O cron limita a busca nos diretrios /bin e /usr/bin, portanto indique o caminho completo do programa ou script, ou melhor indique sempre, mesmo que estejam nestes diretrios. Para agendar as tarefas usamos o comando crontab com a sintaxe descrita abaixo:

# crontab [ - u usu rio ] { -e | -l | -r }

u -> permite que o superusurio agende tarefas para outros usurios, pois o comando su pode atrapalhar o crontab. Um usurio comum no precisa usar essa opo para especicar ele prprio. e -> edita o arquivo de tarefas agendadas pelo usurio. A formatao desse arquivo ser descrita mais adiante. l -> lista o arquivo de tarefas agendadas pelo usurio. r -> apaga o arquivo de tarefas agendadas pelo usurio. Basicamente, para agendarmos uma tarefa deveremos editar o nosso arquivo agenda com o comando:

crontab -e

O arquivo agenda tem as seguintes caractersticas: as linhas em branco, espaos iniciais e tabs so ignorados. As linhas cujo primeiro caractere no-branco for um "#"so comentrios, e so ignorados. Uma linha ativa em um arquivo agenda uma denio de ambiente ou um comando do cron. Denio de ambiente:

Pgina 20

Linux System Administration

4Linux www.4linux.com.br

3.6 Introduo Terica

nome=valor -> A string valor pode ser colocada entre aspas (simples ou duplas, mas correspondentes) para preservar espaos iniciais ou nais. Vrias variveis de ambiente so denidas automaticamente pelo servidor cron. SHELL denida como /bin/sh, LOGNAME e HOME so denidos a partir da linha do /etc/passwd referente ao usurio que agendou a tarefa. HOME e SHELL podem ser modicadas, mas LOGNAME no. O formato de um comando do cron em grande parte o padro V7. Cada linha tem cinco campos de hora e data, seguidos por um comando. Os comandos so executados pelo servidor cron quando os campos minuto, hora, e ms correspondem hora atual, e quando pelo menos um dos campos de dia (dia do ms, ou dia da semana) correspondem ao dia atual. Entre na crontab do usurio para edit-la:

# crontab -e

Para entendermos a diferena entre os campos dia do ms e dia da semana, vamos agendar uma tarefa no crontab para escrever a data no terminal 2:

1 2

# minuto hora dia_do_mes m s * * 13 9

dia_da_semana comando 6 / bin / date > / dev / tty2

No comando acima foi feito um agendamento para ser executado, todos os minutos de todas as horas, no dia 13 de setembro e todos os sbados de setembro, ou seja, os campos dia do ms e dia da semana trabalham de forma separada. Vamos mudar nossa data e hora para vericarmos:

# date

91323582 13

Linux System Administration

Pgina 21

3.6 Introduo Terica

4Linux www.4linux.com.br

Mudamos a data para o dia 13 de setembro de 2013, uma sexta-feira. Visualize a data:

# cal 2 13

Visualize no terminal 2 pela data, que, executado o comando hoje, dia 13 de setembro de 2013 e que amanh, sbado ele tambm executado. Visualize os agendamentos feitos pelo o usurio.

# crontab -l

Onde cam armazenados os agendamentos feitos pelos usurios com o crontab -e?

# cd /var/spool/cron/crontabs # ls

# cd /var/spool/cron # ls

No apague ou edite o seu agendamento dentro desse diretrio, use os comandos para fazer isso.

Aps vericar que os agendamentos foram efetuados corretamente, apague todos os agendamentos do usurio.

# crontab -r

Pgina 22

Linux System Administration

4Linux www.4linux.com.br

3.6 Introduo Terica

Para apagar somente um agendamento do usurio, use o crontab -e e retire a linha desejada.

Agora que aprendemos a utilizar a crontab do usurio podemos usar a crontab do sistema que opera praticamente da mesma forma, apenas tem um campo a mais, o usurio que executar o script. Seu arquivo de congurao o /etc/crontab. Debian:

1 2 3 4 5 6 7 8 9

# cat / etc / crontab SHELL =/ bin / sh PATH =/ usr / local / sbin :/ usr / local / bin :/ sbin :/ bin :/ usr / sbin :/ usr / bin #m h dom mon dow user command 17 * * * * root cd / && run - parts -- report / etc / cron . hourly 25 6 * * * root test -x / usr / sbin / anacron || ( cd / && run - parts -report / etc / cron . daily ) 47 6 * * 7 root test -x / usr / sbin / anacron || ( cd / && run - parts -- report / etc / cron . weekly ) 52 6 1 * * root test -x / usr / sbin / anacron || ( cd / && run - parts -report / etc / cron . monthly )

CentOS:

1 2 3 4 5 6 7 8

# cat / etc / crontab SHELL =/ bin / sh PATH =/ sbin :/ bin :/ usr / sbin :/ usr / bin MAILTO = root HOME =/ 1 2 * 4 * * * * * * root root run - parts / etc / cron . hourly run - parts / etc / cron . daily

Linux System Administration

Pgina 23

3.6 Introduo Terica

4Linux www.4linux.com.br

9 10

22 42

4 4

* 1

* * *

root root

run - parts / etc / cron . weekly run - parts / etc / cron . monthly

O programa run-parts executa todos os scripts executveis dentro de um certo diretrio. Ento com essas linhas, temos diretrios programados para executar programas de hora em hora, diariamente, semanalmente ou mensalmente. Abaixo a tabela: Ainda dentro do diretrio /etc, temos quatro agendamentos pr-denidos: cron.hourly, cron.daily, cron.weekly e cron.montly Onde: cron.hourly: de hora em hora cron.daily: de dia em dia cron.weekly: de semana em semana cron.montly: de ms em ms

3.6.3 Restringindo o uso do crontab

Os arquivos /etc/cron.allow e /etc/cron.deny so usados para restringir acesso ao cron. O formato de ambos arquivos de controle de acesso consiste em um nome de usurio por linha. Espaos em branco no so permitidos em nenhum destes arquivos. O daemon do cron no precisa ser reiniciado se os arquivos de controle de acesso forem modicados. Os arquivos de controle de acesso so lidos a cada vez que o usurio tentar adicionar ou apagar uma tarefa do cron. O usurio root pode usar o cron sempre, independentemente dos nomes de usurio listados nos arquivos de controle de acesso.

Pgina 24

Linux System Administration

4Linux www.4linux.com.br

3.6 Introduo Terica

Se o arquivo /etc/cron.allow existe, somente os usurios listados neste podero usar o cron, e ento o arquivo cron.deny ser ignorado. Se o arquivo cron.allow no existe, os usurios listados no cron.deny no podero usar o cron.

Linux System Administration

Pgina 25

4451
Linux System Administration

www.4linux.com.br

Contedo
Automatizao de Tarefas com Shell Script I 4.1 Introduo Terica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2 Usando os nmeros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.3 Usando a estrutura se . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.5 Exemplos de script com IF 2 3 6 6

4.4 Utilizando a estrutura if . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 . . . . . . . . . . . . . . . . . . . . . . . . . 11

Automatizao de Tarefas com Shell Script I


4.1 Introduo Terica
Tarefas administrativas so, muitas vezes, longas e repetitivas. Podemos automatizar esses procedimentos atravs de scripts. Na verdade, os scripts podem nos auxiliar muito, numa vasta gama de atividades. O que um script? uma sequncia de instrues que so executadas toda vez que o mesmo chamado. Mas, qual a diferena entre um script e um programa, j que ambos so sequncias de instrues? Um script, um programa no compilado. O processador da mquina s capaz de executar programas binrios, isto , compilados especicamente para ele. Dessa forma, necessrio um programa que interprete esse script, em tempo de execuo, para que o mesmo possa ser executado. No nosso caso, esse programa ser uma shell, j que estamos falando de shell scripts. Sendo uma linguagem de programao, a Shell Script possui uma srie de estruturas de controle como loops e condicionais, mas que so estudadas apenas em cursos mais avanados. Estudando um exemplo Vejamos o seguinte exemplo de Shell Script:

4.1 Introduo Terica

4Linux www.4linux.com.br

1 2 3 4 5 6 7 8

# vim shell . sh # !/ bin / bash # Meu primeiro shell script cd ~ clear ls - alh date cd -

Este um script bem simples. As linhas que comeam pelo smbolo "cedilha"so comentrios, ou seja, tudo que aparece depois do desse carcter desprezado. Os comentrios so muito importantes nos programas, pois so uma forma de documentlos. Imagine se voc tiver que fazer uma alterao num programa escrito a um ano antes. Ser que voc ir se lembrar de todas as estruturas e variveis que utilizou? Provavelmente no. Se for outra pessoa quem tiver que efetuar essa mudana, a situao ser pior ainda! Mas a primeira linha, na qual aparece um comentrio, possui uma caracterstica um tanto estranha. Na verdade, a primeira linha de um script, indica qual ser o interpretador daquele script. Em nosso exemplo ser o programa binbash, uma shell. Se estivssemos criando um script com a linguagem de programao Perl, a primeira linha seria algo como usrbinperl. O script, propriamente dito, executa 4 comandos simples: Acessar o diretrio do usurio corrente (cd ); limpar a tela (clear); listar o contedo diretrio corrente (ls -alh); imprimir a data (date) e voltar ao diretrio original (cd -). Executando o script Um programa ou script no GNU/Linux deve possuir permisso de execuo. Supondo que nosso script denomina-se shell.sh, para podermos execut-lo, devemos executar o comando:

# chmod u + x shell . sh

Pgina 4

Linux System Administration

4Linux www.4linux.com.br

4.1 Introduo Terica

E em seguida executar o script:

# ./ shell . sh

Em algumas situaes, pode ser necessrio fornecer parmetros para um script. Por exemplo, se ao invs de listar o contedo do diretrio pessoal do usurio, quisssemos que o script listasse o contedo de um diretrio qualquer. Supondo que esse novo script chama-se script2.sh, uma possvel forma de utilizao do script seria:

# ./ script2 . sh / etc

Para passar parmetros para esse script, precisamos conhecer a funo de algumas variveis: $1, $2. Quando passamos algum parmetro para o nosso script, esse parmetro ca armazenado em uma varivel especca. Por exemplo:

# ./ script3 . sh

par metro1 par metro2 par metro3

Para conseguirmos resgatar o valor desses parmetro, precisamos chamar as variveis $1,$2 e $3, por exemplo:

1 2 3 4 5 6 7 8

# vim #

script3 . sh

# !/ bin / bash # Esse script pega o valor dos par metros e imprimi na tela . echo $1 echo $2 echo $3 # ./ script3 42 the answer

Linux System Administration

Pgina 5

4.2 Usando os nmeros

4Linux www.4linux.com.br

4.2 Usando os nmeros


Muitas vezes quando fazemos scripts, precisamos de uma funo que faa o trabalho das operaes matemticas bsicas como soma, diviso, multiplicao e subtrao. Em shell script podemos usar o comando expr para realiz-las. J a contagem de linhas feita pelo comando wc. E o comando cut serve para cortar a sada no ponto especicado pelo separador. Vamos ver esse exemplo: um script que deve dizer quantos usurios esto presentes, quantos grupos esto presentes e no nal mostrar quantos objetos meu sistema tem, a soma dos usurios e dos grupos:

1 2 3 4 5 6 7 8 9

# !/ bin / bash # echo " Aguarde ..... " sleep 3 G= wc -l / etc / group | cut -d " " -f1 U= wc -l / etc / passwd | cut -d " " -f1 echo "O sistema possui $U usu rios . " echo "O sistema possui $G grupos . " echo "O sistema possui expr $G + $U objetos . "

4.3 Usando a estrutura se


At o presente momento, zemos scripts que no possuem escolhas, ou seja, comandos de execuo em linha de comando em srie, utilizando nossa lgica para fazer com que aquele script seja executado corretamente. Mas se qualquer coisa acontecer no meio do caminho, no temos a oportunidade de trabalhar com as famosas exceptions. As exceptions, tambm conhecidas como excees, servem para ajudar quando o

Pgina 6

Linux System Administration

4Linux www.4linux.com.br

4.3 Usando a estrutura se

resultado de alguma parte do script pode ter vrios rumos. Usando a condio se, possvel testar o resultado de uma condicional. Por exemplo:

a=1 b=2 SE b >a ENTO IMPRIMA bSEN OIM P RIM Aa FIMSE

A varivel $? A varivel interrogao conhecida por testar o valor de retorno de qualquer comando quando mostrada aps sua execuo. Com ela podemos vericar se o programa foi executado com sucesso ou no. Para isso basta saber que essa varivel tem dois retornos principais.

1 2 3

# pwd # echo $? #

Quando o resultado dessa varivel igual a 0: Comando executado com sucesso!

1 2 3

# pws # echo $? # !=

Quando o resultado diferente de 0, quer dizer que existiu algum problema na execuo do comando. Cada programa tem sua tabela e excees, mas sempre retornam 0 quando o programa bem executado. O comando test

Linux System Administration

Pgina 7

4.3 Usando a estrutura se

4Linux www.4linux.com.br

O teste de condicionais (strings, matemticas e em arquivos) em Shell Script feito atravs do comando test. Vamos conferir algumas formas de testar condicionais. Testando strings

1 2 3

# test " uva " = " uva " # echo $? #

1 2 3

# test " uva " = " banana " # echo $? # 1

Testando expresses matemticas

1 2 3

# test 5 - eq 2 # echo $? # 1

1 2 3

# test 2 - eq 2 # echo $? #

Testando expresses em arquivos

1 2 3

# test -z $vazia # echo $? #

Pgina 8

Linux System Administration

4Linux www.4linux.com.br

4.3 Usando a estrutura se

1 2 3 4

# var = valor # test -z $var # echo $? # 1

Acima mostramos algumas formas de se testar as condicionais utilizadas dentro da estrutura se. Lembre-se que podemos usar as condicionais tanto dentro, quanto fora da estrutura se, depende do caso e do meio.

Abaixo podemos ver uma lista de operadores para nossa diverso.

Existem muitos outros operadores para que possamos dominar o mundo e consequentemente o sistemas UNIX com shell script. Estes so apenas os essenciais!

Linux System Administration

Pgina 9

4.4 Utilizando a estrutura if

4Linux www.4linux.com.br

4.4 Utilizando a estrutura if


Abaixo alguns exemplos realmente prticos de como utilizar a estrutura if.

1 2 3 4 5 6 7 8 9 10

# !/ bin / bash ## Primeiro script - Verificando se um usu rio existe echo " Digite usu rio para consulta : " read USER REPLY =$( getent passwd | grep $USER ) if [ -z $REPLY ] ; then echo " Usu rio $USER n o existe ! " else echo " Usu rio Existe " fi

Ao invs de vericar se a varivel que recebia o resultado do comando estava vazia, poderamos ter utilizado o comando test antes da estrutura e checar apenas seu cdigo de erro:

1 2 3 4 5 6 7 8 9 10 11 12 13

# !/ bin / bash ## Primeiro script - Verificando se um usu rio existe # echo " Digite usu rio para consulta : " read USER REPLY =$( getent passwd | grep $USER ) test -z $REPLY if [ $? - eq else echo " Pagamento em dia " fi ] ; then echo " Usu rio $USER n o existe ! "

Pgina 10

Linux System Administration

4Linux www.4linux.com.br

4.5 Exemplos de script com IF

4.5 Exemplos de script com IF


Exemplo 1: Verica se um determinado usurio esta logado no sistema.

1 2 3 4 5 6 7 8 9 10 11 12

# !/ bin / bash clear echo " Digite o nome do usu rio " read USER if then clear echo $USER esta logado else clear echo $USER n o est logado fi who | grep $USER > / dev / null

Exemplo 2: Pesquisa uma palavra dentro de um arquivo.

1 2 3 4 5 6 7 8 9

# !/ bin / bash clear echo " Escreva o nome do arquivo e a palavra a ser pesquisada : " read file word if grep $word $file > / dev / null then clear echo "A palavra $word existe no arquivo $file . " fi

Linux System Administration

Pgina 11

4451
Linux System Administration

www.4linux.com.br

Contedo
Automatizando Tarefas com Shell Script II 5.1 Introduo Terica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.2 Utilizando a estrutura case . . . . . . . . . . . . . . . . . . . . . . . . . 5.3 Utilizando a estrutura while . . . . . . . . . . . . . . . . . . . . . . . . 5.4 Utilizando a estrutura for . . . . . . . . . . . . . . . . . . . . . . . . . . 5.5 Transformar Shell Script em binrio . . . . . . . . . . . . . . . . . . . . . 2 3 3 5 6 8

Automatizando Tarefas com Shell Script II


5.1 Introduo Terica
Tarefas administrativas so, muitas vezes, longas e repetitivas. Podemos automatizar esses procedimentos atravs de scripts. Como exemplo podemos utilizar o "case"para comandos de uxo, tal como o if, mas enquanto if testa expresses no exatas, o "case"vai agir de acordo com resultados exatos. Temos o "while"para testa continuamente uma expresso, at que ela se torne falsa, e ainda contamos com o lao "for"que vai substituindo uma varivel por um valor,e vai executando os comandos que so pedidos.

5.2 Utilizando a estrutura case


Outra estrutura bastante til quando vrios if precisam ser declarados a estrutura case.

case <valor> in <padro1>) comandos ;; <padro2>) comandos ;; <padro3>) comandos ;; *) comandos ;; esac

5.2 Utilizando a estrutura case

4Linux www.4linux.com.br

Exemplo 1: Executar comandos dependendo do usurio digitado.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17

# !/ bin / bash clear echo " Digite um nome de usu rio " read Usuario case $Usuario in aluno ) clear ; ls / etc ; cal ; date ;; root ) clear ; whoami ;; *) clear echo $Usuario n o existe ;; esac

Exemplo 2: Script que exibe informaes do sistema.

1 2 3 4 5 6 7 8 9 10 11 12

# !/ bin / bash clear echo " Escolha uma op o para informa es da maquina ( Digite o numero )" echo "1- Horario do sistema " echo "2- Tempo que o servidor esta ligado " echo "3- Quantidade de usu rio logados " echo "4- Sair " read ESC case $ESC in 1) H=$( uptime | awk -F " " { print $1 } ) echo " Agora s o $H "

Pgina 4

Linux System Administration

4Linux www.4linux.com.br

5.3 Utilizando a estrutura while

13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28

;; 2) T=$( uptime | awk -F " " { print $3 } ) echo "O sistema esta $T ligado " ;; 3) U=$( uptime | awk -F " " { print $4 } ) echo " Existem $U atualmete logados " ;; 4) echo " Bye ... " ;; *) echo " Op o invalida " ;; esac

5.3 Utilizando a estrutura while


Quando repeties so necessrias podemos utilizar estruturas de looping como while e for.

1 2 3

while [< express o > ]; do comandos done

Exemplo 1: Vericar se um site esta no ar.

1 2 3

# !/ bin / bash clear echo " Digite o endere o de um site "

Linux System Administration

Pgina 5

5.4 Utilizando a estrutura for

4Linux www.4linux.com.br

4 5 6 7 8

read SITE while ping - c1 $SITE > / dev / null 2 >&1 do echo "O site $SITE est no ar . " done

Exemplo 2: Cria quantos arquivos voc indicar com uma determinada extenso.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

# !/ bin / sh clear echo " Digite o nome do arquivo " read ARQ clear echo " Digite a extens o do arquivo " read EXT clear echo " Digite o numero de arquivos criados " read NUM i =1 while [ $i - le $NUM ] do touch done $ARQ$i . $EXT i= expr $i + 1

5.4 Utilizando a estrutura for


O for pode ser utilizado efetuar um looping no estilo do while ou para processar uma lista.

for VARIAVEL in < lista > ; do

Pgina 6

Linux System Administration

4Linux www.4linux.com.br

5.4 Utilizando a estrutura for

2 3

comandos com a VARIAVEL done

Exemplo 1: Compactar todos os arquivos do diretrio atual.

1 2 3 4 5

# !/ bin / bash for i in ls -1 do tar - cvzf $i . tar . gz $i done

Exemplo 2: Apaga todos os arquivos de uma determinada extenso.

1 2 3 4 5 6 7

# !/ bin / bash clear echo " Digite a extens o dos arquivos que voc quer apagar " read ARQ for i in *. $ARQ ; do rm $i done

Exemplo de Loop Vamos criar um script que far uma vericao de quais mquinas esto ativas na rede, para isso usaremos o comando ping.

ping 192.168.2

.254

Usaremos algumas opes do comando ping para que ele no entre num loop, como acontece por padro, e espere nossa interao para interrompe-lo:

Linux System Administration

Pgina 7

5.5 Transformar Shell Script em binrio

4Linux www.4linux.com.br

# ping -c 2 -w 2 192.168.2

.1

Iremos agora elaborar o shell script hostup.sh

1 2 3 4 5 6

# !/ bin / bash for IP in $ ( seq 1 15) ; do ping -c 2 -w 2 192.168.2 echo " 192.168.2 echo " 192.168.2 done . $IP > / dev / null && . $IP - UP " || . $IP - DOWN "

D permisso de execuo ao script e execute-o para test-lo:

1 2 3

# cd / sbin # chmod u + x hostup . sh # hostup . sh

Programar em shell script uma arte, e como na arte, em shell o limite a sua imaginao. Para se aprofundar nesse assunto:

http://jneves.wordpress.com/ http://aurelio.net

5.5 Transformar Shell Script em binrio


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

# wget -c http :// www . datsi . fi . upm . es /~ frosal / sources / shc -3.8.6. tgz

Descompacte o arquivo:

# tar - xvzf shc -3.8.6. tgz

Copie o binrio o shc para /usr/local/bin

# cp shc -3.8.6/ shc / usr / local / bin /

Compile seu shell script usando o comando:

# shc -v -r -f script

Opes de linha de comando: -v: Modo verbose (mostra o que esta fazendo); -r: Gera um binrio compatvel com mais de um sistema; -f: Opo para o compilador buscar o arquivo; Copie o arquivo binrio para /bin (assim todos os usurios tero acesso)

# cp script . x / bin / script

Acerte as permisses do arquivo para que todos os usurios tenham acesso.

Linux System Administration

Pgina 9

5.5 Transformar Shell Script em binrio

4Linux www.4linux.com.br

# chmod 755 / bin / script

Acesse o sistema com um usuario comum e digite o nome do script

Pgina 10

Linux System Administration

4451
Linux System Administration

www.4linux.com.br

Contedo
Gerenciamento de dados SQL 6.1 Introduo ao SGBD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.2 Instalao do MySQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.3 Criao do Banco de Dados e Tabelas . . . . . . . . . . . . . . . . . . . 6.4 Inserir e pesquisar dados em tabelas . . . . . . . . . . . . . . . . . . . . 6.5 Atualizar campos e registros em tabelas . . . . . . . . . . . . . . . . . . 6.6 Alterando privilgios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 3 3 4 6 6 7

Gerenciamento de dados SQL


6.1 Introduo ao SGBD
Antes de iniciar a criao de bancos de dados e tabelas, preciso ter instalado na maquina um SGBD. Que consiste um sistema gestor de base de dados, onde disponibiliza uma interface para que clientes (usurios), possam interagir com o banco de dados, de varias maneiras como inserir dados, pesquisar, excluir, entre outras tarefas. Os comandos so executados usando a linguagem SQL (Structured Query Language - Linguagem de Consulta Estruturada), que uma linguagem para banco de dados relacional, facilitando a interao com vrios SGBDs, como por exemplo o Firebird, PostgreSQL, MySQL, entre outros.

As provas do LPI iro cobrar comandos bsicos de SQL.

6.2 Instalao do MySQL


1) Para os nossos testes, vamos utilizar o MySql:

# aptitude install mysql - server

6.3 Criao do Banco de Dados e Tabelas

4Linux www.4linux.com.br

2) Ganhando acesso ao Banco de dados:

# mysql -u root -p

3) Visualizando databases:

mysql > show databases ;

6.3 Criao do Banco de Dados e Tabelas


1) Criando database:

mysql > create database lpi ;

2) Utilizando database:

mysql > use lpi ;

3) Veremos agora como criar as tabelas, onde os dados sero armazenados. A sntese de criao de tabelas do MySQL a seguinte: CREATE [TEMPORARY] TABLE [IF NOT EXISTS] nome_tabela [(denio_create,...)] [table_options] [select_statement] Novamente podemos nos valer do parmetro opcional IF NOT EXISTS para executarmos o comando sem termos certeza da existncia ou no da tabela. Para criarmos uma tabela executamos a seguinte parte da sintaxe: CREATE TABLE nome_tabela.

Pgina 4

Linux System Administration

4Linux www.4linux.com.br

6.3 Criao do Banco de Dados e Tabelas

Mas mais comum criarmos a tabela j acompanhada de seus campos (elds). Vamos criar no nosso exemplo a tabela LPI com os seguintes campos: id - campo de identicao; certicacao - ttulo do nvel da prova; prova - tipo de prova; nota - notas da prova; A sintaxe completa do comando ser:

1 2 3 4 5 6

mysql > create table lpi ( -> id int (1 ) unsigned not null auto_increment , -> certificacao varchar (8 ) not null , -> prova int (4) unsigned not null , -> nota varchar (8 ) not null , -> primary key ( id ) ) ;

Os campos so denidos da seguinte forma: nome_campo tipo [ NULL | NOT NULL ] [ DEFAULT valor_padro] [ AUTO_INCREMENT ] No campo id por exemplo o tipo int(10) com o modicador unsigned, ele no aceita valores nulos (not null) e auto_increment, ou seja, seu valor denido automaticamente, aumentando de 1 (um) em 1 (um) toda vez que um novo registro adicionado. Para fazer uso desta funcionalidade necessrio adicionar o valor 0 ou null neste campo. No campo certicacao escolhemos o tipo varchar(80) o que signica que este campo aceita caracteres alfanumricos com no mximo 80 deles. O campo tambm no pode ser nulo. 4) Visualizando as tabelas:

Linux System Administration

Pgina 5

6.4 Inserir e pesquisar dados em tabelas

4Linux www.4linux.com.br

mysql > show tables ;

5) Liste a estrutura da tabela:

mysql > desc lpi ;

Com o retorno do comando desc podemos ver quais os campos da tabela, qual o tipo dos campos, se aceitam ou no valores nulos, se existe uma chave primria, e se algum campo possui a propriedade auto_increment.

6.4 Inserir e pesquisar dados em tabelas


1) Para preencher os campos da tabela

mysql > INSERT INTO lpi ( id , certificacao , prova , nota ) VALUES ( 1 , LPI , 1 1 , 63 ) ;

2) Selecionar todos os registros da tabela lpi onde o campo nota possui o valor igual a 101:

mysql > SELECT * FROM lpi WHERE nota = 1 1 ;

6.5 Atualizar campos e registros em tabelas


1) Adicione um novo campo na tabela:

Pgina 6

Linux System Administration

4Linux www.4linux.com.br

6.6 Alterando privilgios

1 2

mysql > alter table lpi -> add nome varchar (8 ) not null ;

2) Liste a estrutura da tabela:

mysql > desc lpi ;

3) Selecionar todos os registros da tabela lpi:

mysql > select * from lpi ;

4) Atualize o registro 1 onde o campo id possui o valor igual a 1:

mysql > update lpi set nome = fulano where id = 1 ;

6.6 Alterando privilgios


1) Adicionando usurio:

1 2 3

mysql > GRANT ALL PRIVILEGES ON lpi .* TO curso@localhost IDENTIFIED BY cursolinux WITH GRANT OPTION ; FLUSH PRIVILEGES ;

Atribui todos os privilgios todas as tabelas do banco lpi ao usurio curso, a partir da mquina localhost, cuja senha cursolinux. O comando FLUSH PRIVILEGES atualiza as novas alteraes no daemon do MySQL. Caso o usurio curso no exista, um novo usurio ser criado.

Linux System Administration

Pgina 7

6.6 Alterando privilgios

4Linux www.4linux.com.br

2) Saindo do Mysql:

mysql > quit

3) Faa testes de login com o usurio root e o usurio curso:

1 2

# mysql -u root -p # mysql -u curso -p

Pgina 8

Linux System Administration

4451
Linux System Administration

www.4linux.com.br

Contedo
Administrao de Usurios I 7.1 Registro de usurios no sistema . . . . . . . . . . . . . . . . . . . . . . 7.1.1 Arquivo /etc/passwd . . . . . . . . . . . . . . . . . . . . . . . . . 7.1.2 Arquivo /etc/shadow . . . . . . . . . . . . . . . . . . . . . . . . . 7.2 Levantamento de informaes dos usurios . . . . . . . . . . . . . . . 7.2.1 Comando chage . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.2.2 Comando id . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.2.3 Comando groups . . . . . . . . . . . . . . . . . . . . . . . . . . 7.2.4 Comando nger . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.2.5 Comando users . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 4 5 7 8 8 8 9 9 9

7.2.6 Comando who . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 7.2.7 Comando w . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 7.3 Criando grupo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 7.3.1 Comando addgroup . . . . . . . . . . . . . . . . . . . . . . . . . 11 7.3.2 Comando groupadd . . . . . . . . . . . . . . . . . . . . . . . . . 11 7.3.3 Comando adduser . . . . . . . . . . . . . . . . . . . . . . . . . . 12 7.4 Criando Usurios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 7.4.1 Comando adduser . . . . . . . . . . . . . . . . . . . . . . . . . . 13 7.4.2 Comando useradd . . . . . . . . . . . . . . . . . . . . . . . . . . 14 7.5 Adicionando usurio ao grupo . . . . . . . . . . . . . . . . . . . . . . . 15 7.5.1 Comando addgroup . . . . . . . . . . . . . . . . . . . . . . . . . 15 7.5.2 Comando adduser . . . . . . . . . . . . . . . . . . . . . . . . . . 16 7.5.3 Comando gpasswd 7.6 . . . . . . . . . . . . . . . . . . . . . . . . . 17 Deletando usurio de um grupo . . . . . . . . . . . . . . . . . . . . . . 17 7.6.1 Comando deluser . . . . . . . . . . . . . . . . . . . . . . . . . . 17 7.6.2 Comando gpasswd . . . . . . . . . . . . . . . . . . . . . . . . . 18

4Linux www.4linux.com.br

Contedo

7.6.3 Comando delgroup . . . . . . . . . . . . . . . . . . . . . . . . . . 19 7.7 Removendo usurios . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 7.7.1 Comando userdel . . . . . . . . . . . . . . . . . . . . . . . . . . 19 7.7.2 Comando deluser . . . . . . . . . . . . . . . . . . . . . . . . . . 21 7.8 Removendo grupos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 7.8.1 Comando deluser . . . . . . . . . . . . . . . . . . . . . . . . . . 22 7.8.2 Comando groupdel . . . . . . . . . . . . . . . . . . . . . . . . . . 23 7.8.3 Comando delgroup . . . . . . . . . . . . . . . . . . . . . . . . . . 23

Linux System Administration

Pgina 3

Administrao de Usurios I
7.1 Registro de usurios no sistema

H quatro arquivos bsicos que dizem respeito administrao de usurios, sendo eles:

passwd -> contm as informaes dos usurios; shadow -> contm as informaes das senhas dos usurios; group -> contm as informaes dos grupos e usurios que fazem parte deles; gshadow -> contm informaes a respeito das senhas de grupo. Leitura Sugerida, para administrao de usurios:

passwd -> man 5 passwd shadow -> man 5 shadow

Leitura Sugerida, para administrao dos grupos:

4Linux www.4linux.com.br

7.1 Registro de usurios no sistema

group -> man 5 group gshadow -> man 5 gshadow

7.1.1 Arquivo /etc/passwd

Cada usurio cadastrado no sistema identicado por uma linha no arquivo /etc/passwd. Os campos so separados pelo caractere : (dois pontos). O formato do arOnde: Campo 1 -> Login do usurio; Campo 2 -> Referncia da senha do usurio, pois ela ca armazenada em outro arquivo. Campo 3 -> O UID - User Identify o nmero de identicao do usurio. Essa identicao dividida conforme a categoria dos usurios: UID 0 -> o nmero do usurio administrador root. Debian: UID de 1 a 999 -> So os nmeros para usurios de sistema. UID de 1000 a 65535 -> So os nmeros para usurios normais. CentOS: UID de 1 a 499 -> So os nmeros para usurios de sistema.

quivo /etc/passwd o seguinte: usuario:x:1000:1000:User da Silva,8111-1234:/home/usurio:/bin/

Linux System Administration

Pgina 5

7.1 Registro de usurios no sistema

4Linux www.4linux.com.br

UID de 500 a 65535 -> So os nmeros para usurios normais. Essas denies de usurios de sistema e usurios normais podem variar nas distribuies, somente o UID 0 padro em todas as distribuies.

Campo 4 -> O GID - Group Identity o nmero de identicao do grupo primrio do usurio. Essa identicao tambm dividida em 3 categorias como o UID:

GID 0 -> o nmero do grupo administrador root. Debian: GID de 1 a 999 -> So os nmeros para grupos de sistema. GID de 1000 a 65535 -> So os nmeros para grupos normais. CentOS: UID de 1 a 499 -> So os nmeros para grupos de sistema. UID de 500 a 65535 -> So os nmeros para grupos normais. Campo 5 -> Comentrios e informaes adicionais sobre o usurio; Campo 6 -> Diretrio pessoal; Campo 7 -> Shell do usurio;

Usar o comando getent, a maneira certa de se acessar arquivos de controle no GNU/Linux.

Pgina 6

Linux System Administration

4Linux www.4linux.com.br

7.1 Registro de usurios no sistema

7.1.2 Arquivo /etc/shadow

As senhas dos usurios cam armazenadas no arquivo /etc/shadow conhecido como senhas sombras (shadow passwords). As senhas cam nele pois um arquivo mais seguro que o arquivo /etc/passwd. No arquivo /etc/passwd qualquer usurio poderia visualiz-las e copi-las para outro diretrio ou mquina remota. J o arquivo /etc/shadow tem suas permisses muito mais restritas, no permitindo que ele seja copiado e nem visualizado diretamente por um usurio comum. Isso uma grande ajuda na questo de segurana, pois se as senhas estivessem no prprio /etc/passwd seria muito fcil para um invasor com usurio comum, copiar esse arquivo para outro servidor e aplicar uma ferramenta de brute force para quebrar as senhas. O suporte a senhas shadow costuma vir ativado por padro em todas as distribuies. Em algumas delas, se forem instaladas no modo expert, possvel optar por ativar ou no esse suporte. sempre recomendado deixar as senhas shadow ativadas. Caso encontremos algum servidor GNU/Linux sem as senhas shadow conguradas, podemos utilizar o comando pwconv para ativ-las e pwunconv para desativlas.

Em relao s senhas shadow e os comandos pwconv e pwunconv, muitas perguntas podem ser feitas na prova. Fique atento!

O arquivo shadow no trata somente a questo de segurana de senhas. Ele tambm trata de polticas de contas do usurio, como, por exemplo, por quantos dias a conta de um usurio vlida? Quando vai expirar? Quando deve ser a troca de senha? E alguns outros parmetros que podem ser alterados manualmente ou usando o comando chage.

Linux System Administration

Pgina 7

7.2 Levantamento de informaes dos usurios

4Linux www.4linux.com.br

7.2 Levantamento de informaes dos usurios


7.2.1 Comando chage
O comando chage congura algumas caractersticas da senha, como: data de validade, data de aviso de troca, dentre outras. O Nome do usurio no exemplo aluno, que atento, porque esse comando muito til em seu dia-a-dia:

1 2 3 4 5 6 7 8 9

# chage -E

3/ 8/2 12 aluno : Set 12 , 2 11 : nunca : nunca : Mar 8 , 2 12 : 99999 : 7

# chage -l aluno ltima mudan a de senha Esta senha expira em Senha inativa Conta expira em

N mero m nimo de dias entre mudan as de senha : N mero m ximo de dias entre mundan as de senha N mero de dias de aviso antes da senha expirar

7.2.2 Comando id
O comando id mostra as informaes de UID, GID e grupos secundrios dos usurios. Para ver essas informaes do usurio corrente, fazemos da seguinte forma:

# id

Para ver as informaes do usurio aluno utilize a seguinte sintaxe:

# id aluno

Pgina 8

Linux System Administration

4Linux www.4linux.com.br

7.2 Levantamento de informaes dos usurios

7.2.3 Comando groups

A lista dos grupos existentes no sistema armazenada em /etc/group. O uso do comando groups, sem parmetros, faz com que o sistema informe os grupos dos quais o usurio membro.

# groups

Para ver qual grupo o usurio aluno pertence utilize a seguinte sintaxe:

# groups aluno

7.2.4 Comando nger

O comando nger mais amigvel e nos traz maiores informaes como: Login, Nome, Diretrio home, Shell, nmero de e-mails no lidos e os horrios das ltimas autenticaes que esse usurio realizou.

# finger aluno

7.2.5 Comando users

O comando users mostra de maneira bem simples os usurios que esto logados no sistema. A sintaxe do comando users a seguinte:

Linux System Administration

Pgina 9

7.2 Levantamento de informaes dos usurios

4Linux www.4linux.com.br

# users

7.2.6 Comando who

O comando who mostra quais usurios esto logados na mquina. Traz informaes adicionais sobre qual terminal est sendo utilizado, o momento e a partir de qual mquina foi feito o login de cada usurio.

# who

7.2.7 Comando w

O comando w similar ao who, mas traz tambm informaes sobre o que cada usurio est fazendo, tanto local quanto remotamente. Esse comando muito til para ver se no existem conexes indevidas em nosso sistema. A sintaxe do comando w para visualizar todos os usurios logados a seguinte:

# w

Para visualizar se o usurio aluno est logado a sintaxe a seguinte:

# w aluno

Pgina 10

Linux System Administration

4Linux www.4linux.com.br

7.3 Criando grupo

7.3 Criando grupo


Um usurio sempre deve pertencer a um grupo primrio, mas pode ser adicionado a grupos secundrios, normalmente usado dentro de uma estrutura empresarial onde os usurios precisam pertencer a vrios grupos para terem acessos a arquivos de outros setores.

7.3.1 Comando addgroup


Adiciona um grupo ao sistema. ou adiciona um usurio a um grupo. S funciona no Debian: Adicione o grupo rede e grupo internet:

1 2

# addgroup rede # addgroup internet

CentOS: No existe o comando.

7.3.2 Comando groupadd


O comando groupadd cria um novo grupo usando valores especicados na linha de comando e os valores padres do sistema. O novo grupo ser criado nos arquivos do sistema, conforme o requerido. Adicione o grupo aula:

Linux System Administration

Pgina 11

7.4 Criando Usurios

4Linux www.4linux.com.br

# groupadd aula

7.3.3 Comando adduser

S funciona no Debian: Adicione o grupo empresa e social:

1 2

# adduser -- group empresa # adduser -- group social

CentOS: No funciona no CentOS devido ao comando ser um link para o comando "useradd".

7.4 Criando Usurios


Antes de criarmos um usurio, vamos denir o que conter por padro em seu diretrio home, isto denido no arquivo /etc/skel, tudo o que estiver dentro deste diretrio ser adicionado ao home do usurio por padro. Crie um diretrio e um arquivo dentro do diretrio /etc/skel:

1 2

# mkdir / etc / skel / importante # touch / etc / skel / atividades . txt

Pgina 12

Linux System Administration

4Linux www.4linux.com.br

7.4 Criando Usurios

7.4.1 Comando adduser


O comando "adduser" um "script"customizado que trabalha como o comando "useradd". O "adduser" bastante utilizado por administradores que precisam cadastrar usurios no formato tradicional, ou seja, com nome, senha e grupo, denindo, alm disso ele tambm pode criar grupos e adicionar usurios em grupos.

No caso do CentOS, o comando adduser um link para o comando useradd.

Este comando pode ser usado de vrias formas, mas a sintaxe mais utilizada a seguinte: Debian:

# adduser [ usu rio ]

Adicione o usurio mandark e a usuria meemee:

1 2

# adduser mandark # adduser meemee

Dessa maneira ele adicionar o usurio, j pedindo para denir sua senha e as informaes adicionais. Automaticamente, ele j cria um grupo com o mesmo nome do usurio e copia todos os arquivos que esto no diretrio /etc/skel para o diretrio home do usurio. Visualize os grupos que o usurio mandark pertence e tambm os arquivos/diretrios criados a partir do /etc/skel em seu diretrio home:

Linux System Administration

Pgina 13

7.4 Criando Usurios

4Linux www.4linux.com.br

1 2

# id mandark # ls / home / mandark

CentOS: O comando adduser no CentOS um link para o comando useradd. Veja o comando "useradd".

7.4.2 Comando useradd


Podemos tambm adicionar usurios atravs do comando useradd, que um pouco mais complexo e precisa de alguns parmetros a mais. Adicione o usurio levinsky e o usurio leelee:

1 2

# useradd leelee # useradd levinsky

Tente se logar com o usurio levinsky em um terminal e repare que no possvel, pois ainda no foi denida uma senha para ele. Adicione uma senha para o usurio:

# passwd levinsky

Agora tente se logar no terminal com o usurio levinsky e veja que, possvel aps ser denida a senha. Mas tente se logar na parte grca e veja o que acontece, no possvel, pois o usurio no tem diretrio home. Para criar o usurio deedee com os principais atributos faa:

Pgina 14

Linux System Administration

4Linux www.4linux.com.br

7.5 Adicionando usurio ao grupo

# useradd -m -s / bin / bash -u 3 (123456 , " salt ") deedee

-g 1

-p perl -e print crypt

Acima criamos o usurio deedee, onde: -m -> cria diretrio home, caso ele no exista -s -> shell do usurio -u -> UID -g -> GID -p -> senha criptografada perl -e print crypt(123456, salt) -> criptografar senha 123456 no formato crypt Verique o UID e GID do usurio vendas:

# id deedee

Logue-se com o usurio deedee no terminal e na parte grca.

7.5 Adicionando usurio ao grupo


7.5.1 Comando addgroup
O comando addgroup pode ser utilizado para adicionar um usurio a um grupo. Adicione o usurio mandark ao grupo rede, aula e aluno:

Linux System Administration

Pgina 15

7.5 Adicionando usurio ao grupo

4Linux www.4linux.com.br

1 2 3

# addgroup mandark rede # addgroup mandark aula # addgroup mandark aluno

CentOS: No existe o comando.

7.5.2 Comando adduser


S funciona no Debian: O comando adduser tambm utilizado para adicionar um usurio um grupo, sua sintaxe :

# adduser [ usu rio ] [ grupo ]

Adicione o usurio mandark ao grupo empresa:

# adduser mandark empresa

Visualize os grupos que o usurio pertence:

# id mandark

CentOS:

Pgina 16

Linux System Administration

4Linux www.4linux.com.br

7.6 Deletando usurio de um grupo

O comando adduser no CentOS um link para o comando useradd. Veja o comando "useradd".

7.5.3 Comando gpasswd


O comando gpasswd pode ser utilizado para denir a senha de um grupo. Utilizando a opo -a podemos adicionar um usurio a um grupo secundrio. Para adicionar um usurio a um grupo secundrio a sintaxe a seguinte:

# gpasswd -a [ usu rio ] [ grupo ]

Adicione o usurio mandark ao grupo internet e social:

1 2

# gpasswd -a mandark internet # gpasswd -a mandark social

Visualize:

# id mandark

7.6 Deletando usurio de um grupo


7.6.1 Comando deluser
S funciona no Debian: O comando deluser tambm utilizado para remover um usurio de um grupo: Delete o usurio mandark do grupo rede:

Linux System Administration

Pgina 17

7.6 Deletando usurio de um grupo

4Linux www.4linux.com.br

# deluser mandark rede

Visualize:

# id mandark

CentOS: No tem o comando.

7.6.2 Comando gpasswd

O comando gpasswd pode ser utilizado para remover um usurio de um grupo secundrio. Para remover um usurio de um grupo secundrio a sintaxe a seguinte:

# gpasswd -d [ usu rio ] [ grupo ]

Removendo o usurio mandark do grupo internet:

# gpasswd -d mandark internet

Visualize:

# id mandark

Pgina 18

Linux System Administration

4Linux www.4linux.com.br

7.7 Removendo usurios

7.6.3 Comando delgroup

Remove um usurio de um grupo. S funciona Debian: Remova o usurio mandark do grupo social:

# delgroup mandark social

Visualize:

# id mandark

7.7 Removendo usurios


A remoo de usurios pode ser feita de duas formas. A primeira mantendo o diretrio home do usurio e a segunda, removendo tambm o home. aconselhvel que se remova o diretrio do usurio para que um prximo usurio adicionado ao sistema no acabe como dono daquele diretrio e tendo acesso a informaes s quais ele no deveria ter. Isso pode acontecer porque a delegao de UIDs sequencial. Mas para remover o usurio com o seu diretrio, tambm aconselhvel, antes, fazer um backup de tudo o que aquele usurio possua ou transferir todos os arquivos para o responsvel. O usurio que ser removido no pode estar logado.

7.7.1 Comando userdel

A sintaxe para remover o usurio e manter o seu diretrio home a seguinte:

Linux System Administration

Pgina 19

7.7 Removendo usurios

4Linux www.4linux.com.br

# userdel [ usu rio ]

Remova a usuria meemee:

# userdel meemee

Repare que a usuria meemee foi removida, mas seu diretrio home no:

# ls -l / home

O problema aqui que o prximo usurio que for criado, herdar o diretrio pra si, veja:

1 2

# adduser herdeiro # ls -l / home

Alm de ser criado um diretrio home, ele tambm herda o do usurio anterior, isto acontece porque os usurios so criados conforme os UIDs disponveis na sequncia. Para remover o usurio e o seu diretrio home, necessrio utilizar a opo -r da seguinte forma:

# userdel -r [ usu rio ]

Remova o usurio deedee e seu diretrio home:

# userdel -r deedee

Pgina 20

Linux System Administration

4Linux www.4linux.com.br

7.7 Removendo usurios

Verique que foi deletado o diretrio home do usurio deedee:

# ls -l / home

7.7.2 Comando deluser


S funciona no Debian: O comando deluser deleta um usurio. Delete o usurio levinsky:

# deluser levinsky

Verique que o diretrio home do usurio no foi removido:

# ls -l / home

Adicione novamente o usurio levinsky:

# adduser levinsky

Delete o usurio levinsky e seu diretrio home:

# deluser levinsky -- remove - home

Verique que o diretrio home do usurio foi removido:

# ls -l / home

Linux System Administration

Pgina 21

7.8 Removendo grupos

4Linux www.4linux.com.br

Adicione novamente o usurio levinsky:

# adduser levinsky

Delete o usurio levinsky e faa um backup do seu diretrio home:

# deluser levinsky -- remove - home -- backup

Verique que seu diretrio home foi compactado:

# ls -l / home

Para complementar a seo removendo usurios com o comando deluser muito interessante olhar o arquivo /etc/deluser.conf. CentOS: No tem o comando.

7.8 Removendo grupos


7.8.1 Comando deluser
O comando deluser pode tambm deletar um grupo, desde que este no seja o grupo primrio de um usurio. Vamos deletar o grupo criado anteriormente chamado empresa:

Pgina 22

Linux System Administration

4Linux www.4linux.com.br

7.8 Removendo grupos

# deluser -- group empresa

7.8.2 Comando groupdel


Apaga um grupo do sistema. Quando usado, este comando apaga todos os dados do grupo especicado dos arquivos de contas do sistema. No possvel remover o grupo primrio de um usurio. Remova o usurio primeiro. Visualize que o usurio mandark pertence ao grupo aula que criamos anteriormente:

# id mandark

Removendo o grupo aula:

# groupdel aula

Visualize que o usurio mandark no pertence mais ao grupo aula:

# id mandark

7.8.3 Comando delgroup


Remove um grupo do sistema. Remova o grupo internet:

# delgroup internet

Linux System Administration

Pgina 23

7.8 Removendo grupos

4Linux www.4linux.com.br

CentOS: No existe o comando.

Pgina 24

Linux System Administration

4451
Linux System Administration

www.4linux.com.br

Contedo
Administrao de Usurios II 8.1 Modicando Usurios . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.1.1 Comando passwd . . . . . . . . . . . . . . . . . . . . . . . . . . 8.1.2 Comando usermod . . . . . . . . . . . . . . . . . . . . . . . . . 8.2 Alterao do Dono e Grupo . . . . . . . . . . . . . . . . . . . . . . . . . 8.3 Introduo a tipos de permisses . . . . . . . . . . . . . . . . . . . . . . 2 3 3 4 7 9

8.4 Permisses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 8.4.1 LITERAL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 8.4.2 OCTAL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 8.4.3 Exemplos de permisses . . . . . . . . . . . . . . . . . . . . . . 17 8.5 Umask . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 8.5.1 Clculo da umask . . . . . . . . . . . . . . . . . . . . . . . . . . 21 8.6 Permisses Especiais . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

Administrao de Usurios II
8.1 Modicando Usurios
A modicao de usurios limitada ao usurio root. Iremos aprender aqui como mudamos alguns parmetros que so necessrios no dia-a-dia, como troca de senhas, grupos e controle de login.

8.1.1 Comando passwd


Depois do usurio ter sido criado podemos usar alguns comandos para modicar sua conta. O primeiro ser o passwd que possibilita adicionar ou modicar a senha de um usurio. As principais sintaxes que podem ser utilizadas nesse comando esto descritas abaixo. Para modicar a senha do usurio corrente:

# passwd

Caso esteja modicando a senha de um usurio normal, primeiro ser solicitada a senha corrente para permitir a denio de uma nova senha. Isso no

8.1 Modicando Usurios

4Linux www.4linux.com.br

acontece com o usurio root, que pode denir a nova senha diretamente, tanto para ele quanto para os outros usurios.

Para modicar a senha do usurio mandark:

# passwd mandark

Para bloquear a conta do usurio mandark:

# passwd -l mandark

Tente se logar com o usurio mandark, no possvel, pois sua conta est bloqueada. Para desbloquear a conta do usurio mandark:

# passwd -u mandark

Agora o usurio j pode se logar.

8.1.2 Comando usermod


Para modicar nomes de grupos do sistema, utilizamos o comando:

# groupmod -n [ novo - nome ]

[ nome - grupo ]

groupmod -n vendas rede

Pgina 4

Linux System Administration

4Linux www.4linux.com.br

8.1 Modicando Usurios

Outro comando que pode ser utilizado para modicar parmetros do usurio o usermod. Ele possibilita alterar qualquer tipo de informao relativa ao usurio. Um dos parmetros que pode ser modicado o grupo primrio, usando-se a opo -g. Com a opo -G, podemos alterar os grupos secundrios. A sintaxe para modicar o grupo primrio de um usurio a seguinte:

# usermod -g [ grupo ] [ usu rio ]

Verique o grupo primrio do usurio mandark:

# id mandark

Altere seu grupo primrio para audio:

# usermod -g audio mandark

As alteraes podem ser visualizadas no arquivo /etc/passwd no campo GID, ou diretamente no arqu1ivo /etc/group. Para trocar todos os grupos secundrios pelos grupos aluno e vendas, faa:

# usermod -G aluno , vendas mandark

Visualize:

# id mandark

Altere seu grupo primrio para mandark:

Linux System Administration

Pgina 5

8.1 Modicando Usurios

4Linux www.4linux.com.br

# usermod -g mandark mandark

Para mudarmos o campo de informaes dentro do arquivo /etc/passwd, precisamos usar o comando usermod com a opo -c.

1 2 3

# usermod -c " Dpto vendas " mandark # getent passwd | grep mandark mandark : x :1 1:1 1: Dpto mandark :/ home / mandark :/ bin / bash

Outras opes do comando:

-d diretrio [-m] : cria um novo diretrio home para o usurio. A opo -m faz com 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.

-l nome : altera o nome de identicao do usurio (o usurio no pode estar logado).

-s shell : altera o shell do usurio.

-u uid : altera o nmero de UID do usurio.

-L : bloqueia a conta acrescentando um ! no incio da linha do usurio no arquivo /etc/passwd

-U : desbloqueia a conta

Pgina 6

Linux System Administration

4Linux www.4linux.com.br

8.2 Alterao do Dono e Grupo

8.2 Alterao do Dono e Grupo


Como j vimos, cada arquivo e diretrio possui um dono e um grupo. Para alter-los podemos utilizar os comandos chown e chgrp como nos exemplos a seguir. Vamos criar o diretrio home do usurio leelee que ainda no existe:

# mkdir / home / leelee

Como criamos como usurio root, o dono e o grupo do diretrio criado pertencem ao usurio root e grupo root:

1 2

# ls -ld / home / leelee drwxr -xr - x 2 root root 4 96 2 11 -11 - 8 18: leelee

Temos que mudar o usurio e grupo para o usurio leelee e seu grupo primrio leelee. Alterando apenas o grupo de root para leelee:

# chgrp leelee / home / leelee

Visualize:

1 2

# ls -ld / home / leelee drwxr -xr - x 2 root leelee 4 96 2 11 -11 - 8 18: leelee

Outra forma de trocar apenas o grupo com o comando chown, veja sua sintaxe:

# chown [ dono . grupo ] [ arquivo ] -> troca dono e grupo

Linux System Administration

Pgina 7

8.2 Alterao do Dono e Grupo

4Linux www.4linux.com.br

2 3 4 5 6 7

# chown [ dono : grupo ] [ arquivo ] -> troca dono e grupo # chown [ dono ] [ arquivo ] -> troca apenas o dono # chown [ dono .] [ arquivo ] -> troca dono e grupo " mesmo grupo prim rio do dono " # chown [ dono :] [ arquivo ] -> troca dono e grupo " mesmo grupo prim rio do dono " # chown [. grupo ] [ arquivo ] -> troca o grupo # chown [: grupo ] [ arquivo ] -> troca o grupo

Troque o dono para leelee:

# chown leelee / home / leelee

Visualize:

1 2

# ls -ld / home / leelee drwxr -xr - x 2 leelee leelee 4 96 2 11 -11 - 8 18: leelee

Troque a senha do usurio leelee:

# passwd leelee

Agora se logue na parte grca como usurio leelee. Para poder alterar o dono/grupo de arquivos e diretrios dentro do diretrio utilize o parmetro -R para fazer a alterao recursiva

Pgina 8

Linux System Administration

4Linux www.4linux.com.br

8.3 Introduo a tipos de permisses

8.3 Introduo a tipos de permisses


O GNU/Linux um sistema multi-usurio e portanto, possui um esquema de permisses que prov a privacidade e/ou compartilhamento de arquivos entre usurios. Na verdade, esse esquema de permisses parte fundamental do sistema. Neste captulo, iremos aprender sobre ele e tambm como criar e remover contas de usurios. Quando comeamos a trabalhar com usurios no sistema GNU/Linux podemos dividilos em trs categorias:

Usurio Administrador (Super Usurio): usurio conhecido como root no sistema. esse usurio que controla todo o sistema e no possui nenhuma restrio. Mas devemos ter uma certa cautela ao us-lo pois com qualquer deslize podemos danicar todo o sistema;

Usurios de Sistema: so aqueles que no precisam logar no sistema, so utilizados para controlar servios. Esses usurios no devem possuir senhas nem Shell vlida. Um exemplo desses usurios o www-data que usado exclusivamente para controlar o servidor web Apache;

Usurios comuns: so utilizados para trabalhar no sistema GNU/Linux. So contas criadas para aqueles que utilizam ou operam o sistema. sempre aconselhvel que cada usurio comum ou administrador tenha sua prpria conta e s utilize a conta root para administrao do sistema.

Tanto para o usurio root, quanto para o usurio comum, sempre aconselhvel ter uma boa poltica de criao de senhas, para que um possvel invasor no se aproveite de um usurio com uma senha fraca. At mesmo um usurio comum, precisa tomar cuidado com a sua senha, pois esse seria o primeiro passo para o invasor escalar privilgios no sistema, e virar o usurio administrador root. Evite usar senhas com datas de aniversrio, casamento e outras datas que so fceis de serem descobertas. Evite usar palavras listadas em um dicionrio. Uma boa

Linux System Administration

Pgina 9

8.4 Permisses

4Linux www.4linux.com.br

dica mesclar a senhas com letras maisculas e minsculas, nmeros e caracteres especiais.

Alguns sistemas GNU/Linux podem ter usurios que chamamos de administradores. Esses usurios no vm congurados por padro, eles so usurios normais mas que possuem alguns privilgios a mais em algumas aplicaes.

Para que os usurios comuns e o root tenham acesso ao sistema e consigam trabalhar normalmente, so necessrios 5 elementos.

Nome;

Senha;

Diretrio Home;

Shell;

Grupo Primrio;

Devemos ter em mente que um usurio sempre deve estar vinculado a um grupo, pois isso afeta diretamente a questo de permisses dentro do sistema.

8.4 Permisses
Cada arquivo no sistema possui trs permisses bsicas: r (4) -> read - para leitura;

Pgina 10

Linux System Administration

4Linux www.4linux.com.br

8.4 Permisses

w (2) -> write - para escrita; x (1) -> execute - para execuo; A cada permisso atribudo um valor, mostrado entre parnteses, que ser utilizado para a denio de permisses. Alm disso, cada arquivo contm trs conjuntos de permisses, sendo elas: permisso do dono (u) - user do arquivo; do grupo (g) - group ao qual o arquivo pertence; outros (o) - others aqueles que no pertencem ao grupo e no so os donos do arquivo; Sendo assim, considere a seguinte sada do comando ls -l, para um arquivo: permisso do arquivo:

-rw -r --r - - 1 root root

Jan 15

9:52 arquivo

E para um diretrio: permisso do diretrio:

drwxr -xr - x 2 root root 4 96 Jan 15

9:52 diret rio

Vamos entender o que essas linhas signicam. O primeiro caractere pode ser: - -> indicando a listagem de um arquivo comum; d -> indicando um diretrio; l -> indicando um link simblico;

Linux System Administration

Pgina 11

8.4 Permisses

4Linux www.4linux.com.br

p -> indicando um pipe nomeado; s -> indicando um socket; c -> indicando um dispositivo de caractere; b -> indicando um dispositivo de bloco. Os prximos trs conjuntos de trs caracteres indicam as permisses do usurio dono do arquivo, permisses de grupo e permisses para outros usurios. Nesses trs conjuntos, se o caractere encontrado for um - (hfen) signica que a permisso est ausente, ou seja, no h a respectiva permisso. Se alguma ou todas as letras (r, w e x) forem encontradas, indicar as permisses que o arquivo tem permisses denidas. Seguindo o conjunto de permisses, h um nmero que indica a quantidade de links simblicos que o arquivo ou diretrio tem. Aps o nmero de links, vem a indicao do usurio dono do arquivo, seguido do grupo ao qual ele, o arquivo ou diretrio, pertence. J criado aluno, mandark no grupo aluno Vamos criar um arquivo para testes, se logue como usurio aluno:

1 2

$ cd / tmp $ touch arquivo

Visualize a permisso do arquivo criado:

1 2

$ ls -l / tmp / arquivo -rw -r --r - - 1 aluno aluno 2 11 -11 - 4 12:17 arquivo

Sua permisso para o dono Leitura e escrita: r w -

Pgina 12

Linux System Administration

4Linux www.4linux.com.br

8.4 Permisses

Sua permisso para grupo Somente leitura: r - Sua permisso para outros Somente leitura: r - O comando para trocar as permisses o chmod. H duas sintaxes possveis: literal e octal.

8.4.1 LITERAL

$ chmod u - rw / tmp / arquivo

O parmetro u-rw que dene o esquema de permisses. A primeira letra indica para qual(is) usurio(s) as permisses esto sendo alteradas. Usamos a letra u para indicar o prprio dono, g para indicar o grupo, o para outros e ainda a letra a para indicar todos. O caractere seguinte poder ser um sinal de = para deixar a permisso igual que se deseja, + para garantir a permisso ou - para retirar a permisso. Por m, detalhamos a permisso: A letra r signica leitura, w escrita e x execuo, como era de se esperar. Assim, o exemplo anterior retira as permisses de leitura e escrita para o usurio dono do arquivo. Verique novamente a permisso do arquivo:

1 2

$ ls -l / tmp / arquivo ----r --r - - 1 aluno aluno 2 11 -11 - 4 12:17 arquivo

Sua permisso para o dono Nenhuma: - - -

Linux System Administration

Pgina 13

8.4 Permisses

4Linux www.4linux.com.br

Sua permisso para grupo Somente leitura: r - Sua permisso para outros Somente leitura: r - As permisses seguem uma ordem dono, grupo, outros, ou seja, se voc o dono as permisses que se encaixam no seu perl a de dono, mesmo que voc pertena ao grupo, as permisses de dono prevalecem. Tente visualizar o arquivo como usurio aluno:

$ cat / tmp / arquivo

Agora se logue com o usurio mandark, que pertence ao grupo aluno, em outro terminal e tente ler o arquivo:

$ cat / tmp / arquivo

As permisses de grupo permitem que ele abra o arquivo para leitura, mas no para escrita:

$ echo oi >> / tmp / arquivo

Vejamos mais um exemplo, como usurio aluno faa:

$ chmod g + w / tmp / arquivo

Este comando adiciona a permisso de escrita para os usurios que fazem parte do mesmo grupo ao qual o arquivo pertence. As demais permisses no so alteradas.

Pgina 14

Linux System Administration

4Linux www.4linux.com.br

8.4 Permisses

Se logue com o usurio mandark que pertence ao grupo aluno e tente escrever no arquivo.

1 2

$ echo tchau >> / tmp / arquivo $ cat / tmp / arquivo

Fazendo o teste com diretrio, como usurio aluno crie um diretrio:

$ mkdir / tmp / diretorio

Verique a permisso do diretrio:

1 2

$ ls -ld / tmp / diretorio drwxr -xr - x 2 aluno aluno 4 96 2 11 -11 - 4 17: 2 diretorio /

Crie um arquivo dentro do diretrio:

$ touch / tmp / diretorio / novo

Visualize e acesse o diretrio:

1 2

$ ls -l / tmp / diretorio $ cd / tmp / diretorio

Retire o acesso ao diretrio para todos os usurios:

1 2

$ cd .. $ chmod a - x / tmp / diretorio

Linux System Administration

Pgina 15

8.4 Permisses

4Linux www.4linux.com.br

Agora tente acessar o diretrio:

$ cd / tmp / diretorio

No possvel isso porque o x o responsvel por dar acessos ao diretrio, mas ainda possvel visualizar o contedo do diretrio:

$ ls / tmp / diretorio

Visualize as permisses do diretrio e do arquivo:

1 2 3 4

$ ls -ld / tmp / diretorio drw -r --r - - 2 aluno aluno 4 96 2 11 -11 - 4 17: 2 diretorio / $ ls -l / tmp / diretorio / novo -????????? ? ? ? ? ? novo

8.4.2 OCTAL

A segunda sintaxe a forma numrica. Neste caso, o parmetro que dene as permisses composto de trs nmeros de 0 a 7, que correspondem s permisses para o usurio dono, para o grupo e para outros. Cada nmero formado pela soma das permisses atribudas, sendo que execuo vale 1, escrita vale 2 e leitura 4.

Pgina 16

Linux System Administration

4Linux www.4linux.com.br

8.4 Permisses

Vejamos um exemplo:

# chmod 64

/ tmp / arquivo

Neste caso, estamos atribuindo a permisso de: leitura e escrita 6 (r=4 + w=2) ao usurio dono leitura 4 (r=4) ao grupo 0 (sem permisses) outros usurios importante observar que quando usamos a forma literal, alteramos apenas o parmetro especicado, no alterando as demais permisses. J na forma numrica, alteramos todas as permisses simultaneamente.

8.4.3 Exemplos de permisses


Comando para atribuir permisso total a um arquivo chamado naofazer:

1 2

# touch / tmp / naofazer # chmod 777 / tmp / naofazer

Linux System Administration

Pgina 17

8.4 Permisses

4Linux www.4linux.com.br

Ou

# chmod a + rwx / tmp / naofazer

Ou

# chmod u + rwx , g + rwx , o + rwx / tmp / naofazer

Verique a permisso:

1 2

# ls -l / tmp / naofazer - rwxrwxrwx 1 root root 2 11 -11 - 6 22:17 naofazer

Evite dar permisso total para um arquivo ou diretrio a no ser que seja realmente preciso.

No se deve fazer isso em nenhum tipo de arquivo, isso apenas um exemplo!!!

Comando para retirar a permisso de escrita de todos os usurios do arquivo naofazer:

# chmod 666 / tmp / naofazer

Ou

# chmod a - x / tmp / naofazer

Pgina 18

Linux System Administration

4Linux www.4linux.com.br

8.4 Permisses

Ou

# chmod u -x ,g -x ,o - x / tmp / naofazer

Visualize:

# ls -l / tmp / naofazer

Comando para alterar a permisso padro do arquivo arquivo para que todos os usurios apenas possam l-lo.

# chmod 444 / tmp / arquivo

Visualize:

# ls -l / tmp / arquivo

Utilizando o exemplo anterior do modo Literal, vamos alterar a permisso recursivamente, dando permisso total somente para o dono: ANTES:

1 2 3 4 5 6 7

# ls -ld / tmp / diretorio drw -r --r - - 2 aluno aluno 4 96 2 11 -11 - 4 17: 2 diretorio / # ls -l / tmp / diretorio / novo -rw -r --r - - 1 aluno aluno # chmod -R 7 2 11 -11 - 4 17:4 novo

/ tmp / diretorio

Linux System Administration

Pgina 19

8.5 Umask

4Linux www.4linux.com.br

DEPOIS:

1 2 3 4 5

# ls -ld / tmp / diretorio drwx ----- - 2 aluno aluno 4 96 2 11 -11 - 4 17: 2 diretorio / # ls -l / tmp / diretorio / novo -rwx ----- - 1 aluno aluno 2 11 -11 - 4 17:4 novo

8.5 Umask
O umask altera o valor da mscara de criao de arquivos e diretrios. Essa mscara utilizada para denir o permissionamento padro de um arquivo ou diretrio quando ele criado.

1 2 3 4 5 6 7 8 9 10 11 12

Debian : O valor padr o da " umask " fica armazenada no arquivo " / etc / login . defs " . Caso n o exista adicione umask < valor \ _da \ _umask >. Ex : umask 22

O primeiro " " significa modo octal , pode - se passar o valor em hexadecimal colocando " x " como prefixo . CentOS : O valor padr o da " umask " fica armazenada no arquivo " / etc / bashrc "

Para visualizar a umask atual:

Pgina 20

Linux System Administration

4Linux www.4linux.com.br

8.5 Umask

# umask

No Debian: a umask padro de 0022 No CentOs: a umask varia de acordo com o usurio, quando seu UID maior do que 99 e seu grupo tem o mesmo nmero do UID, sua umask 0002, caso contrrio ser 0022.

8.5.1 Clculo da umask


Para Diretrio: Para calcular a umask para um diretrio, pegue a permisso total que um diretrio pode chegar, 777. Subtraia a sua umask atual. EX: umask 022 777 permisso mxima para um diretrio - 022 umask atual = 755 permisso do diretrio a ser criado Ex: umask 033 777 permisso mxima para um diretrio - 033 umask atual = 744 permisso do diretrio a ser criado Para Arquivo: Para calcular a umask para um arquivo, saiba que um arquivo no pode ser criado com permisso de execuo por padro, esta permisso s pode ser passada para ele manualmente. Logo a permisso do arquivo no pode ser mpar, porque o bit de execuo vale 1. Como calcular? Ex: umask 022 777 Permisso mxima para um arquivo - 022 umask atual = 755 permisso para o

Linux System Administration

Pgina 21

8.6 Permisses Especiais

4Linux www.4linux.com.br

arquivo, mas lembre-se no pode ter permisso de execuo, ento subtraia 1 dos bits que sejam mpares: 755 - 111 retirando os bits de execuo = 644 permisso real do arquivo Ex: umask 033 777 Permisso mxima para um arquivo - 033 umask atual = 744 permisso para o arquivo, mas lembre-se no pode ter permisso de execuo, ento subtraia 1 dos bits que sejam mpares: 744 - 100 retirando os bits de execuo = 644 permisso real do arquivo Repare que a permisso no muda para o arquivo com a umask 022 e umask 033.

Lembre-se da regra de clculo de umask. Pensar da forma que o sistema funciona pode te confundir na prova: Para diretrios: Sempre substituir de 777; Para arquivos: Vericar o umask. Se o nmero for mpar, subtrair somente onde temos execuo, em nmeros pares mantemos os nmeros.

8.6 Permisses Especiais


H um conjunto especial de permisses, conhecido tambm como bits especiais, sendo eles:

O SUID bit atribudo a um arquivo binrio com permisso de execuo, quando

Pgina 22

Linux System Administration

4Linux www.4linux.com.br

8.6 Permisses Especiais

desejamos que um usurio qualquer execute o comando com as permisses do usurio dono do comando. Se esse comando pertencer ao usurio root um usurio qualquer ir execut-lo com as permisses de root desde que tenha permisses para execut-lo. Por esse motivo o SUID constitui uma grande ameaa de segurana e sua utilizao deve ser bastante cautelosa. O SGID bit geralmente atribuvel a diretrios. Quando um arquivo criado dentro de um diretrio com SGID bit ativado, o contedo gravado dentro do diretrio ir herdar o grupo do diretrio e no o grupo do usurio que criou tal contedo. Este bit especial muito til quando utilizamos diretrios para grupos de trabalhos e em servidores de arquivos. O Sitcky bit era bastante utilizado para realizar otimizaes de acesso a contedos, entretanto, a partir da srie 2.6 do kernel do Linux essa tarefa realizada diretamente pelo kernel. A nica utilidade desse bit, atualmente, fazer diretrios de utilizao comum a todos os usurios, como no /tmp. Quando esse bit est ativo em um diretrio, todo contedo criado dentro dele pertencer ao criador do contedo e por mais que ele atribua a esse contedo permisses totais para todos os usurios, o nico que poder excluir o arquivo ou diretrio ser o prprio dono ou o root ou ainda o dono do diretrio que tem a permisso. Para atribuirmos esses bits especiais, procedemos da mesma forma que nas permisses comuns, somando os valores e utilizando o comando chmod, mas agora utilizando quatro nmeros, o primeiro nmero sendo o bit especial, seguido dos trs da permisso padro. Veja o exemplo abaixo:

1 2 3 4 5 6 7 8

# chmod 4 # chmod 2 # chmod 1 # ls -l / tmp

/ tmp / a / tmp / b / tmp / c

---S ----- - 1 caio caio ------S -- - 1 caio caio ---------T 1 caio caio

2 2 2

8 - 7 -21 13:5 8 - 7 -21 13:5 8 - 7 -21 13:5

a b c

Linux System Administration

Pgina 23

8.6 Permisses Especiais

4Linux www.4linux.com.br

O bit especial para o campo de permisses do dono o SUID representado por s ou S. Para o grupo SGID tambm representado por s ou S. J o campo de permisses de outros usurios, o Sticky BIT, representado por t ou T. Veja que quando o arquivo ou diretrio no tem permisso de execuo, o bit especial representado por uma letra S (Upper Case), e quando possuem uma permisso de execuo, o bit especial apresentado como s (Lower Case). O mesmo acontece com o Sticky bit, mas com a letra t e T. Exemplo dos bits especiais com permisso de execuo:

1 2 3 4 5 6 7 8

# chmod 41 # chmod 2 1 # chmod 1 # ls -l

/ tmp / a / tmp / b 1 / tmp / c

---s ----- - 1 root root ------s -- - 1 root root

2 2

8 - 7 -21 13:5 8 - 7 -21 13:5 2

a b c

---------t 1 root root caio

8 - 7 -21 13:5

Todas as permisses especias que no contiverem execuo so maisculas. S e T.

Exemplos: Suid Bit: Podemos usar como exemplo o comando passwd.

1 2

# ls -l / usr / bin / passwd -rwsr -xr - x 1 root root 3164 2 8 - 6 -12 2 :39 / usr / bin / passwd

Pgina 24

Linux System Administration

4Linux www.4linux.com.br

8.6 Permisses Especiais

Os nossos usurios comuns s podem mudar sua senha pois o comando passwd est com o bit SUID ativado. Desabilite o Suid:

1 2

# chmod 755 / usr / bin / passwd # ls -l / usr / bin / passwd

Agora se logue como aluno e tente mudar sua senha:

$ passwd

No possvel, pois o aluno no tem permisso de escrita nos arquivos:

/ etc / passwd e / etc / shadow .

Como root, volte a permisso original:

1 2

# chmod 4755 / usr / bin / passwd # ls -l / usr / bin / passwd

SGID Bit: Crie um diretrio com permisso total para qualquer usurio:

1 2

# mkdir / teste # chmod 777 / teste

Agora qualquer usurio tem acesso ao diretrio teste.

Linux System Administration

Pgina 25

8.6 Permisses Especiais

4Linux www.4linux.com.br

Como usurio aluno crie um arquivo no diretrio teste:

$ touch / teste / numero1

Verique quem o dono e quem o grupo do arquivo criado:

1 2

$ ls -l / teste -rw -r --r - - 1 aluno aluno 2 11 -11 - 7 11: 1 numero1

Verique que o grupo o mesmo do usurio. Agora como root altere a permisso do diretrio teste, adicionando o SGID Bit:

# chmod 2777 / teste

Novamente como usurio aluno, crie um novo arquivo dentro do diretrio teste:

$ touch / teste / numero2

Verique quem o dono e quem o grupo do arquivo criado:

1 2 3

$ ls

-l

/ teste 2 11 -11 - 7 11: 1 numero1 2 11 -11 - 7 11:19 numero2

-rw -r --r - - 1 aluno aluno -rw -r --r - - 1 aluno root

Visualize que o grupo agora no mais o do usurio e sim o mesmo do diretrio. Stick Bit:

Pgina 26

Linux System Administration

4Linux www.4linux.com.br

8.6 Permisses Especiais

Como root modique novamente a permisso do diretrio teste, adicione o Stick Bit:

# chmod 1777 / teste

Agora modique as permisses dos arquivos dentro dele dando permisso total para todos os usurios:

# chmod

777 / teste /*

Agora se logue como usurio mandark, visualize as permisses do diretrio e dos arquivos:

1 2 3 4 5

$ ls -ld / teste drwxrwsrwt 2 root root 4 96 2 11 -11 - 7 11:19 / teste $ ls -l / teste - rwxrwxrwx 1 aluno aluno - rwxrwxrwx 1 aluno root 2 11 -11 - 7 11: 1 / teste / numero1 2 11 -11 - 7 11:19 / teste / numero2

Agora que voc viu que tem permisso total nos arquivos, tente deletar algum arquivo dentro do diretrio teste:

$ rm / teste / numero1

Apesar da permisso total no arquivo, no possvel remover devido a permisso do diretrio com Stick Bit.

Linux System Administration

Pgina 27

4451
Linux System Administration

www.4linux.com.br

Contedo
Quotas de Disco 8.1 Introduo Terica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.1.1 Quotas por Usurio . . . . . . . . . . . . . . . . . . . . . . . . . 2 3 6

8.1.2 Quotas por Grupo . . . . . . . . . . . . . . . . . . . . . . . . . . 10 8.2 Replicando quotas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 8.3 Criando usurio com quota denida (S funciona no Debian) . . . . . . 13 8.3.1 Aviso de quota excedida . . . . . . . . . . . . . . . . . . . . . . . 13

Quotas de Disco
8.1 Introduo Terica
A utilizao de um sistema de quotas um assunto to importante quanto dividir o disco rgido em parties. O sistema de quotas serve para limitarmos a quantidade de blocos e inodes que um usurio ou grupo pode utilizar em uma determinada partio. Imagine um HD com 100MB de home e 10 usurios. Se no utilizarmos um sistema de quota por nmero de blocos possvel que um dos usurios resolva fazer o download de um arquivo de 90MB utilizando 90% do espao disponvel, fazendo com que os outros usurios tenham que dividir os outros 10MB livres. Se aplicarmos um sistema de quotas, podemos denir que cada usurio utilizar no mximo 10MB, de forma que cada um ter o mesmo espao disponvel, tornando a diviso justa. Em um cenrio como este, resolvemos parte do problema, pois o usurio capaz de criar um nmero, sucientemente grande de arquivos com tamanho zero de forma que ele no ocupe os 10MB atribudos a ele mas estoure o nmero mximo de inodes que o sistema de arquivos dispe, impossibilitando assim, que outro usurio grave qualquer coisa neste sistema de arquivos, mesmo que haja espao livre. O sistema de quotas uma funcionalidade do lesystem e do kernel, sendo assim, ambos tm que serem capazes de suport-lo. Uma vez que o lesystem suporta quotas, devemos adicionar os parmetros de montagem, usrquota e grpquota ao lesystem que utilizaremos com esse sistema. Isso feito no arquivo /etc/fstab. Alm disso, temos que criar, na raiz desses lesystems, os arquivos de controle,

8.1 Introduo Terica

4Linux www.4linux.com.br

chamados aquota.user e aquota.group. Uma vez criada essa estrutura, basta editar os arquivos de controle de quotas e distribuir as quantidades de forma apropriada. A quota somente pode ser aplicada por parties. Instale o pacote de quota:

# aptitude install quota

# yum install quota

Edite o arquivo /etc/fstab e inclua as opes de quota por usurio e por grupo em /home:

UUID =12 e9cf3f -99 b3 -4 e8e -8 79 - d4337b2ce9c8 usrquota , grpquota 2

/ home ext3

defaults ,

Remonte o /home para que as alteraes sejam efetuadas:

# mount -o remount / home

Verique se as opes de quota foram aplicadas:

# mount

Crie os arquivos de quota na raiz da partio que receber o sistema de quotas:

Pgina 4

Linux System Administration

4Linux www.4linux.com.br

8.1 Introduo Terica

# quotacheck - cug / home

-c -> cria arquivos de quota -u -> checa quotas de usurios -g -> checa quotas de grupos Caso d erro: -f -> fora checagem das quotas -m -> fora checagem no lesystem montado como leitura e escrita , no remonta o lesystem como somente leitura em caso de erro. Certique-se de que os arquivos de controle de quota foram criados: "aquota.group"e "aquota.user".

# ls -l / home

Habilite a quota na partio /home:

# quotaon / home

Caso queira desabilitar a quota na partio o comando :

# quotaoff / home

Verique se o sistema de quota est ativo, listando as suas informaes de quotas para usurios:

Linux System Administration

Pgina 5

8.1 Introduo Terica

4Linux www.4linux.com.br

# repquota - va

Verique se o sistema de quota est ativo, listando as suas informaes de quotas para grupos:

# repquota - vag

8.1.1 Quotas por Usurio


Vamos denir qual a quantidade de recursos do HD que cada usurio poder utilizar. Vamos impor que o usurio mandark poder utilizar at 50MB com um limite mximo de 60MB ou 100 arquivos com o limite mximo de 110 arquivos. Editando a quota do usurio mandark:

# edquota -u mandark

Dentro do edquota, faremos as conguraes para que a quota do usurio mandark, seja de 50MB e ele possa criar 100 arquivos, com um limite mximo acima da sua quota de 10MB e 10 arquivos. Altere o arquivo para que que como mostrado a seguir:

1 2 3 4

Disk quotas for user mandark ( uid 1 Filesystem blocks / dev / sda3 5 soft hard 6 inodes 1

1) : soft 11 hard

^ - - - - - - - N O MEXER - - - - - - -^

Onde:

Pgina 6

Linux System Administration

4Linux www.4linux.com.br

8.1 Introduo Terica

Filsesystem -> partio onde ser aplicada a quota. blocks -> tamanho real utilizado em KBytes. (no possvel alterar) soft -> limite da quota de espao disponvel para gravao, ao ultrapassar este limite o usurio estoura sua quota. hard -> limite mximo permitido de espao disponvel para gravao, aps exceder sua quota, existe um perodo de tempo chamado grace time para uso deste limite. inodes -> tamanho real utilizado em nmero de arquivos. (no possvel alterar) soft -> limite da quota de nmero de arquivos que podem ser criados, ao ultrapassar este limite o usurio estoura sua quota. hard -> limite mximo permitido de nmero de arquivos que podem ser criado, aps exceder sua quota, existe um perodo de tempo chamado grace time para uso deste limite. Verique se o limite j est aplicado:

# repquota -v -a

J que zemos a gentileza de determinar que o usurio poder usar 10MB ou 10 arquivos a mais caso ele estoure a sua quota, devemos determinar tambm por quanto tempo ele poder usar esse espao a mais. Determine que os usurios tero 5 dias de grace period:

# edquota -t

Caso o usurio estoure sua quota ele tem um tempo(grace period) antes de sua

Linux System Administration

Pgina 7

8.1 Introduo Terica

4Linux www.4linux.com.br

conta ser bloqueada para apagar os arquivos necessrios para utilizar o limite de sua quota. Consulte a quota do usurio mandark.

# quota -u mandark

Efetue login em outro terminal utilizando o usurio mandark e vamos rodar um comando para encher o disco:

$ yes > a

Depois que a quota estourou, volte ao terminal do root, examine o status da quota e veja se a quota do usurio mandark est estourada por espao utilizado:

# repquota - va

Vamos executar o seguinte comando para estourar o nmero de inodes permitidos para o usurio mandark:

$ touch file {1..1

Depois que a quota estourou, volte ao terminal do root, examine o status da quota e veja se a quota do usurio mandark est tambm por nmero de arquivos:

# repquota - va

Quando o usurio est com a quota estourada possvel aumentar o "grace period"para ele:

Pgina 8

Linux System Administration

4Linux www.4linux.com.br

8.1 Introduo Terica

# setquota -u mandark -T 864

864

/ home

Onde: -u -> deni que a quota pra um usurio mandark -> usurio que receber a denio de quota -T -> dene o prodo de grace time 86400 -> tempo em segundos (por tamanho) 86400 -> tempo em segundos (por inode) /home -> partio que ser denida a quota Voltando ao terminal logado, como usurio mandark, vamos apagar os arquivos criados:

$ rm a file *

Cheque os valores da quota do usurio mandark:

# quota -u mandark

Outra forma de denir a quota do usurio atravs do comando setquota, este comando muito til para scripts. Vamos aumentar o tamanho da quota do usurio mandark:

# setquota -u mandark 2

21

1 1

/ home

-u -> indica que ser denida quota para um usurio mandark -> usurio que receber os valores da quota 200000 -> soft para espao disponvel para uso 210000 -> hard para espao disponvel para uso

Linux System Administration

Pgina 9

8.1 Introduo Terica

4Linux www.4linux.com.br

1000 -> soft para nmero de arquivos 1010 -> hard para nmero de arquivos home -> partio para aplicar a quota Cheque os valores da quota do usurio mandark:

# quota -u mandark

8.1.2 Quotas por Grupo


Dena quota por grupo para o grupo users:

# setquota -g users 5

11

Ou

# edquota -g users

1 2 3 4

Disk quotas for group users ( gid 1 Filesystem blocks / dev / sda3 5 soft hard 6

): soft 1 11 hard

inodes

^-- - - - - - - - - N O MEXER - - - - - - - - - -^

Verique o status da quota por grupo:

# repquota - vag

Pgina 10

Linux System Administration

4Linux www.4linux.com.br

8.1 Introduo Terica

Verique os detalhes mais avanados sobre o uso das quotas nas parties.

# quotastats

Adicione o usurio mandark ao grupo users:

# adduser mandark users

Crie um diretrio para teste de quota por grupo:

# mkdir / home / users

Troque sua permisso para toda vez que um arquivo for criado, pertena ao grupo users, para isso mude tambm o grupo do diretrio para users:

1 2

# chmod 2775 / home / users # chgrp users / home / users

Acesse o diretrio /home/users com o usurio mandark e estoure a quota de grupo por tamanho:

$ yes > a

Estoure a quota de grupo por nmero de arquivos:

$ touch arq {1..1 1}

Verique o status da quota por grupo:

Linux System Administration

Pgina 11

8.2 Replicando quotas

4Linux www.4linux.com.br

# repquota - vag

8.2 Replicando quotas


Verique a quota por usurios:

# repquota - va

O usurio mandark tem quota denida e o usurio rh no tem, ento vamos copiar a quota do usurio mandark para o usurio herdeiro:

# edquota - up mandark herdeiro

Onde: -u -> usurio -p -> prottipo -g -> grupo Verique a quota por usurios:

# repquota - va

Pgina 12

Linux System Administration

4Linux www.4linux.com.br 8.3 Criando usurio com quota denida (S funciona no Debian)

8.3 Criando usurio com quota denida (S funciona no Debian)


Edite o arquivo /etc/adduser.conf e adicione um usurio que j tenha uma quota denida na opo QUOTAUSER= . Ex: o usurio mandark j tem cota denida e quero passar esta quota para um usurio novo:

1 2 3 4

# vim / etc / adduser . conf # linha 67 completo com o nome do usu rio que tem quota definida : QUOTAUSER = " mandark "

Crie um usurio com o comando adduser e veja que ele j ter quota denida:

1 2

# adduser compras # repquota - va

8.3.1 Aviso de quota excedida


Avisos sobre quota ultrapassada podem ser enviadas automaticamente a todos os usurios pelo utilitrio warnquota. Ele poder ser executado periodicamente atravs do cron (por padro isto feito diariamente na distribuio Debian pelo script /etc/cron.daily/quota), no CentOS necessrio agendar a execuo do comando warnquota. Dados adicionais sobre o envio das mensagens devem ser especicados no arquivo /etc/warnquota.conf seu formato o seguinte:

1 2 3

# Programa usado para enviar as mensagens MAIL_CMD = " / usr / sbin / sendmail -t " # Campo de origem da mensagem

Linux System Administration

Pgina 13

8.3 Criando usurio com quota denida (S funciona no Debian) 4Linux www.4linux.com.br

4 5 6 7 8 9

FROM = " root@localhost " # but they don t have to be : SUBJECT = Quota excedida CC_TO = " root@localhost " SUPPORT = " root@localhost " PHONE = " 5555 -2525 "

O e-mail enviado aos usurios.. Quando a quota por grupo deve-se eleger um usurio para receber os e-mails de quota excedida do grupo. O arquivo /etc/quotagrpadmins serve para congurar o usurio que receber os emails de quota excedida do grupo:

1 2 3

# vim / etc / quotagrpadmins grupo : usuario users : mandark

Para receber o aviso para usurios e para grupos execute:

1 2

# warnquota -u # warnquota -g

Caso queira pode colocar no crontab para executar de tempos em tempos:

1 2 3

# vim / etc / crontab # min -u hora dia_do_mes 15 15 -g * * * * m s dia_da_semana usu rio comando * * root root / usr / sbin / warnquota / usr / sbin / warnquota

Pgina 14

Linux System Administration

4Linux www.4linux.com.br 8.3 Criando usurio com quota denida (S funciona no Debian)

Obs.: O Debian j faz a checagem por padro no crontab: /etc/cron.daily/quota.

Linux System Administration

Pgina 15

4451
Linux System Administration

www.4linux.com.br

Contedo
Trabalhando com Mdulos 10.1 Introduo Terica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.2 Gerenciando os mdulos . . . . . . . . . . . . . . . . . . . . . . . . . . 2 3 4

10.2.1 Identicando Dispositivos e seus mdulos . . . . . . . . . . . . . 13 Servidor de Impresso 16

10.3 Introduo Terica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 10.3.1 Instalao Servidor Cups . . . . . . . . . . . . . . . . . . . . . . 17 10.4 Compartilhando a impressora . . . . . . . . . . . . . . . . . . . . . . . . 40 10.5 Congurao do Cliente . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

Trabalhando com Mdulos

10.1 Introduo Terica

Quando instalamos um Debian, RedHat, Suse, Slackware, entre outras distribuies, estamos utilizando um kernel que foi compilado pelos desenvolvedores da distribuio.

O kernel que vem por padro em uma distribuio, deve ser capaz de rodar em praticamente qualquer PC e dar suporte a quaisquer tipos de recursos que o usurio pretenda utilizar, o desenvolvedor compila um kernel que fornece todas as funcionalidades bsicas e, em separado, compila pedaos de cdigo que do suporte a funcionalidades mais especcas. Esses pedaos de cdigo so os chamados mdulos. Dessa forma, quando o sistema carregado, um kernel bsico se coloca na memria e passa a controlar a mquina. Neste ponto so vericadas outras funcionalidades que se espera que o kernel d suporte, como por exemplo utilizar uma partio XFS. Neste momento, se o kernel no possuir suporte nativo a esse le system ele ir vericar se o mdulo que d suporte a ele foi compilado e se est disponvel. Se esse mdulo for encontrado, ele ser carregado expandindo as funcionalidades do kernel.

10.2 Gerenciando os mdulos

4Linux www.4linux.com.br

Em um sistema como esse, haver diversos mdulos carregados e um nmero maior ainda que no estar sendo utilizado, mas disponvel. Os mdulos disponveis, em geral, encontram-se no diretrio /lib/modules, podem ser visualizados com o comando "modprobe -l"e os mdulos que esto carregados podem ser visualizados com o comando lsmod. Ao mesmo tempo que a capacidade de subir mdulos uma vantagem do ponto de vista que apenas os mdulos realmente necessrios sero carregados, h a desvantagem de fragmentao do kernel na memria.

10.2 Gerenciando os mdulos


O desenvolvimento de uma nova funcionalidade para o kernel do Linux pode ser implementada diretamente no Kernel ou compilada como um mdulo.

Pgina 4

Linux System Administration

4Linux www.4linux.com.br

10.2 Gerenciando os mdulos

De modo geral, a escolha tende a ser a compilao como mdulo. Isso se traduz no carregamento dinmico do cdigo apenas quando esta funcionalidade for necessria. Alm disso, torna o kernel mais enxuto, leve, e portanto mais eciente. Diversos componentes do kernel do Linux so implementados como mdulos, por exemplo, lesystems, device drivers, e novas camadas de protocolos de comunicao. Em alguns casos, compilar o cdigo juntamente com o kernel pode ser necessrio. Se um determinado componente precisa alterar alguma estrutura do kernel, ele no ter privilgios de fazer isso dinamicamente, ou mesmo que gere sua prpria estrutura modicada, o restante do kernel e outros mdulos carregados ainda estaro enxergando a antiga estrutura. Ao executar o comando lsmod voc pode ver quais mdulos esto carregados atualmente no seu kernel. Abaixo um exemplo da sada deste comando:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

# lsmod Module ppp_generic slhc ircomm - tty ircomm irda lp parport printer agpgart nvidia i81 _audio soundcore ac97_codec nfsd Size 24 6 6564 24224 9736 112112 8 96 34176 8448 4 896 1765632 26312 6276 12488 74256 8 [ i81 _audio ] [ i81 _audio ] ( autoclean ) 3 11 Used by Tainted : P ( autoclean ) ( unused ) ( autoclean ) [ ppp_generic ] ( autoclean ) ( unused ) ( autoclean ) [ ircomm - tty ] ( autoclean ) [ ircomm - tty ircomm ] ( autoclean ) ( unused ) ( autoclean ) [ lp ] ( unused ) ( autoclean ) ( autoclean )

Observe a coluna Used. Ela reete quantos processos esto fazendo uso do mdulo. Todo mdulo deve implementar um campo na sua estrutura de dados denominado usage counter para esta nalidade. Um mdulo s pode ser removido da memria

Linux System Administration

Pgina 5

10.2 Gerenciando os mdulos

4Linux www.4linux.com.br

se o seu usage counter for zero. Os mdulos so carregados atravs do programa insmod e uma estrutura do tipo module alocada quando seu carregamento solicitado. Esta estrutura contm smbolos globais que podem ser vistos pelo kernel e outros mdulos, informando os pontos de entrada de suas funes, suas variveis globais, seu usage counter, ags, entre outros. Algumas vezes, um mdulo depende de outro para realizar determinadas operaes. Outro campo na estrutura module utilizado para informar as dependncias dele. Se o mdulo B depende de A, este deve ser carregado antes de ser possvel carregar B. O usage counter de A incrementado sempre que um mdulo que depende dele carregado. Deste modo, no se permite que A seja removido antes de seus dependentes. O kernel prov o comando modprobe para facilitar o gerenciamento de dependncias. Este comando tenta carregar automaticamente qualquer dependncia do mdulo solicitado. Por exemplo, ao tentar carregar o mdulo MS-DOS, o comando modprobe carrega primeiro o mdulo fat, seguido por MS-DOS. O comando modprobe faz uso de um arquivo chamado modules.dep para determinar as dependncias de todos os mdulos compilados para o kernel corrente. Este arquivo gerado pela execuo, no start-up da mquina, de outro programa chamado depmod. Ele avalia, durante o carregamento inicial do kernel, todos os mdulos compilados, normalmente armazenados em /lib/modules, e gera o arquivo modules.dep. Para remover um mdulo da memria, utiliza-se o comando rmmod. modprobe -r ou rmmod -r so usados para remover uma pilha de mdulos. O usurio, atravs da congurao de um novo kernel, pode alterar o modo como diversos componentes so carregados: compilados junto com o kernel ou como mdulos. Normalmente recomendado fazer uso o mximo possvel de mdulos. Entretanto, em casos em que o componente permanentemente necessrio, pode ser mais eciente compil-lo junto com o kernel, ganhando em performance.

Pgina 6

Linux System Administration

4Linux www.4linux.com.br

10.2 Gerenciando os mdulos

de suma importncia saber a verso do kernel para saber se a verso suporta ou no um mdulo. Determine qual verso do kernel est sendo utilizada:

# uname -r

Dica LPI: O comando que exibe o Kernel em uso, e suas opes : uname -a

Determine quais mdulos esto carregados:

1 2

# lsmod # cat / proc / modules

Para vericar os mdulos esto carregados, usamos o comando lsmod. Veja que a sada do comando lsmod em colunas, listado todos mdulos que esto carregados em memria, inclusive os que no esto em uso. Onde: Module exibe o nome do mdulo Size exibe em bytes, o tamanho da memria do mdulo Used by exibe a contagem de quantas instncias do mdulo esto carregadas e o mdulo que est usando; os valores so importantes porque no podemos remover um mdulo que esteja sendo usado, a no ser que nesse campo, o valor seja zero. Tambm exibe se o mdulo depende de outro para funcionar, mostrando o nome do mdulo que ele depende. Para determinar quais mdulos esto compilados (disponveis):

Linux System Administration

Pgina 7

10.2 Gerenciando os mdulos

4Linux www.4linux.com.br

# modprobe -l

Uma das opes do comando modprobe listar os mdulos disponveis em /lib/modules/. Para isso, basta utilizar a opo -l: para determinar o nmero de mdulos carregados e o nmero de mdulos disponveis:

1 2

# lsmod | grep -v

^" Module " | wc -l

# modprobe -l | wc -l

Determine para que serve o mdulo chamado ext3:

# modinfo ext3

O comando modinfo exibe informaes sobre um mdulo Determine quais mdulos so utilizados pelo lesystem ext3:

# lsmod | grep ext3

Carregue o mdulo do lesystem vfat:

# modprobe vfat

O comando modprobe ou modprobe -i o responsvel por carregar um mdulo e suas dependncias. Determine quais so as dependncias do mdulo vfat:

Pgina 8

Linux System Administration

4Linux www.4linux.com.br

10.2 Gerenciando os mdulos

# modinfo vfat

Determine quais mdulos so utilizados pelo lesystem vfat:

# lsmod | grep vfat

Remova o mdulo vfat:

# modprobe -r vfat

O comando modprobe tambm pode ser utilizado para remover mdulos que no estejam sendo utilizados por outros mdulos. Alm dele remover o mdulo, ele tambm remove suas dependncias. Para executar essa ao, basta usar a opo -r: Outra forma de carregar mdulos atravs do comando , mas diferente do comando modprobe necessrio passar o caminho completo do mdulo e tambm necessrio carregar suas dependncias primeiro. Verique quais so as dependncias do mdulo vfat:

1 2 3 4 5 6 7 8

# modinfo vfat filename : author : description : license : srcversion : depends : vermagic : / lib / modules /2.6.32 -5 -686/ kernel / fs / fat / vfat . ko Gordon Chaffee VFAT filesystem support GPL 13 B4B99 4275625D397181 fat , nlsbase 2.6.32 -5 -686 SMP mod_unload modversions 686

Linux System Administration

Pgina 9

10.2 Gerenciando os mdulos

4Linux www.4linux.com.br

Na sada temos duas dependncias para o mdulo vfat, agora precisamos saber se suas dependncias no so dependentes de outras dependncias:

1 2 3 4 5 6

# modinfo fat filename : license : srcversion : depends : vermagic : / lib / modules /2.6.32 -5 -686/ kernel / fs / fat / fat . ko GPL F3CEDF3D6DC8D993978847D nls_base 2.6.32 -5 -686 SMP mod_unload modversions 686

Vericado que o mdulo fat depende do mdulo nls_base. Agora verique se o mdulo nls_base no depende de outro mdulo:

1 2 3 4 5

# modinfo nls_base filename : license : depends : vermagic : 2.6.32 -5 -686 SMP mod_unload modversions 686 / lib / modules /2.6.32 -5 -686/ kernel / fs / nls / nls_base . ko DUAL BSD / GPL

O mdulo nls_base no depende de nenhum outro mdulo, ento agora, carregue os mdulos na ordem de dependncias: nls_base -> fat -> vfat Lembrando que voc deve passar o caminho completo do mdulo para utilizar o comando . Para visualizar todos os mdulos disponveis utiliza-se o comando modprobe com a opo -l, mas para visualizar se um mdulo especco est disponvel utilize seu nome como argumento. Todos os mdulos:

Pgina 10

Linux System Administration

4Linux www.4linux.com.br

10.2 Gerenciando os mdulos

# modprobe -l

Mdulo especco:

1 2 3

# modprobe -l nls_base # modprobe -l fat # modprobe -l vfat

Ento para carregar o mdulo nls_base fat e vfat faa:

1 2 3

# insmod / lib / modules / $ ( uname -r ) / $ ( modprobe -l nls_base ) # insmod / lib / modules / $ ( uname -r ) / $ ( modprobe -l fat ) # insmod / lib / modules / $ ( uname -r ) / $ ( modprobe -l vfat )

Veja que todos eles foram carregados com sucesso:

# lsmod | grep fat

Outra forma de remover mdulos atravs do comando rmmod, mas diferente do comando modprobe -r ele s remove o mdulo que no esteja sendo utilizado por outro e no remove suas dependncias. Na sada do comando anterior verique qual mdulo est sendo utilizado por outro: vfat -> no tem dependente fat -> vfat depende dele nls_base -> fat depende dele

Linux System Administration

Pgina 11

10.2 Gerenciando os mdulos

4Linux www.4linux.com.br

Logo para removermos temos que seguir a ordem: vfat -> fat -> nls_base Removendo os mdulos:

1 2 3

# rmmod vfat # rmmod fat # rmmod nls_base

Veja que todos eles foram descarregados com sucesso:

# lsmod | grep fat

Como o modprobe sabe quais mdulos dependem de quais mdulos?

1 2 3

# cd / lib / modules / $ ( uname -r ) # ls -l # less modules . dep

O arquivo modules.dep o responsvel por armazenar os dados de dependncias de mdulos, atravs dele os comandos modprobe e modinfo, conseguem obter as informaes necessrias para serem executados, teste arquivo gerado em todo boot. No acredita que o modprobe usa esse arquivo? Remova-o e tente carregar o mdulo vfat:

1 2

# rm / lib / modules / $ ( uname -r ) / modules . dep # modprobe vfat

Pgina 12

Linux System Administration

4Linux www.4linux.com.br

10.2 Gerenciando os mdulos

No funcionou? E agora? Construa o arquivo modules.dep e tente novamente:

1 2 3

# depmod # ls / lib / modules / $ ( uname -r ) / modules . dep # modprobe vfat

O comando depmod gera o arquivo modules.dep.

10.2.1 Identicando Dispositivos e seus mdulos


Identique qual a placa de rede do seu computador:

1 2

# lspci - nn | grep -i eth 3: . Ethernet controller [ 2 2) ]: Realtek Semiconductor Co . , Ltd . RTL81 1E / RTL81 2E PCI Express Fast Ethernet controller [1 ec :8136] ( rev

DICA: Repare no nmero 10ec:8136 (PCI iD) este nmero nico para este dispositivo e atravs dele podemos saber qual o nome do seu mdulo e qual verso do kernel tem suporte a ele.

Acesse o site: http://www.kmuto.jp/debian/hcl/

Digite o nmero encontrado: 10ec:8136 e descubra qual o nome do mdulo e quais verses do kernel tm suporte a este mdulo. Outra forma de identicar o modulo, de um dispositivo o "lspci", com ltro de uma palavra chave, continuando o exemplo da placa de rede:

Linux System Administration

Pgina 13

10.2 Gerenciando os mdulos

4Linux www.4linux.com.br

1 2

# lspci | grep -i net 4: . Ethernet controller : Marvell Technology Group Ltd . 88 E8 57 PCI -E Gigabit Ethernet Controller ( rev 1 )

Repare o nmero de id da placa de rede 04:00.0 e descubra qual o nome do mdulo que a sua placa de rede necessita:

1 2 3 4 5 6 7 8 9 10 11 12 13 14

# lspci -v -s 4: .

4:

Ethernet controller : Marvell Technology Group Ltd . 88 E8 57

PCI -E Gigabit Ethernet Controller ( rev 1 ) Subsystem : Sony Corporation Device 9 7 a Flags : bus master , fast devsel , latency Memory at e662 I/O ports at a [ size =256] [ disabled ] [ size =128 K ] , IRQ 46 (64 - bit , non - prefetchable ) [ size =16 K ]

Expansion ROM at e66

Capabilities : [48] Power Management version 3 Capabilities : [5 c ] MSI : Enable + Count =1/1 Maskable - 64 bit + Capabilities : [ c ] Express Legacy Endpoint , MSI Capabilities : [1 ] Advanced Error Reporting Capabilities : [13 ] Device Serial Number 6b -3 b -74 - ff - ff -49 -42 -54 Kernel driver in use : sky2 Kernel modules : sky2

Outra forma de busca seria buscar informaes na internet ou tentar determinar qual o mdulo que ela utiliza na raa(tentativa e erro):

1 2 3 4 5

# modprobe -l | grep -i realtek # modprobe -l | grep -i real # modprobe -l | grep -i tek # modprobe -l | grep rtl # modprobe ...( m dulos obtidos nas s idas )

Pgina 14

Linux System Administration

4Linux www.4linux.com.br

10.2 Gerenciando os mdulos

No h uma regra geral para determinar qual o mdulo que fornece suporte a um determinado hardware. A forma mais fcil utilizar um kernel genrico e tentar descobrir qual o mdulo que utilizado por meio dos comandos lsmod e modinfo, procurar na rvore do kernel, ou procurar nos mecanismos de busca na Internet.

Aps descobrir o mdulo descarregue-o e veja que a placa rede parou de funcionar:

# modprobe -r r8169

No CentOS ao derrubar o mdulo da placa de rede ele recarrega o mdulo automaticamente, isto porque existe o arquivo: /etc/syscong/network-scripts/networkfunctions, este arquivo mantm funes que controlam muitos scripts de interface e funces que esto em contato com programas em execuo que tenham solicitado informaes sobre mudanas no status de uma interface. Caso queira bloquear o carregamento de um mdulo na inicializao edite o arquivo /etc/modprobe.d/blacklist.conf e adicione blacklist [mdulo]. Bloqueie o mdulo da placa de rede de ser carregado na hora do boot:

1 2

# vim / etc / modprobe . d / blacklist . conf blacklist r8169

Reinicie a mquina e veja que o mdulo no carregado:

# lsmod | grep r8169

Linux System Administration

Pgina 15

10.2 Gerenciando os mdulos

4Linux www.4linux.com.br

Caso precise que um mdulo seja carregado automaticamente na hora do boot faa: Debian:

1 2

# vim / etc / modules zaurus

CentOS:

1 2 3

# vim / etc / rc . modules modprobe zaurus # chmod + x / etc / rc . modules

Verique que o mdulo zaurus para PDA ZAURUS no est carregado, reinicie a mquina e veja que ele ser carregado automaticamente, aps o boot:

# lsmod | grep zaurus

Pgina 16

Linux System Administration

Servidor de Impresso
10.3 Introduo Terica
O CUPS - Common Unix Printing System uma das formas mais utilizadas atualmente para trabalhar com impresso no mundo GNU/Linux. Ele utiliza o protocolo IPP - Internet Printing Protocol para gerenciar as las e trabalhos de impresso. Com o IPP voc pode imprimir de qualquer lugar, atravs da internet para sua impressora domstica, por exemplo. Alm disso, o CUPS fornece uma interface Web para gerenciamento de quotas de impresso e que oferece suporte maioria das impressoras existentes. A melhor documentao a respeito do CUPS pode ser encontrada online no manual ocial no projeto, disponvel no endereo http://www.cups.org

10.3.1 Instalao Servidor Cups


Debian:

# apt - get install cups - bsd

CentOS:

17

10.3 Introduo Terica

4Linux www.4linux.com.br

# yum install cups - lpd

Agora podemos gerenciar as conguraes relacionadas impressora. Para isso utilizaremos a interface de gerenciamento do CUPS via browser. Para isso, abra seu navegador preferido e digite http://localhost:631.

Antes de continuarmos a instalao do servidor de impresso devemos saber se a impressora tem suporte ao linux e qual o seu driver.

Para isso identique o nome e modelo da impressora, no nosso exemplo a impressora ser a HP Deskjet D1660.

DICA: Para descobrir o driver da impressora e se ela tem suporte acesse o site: http://www.openprinting.org

Clique em Printers:

Pgina 18

Linux System Administration

4Linux www.4linux.com.br

10.3 Introduo Terica

Selecione o fabricante(Manufacter) e modelo(Model) e depois clique em Show this printer:

Linux System Administration

Pgina 19

10.3 Introduo Terica

4Linux www.4linux.com.br

Aparecer o nome da impressora no topo da pgina:

E no nal aparecer o nome do driver, selecione-o:

Pgina 20

Linux System Administration

4Linux www.4linux.com.br

10.3 Introduo Terica

Selecione novamente o driver:

Linux System Administration

Pgina 21

10.3 Introduo Terica

4Linux www.4linux.com.br

Antes de fazer o download, pode-se tentar instalar o driver hplip pelo gerenciador de pacotes de sua distribuio:

Debian:

# apt - get install hplip

Verique a verso:

# dpkg -l hplip

CentOS:

# yum install hplip

Verique a verso:

# rpm -q hplip

Compare as verses com a do site, talvez sua verso no tenha suporte para a impressora, ento faa o download da verso mais atual:

Pgina 22

Linux System Administration

4Linux www.4linux.com.br

10.3 Introduo Terica

Ao clicar em download, aparecer a tela abaixo, preencha conforme o solicitado: No CentOS:

Clique em avanar, verque que na prxima tela, apresentado que o pacote fornecido pela distribuio no tem suporte a esta impressora: Red Hat Enterprise linux 6.0 supplies HPLIP 1.6.7 and it does not support your printer.

Linux System Administration

Pgina 23

10.3 Introduo Terica

4Linux www.4linux.com.br

Clique em avanar:

Faa o download:

Pgina 24

Linux System Administration

4Linux www.4linux.com.br

10.3 Introduo Terica

Para instalar:

# rpm -i hplip -3.11.12 _rhel -6. . x86_64 . rpm

No Debian:

Na tela seguinte alertado que o Debian6 fornece uma verso do driver hplip que no suporte a impressora HP. Debian 6.0 supplies HPLIP 2.8.6 and it does not support

Linux System Administration

Pgina 25

10.3 Introduo Terica

4Linux www.4linux.com.br

your printer

Clique em avanar:

Clique em avanar novamente:

Para nalizar faa o download do driver:

Pgina 26

Linux System Administration

4Linux www.4linux.com.br

10.3 Introduo Terica

Execute o arquivo baixado:

1 2 3 4

# bash hplip -3.11.1 . run Creating directory hplip -3.11.1 Verifying archive integrity ... All good . Uncompressing HPLIP 3.11.1 Self Extracting Archive

.............................................................................
5 6 7 8 9 10 11 12 13 14 15 16 17 18

warning : hplip - install should not be run as root . HP Linux Imaging and Printing System ( ver . 3.11.1 ) HPLIP Installer ver . 5.1 Copyright ( c ) 2 1 -9 Hewlett - Packard Development Company , LP

This software comes with ABSOLUTELY NO WARRANTY . This is free software , and you are welcome to distribute it under certain conditions . See COPYING file for more details . Installer log saved in : hplip - install_Mon -21 - Nov -2 11 _17 :18:45. log / error : You are running the installer as root . It is highly recommended that you run the installer as error : a regular ( non - root ) user . Do you still wish to continue ? Continue instalando : Continue with installation ( y = yes , n = no * , q = quit ) ? y

19 20

note : Defaults for each question are maked with a * . Press < enter > to accept the default .

Linux System Administration

Pgina 27

10.3 Introduo Terica

4Linux www.4linux.com.br

21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40

INSTALLATION MODE ----------------Automatic mode will install the full HPLIP solution with the most common options . Custom mode allows you to choose installation options to fit specific requirements . Qual o tipo de instala o : autom tica Please choose the installation mode ( a = automatic * , c = custom , q = quit ) : a Initializing . Please wait ... INTRODUCTION -----------This installer will install HPLIP version 3.11.1 , Synaptic , Up2date , etc ) . on your computer . Please close any running package management systems now ( YaST , Adept

DISTRO / OS CONFIRMATION ---------------------Distro appears to be Debian 6. .3. DICA : Quando perguntar qual a vers o da sua distro no cado do Debian , diga que n o est correto e selecione manualmente a vers o 6. , o pacote n o atualizado constantemente quanto a distribui o e por isso , falhar a instala o postriormente se n o escolher manualmente .

41 42 43 44 45 46 47

Is " Debian 6. .3 " your correct distro / OS and version ( y = yes * , n = no , q= quit ) ? n DISTRO / OS SELECTION ------------------Choose the name of the distro / OS that most closely matches your system :

Pgina 28

Linux System Administration

4Linux www.4linux.com.br

10.3 Introduo Terica

48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83

Num . Distro / OS Name ---- -----------------------Mepis 1 Debian 2 SUSE Linux 3 Mandriva Linux 4 Fedora 5 Red Hat 6 Red Hat Enterprise Linux 7 Ubuntu 8 PCLinuxOS 9 Linux Mint 1 gOS 11 Linpus Linux 12 IGOS 13 Boss 14 Linux From Scratch Escolha Debian : 1 Enter number ...14 ( q = quit ) ? 1

Choose the version of " Debian " that most closely matches your system : Num . Distro / OS Version -------------------------------------------Unknown or not listed 1 2 3 4 5 6 7 8 9 1 5. (" Lenny " ) 5. .1 ( " Lenny " ) 5. .2 ( " Lenny " ) 5. .3 ( " Lenny " ) 5. .4 ( " Lenny " ) 5. .5 ( " Lenny " ) 5. .6 ( " Lenny " ) 5. .7 ( " Lenny " ) 5. .8 ( " Lenny " ) 6. (" Squeeze " )

11 6. .1 ( " Squeeze " )

Linux System Administration

Pgina 29

10.3 Introduo Terica

4Linux www.4linux.com.br

84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112

12 6. .2 ( " Squeeze " ) Escolha a vers o mais pr xima a sua distro : Enter number ...12 ( q = quit ) ? 12

Distro set to : Debian 6. .2

INSTALLATION NOTES -----------------NOTE : Disable the CD Sources in your apt sources . list or the install will fail and hang . Please read the installation notes . Press < enter > to continue or q to quit :

RUNNING PRE - INSTALL COMMANDS ---------------------------OK

INSTALL MISSING REQUIRED DEPENDENCIES ------------------------------------warning : There are 8 missing REQUIRED dependencies . note : Installation of dependencies requires an active internet connection . warning : Missing REQUIRED dependency : gcc ( gcc - GNU Project C and C ++ Compiler ) warning : Missing REQUIRED dependency : make ( make - GNU make utility to maintain groups of programs ) warning : Missing REQUIRED dependency : python - devel ( Python devel Python development files ) warning : Missing REQUIRED dependency : cups - devel ( CUPS devel - Common Unix Printing System development files ) warning : Missing REQUIRED dependency : libusb ( libusb - USB library ) warning : Missing REQUIRED dependency : libtool ( libtool - Library building support services )

Pgina 30

Linux System Administration

4Linux www.4linux.com.br

10.3 Introduo Terica

113 114 115 116 117 118 119 120 121 122

warning : Missing REQUIRED dependency : cups - image ( CUPS image - CUPS image development files ) warning : Missing REQUIRED dependency : libjpeg ( libjpeg - JPEG library )

INSTALL MISSING OPTIONAL DEPENDENCIES ------------------------------------warning : There are 1 connection . warning : Missing REQUIRED dependency for option network : libcrypto ( libcrypto - OpenSSL cryptographic library ) warning : Missing REQUIRED dependency for option network : libnetsnmp - devel ( libnetsnmp - devel - SNMP networking library development files ) missing OPTIONAL dependencies . note : Installation of dependencies requires an active internet

123 124 125 126 127 128

warning : Missing REQUIRED dependency for option gui_qt4 : pyqt4 dbus ( PyQt 4 DBus - DBus Support for PyQt4 ) warning : Missing REQUIRED dependency for option gui_qt4 : pyqt4 ( PyQt 4 - Qt interface for Python ( for Qt version 4. x ) ) warning : Missing OPTIONAL dependency for option fax : reportlab ( Reportlab - PDF library for Python ) warning : Missing REQUIRED dependency for option fax : dbus ( DBus Message bus system ) warning : Missing REQUIRED dependency for option scan : sane - devel ( SANE - Scanning library development files ) warning : Missing OPTIONAL dependency for option scan : pil ( PIL Python Imaging Library ( required for commandline scanning with hp - scan ) )

129 130 131 132 133

warning : Missing OPTIONAL dependency for option scan : xsane ( xsane - Graphical scanner frontend for SANE ) warning : Missing OPTIONAL dependency for option base : cups - ddk ( CUPS DDK - CUPS driver development kit ) warning : This installer cannot install cups - ddk for your distro / OS and / or version .

Linux System Administration

Pgina 31

10.3 Introduo Terica

4Linux www.4linux.com.br

134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169

CHECKING FOR NETWORK CONNECTION ------------------------------Network connection present .

RUNNING PRE - PACKAGE COMMANDS ---------------------------su -c " dpkg -- configure -a " ( Pre - depend step 1) su -c " apt - get install -f " ( Pre - depend step 2) su -c " apt - get update " ( Pre - depend step 3) warning : An error occurred running su -c " apt - get install -- yes cupsys - bsd " su -c " apt - get install -- yes cupsys - bsd " ( Pre - depend step 4) OK

DEPENDENCY AND CONFLICT RESOLUTION ---------------------------------Running su -c " apt - get install -- force - yes -y g ++ " Please wait , this may take several minutes ... Running su -c " apt - get install -- force - yes -y make " Please wait , this may take several minutes ... Running su -c " apt - get install -- force - yes -y python - dev " Please wait , this may take several minutes ... Running su -c " apt - get install -- force - yes -y libcups2 - dev " Please wait , this may take several minutes ... Running su -c " apt - get install -- force - yes -y cups - bsd " Please wait , this may take several minutes ... Running su -c " apt - get install -- force - yes -y cups - client " Please wait , this may take several minutes ... Running su -c " apt - get install -- force - yes -y libusb - dev " Please wait , this may take several minutes ... Running su -c " apt - get install -- force - yes -y libtool " Please wait , this may take several minutes ... Running su -c " apt - get install -- force - yes -y libcupsimage2 " Please wait , this may take several minutes ... Running su -c " apt - get install -- force - yes -y libcupsimage2 - dev "

Pgina 32

Linux System Administration

4Linux www.4linux.com.br

10.3 Introduo Terica

170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199

Please wait , this may take several minutes ... Running su -c " apt - get install -- force - yes -y libjpeg62 - dev " Please wait , this may take several minutes ... Running su -c " apt - get install -- force - yes -y libssl - dev " Please wait , this may take several minutes ... Running su -c " apt - get install -- force - yes -y libsnmp - dev " Please wait , this may take several minutes ... Running su -c " apt - get install -- force - yes -y python - qt4 - dbus " Please wait , this may take several minutes ... Running su -c " apt - get install -- force - yes -y python - qt4 " Please wait , this may take several minutes ... Running su -c " apt - get install -- force - yes -y python - reportlab " Please wait , this may take several minutes ... Running su -c " apt - get install -- force - yes -y libdbus -1 - dev " Please wait , this may take several minutes ... Running su -c " apt - get install -- force - yes -y libsane - dev " Please wait , this may take several minutes ... Running su -c " apt - get install -- force - yes -y python - imaging " Please wait , this may take several minutes ... Running su -c " apt - get install -- force - yes -y xsane " Please wait , this may take several minutes ... RUNNING POST - PACKAGE COMMANDS ----------------------------OK

RE - CHECKING DEPENDENCIES -----------------------warning : An optional dependency pil ( PIL - Python Imaging Library ( required for commandline scanning with hp - scan ) ) is still missing .

200 201 202 203 204

warning : Some features may not function as expected .

PRE - BUILD COMMANDS ------------------

Linux System Administration

Pgina 33

10.3 Introduo Terica

4Linux www.4linux.com.br

205 206 207 208 209 210

OK

BUILD AND INSTALL ----------------Running ./ configure -- with - hpppddir =/ usr / share / ppd / HP -- libdir =/ usr / lib64 -- prefix =/ usr -- enable - qt4 -- enable - doc - build -- disable cups - ppd - install -- disable - foomatic - drv - install -- disable foomatic - ppd - install -- disable - hpijs - install -- disable - policykit -- enable - cups - drv - install -- enable - hpcups - install -- enable network - build -- enable - dbus - build -- enable - scan - build -- enable fax - build

211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235

Please wait , this may take several minutes ... Command completed successfully . Running make clean Please wait , this may take several minutes ... Command completed successfully . Running make Please wait , this may take several minutes ... Command completed successfully . Running make install Please wait , this may take several minutes ... Command completed successfully .

Build complete .

POST - BUILD COMMANDS ------------------/ usr / sbin / usermod -a -G lp , lpadmin root ( Post - build step 1)

RESTART OR RE - PLUG IS REQUIRED

Pgina 34

Linux System Administration

4Linux www.4linux.com.br

10.3 Introduo Terica

236 237 238 239 240 241 242 243 244

-----------------------------If you are installing a USB connected printer , and the printer was plugged in when you started this installer , you will need to either restart your PC or unplug and re - plug in your printer ( USB cable only ) . If you choose to restart , run this command after restarting : hp - setup ( Note : If you are using a parallel connection , you will have to restart your PC . If you are using network / wireless , you can ignore and continue ) . Restart or re - plug in your printer ( r = restart , p = re - plug in * , i = ignore / continue , q = quit ) : Please unplug and re - plugin your printer now . Press < enter > to continue or q to quit : < enter >

Com a inmpressora ligada e conectada ao servidor: execute o comando instalado pelo pacote:

# hp - setup

Escolha o tipo de conexo da impressora e avance:

Linux System Administration

Pgina 35

10.3 Introduo Terica

4Linux www.4linux.com.br

O dispositivo ser reconhecido:

Adicione a impressora:

Pgina 36

Linux System Administration

4Linux www.4linux.com.br

10.3 Introduo Terica

Pode-se adicionar a impressora diretamente pela sua interface grca caso o driver j esteja instalado:

Acesse: http://localhost:631

Preencha o nome da impressora, os demais campos no so obrigatrios, este ser o nome que aparecer na rede:

Linux System Administration

Pgina 37

10.3 Introduo Terica

4Linux www.4linux.com.br

Caso sua impressora j esteja conectada ao servidor e ligada, ela ser detectada automaticamente, escolha a forma com que ela est conectada corretamente, caso ela no tenha sido reconhecida.

Escolha o driver para o tipo da sua impressora:

Pgina 38

Linux System Administration

4Linux www.4linux.com.br

10.3 Introduo Terica

Digite a senha do administrador para adicionar a impressora, todos que pertenam ao grupo lpadmin so administradores do cups.

Imprima uma pgina teste:

Linux System Administration

Pgina 39

10.4 Compartilhando a impressora

4Linux www.4linux.com.br

10.4 Compartilhando a impressora

Na aba Administration do lado direito, habilite:

- Visualizar impressoras compartilhadas por outros sistemas

- Compartilhar impressoras conectadas a este servidor

- Habilitar administrao remota

Pgina 40

Linux System Administration

4Linux www.4linux.com.br

10.5 Congurao do Cliente

Tudo o que pode ser feito no gerenciador grco, pode ser feito no arquivo de congurao do servidor cups:

# cat / etc / cups / cupsd . conf

10.5 Congurao do Cliente


O arquivo para congurao do client o client.conf que por padro no existe ou est vazio:

# vim / etc / cups / client . conf

Esse arquivo deve conter o endereo IP do Servidor de Impresso na rede: ServerName 192.168.200.254

Linux System Administration

Pgina 41

10.5 Congurao do Cliente

4Linux www.4linux.com.br

Reinicie o servio do cups:

# / etc / init . d / cups restart

Denimos nossa impressora conectada atravs da porta USB, mas e se fosse uma impressora da rede, ou Paralela? Podemos conferir como ela seria referenciada usando o comando abaixo:

# lpinfo -v

Dica LPI: Se voc tivesse um impressora em na segunda porta paralela, esta seria referenciada como /dev/lp1.

Podemos agora fazer um teste de impresso com o comando lp:

# lp - dnome_da_impressora / etc / shadow

Dica LPI: a opo -d"recebe o nome da minha impressora /etc/shadow o arquivo que ser impresso

. Verique agora a la de impresso atual:

# lpstat -t

Pgina 42

Linux System Administration

4Linux www.4linux.com.br

10.5 Congurao do Cliente

ou

# lpq - Pnome_da_empresa

Para remover o trabalho da la de impresso por modo texto execute:

# lprm - Pnome_da_impressora n mero_do_job

Linux System Administration

Pgina 43

4451
Linux System Administration

www.4linux.com.br

Contedo
Redes avanado 11.1 Introduo Terica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.1.1 IPV4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.2 Mscara de rede . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.2.1 Alterando o nmero de bits da mscara de sub-rede . . . . . . . 2 3 3 5 8

11.2.2 Ipv6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 11.3 Tipos de Endereos IPv6 . . . . . . . . . . . . . . . . . . . . . . . . . . 24 11.3.1 Endereos Unicast . . . . . . . . . . . . . . . . . . . . . . . . . 25 11.4 Endereos Anycast . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 11.4.1 Endereo Multicast . . . . . . . . . . . . . . . . . . . . . . . . . 31 11.5 Estrutura do endereo Anycast . . . . . . . . . . . . . . . . . . . . . . . 33 11.6 ARP - Address Resolution Protocol . . . . . . . . . . . . . . . . . . . . . 36 11.7 Vericando portas abertas . . . . . . . . . . . . . . . . . . . . . . . . . . 40 11.7.1 Comando netstat . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 11.7.2 Comando nmap . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 11.8 Comando tcpdump . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 Servio de Rede Telnet 46

11.9 Telnet TELetype NETwork . . . . . . . . . . . . . . . . . . . . . . . . 48 11.10Instalao e congurao do Telnet . . . . . . . . . . . . . . . . . . . . 49

Redes avanado
11.1 Introduo Terica
11.1.1 IPV4
No IPV4, os endereo IP so compostos por 4 blocos de 8 bits (32 bits no total), que so representados atravs de nmeros de 0 a 255, como "200.156.23.43"ou "64.245.32.11". As faixas de endereos comeadas com "10", com "192.168" ou com de "172.16" at "172.31" so reservadas para uso em redes locais e por isso no so usados na internet. Os roteadores que compe a grande rede so congurados para ignorar estes pacotes, de forma que as inmeras redes locais que utilizam endereos na faixa "192.168.0.x"(por exemplo) podem conviver pacicamente. Embora aparentem ser uma coisa s, os endereos IP incluem duas informaes. O endereo da rede e o endereo do host dentro dela. Em uma rede domstica, por exemplo, voc poderia utilizar os endereos "192.168.1.1", "192.168.1.2"e "192.168.1.3", onde o "192.168.1." o endereo da rede (e por isso no muda) e o ltimo nmero (1, 2 e 3) identica os trs micros que fazem parte dela. Os micros da rede local podem acessar a internet atravs de um roteador, que pode ser tanto um servidor com duas placas de rede, quando um modem ADSL ou outro dispositivo que oferea a opo de compartilhar a conexo. Neste caso, o roteador passa a ser o gateway da rede e utiliza seu endereo IP vlido para encaminhar as

11.1 Introduo Terica

4Linux www.4linux.com.br

requisies feitas pelos micros da rede interna. Este recurso chamado de NAT (Network Address Translation).

Endereos de 32 bits permitem cerca de 4 bilhes de endereos diferentes, quase o suciente para dar um endereo IP exclusivo para cada habitante do planeta. Os endereos so divididos em:

O grande problema que os endereos so sempre divididos em duas partes, rede e host. Nos endereos de classe A, o primeiro octeto se refere rede e os trs octetos seguintes referem-se ao host. Temos apenas 126 faixas de endereos classe A disponveis no mundo, dadas a governos, instituies e at mesmo algumas empresas privadas, como por exemplo a IBM. As faixas de endereos classe A consomem cerca de metade dos endereos IP disponveis, representando um gigantesco desperdcio, j que nenhuma das faixas completamente utilizada. Ser que a IBM utiliza todos os 16 milhes de endereos IP a que tem direito? Certamente no.

Mesmo nos endereos classe B (dois octetos para a rede, dois para o host, garantindo 65 mil endereos) e nos classe C (trs octetos para a rede e um para o host, ou seja, apenas 256 endereos) o desperdcio muito grande. Muitas empresas alugam faixas de endereos classe C para utilizar apenas dois ou trs endereos por exemplo.

Para piorar, parte dos endereos esto reservados para as classes D e E, que jamais foram implementadas. Isto faz com que j haja uma grande falta de endereos, principalmente os de classe A e B, que j esto todos ocupados.

Pgina 4

Linux System Administration

4Linux www.4linux.com.br

11.2 Mscara de rede

11.2 Mscara de rede

A mscara de rede, juntamente com o endereo IP, dene a rede o computador pertence, isto , que outros endereos IP que o computador pode comunicar diretamente na mesma LAN.

A m de compreender a mscara lembre-se sempre que os 4 bytes que dene tanto o endereo IP e a mscara de rede poderiam ser representados em formato binrio.

A mscara de rede , por denio, uma seqncia de "1"a partir da esquerda para a direita, seguido por um certo nmero de "0"(a faixa de rede). Devido a esta regra a mscara de rede muitas vezes representada com valores decimais, que soam como um ou mais "255", seguido por um ou mais "0".

Utilizando mscaras de sub-rede padro para cada classe de endereos, onde so utilizados oito, dezesseis ou vinte e quatro bits para a mscara de rede, conforme descrito a seguir:

Por isso que existe uma outra notao conhecida como CIDR (Classless Inter-Domain Routing), onde a mscara de sub-rede indicada simplesmente pelo nmero de bits utilizados na mscara de sub-rede, conforme exemplos a seguir:

Linux System Administration

Pgina 5

11.2 Mscara de rede

4Linux www.4linux.com.br

Porm com este esquema de endereamento, baseado apenas nas mscaras de rede padro para cada classe (oito, dezesseis ou vinte e quatro bits), haveria um grande desperdcio de nmeros IP. Por exemplo, que empresa no mundo precisaria da faixa completa de uma rede classe A, na qual esto disponveis mais de 16 milhes de endereos IP?

Analise o outro extremo desta questo. Imagine, por exemplo, uma empresa de porte mdio, que tem a matriz em So Paulo e mais cinco liais em outras cidades do Brasil. Agora imagine que em nenhuma das localidades, a rede tem mais do que 30 computadores. Se for usado as mscaras de sub-rede padro, teria que ser denida uma rede Classe C (at 254 computadores), para cada localidade. Observe que estamos reservando 254 nmeros IP para cada localidade (uma rede classe C com mscara 255.255.255.0), quando na verdade, no mximo, 30 nmeros sero utilizados em cada localidade. Na prtica, um belo desperdcio de endereos IP, mesmo em um empresa de porte mdio ou pequeno.

Observe que neste exemplo, uma nica rede Classe C seria suciente. J que so seis localidades (a matriz mais seis liais), com um mximo de 30 endereos por localidade, um total de 254 endereos de uma rede Classe C seria mais do que suciente. Ainda haveria desperdcio, mas agora bem menor.

A boa notcia que possvel dividir uma rede (qualquer rede) em sub-redes, onde cada sub-rede ca apenas com uma faixa de nmeros IP de toda a faixa original. Por exemplo, a rede Classe C 200.100.100.0/255.255.255.0, com 256 nmeros IPs disponveis (na prtica so 254 nmeros que podem ser utilizados, descontando o primeiro que o nmero da prpria rede e o ltimo que o endereo de broadcast, poderia ser dividida em 8 sub-redes, com 32 nmeros IP em cada sub-rede. O esquema a seguir ilustra este conceito:

Pgina 6

Linux System Administration

4Linux www.4linux.com.br

11.2 Mscara de rede

Rede original: 256 endereos IP disponveis: 200.100.100.0 -> 200.100.100.255 Diviso da rede em 8 sub-redes, onde cada sub-rede ca com 32 endereos IP: Sub-rede 01: 200.100.100.0 -> 200.100.100.31 Sub-rede 02: 200.100.100.32 -> 200.100.100.63 Sub-rede 03: 200.100.100.64 -> 200.100.100.95 Sub-rede 04: 200.100.100.96 -> 200.100.100.127 Sub-rede 05: 200.100.100.128 -> 200.100.100.159 Sub-rede 06: 200.100.100.160 -> 200.100.100.191 Sub-rede 07: 200.100.100.192 -> 200.100.100.223 Sub-rede 08: 200.100.100.224 -> 200.100.100.255 Para o exemplo da empresa com seis localidades (matriz mais cinco liais), onde, no mximo, so necessrios trinta endereos IP por localidade, a utilizao de uma nica rede classe C, dividida em 8 sub-redes seria a soluo ideal. Na prtica a primeira e a ltima sub-rede so descartadas, pois o primeiro IP da primeira subrede representa o endereo de rede e o ltimo IP da ltima sub-rede representa o endereo de broadcast. Com isso restariam, ainda, seis sub-redes. Exatamente a quantia necessria para o exemplo proposto. Observe que ao invs de seis redes classe C, bastou uma nica rede Classe C, subdividida em seis sub-redes. Uma bela economia de endereos. Claro que se um dos escritrios, ou a matriz, precisasse de mais de 32 endereos IP, um esquema diferente de diviso teria que ser criado. Entendido o conceito terico de diviso em sub-redes, resta o trabalho prtico, ou seja:

O que tem que ser alterado para fazer a diviso em sub-redes?

Linux System Administration

Pgina 7

11.2 Mscara de rede

4Linux www.4linux.com.br

Como calcular o nmero de sub-redes e o nmero de nmeros IP dentro de cada sub-rede? Como listar as faixas de endereos dentro de cada sub-rede? Observe o que tem que ser alterado para fazer a diviso de uma rede padro (com mscara de 8, 16 ou 24 bits) em uma ou mais sub-redes. Em seguida, veja alguns exemplos de diviso de uma rede em sub-redes. Mos a obra.

11.2.1 Alterando o nmero de bits da mscara de sub-rede


Por padro so utilizadas mscaras de sub-rede de 8, 16 ou 24 bits, conforme indicado no esquema a seguir:

Uma mscara de 8 bits signica que todos os bits do primeiro octeto so iguais a 1; uma mscara de 16 bits signica que todos os bits do primeiro e do segundo octeto so iguais a 1 e uma mscara de 24 bits signica que todos os bits dos trs primeiros octetos so iguais a 1. Este conceito est ilustrado na tabela a seguir:

Mscaras de rede com 8, 16 e 24 bits No exemplo da rede com matriz em So Paulo e mais cinco escritrios, vamos utilizar uma rede classe C, que ser subdividida em seis sub-redes (na prtica 8, mas a

Pgina 8

Linux System Administration

4Linux www.4linux.com.br

11.2 Mscara de rede

primeira e a ltima no so utilizadas). Para fazer esta subdiviso, voc deve alterar o nmero de bits iguais a 1 na mscara de sub-rede. Por exemplo, ao invs de 24 bits, voc ter que utilizar 25, 26, 27 ou um nmero a ser denido. Bem, j avanamos mais um pouco: Para fazer a diviso de uma rede em sub-redes, preciso aumentar o nmero de bits iguais a 1, alterando com isso a mscara de sub-rede. Quantos bits devem ser utilizados para a mscara de sub-rede? Agora, naturalmente, surge uma nova questo: "Quantos bits?". Ou de uma outra maneira (j procurando induzir o seu raciocnio): "O que dene o nmero de bits a ser utilizados a mais?" Bem, esta uma questo bem mais simples do que pode parecer. Vamos a ela. No exemplo proposto, precisamos dividir a rede em seis sub-redes. Ou seja, o nmero de sub-redes deve ser, pelo menos, seis. Sempre lembrando que a primeira e a ltima sub-rede no so utilizadas. O nmero de sub-redes proporcional ao nmero de bits que vamos adicionar mscara de sub-rede j existente. O nmero de rede 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 No nosso exemplo esto disponveis at 8 bits do ltimo octeto para serem tambm utilizados na mscara de sub-rede. Claro que na prtica no podemos usar os 8 bits, seno caramos com o endereo de broadcast: 255.255.255.255, como mscara de sub-rede. Alm disso, quanto mais bits pegar para a mscara de sub-rede, menos sobraro para os nmeros IP da rede. Por exemplo, se adicionar mais um bit a mscara j existente, carei com 25 bits para a mscara e 7 para nmeros IP, se adicionar mais dois bits mscara original de 24 bits, carei com 26 bits para a mscara e somente 6 para nmeros IP e assim por diante. O nmero de bits que restam para os nmeros IP, denem quantos nmeros IP podem haver em cada sub-rede. A frmula para determinar o nmero de endereos IP dentro de cada subrede, indicado a seguir, onde n o nmeo de bits destinados a parte de host do

Linux System Administration

Pgina 9

11.2 Mscara de rede

4Linux www.4linux.com.br

endereo (32 - bits usados para a mscara): 2. Nm. de end. IP dentro de cada sub-rede = 2n-2 Na tabela a seguir, veja os clculos para a diviso de sub-redes que ser feita no exemplo. Observe que quanto mais bits adicionado mscara de sub-rede, mais sub-redes possvel obter, porm com um menor nmero de mquinas em cada sub-rede. Lembrando que no exemplo estamos subdividindo uma rede classe C 200.100.100.0/255.255.255.0, ou seja, uma rede com 24 bits para a mscara de sub-rede original.

Nmero de redes e nmero de hosts em cada rede. Claro que algumas situaes no se aplicam na prtica. Por exemplo, usando apenas um bit a mais para a mscara de sub-rede, isto , 25 bits ao invs de 24. Neste caso teremos 0 sub-redes disponveis. Pois com 1 bit possvel criar apenas duas sub-redes, como a primeira e a ltima so descartadas, conforme descrito anteriormente, na prtica as duas sub-redes geradas no podero ser utilizadas. A mesma situao ocorre com o uso de 7 bits a mais para a mscara de sub-rede, ou seja, 31 ao invs de 24. Nesta situao sobra apenas um bit para os endereos IP. Com 1 bit posso ter apenas dois endereos IP, descontanto o primeiro e o ltimo que no so utilizados, no sobra nenhum endereo IP. As situaes intermedirias que so mais realistas. No nosso exemplo, precisamos dividir a rede Classe C - 200.100.100.0/255.255.255.0, em seis sub-redes. De acordo com a tabela da Figura anterior, precisamos utilizar 3 bits a mais para obter as seis sub-redes dese-

Pgina 10

Linux System Administration

4Linux www.4linux.com.br

11.2 Mscara de rede

jadas. Observe que utilizando trs bits a mais, ao invs de 24 bits (mscara original), vamos utilizar 27 bits para a mscara de sub-rede. Com isso sobram cinco bits para os nmeros IPs dentro de cada sub-rede, o que d um total de 30 nmeros IP por subrede. Exatamente o que precisamos. A prxima questo que pode surgir como que ca a mscara de sub-rede, agora que ao invs de 24 bits, estou utilizando 27 bits, conforme ilustrado na tabela a seguir:

Figura - Mscara de sub-rede com 27 bits. Para determinar a nova mscara temos que revisar o valor de cada bit. Da esquerda para a direita, cada bit representa o seguinte valor, respectivamente: 128 64 32 16 8 4 2 1 Como os trs primeiros bits do ltimo octeto foram tambm utilizados para a mscara, estes trs bits somam para o valor do ltimo octeto. No nosso exemplo, o ltimo octeto da mscara ter o seguinte valor: 128+64+32 = 224. Com isso a nova mscara de sub-rede, mscara esta que ser utilizada pelas seis sub-redes, a seguinte: 255.255.255.224. Observe que ao adicionar bits mscara de sub-rede, fazemos isso a partir do bit de maior valor, ou seja, o bit mais da esquerda, com o valor de 128, depois usamos o prximo bit com valor 64 e assim por diante. Na tabela a seguir, apresento a ilustrao de como ca a nova mscara de sub-rede:

Figura - Como ca a nova mscara de sub-rede. Com o uso de trs bits adicionais para a mscara de rede, teremos seis sub-redes

Linux System Administration

Pgina 11

11.2 Mscara de rede

4Linux www.4linux.com.br

disponveis (uma para cada escritrio) com um nmero mximo de 30 nmeros IP por sub-rede. Exatamente o que precisamos para o exemplo proposto.A idia bsica de subnet bastante simples. Utiliza-se bits adicionais para a mscara de subrede. Com isso se tem uma diviso da rede original (classe A, classe B ou classe C) em vrias sub-redes, sendo que o nmero de endereos IP em cada sub-rede reduzido (por termos utilizados bits adicionais para a mscara de sub-rede, bits estes que originalmente eram destinados aos endereos IP). Esta diviso pode ser feita em redes de qualquer uma das classes padro A, B ou C. Por exemplo, por padro, na Classe A so utilizados 8 bits para a mscara de sub-rede e 24 bits para hosts. Voc pode utilizar, por exemplo, 12 bits para a mscara de sub-rede, restando com isso 20 bits para endereos de host. Na tabela a seguir, apresentado os clculos para o nmero de sub-redes e o nmero de hosts dentro de cada sub-rede, apenas para os casos que podem ser utilizados na prtica, ou seja, duas ou mais sub-redes e dois ou mais endereos vlidos em cada sub-rede, quando for feita a sub-diviso de uma rede Classe C, com mscara original igual a 255.255.255.0..

Nmero de redes e nmero de hosts em cada rede - divso de uma rede Classe C. Lembrando que a frmula para calcular o nmero de sub-redes : Nm. de sub-redes = 2n-2 onde n o nmero de bits a mais utilizados para a mscara de sub-rede E a frmula para calcular o nmero de endereos IP dentro de cada sub-rede : Nm de IPs por subrede = 2n-2

Pgina 12

Linux System Administration

4Linux www.4linux.com.br

11.2 Mscara de rede

onde n o nmero de bits restantes, isto , no utilizados pela mscara de subrede.

At aqui foram vistos ememplos da rede Classe C, que est sendo subdividida em vrias sub-redes. Porm tambm possvel subdividir redes Classe A e redes Classe B. Lembrando que redes classe A utilizam, por padro, apenas 8 bits para o endereo de rede, j redes classe B, utilizam, por padro, 16 bits. Na tabela a seguir, apresento um resumo do nmero de bits utilizados para a mscara de sub-rede, por padro, nas classes A, B e C:

Figura - Mscara padro para as classes A, B e C

Para subdividir uma rede classe A em sub-redes, basta usar bits adicionais para a mscara de sub-rede. Por padro so utilizados 8 bits. Se voc utilizar 10, 12 ou mais bits, estar criando sub-redes. O mesmo raciocnio vlido para as redes classe B, as quais utilizam, por padro, 16 bits para a mscara de sub-rede. Se voc utilizar 18, 20 ou mais bits para a mscara de sub-rede, estar subdividindo a rede classe B em vrias sub-redes.

As frmulas para clculo do nmero de sub-redes e do nmero de hosts em cada sub-rede so as mesmas apresentadas anteriormente, independentemente da classe da rede que est sendo dividida em sub-redes.

A seguir apresentado uma tabela com o nmero de sub-redes e o nmero de hosts em cada sub-rede, dependendo do nmero de bits adicionais (alm do padro denido para a classe) utilizados para a mscara de sub-rede, para a diviso de uma rede Classe B:

Linux System Administration

Pgina 13

11.2 Mscara de rede

4Linux www.4linux.com.br

Tabela - Nmero de redes e nmero de hosts em cada rede - Classe B.

Observe como o entendimento dos clculos binrios realizados pelo TCP/IP facilita o entendimento de vrios assuntos relacionados ao TCP/IP, inclusive o conceito de subnet. Por padro a classe B utiliza 16 bits para a mscara de sub-rede, ou seja, uma mscara padro: 255.255..0.0. Agora se utilizar oito bits adicionais (todo o terceiro octeto) para a mscara, ter todos os bits do terceiro octeto como sendo iguais a 1, com isso a mscara passa a ser: 255.255.255.0. Este resultado est coerente com a tabela da Figura 16.11. Agora ao invs de 8 bits adicionais, utilize 9. Ou seja, todo o terceiro octeto (8 bits) mais o primeiro bit do quarto octeto. O primeiro bit, o bit bem esquerda o bit de valor mais alto, ou seja, o que vale 128. Ao usar este bit tambm para a mscara de sub-rede, ser obtida a seguinte mscara: 255.255.255.128. Tambm fecha com a tabela anterior. Com isso se conclui que o entendimento da aritemtica e da representao binria, facilita muito o estudo do protocolo TCP/IP e de assuntos relacionados, tais como subnet e roteamento.

A seguir apresentada uma tabela com o nmero de sub-redes e o nmero de hosts em cada sub-rede, dependendo do nmero de bits adicionais (alm do padro denido para a (classe) utilizados para a mscara de sub-rede, para a diviso de uma rede Classe A:

Pgina 14

Linux System Administration

4Linux www.4linux.com.br

11.2 Mscara de rede

Tabela - Nmero de redes e nmero de hosts em cada rede - Classe A. Um fato importante, que destacado novamente que todas as sub-redes (resultantes da diviso de uma rede), utilizam o mesmo nmero para a mscara de sub-rede. Por exemplo, na quarta linha da tabela indicada na Figura 16.12, utilizado 5 bits adicionais para a mscara de sub-rede, o que resulta em 30 sub-redes diferentes, porm todas utilizando como mscara de sub-rede o seguinte nmero: 255.248.0.0. Muito bem, entendido o conceito de diviso em sub-redes e de determinao do nmero de sub-redes, do nmero de hosts em cada sub-rede e de como formada a nova mscara de sub-rede, a prxima questo que pode surgir a seguinte: Como listar as faixas de endereos para cada sub-rede? Este exatamente o assunto que vem a seguir. Como listar as faixas de endereos dentro de cada sub-rede Vamos entender esta questo atravs de exemplos prticos. Exemplo 01: Dividir a seguinte rede classe C: 229.45.32.0/255.255.255.0. So necessrias, pelo menos, 10 sub-redes. Determinar o seguinte:

Linux System Administration

Pgina 15

11.2 Mscara de rede

4Linux www.4linux.com.br

a) Quantos bits sero necessrios para fazer a diviso e obter pelo menos 10 subredes? b) Quantos nmeros IP (hosts) estaro disponveis em cada sub-rede? c) Qual a nova mscara de sub-rede? d) Listar a faixa de endereos de cada sub-rede. Vamos ao trabalho. Para responder a questo da letra a, voc deve lembrar da frmula: Nm. de sub-redes = 2n-2 Voc pode ir substituindo n por valores sucessivos, at atingir ou superar o valor de 10. Por exemplo, para n=2, a frmula resulta em 2, para n=3, a frmula resulta em 6, para n=4 a frmula resulta em 14. Bem, est respondida a questo da letra a, temos que utilizar quatro bits do quarto octeto para fazer parte da mscara de sub-rede. a) Quantos bits sero necessrios para fazer a diviso e obter pelo menos 10 subredes? R: 4 bits. Como utilizei quatro bits do ltimo octeto (alm dos 24 bits dos trs primeiros octetos, os quais j faziam parte da mscara original), sobraram apenas 4 bits para os endereos IP, ou seja, para os endereos de hosts em cada sub-rede. Tenho que lembrar da seguinte frmula: Nm. de end. IP dentro de cada sub-rede = 2n-2 substituindo n por 4, vou obter um valor de 14. Com isso j estou em condies de responder a alternativa b. b) Quantos nmeros IP (hosts) estaro disponveis em cada sub-rede? R: 14. Como utilizei quatro bits do quarto octeto para fazer a diviso em sub-redes, os quatro primeiros bits foram denidos iguais a 1. Basta somar os respectivos valores, ou seja: 128+64+32+16 = 240. Ou seja, com os quatro primeiros bits do quarto octeto sendo iguais a 1, o valor do quarto octeto passa para 240, com isso j temos condies de responder a alternativa c.

Pgina 16

Linux System Administration

4Linux www.4linux.com.br

11.2 Mscara de rede

c) Qual a nova mscara de sub-rede? R: 255.255.255.240 importante lembrar, mais uma vez, que esta ser a mscara de sub-rede utilizada por todas as 14 sub-redes. d) Listar a faixa de endereos de cada sub-rede. Esta a novidade deste item. Como saber de que nmero at que nmero vai cada endereo IP. Esta tambm fcil, embora seja novidade. Observe o ltimo bit denido para a mscara. No nosso exemplo o quarto bit do quarto octeto. Qual o valor decimal do quarto bit? 16 (o primeiro 128, o segundo 64, o terceiro 32 e assim por diante, conforme explicado na Parte 2). O valor do ltimo bit um indicativo das faixas de variao para este exemplo. Ou seja, na prtica temos 16 hosts em cada sub-rede, embora o primeiro e o ltimo no devam ser utilizados, pois o primeiro o endereo da prpria sub-rede e o ltimo o endereo de broadcast da sub-rede. Por isso que cam 14 hosts por sub-rede, devido ao -2"na frmula, o -2"signica: - o primeiro - o ltimo. Ao listar as faixas, consideramos os 16 hosts, apenas importante salienar que o primeiro e o ltimo no so utilizados. Com isso a primeira sub-rede vai do host 0 at o 15, a segunda sub-rede do 16 at o 31, a terceira do 32 at o 47 e assim por diante, conforme indicado no esquema a seguir: Diviso da rede em 14 sub-redes, onde cada sub-rede ca com 16 endereos IP, sendo que a primeira e a ltima sub-rede no so utilizadas e o primeiro e o ltimo nmero IP, dentro de cada sub-rede, tambm no so utilizados: Sub-rede 01 229.45.32.0 -> 229.45.32.15 Sub-rede 02 229.45.32.16 -> 229.45.32.31 Sub-rede 03 229.45.32.32 -> 229.45.32.47 Sub-rede 04 229.45.32.48 -> 229.45.32.63 Sub-rede 05 229.45.32.64 -> 229.45.32.79 Sub-rede 06 229.45.32.80 -> 229.45.32.95

Linux System Administration

Pgina 17

11.2 Mscara de rede

4Linux www.4linux.com.br

Sub-rede 07 229.45.32.96 -> 229.45.32.111 Sub-rede 08 229.45.32.112 -> 229.45.32.127 Sub-rede 09 229.45.32.128 -> 229.45.32.143 Sub-rede 10 229.45.32.144 -> 229.45.32.159 Sub-rede 11 229.45.32.160 -> 229.45.32.175 Sub-rede 12 229.45.32.176 -> 229.45.32.191 Sub-rede 13 229.45.32.192 -> 229.45.32.207 Sub-rede 14 229.45.32.208 -> 229.45.32.223 Sub-rede 15 229.45.32.224 -> 229.45.32.239 Sub-rede 16 229.45.32.240 -> 229.45.32.255 Vamos a mais um exemplo prtico, agora usando uma rede classe B, que tem inicialmente, uma mscara de sub-rede: 255.255.0.0 Exemplo 02: Dividir a seguinte rede classe B: 150.100.0.0/255.255.0.0. So necessrias, pelo menos, 20 sub-redes. Determinar o seguinte: a) Quantos bits sero necessrios para fazer a diviso e obter pelo menos 10 subredes? b) Quantos nmeros IP (hosts) estaro disponveis em cada sub-rede? c) Qual a nova mscara de sub-rede? d) Listar a faixa de endereos de cada sub-rede. Vamos ao trabalho. Para responder a questo da letra a, voc deve lembrar da frmula:

Pgina 18

Linux System Administration

4Linux www.4linux.com.br

11.2 Mscara de rede

Nm. de sub-redes = 2n-2 Voc pode ir substituindo n por valores sucessivos, at atingir ou superar o valor de 10. Por exemplo, para n=2, a frmula resulta em 2, para n=3, a frmula resulta em 6, para n=4 a frmula resulta em 14 e para n=5 a frmula resulta em 30. Bem, est 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, obter somente 14 sub-redes e usando mais de 5 bits, obter um nmero de sub-redes bem maior do que o necessrio. a) Quantos bits sero necessrios para fazer a diviso e obter pelo menos 20 subredes? R: 5 bits. Como utilizei cinco bits do terceiro octeto (alm dos 16 bits dos dois primeiros octetos, os quais j faziam parte da mscara original), sobraram apenas 11 bits (os trs restantes do terceiro octeto mais os 8 bits do quarto octeto) para os endereos IP, ou seja, para os endereos de hosts em cada sub-rede. Lembre-se da seguinte frmula: Nm. de endereos IP dentro de cada sub-rede = 2n-2 Substituindo n por 11 (nmero de bits que restarama para a parte de host), vou obter um valor de 2046, j descontando o primeiro e o ltimo nmero, os quais no podem ser utilizados, conforme j descrito anteriormente. Com isso j estou em condies de responder a alternativa b. b) Quantos nmeros IP (hosts) estaro disponveis em cada sub-rede? R: 2046. Como utilizei cinco bits do terceiro octeto para fazer a diviso em sub-redes, os cinco primeiros bits foram denidos iguais a 1. Basta somar os respectivos valores, ou seja: 128+64+32+16+8 = 248. Ou seja, com os quatro primeiros bits do quarto octeto sendo iguais a 1, o valor do quarto octeto passa para 248, com isso j temos

Linux System Administration

Pgina 19

11.2 Mscara de rede

4Linux www.4linux.com.br

condies de responder a alternativa c. c) Qual a nova mscara de sub-rede? R: 255.255.248.0 importante lembrar, mais uma vez, que esta ser a mscara de sub-rede utilizada por todas as 30 sub-redes. d) Listar a faixa de endereos de cada sub-rede. Como saber de que nmero at que nmero vai cada endereo IP. Esta tambm fcil e o raciocnio o mesmo utilizado para o exemplo anterior, onde foi feita uma diviso de uma rede classe C. Observe o ltimo bit denido para a mscara. No nosso exemplo o quinto bit do terceiro octeto. Qual o valor decimal do quinto bit (de qualque octeto)? 8 (o primeiro 128, o segundo 64, o terceiro 32, o quarto 16 e o quinto 8. O valor do ltimo bit um indicativo das faixas de variao para este exemplo. Ou seja, na prtica temos 2048 hosts em cada sub-rede, embora o primeiro e o ltimo no devam ser utilizados, pois o primeiro o endereo da prpria sub-rede e o ltimo o endereo de broadcast da sub-rede. Por isso que cam 2046 hosts por sub-rede, devido ao -2"na frmula, o -2"signica: - o primeiro - o ltimo. Ao listar as faixas, consideramos o valor do ltimo bit da mscara. No nosso exemplo o 8. A primeira faixa vai do zero at um nmero anterior ao valor do ltimo bit, no caso do 0 ao 7. A seguir indico a faixa de endereos da primeira sub-rede (sub-rede que no ser utilizada na prtica, pois descarta-se a primeira e a ltima): Sub-rede 01 150.100.0.1 -> 150.100.7.254 Com isso todo endereo IP que tiver o terceiro nmero na faixa entre 0 e 7, ser um nmero IP da primeira sub-rede, conforme os exemplos a seguir: 150.100.0.25 150.100.3.20 150.100.5.0 150.100.6.244

Pgina 20

Linux System Administration

4Linux www.4linux.com.br

11.2 Mscara de rede

Importante: Observe que os valores de 0 a 7 so denidos no terceiro octeto, que onde estamos utilizando cinco bits a mais para fazer a diviso em sub-redes.

Qual seria a faixa de endereos IP da prxima sub-rede. Aqui vale o mesmo reciocnio. O ltimo bit da mscara equivale ao valor 8. Esta a variao da terceira parte do nmero IP, que onde esta sendo feita a diviso em sub-redes. Ento, se a primeira foi de 0 at 7, a segunda sub-rede ter valores de 8 a 15 no terceiro octeto, a terceira sub-rede ter valores de 16 a 23 e assim por diante.

Diviso da rede em 32 sub-redes, onde cada sub-rede ca com 2048 endereos IP, sendo que a primeira e a ltima sub-rede no so utilizadas e o primeiro e o ltimo nmero IP, dentro de cada sub-rede, tambm no so utilizados:

Linux System Administration

Pgina 21

11.2 Mscara de rede

4Linux www.4linux.com.br

Com base na tabela apresentada, ca fcil responder em que sub-rede est contido um determinado nmero IP. Por exemplo, considere o nmero IP 150.100.130.222. Primeiro voc observa o terceiro octeto do nmero IP (o terceiro, porque neste octeto que esto os ltimos bits que foram utilizados para a mscara de sub-rede). Consultando a tabela anterior, voc observa o valor de 130 para o terceiro octeto corresponde a sub-rede 17, na qual o terceiro octeto varia entre 128 e 135, conforme indicado a seguir:

11.2.2 Ipv6

"IPv6 a nova verso do protocolo de redes de dados nos quais a Internet est baseada. O IETF (Internet Engineering Task Force), desenvolveu suas especicaes bsicas durante os anos 90. A principal motivao para o desenvolvimento e lanamento do IPv6 foi a expanso do espao de endereos disponveis na Internet, permitindo assim que se conectem bilhes de novos dispositivos (PDAs, telefones celulares, etc), novos usrios e tecnologias sempre-conectada (xDSL, cabo, Ethernet ou bra direto na residncia, comunicao via rede eltrica, etc). No existem classes como A, B e C. O IPv6 utiliza o conceito de CIDR (FULLER, 1993), onde um determinado nmero de bits corresponde ao prexo da rede, e os bits restantes identicam o n.

Pgina 22

Linux System Administration

4Linux www.4linux.com.br

11.2 Mscara de rede

O protocolo ARP no utilizado em IPv6, pois no existe broadcast em IPv6 e o ARP baseia-se em broadcast. Em seu lugar, utilizado o protocolo ICMPv6 e transmisso multicast. Espao de endereamento O espao de endereamento do IPv6 de 128 bits, contra os 32 bits do IPv4. Esta a mudana mais visvel do IPv6 em relao ao IPv4. Algumas das primeiras propostas de evoluo do IPv4 - vide CALLON (1992), PISTICELLO (1993) e BRADNER & MANKIN (1993) - propunham espaos de endereamento de 64 ou 96 bits, perfeitamente sucientes para um prazo razoavelmente longo. A proposta mais interessante, denominada TUBA (TCP and UDP with Bigger Addresses) propunha a substituio do IP pelo CNLP da pilha OSI. O CNLP bem documentado e tem um espao de endereamento de at 20 octetos (160 bits). A indisposio generalizada da comunidade Internet com o protocolo OSI, constatada no trabalho de DIXON (1993), acabou sepultando a idia. Textos a favor e contra o TUBA e o OSI podem ser encontrados facilmente na Internet. O endereamento nalmente adotado visa, principalmente: a) abrir espao criao de tantas classes de endereos quantas forem necessrias, e ainda ter espao de sobra para um nmero virtualmente inesgotvel de endereos dentro de cada classe; b) utilizao massiva de roteamento por agregao, onde todas as sub-redes de uma mesma rede apresentam o mesmo prexo de rede. Isto diminui drasticamente o nmero de rotas que cada roteador tem de conhecer, em todos os nveis. Embora o roteamento por agregao seja padro para IPv4 desde 1995 com a implementao da CIDR (FULLER, 1993), nem todas as redes classe A, B ou C podem ser renumeradas, e os roteadores da espinha dorsal da Internet tm de conhecer rotas especcas para inmeras redes no agregadas. O tamanho do endereo IPv6 comporta tanto profundas hierarquias de endereamento por agregao bem como um grande nmero de ns por sub-rede. Isso per-

Linux System Administration

Pgina 23

11.3 Tipos de Endereos IPv6

4Linux www.4linux.com.br

mite: a) liberal distribuio de faixas de endereamento a usurios nais, tornando desnecessrios, por exemplo, os complexos roteadores NAT (Network Address Translation traduo de endereo de rede) para compartilhamento de um IP por vrios usurios. O IPv6 acaba com os cidados de segunda classe da Internet; b) Com o desuso do NAT, ocorre uma grande simplicao na congurao de servidores e dispositivos de rede, o que contribui para o barateamento do acesso Internet. Evita todos os problemas citados por PEA (2001) e permite que apaream protocolos mais sosticados como voz sobre IP. Nada impede de um sistema operacional ou dispositivo de rede implementar NAT para IPv6, e de fato implementado no Linux. Alguns administradores de rede tm a sensao subjetiva de que NAT aumenta a segurana, embora isso seja muito discutvel.

11.3 Tipos de Endereos IPv6


O grande espao de endereamento visa a criao facilitada de classes de endereamento. Tais classes, mais apropriadamente denominadas de faixas de endereamento, so registradas junto IETF. Segue uma lista das principais faixas e os respectivos prexos IPv6.

Pgina 24

Linux System Administration

4Linux www.4linux.com.br

11.3 Tipos de Endereos IPv6

Aproximadamente 15% do espao de endereamento IPv6 foi alocado. Restam ainda 85%. Segundo a RFC 2374, uma mesma interface, que utiliza o protocolo IPv6, pode utilizar mais de um endereo, diferentemente do IPv4, onde tal caracterstica s era possvel em roteadores. Essa caracterstica importante porque na verso 6 algumas aplicaes, em geral de controle, utilizam-se de endereos especiais que veremos adiante. Para o endereamento das interfaces existem ento 3 tipos de endereos: Unicast; Anycast; Multicast. Outra caracterstica marcante do IPv6 que no existem mais os endereos broadcast, que endereavam todos os hosts de um mesmo domnio de coliso, isto , uma pacote com endereo de destino do tipo broadcast era enviado para todos os hosts de seu domnio de coliso. Com a abolio desse tipo endereo, outro protocolo muito comum no IPv4 tambm cou em desuso, o ARP Address Resolution Protocol, que usava endereos broadcast para descoberta do endereo MAC da interface referente ao endereo de destino do pacote.

11.3.1 Endereos Unicast


Esse tipo de endereo comumente usado em IPv4, que identica apenas uma nica interface. Desta forma um pacote destinado a um endereo do tipo Unicast enviado diretamente para a interface associada a esse endereo. Foram denidos pela RFC 2374 vrios tipos de endereos Unicast : Agregatable Global Unicast Address Loopback Address

Linux System Administration

Pgina 25

11.3 Tipos de Endereos IPv6

4Linux www.4linux.com.br

Unspecied Address

NSAP Address

IPX AddressSite-local Unicast Address

Link-local Unicast Address

IPv4-compatible IPv6 Address

Agregatable Global Unicast Address

Esse tipo de endereo unicast equivalente ao endereo global unicast usado em IPv4. Sendo assim o endereo que ser usado globalmente na Internet. Essa estrutura de endereos globais permite uma agregao de prexos de roteamento que limitam o nmero de entradas nas tabelas de rotas.

A estrutura deste tipo de endereo dividida em 4 nveis, o primeiro o FP - Format Prex, que indica justamente que se trata de um endereo do tipo Global Unicast, esse FP deve ser sempre 001, como vimos na tabela III - Alocao de endereos IPv6, na seo anterior.

O segundo campo chamado Global Routing Prex, e destinado a identicao dos ISPs - Internet Service Provider, ele possui vrios nveis e seguem a estrutura apresentada na seo anterior. O terceiro campo Subnet ID tambm foi apresentado anteriormente como sendo o campo Site ID da estrutura de hierarquizao do endereo IPv6, o ltimo nvel o Interface ID, que tambm j foi abordado e possui 64 bits. Abaixo, vemos na gura a estrutura desse tipo de endereo:

Pgina 26

Linux System Administration

4Linux www.4linux.com.br

11.3 Tipos de Endereos IPv6

Estrutura do endereo Aggregatable Global Unicast Address. Loopback Address Esse tipo de endereo, como o prprio nome j diz, o endereo da prpria interface. Porm ele s pode ser usado quando um n envia um pacote para ele mesmo. No IPv4 esse tipo de endereo era geralmente o 127.0.0.1, em IPv6 indicado por: 0:0:0:0:0:0:0:1 ou simplesmente: ::1 Esse endereo no pode ser associado a nenhuma interface fsica, nem como endereo de fonte, nem como endereo de destino, mas pode ser imaginado como sendo de uma interface virtual, a interface loopback. Um pacote IPv6 com endereo destino do tipo loopback address tambm no deve deixar o prprio host, sendo que esse endereo nunca ser repassado por um roteador IPv6. Unspecied Address Esse tipo de endereo indica exatamente a ausncia de um endereo. Ele nunca dever ser utilizado como um endereo vlido para nenhum host. A sua utilidade para que estaes que ainda no foram inicializadas, sejam identicadas com endereos deste tipo, ou seja, hosts que ainda no tenham aprendido seus prprios endereos globais, utilizem tais endereos para se autocongurar. Alm disso, esse tipo de endereo no deve ser utilizado como endereo de destino ou em cabealho

Linux System Administration

Pgina 27

11.3 Tipos de Endereos IPv6

4Linux www.4linux.com.br

de roteamento de pacotes IPv6. Seu formato o seguinte: 0:0:0:0:0:0:0:0 ou simplesmente: :: NSAP Address Esse tipo de endereo ident icado pelo prexo FP - 0000001. Ele foi denido pela RFC 1888 - OSI NSAPs and IPv6 como mecanismo de suporte para endereamento OSI NSAP - Network Service Access Point em redes IPv6. Possui alm do FP de 7 bits, que o indica, 121 bits para constituio de seu endereo. IPX Address tambm um endereo especial para compatibilidade de endereos existentes. identicado pelo prexo 0000010, includo para prover mecanismo de mapeamento de endereos IPX - Internal Packet eXchange em endereos IPv6. Os endereos IPX so utilizados em redes Netware, de propriedade da Novell. Da mesma forma que o NSAP Address possui 7 bits de FP e 121 bits para constituio do endereo. Site Local Unicast Address O endereo do tipo Site Local similar aos endereos privados usados em IPv4, como as redes 10.0.0.0 /8, 172.16.0.0/16 e 198.168.0.0/16. Esses endereos podem ser usados para uma comunicao restrita dentro de um domnio especco. Este tipo de endereo identicado pelo prexo FEC0::/10 ou 1111111011 em binrio. Ele pode ser denido para uso interno numa organizao atravs da concatenao do campo de SLA (16 bits) com a identicao da interface (64 bits). Este tipo de endereamento pode ser considerado como privado, visto que ele est restrito a um domnio sem ligao Internet. Desta forma ele no pode ser anunciado externamente por roteadores. Abaixo podemos visualizar a estrutura deste tipo de endereo.

Pgina 28

Linux System Administration

4Linux www.4linux.com.br

11.3 Tipos de Endereos IPv6

Estrutura do endereo Site Local Unicast Address. Link Local Unicast Address Este tipo de endereo automaticamente congurado em qualquer host IPv6, atravs da conjugao do seu prexo FE80::/10 ou 1111111010 em binrio, como pode ser visto na tabela III, e a identicao da interface no formato EUI-64, mostrado anteriormente. Estes endereos so utilizados nos processos de congurao dinmica automtica (autocongurao) e no processo de descoberta de elementos na hierarquia de roteamento (Neighbor Discovery Protocol). Estes procedimentos sero vistos com detalhes na prxima seo. Este endereamento permite tambm a comunicao entre ns pertencentes ao mesmo enlace. Como nos endereos Site Local, esse tipo de endereo no deve ser enviado como endereo de origem ou destino em pacotes. Alm disso esses endereos no so repassados pelos roteadores. Abaixo podemos visualizar a estrutura deste tipo de endereo.

Estrutura do endereo Site Local Unicast Address. IPv4-compatible IPv6 Address

Linux System Administration

Pgina 29

11.4 Endereos Anycast

4Linux www.4linux.com.br

Esse tipo de endereo usado em IPv6 como um mecanismo de transio entre IPv6 e IPv4. utilizado como endereos de destino e origem em tunnel (encapsulamento de um protocolo sobre outro) IPv6 sobre IPv4. representado por um endereo IPv6 cujos ltimos 32 bits so um endereo IPv4. Desta forma, anexando-se um prexo nulo (96 bits de zeros) a um endereo IPv4 (32 bits) obtm-se o seguinte formato: 0:0:0:0:0:0:192.168.30.1 ou no seu formato abreviado ::192.168.30.1 Abaixo mostrada a estrutura deste endereo.

Estrutura do endereo IPv6 compatible IPv4 Address.

11.4 Endereos Anycast


Esse tipo de endereo utilizado para identicar um grupo de interfaces pertencentes a hosts diferentes. Um pacote destinado a um endereo Anycast enviado para um das interfaces identicadas pelo endereo. Especicamente, o pacote enviado para a interface mais prxima, de acordo com o protocolo de roteamento. Um endereo do tipo Anycast no pode ser utilizado como endereo de origem de um pacote IPv6. Este tipo de endereamento ser til na deteco rpida de um

Pgina 30

Linux System Administration

4Linux www.4linux.com.br

11.4 Endereos Anycast

determinado servidor ou servio. Por exemplo, poder ser denido um grupo de servidores de DNS congurados com endereamento Anycast, assim um host ir alcanar o servidor mais prximo utilizando este tipo de endereo. Existe um prexo mais longo desse mesmo endereo para cada endereo Anycast atribudo que identica a regio ao qual todas as interfaces pertencem. Abaixo mostrada a estrutura bsica deste tipo de endereo.

Estrutura do endereo Anycast.

11.4.1 Endereo Multicast

Da mesma forma que o endereo Anycast, este endereo identica um grupo de interfaces pertencente a diferentes hosts mas um pacote destinado a um endereo Multicast enviado para todas as interfaces que fazem parte deste grupo. Um endereo do tipo Multicast Address um endereo IPv6, que indicado pelo prexo FP, como visto na tabela III, FF00::/8 ou 11111111 em binrio. O segundo octeto que se segue ao prexo (FP = FF) dene o tempo de vida (lifetime), os 4 primeiros bits e o escopo do endereo Multicast, os ltimos 4 bits deste octeto. Um endereo com lifetime permanente tem um parmetro de tempo de vida igual a "0", enquanto um endereo temporrio tem o mesmo parmetro igual a "1". O escopo para este tipo de endereo apresenta os valores j denidos de 1, 2, 3, 4, 5, 8 e "E"(os outros esto reservados para o futuro, sendo que o escopo F j est reservado para ser usado para mbito galctico) para identicar um host, enlace, site, organizao ou um escopo global, respectivamente. Os outros 112 bits so utilizados para identicar o grupo Multicast. Abaixo, visualizamos a estrutura de um endereo.

Linux System Administration

Pgina 31

11.4 Endereos Anycast

4Linux www.4linux.com.br

Estrutura do endereo Anycast. Dentro dos endereos Multicast j reservados, podemos identicar alguns endereos especiais utilizados para funes especcas (todos de lifetime permanente): FF01::1 Indica todas as interfaces de escopo local, isto , somente as interfaces de um mesmo host. FF02::1 Indica todas as interfaces de um escopo de enlace local, isto , todos os hosts de um mesmo domnio de coliso. FF01::2 Indica todos os roteadores dentro de um escopo local, isto , todas as interfaces de um mesmo roteador. FF02::2 Indica todos os roteadores dentro de um escopo de enlace local, isto , todos os roteadores interligados por um mesmo enlace. FF05::2 Indica todos os roteadores dentro de um escopo site local, isto , todos os roteadores que possuem um mesmo site ID. FF02::1:FFxx:xxxx Endereo especial chamado de Solicited-Node Multicast

Pgina 32

Linux System Administration

4Linux www.4linux.com.br

11.5 Estrutura do endereo Anycast

Address, onde xx:xxxx representam os ltimos 24 bits do endereo IPv6 Unicast do host. Solicited-Node Multicast Address Esse tipo de endereo Multicast especial usado para mensagens de solicitao de vizinho que auxilia o Neighbor Discovery Protocol e que ser visto com mais detalhes na prxima seo. Esse endereo um grupo Multicast que corresponde a um endereo IPv6 Unicast. A gura abaixo apresenta a estrutura desse endereo.

11.5 Estrutura do endereo Anycast


Comandos avanados de redes: Congure uma rede para que as mquinas Debian e Red Hat quem em redes distintas: rede 192.168.200.0 Com a mscara 255.255.255.240, teremos dezesseis endereos por sub-rede, sendo quatorze utilizveis, pois o primeiro reservado para rede e o ltimo pra broadcast. subrede. Ranges: 192.168.200. 0-15 64-79 128-143 192-207

Linux System Administration

Pgina 33

11.5 Estrutura do endereo Anycast

4Linux www.4linux.com.br

16-31 80-95 144-159 208-223 32-47 96-111 160-175 224-239 48-63 112-127 176-191 240-255 Para as mquinas Debian vamos utilizar o range 80-95

# ifconfig eth

192.168.2

.81 netmask 255.255.255.255.248

Para as mquinas CentOS vamos utilizar o range 240-255:

# ifconfig eth

192.168.2

.241 netmask 255.255.255.255.24

Agora na Debian tente pingar a mquina CentOS e vice-versa:

# ping 192.168.2

.241

No possvel, pois as mquinas esto em sub-redes diferentes. Agora no cliente CentOS adicione duas placas de rede uma pra cada subrede.

1 2

# ifconfig eth1 192.168.2 # ifconfig eth2 192.168.2

.82 netmask 255.255.255.255.24 .242 netmask 255.255.255.255.24

Pingue da mquina cliente CentOS os dois servidores:

1 2

# ping 192.168.2 # ping 192.168.2

.241 .81

Pgina 34

Linux System Administration

4Linux www.4linux.com.br

11.5 Estrutura do endereo Anycast

Agora na Debian tente pingar a mquina CentOS e vice-versa:

# ping 192.168.2

.241

Ainda no possvel. Para que as duas mquina possam se pingar, adicione o cliente Debian como rota: No Server Debian:

# route add default gw 192.168.2

.82

No Server CentOS:

# route add default gw 192.168.2

.242

Agora na Debian tente pingar a mquina CentOS e vice-versa:

# ping 192.168.2

.241

Novamente no server Debian tente pingar a mquina servidora CentOS e vice-versa: Mesmo aps adicionarmos a rota para o gateway das redes ainda no possvel ping-los. Isto ocorre porque o linux por padro no encaminha pacotes, na mquina gateway (cliente CentOS) ajuste o encaminhamento: Visualize o bloqueio do encaminhamento de pacotes:

Linux System Administration

Pgina 35

11.6 ARP - Address Resolution Protocol

4Linux www.4linux.com.br

# cat / proc / sys / net / ipv4 / ip_forward

1 = habilitado 0 = desabilitado Altere seu valor temporariamente:

# echo 1 > / proc / sys / net / ipv4 / ip_forward

Para car permanente edite o arquivo /etc/sysctl.conf e adicione a linha abaixo:

1 2

# vim / etc / sysctl . conf net . ipv4 . ip_forward = 1

Salve o arquivo e execute o comando seguinte para validar a regra e car permanente:

# sysctl -p

11.6 ARP - Address Resolution Protocol


Address Resolution Protocol ou ARP um protocolo usado para encontrar um endereo da camada de enlace (Ethernet, por exemplo) a partir do endereo da camada de rede (como um endereo IP). O emissor difunde em broadcast um pacote ARP contendo o endereo IP de outro host e espera uma resposta com um endereo MAC respectivo. Cada mquina mantm uma tabela de resoluo em cache para reduzir a latncia e carga na rede. O ARP permite que o endereo IP seja independente do endereo Ethernet, mas apenas funciona se todos os hosts o suportarem.

Pgina 36

Linux System Administration

4Linux www.4linux.com.br

11.6 ARP - Address Resolution Protocol

No servidor Debian: Execute o comando ping para o endereo de broadcast:

# ping -b 192.168.2

.95

O linux por padro no aceita pacotes icmp em broadcast: Visualize:

# cat / proc / sys / net / ipv4 / icmp_echo_ignore_broadcast

Para habilitar temporariamente:

# echo

> / proc / sys / net / ipv4 / icmp_echo_ignore_broadcast

Para habilitar permanentemente, adicione a linha a seguir no arquivo /etc/sysctl.conf:

1 2

# vim / etc / sysctl . conf net . ipv4 . icmp_echo_ignore_broadcast =

Salve e releia as conguraes:

# sysctl -p

Execute o comando ping novamente para o endereo de broadcast:

# ping -b 192.168.2

.95

Agora visualize a tabela ARP com o comando arp :

Linux System Administration

Pgina 37

11.6 ARP - Address Resolution Protocol

4Linux www.4linux.com.br

# arp

-n

Vamos congurar a rede IPV6 agora: Ao conectarmos o cabo de rede a placa de rede j obtm um endereo IPV6, atravs do endereo de sua placa de rede. Cheque o servidor Debian: Para visualizar o ipv6 congurado automaticamente:

# ifconfig eth

| grep inet6

ou

# ip -6 addr show dev eth

Cheque se o servidor CentOS est com o suporte a ipv6 habilitado:

1 2

# cat / etc / sysconfig / network : NETWORKING_IPV6 = yes

Verique se a placa de rede tem suporte habilitado:

1 2

# cat / etc / sysconfig / network - scripts / ifcfg - eth IPV6INIT = yes

Ping as mquinas pelo IPV6:

# ping6 -I eth

fe8 ::72 f1 : a1ff : fec5 : fc1c

Onde:

Pgina 38

Linux System Administration

4Linux www.4linux.com.br

11.6 ARP - Address Resolution Protocol

-I -> especica a interface eth0 -> a interface para o ping6 fe80::72f1:a1ff:fec5:fc1c -> ipv6 a ser pingado Congurando um endereo ipv6 na interface:

# ifconfig < interface > inet6 add < ipv6address >/ < prefixlength >

No servidor Debian:

# ifconfig eth

inet6 add ::192.168. .1/96

No servidor CentOS:

# ifconfig eth

inet6 add ::192.168. .2/96

Tente pingar entre as mquinas, a partir da CentOS:

# ping -I eth

::192.168. .1

Para remover o endereo:

# ifconfig < interface > inet6 del < ipv6address >/ < prefixlength >

Remova de ambos: Debian:

# ifconfig eth

inet6 del ::192.168. .1/96

CentOS:

Linux System Administration

Pgina 39

11.7 Vericando portas abertas

4Linux www.4linux.com.br

# ifconfig eth

inet6 del ::192.168. .2/96

11.7 Vericando portas abertas


11.7.1 Comando netstat

O comando netstat exibe o status das conexes, tabelas de rotas, estatsticas da interface, conexes mascaradas e participaes em multicast. Vamos ver alguns exemplos do comando. O comando netstat sem parmetros traduz os IPs para os nomes, por isso, desse modo, ele demora bastante para gerar um resultado. Resolve-se esse problema usando a opo -n: O comando exibe por padro 4 colunas: Proto - Protocolo que pode ser TCP, UDP, TCPv6, ou UDPv6 Local Address - Endereo local (seu PC) Foreign Address - Endereo remoto State - Exibe o estado da conexo de rede que podem ser CLOSE_WAIT, CLOSED, ESTABLISHED, FIN_WAIT_1, FIN_WAIT_2, LAST_ACK, LISTEN, SYN_RECEIVED, SYN_SEND, e TIME_WAIT. Para saber mais sobre os estados das conexes consulte a RFC 793 http://tools.ietf.org/html/rfc793 -a : exibe todas as conexes e as portas TCP e UDP.

Pgina 40

Linux System Administration

4Linux www.4linux.com.br

11.7 Vericando portas abertas

-n : exibe os nmeros das portas ao invs do nome. -p : exibe o PID (Process ID). -l : exibe os sockets que estejam ouvindo. -r : exibe a tabela de roteamento. -t : exibe os sockets TCP. -u: exibe os sockets UDP. Podemos fazer uso de vrios parmetros juntos: A opo -n exibe todas as portas e no formato numrico.

# netstat -n

As opes -t e -l exibem as conexes TCP e as portas disponveis respectivamente para cada conexo com a sua mquina:

# netstat - ntl

A opo -u exibe as conexes UDP:

# netstat - nul

A opo -p exibe o nmero do processo e o nome do programa responsvel.

# netstat - nltup

Linux System Administration

Pgina 41

11.7 Vericando portas abertas

4Linux www.4linux.com.br

A opo -a exibe tanto os socket que estejam ouvindo quanto aqueles que no estejam. netstat -an A opo -r exibe a rota do sistema. netstat -rn

11.7.2 Comando nmap


O Nmap um escaneador de hosts que usa recursos avanados para vericar o estado do seu alvo. Existem diversas formas e parmetros a serem informados durante umavarredura. Mtodos de Varredura -sP Ping scan: Algumas vezes necessrio saber se um determinado host ou rede est n ar. Nmap pode enviar pacotes ICMP echo request para vericar se determinado host ou rede est ativa. Hoje em dia, existem muitos ltros querejeitam os pacotes ICMP echo request, ento envia um pacote TCP ACK paraa porta 80 (default) e caso receba RST o alvo est ativo. A terceira tcnica envia um pacote SYN e espera um RST ou SYN-ACK. -sR RCP scan: Este mtodo trabalha em conjunto com vrias tcnicas do Nmap. Ele considera todas as portas TCP e UDP abertas e envia comandos NULL SunRPC, para determinar se realmente so portas RPC. como se o comando rpcinfo -p estivesse sendo utilizado, mesmo atravs de um rewall ( ou protegido por TCPwrappers ). -sS TCP SYN scan: Tcnica tambm conhecida como half-open, pois no abre uma

Pgina 42

Linux System Administration

4Linux www.4linux.com.br

11.7 Vericando portas abertas

conexo TCP completa. enviado um pacote SYN, como se ele fosse uma conexo real e aguarda uma resposta. Caso um pacote SYN-ACK seja recebido, aporta est aberta, enquanto um como resposta indica que a porta est fechada. Avantagem dessa abordagem que poucos iro detectar esse scanning de portas. - sT TCP connect() scan: a tcnica mais bsica de TCP scanning. utilizada achamada de sistema (system call) connect() que envia um sinal as portas ativas.Caso a porta esteja aberta recebe como resposta connect(). um dos scan mais rpidos, porm fcil de ser detectado. -sU UDP scan: Este mtodo utilizado para determinar qual porta UDP est aberta em um host. A tcnica consiste em enviar um pacote UDP de 0 byte para cada porta do host. Se for recebido uma mensagem ICMP port unreachable ento a porta est fechada, seno a portapode estar aberta. Para variar um pouco, a Microsoft ignorou a sugesto da RFC e com isso a varredura de mquinas Windows muito rpida. -sV Version detection: Aps as portas TCP e/ou UDP serem descobertas por algum dos mtodos, o nmap ir determinar qual o servio est rodando atualmente. Oarquivo nmap-service-probes utilizado para determinar tipos de protocolos,nome da aplicao, nmero da verso e outros detalhes -O Ativa a identicao do host remoto via TCP/IP. Ir apresentar verso do SistemaOperacional e tempo ativo

p < lista_de_portas >

Linux System Administration

Pgina 43

11.8 Comando tcpdump

4Linux www.4linux.com.br

Especica quais portas devem ser vericadas na varredura. Por default, todas asportas entre 1 e 1024 so varridas. -n No ir resolver nome de hosts a serem varridos. -v Modo verbose. Mostra tudo o que est se passando. Na mquina Debian: Cheque o sistema operacional utilizado:

# nmap -v -n -O localhost

Cheque as portas abertas:

# nmap -v - sT - sU localhost

No servidor CentOS: Cheque em que porta o servio ssh est escutando:

# nmap -sV localhost

11.8 Comando tcpdump


O comando tcpdump mostra o trfego de uma rede. Ele exibe a descrio do contedo de pacotes numa interface de rede que case com uma expresso booleana.

Pgina 44

Linux System Administration

4Linux www.4linux.com.br

11.8 Comando tcpdump

Sintaxe: tcpdump <opes> <dispositivo> <expresso> Opes: -A Imprime cada pacote em cdigo ASCII. -c Termina a execuo aps receber n pacotes. -D Exibe a lista das interfaces de rede disponveis no sistema e que o tcpdump capaz de capturar pacotes. Esta opo associa um nmero a cada interface o qual pode ser usado no lugar do nome da mesma, ex: 1 - eth0, 2 eth1, 3 any, 4 lo (loopback); -i Recebe como parmetro a interface ou o nmero associado a ela. Se especicado any captura pacotes de todas as interfaces porm, sem ser no modo promscuo. -n No converte endereos em nomes. (endereos de host, nmero de portas, etc.) -r L os pacotes a partir de um arquivo (que tenha sido criado com a opo -w). -s Dene o tamanho de cada pacote a ser capturado. interessante utilizar o valor 1500 para que seja examinado o maior tamanho possvel de pacote. -t No exibe o timestamp em cada linha. -v Exibe a sada com mais detalhes. -vv Exibe a sada com mais detalhes ainda. -vvv Exibe a sada com informaes ainda mais detalhadas. -w Escreve os pacotes em um arquivo que pode ser lido posteriormente com a opo -r.

Linux System Administration

Pgina 45

11.8 Comando tcpdump

4Linux www.4linux.com.br

-x Exibe o contedo do pacote no formato hexadecimal. -X Exibe o contedo do pacote nos formatos hexadecimal e ASCII. expresso Seleciona quais pacotes sero exibidos. Se no for denida nenhuma expresso todos os pacotes sero exibidos. Do contrrio somente os pacotes com os quais a expresso coincidir sero exibidos. A expresso consiste em uma ou mais premissas. As premissas usualmente consistem em um ID (nome ou nmero) precedido por um ou mais qualicadores.Existem trs diferentes tipos de qualicadores: type (tipo) Especica host, net, port e portrange. Ex: host dragon, net 192.168, port 22, portrange 5000-5777. dir (direo) Indica a direo dos pacotes a serem capturados. Podem ser: src, dst, src or dst e src e dst, que signicam respectivamente origem, destino, origem ou destino e origem e destino. Se nada for denido assume origem ou destino. proto (protocolo) Dene qual o tipo de protocolo ser exibido. Os protocolos possveis so: ether, fddi, tr, wlan, ip, ip6, arp, rarp, decnet, tcp e udp. Exemplos: Acesse um site e monitore com tcpdump:

# tcpdump -i eth

-n port 8

Onde: -i -> interface, -n -> no resolve nomes, port -> identica a porta de monitoramento. Acesse o servidor CentOS por ssh e monitore com tcpdump:

# tcpdump -i eth

-n port 5

Pgina 46

Linux System Administration

Servio de Rede Telnet


Antes de partir direto para o acesso remoto via telnet, preciso explicar uma teoria importante j que vai ser trabalhado congurao de servios como telnet, ssh, NFS. Os servios de rede podem ser divididos em trs tipos bsicos: xinetd portmap stand alone Os servios tipo [x]inetd so aqueles que dependem do superdaemon de rede inetd InterNET daemon. A verso mais atual do inetd o xinetd eXtended InterNET daemon. A funo de um superdaemon apenas controlar alguns servios que no tero daemon prprio. Um daemon um processo servidor que roda em segundo plano esperando requisies. Quando se fala de inetd e xinetd, fala-se do mesmo superdaemon, mas em algumas distros (como o Debian) ainda o inetd. S que o xinetd possui alguns recursos a mais como controle de acesso, capacidade de fazer logs e determinar horrios para que o servio esteja disponvel. Esse superdaemon ca escutando nas portas que os servios controlados por ele trabalham carregando o programa apropriado quando chega uma requisio na determinada porta. Exemplos de servios tipo inetd: telnet, FTP, POP3 etc. Ao longo

47

11.9 Telnet TELetype NETwork

4Linux www.4linux.com.br

do tempo, alguns dos servios que eram controlados pelo inetd passaram a operar como stand alone a m de contornar problemas associados ao inetd. Os servios stand alone so aqueles em que cada tipo de servidor possui seu daemon prprio. Esta forma de trabalho preferida hoje em dia pois possibilita um maior controle sobre cada servio sem separado. Exemplos de servios que operam dessa forma: SSH, httpd (daemon do Apache), FTP, dentre outros. Os servios tipo portmap so aqueles que no possuem porta especica para operar, como por exemplo, o NIS e o NFS. Estes servios enviam uma chamada RPC Remote Procedure Call para a mquina servidora causando a execuo de uma determina subrotina. Dessa forma quando um cliente faz a requisio de NFS a um servidor, ele est enviando um RPC tipo NFS e que quando chegar ao servidor ser tratada como tal, carregando a subrotina apropriada para enviar a resposta ao cliente.

11.9 Telnet TELetype NETwork

Telnet um protocolo que pode ser utilizado tanto localmente quanto na internet. O telnet considerado muito inseguro e se usar altamente desencorajado. Ao longo dos anos vm sendo descobertas diversas vulnerabilidades em suas implementaes e, provavelmente, h muitas outras que ainda no foram determinadas.

Por padro, os dados enviados no so criptografados incluindo usurios e senhas No possui esquema de autenticao que possibilite garantir que a comunicao est se dando entre as partes envolvidas facilitando ataques do tipo manin-the-middle. Essas falhas tm feito cair a utilizao do protocolo telnet em favor do SSH.

Pgina 48

Linux System Administration

4Linux www.4linux.com.br

11.10 Instalao e congurao do Telnet

Atualmente, o telnet ainda bastante utilizado para realizar conguraes em equipamentos de rede especicos e tambm para testar o funcionamento de servios como um servidor de POP3 eliminando a necessidade de programas clientes especializados. O telnet controlado pelo superdaemon do Linux (inetd ou xinetd). Para que possa saber mais sobre as portas, basta dar uma olhadinha depois no seguinte arquivo:

# cat / etc / services

11.10 Instalao e congurao do Telnet


Caso queira testar o telnet, a primeira coisa instalar o servidor e o cliente:

1 2

No Debian : # aptitude install telnet telnetd openbsd - inetd

1 2

No CentOS : # yum install telnet telnet - server xinetd

A congurao de um servidor telnet, na realidade, feita congurando o [x]inetd. No Debian, o inetd utilizado, em sistemas como o Red Hat o sistema utilizado xinetd. No Debian: Verique que a linha de congurao do telnet no est comentada no arquivo de congurao do inetd, se estiver comentada, ento descomente:

Linux System Administration

Pgina 49

11.10 Instalao e congurao do Telnet

4Linux www.4linux.com.br

1 2

# vim / etc / inetd . conf telnet stream tcp nowait telnetd / usr / bin / tcpd / usr / sbin / in . telnetd

Descrio da opes:

telnet: nome do servidor, como est registrado em /etc/services; stream: tipo de socket usado pelo protocolo, possveis valores so: stream, dgram, raw, rdm e seqpacket; tcp tipo do protocolo usado; nowait/wait aguardar/no aguardar : signicativo para tipos de soquete de datagrama (dgram), outros tipos de socket usam o valor nowait. telnetd: usurio e grupo que iro controlar o processo de servidor; /usr/sbin/tcpd: o executvel para o programa TCP Wrappers /usr/sbin/in.telnetd: o programa que ir lidar com as informaes da conexo.

Se a linha do telnet no estiver comentada signica que o servio j est habilitado. Para garantir que o telnet seja iniciado, reinicie o daemon do inetd. Para reiniciar o daemon do inetd:

1 2

# service openbsd - inetd stop # service openbsd - inetd start

Faa agora uma check list para vericar se o servio est funcionando:

1 2

# netstat - anp | grep 23 tcp . . . :23 . . . :* OU A 2922/ inetd

Pgina 50

Linux System Administration

4Linux www.4linux.com.br

11.10 Instalao e congurao do Telnet

Se a porta estiver em estado de LISTEN ou OUA signica que ela est ouvindo, ou seja, est disponvel. Voc pode ver se o processo do telenet est ativo usando o fuser:

1 2

# fuser -v 23/ tcp 23/ tcp : root 2922 F .... inetd

Para fazer um acesso remoto em um servidor que tem o telnet habilitado muito simples:

# telnet < ip_do_servidor >

No CentOS: Em um sistema xinet haver um arquivo de congurao para cada tipo de servio e eles estaro no subdiretrio xinetd.d no diretrio /etc

1 2 3 4 5 6 7 8 9 10

# vim / etc / xinetd . d / telnet { disable = no flags wait user server } = REUSE = no = root = / usr / sbin / in . telnetd += USERID socket_type = stream

log_on_failure

Para reiniciar o daemon do xinetd:

# service xinetd restart

Linux System Administration

Pgina 51

4451
Linux System Administration

www.4linux.com.br

Contedo
Data e Hora do Sistema e Servidor de NTP 12.1 Introduo Terica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12.1.1 NTP -Network Time Protocol . . . . . . . . . . . . . . . . . . . . 12.1.2 Organizao em Strata . . . . . . . . . . . . . . . . . . . . . . . 12.1.3 Ajuste Manual de Horrio . . . . . . . . . . . . . . . . . . . . . . 12.1.4 Trabalhando com NTP nos Clientes . . . . . . . . . . . . . . . . 12.1.5 Congurao do Servidor de NTP . . . . . . . . . . . . . . . . . 2 3 6 6 8 9 9

12.1.6 Monitorando nossa conexo NTP: . . . . . . . . . . . . . . . . . 14 12.2 Acertando horrio de vero . . . . . . . . . . . . . . . . . . . . . . . . . 19 12.2.1 Congurando . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 Rsyslog 21

12.3 Introduo Terica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 12.3.1 Organizao do Rsyslog . . . . . . . . . . . . . . . . . . . . . . . 22 12.4 Congurando o sistema de Logs no cliente (Debian): . . . . . . . . . . . 26 12.4.1 Logs Centralizados, congurando um servidor de Logs (Server Debian) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 12.4.2 Logs Centralizados, congurando um servidor de Logs (Server CentOS) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 12.4.3 Rotao de Logs . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

Data e Hora do Sistema e Servidor de NTP


12.1 Introduo Terica
Manter o sistema com o horrio correto uma tarefa muito importante e que muitas vezes negligenciada pelos administradores. Sem o horrio ajustado corretamente, ca difcil agendar tarefas a serem executadas periodicamente, ou at mesmo fazer a leitura dos logs e determinar em que horrio um determinado evento ocorreu. Esse detalhe torna-se ainda mais importante quando temos um servidor de e-mail rodando na mquina. Imagine um e-mail que pode ser enviado a/de qualquer parte do mundo e, somando a diferena de fuso horrio, um servidor com a hora errada, ca muito difcil determinar a hora na qual o e-mail foi enviado. H basicamente duas formas de ajustar as conguraes de horrio do sistema: manualmente, utilizando os comandos date e hwclock ou usando o servio de NTP - Network Time Protocol. O comando date utilizado para mostrar ou ajustar a data e hora do sistema. Visualizar a hora:

# date

Acertar data e hora:

12.1 Introduo Terica

4Linux www.4linux.com.br

# date mmddHHMMYYYY

Onde: m ms , d dia, H hora, M minuto, Y ano EX: dia 15 de julho de 1983 s 13:15

# date

71513151983

Outra forma :

# date -s " 7/15/1983 13:15"

Para mudar somente a hora:

# date -s "12: 1"

Para mudar somente a data:

# date -s " mm / dd / YYYY "

Repare que ao mudar somente a data, alterado o horrio para 00:00. J o comando hwclock utilizado para mostrar ou ajustar a hora da BIOS da mquina sendo conhecido como RTC - Real Time Clock. Este o relgio que ca continuamente em funcionamento mesmo que a mquina esteja desligada; de forma que

Pgina 4

Linux System Administration

4Linux www.4linux.com.br

12.1 Introduo Terica

o horrio esteja atualizado da prxima vez que a mquina for religada. Sua forma de utilizao bastante simples: Visualizar hora da Bios:

# hwclock

Ajustar o horrio da BIOS utilizando o horrio do sistema:

1 2 3

# hwclock -w Ou # hwclock -- systohc

Ajustar o horrio do sistema utilizando o horrio da BIOS:

1 2 3

# hwclock -s Ou # hwclock -- hctosys

Ajustar o relgio da BIOS:

# hwclock -- set -- date =" mm / dd / YY HH : MM : ss "

Outro ponto importante no que diz respeito s conguraes de data e hora do sistema a congurao da "timezone", ou seja, o fuso horrio em que a mquina se encontra. Essa congurao pode ser efetuada utilizando os comandos dpkgrecongure tzdata" (especco do Debian) e "system-cong-date" em distribuies como CentOS, Suse e Gentoo.

Linux System Administration

Pgina 5

12.1 Introduo Terica

4Linux www.4linux.com.br

12.1.1 NTP -Network Time Protocol

O protocolo de sincronizao de horrios "NTP"foi desenvolvido a m de possibilitar que qualquer computador ligado internet possa ajustar sua data e hora automaticamente utilizando um servidor de hora preciso. O NTP um servio na camada de aplicao que utiliza o protocolo UDP na camada de transporte fazendo uso da porta 123 para realizar a sincronizao de horrios.

O NTP, criado em 1985, um dos protocolos de internet mais antigos ainda em uso e pode atingir uma preciso de aproximadamente 200s(duzentos microssegundos).

12.1.2 Organizao em Strata

A hierarquia do NTP dividida em vrios nveis, o conjunto deles denominado "strata"e cada um deles corresponde a um "stratum". A raiz desse sistema o denominado stratum 0 e que corresponde aos relgios nucleares espalhados pelo mundo, aos quais esto conectados os servidores de "stratum 1", ou seja, so eles que fazem o processamento da informao recebida do stratum 0.

Conectados aos "stratum 1"h o "stratum 2"que em geral esto conectados a mais de um servidor de stratum 1 e determinam de fato qual a hora padro com base nos dados recebidos dos "stratum 1"utilizando o algoritmo do NTP.

Os "stratum 2"responde ao "stratum 3"que responde ao "stratum 4"e assim por diante at atingir, no mximo, 16 nveis. Uma representao esquemtica dessa estrutura pode ser vista na gura.

Pgina 6

Linux System Administration

4Linux www.4linux.com.br

12.1 Introduo Terica

A menos que estejamos montando um servidor para ser um "stratum 1", 2 ou 3, nunca devemos utilizar os servidores "stratum 1"ou 2 para sincronizarmos nossos servidores; mas sim acessar um "stratum 3". Dessa forma deixamos os nveis mais baixos para as mquinas que realmente precisam acess-los.

Ainda assim, nossa poltica de acesso aos "stratum 3"deve ser tambm bastante criteriosa. Se nossa rede possu diversas mquinas, no h sentido em fazermos todas elas se sincronizarem em um "stratum 3", mas sim escolher uma de nossas mquinas para ser um stratum 4 e nossos clientes realizarem a sincronizao a partir dela.

Sendo assim, vamos proceder com a congurao dos servidores e dos clientes.

Linux System Administration

Pgina 7

12.1 Introduo Terica

4Linux www.4linux.com.br

12.1.3 Ajuste Manual de Horrio


Verique qual a sua localizao geogrca no CentOS:

# cat / etc / sysconfig / clock

Verique qual a sua localizao geogrca no Debian:

# cat / etc / timezone

Caso esteja com um dos fusos horrios incorreto, corrija-o com um dos comandos: CentOS:

1 2 3 4 5

# rm -rf / etc / localtime # cd / usr / share / zoneinfo / America # ln Sao_Paulo / etc / localtime OU # system - config - date

Debian:

# dpkg - reconfigure tzdata

Verique a data e hora do sistema e da BIOS:

1 2

# date # hwclock

Pgina 8

Linux System Administration

4Linux www.4linux.com.br

12.1 Introduo Terica

12.1.4 Trabalhando com NTP nos Clientes


Instalar o cliente NTP no Debian:

# aptitude install ntpdate

No CentOS o comando ntpdate j vem instalado com o pacote "ntp". Para as mquinas da rede que forem os clientes NTP, possvel fazer a sincronizao do horrio com o servidor por meio do comando "ntpdate", assim:

# ntpdate [ ip - do - servidor - na - rede ]

No Debian, caso no tenha um servidor NTP na rede, podemos simplesmente reiniciar o "daemon"do "ntpdate":

# ntpdate - debian

O comando utilizar o(s) servidor(es) congurado(s) no arquivo /etc/default/ntpdate.

12.1.5 Congurao do Servidor de NTP


Agora que aprendemos a ajustar manualmente a hora do sistema e da BIOS, vamos utilizar o mtodo mais preciso, ou seja, criar a estrutura de servidores e clientes de NTP. O servidor NTP provido pelo pacote "ntp", tanto no Debian quanto no CentOS. Congure o servidor CentOS para fornecer as horas:

Linux System Administration

Pgina 9

12.1 Introduo Terica

4Linux www.4linux.com.br

No CentOS verique se o pacote ntp est instalado:

# rpm -q ntp

Caso no esteja instalado, instale-o:

# yum install ntp

Vamos congurar o nosso servidor de NTP. Abra o arquivo de congurao:

# vim / etc / ntp . conf

Vamos precisar obter endereos de servidores ociais de "NTP", para isso, podemos acessar o site http://www.ntp.br, que a pgina do projeto NTP. Logo na pgina inicial haver uma lista de servidores pblicos, mantidos pelo projeto ntp.br. sempre aconselhvel utilizar mais de um servidor para que, caso ocorra algum erro em algum deles, o nosso sistema possa continuar com a congurao correta. No arquivo de congurao devemos localizar a linha para congurao do servidor com o qual sincronizaremos a nossa mquina:

Os parmetros adicionais "iburst"fazem com que sejam enviados oito pacotes em vez de apenas um durante a sincronizao inicial e o parmetro "prefer"faz com que a resposta de um servidor preferido seja descartada se ela diferir muito das respostas dos demais servidores, caso contrrio, ser utilizado sem qualquer considerao para outras respostas.

Pgina 10

Linux System Administration

4Linux www.4linux.com.br

12.1 Introduo Terica

Vamos adicionar a linha especicando quais "hosts"podero realizar sincronizao com a nossa mquina:

1 2 3

restrict 127. . .1 restrict 192.168.2 disable auth . mask 255.255.255.

A primeira restrio est liberando requisies vindas do "localhost"e a segunda da nossa rede. Foi desabilitada a autenticao por chaves tambm. Alguns arquivos importantes no Debian: statsdir /var/log/ntpstats/ diretrio onde vo car os logs de estatsticas do meu servidor NTP. Os principais logs do ntp so o loopstats, que apresenta as informaes do loop local, ou seja, as variveis do sistema, e o peerstats, que apresenta as informaes de cada associao. loopstats Seu formato o seguinte: day, second, offset, drift compensation, estimated error, stability, polling interval dia, segundo, deslocamento, escorregamento, erro estimado, estabilidade, e intervalo de consulta Exemplo:

1 2 3 4 5

54475 73467.286 - . 54475 73548.286 - . 54475 73682.286 - . 54475 73698.286 - . 54475 73761.286 - .

57852 31.695 84 64 31.688 77221 31.678 77448 31.677 8323 31.672

. . . . .

15298 17 49 1613 151 3 14275

. . . . .

647

6471 4 6988 4 655 4 6376 4

Linux System Administration

Pgina 11

12.1 Introduo Terica

4Linux www.4linux.com.br

6 7 8 9 10 11

54475 73889.286 - . 54475 74 4.285 - . 54475 74 86.286 - . 54475 74156.285 - . 54475 74251.285 - . 54475 74268.286 - .

591 3867 5292

31.665 31.657 31.653

. . . . . .

15846 15548 14762 14699 13766 13292

. . . . . .

6487 4 6324 4 6 11 4 5759 4 5651 4 5298 4

45825 31.66

53223 31.649 62545 31.648

peerstats Seu formato o seguinte: day, second, address, status, offset, delay, dispersion, skew (variance)dia, segundo, endereo, estado, deslocamento, atraso, disperso, varincia Exemplo:

1 2 3 4 5 6 7 8 9 10

54475 34931.294 2 . 39 895 . .

.2 .186.75 9 74 132755

9958844 . . . . . .

839 6 . 1555 265 . 177 1986 . . 2718 1 216 88 55

54475 34931.3 1 2 112 348 . . . . . . . . 54475 34932.3 3 2 .1889951 9 . . . . . . 62 139 826694 1858731 7195 9 39 447 94 1 54475 34934.286 2 54475 34935.286 2 54475 34935.3 1 2 54475 34935.3 3 2 54475 34936.3 1 2 54475 34936.3 1 2 54475 34938.3 1 2

.192.232.43 f f4 23645 .189.4 .28 f f4 43145 .16 . .28 f d4 37467 .16 .7.165 9614 22 76 .19.119.69 9334 1733883 .186.125.2 3 338 f 34

348814 81 7 8 332344 3557 2667663 4857359 738445 9164 363627

. 1574

. 16764821 . 1551 523 . 155 5927 . 15584684

.189.4 .42 f b4 - . 39731 .19.119.12 3 319 .192.232.28 f f4 . 9434 .

Pgina 12

Linux System Administration

4Linux www.4linux.com.br

12.1 Introduo Terica

. 63231626
11 12

. . .

2 46 .16 . .8 f 54 13953 .16 . .43 f 34 39634 . 325615 . 26 2 1 . 368748 . 334 13

54475 34939.286 2 . . 484437 849475 54475 34939.286 2

A interpretao dos arquivos de log ca bastante facilitada com o uso de grcos. E uma vez que se conhece seu formato ca muito fcil ger-los. Vrias ferramentas podem ser utilizadas para isso, mas recomenda-se o uso do "gnuplot". Foge do escopo desse site dar informaes detalhadas sobre a instalao ou uso dessa ferramenta, ento consulte http://www.gnuplot.info/ para mais informaes. O software funciona em GNU/Linux, FreeBSD, Windows e outros sistemas. Segue um exemplo de uso, no GNU/Linux com interface grca, que permitir aos interessados entender o processo: Cria-se um arquivo chamado deslocamento.txt com o seguinte contedo:

1 2 3 4

# set term gif # set output "| display " # set title " Deslocamento " # plot "/ var / log / ntpstats / loopstats " using 2:3 t " deslocamento " with linespoints lt rgb "# d d d ";

Observe-se que o comando plot faz referncia ao arquivo loopstats, e usa suas colunas 2 e 3, onde: 2 representa o tempo, no dia, em segundos; e 3 representa o deslocamento, em milisegundos. Executa-se o seguinte comando:

gnuplot deslocamento . txt

E pronto, como a sada esta redirecionada para display, v-se o gif gerado na tela:

Linux System Administration

Pgina 13

12.1 Introduo Terica

4Linux www.4linux.com.br

driftle /var/lib/ntp/ntp.drift arquivo onde car congurado o valor estimado de erro de frequncia entre o relgio do sistema e o servidor de sincronia de "stratum"anterior.

12.1.6 Monitorando nossa conexo NTP:


O ntp traz consigo algumas ferramentas que permitem monitorar seu funcionamento. A mais importante o ntpq. A seguir so apresentados dois comandos do ntpq que permitem visualizar algumas variveis importantes do ntp:

# ntpq -c pe

Uma reposta normal se parece com essa:

1 2

remote jitter

refid

st t when poll reach

delay

offset

Pgina 14

Linux System Administration

4Linux www.4linux.com.br

12.1 Introduo Terica

3 4 5

*a. ntp . br -1.259 +b. ntp . br .391 +c. ntp . br - .939 3.361 4.413 4.398

2 2 2

.16 .7.186 .2 .186.76 .16 .7.186

2 u 2 u 2 u

57 55 51

64 64 64

377 377 377

9.184 18. 36 36.675

Onde: A primeira coluna apresenta os tally codes, que signicam o seguinte: * -> o system peer, par do sistema, ou principal fonte de sincronizao; o -> o system peer, par do sistema, ou principal fonte de sincronizao, mas apenas se a fonte for o sinal de um pulso por segundo (PPS); + -> candidate, ou um relgio sobrevivente, indica que uma boa fonte de sincronizao e que est sendo utilizada no momento, juntamente com o par do sistema, para ajustar o relgio local; - -> outlyer, ou relgio afastado, indica que uma boa fonte de sincronizao, mas no sobreviveu ao algoritmo de agrupamento, ou seja, no momento h opes melhores e ela no est sendo utilizada; x -> falseticker, ou relgio falso, indica que no uma boa fonte de sincronizao, foi descartada j no algoritmo de seleo de relgios por discordar muito das outras fontes; . -> excess, excesso: a fonte foi rejeitada por no estar entre as 10 melhores; (espao em branco) -> reject, relgio rejeitado porque no responde, porque h um loop na sincronizao, ou porque ele apresenta uma distncia na sincronizao enorme. A seguir so apresentados os signicados das demais colunas:

Linux System Administration

Pgina 15

12.1 Introduo Terica

4Linux www.4linux.com.br

remote = Nome ou IP da fonte de tempo; red = a referncia (par do sistema) qual o servidor de tempo remoto est sincronizado; st = o estrato da fonte de tempo; when = quanto segundos se passaram desde a ltima consulta essa fonte de tempo; poll = de quantos em quantos segundos essa fonte consultada; reach = um registrador de 8 bits que vai girando para a esquerda representado na forma octal, que mostra o resultado das ltimas 8 consultas fonte de tempo: 377 = 11.111.111 signica que todas as consultas foram bem sucedidas; outros nmero indicam falhas, por exemplo 375 = 11.111.101, indica que a penltima consulta falhou; delay = atraso, ou tempo de ida e volta, em milissegundos, dos pacotes at essa fonte de tempo; offset = deslocamento, ou quanto o relgio local tem de ser adiantado ou atrasado, em milissegundos, para car igual ao da fonte de tempo; jitter = a variao, em milissegundos, entre as diferentes medidas de deslocamento para essa fonte de tempo. Enquanto o "ntpq -c pe" apresenta as variveis relacionadas a cada associao, ou seja, a cada fonte de tempo, o "ntpq -c rl" apresenta as variveis (globais) do sistema.

# ntpq -c rl

Sada do comando "ntpq -c rl":

Pgina 16

Linux System Administration

4Linux www.4linux.com.br

12.1 Introduo Terica

1 2 3 4 5 6 7 8 9

assID =

status = 644 leap_none , sync_ntp , 4 events , event_peer / 7: 8:18 UTC 2 11 (1) " , ,

strat_chg , version =" ntpd 4.2.4 p8@1 .1612 - o Tue Apr 19 processor = " x86_64 " , system = " Linux /2.6.32 -28 - generic " , leap = peer =1579 , refid =2 .16 . .8 , Thu , Nov Thu , Nov 3 2 11 21:44:53.266 , poll =6 , 3 2 11 21:49:38.527 , state =4 ,

stratum =3 , precision = -2 , rootdelay =1 .71 , rootdispersion =18.517 , reftime = d25da5f5 .445 ebec clock = d25da712 .87 b54e3 stability = .111 , tai =

offset = - .55 , frequency =35.515 , jitter =8.471 , noise = .6 4 ,

As mais importantes esto indicadas a seguir: version -> verso do ntp; stratum -> estrato do servidor local; precision -> preciso indicada com o expoente de um nmero base 2; rootdelay -> atraso ou tempo de ida e volta dos pacotes at o estrato 0, em milissegundos; rootdispersion -> erro mximo da medida de offset em relao ao estrato 0, em milissegundos; red -> o par do sistema, ou principal referncia; offset -> deslocamento, quanto o relgio local tem de ser adiantado ou atrasado para chegar hora certa (hora igual do estrato 0); frequency -> erro na frequncia do relgio local, em relao frequncia do estrato 0, em partes por milho (PPM).

Linux System Administration

Pgina 17

12.1 Introduo Terica

4Linux www.4linux.com.br

Vamos determinar se a sincronizao est funcionando corretamente. Para isso vamos alterar a hora do sistema e depois iniciar o servio de NTP:

1 2 3 4 5

# date

1 1 1 12

# / etc / init . d / ntpd stop # / etc / init . d / ntpd start && tail -f / var / log / messages

Agora, verique a hora do sistema novamente e veja se funcionou:

# date

Congurando o client Debian para sincronizar com o servidor:

# aptitude install ntp

Adicione o servidor a lista de servidores e comente os demais:

1 2 3 4

# vim / etc / ntp . conf # adicione na linha 15 e comente os outros server : server 192.168.2 .1 iburst prefer

Vamos determinar se a sincronizao est funcionando corretamente. Para isso vamos alterar a hora do sistema e depois iniciar o servio de NTP:

1 2 3

# date

1 1 1 12

# / etc / init . d / ntp stop # / etc / init . d / ntp start && tail -f / var / log / syslog

Pgina 18

Linux System Administration

4Linux www.4linux.com.br

12.2 Acertando horrio de vero

Agora, verique a hora do sistema novamente e veja se funcionou:

# date

12.2 Acertando horrio de vero


O Decreto n 6.558/08 (DOU de 09/09/2008), determina que o horrio de vero ser xo no Brasil e comear sempre a partir da zero hora do terceiro domingo do ms de outubro de cada ano, at zero hora do terceiro domingo do ms de fevereiro do ano subsequente. A nica exceo para a regra relacionada ao encerramento do horrio de vero que, se porventura coincidir com o Carnaval, dever ser adiado em uma semana.

12.2.1 Congurando
Verique se existe no diretrio /usr/share/zoneinfo/Brazil algum arquivo que contenha informaes relativas a outros horrios de vero (DICA: geralmente um arquivo com extenso .zic). a) Se no existir nenhum arquivo com tais informaes ento crie um novo, de nome "verao.zic"por exemplo, no diretrio /usr/share/zoneinfo/Brazil/. Este arquivo dever conter as seguintes linhas:

# cd / usr / share / zoneinfo / Brazil

# vim verao . zic

Linux System Administration

Pgina 19

12.2 Acertando horrio de vero

4Linux www.4linux.com.br

2 3 4

Rule Brazil Rule Brazil

2 12 2 13

only only

Oct Feb

2 16

: :

1 S -

Zone Brazil / East -3:

Brazil BR % sT

Uma vez feitos os devidos ajustes no arquivo verao.zic execute o comando zic:

1 2

# cd / usr / share / zoneinfo / Brazil / # zic verao . zic

Neste caso em particular o comando atualizar o arquivo East. Para vericar se as conguraes corretas foram feitas, execute o comando "zdump", conforme segue abaixo:

# zdump -v / usr / share / zoneinfo / Brazil / East | grep 2 1[23]

Voc dever obter uma resposta como a que segue abaixo:

1 2 3 4

Brazil / East Brazil / East Brazil / East Brazil / East

Sun Oct 21 Sun Oct 21 Sun Feb 17 Sun Feb 17

2:59:59 2 12 UTC = Sat Oct 2 3: : 2 12 UTC = Sun Oct 21

23:59:59 2 12 1: : 2 12

BRT isdst =

gmtoff = -1 8

BRST isdst =1 gmtoff = -72 1:59:59 2 13 UTC = Sat Feb 16 23:59:59 2 13 2: : 2 13 UTC = Sat Feb 16 23: : 2 13 BRST isdst =1 gmtoff = -72 BRT isdst = gmtoff = -1 8

Note que em "Sat Oct 20 23:59:59 2012"o sistema ainda no est no Horrio de Vero (indicao BRT). No segundo seguinte as modicaes do Horrio de Vero entram em vigor, adiantando o localtime em uma hora: "Sun Oct 21 01:00:00 2012

Pgina 20

Linux System Administration

4Linux www.4linux.com.br

12.2 Acertando horrio de vero

BRST"(O horrio mostrado ao usurio passar para 1 da manh, e no para meianoite, mostrando o adiantamento do horrio). Em "Sat Feb 16 23:59:59 2012 BRST", o Horrio de Vero terminar no segundo seguinte, com o localtime sendo ento atrasado em 1 hora: "Sat Feb 16 23:00:00 2012 BRT"(o horrio mostrado ao usurio voltar para s 23:00). Cheque trocando a data:

# date -s 1 /2 /2 12 23:59:3

Cheque novamente:

# date -s 2/16/2 13 23:59:3

O horrio tem de ser atualizado automaticamente quando for fazer 00:00.

Linux System Administration

Pgina 21

Rsyslog
12.3 Introduo Terica
A necessidade de registro das atividades dos usurios e servios dos sistemas notoriamente, muito importante para Administradores de Sistemas. A norma NBR ISO/IEC 27002 recomenda no item 10.10.1 as seguintes caractersticas de um sistema de logs: 1. Identicao dos usurios; 2. Datas e horrios de entrada e sada de terminais; 3. Hostname ou endereo IP, para servios acessados via rede; 4. Registro das tentativas de acessos aceitos e rejeitados.

12.3.1 Organizao do Rsyslog


Cada linha do arquivo /etc/rsyslog.conf organizada pela seguinte sintaxe:

# facilidade . n vel

destino

Vamos entender o que cada um desses itens:

22

4Linux www.4linux.com.br

12.3 Introduo Terica

facilidade - usada para especicar que tipo de programa est enviando a mensagem. nvel - Especica o nvel de gravidade da mensagem. destino - Especica para onde deve ser mandada a mensagem de log.

Vamos entender cada uma delas.

Facilidades do Rsyslog

auth - Mensagens de segurana/autorizao. authpriv - Mensagens de segurana/autorizao (privadas). cron - Servios de agendamento (cron e at). daemon - Outros servios do sistema que no possuem facilidades especcas. ftp - Servio de ftp do sistema. kern - Mensagens do kernel. lpr - Subsistema de impresso. Local0-7 - Reservados para uso local. mail - Subsistema de e-mail. news - Subsistema de notcias da USENET

Linux System Administration

Pgina 23

12.3 Introduo Terica

4Linux www.4linux.com.br

. security - Sinnimo para a facilidade auth. rsyslog - Mensagens internas geradas pelo rsyslog. user - Mensagens genricas de nvel do usurio. uucp- Subsistema de UUCP. * - Confere com todas as facilidades.

Nveis

emerg - O sistema est inutilizvel. alert - Uma ao deve ser tomada imediatamente para resolver o problema. crit - Condies crticas. err - Condies de erro. warning - Condies de alerta. notice - Condio normal, mas signicante. info - Mensagens informativas. debug - Mensagens de depurao. * - Confere com todos os nveis.

Pgina 24

Linux System Administration

4Linux www.4linux.com.br

12.3 Introduo Terica

none - Nenhuma prioridade. error - Sinnimo para o nvel err. panic - Sinnimo para o nvel emerg. warn - Sinnimo para o nvel warning.

Destinos

arquivo - O Rsyslog enviar os logs para um arquivo. Essa opo a mais comum. (|)- O Rsyslog enviar os logs atravs de um pipe. Muito usado para redirecionar logs um terminal. (@) - Com a arroba, o Rsyslog enviar seus logs para um computador remoto, utilizando hostname ou endereo IP. user1,user2 - Especicando o usurio, o Rsyslog enviar a mensagem para os usurios especicados. Mltiplos usurios so separados por vrgula. * - Com o asterisco, o Rsyslog enviar os logs para todos usurios logados no momento, atravs do comando "wall".

Arquivos importantes

Debian: Principal arquivo de log: /var/log/syslog Logs de controle do kernel: /var/log/messages Logs de depurao de daemons: /var/log/daemon.log

Linux System Administration

Pgina 25

12.4 Congurando o sistema de Logs no cliente (Debian):

4Linux www.4linux.com.br

CentOS: Principal arquivo de log: /var/log/messages Logs de controle do kernel: /var/log/messages Logs de depurao de daemons: /var/log/messages Debian e CentOS: Logs utilizados pelo comando last: /var/log/wtmp Logs utilizados pelo comando last: /var/log/btmp Log utilizado pelo comando lastlog: /var/log/lastlog Logs utilizados pelos comandos w e who: /var/run/utmp

12.4 Congurando o sistema de Logs no cliente (Debian):


1) Instale o pacote do rsyslog no Cliente:

1 2 3 4 5

Se for Debian : # aptitude install rsyslog OU Se for CentOS : # yum install rsyslog

2) Edite o arquivo de congurao do rsyslog, e ative as seguintes opes de Logs:

1 2 3 4 5 6 7 8

# vim / etc / rsyslog . conf # Erros de login s o enviados para o terminal 2: authpriv . error *.* cron .* : |/ dev / tty2 # Redirecionar todos os logs para o arquivo / var / log / tudo . log : / var / log / tudo . log aluno # Redirecionar a sa da de logs do cron para o usu rio aluno : # Redirecionar todos os logs para um servidor remoto Debian e Centos

Pgina 26

Linux System Administration

4Linux www.4linux.com.br

12.4 Congurando o sistema de Logs no cliente (Debian):

9 10 11 12

# Debian *.* # CentOS *.* @192 .168.2 .1 @192 .168.2 .1 1

5) Reinicie o rsyslog:

1 2

# / etc / init . d / rsyslog stop # / etc / init . d / rsyslog start

6) Verique o arquivo /var/log/tudo.log

# cat / var / log / tudo . log

7) Tente se logar como aluno no terminal 3, mas erre a senha, depois logue-se corretamente, em seguida veja o log de erro de login no terminal dois:

# ctrl + alt + 2

8) Reinicie o servio do cron no terminal 1 como root e veja o log na tela do usurio aluno que est logado no terminal 3:

# / etc / init . d / cron restart

Linux System Administration

Pgina 27

12.4 Congurando o sistema de Logs no cliente (Debian):

4Linux www.4linux.com.br

12.4.1 Logs Centralizados, congurando um servidor de Logs (Server Debian)


Primeiro, necessrio que o servidor seja habilitado para recebermos logs de outras mquinas, para isto, acrescente o parmetro -r:

# vim / etc / default / rsyslog

Modique o contedo do arquivo, acrescentando o parmetro:

RYSLOGD_OPTIONS = " -c4 , - r "

Depois, precisamos descomentar no arquivo as linhas: # vim /etc/rsyslog.conf $ModLoad imudp $UDPServerRun 514

Crie uma entrada para redirecionar os logs para um arquivo:

1 2

# vim / etc / rsyslog . conf *.* / var / log / tudo . log

Reinicialize o servio Rsyslog:

1 2

# / etc / init . d / rsyslog stop # / etc / init . d / rsyslog start

Certique-se de que a porta est disponvel para conexes remotas:

Pgina 28

Linux System Administration

4Linux www.4linux.com.br

12.4 Congurando o sistema de Logs no cliente (Debian):

# nestat - lun | grep 514

Verique o log:

# tail -f / var / log / tudo . log

12.4.2 Logs Centralizados, congurando um servidor de Logs (Server CentOS)


O CentOS vem com o pacote rsyslog instalado por padro.

1 2 3

# vim / etc / sysconfig / rsyslog # Acrescente a op o -r SYSLOGD_OPTIONS = " -r -m "

Crie uma entrada para redirecionar os logs para um arquivo:

1 2

# vim / etc / rsyslog . conf *.* / var / log / tudo . log

Reinicialize o servio rsyslog:

1 2

# / etc / init . d / rsyslog stop # / etc / init . d / rsyslog start

Certique-se de que a porta est disponvel para conexes remotas:

Linux System Administration

Pgina 29

12.4 Congurando o sistema de Logs no cliente (Debian):

4Linux www.4linux.com.br

# nestat - lun | grep 514

Verique o log:

# tail -f / var / log / tudo . log

12.4.3 Rotao de Logs


Com o tempo, os logs podem ocupar muito do espao disponvel na partio. Por isso, devemos congurar corretamente a poltica de rotao dos logs, ou seja, durante quanto tempo os logs sero armazenados no seu computador. Para isso, edite o arquivo /etc/logrotate.conf:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

# vim / etc / logrotate . conf # Definindo rota o de logs semanalmente weekly # Manter os logs de 4 semanas rotate 4 # Criar um arquivo novo para cada rota o de logs create # Descomente caso queira compactar os logs em formato . gz compress # Todo arquivo dentro deste diret rio ser considerado como uma configura o de log rotate . include / etc / logrotate . d # Configura es para wtmp e btmp / var / log / wtmp { missingok monthly #

Pgina 30

Linux System Administration

4Linux www.4linux.com.br

12.4 Congurando o sistema de Logs no cliente (Debian):

16 17 18 19 20 21 22 23 24 25

create }

664 root utmp

rotate 1 / var / log / btmp { missingok monthly create rotate 1 } # system - specific logs may be configured here 664 root utmp

Crie uma congurao de logrotate:

# vim / etc / logrotate . d / errors

Inclua no arquivo o seguinte contedo:

1 2 3 4 5 6 7 8 9

/ var / log / teste . err / var / log / teste . info { daily size 5M sharedscripts postrotate / usr / bin / pkill -1 rsyslog endscript rotate 5 }

/var/log/teste.err /var/log/teste.info - Os arquivos teste.err e teste.info sero rotacionados diariamente at 5 vezes, caso o arquivo tenha pelo menos 5M. daily - O sistema de logs ser dirio. size 5M - Faz a rotao somente se o arquivo alcanar 5M.

Linux System Administration

Pgina 31

12.4 Congurando o sistema de Logs no cliente (Debian):

4Linux www.4linux.com.br

sharedscripts - Marca o incio do bloco de comandos.

postrotate - Executa os scripts aps aplicar a rotao aos arquivos.

/usr/bin/pkill -1 rsyslog - Envia sinal 1 ao processo rsyslog. endscript - Encerra o bloco de comandos.

rotate 5 - Aplica a rotao aos arquivos 5 vezes.

Adicione contedo aos arquivos para fazermos testes:

1 2

# cat / var / log /* >> / var / log / teste . err # cat / boot /* >> / var / log / teste . info

Podem aparecer mensagens de erros na tela, pois o comando cat no pode visualizar o contedo de diretrios. Para visualizar o tamanho dos arquivos:

# du -sh / var / log / teste .*

Verique que: o arquivo teste.err tem menos de 5M. o arquivo teste.info tem mais de 5M. Agora, execute o comando logrotate manualmente:

# logrotate

/ etc / logrotate . conf

Verique que o arquivo teste.err foi rotacionado, mas o teste.info no. Isto porque o arquivo teste.info no atingiu os 5M necessrios para o rotacionamento.

Pgina 32

Linux System Administration

4Linux www.4linux.com.br

12.4 Congurando o sistema de Logs no cliente (Debian):

# ls -lh / var / log / teste *

Como forar o rotacionamento dos logs:

# logrotate -f / etc / logrotate . conf

Repare que ao forar o rotacionamento com a opo -f todos os logs marcados para rotacionamento foram rotacionados independente do tamanho:

# ls -lh / var / log / teste *

No Debian o arquivo aps o rotacionamento com compresso recebe a extenso: ".1.gz"No CentOS o arquivo aps o rotacionamento com compresso recebe a extenso: "$date +

Linux System Administration

Pgina 33

000
Nome do curso

www.4linux.com.br

Contedo
Servidor SSH 13.1 Introduo Terica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13.1.1 SSH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13.1.2 Chaves de Criptograa Assimtricas . . . . . . . . . . . . . . . . 13.1.3 Acesso SSH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13.1.4 Copiando Arquivos Remotos . . . . . . . . . . . . . . . . . . . . 13.1.5 Cpia maq_LOCAL para maq_REMOTA . . . . . . . . . . . . . 13.1.6 Cpia maq_REMOTA para maq_LOCAL . . . . . . . . . . . . . 13.1.7 SSH com Chaves Assimtricas . . . . . . . . . . . . . . . . . . . 2 3 3 3 4 6 6 6 7

13.1.8 Acesso por SSH sem senha com ssh-agent . . . . . . . . . . . . 10 13.1.9 Congurando o servidor SSH (CentOS): . . . . . . . . . . . . . . 11 13.1.10Cpia remota com porta diferente: . . . . . . . . . . . . . . . . . 16 13.1.11Tunelamento SSH . . . . . . . . . . . . . . . . . . . . . . . . . . 16 13.1.12Mensagem em broadcast: wall . . . . . . . . . . . . . . . . . . . 18 TCP Wrappers 19

13.2 Introduo Terica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 13.2.1 Entendendo o TCP Wrappers . . . . . . . . . . . . . . . . . . . . 20 13.2.2 Suporte a TCP/Wrappers . . . . . . . . . . . . . . . . . . . . . . 22

Servidor SSH
13.1 Introduo Terica
13.1.1 SSH
Secure Shell ou SSH o conjunto de padres e o protocolo associado que permite estabelecer um canal seguro entre dois computadores. Ele utiliza o sistema de chave criptogrca pblica para autenticar um computador remoto, podendo utilizar esse sistema de chaves, tambm para autenticar usurios. A idia do SSH prover condencialidade e integridade dos dados trocados entre dois computadores usando criptograa e mensagens de autenticao codicadas (MACs). Esse protocolo tipicamente utilizado para conectar-se mquinas remotas e executar comandos, entretanto, h inmeras outras funcionalidades como realizar tunelamentos, redirecionamento de portas, conexes X11 (interface grca) alm de transferncia de arquivos. Em geral, o SSH utiliza a porta 22/tcp e a alternativa segura ao TELNET e FTP uma vez que eles no utilizam criptograa.

13.1.2 Chaves de Criptograa Assimtricas


Criar um par de chaves assimtricas tem basicamente duas funes:

13.1 Introduo Terica

4Linux www.4linux.com.br

Aumentar o nvel de segurana - denindo uma frase senha; Facilitar a execuo de scripts remotamente - no denir uma frase senha. A criao de chaves assimtricas consiste na gerao de dois arquivos que contm seqncias de caracteres aleatrios (pseudo) e que s tm funcionalidade se os dois trabalharem em conjunto. Ou seja, quando criamos um par de chaves ser criada uma chave pblica e uma chave privada. A chave privada sua e absolutamente ningum deve ter acesso a ela; a sua chave pblica voc coloca no servidor remoto. Quando voc tentar estabelecer uma conexo ela s ser possvel se a chave privada se encaixar na chave pblica. Com esse sistema, existe apenas uma nica chave privada que se encaixa em uma nica chave pblica. Como s h um par que se completa, apenas quem possuir a chave privada poder estabelecer uma conexo utilizando a respectiva chave pblica. Uma ilustrao do par de chaves assimtricas pode ser vista na gura: Quando criamos um par de chaves assimtricas devemos tomar o cuidado com a chave privada para que ningum tenha acesso a ela.

13.1.3 Acesso SSH


1) Acessando uma mquina remota: O SSH possui diversas formas de utilizao; a mais bsica de todas serve para estabelecer uma simples shell remota:

# ssh nome_usuario_remoto@ip_servidor

Ou com a opo -l de login:

# ssh -l nome_usuario_remoto ip_servidor

Pgina 4

Nome do curso

4Linux www.4linux.com.br

13.1 Introduo Terica

Outra opo se logar no servidor remoto com o mesmo nome de usurio que voc est logado, desde que este mesmo usurio exista remotamente:

# ssh ip_servidor

Acessar o servidor por ssh:

# ssh aluno@192 .168. .1

Ou:

# ssh -l aluno 192.168. .1

Desconecte e conecte-se novamente sem colocar o nome do usurio:

# ssh 192.168. .1

Determine qual a porta utilizada pelo SSH:

# nmap localhost

A porta padro do ssh a porta 22. 2) Execute um comando na mquina remota:

# ssh

aluno@192 .168. .1

ls -l / etc / yum / yum . repos . d

Nome do curso

Pgina 5

13.1 Introduo Terica

4Linux www.4linux.com.br

13.1.4 Copiando Arquivos Remotos

13.1.5 Cpia maq_LOCAL para maq_REMOTA


Para copiar arquivo:

# scp arquivo usuario@ip_de_destino :/ destino

Para copiar diretrio:

# scp -r diret rio usuario@ip_de_destino :/ destino

Copiando arquivo:

# scp / home / aluno / arquivo aluno@192 .168. .1:/ home / aluno

Copiando diretrio:

# scp -r / home / aluno / diretorio aluno@192 .168. .1:/ home / aluno

13.1.6 Cpia maq_REMOTA para maq_LOCAL


Para copiar arquivo:

# scp

usuario@ip_de_origem ( remoto ) :/ arquivo / destino

Pgina 6

Nome do curso

4Linux www.4linux.com.br

13.1 Introduo Terica

Para copiar diretrio:

# scp -r usuario@ip_de_origem ( remoto ) :/ diret rio / destino

Copiando arquivo:

# scp aluno@192 .168. .1:/ home / aluno / arquivo / tmp

Visualize o arquivo copiado:

# ls / tmp

Copiando diretrio:

# scp -r aluno@192 .168. .1:/ home / aluno / diretorio / tmp

Visualize o diretrio copiado:

# ls / tmp

13.1.7 SSH com Chaves Assimtricas


Quando criarmos o par de chaves assimtricas, ser criado um diretrio /.ssh na home do usurio. Em nossa mquina local, sem ser via ssh, vamos criar o par de chaves:

Nome do curso

Pgina 7

13.1 Introduo Terica

4Linux www.4linux.com.br

Digite uma senha na passphrase, no exemplo colocamos 123456.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21

# ssh - keygen -t rsa Generating public / private rsa key pair . Enter file in which to save the key (/ root /. ssh / id_rsa ) : Enter passphrase ( empty for no passphrase ) : 123456 Enter same passphrase again : 123456 Your identification has been saved in / root /. ssh / id_rsa . Your public key has been saved in / root /. ssh / id_rsa . pub . The key fingerprint is : c6 :51:3 e :75: e :1 : b7 :98:5 d :6 d :81:5 f :8 a :8 f :38:2 a root@aula # The key s randomart image is : + - -[ RSA 2 48] - - - -+ | | | . . o . . . o + o S . ... Eo + | | | | | | | | . o . |

| . . |. + | * |. ooo | .o+o | .=+

+ - - - - - - - - - - - - - - - - -+

Obs.: A passphrase pode ser desde uma senha "normal", com 6 ou 12 caracteres, at uma frase complexa, sem limite de tamanho; o importante que no seja algo fcil de adivinhar. Caso a passphrase no seja denida o acesso remoto ser sem senha.

A partir da, ao invs de pedir sua senha, o servidor envia um "desao"encriptado usando a chave pblica. Para respond-lo, o cliente SSH na sua mquina precisa usar a chave privada, que por sua vez precisa ser destravada usando a passphrase.

Pgina 8

Nome do curso

4Linux www.4linux.com.br

13.1 Introduo Terica

Mesmo que algum consiga roubar sua chave privada, no conseguir conectar sem saber a passphrase e vice-versa. O comando gerar os arquivos ".ssh/id_rsa"e ".ssh/id_rsa.pub"dentro do seu diretrio home, que so, respectivamente, sua chave privada e sua chave pblica. O ".ssh/id_rsa" um arquivo secreto, que deve usar obrigatoriamente o modo de acesso "600", para evitar que outros usurios da mquina possam l-lo. Muitos servidores recusam a conexo caso os arquivos estejam com as permisses abertas. 1) Verique que as chaves foram criadas:

1 2

# ls / root /. ssh id_rsa id_rsa . pub known_hosts

Depois de gerar seu par de chaves, falta o comando nal, que instala a chave pblica no servidor, permitindo que ela seja usada para autenticao:

# ssh - copy - id -i ~/. ssh / id_rsa . pub usuario@ip_do_servidor

Copiando a chave:

# ssh - copy - id -i ~/. ssh / id_rsa . pub root@192 .168. .1

Em resumo, o que o ssh-copy-id faz nada mais do que copiar o contedo do arquivo ".ssh/id_rsa.pub", dentro do seu diretrio home, para o arquivo ".ssh/authorized_keys"dentro do diretrio home do servidor remoto, uma operao que tambm pode ser realizada manualmente em caso de problemas. Tente acessar o servidor:

Nome do curso

Pgina 9

13.1 Introduo Terica

4Linux www.4linux.com.br

1 2 3 4

# ssh root@192 .168. .1 Enter passphrase for key / root /. ssh / id_rsa : 123456 Last login : Tue Jun 14 8:54:15 2 11 from 192.168. .1

13.1.8 Acesso por SSH sem senha com ssh-agent


O comando ssh-agent usado para salvar as passphrases na memria, sem com isso abrir mo da segurana. Ele funciona como uma espcie de "cache", onde voc digita a passphrase apenas uma vez e ela ca gravada na memria at que a sesso seja encerrada. A segurana no prejudicada, pois a passphrase no salva em lugar algum, ca apenas armazenada (de forma encriptada) em uma rea protegida de memria, acessvel apenas ao ssh-agent. Ao desligar o micro, tudo perdido.

1 2 3 4

# ssh - agent SSH_AUTH_SOCK =/ tmp / ssh - dSVLR17117 / agent .17117; export SSH_AUTH_SOCK ; SSH_AGENT_PID =17118; export SSH_AGENT_PID ; echo Agent pid 17118;

Execute os comandos que exportam as variveis criadas pelo comando ssh-agent:

1 2

# SSH_AUTH_SOCK =/ tmp / ssh - dSVLR17117 / agent .17117; export SSH_AUTH_SOCK ; # SSH_AGENT_PID =17118; export SSH_AGENT_PID ;

Adicione a chave:

1 2 3

# ssh - add Enter passphrase for / root /. ssh / id_rsa : 123456 Identity added : / root /. ssh / id_rsa (/ root /. ssh / id_rsa )

Pgina 10

Nome do curso

4Linux www.4linux.com.br

13.1 Introduo Terica

Tente acessar o servidor sem colocar a passphrase:

# ssh root@192 .168. .1

13.1.9 Congurando o servidor SSH (CentOS):


H diversos parmetros de congurao que podem ser alterados de forma a ajustar seus parmetros de funcionamento. Vamos entender alguns desses parmetros editando o arquivo de congurao do servidor de SSH. Edite o arquivo /etc/ssh/sshd_cong: Alguns parmetros: Keyword Description Default AllowGroups Habilita acesso apenas para grupos especicados * AllowUsers Habilita acesso apenas para usurios especicados * DenyGroups Nega acesso apenas para grupos especicados none DenyUsers Nega acesso apenas para usurios especicados none Port - porta de acesso ao ssh PermitRootLogin - habilita/nega acesso do usurio root por ssh X11Forwading - habilita/nega acesso ao X Banner /etc/issue.net - habilita banner do issue.net LoginGraceTime - tempo para se logar no servidor Alterando o arquivo:

Nome do curso

Pgina 11

13.1 Introduo Terica

4Linux www.4linux.com.br

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35

# vim / etc / ssh / sshd_config # $OpenBSD : sshd_config , v 1.73 2 5/12/ 6 22:38:28 reyk Exp $ See

# This is the sshd server system - wide configuration file . # sshd_config (5) for more information .

# This sshd was compiled with PATH =/ usr / local / bin :/ bin :/ usr / bin # The strategy used for options in the default sshd_config shipped with # OpenSSH is to specify options with their default value where # possible , but leave them commented . # default value . AllowUsers suporte Port 2222 # Protocol 2 ,1 Protocol 2 # AddressFamily any # ListenAddress . . . # ListenAddress :: # HostKey for protocol version 1 # HostKey / etc / ssh / ssh_host_key # HostKeys for protocol version 2 # HostKey / etc / ssh / ssh_host_rsa_key # HostKey / etc / ssh / ssh_host_dsa_key # Lifetime and size of ephemeral version 1 server key # KeyRegenerationInterval 1 h # ServerKeyBits 768 # Logging # obsoletes QuietMode and FascistLogging # SyslogFacility AUTH SyslogFacility AUTHPRIV # LogLevel INFO # Authentication : LoginGraceTime 15 Uncommented options change a

Pgina 12

Nome do curso

4Linux www.4linux.com.br

13.1 Introduo Terica

36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70

PermitRootLogin no # StrictModes yes # MaxAuthTries 6 # RSAAuthentication yes # PubkeyAuthentication yes # AuthorizedKeysFile . ssh / authorized_keys # For this to work you will also need host keys in / etc / ssh / ssh_known_hosts # RhostsRSAAuthentication no # similar for protocol version 2 # HostbasedAuthentication no # Change to yes if you don t trust ~/. ssh / known_hosts for # RhostsRSAAuthentication and HostbasedAuthentication # IgnoreUserKnownHosts no # Don t read the user s ~/. rhosts and ~/. shosts files # IgnoreRhosts yes # To disable tunneled clear text passwords , change to no here ! # PasswordAuthentication yes # PermitEmptyPasswords no PasswordAuthentication yes # Change to no to disable s / key passwords # ChallengeResponseAuthentication yes ChallengeResponseAuthentication no # Kerberos options # KerberosAuthentication no # KerberosOrLocalPasswd yes # KerberosTicketCleanup yes # KerberosGetAFSToken no # GSSAPI options # GSSAPIAuthentication no GSSAPIAuthentication yes # GSSAPICleanupCredentials yes GSSAPICleanupCredentials yes # Set this to yes to enable PAM authentication , account processing

Nome do curso

Pgina 13

13.1 Introduo Terica

4Linux www.4linux.com.br

,
71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101

# and session processing . If this is enabled , PAM authentication will # be allowed through the ChallengeResponseAuthentication mechanism . # Depending on your PAM configuration , this may bypass the setting of # PasswordAuthentication , PermitEmptyPasswords , and # " PermitRootLogin without - password ". If you just want the PAM account and # session checks to run without PAM authentication , then enable this but set # ChallengeResponseAuthentication = no # UsePAM no UsePAM yes # Accept locale - related environment variables AcceptEnv LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES AcceptEnv LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT AcceptEnv LC_IDENTIFICATION LC_ALL # AllowTcpForwarding yes # GatewayPorts no # X11Forwarding no X11Forwarding yes # X11DisplayOffset 1 # X11UseLocalhost yes # PrintMotd yes # PrintLastLog yes # TCPKeepAlive yes # UseLogin no # UsePrivilegeSeparation yes # PermitUserEnvironment no # Compression delayed # ClientAliveInterval # ClientAliveCountMax 3 # ShowPatchLevel no # UseDNS yes

Pgina 14

Nome do curso

4Linux www.4linux.com.br

13.1 Introduo Terica

102 103 104 105 106 107 108 109 110

# PidFile / var / run / sshd . pid # MaxStartups 1 # PermitTunnel no # ChrootDirectory none # no default banner path Banner / etc / issue . net # override default of no subsystems Subsystem sftp / usr / libexec / openssh / sftp - server

Reinicie o servio:

# service sshd restart

Agora para fazer o acesso da mquina remota ao servidor:

# ssh -p 2222 suporte@192 .168. .1

Onde: -p identica a porta Como usurio suporte, determine qual a porta utilizada pelo SSH:

$ nmap -sV localhost

Agora ele no consegue identicar a porta do ssh, pois voc alterou a porta padro, mas ainda existem parmetros do nmap que conseguem identicar:

$ nmap -p

-65535 - sV localhost

Nome do curso

Pgina 15

13.1 Introduo Terica

4Linux www.4linux.com.br

A opo -p serve para passar um range de portas ou uma porta especca a ser escaneada. Ele ainda no identicou qual o servio est sendo executado na porta, ento coloque a opo -sV para escanear a verso do programa:

# nmap -sV -p

-65535 localhost

-s - escaneia -V - banner(mostra programa e verso)

13.1.10 Cpia remota com porta diferente:

# scp -P 2222 arquivo suporte@192 .168. .1:

-P - porta Ao no se denir um destino aps os dois pontos : o arquivo ou diretrio ser copiado para o diretrio home do usurio remoto.

13.1.11 Tunelamento SSH


Uma forma simples de encriptografar protocolos que em condies normais no suportam encriptao usar o SSH para criar tneis seguros, ligando uma das portas da sua mquina porta do servidor onde o servio em questo est ativo. Por exemplo, se algum se encontra dentro de uma instituio cuja conexo Internet protegida por um rewall que bloqueia determinadas portas de conexo, no ser possvel, por exemplo, acessar e-mails via POP3, o qual utiliza a porta 110, nem envi-los via SMTP, pela porta 25.

Pgina 16

Nome do curso

4Linux www.4linux.com.br

13.1 Introduo Terica

As duas portas essenciais so a 80, para HTTP e a 443, para HTTPS, as quais garantem uma navegao em pginas da Web sem restries. No h necessidade do administrador da rede deixar vrias portas abertas, uma vez que conexes indesejadas e que comprometam a segurana da instituio possam ser estabelecidas atravs das mesmas. Contudo, isso compromete a dinamicidade de aplicaes na Internet. Um funcionrio ou aluno que queira acessar painis de controle de sites, arquivos via FTP ou amigos via Instant Messengers, por exemplo, no ter a capacidade de faz-lo, uma vez que as respectivas portas para seus funcionamentos esto bloqueadas. Para quebrar essa imposio rgida, porm necessria, o SSH oferece o recurso do Tnel. Acesse em seu navegador o ip do servidor: http://192.168.0.1 Voc ver o site da dexter.com.br. Por ssh vamos criar um tnel com esse servidor e mapear a porta 80 para a porta 12345 na nossa mquina local:

# ssh - Lporta_local : servidor_remoto : porta_remota usu rio@servidor_remoto

Lembre-se que estamos utilizando uma porta diferente da padro, e que o nico usurio que pode se conectar o aluno:

# ssh -p 2222 - L12345 :192.168. .1:8

aluno@IP_DO_SERVIDOR_DEXTER

Acesse o site no navegador localmente: http://localhost:12345

Nome do curso

Pgina 17

13.1 Introduo Terica

4Linux www.4linux.com.br

Para desconectar, deslogue do servidor. Outras opes: -f - O parmetro -f"dentro do comando faz com que ele seja executado em background, liberando o terminal depois que a conexo estabelecida. -N - O parmetro -N"faz com que o SSH apenas crie o redirecionamento da porta, sem abrir um terminal do servidor remoto.

13.1.12 Mensagem em broadcast: wall


O comando wall envia uma mensagem a todos os usurios logados no sistema. Este comando faz a leitura de um arquivo ou entrada padro e escreve o resultado em todos os terminais onde existem usurios conectados. Somente o usurio root pode utilizar este comando. No confundam o comando wall com o antigo netsend da Microsoft. A mensagem broadcast enviada pelo wall, para todos os terminais conectados naquele determinado servidor, enquanto o netsend faz broadcast para todos os endereos ativos na rede. Enviando sua mensagem:

1 2 3

# wall minha mensagem < ctrl +d >< enter >

1- Acesse o servidor por ssh 2- Acesse o diretrio onde cam as imagens do site da aula: /var/www/intranet/menu

Pgina 18

Nome do curso

4Linux www.4linux.com.br

13.1 Introduo Terica

3- Renomeie o arquivo home.png para home.original.png 4- copie uma imagem do cliente para o servidor e substitua a imagem do home: arquivo a ser copiado: /usr/share/images/desktop-base/gnome-foot.png salve o arquivo com o nome de home.png 5- Acesse o site e verique se o cone para ir para o home mudou.

Nome do curso

Pgina 19

TCP Wrappers
13.2 Introduo Terica
Os TCP Wrappers so usados para aplicar regras de acesso a diversos servios em seu servidor, podendo permitir ou negar conexes a eles. Eles so controlados por dois arquivos: /etc/hosts.allow - congurao de acessos permitidos para determinados IPs e /etc/hosts.deny - congurao de acessos negados para determinados IPs. TCP - Sigla para "Transmission Control Protocol".

13.2.1 Entendendo o TCP Wrappers


Existem dezenas de possibilidades de congurao para o tcp_wrappers e voc pode estud-las em extenso atravs das pginas de manual hosts_access e hosts_options. Portanto, sero ilustrados apenas alguns casos interessantes do uso desta ferramenta. As regras de controle de acesso, existentes nestes dois arquivos, tm o seguinte formato:

lista_de_daemons : lista_de_clientes [: comando ]

lista_de_daemons: Lista de um ou mais nomes de daemons (como especicados no /etc/inetd.conf), ou curingas.

20

4Linux www.4linux.com.br

13.2 Introduo Terica

lista_de_clientes: Lista de um ou mais endereos ou nomes de mquinas, padres ou curingas utilizados para especicar quais clientes podem e quais no podem acessar o servio. comando (opcional): possvel executar um comando sempre que uma regra casa com um padro e utilizada. Veja exemplos a seguir: Como citado anteriormente, curingas podem ser utilizados tanto na lista de daemons quanto na lista de clientes. Entre os existentes, pode-se destacar os seguintes: ALL - Signica todos os servios ou todos os clientes, dependendo apenas do campo em que se encontra. LOCAL - Este curinga casa com qualquer nome de mquina que no contenha um caractere ponto ., isto , uma mquina local. PARANOID - Casa com qualquer nome de mquina que no case com seu endereo. Isto geralmente ocorre quando algum servidor DNS est mal congurado ou quando alguma mquina est tentando se passar por outra. Na lista de clientes podem ser utilizados nomes ou endereos de mquinas, ou ento padres que especicam um conjunto de mquinas. Se a cadeia de caracteres que identica um cliente inicia com um ponto ., um nome de mquina ir casar com este padro sempre que o nal desse nome casar com o padro especicado. Por exemplo, se fosse utilizada a cadeia de caracteres .minhaorganizao, o nome de mquina server.minhaorganizao casaria com o padro. Similarmente, se a cadeia de caracteres termina com um ponto ., um endereo de mquina ir casar com o padro quando seus campos numricos iniciais casarem com a cadeia de caracteres especicada. Para exemplicar, se fosse utilizada a cadeia de caracteres 192.168.220., todas as mquinas que tenham um endereo IP que inicie com estes 3 conjuntos de nmeros iro casar com o padro (192.168.220.0 ao 192.168.220.255).

Nome do curso

Pgina 21

13.2 Introduo Terica

4Linux www.4linux.com.br

Alm destes mtodos, possvel identicar um cliente atravs do IP/mscara de rede. Voc pode especicar, por exemplo, 192.168.220.0/255.255.255.128, e qualquer mquina com endereo IP entre 192.168.220.0 e 192.168.220.127 casaria com o padro.

13.2.2 Suporte a TCP/Wrappers


Para saber se um servio tem suporte a TCP/Wrappers verique suas bibliotecas:

1 2

# which sshd # ldd / usr / sbin / sshd

A existncia da libwrap conrma o suporte a TCP/Wrappers:

libwrap . so .

= > / lib / libwrap . so .

( xb7ef7

Bloqueie todos os acessos ao seu servidor por ssh:

1 2

# vim / etc / hosts . deny sshd : ALL

Tente acessar seu servidor CentOS por ssh a partir da mquina Debian:

# ssh -p 2222 192.168. .1

No possvel devido a regra do TCP/Wrappers. Libere o acesso ssh ao seu servidor CentOS apenas para seu cliente Debian:

Pgina 22

Nome do curso

4Linux www.4linux.com.br

13.2 Introduo Terica

1 2

# vim / etc / hosts . allow sshd : 192.168. .1

Acesse seu servidor CentOS por ssh a partir da mquina Debian:

# ssh -p 2222 192.168. .1

Nome do curso

Pgina 23

4451
Linux System Administration

www.4linux.com.br

Contedo
Introduo ao uso do GPG 14.1 Introduo terica sobre criptograa . . . . . . . . . . . . . . . . . . . . 14.2 Caractersticas da criptograa simtrica . . . . . . . . . . . . . . . . . . 14.3 Caractersticas da criptograa assimtrica . . . . . . . . . . . . . . . . 14.4 GNUPG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14.5 Gerando chaves . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14.6 Exportando uma chave pblica . . . . . . . . . . . . . . . . . . . . . . . 2 3 4 4 6 7 9

14.7 Dica de segurana . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 14.8 Importado uma chave pblica . . . . . . . . . . . . . . . . . . . . . . . 11 14.9 Encriptar arquivos com GPG . . . . . . . . . . . . . . . . . . . . . . . . 13 14.10Decriptar arquivos com GPG . . . . . . . . . . . . . . . . . . . . . . . . 13 14.11Criando assinaturas com GPG . . . . . . . . . . . . . . . . . . . . . . . 14

Introduo ao uso do GPG

14.1 Introduo terica sobre criptograa

O que criptograa? Criptograa o estudo dos princpios e tcnicas pelas quais a informao pode ser transformada da sua forma original para outra ilegvel, de forma que possa ser conhecida apenas por seu destinatrio (detentor da "chave secreta"), o que a torna difcil de ser lida por algum no autorizado. Assim sendo, s o receptor da mensagem pode ler a informao com facilidade. A quem interessa a criptograa e quem contribuiu e contribui para ela evoluir? Militares, diplomatas e pessoas que precisam guardar segredos e at amantes. O que simetria? Simetria se refere igualdade de propriedades existente entre dois lados opostos de uma mesma situao. Encriptar ou cifrar so termos usados para descrever a transformao de informaes legveis/teis em dados embaralhados (sem sentido), que no se aproveita. Decriptar ou decifrar so termos usados para descrever a transforamo de informaes sem sentido (embaralhadas) em informaes legveis/teis.

14.2 Caractersticas da criptograa simtrica

4Linux www.4linux.com.br

14.2 Caractersticas da criptograa simtrica


Simples e til; Cobre situaes nas quais uma parte esteja envolvida; A pessoa que encripta a mesma que decripta.

Exemplos de Algoritmos Simtricos:

(Advanced Encryption Standard): Est presente nos softwares BitLocker, WinZip, no padro WPA2 etc; DES: Algoritimo criado pela IBM; IDEA :International Data Encryption Algorithm Blowsh: Elaborado por Bruce Schneier em 1993, leva o nome de um peixe que no Brasil conhecido como baiacu

14.3 Caractersticas da criptograa assimtrica


Proporciona privacidade e autenticidade; teis na troca de e-mail; Seu uso exige que cada um dos lados possua um par chaves: uma pblica e outra privada

Diferena entre Chave Pblica e Privada

Pgina 4

Linux System Administration

4Linux www.4linux.com.br

14.3 Caractersticas da criptograa assimtrica

A chave pblica de um usurio de e-mail deve ser de conhecimento das pessoas que lhe desejam enviar mensagens. Voc pode disponibilizar publicamente, sem problemas. A chave privada deve sempre ser de conhecimento exclusivo do dono. Tome muito cuidado para que ningum tome posse de sua chave privada! A par de chaves do remetente confere autenticidade, isto , atribui legitimidade s informaes trocadas entre partes diferentes. A par de chaves do destinatrio confere privacidade, isto , atribui sigilo s informaes trocadas entre partes distintas. Logo, entre os interlocutores, o uso das duas chaves leva em conta que cada um possua a chave pblica do outro. Mas anal o que esta tal chave? Seria uma senha grande ou um parmetro para se encriptar e decriptar informaes. E qual deve ser o tamanho da chave em bits? Isto relativo e deve ser levado em conta os seguintes fatores:

Produtividade; Segurana

Chaves com 512 bits oferecem melhor desempenho nas operaes criptogrcas, mas so facilmente quebradas. O uso de chaves grandes causa lentido, mas proporciona muita segurana. Qual seria o tamanho "ideal"? 1024 bits ou 2048 bits para os mais "precavidos".

Linux System Administration

Pgina 5

14.4 GNUPG

4Linux www.4linux.com.br

14.4 GNUPG
Vamos utililizar o software gnup. O gnupg licenciado pela GPL e pode ser usado tanto no Linux, quanto no Windows e MAC OS X. O gnupg trabalha com critograa simtrica e assimtrica. Os algoritmos que o gnupg utiliza so: RSA para criptograa assimtrica; TripleDES, AES e Blowsh; Funes hash MD5 e SHA; ZIP, ZLIB e BZIP2 para compresso Certique-se que este pacote esteja instalado na sua distribuio. Para instalar no Debian:

# aptitude install gnupg

Para instalar no CentOS:

# yum install gnupg

Para vericar a verso do GnuPG (Debian e CentOS)

1 2 3 4

# gpg -- version gpg ( GnuPG ) 1.4.1 Copyright ( C ) 2 gpl . html > 8 Free Software Foundation , Inc . License GPLv3 +: GNU GPL version 3 or later < http :// gnu . org / licenses /

Pgina 6

Linux System Administration

4Linux www.4linux.com.br

14.5 Gerando chaves

5 6 7 8 9 10 11 12 13 14

This is free software : you are free to change and redistribute it . There is NO WARRANTY , to the extent permitted by law . Home : ~/. gnupg Algoritmos suportados : Chave p blica : RSA , RSA -E , RSA -S , ELG -E , DSA Cifra : 3 DES , CAST5 , BLOWFISH , AES , AES192 , AES256 , TWOFISH , CAMELLIA128 , CAMELLIA192 , CAMELLIA256 Dispers o : MD5 , SHA1 , RIPEMD16 , SHA256 , SHA384 , SHA512 , SHA224 Compress o : Uncompressed , ZIP , ZLIB , BZIP2

14.5 Gerando chaves


Acesse a maquina Debian com um usurio comum, e digite o comando abaixo para gerar a chave pblica e privada.

1 2 3 4

$ gpg --gen - key gpg ( GnuPG ) 1.4.1 ; Copyright ( C ) 2 . This is free software : you are free to change and redistribute it . There is NO WARRANTY , to the extent permitted by law . 8 Free Software Foundation , Inc

A utilizar o comando o diretrio oculto .gnupg sera criado na home do usurio logado.

gpg : directory / home / aluno /. gnupg created

As chaves pblica e privada sero criadas com os nomes "pubring.gpg"e "secring.gpg".

Linux System Administration

Pgina 7

14.5 Gerando chaves

4Linux www.4linux.com.br

1 2

gpg : porta - chaves / home / aluno /. gnupg / secring . gpg criado gpg : porta - chaves / home / aluno /. gnupg / pubring . gpg criado

Varias perguntas sero feitas durante a criao do par de chaves. Responda com as seguintes opes: Por favor selecione o tipo de chave desejado: Tecle 2 para selecionar DSA usada para assinaturas digitais e Elgamal usada para conferir privacidade s comunicaes. DSA keys may be between 1024 and 3072 bits long. Tecle 1024 para selecionar o tamanho da chave Por favor especique por quanto tempo a chave deve ser vlida. Tecle 1y para denir o tempo de renovao das chaves por 1 ano Is this correct? (y/N) Tecle y para conrmar a informao You need a user ID to identify your key; the software constructs the user ID from the Real Name, Comment and Email Address in this form: "Heinrich Heine (Der Dichter) <heinrichh@duesseldorf.de>" Nome completo: Aluno Linux Administration Endereo de correio eletrnico: aluno@dexter.com.br Comentrio: Maquina Debian

Pgina 8

Linux System Administration

4Linux www.4linux.com.br

14.6 Exportando uma chave pblica

Voc selecionou este identicador de usurio: "Aluno Linux Administration (Maquina Debian) <aluno@dexter.com.br>" Muda (N)ome, (C)omentrio, (E)ndereo ou (O)k/(S)air? O Voc precisa de uma frase secreta para proteger sua chave. Digite a frase secreta e em seguida conrme a mesma No h bytes aleatrios sucientes. Por favor, faa algum outro trabalho para que o sistema possa coletar mais entropia! (So necessrios mais 276 bytes) Agora o gpg far vrios clculos para gerar uma chave pblica e uma privada. Abra outro terminal com usurio root, e digite comandos de pesquisa e listagem de arquivos para gerar mais entropia gpg: /home/aluno/.gnupg/trustdb.gpg: banco de dados de conabilidade criado gpg: key B28CCB9D marked as ultimately trusted chaves pblica e privada criadas e assinadas. gpg: a vericar a base de dados de conana gpg: 3 marginal(s) needed, 1 complete(s) needed, PGP trust model gpg: depth: 0 valid: 1 signed: 0 trust: 0-, 0q, 0n, 0m, 0f, 1u gpg: proxima vericao da base de dados de conana a 2013-0712 pub 1024D/B28CCB9D 2012-07-12 [expires: 2013-07-12] Key ngerprint = A125 D989 0EFC 74E2 6ED2 D309 3FC5 09C6 B28C CB9D uid Aluno Linux Administration (Maquina Debian) <aluno@dexter.com.br> sub 1024g/A40A66E8 2012-07-12 [expires: 2013-07-12]

14.6 Exportando uma chave pblica


Para exportar a chave pblica do usurio para um arquivo, utilizae o comando abaixo com o usurio comum:

Linux System Administration

Pgina 9

14.6 Exportando uma chave pblica

4Linux www.4linux.com.br

$ gpg -- armor -- output " chave_publica_aluno . txt " -- export " aluno@dexter . com . br "

Visualize o contedo do arquivo que contm a chave pblica atravs do comando cat:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26

$ cat chave_publica_aluno . txt ----- BEGIN PGP PUBLIC KEY BLOCK - - - - Version : GnuPG v1 .4.1 ( GNU / Linux )

mQGiBE // Ad RBADlzDbqxM5Bqfqq2tq / LIVO1pYHPOvn43OoVBSvbHyvNcGb TGX Nw9bZ8oroYB / I57 5zqLRQjuy7G 9 u6sMjbg6U5e9GHSTrTy6YxQ3LZ5ZftJXgO p9awnnYv6ke2hTFhfRg53hVAL17N86QVomfNWJjEk DKf + aeYZgIHMTvXwCgsykb M34ZOUJbISJBW4SgcQiHTmUD / j PeL1d I4ekhGQcp5oENoePz8ZJNhZe / f3OTg2 qmtbeFWSqEQXNfrRXoc eCfvIuk93TIpMYOFwUHssKIILrLwSAiat6AMcHxpFTjK dxdbWcHNBr9OO + ddrsMVVe 3jSkbX6rdd +271 NcsAl + qzYN9ezUdDTv8iLacp +1 o REMtBACZ + ss + iMIU mvnH33qoXTEz9boo + Or LEKHqYwppZn3p5GwnBxebOAMEa / + OqZx2oANPj EoP QAV1f7I2sNSf + h1v4 + OP / uWCpcYpzfXmSGovcm K bLnycAW IGQ9 uJXQ5Ze3pW5WOmL3NFJ1olRezbcAqT5Z1qmcoAQnD6mC7RBQWx1bm8gTGlu dXggQWRtaW5pc3RyYXRpb24gKE1hcXVpbmEgRGViaWFuKSA8YWx1bm9AZGV4dGVy LmNvbS5icj6IaAQTEQIAKAUCT /8 B3QIbAwUJAeEzgAYLCQgHAwIGFQgCCQoLBBYC AwECHgECF4AACgkQP8UJxrKMy516YwCggwMGttnNbIqmrUYKx6NdRyMa13YAn nM hzMZgZmqQyvlWNn7iECMFY1ZuQENBE // Ad QBADdQ8GM1hh9 + ilWnSfoavffSMqd 1 tn69uBpEmGju2f + j92qY2 / wZWeiYTCYZvU6Tlfjqk6 + OcozdyInpnhVXHHCodmN HSuJKFDd2T + gG85MI4yqI95AXgHgVbOZX9U1WacMmcAIDBmVlpPunZ3E3dxijd6w yCvWF5mOcFiFNCtoowADBgQAvTjy8D5ANTyvTb4EAz9w4J + n4 zlgebUVJ45f7eU 6 lwIu3m +/ MCrUD8e5a3E7bqbkXPo3w48X1k4MtzgyUMhygVNaDd9b3CTcWlk6JnV 5 y5yXYbU9BxABJv + TTJbwg5tHdiXcl6lFPkUeR1kdjmu1Rux6Sv7uD4siRz5m6uv ZpOITwQYEQIADwUCT /8 B3QIbDAUJAeEzgAAKCRA / xQnGsozLnQP / AKCtFY87vAfc PeW / Oy8gsaa6igw7UgCfYMnwny2z1EeXQE / h9NssRF9dyCk = = utVZ ----- END PGP PUBLIC KEY BLOCK - - - - -

Pgina 10

Linux System Administration

4Linux www.4linux.com.br

14.7 Dica de segurana

14.7 Dica de segurana


Os arquivos pubring.gpg, secring.gpg e trustdb.gpg guardam chaves e informaes referentes ao par. Guarde a cpia em um local de difcil acesso. Faa uma cpia dos arquivos do diretrio /.gnupg

1 2

$ ls . gnupg / gpg . conf pubring . gpg pubring . gpg ~ random_seed secring . gpg trustdb . gpg

Compatibilidade: O gnupg gera arquivos com extenso .gpg quando encripta. Um programa proprietrio gera um arquivo com extenso .pgp.

14.8 Importado uma chave pblica


Acesse a maquina CentOS com um usurio comum (diferente do aluno) e repita os procedimentos da sesso "Gerando chaves", alterando as seguintes informaes: Nome completo Endereo de correio eletrnico Comentrio Na maquina CentOS envie para o usurio Aluno da maquina Debian, o arquivo da chave pblica atravs do comando scp:

$ scp chave_publica_user_centos . txt aluno@192 .168.2

.1:

Linux System Administration

Pgina 11

14.8 Importado uma chave pblica

4Linux www.4linux.com.br

Na maquina Debian, importe a chave de usurio do CentOS atravs do comando:

$ gpg -- import chave_publica_user_centos . txt

Para listar as chaves importadas use o comando:

$ gpg -- list - keys

Depois de adicionar o destinatrio, dena a autenticidade associada aquela chave (o grau de conana):

$ gpg -- edit - key " Tux CentOS "

Use o comando "trust"para denir o grau de conana):

Command > trust

Please decide how far you trust this user to correctly verify other users keys (by looking at passports, checking ngerprints from different sources, etc.) Tecle 5 para denir que Cona totalmente Para sair da edio da chave use o comando quit:

Command > quit

Pgina 12

Linux System Administration

4Linux www.4linux.com.br

14.9 Encriptar arquivos com GPG

14.9 Encriptar arquivos com GPG


Antes de enviar um arquivo ao usurio que importou sua chave pblica, garanta a segurana na troca de informaes encriptando o arquivo com o comando GPG. Na maquina Debian, use o comando abaixo para encriptar o arquivo lista_secreta.txt usando a chave pblica do usurio do CentOS:

$ gpg -- recipient " Tux CentOS " -- output " lista_secreta . txt . gpg " -encrypt " lista_secreta . txt "

Envie o arquivo encriptado ao usurio da maquina CentOS:

$ scp lista_secreta . txt . gpg tux@192 .168.2

.2:

14.10 Decriptar arquivos com GPG


Na maquina CentOS, use o comando abaixo para decriptar o arquivo lista_secreta.txt.gpg, informando sua frase secretao:

1 2

$ gpg -- decrypt - files " lista_secreta . txt . gpg " Enter passphrase :

Para vericar se ocorreu tudo com sucesso, liste o contedo do diretrio

1 2

$ ls lista_secreta . txt lista_secreta . txt . gpg

Linux System Administration

Pgina 13

14.11 Criando assinaturas com GPG

4Linux www.4linux.com.br

14.11 Criando assinaturas com GPG


Cenrio: Vamos supor que voc quer enviar um arquivo de texto e que o destinatrio deseja uma prova sua de que realmente foi voc quem enviou. Uma assinatura no basta, ainda mais em um texto. Crie um arquivo chamado aviso.txt e digite uma frase:

$ echo " Sua frase aqui " > aviso . txt

Use o comando gpg para assinar um arquivo com a opo clearsign:

1 2

$ gpg -- clearsign aviso . txt Enter passphrase :

Liste o contedo do diretrio para vericar o arquivo original (.txt) e o arquivo assinado (.asc)

1 2

$ ls aviso . txt aviso . txt . asc

Visualize o contedo do arquivo assinado:

1 2 3 4 5 6

$ cat aviso . txt . asc ----- BEGIN PGP SIGNED MESSAGE - - - - Hash : SHA1 Sua frase aqui ----- BEGIN PGP SIGNATURE - - - - Version : GnuPG v1 .4.1 ( GNU / Linux )

Pgina 14

Linux System Administration

4Linux www.4linux.com.br

14.11 Criando assinaturas com GPG

iEYEARECAAYFAkv +2 y4ACgkQixXsqYEooo6D2QCfYSwOZE3Yy6LlXeYspLxrOdw9e1cAoKpPCAoSDYZYY / c8BkC9SzY + gk P = DDzt

----- END PGP SIGNATURE - - - - -

O arquivo "arquivo.txt.asc"est pronto para ser enviado, mas no est encriptado. Se ele no est encriptado, falta privacidade ou autenticidade? Privacidade. Se o arquivo j est assinado, existe sim autenticidade. Agora, eu posso disponibilizar o arquivo assinado no servidor de arquivos que Maria tem acesso ou enviar por email como anexo. Ou pode enviar o contedo do arquivo no corpo de uma mensagem, mas alguns clientes de e-mail tem problemas de codicao e isto pode gerar erros. O Gmail por exemplo utiliza a codicao UTF-8. O outro usurio ao receber o arquivo testar a assinatura com o comando:

1 2

$ gpg -- verify " aviso . txt . asc " gpg : Signature made Thu 12 Jul 2 12 21:11:54 PM BRT using DSA key ID 8128 A28E CentOS ) Good signature from " Tux CentOS ( Maquina

gpg : < tux@dexter . com . br > "

Linux System Administration

Pgina 15

4451
Linux System Administration

www.4linux.com.br

Contedo
Compilao do Kernel 15.1 Introduo Terica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15.2 Introduo ao Kernel verso 3 . . . . . . . . . . . . . . . . . . . . . . . 15.3 Funcionalidades do Kernel 3.3 . . . . . . . . . . . . . . . . . . . . . . . 15.4 Conhecendo o hardware da maquina . . . . . . . . . . . . . . . . . . . 15.5 Congurar, compilar e instalar o Kernel . . . . . . . . . . . . . . . . . . 2 3 5 5 7 9

Compilao do Kernel

15.1 Introduo Terica

O centro atravs do qual todas distribuies so construdas o kernel do sistema operacional GNU/Linux. Ele ca entre os programas de usurio e o hardware do sistema. o kernel quem fornece suporte ao hardware, protocolos e alguns softwares. Vimos no captulo de Mdulos que kerneis genricos baseiam-se na utilizao de mdulos, ou seja, o desenvolvedor compila um kernel bsico e compila todo o resto em forma de mdulos, de maneira que todos os suportes adicionais sejam adicionados de forma modular.

Quando compilamos um kernel, a idia torn-lo mais enxuto e seguro. Frequentemente seremos forados a realizar uma compilao a m de adicionar o suporte a alguma funcionalidade que no veio habilitada por padro.

De certa forma, queremos passar de um esquema modular a um esquema em que a maioria, se no todas, as funcionalidades que iremos utilizar estejam built-in no kernel, ou seja, no modular, como pode ser visto na gura abaixo.

15.1 Introduo Terica

4Linux www.4linux.com.br

A perfeio seria ter um kernel bem compilado contendo apenas o conjunto de partes estritamente necessrias ao funcionamento do nosso servidor e no ter nenhum mdulo externo compilado. Retiraramos at o suporte a carregar mdulos.

Congurar um kernel manualmente frequentemente tido como o procedimento mais difcil que um usurio de Gnu/Linux tem que fazer. Isso no bem verdade, depois de congurar uns dez kerneis voc nem lembrar que foi difcil :) Como tudo na vida mais uma questo de prtica do que de inteligncia.

No entanto, uma coisa verdade: voc deve conhecer muito bem seu sistema quando voc comear a congurar o kernel manualmente. A maior parte das informaes pode ser obtida utilizando o comando lspci.

Pgina 4

Linux System Administration

4Linux www.4linux.com.br

15.2 Introduo ao Kernel verso 3

15.2 Introduo ao Kernel verso 3


A verso 3 do kernel foi lanada em 22 de Julho de 2011 em comemorao aos 20 anos do Linux, com alteraes bastante tcnicas incluindo suporte a mais dispositivos, reduo na fragmentao no sistema de arquivos Btrfs e um backend de armazenamento para o Xen. Outras mudanas aparecem com suporte mais amplo a placas de rede wireless, webcams, e at mesmo o Kinect da Microsoft. A verso 3.0 teve seu lanamento com 14,647,033 linhas de cdigo, diferente de outras verses, como pode ser comparada na lista abaixo:

Verso 1.0.0: 176,250 linnhas de cdigo; Verso 2.2.0: 1,800,847 linhas de cdigo; Verso 2.4.0: 3,377,902 linhas de cdigo; Verso 2.6.0: 5,929,913 linhas de cdigo; Verso 3.0: 14,647,033 linhas de cdigo.

15.3 Funcionalidades do Kernel 3.3


Quais so as novas funcionalidades do Kernel 3.3? A verso 3.3 do Kernel trouxe muitas novidades signicativas, e esta a verso que sera instalada em nossa pratica. Acompanhe abaixo um resumo de algumas novidades: Suporte melhorado a sistemas de arquivos

Linux System Administration

Pgina 5

15.3 Funcionalidades do Kernel 3.3

4Linux www.4linux.com.br

Redimensionamento do sistema de arquivos Ext4 mais inteligente e suporte a balanceamento e re-striping ao sistema de arquivos Btrfs, permitindo que a migrao de RAIDs criados com o Btrfs seja pausada, cancelada e reiniciada aps uma falha. Fuso com o projeto Android A fuso entre o Kernel Linux e o kernel modicado do Android, se torna realidade nesta verso, trazendo melhorias para ambos os projetos onde proporciona a melhora do suporte do sistema operacional em outras plataformas ou at mesmo rodar aplicativos dele usando o Kernel Linux. Melhor ligao em interfaces de redes H um novo dispositivo que combina mltiplos dispositivos Ethernet em um nico dispositivo virtual. Este dispositivo de rede virtual pode usar a tcnica Round-Robin para dividir o trfego de rede entre as mltiplas portas; alternativamente, uma porta designada de "backup ativo"pode assumir a conexo caso ocorram problemas com a conexo primria de rede. Open VSwitch O Open vswitch uma implementao de software de um switch de rede de mltiplas camadas, onde est sendo mesclado na rvore principal do Kernel. Esta implementao projetada para cenrios mais complexos, e especialmente para ser usado como um vswitch em ambientes de servidores virtualizados. Suporte a drivers Esta verso teve uma reviso melhorada no suporte do Kernel (hardware), para que houvesse progresso nos drivers de cdigo aberto para a processadores AMD, Intel e processadores grcos NVIDIA. Suporte de inicializao EFI Esta verso apresenta um esboo de inicializao EFI que permite que uma ima-

Pgina 6

Linux System Administration

4Linux www.4linux.com.br

15.4 Conhecendo o hardware da maquina

gem bzImage x86, seja carregada e executada diretamente pelo rmware do EFI. O bzImage aparece para o rmware como uma aplicao EFI. Tanto a BIOS e gerenciadores de inicializao EFI podem carregar e executar a mesma bzImage, permitindo que uma nica imagem de kernel possa trabalhar em qualquer ambiente de inicializao.

15.4 Conhecendo o hardware da maquina


Vamos conhecer um pouco do hardware antes de iniciarmos a congurao do kernel:

1 2 3 4

# cat / proc / interrupts # cat / proc / ioports # cat / proc / meminfo # cat / proc / cpuinfo

Dica LPI: Lembre-se:

/proc/interrupts - contm as informaes dos canais IRQ; /proc/ioports - contm as informaes Input/Output; /proc/meminfo - contm informaes da memria; /proc/cpuinfo - contm informaes do processador; /proc/mtab - contm informaes dos diretrios que esto montados; /proc/swaps - contm informaes dos swaps em uso;

Linux System Administration

Pgina 7

15.4 Conhecendo o hardware da maquina

4Linux www.4linux.com.br

/proc/dma - contm informaes dos canais de DMA em uso; /proc/lesystems - contm informaes dos sistemas de arquivos; /proc/modules - contm informaes dos mdulos carregados;

Para obtermos informaes a respeito dos componentes PCI e USB conectados mquina devemos instalar dois programas o lscpi e o lsusb:

# aptitude install pciutils usbutils

# yum install pciutils usbutils

Veja os dispositivos PCI e USB conectados mquina:

1 2

# lspci # lsusb

Pgina 8

Linux System Administration

4Linux www.4linux.com.br

15.5 Congurar, compilar e instalar o Kernel

15.5 Congurar, compilar e instalar o Kernel


Agora que voc sabe as novidades do Kernel 3.3 e tem conhecimento do hardware da maquina, vamos colocar em pratica a implementao da verso 3 do Kernel. O download sera feito no endereo do kernel.org, e a distribuio usada sera o Debian 6. Antes de compilar qualquer verso do Kernel, comece instalando os pacotes abaixo para resolver as dependncias durante a compilao.

# aptitude install make gcc g ++ autoconf libncurses5 libncurses5 - dev ncurses - base ncurses - bin ncurses - term

1 2

# yum install ncurses - devel # yum groupinstall " Development Tools "

O proximo passo para compilarmos um kernel fazer o download de seu cdigo fonte a partir do site:

http://www.kernel.org

Linux System Administration

Pgina 9

15.5 Congurar, compilar e instalar o Kernel

4Linux www.4linux.com.br

Seguindo a FHS acesse o diretrio /usr/src para baixar a fonte do Kernel.

# cd / usr / src /

Use o comando wget e baixe a verso 3.3.3 usando o endereo abaixo:

# wget -c http :// www . kernel . org / pub / linux / kernel / v3 . / linux -3.3.3. tar . bz2

Para desempacotar e descompactar use o comando tar no arquivo baixado

# tar jxvf linux -3.3.3. tar . bz2

Crie um link simblico padronizando o nome linux como fonte do Kernel

1 2

# ln -s / usr / src / linux -3.3.3 / usr / src / linux # cd linux

Um passo extremamente importante antes de congurar o nosso kernel sempre adicionar uma EXTRAVERSION am de organizar uma eventual estrutura de mdulos no /lib. Utilize o comando date para gerar uma string de extraversion:

1 2

# date +" -% Y % m % dc1 " -2 12 725 c1

Adicione essa string varivel EXTRAVERSION na Makele do kernel:

Pgina 10

Linux System Administration

4Linux www.4linux.com.br

15.5 Congurar, compilar e instalar o Kernel

1 2 3

# cd / usr / src / linux -3.3.3 # vim Makefile EXTRAVERSION = -2 12 725 c1

Veja as opes da Makele do kernel:

# make help

Maneiras de congurar o kernel: make menucong: Escolha de opes usando interface ncurses; make cong: Congurao a base de perguntas e respostas no terminal; make xcong: Congurao modo grco feito em QT ; make gcong: Congurao modo grco feito em GTK; make localmodcong: Congurao a base de perguntas e respostas no terminal, onde possvel retirar mdulos no utilizados do seu kernel! Se essa no for a primeira compilao desse kernel, sempre recomendado realizar uma limpeza no diretrio do fonte do kernel:

# make mrproper

mrproper -> remove todos arquivos gerados pelo comando make + arquivo cong + vrios arquivos de backup Inicie o processo de congurao do kernel:

Linux System Administration

Pgina 11

15.5 Congurar, compilar e instalar o Kernel

4Linux www.4linux.com.br

# make menuconfig

A interface de congurao fornece uma estrutura de menus e sub-menus nos quais devemos navegar am de selecionar as opes que desejamos adicionar, remover ou compilar como mdulos.

Aps salvar as conguraes, podemos visualizar o arquivo gerado e copi-lo para um lugar seguro:

# less . config

Pgina 12

Linux System Administration

4Linux www.4linux.com.br

15.5 Congurar, compilar e instalar o Kernel

# cp . config / boot / config -3.3.3 -2 12 725 c1

Agora que est tudo pronto, vamos compilar o kernel:

# make CONFIG_DEBUG_SECTION_MISMATCH = y

Dica: Caso seu processador possua varios ncleos otimize a compilao atravs da ag -j. Exemplo:

# make CONFIG_DEBUG_SECTION_MISMATCH = y - j4

-j4: Executa a compilao do kernel em quatro processos simultneos! Aps compilar o kernel e seus mdulos, vamos copiar os mdulos para o diretrio apropriado em /lib/modules:

1 2

# make modules # make modules_install

Dica LPI: O Processo de compilao do kernel: make ; make modules_install

Depois de compilado o kernel, ser gerado um arquivo da imagem (o bzImage) no diretrio /usr/src/linux-3.3.3/arch/XXX/boot. Onde XXX a arquitetura da mquina. Copie-o para o diretrio /boot, com o nome de vmlinuz, este o nome dado ao kernel:

Linux System Administration

Pgina 13

15.5 Congurar, compilar e instalar o Kernel

4Linux www.4linux.com.br

1 2 3

# cd arch / i386 / boot / # file bzImage # cp bzImage / boot / vmlinuz -3.3.3 -2 12 725 c1

Se o nosso kernel tiver sido compilado com mdulos que sejam extremamente necessrios durante o boot, ser necessrio criar uma imagem de boot.

Para isso, precisamos instalar o seguinte pacote no Debian:

# aptitude install initramfs - tools

Agora devemos construir nosso arquivo initrd no /boot:

# mkinitramfs -o / boot / initrd . img -3.3.3 -2 12 725 c1 / lib / modules /3.3.3 -2 12 725 c1

# mkinitrd / boot / initrd -3.3.3 -2 12 725 c1 . img / lib / modules /3.3.3 -2 12 725 c1

Pgina 14

Linux System Administration

4Linux www.4linux.com.br

15.5 Congurar, compilar e instalar o Kernel

Feitos esses procedimentos devemos congurar o nosso Boot Loader.

Esta parte mais simples! Se o Kernel tem o nome vmlinuz-verso no diretrio /boot. Aos invs de criar uma congurao manual com a entrada do Kernel e initrd-img, apenas digite o comando abaixo e a entrada no Grub 1 ou 2 sera feita de forma automtica:

# update - grub

Linux System Administration

Pgina 15

4451
Linux System Administration

www.4linux.com.br

Contedo
Gerenciadores de Boot 16.1 Introduo Terica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16.1.1 GRUB (Padro CentOS) . . . . . . . . . . . . . . . . . . . . . . . 2 3 3

16.1.2 Segurana no grub . . . . . . . . . . . . . . . . . . . . . . . . . . 12 16.2 GRUB2 (Padro Debian) . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 16.2.1 Melhorias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 16.2.2 GRUB vs GRUB2 . . . . . . . . . . . . . . . . . . . . . . . . . . 14 16.2.3 Hierarquia de arquivos e diretrios . . . . . . . . . . . . . . . . . 15 16.2.4 Congurao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 16.2.5 Entradas personalizadas . . . . . . . . . . . . . . . . . . . . . . 19 16.2.6 Criando menus personalizados . . . . . . . . . . . . . . . . . . . 21 16.2.7 Regras para construo de menuentry . . . . . . . . . . . . . . . 22 16.2.8 Congurando fonte e cores . . . . . . . . . . . . . . . . . . . . . 23 16.2.9 Segurana no grub2 . . . . . . . . . . . . . . . . . . . . . . . . . 24 16.3 Colocar Imagem no Grub2 . . . . . . . . . . . . . . . . . . . . . . . . . 25 16.4 Atualizando novas entradas no menu . . . . . . . . . . . . . . . . . . . 26

Gerenciadores de Boot
16.1 Introduo Terica
Um bootloader o software responsvel por carregar o sistema operacional durante a inicializao do sistema. H vrios bootloaders diferentes disponveis no GNU/Linux. O papel do bootloader fornecer uma lista de opes de sistemas operacionais disponveis na mquina e que podem ser carregados. Uma vez que o usurio. Escolheu qual sistema deseja subir o GRUB inicia o carregamento do kernel na memria RAM o qual passa a ter o controle sobre a mquina. Ao contrrio da maioria dos programas que colocam seus arquivos de congurao no diretrio /etc o grub coloca-os no diretrio /boot/grub.

16.1.1 GRUB (Padro CentOS)


Este o BootLoader padro do CentOS. Para que nosso novo kernel, possa ser inicializado, devemos congurar nosso bootloader. Veja agora como fazer isso no Grub. Embora seja "enjoado", o grub no to complicado como pode parecer primeira vista. Vamos aproveitar a deixa para aprender um pouco mais sobre ele. O grub usa o arquivo de congurao "/boot/grub/menu.lst" no Debian, no CentOS ele um link para /boot/grub/grub.conf. Este arquivo lido a cada boot, por isso

16.1 Introduo Terica

4Linux www.4linux.com.br

no necessrio reinstalar o grub ao fazer alteraes, como no caso do lilo. Este um exemplo de arquivo de congurao do grub:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19

default timeout 5 color cyan / blue white / blue splashimage =( hd , ) / grub / splash . xpm . gz title CentOS root ( hd , ) kernel / vmlinuz -2.6.32 -71. el6lx86_64 ro root =/ dev / VolGroup / lv_root initrd / initramfs -2.6.32 -71. el6lx86_64 title Microsoft Windows root ( hd ,2) makeactive # Se usar Windows7 comente esta linha . chainloader +1 title Debian Squeeze root ( hd ,3) kernel / vmlinuz -2.6.31 ro root =/ dev / sda3 initrd / initrd . img -2.6.31

O CentOS o default, por causa da opo "default 0"no incio do arquivo. Do ponto de vista do grub, o CentOS o sistema "0", o Windows o sistema 1, enquanto que o Debian o sistema 2. Note que ele conta os sistemas includos na lista a partir do zero. Se voc quisesse que o Debian passasse a ser o sistema default, bastaria trocar "default 0"por "default 2". O mesmo vale para os outros sistemas operacionais instalados. A linha "timeout 5" um pouco mais cosmtica. Ela diz que se voc no pressionar nenhuma tecla na tela de boot, o sistema default ser iniciado depois de 5 segundos.

Pgina 4

Linux System Administration

4Linux www.4linux.com.br

16.1 Introduo Terica

Voc pode aumentar ou diminuir o tempo a seu gosto. A linha "color cyan/blue white/blue"tambm cosmtica. Ela apenas indica as cores do texto e do fundo na tela de boot. Veja que as cores so denidas duas vezes. Da primeira voc diz as cores que so usadas quando exibida a mensagem de boot e na segunda as cores que sero usadas em micros onde no seja possvel exibir a imagem de fundo. Completando, temos a linha "splashimage=(hd0,0)/grub/splash.xpm.gz", que indica a imagem de fundo que ser exibida. No caso do CentOS usado um arquivo de tema, que composto por diversos arquivos dentro da imagem de fundo. O "(hd0,0)"dentro da opo diz a partio onde o CentOS est instalado, onde ele vai procurar o arquivo. Como pode ver, o grub usa uma nomenclatura prpria para designar as parties do HD, o que acaba sendo o aspecto da congurao mais difcil de entender. No Linux os HDs e parties so acessados atravs de dispositivos especiais, localizados dentro do diretrio "/dev". Um HD IDE instalado como master na primeira porta IDE, visto pelo sistema como "/dev/hda"e a primeira partio dentro dele vista como "/dev/hda1". Se voc usasse um HD serial ATA, ento ele seria visto como "/dev/sda"e a primeira partio como "/dev/sda1". Se voc est me acompanhando at aqui, sente e respire fundo, pois nada disso vale para o grub. Para "simplicar", os desenvolvedores decidiram adotar uma nomenclatura prpria, onde os HDs e parties so nomeados a partir do zero. Ou seja, o "/dev/hda1"ou /dev/sda1 referenciado na congurao do grub como "(hd0,0)"(primeiro HD, primeira partio). O "(hd0,2)"do exemplo seria referente terceira partio do primeiro HD, ou seja, faria referncia ao "/dev/hda3"ou /dev/sda3. Em resumo, na nomenclatura adotada pelo grub temos:

/ dev / hda =

Linux System Administration

Pgina 5

16.1 Introduo Terica

4Linux www.4linux.com.br

2 3 4

/ dev / hdb = 1 / dev / hdc = 2 / dev / hdd = 3

As parties dentro de cada HD so tambm nomeadas a partir do zero:

1 2 3 4 5 6

/ dev / hda1 ou / dev / sda1 = / dev / hda2 ou / dev / sda2 = / dev / hda3 ou / dev / sda3 = / dev / hda4 ou / dev / sda4 = / dev / hda5 ou / dev / sda5 = / dev / hda6 ou / dev / sda6 =

, ,1 ,2 ,3 ,4 ,5

Para o grub esta distino entre hds no existe. O "/dev/sda1"continua sendo "(hd0,0)"dentro do grub. O que acontece ento se voc tiver um HD IDE e outro SATA na mesma mquina? Bem, a depende de como eles estiverem congurados dentro do setup. O HD "primrio", ou seja, o que o BIOS acessa primeiro na hora de carregar o sistema, ser visto como "(hd0)", independentemente de ser SATA ou IDE, enquanto o outro ser visto como "(hd1)". Uma forma de conrmar isso checar o contedo do arquivo "/boot/grub/device.map" (com o sistema j instalado). Ele contm uma lista dos HDs detectados pelo grub, e o endereo atribudo a cada um. Agora que entendemos como o grub nomeia os HDs e parties, podemos ir ao que interessa, ou seja, entender como funcionam as mltiplas sees do grub, que permitem carregar cada sistema operacional. No exemplo, o HD est congurado da seguinte forma:

/ dev / sda1 : CentOS

Pgina 6

Linux System Administration

4Linux www.4linux.com.br

16.1 Introduo Terica

2 3

/ dev / sda2 : Windows / dev / sda3 : Debian

Esta congurao vem bem a calhar, pois permite explicar os casos mais comuns, ou seja, a seo referente ao CentOS, ao Windows e referente a outras distribuies Linux, no caso o Debian. Vamos comear com a seo do CentOS:

1 2 3 4

title CentOS root ( hd , ) kernel / vmlinuz -2.6.32 -71. el6lx86_64 ro root =/ dev / VolGroup / lv_root initrd / initramfs -2.6.32 -71. el6lx86_64

A linha "title" contm apenas o nome do sistema, da forma como ele ir aparecer na tela de boot. No preciso que o nome indique corretamente o sistema, voc pode usar apelidos, o importante apenas que um sistema receba um apelido diferente do outro. A linha "root" logo a seguir, indica a localizao do /boot (no formato do grub), ou seja, onde o sistema est instalado. Como o CentOS neste caso est instalado na primeira partio do HD, usamos "(hd0,0)". A terceira linha, "kernel", indica o arquivo com o kernel, que ser carregado no incio do boot. O Kernel vai sempre dentro da pasta "/boot"e o arquivo tem o nome padro de "vmlinuz", seguido da verso, como "vmlinuz-2.6.32-71.el6lx86_64". Alm de indicar a localizao do arquivo, voc pode incluir opes que sero passadas para ele no incio do boot, por exemplo: "acpi=off", "vga=791"e assim por diante. A opo de acpi=off desabilita o gerenciador de energia acpi, j a opo vga=791 indica a resoluo de vdeo que ser usada no terminal. O nmero "791"indica 1024x768, "788"indica 800x600 e se voc substituir o nmero pela palavra "normal", o terminal passa a usar a resoluo de texto padro, como nos monitores CGA ;).

Linux System Administration

Pgina 7

16.1 Introduo Terica

4Linux www.4linux.com.br

Usando "vga=normal"o bootsplash exibido durante o carregamento do sistema tambm deixa de funcionar. Finalmente, temos a linha "initrd", que opcional, permitindo indicar a localizao de um arquivo initrd, que ser carregado junto com o Kernel. O initrd nem sempre usado. Quando necessrio, ele gerado durante a instalao, incluindo mdulos de que o sistema precisar no incio do boot. Se ele no estiver dentro da pasta "/boot"junto com o Kernel, no precisa se preocupar, pois ele no est sendo usado. Em seguida temos a seo referente ao Windows:

1 2 3 4

title Microsoft Windows root ( hd ,2) makeactive chainloader +1

O Windows um caso especial, pois ele no carregado diretamente pelo grub. Em vez disso ele inicializado em um modo chamado de "chainload", onde o grub simplesmente carrega o gerenciador de boot do Windows (que instalado dentro da partio) e deixa que ele se encarregue de inicializar o sistema. Isso indicado pela linha "chainloader +1". Isto simplica as coisas, pois voc precisa apenas indicar um nome ou apelido na linha "title"e indicar a partio onde ele est instalado na linha "root". No nosso exemplo, o Windows est instalado na terceira partio do HD, por isso o "(hd0,2)". A opo "makeactive" marca a partio do Windows como ativa, uma congurao que necessria ao inicializar o Windows 95/98/ME, onde ainda utilizado o MSDOS na fase inicial do boot. Ela no mais necessria no XP ou no Vista, mas, como tambm no atrapalha, comum que ela continue sendo usada. Concluindo, temos a seo referente ao Debian, que pode ser usada (com as devidas modicaes) tambm para outras distribuies Linux instaladas no HD:

Pgina 8

Linux System Administration

4Linux www.4linux.com.br

16.1 Introduo Terica

1 2 3 4

title Debian GNU / Linux ( testing / unstable ) root ( hd ,3) kernel / boot / vmlinuz -2.6.18 ro quiet vga =791 initrd / boot / initrd . img -2.6.18

Esta seo muito similar seo do CentOS, que vimos a pouco. O Debian neste caso est instalado na quarta partio, que no grub vista como "(hd0,3)". O importante indicar corretamente o arquivo com o Kernel, dentro da partio e o initrd (caso exista).

Voc poderia duplicar estas quatro linhas para incluir outras distribuies. Bastaria alterar a partio dentro da linha "root"e indicar corretamente o arquivo do Kernel e o initrd que seriam usados.

Embora seja um tema um pouco chato de estudar, importante conhecer pelo menos o bsico sobre a congurao do grub, pois ele usado atualmente em praticamente todas as distribuies, de forma que um conhecimento que voc vai acabar usando bastante.

Continuando, a congurao feita no arquivo "/boot/grub/menu.lst" lido pelo grub a cada boot, por isso voc no precisa se preocupar em regravar o grub a cada alterao no arquivo, como no caso do lilo. Em geral, voc s precisa regravar o grub em caso de acidentes, como quando ele subscrito acidentalmente, ao reinstalar o Windows ou instalar outra distribuio no mesmo HD.

No caso das distribuies, Linux, quase sempre voc tem a opo de instalar gravando o gerenciador de boot na partio, o que permite reinstalar sem subscrever o grub "titular". Aqui, por exemplo, temos um screenshot do instalador do Ubuntu:

Linux System Administration

Pgina 9

16.1 Introduo Terica

4Linux www.4linux.com.br

O problema o Windows, j que ele chega "chutando o balde", gravando seu gerenciador de boot na MBR sem nem te consultar. Isto acaba se revelando um grande problema, j que voc perde o acesso ao Linux instalado no HD sempre que precisar reinstalar o Windows. Nestes casos, voc pode regravar o grub dando boot com um live CD do linux. D boot pelo CD e abra um terminal como root. A partir da, use o comando "grub"para entrar no prompt do grub, onde usaremos os comandos para regravar o gerenciador de boot:

# grub

Dentro do prompt, precisamos rodar dois comandos, especicando a partio onde o CentOS (ou a distribuio "dona"do grub) est instalada e o dispositivo onde o grub ser instalado. Comece rodando o comando "root", que especica a partio de instalao do sistema. No exemplo, o CentOS est instalado no "(hd0,0)", de forma que o comando ca:

Pgina 10

Linux System Administration

4Linux www.4linux.com.br

16.1 Introduo Terica

grub > root ( hd , )

Falta agora o comando "setup", que especica aonde o grub ser gravado. Neste caso, estou gravando o grub na MBR do primeiro HD:

grub > setup ( hd )

Terminando, voc pode sair do prompt do grub usando o "quit"e reiniciar o micro. Este um exemplo de operao que mais simples no grub. No lilo, era necessrio montar a partio e abrir um chroot para conseguir regravar o gerenciador :). Mais um problema comum acontece quando voc precisa congurar o grub numa mquina com vrios HDs. Nestes casos, alm de vericar como o grub detectou cada um, voc precisa se preocupar em gravar o grub no MBR do HD correto. O problema muito simples. Quando voc possui mais de um HD na mquina, voc congura uma ordem de boot no Setup do micro. O HD que estiver em primeiro na ordem de boot do setup, ser usado para inicializar a mquina e, consequentemente ser reconhecido pelo grub como "(hd0)". Se voc instalar o CentOS no segundo HD, e o grub for instalado na MBR do segundo HD, o CentOS no vai inicializar depois de instalado, pois o BIOS do micro continuar lendo o MBR do primeiro HD. A soluo no caso bem simples. Mesmo que voc instale o CentOS, ou qualquer outra distribuio no segundo HD, tome sempre o cuidado de gravar o grub no MBR do primeiro HD. Se voc est instalando o Debian (por exemplo), na partio /dev/sdb1 (a primeira partio do segundo HD) o "root", ou seja, o dispositivo aonde o sistema est sendo instalado ser "(hd1,0)", mas na hora de gravar o grub, voc indicaria o "(hd0)", que o primeiro HD. Ao fazer isso manualmente pelo prompt do grub, voc usaria os comandos:

Linux System Administration

Pgina 11

16.1 Introduo Terica

4Linux www.4linux.com.br

1 2 3 4

# grub grub > root ( hd1 , ) grub > setup ( hd ) grub > quit

Note que isto necessrio apenas ao regravar o grub manualmente. Outra pegadinha que quando voc tem uma instalao do Windows no segundo HD (hd1,0 no grub), como em situaes onde voc compra outro HD para instalar Linux e instala o HD com o Windows como secundrio, necessrio adicionar duas linhas na seo do grub referente ao Windows. Elas fazem com que a posio lgica dos dois HD seja trocada, fazendo com que o Windows pense que est inicializando a partir do primeiro. Sem isso, voc tem um erro de "partio invlida"durante o boot e o Windows no carregado. Ao adicionar as duas linhas, a seo referente ao Windows caria:

1 2 3 4 5 6

title Windows root ( hd1 , ) makeactive chainloader +1 map ( hd1 ) ( hd ) map ( hd ) ( hd1 )

16.1.2 Segurana no grub


Para melhorarmos nossa segurana local, uma boa seria colocar senha no grub, ento vamos fazer melhor, iremos colocar uma senha criptografada nele:

1 2

# / sbin / grub - md5 - crypt $1$q ZwgzZO$BMy4amrK53Q 1oRLg . W166ivy

Pgina 12

Linux System Administration

4Linux www.4linux.com.br

16.2 GRUB2 (Padro Debian)

Aps digitarmos nossa senha ela criptografada em md5, a basta copi-la e editar o arquivo /boot/grub/menu.lst. Adicione no comeo do arquivo a seguinte linha:

password -- md5 \ $1 \ $q ZwgzZO \ $BMy4amrK53Q 1oRLg . W166ivy

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 para ganhar poderes de root sem saber a senha.

16.2 GRUB2 (Padro Debian)


Este o bootloader padro no Debian Squeeze. Na inicializao do computador o GRUB2 apresenta o menu e espera a atuao do usurio dentro do tempo xado ou transfere automaticamente o controle para o sistema operacional. GRUB2 um software Open Source. Ele descendente do GRUB (GRand Unied Bootloader). Foi completamente reescrito para dar ao usurio exibilidade e performance signicativamente aumentadas.

16.2.1 Melhorias
As melhorias em relao ao GRUB incluem : - apoio de scripts - mdulo de carregamento dinmico - modo de recuperao - menus personalizados - temas - suporte ao menu grco - imagens iso de Live CD de

Linux System Administration

Pgina 13

16.2 GRUB2 (Padro Debian)

4Linux www.4linux.com.br

boot diretamente do disco rgido - nova estrutura de arquivos de congurao - sem suporte a plataforma x-86 (tal como PowerPc) - suporte universal a UUIDs

16.2.2 GRUB vs GRUB2


O menu do GRUB2 parecer familiar aos usurios do Grub mas h muitas diferenas internamente. - pressione a tecla SHIFT para mostrar o menu durante o boot (no GRUB legacy formalmente ESC). - /boot/grub/menu.lst do GRUB legacy foi substituido por /boot/grub/grub.cfg no GRUB2.

no h "/nd boot/grub/stage1"no prompt do grub. Stage 1.5 foi eliminado

o principal arquivo de menu /boot/grub/grub.cfg no para ser editado mesmo pelo root.

grub.cfg sobrescrito sempre que houver uma atualizao, um kernel for adicionado/removido ou o usurio executar update-grub.

o usurio pode criar um arquivo personalizado em /etc/grub.d/40_custom com suas prprias entradas. Esse arquivo no ser sobrescrito.

o arquivo de congurao principal para alterar as conguraes do menu o /etc/default/grub.

existem vrios arquivos para congurar o menu - /etc/default/grub mencionado acima e todos os arquivos da pasta /etc/grub.d/.

mudou a numerao das parties. A primeira partio agora 1 em vez de 0. O primeiro dispositivo no entanto continua 0 (no mudou).

Pgina 14

Linux System Administration

4Linux www.4linux.com.br

16.2 GRUB2 (Padro Debian)

buscas automticas para outros sistema operacionais como Windows sempre que update-grub executado. nenhuma mudana na congurao dos arquivos acontecer at que o comando update-grub seja executado.

16.2.3 Hierarquia de arquivos e diretrios


/boot/grub/grub.cfg o que mais se assemelha ao /boot/grub/menu.lst do GRUB mas diferentemente desse o grub.cfg no se destina a ser editado. Cada seo claramente delimitada com (### BEGIN) e a referncia do arquivo na pasta /etc/grub.d a partir da qual a informao foi gerada. grub.cfg atualizado executando o comando update-grub e automaticamente modicado quando h uma atualizao ou instalao/remoo de kernel. Por padro, e sempre que o comando update-grub executado, este arquivo feito somente leitura. Isto porque a inteno que o arquivo no seja editado manualmente. O usurio tambm ver uma innidade de arquivos *. mod na pasta /boot/grub. Esses arquivos so da natureza modular do GRUB 2 e so carregados necessariamente pelo GRUB 2. /etc/default/grub Esse arquivo pode ser editado e congurado. Detalhes da congurao esto mais adiante em Congurando GRUB 2. /etc/grub.d/ (diretrio) Os arquivos nessa pasta so lidos durante a execuo do comando update-grub e

Linux System Administration

Pgina 15

16.2 GRUB2 (Padro Debian)

4Linux www.4linux.com.br

suas instrues so incorporadas ao /boot/grub/grub.cfg. A colocao dos tens de menu no grub.cfg determinada pela ordem em que os arquivos so executados nessa pasta. Arquivos com numeral no incio so executados primeiro comeando pelo menor. 10_linux executado antes de 20_mentest que executado antes de 40_custom. Entradas personalizadas podem ser criadas no arquivo 40_custom ou outro recm criado. Somente arquivos executveis geram sada para o grub.cfg durante a execuo do update-grub. Os arquivos default nesta pasta so : - 00_header: suas conguraes normalmente so importadas de informaes do /etc/default/grub e os usurios no precisam mudar esse arquivo. - 05_debian_theme : congura splash image, cor do texto, cor de realce e tema. Na ausncia de splash image esse arquivo congura um tema monocromtico para o menu inicial. - 10_hurd : no usada. - 10_linux : localiza kernels no root device para o sistema operacional em uso. Leva essa informao e estabelece os nomes apresentados no menu para estes kernels. - 20_memtest86+ : procura por /boot/memtest86+.bin e o inclue como opo no menu do GRUB 2. No h opo para remover essa entrada do menu.Pode ser inibido removendo o executvel desse arquivo sudo chmod -x /etc/grub.d/20_memtest86+ e executando depois update-grub. - 30_os-prober : procura por Linux e outros sistemas operacionais.Resultados so colocados no grub.cfg baseando-se nos scripts desse arquivo. O arquivo dividido

Pgina 16

Linux System Administration

4Linux www.4linux.com.br

16.2 GRUB2 (Padro Debian)

em 4 sees representando os tipos de sistemas operacionais manipulados pelos scripts : Linux, Windows, OSX e Hurd. Variveis nesse arquivo determinam o formato dos nomes exibidos no /boot/grub/grub.cfg e no menu do GRUB 2. Usurios familiarizados com scripts bsico podem alterar essas variveis e mudar o formato das entradas de menu exibidas. Alternativamente o usurio pode inserir uma entrada no /etc/default/grub a qual desativa esse script. 40_custom : Para adicionar entradas de menu personalizado que sero inseridas no grub.cfg depois de update-grub. Mais informaes sobre esse arquivo na parte de congurao.

16.2.4 Congurao

Alteraes na congurao so normalmente feitas em /etc/defaul/grub e nos arquivos da pasta /etc/grub.d. O arquivo /boot/grub/grub.cfg no deve ser editado pelo usurio; mudanas nesse arquivo so feitas pelos scripts de congurao. Algumas das alteraes mais comuns como OS/kernel default, menu timeout podem ser feitas pelo StartUp-Manager. O Arquivo /etc/default/grub o principal arquivo de congurao para alterar as conguraes padro. Aps a instalao as seguintes linhas podem ser alteradas pelo usurio : - GRUB_DEFAULT Congura a entrada padro do menu. Entradas podem ser numricas ou saved (ltima usada).

Linux System Administration

Pgina 17

16.2 GRUB2 (Padro Debian)

4Linux www.4linux.com.br

- GRUB_DEFAULT=0 Congura a entrada default pela posio. Como no GRUB a primeira entrada zero, a segunda 1, etc, - GRUB_DEFAULT=saved Dene a entrada de menu padro com o que foi selecionado anteriormente (a ltima seleo). Se o menu exibido durante a inicializao, a ltima entrada selecionada ser realada. Se nenhuma ao for tomada, esta seleo ser iniciada no nal do tempo limite ou se o menu est oculto. - GRUB_DEFAULT=xxxx Uma entrada de menu exata, incluida entre aspas, tambm pode ser usada. Neste caso, a localizao no menu no importa. Exemplo: GRUB_DEFAULT=Debian Squeeze - GRUB_TIMEOUT= Congura o tempo. - GRUB_HIDDEN_TIMEOUT=0 O menu car oculto. - GRUB_HIDDEN_TIMEOUT=0 O menu no ser oculto - GRUB_HIDDEN_TIMEOUT_QUIET=true true = nenhuma contagem regressiva exibida. A tela car em branco. false = Um contador ser exibido numa tela em branco durante o tempo do GRUB_HIDDEN_TIMEOUT. - GRUB_GFXMODE=640480 Descomente essa linha para mudar a resoluo. Ela fornece resolues suportadas pela placa de vdeo do usurio (640480, 800600,

Pgina 18

Linux System Administration

4Linux www.4linux.com.br

16.2 GRUB2 (Padro Debian)

12801024, etc). aplica-se apenas a resoluo do menu de boot.

Dica: Denindo a mesma resoluo do sistema operacional o tempo de inicializao diminuir ligeiramente.

Embora no seja necessrio, o usurio tambm pode especicar a cor BitDepth anexando-o congurao da resoluo. Um exemplo seria 1280x1024x24 ou 640x480x32. O usurio tambm pode adicionar vrias resolues. Se o GRUB2 no pode usar a primeira entrada, ela ir tentar o prximo ajuste. As conguraes so separadas por uma vrgula. Exemplo: 1280x1024x16, 800x600x24, 640480. Se utilizar uma splash image, certique-se que a congurao da resoluo e do tamanho da imagem so compatveis. Se estiver usando uma entrada que produz uma mensagem no encontrado ao executar update-grub, tente adicionar ou alterar a cor BitDepth. Se esta linha est comentada (#) ou a resoluo no est disponvel o GRUB 2 usa a congurao padro determinada pelo /etc/grub.d/00_header. - GRUB_DISABLE_LINUX_RECOVERY=true Adicione ou descomente essa linha se no desejar o Recovery mode no menu. Recovery mode para apenas um kernel, fazer uma entrada especial em /etc/grub/40_custom.

16.2.5 Entradas personalizadas


GRUB2 permite ao usurio criar selees de menus personalizados que sero automaticamente adicionados ao menu principal quando o comando update-grub exe-

Linux System Administration

Pgina 19

16.2 GRUB2 (Padro Debian)

4Linux www.4linux.com.br

cutado. Um arquivo 40_custom vazio est disponvel em /etc/grub.d/ para uso ou para servir de exemplo para criar menus personalizados. Aqui esto algumas consideraes para menus personalizados:

O nome do arquivo determina a ordem das selees no menu. Nomes numrico so executados primeiro, seguido por nomes alfabticos.

Entrada 10_linux aparecer antes de 30_os prober, que ser colocado antes de entradas 40_custom, que ir preceder my.custom.entries.

O usurio que desejar que as suas entradas de menu personalizado apaream em primeiro lugar no menu principal pode nomear a pasta para 06_xxx que suas listas estaro em primeiro lugar no menu.

O arquivo deve ser feito executvel :

# chmod + x / etc / grub . d / filename

O contedo desse arquivo adiconado ao grub.cfg sem alteraes quando o comando update-grub executado.

Ao contrrio do grub.cfg, arquivos personalizados podem ser editados a qualquer momento, no so s leitura, e podem ser propriedade do usurio, se ele desejar. Os arquivos personalizados so estticos. O contedo no ser alterado, quando novos kernels so adicionados ou removidos.

Se o arquivo personalizado coloca as entradas no topo do grub.cfg, o usurio poder conrmar no /etc/default/grub (DEFAULT= x) aps executar update-grub. Certiquese se ainda aponta para a entrada de menu desejada. Para contar, a primeira entrada do menu no arquivo /etc/default/grub 0.

Pgina 20

Linux System Administration

4Linux www.4linux.com.br

16.2 GRUB2 (Padro Debian)

16.2.6 Criando menus personalizados


O usurio pode editar o arquivo default /etc/grub.d/40_custom ou criar um novo. A maneira mais fcil de criar o contedo de um menu personalizado copiar uma entrada do /boot/grub/grub.cfg. Depois de copiado, o contedo do 40_custom pode ser adaptado a vontade do usurio. De acordo com o arquivo personalizado padro da amostra (etc/grub.d/40_custom/) as duas primeiras linhas de um arquivo personalizado em /etc/grub.d devem ser:

1 2

# !/ bin / sh exec tail -n +3 $

podem ser copiadas entradas de menu existente no arquivo boot/grub/grub.cfg ou de um arquivo do GRUB legacy. Se for copiado do arquivo menu.lst do GRUB legacy:

uma cpia de backup deste arquivo pode estar na pasta /boot/grub se o usurio atualizou do GRUB para GRUB 2.

as seguintes entradas do menu do GRUB legacy devem ser mudadas :

title mudado para menuentry. A linha deve terminar com ({)

root muda para set root=

kernel passa a ser linux

qualquer designao de parties (sda4, sdb6) deve ser mudada porque no GRUB legacy a primeira partio 0 e no GRUB2 1 (o primeiro disco continua sendo 0 igual ao GRUB legacy).

Linux System Administration

Pgina 21

16.2 GRUB2 (Padro Debian)

4Linux www.4linux.com.br

16.2.7 Regras para construo de menuentry


a primeira linha inicia com menuentry e termina com ({) o que est entre aspas o que vai aparecer no menu do GRUB 2. Edite como desejar a ltima linha do menuentry deve ser (}) no deixe espaos em branco no m das linhas a linha set root= deve apontar para a localizao de inicializao do GRUB2 (sdXY) referncia root da linha Linux dever apontar para a partio do sistema.

Dica : Se GRUB 2 no encontra o kernel referenciado, tente substituir a UUID pelo nome do dispositivo (exemplo: / dev/sda6).

Exemplo de menuentry :

1 2 3 4 5 6 7 8 9

# ## BEGIN / etc / grub . d /1 _linux ### menuentry " Debian Squeeze , Linux 2.6.31 -15 - generic " { recordfail =1 if [ -n $ { have_grubenv } ]; then save_env recordfail ; fi set quiet =1 insmod ext2 set root =( hd , ) search -no - floppy -fs - uuid - set 2229 d2e -82 c9 -48 d5 -92 c1 - ce138634eedc linux / boot / vmlinuz -2.6.31 -15 - generic root = UUID =2229 d2e -82 c9 -48 d5 -92 c1 - ce138634eedc ro vga =789 quiet splash

Pgina 22

Linux System Administration

4Linux www.4linux.com.br

16.2 GRUB2 (Padro Debian)

10 11 12 13 14 15 16

initrd / boot / initrd . img -2.6.31 -15 - generic } # Essa uma entrada de exemplo para uma parti o com Windows : menuentry " Windows Vista " { set root =( hd ,2) chainloader +1 }

16.2.8 Congurando fonte e cores

Estas linhas esto contidas em /etc/grub.d/05_debian_theme. A cor denida pela linha abaixo. A primeira cor a cor do texto, a segunda a cor de fundo.

set color \ _normal = black / black

O cdigo abaixo dene a cor de entradas selecionadas. A primeira cor a cor do texto em destaque, a segunda a cor de fundo da linha selecionada. Se black a segunda entrada, a linha de destaque ser transparente e apenas o texto mudar de cor.

set color_highlight = magenta / black

O black a cor de transparncia GRUB2 padro . Altere apenas a cor do primeiro (ou seja, xxxxx /black), se utilizar uma imagem de splash. Se o segundo valor nesta linha alterada para uma cor diferente de black a imagem splash ser escondida atrs de um fundo de cor slida.

Linux System Administration

Pgina 23

16.2 GRUB2 (Padro Debian)

4Linux www.4linux.com.br

16.2.9 Segurana no grub2


Para melhorarmos nossa segurana local, uma boa seria colocar senha no grub2, ento vamos fazer melhor, iremos colocar uma senha criptografada nele, para isso temos que gerar uma senha criptografada:

1 2 3 4 5 6 7 8

# ( echo 123456 ; echo 123456) | grub - mkpasswd - pbkdf2 Enter password : Reenter password : Your PBKDF2 is grub . pbkdf2 . sha512 .1 .1 CCB58AE691A2 A26872A5 FF5D ED4D1C872F8B3366548C3AA23F1B735B5CB6498B672835C7A1FD3D1 E3E8E8677776 D71658264789132F72B 8E66A4224FCD . C6B51DB 3F8665FD6B 8 EDF5 2DBAD2A2 F3F1992FC878C3CDAE11E4AF82C6EA74A19469A7FB4C7F96275FA7DF3834EB7 7 EE D9FFAEBC9C84ADB9D272 52A7

Onde : (echo 123456 ;echo 123456) 123456 a senha, caso no queira passar a senha no comando execute diretamente e preencha o prompt com a senha quando for solicitado:

# grub - mkpasswd - pbkdf2

Aps digitarmos nossa senha ela criptografada em sha512, a basta copi-la e editar o arquivo /etc/grub.d/00_header. Adicione no nal do arquivo a seguinte linha:

1 2 3 4 5 6

# vim / etc / grub . d / cat << EOF

_header

set superusers = " user " password_pbkdf2 user grub . pbkdf2 . sha512 .1 3 E 599CE6E39DD22EE5713816D155D F89EABCDBF .393 F191284EF 57DEB6DDE9534 1 E4575DCFFE4D939635CFDDF63E254B86F DB4 9C EE6723691D24C BB7

Pgina 24

Linux System Administration

4Linux www.4linux.com.br

16.3 Colocar Imagem no Grub2

7 8 9

.8 37149 B1F 45 4F84E 191 F77C54E1 CF85EOF

C56D86816D3859ED7DD557CBEEBD2F95

B5177CCC5C5947559 92C4A532 E7 B8AA 7C81EEAE37711763589D525

Atualize o grub2:

update - grub

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 para ganhar poderes de root sem saber

16.3 Colocar Imagem no Grub2


Para colocar uma imagem no grub2 bem simples basta ter uma imagem valida, JPEG, PNG, TGA e JPG, e passar o seu caminho dentro de um arquivo e ja esta pronto. Vamos a prtica, dentro do diretrio home tem uma imagem jpeg, dexter.jpeg, vamos colocar ela no grub. Copie a imagem para o /boot/grub:

cp / root / dexter . jpeg / boot / grub

Entre no arquivo 05_debian_theme na linha 146 e mude a imagem padrao do grub para a nova:

1 2 3 4

# vim +146 / etc / grub . d / 5 _debian_theme Na linha onde ANTES

Linux System Administration

Pgina 25

16.4 Atualizando novas entradas no menu

4Linux www.4linux.com.br

5 6 7 8 9 10 11 12 13

145 set_background_image " $ { WALLPAPER } " " $ { COLOR_NORMAL } " " $ { COLOR_HIGHLIGHT } " | grub . png " || 147 set_default_theme DEPOIS 145 set_background_image " $ { WALLPAPER } " " $ { COLOR_NORMAL } " " $ { COLOR_HIGHLIGHT } " | 147 set_default_theme | 146 set_background_image " / boot / grub / dexter . jpeg " || | 146 set_background_image " / usr / share / images / desktop - base / desktop -

Pronto, agora basta atualizar o grub, ja vai estar valendo:

# update - grub2

16.4 Atualizando novas entradas no menu


Execute o comando para inserir o novo kernel no arquivo de congurao do GRUB ou edite-o na mo:

# update - grub2

OU

# vi / boot / grub / grub . cfg

Pgina 26

Linux System Administration

4Linux www.4linux.com.br

16.4 Atualizando novas entradas no menu

1 2 3 4 5 6 7 8

menuentry Debian GNU / Linux , with Linux 2.6.32 -5 -686 -- class debian -- class

gnu - linux -- class gnu -- class os { 2 3 4 5 6 7 insmod part_msdos insmod ext2 set root = ( hd , msdos2 ) search --no - floppy --fs - uuid -- set 897 34 d - ac56 -461 b -815 a -2388 f9bdadd3 linux initrd / vmlinuz -2.6.32 -5 -686 root = UUID =661 d7f7c -3 bfc -4 b9e quiet / initrd . img -2.6.32 -5 -686 - b6d3 -9 c56cda87d3a ro

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 2 3

# update - grub ou # update - grub2

Linux System Administration

Pgina 27

16.4 Atualizando novas entradas no menu

4Linux www.4linux.com.br

# grubby -- title = CentOS -- add - kernel =/ boot / vmlinuz -3.2.1 -2 111225 c1 -- initrd =/ boot / initrd . img -2 111225 c1 -- args =" root =/ dev / VolGroup / lv_root "

Pgina 28

Linux System Administration