You are on page 1of 119

ou diversos arquivos, na realidade est realizando dois

4451 procedimentos distintos: Empacotar


Linux System Administration e comprimir.
Em ambientes Unix-like, essas duas tarefas so realizadas de
www.4linux.com.br forma logicamente
distintas.
Contedo O programa tar, cujo nome deriva de tape archiver, realiza a
Compactadores, Empacotadores e Procedimentos de Backup 2 tarefa de concatenar
2.1 Introduo Terica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 todos os arquivos e diretrios preservando as informaes do
2.2 O empacotador cpio . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 filesystem, isto
2.3 O empacotador tar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 , seus meta-dados.
2.4 Compactadores GZIP, BZIP2 . . . . . . . . . . . . . . . . . . . . . . . . 12 Criado com propsito de backup em dispositivos de acesso
2.4.1 Gzip e Bzip2 com Arquivos de Texto . . . . . . . . . . . . . . . . 14 sequencial (unidades
2.4.2 Gzip e Bzip2 com Arquivos Binrios . . . . . . . . . . . . . . . . 16 de fita), o tar utilizado hoje em dia como uma ferramenta de
2.5 Comando dd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 empacotamento,
2 podendo ser utilizado em conjunto com compactadores como gzip
ou bzip2.
Compactadores, 3
2.1 Introduo Terica 4Linux www.4linux.com.br
Empacotadores e A utilizao da ferramenta tar bastante simples. Seguindo o
filosofia Unix faa
Procedimentos de Backup apenas uma tarefa, mas faa bem feito, o tar um programa
especialista em empacotar
2.1 Introduo Terica vrios arquivos. Dessa forma, quando utilizamos os parmetros z
A compresso e empacotamento de arquivos e diretrios muito ou j estamos
importante em na realidade fazendo uma chamada externa aos comandos gzip
qualquer sistema computacional. Ambos os procedimentos so ou bzip2,
necessrios desde especialistas em compresso de dados.
o ponto de vista de distribuio de softwares, de economia de banda Outros programas que trabalham de forma anloga ao tar so o
e de espao dump e cpio.
de armazenamento, e de backup do sistema. Veremos neste Ambos foram criados com a mesma finalidade, mas so pouco
captulo o principal utilizados hoje em dia,
programa de empacotamento GNU/Linux e os dois principais pois no so to versteis quanto o tar.
compactadores. Este captulo explica muitas coisas sobre compactao e
A forma mais conhecida de realizar compresso e empacotamento empacotamento de arquivos,
em ambiente tudo isso extremamente necessrio quando falamos de backup.
Windows utilizando o programa Winzip. Um programa que Podemos
zipa um arquivo, ter diferentes tipos de backup, so eles:
Incremental - O backup incremental visa salvar apenas as -v -> mostrar o que est fazendo em detalhes
diferenas em relao -u -> sobrescreve arquivos existentes Ento, vejamos os principais
ao ultimo backup completo, por exemplo: Um backup completo grupos de opes
acontece e como utiliz-las. Para empacotar o contedo do diretrio /etc
no domingo. O incremental salvar os dados de domingo para com o cpio
segunda, devemos fazer o seguinte:
de domingo para tera, de domingo para quarta, de domingo para 1 # find /etc | cpio -ov > / backup / pacote . cpio
quinta, de O comando acima empacotar todos os objetos da sada do
domingo para sexta e de domingo para sbado, ou seja, at chegar comando ls /etc. Para
no prximo visualizar seu contedo:
backup completo. 1 # cpio -iv --list < / backup / pacote . cpio
Diferencial -Diferente do incremental, o diferencial, faz apenas os Linux System Administration Pgina 5
incrementos, 2.2 O empacotador cpio 4Linux www.4linux.com.br
assim gerando um volume menor de dados. Se o backup completo Vamos renomear o diretrio /etc para /etc.old :
1 # mv /etc /etc.old
foi gerado
no domingo, ele salva de domingo para segunda, de segunda para Restaure o backup do /etc:
1 # cpio -iv < / backup / pacote . cpio
tera, de 2 # ls /etc
tera para quarta e assim at o prximo backup completo chegar. Adicione arquivos ao pacote.cpio j criado:
Completo - Visa salvar todos os dados, mesmo o que j foram 1 # find / boot | cpio -ov -A -F / backup / pacote . cpio
salvos anteriormente, Para visualizar seu contedo:
assim fazendo um backup completo de todos os objetos em 1 # cpio -iv --list < / backup / pacote . cpio
questo. Adicione um usurio chamado inexistente:
Conhecendo os tipos de backup, vamos conhecer algumas 1 # useradd inexistente
ferramentas que podem Verifique que ele foi criado no arquivo /etc/passwd:
nos ajudar. 1 # tail -n1 /etc/ passwd
Crie o diretrio de backup para os nosso testes: O comando cpio somente volta os arquivos, caso ele no exista ou
Pgina 4 Linux System Administration ele seja mais
4Linux www.4linux.com.br 2.2 O empacotador cpio recente que o atual:
1 # mkdir / backup Pgina 6 Linux System Administration
2.2 O empacotador cpio 4Linux www.4linux.com.br 2.2 O empacotador cpio
O comando cpio empacota arquivos/diretrios, suas principais 1 # cpio -iv < / backup / pacote . cpio
opes so: Verifique que os arquivos no foram alterados, pois as datas so
-i -> extrair backup mais atuais ou as
-o -> criar backup mesmas dos arquivos no pacote:
1 # tail -n1 /etc/ passwd
-t -> mostrar uma tabela com o contedo do backup
-F -> essa opo especifica o arquivo de backup Para forar a restaurao faa:
1 # cpio -iuv < / backup / pacote . cpio
-d -> cria diretrios se necessrio
Verifique que no existe mais o usurio inexistente:
1 # tail -n1 /etc/ passwd -j -> comprime ou extrai arquivos tar resultante com o bzip2;
Remova o arquivo /etc/passwd: -f -> especifica o arquivo tar a ser usado;
1 # rm -f /etc/ passwd -C -> troca de diretrio, para local de armazenamento ou
Restaure apenas o arquivo /etc/passwd: restaurao de dados.
1 # cpio -ivF / backup / pacote . cpio / etc / passwd Vamos empacotar o diretrio /etc e /usr:
Linux System Administration Pgina 7 1 # tar -cvf / backup /etc.tar /etc
2.3 O empacotador tar 4Linux www.4linux.com.br 2 # tar -cvf / backup /usr.tar /usr
2.3 O empacotador tar Verifique o tamanho do pacote usr.tar:
O que os compactadores como gzip e bzip2 no conseguem fazer, o 1 # du -sh / backup /usr.tar
tar (Tape Archives) Podemos utilizar parmetros para reduzir o tamanho do pacote,
faz. Ele um aplicativo capaz de armazenar vrios arquivos em um atravs de compactadores
s. Porm, como gzip e bzip2. Vamos observar o tempo com o comando time e
no capaz de compactar os arquivos armazenados. Como o
possvel notar, o tar tamanho dos dois compactadores para vermos suas vantagens e
serve de complemento para os compactadores e vice-versa. Por desvantagens.
isso, foi criado um Empacotando e compactando com gzip o diretrio /usr:
parmetro no tar para que ambos os programas possam trabalhar 1 # time tar -zcvf / backup /usr . tar .gz / usr
juntos. Assim, o Empacotando e compactando com bzip2 o diretrio /usr:
1 # time tar -jcvf / backup /usr . tar . bz2 / usr
tar "junta"os arquivos em um s e este arquivo, por sua vez, ento
Linux System Administration Pgina 9
compactado por
2.3 O empacotador tar 4Linux www.4linux.com.br
um dos compactadores suportados pelo tar. Podemos observar que o compactador gzip mais rpido que o
O tar tambm consegue gravar a propriedade e as permisses dos bzip2, mas qual
arquivos. Ainda, deles fez a melhor compactao:
consegue manter a estrutura de diretrios original (se houve 1 # du -sh / backup /usr*
compactao com diretrios), O bzip2 faz a melhor compactao, mas em compensao leva um
assim como as ligaes diretas e simblicas. tempo maior que
A sintaxe do TAR : o gzip. Para visualizar o contedo dos pacotes tar faa:
1 tar [par metros ] [-f arquivo ] [-C diret rio ] [ arquivos ...]. 1# tar -tf / backup /usr.tar.gz
Abaixo, segue a lista dos principais parmetros: 2# tar -tf / backup /usr.tar.bz2
-c -> cria um novo arquivo tar; 3# tar -tf / backup /usr.tar
-p -> mantm as permisses originais do(s) arquivo(s); 4# tar -tf / backup /etc.tar
-r -> acrescenta arquivos a um arquivo tar; Para adicionar arquivos ao pacote j criado utilize o parmetro -r,
-t -> exibe o contedo de um arquivo tar; mas somente
-v -> exibe detalhes da operao; possvel em pacotes que ainda no foram compactados: Crie um
-x -> extrai arquivos de um arquivo tar; arquivo chamado
Pgina 8 Linux System Administration aaaaaaaaaaaaaaaaaaa em /etc:
4Linux www.4linux.com.br 2.3 O empacotador tar 1 # touch /etc/ aaaaaaaaaaaaaaaaaaa
-z -> comprime ou extrai arquivos tar resultante com o gzip; Adicione ao tar criado:
1 # tar -rf / backup /etc.tar /etc / aaaaaaaaaaaaaaaaaaa estar ciente dessa conveno ou seja, do algoritmo de compresso.
Visualize: H dois tipos bsicos de compresso, aquele em que no h perdas
1 # tar -tf / backup /etc.tar de informaes
Vamos acessar o diretrio /backup e descompactar o /usr feito com e aquele em que elas ocorrem. Obviamente quando o assunto
gzip: backup de informaes
Pgina 10 Linux System Administration vitais, devemos utilizar algoritmos sem perdas. J em arquivos de
4Linux www.4linux.com.br 2.3 O empacotador tar imagens,
1 # cd / backup
vdeos e udio, h casos que podemos nos dar ao luxo de perdas
2 # tar -zxvf usr.tar.gz
de informaes
Verifique que o pacote compactado foi descompactado no diretrio
em detrimento da qualidade, que em geral praticamente
atual e no na
imperceptvel para os no
raiz:
especialistas da rea.
1 # ls
Para determinar qual vai ser o ponto inicial para descompactar o Os principais programas de compresso que utilizaremos so o
pacote utilize o bzip2 e gzip . O
parmetro -C. Descompacte o pacote feito com bzip2 no diretrio bzip2 utiliza os algoritmos Burrows-Wheeler transform e Huffman
/mnt: coding; j o
1 # tar -jxvf usr.tar.bz2 -C / mnt gzip utiliza os algoritmos LZ77 e Huffman coding. Todos esses
Verifique o diretrio /mnt: algoritmos fazem
1 # ls /mnt parte do grupo dos algoritmos que no ocasionam perdas de dados.
Agora delete o diretrio /etc: A forma de utilizao desses comandos bastante simples. Para o
1 # rm -rf /etc gzip, bzip2,
Volte o backup feito com o tar a partir do diretrio /: basta fornecer o arquivo de entrada que a compresso se dar no
1 # tar xvf etc.tar -C / prprio arquivo.
Verifique: Eis uma diferena entre o tar e esses programas, ele recebe dois
Linux System Administration Pgina 11 argumentos, os
2.4 Compactadores GZIP, BZIP2 4Linux www.4linux.com.br arquivos de entrada e o arquivo de sada, ou seja, aqueles a serem
1 # ls /etc empacotados e
2.4 Compactadores GZIP, BZIP2 comprimidos.
Compresso de dados o processo de codificar a informao de Verifique que no possvel compactar um diretrio sem empacot-
forma que seja possvel lo antes. Tente
armazen-la em um nmero menor de bits. Por exemplo, se Pgina 12 Linux System Administration
definssemos que 4Linux www.4linux.com.br 2.4 Compactadores GZIP, BZIP2
a palavra compresso passaria a ser abreviada por comp, com o gzip e com o bzip2:
1 # gzip etc
estaramos diminuindo
2 # bzip2 etc
o nmero de bits necessrios para armazenar esta apostila. Para determinarmos qual o melhor compactador vamos analisar dois
Entretanto, para que voc pudesse entender o que comp significa tipos de
seria necessrio arquivos: texto puro e binrio. Para isso vamos cri-los.
Crie dois arquivos de texto puro. Abra o arquivo texto1 no editor Determine o intervalo de tempo que leva para descomprimir o
vim e insira uma arquivo texto1.gz:
linha contento os nmeros de 0 a 9: 1 # time gunzip texto1 .gz
1 # vim texto1 Vamos repetir os procedimentos utilizando o bzip2: Determine o
2 0123456789 intervalo de tempo
Ainda dentro do vim, copie essa linha e cole 250.000 vezes e que leva para comprimir o arquivo texto2 com bzip2:
salve o arquivo: 1 # time bzip2 texto2
1 <ESC > Determine o tamanho final do arquivo texto2 aps ser comprimido
2 yy com bzip2:
3 250000 p 1 # ls -lh texto2 .bz2
4 :x! Determine o intervalo de tempo que leva para descomprimir o
Crie uma cpia deste arquivo chamando-a de texto2: arquivo texto2.bz2:
1 # cp texto1 texto2 1 # time bunzip2 texto2 .bz2
Crie um par de arquivos binrios para nossos testes. Utilizaremos Linux System Administration Pgina 15
como base, o 2.4 Compactadores GZIP, BZIP2 4Linux www.4linux.com.br
programa aptitude: 2.4.2 Gzip e Bzip2 com Arquivos Binrios
Linux System Administration Pgina 13 Utilize a tabela tab:comparacao2 para anotar os resultados obtidos
2.4 Compactadores GZIP, BZIP2 4Linux www.4linux.com.br
nos testes com
1 # cp /usr/bin/ aptitude bin1
gzip e bzip em arquivos binrios:
Duplique esse arquivo:
1 # cp bin1 bin2
Determine o intervalo de tempo que leva para comprimir o arquivo
Verifique que foram criados quatro arquivos com tamanhos bin1 com gzip:
1 # time gzip bin1
parecidos, aproximadamente
Determine o tamanho final do arquivo bin1 aps ser comprimido
2.4MB, sendo dois deles binrios e dois texto puro:
1 # ls -lh bin* texto *
com gzip:
1 # ls -lh bin1 .gz
2.4.1 Gzip e Bzip2 com Arquivos de Texto Determine o intervalo de tempo que leva para descomprimir o
Utilize a tabela tab:comparacao1 para anotar os resultados obtidos arquivo bin1.gz:
nos testes com 1 # time gunzip bin1 .gz
gzip e bzip em arquivos de texto puro: Vamos repetir os procedimentos utilizando o bzip2: Determine o
Vamos iniciar os testes com os arquivos texto. intervalo de tempo
Determine o intervalo de tempo que leva para comprimir o arquivo que leva para comprimir o arquivo bin2 com bzip2:
texto1 com 1 # time bzip2 bin2
gzip: Determine o tamanho final do arquivo bin2 aps ser comprimido
Pgina 14 Linux System Administration com bzip2:
4Linux www.4linux.com.br 2.4 Compactadores GZIP, BZIP2 Pgina 16 Linux System Administration
1 # time gzip texto1 4Linux www.4linux.com.br 2.5 Comando dd
Determine o tamanho final do arquivo texto1 aps ser comprimido 1 # ls -lh bin2 .bz2
com gzip:
1 # ls -lh texto1 .gz
Determine o intervalo de tempo que leva para descomprimir o
arquivo bin2.bz2: Backup com ferramentas XFS
1 # time bunzip2 bin2 .bz2
3.1 Introduo Terica
2.5 Comando dd O XFS um sistema de arquivos de alta performance com suporte a
O comando dd tem a capacidade de copiar bit a bit. Segue um journaling, que
exemplo de seu teve origem na plataforma IRIX da SGI. completamente multi-
uso: FAZER PARTIO MENOR E COPIAR processo, e pode
1 # dd if =/ dev/ sda3 of =/ dev/ sda11 suportar grandes sistemas de arquivos com atributos estendidos,
O comando acima efetuar a clonagem da partio sda3, para a tamanho de blocos
partio sda11. varivel. O XFS baseado em extents e utiliza bem o uso de Btrees
Cuidado com o comando dd, qualquer falta de ateno pode (diretrios,
danificar o sistema, extenses, e espao livre) para ajudar no ganho de performance e
de forma irrecupervel. escalabilidade.
Onde:
if=/dev/sda3 3.2 Gerenciando backup em parties XFS
O nome do arquivo de entrada. Existem diversas ferramentas para gerenciar parties do tipo XFS,
of=/dev/sda11 em nossa pratica
Linux System Administration Pgina 17 vamos manipular a aplicao do sistema de arquivos, backup e
restore no sistema
4451 de arquivos XFS. Antes de usar os comandos prepare sua infra
adicionando um novo
Linux System Administration disco para o backup. Um novo disco sera usado em /dev/sdb para
www.4linux.com.br as tarefas, sendo
que a primeira partio /dev/sdb1 deve conter 2GB e a segunda
Contedo 6GB:
Backup com Ferramentas XFS 2 Aplicando sistema de arquivos XFS
3.1 Introduo Terica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 O comando mkfs.xfs usado para aplicar sistema de arquivos XFS
3.2 Gerenciando backup em parties XFS . . . . . . . . . . . . . . . . . . 3 em uma partio.
3.3 Gerar backup com xfsdump . . . . . . . . . . . . . . . . . . . . . . . . . 4 O comando tambm pode ser usado com a flag -t como em mkfs -t
3.4 Restaurando backup com xfsrestore . . . . . . . . . . . . . . . . . . . . 8 xfs.
3.5 Criar e Restaurar Backup Remoto . . . . . . . . . . . . . . . . . . . . . 9 3
Agendamento de Tarefas 12 3.3 Gerar backup com xfsdump 4Linux www.4linux.com.br
1 # mkfs .xfs /dev/ sdb1
3.6 Introduo Terica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 2 Ou
3.6.1 Agendamento de Tarefas com AT . . . . . . . . . . . . . . . . . 15 3 # mkfs -t xfs /dev/ sdb2
3.6.2 Agendando Tarefas com o CRON . . . . . . . . . . . . . . . . . 19 Como a partio j possui o sistema de arquivos XFS, crie o ponto
3.6.3 Restringindo o uso do crontab . . . . . . . . . . . . . . . . . . . 24 de montagem,
2 monte a partio e faa a cpia de novos arquivos.
1 # mkdir / media /xfs 15 xfsdump : level 0 dump of debian :/ media / xfs
2 # mount -t xfs /dev/ sdb1 / media / xfs 16 xfsdump : dump date : Thu Apr 26 16:05:12 2012
3 # cp -R /var / media /xfs 17 xfsdump : session id: ce153353 -0 d33 -4 fc5 -aa88 -10274 eeaff4b
18 xfsdump : session label : " backup "
3.3 Gerar backup com xfsdump 19 xfsdump : ino map phase 1: constructing initial dump list
O comando xfsdump utilizado para fazer backup de arquivos com 20 xfsdump : ino map phase 2: skipping (no pruning necessary )
seus atributos 21 xfsdump : ino map phase 3: skipping ( only one dump stream )
em um sistema de arquivos. O xfsdump examina os arquivos e 22 xfsdump : ino map construction complete
determina quais 23 xfsdump : estimated dump size : 171053504 bytes
precisam ser salvos (backup), e copia esses arquivos para um disco 24
especificado, 25 ==================== dump label dialog ====================
como fita magntica ou outra mdia de armazenamento. 26
27 please enter label for media in drive 0 ( timeout in 300 sec )
A ferramenta usa diretivas especficas do XFS para otimizao, e
28 -> quit ( Digite o comando para sair do prompt do xfsdump )
tambm sabe como 29
salvar os atributos extensos do XFS. Os backups criados pelo 30 ----------------------- end dialog -----------------------
xfsdump so do tipo 31
"endian safe"e assim podem ser transferidos entre mquinas Linux 32 xfsdump : creating dump session media file 0 ( media 0, file 0)
de diferentes arquiteturas 33 xfsdump : dumping ino map
e tambm entre mquinas IRIX. 34 xfsdump : dumping directories
Crie um local para nosso backup em /media usando a segunda 35 xfsdump : dumping non - directory files
partio de 6GB 36 xfsdump : status at 16:05:46: 1/3842 files dumped , 0 ,0% data dumped
1 # mkdir / media / backup ,
2 # mount -t xfs /dev/ sdb2 / media / backup Linux System Administration Pgina 5
Use o comando xfsdump para fazer o backup da partio /dev/sdb1 3.3 Gerar backup com xfsdump 4Linux www.4linux.com.br
34 seconds elapsed
Pgina 4 Linux System Administration
37 xfsdump : ending media file
4Linux www.4linux.com.br 3.3 Gerar backup com xfsdump
38 xfsdump : media file size 160228640 bytes
1 # xfsdump -l 0 -p 30 -f / media / backup / backup .0. dump / media / xfs
2 39 xfsdump : dump size (non -dir files ) : 158883080 bytes
3 xfsdump : using file dump ( drive_simple ) strategy 40 xfsdump : dump complete : 38 seconds elapsed
4 xfsdump : version 3.0.4 ( dump format 3.0) - Running single - threaded 41 xfsdump : Dump Status : SUCCESS
5 Opes utlizadas:
6 ==================== dump label dialog ==================== -l: Especifica um nvel de dump de 0 a 9. O nvel de dump
7 determina o que
8 please enter label for this dump session ( timeout in 300 sec ) sera armazenados no backup. Um dump de de nvel 0 absoluto
9 -> backup ( Digite o nome do rotulo e tecle Enter ) onde todos
10
os arquivos so armazenados. Um nvel de dump 1 a 9 referido
11 session label entered : " backup "
12
como um
13 ----------------------- end dialog ----------------------- dump incremental. Apenas os arquivos que foram alterados desde o
14 dump de
base (nivel 0) so despejados. 11 xfsdump : ino map phase 3: skipping ( only one dump stream )
-p: Faz com que relatrios de progresso sejam impressos no 12 xfsdump : ino map construction complete
intervalo especificado 13 xfsdump : estimated dump size : 38464 bytes
14
(intervalo dada em segundos). O relatrio indica quantos arquivos
15 ==================== dump label dialog ====================
foram despejadas, o nmero total de arquivos para descarregar, a 16 please enter label for media in drive 0 ( timeout in 300 sec )
porcentagem 17 -> backup ( Digite o nome do rotulo e tecle Enter )
de dados, objeto de dumping, e o tempo decorrido. 18 media label entered : " backup "
-f: Especifica um destino de despejo. Um destino pode ser o 19
caminho de um 20 ----------------------- end dialog -----------------------
dispositivo (como uma unidade de fita), um arquivo regular ou uma 21 xfsdump : creating dump session media file 0 ( media 0, file 0)
unidade de 22 xfsdump : dumping ino map
fita remota. 23 xfsdump : dumping directories
Onde foi parar o backup da partio /dev/sdb1? 24 xfsdump : dumping non - directory files
25 xfsdump : ending media file
Como resultado do comando foi criado um arquivo com a extenso
26 xfsdump : media file size 33968 bytes
.dump no diretrio 27 xfsdump : dump size (non -dir files ) : 10304 bytes
/media/backup. Atravs deste arquivo podemos restaurar o backup 28 xfsdump : Dump Status : SUCCESS
completo da Linux System Administration Pgina 7
partio /dev/sdb1. 3.4 Restaurando backup com xfsrestore 4Linux www.4linux.com.br
Como incrementar o backup com apenas arquivos alterados? Como resultado do comando foi criado um novo arquivo com a
Primeiro faa uma alterao na partio gravando um novo arquivo extenso .dump no
ou alterando diretrio /media/backup (backup.1.dump). Neste arquivo temos o
arquivos j gravados. incremento da partio
Pgina 6 Linux System Administration (o que tem de novo). Compare o tamanho dos dois arquivos:
4Linux www.4linux.com.br 3.3 Gerar backup com xfsdump 1 # cd / media / backup
1 # echo " Esta uma nova altera o" >> / media / xfs / var / log / mail . 2 # ls -lh
log 3 -rw -r--r-- 1 root root 153M Abr 26 16:29 backup .0. dump
Use o comando xfsdump para criar um backup do contedo alterado 4 -rw -r--r-- 1 root root 34K Abr 26 16:40 backup .1. dump
(backup incremental)
1 # xfsdump -l 1 -p 30 -f / media / backup / backup .1. dump / media / xfs
3.4 Restaurando backup com xfsrestore
2 O comando xfsrestore executa a funo reversa do xfsdump;
3 xfsdump : using file dump ( drive_simple ) strategy podendo restaurar uma
4 xfsdump : version 3.0.4 ( dump format 3.0) - Running single - threaded cpia de segurana completa de um sistema de arquivos. Backups
5 xfsdump : level 1 incremental dump of debian :/ media / xfs based on incrementais
level 0 dump begun subsequentes podem ser colocados depois em cima do backup
6 xfsdump : dump date : Thu Apr 26 16:40:17 2012 completo. Arquivos
7 xfsdump : session id: ff2f5ed8 -977c -417e -8538 -40513 baf6939 nicos e subdiretrios podem ser restaurados a partir de backups
8 xfsdump : session label : " backup "
completos ou
9 xfsdump : ino map phase 1: constructing initial dump list
parciais.
10 xfsdump : ino map phase 2: pruning unneeded subtrees
Primeiro crie um novo local para armazenar o backup restaurado, e 1 # xfsrestore -f / media / backup / backup .0. dump / media / xfs
use o comando 3.5 Criar e Restaurar Backup Remoto
xfsrestore para restaurar o backup incremental: A pratica bem parecida com o procedimento local mudando
1 # mkdir / backup
apenas, comandos
2 # xfsrestore -f / media / backup / backup .1. dump / backup /
3
adicionados para a conexo remota e a compactao dos arquivos.
4 xfsrestore : using file dump ( drive_simple ) strategy Em nossa infra
5 xfsrestore : version 3.0.4 ( dump format 3.0) - Running single - Linux System Administration Pgina 9
threaded 3.5 Criar e Restaurar Backup Remoto 4Linux www.4linux.com.br
6 xfsrestore : searching media for dump vamos precisa de 2 maquinas com SSH.
7 xfsrestore : examining media file 0 Maquina 1: Debian 6 com IP 192.168.200.1 (pacote xfsdump
8 xfsrestore : dump description : instalado)
9 xfsrestore : hostname : debian Maquina 2: CentOS 6 com IP 192.168.200.2 (pacote xfsdump
10 xfsrestore : mount point : / media / xfs instalado)
Pgina 8 Linux System Administration Backup Completo via SSH
4Linux www.4linux.com.br 3.5 Criar e Restaurar Backup Remoto Na maquina Debian 6 use o comando xfdump para criar um backup
11 xfsrestore : volume : /dev/ sdb1
completo do
12 xfsrestore : session time : Thu Apr 26 16:40:17 2012
diretrio /media/xfs.
13 xfsrestore : level : 1
1 # xfsdump -l 0 -L backup - / media / xfs | gzip | ssh root@192
14 xfsrestore : session label : " backup "
.168.200.2 dd of =/ backup / backup$ ( date +%d -%m -%Y).gz
15 xfsrestore : media label : " backup "
16 xfsrestore : file system id: 3 eca0743 -cfa5 -45 b4 -8376 - Descrio das opes utilizadas:
c892e3793511 xfsdump -l 0 -L backup - /media/xfs | : Comando usado para criar
17 xfsrestore : session id: ff2f5ed8 -977c -417e -8538 -40513 baf6939 o backup
18 xfsrestore : media id: ddf5382d -3770 -4 aef -861f- e390edf46cd5 completo (-l 0) do diretrio /media/xfs com o label "backup";
19 xfsrestore : using online session inventory gzip | : O resultado do comando xfsdump sera compactado atraves
20 xfsrestore : searching media for directory dump deste comando;
21 xfsrestore : reading directories ssh root@192.168.200.2 : Envia o backup compactado para a
22 xfsrestore : 3 directories and 54 entries processed maquina remota;
23 xfsrestore : directory post - processing dd of=/backup/backup$(date +%d-%m-%Y).gz : Na maquina
24 xfsrestore : restoring non - directory files
remota o backup
25 xfsrestore : restore complete : 0 seconds elapsed
compactado sera gravado em um arquivo (dd of) com a data atual
26 xfsrestore : Restore Status : SUCCESS
Toda a estrutura de diretrios com o arquivo auth.log foi restaurado. em
Liste o conteudo /backup.
do diretrio /backup e comprove a restaurao. Atravs da linha de comando em nosso exemplo, o backup foi criado
1 # ls -l / backup /var/log/ auth . log de forma remota
2 -rw -r----- 1 root root 9422 Abr 26 16:38 / backup / var / log / auth . log na maquina CentOS no diretrio /backup. No esquea de criar este
Caso precise de uma restaurao completa do /dev/sdb1, use o diretrio na
comando: maquina CentOS.
Restore completo via SSH
Pgina 10 Linux System Administration Agendamento de Tarefas
4Linux www.4linux.com.br 3.5 Criar e Restaurar Backup Remoto
Para restaurar use o comando xfsrestore na maquina Debian 3.6 Introduo Terica
apontando o diretrio A crontab utilizada para agendar comandos que sero
de destino: executados periodicamente,
1 # ssh root@192 .168.200.2 "dd if =/ backup / backup30 -04 -2012. gz" | ao contrrio do comando at, que executa comandos pontualmente.
gunzip -c | xfsrestore - / mnt / H dois
Descrio das opes utilizadas: tipos de crontab: a de usurios e a do sistema. Ambas so
ssh root@192.168.200.2 : Recebe o backup compactado da arquivos que contm
maquina remota; tabelas com informao de quando o comando especificado deve
dd if=/backup/backup30-04-2012.gz | : Na maquina remota o ser executado,
backup compactado sendo que cada linha corresponde a um nico agendamento.
sera lido atravs de um arquivo (dd if); A crontab gerenciada pelo daemon crond, que a cada um
gunzip -c | : O resultado do comando anterior sera minuto verifica se h
descompactado atraves algum agendamento que deve ser executado e, se houver, executa-
deste comando; o.
xfsrestore - /mnt/backup/ : Comando usado para restaurar o A crontab dos usurios pode ser acessada pelo comando:
backup da maquina 1 # crontab [-e|-r|-l]
remota no diretrio /opt. A tabela fica armazenada em arquivos com o nome do usurio dono
Backup incremental via SSH da tabela. J a
Na maquina Debian altere um arquivo no diretrio /media/xfs e crie crontab do sistema encontrada no arquivo /etc/crontab e j
um backup incremental possui agendamentos
(-l 1) na maquina CentOS: para realizar as tarefas que se encontram nos diretrios
1 # echo " Novo conteudo " >> / media / xfs / var / log / auth . log /etc/cron.[hourly|daily|weekly|monthly].
2 # xfsdump -l 1 -L backup - / media / xfs | gzip | ssh root@192 Sendo que o programa chamado run-parts quem executa os
.168.200.2 dd of =/ backup / backup - incremental01 -$( date +%d -%m - referidos agendamentos.
%Y). O formato das crontabs dos usurios e do sistema so quase
gz iguais. A exceo
Restore incremental via SSH que a crontab do sistema possui um campo a mais, como pode ser
Para restaurar apenas o que foi incrementado no backup completo: visto a seguir:
Linux System Administration Pgina 11 13
3.5 Criar e Restaurar Backup Remoto 4Linux www.4linux.com.br 3.6 Introduo Terica 4Linux www.4linux.com.br
1 # ssh root@192 .168.200.2 "dd if =/ backup / backup - incremental01 1 crontab (usu rios )
-30 -04 -2012. gz" | gunzip -c | xfsrestore - / opt 2 # minuto hora dia ms diaDaSemana comando
Dica: Para no precisar informar a senha crie uma configurao 3
com chaves no SSH 4 crontab ( sistema )
entre as maquinas Debian e CentOS! 5 # minuto hora dia ms diaDaSemana USU RIO comando
Pgina 12 Linux System Administration
A nica diferena entre as duas crontabs que na do sistema h interface de linha de comando do Linux. muito eficiente se
um campo aplicado no agendamento
para especificar qual o usurio que ir executar o comando de tarefas que sejam disparadas somente uma vez. O at permite o
agendado. controle
Alm disso cada campo possui um conjunto de valores vlidos, dos usurios que podem agendar comandos atravs dos arquivos
sendo eles: /etc/at.allow
minuto: varia de 0-59; e /etc/at.deny. Estes arquivos so organizados no formato de um
hora: varia de 0-23; usurio por linha.
dia: varia de 1-31; Durante o agendamento verificado primeiro o arquivo /etc/at.allow
ms: varia de 1-12; (listando quem
diaDaSemana: varia de 0-7, sendo: pode executar o comando) e depois /etc/at.deny. Caso eles no
0 ou 7 domingo 1 - segunda-feira 2 - tera-feira 3 - quarta-feira 4 - existam, o agendamento
quinta-feira 5 - de comando permitido a todos os usurios.
sexta-feira 6 - sbado Verifique se a data e a hora do sistema esto corretas:
usurio: um usurio vlido no sistema; Linux System Administration Pgina 15
comando: o path completo para o comando. 3.6 Introduo Terica 4Linux www.4linux.com.br
Pgina 14 Linux System Administration 1 # date
4Linux www.4linux.com.br 3.6 Introduo Terica Aps essa verificao podemos comear a realizar agendamentos.
Podemos controlar quais usurios podem acessar ou no o cron. Agende para 10 minutos no futuro um backup do diretrio /etc,
Para isso colocando seu backup
basta criar um dos arquivos: /etc/cron.allow ou /etc/cron.deny. A no diretrio /backup.
mesma dica Agende a tarefa de backup:
vlida para o comando at: /etc/at.allow ou at.deny. 1 # at HH:mm MM/DD/ YYYY
Considerando o formato j listado, podemos realizar agendamentos 2 at > tar zcvf / backup /backup - etc . tar .gz / etc /
utilizando alguns 3 at > ( Ctrl + d)
operadores que facilitam o trabalho. So eles: Agendada esta tarefa, confirme-a listando todos os agendamentos
vrgula (,) -> especifica uma lista de valores, por exemplo: pendentes:
1 # atq
1,3,4,7,8;
hifen (-) -> especifica um intervalo de valores, por exemplo: 1-15 Vamos explorar o diretrio onde ficam os agendamentos:
(de 1 a 15); # cd /var/spool/cron/atjobs # ls -la
asterisco (*) -> especifica todos os valores possveis; # cd /var/spool/at # ls -la
barra (/) -> especifica pulos de valores, por exemplo: se no Mostre o contedo dos arquivos contidos nesse diretrio:
Pgina 16 Linux System Administration
campo hora utilizarmos 4Linux www.4linux.com.br 3.6 Introduo Terica
*/3 o comando ser executado s 0,3,6,9,12,15,18,21 horas; 1 # cat ( agendamento )
3.6.1 Agendamento de Tarefas com AT Perceba que no agendamento, temos nossas variveis e o
O comando "at"pode agendar tarefas de forma semelhante ao cron, comando.
e integrado
Vamos realizar outro agendamento qualquer, para executar em 15 Bloqueie o uso do agendador de tarefas at para usurios comuns:
minutos, para que 1 # touch /etc/at. allow
possamos aprender como apag-lo: Teste o bloqueio com o usurio mandark:
1 # at HH:mm MM/DD/ YYYY 1 $ at 12:00 01/01/2014
2 at > echo " Teste " > /tmp/at.out Pgina 18 Linux System Administration
3 at > ^d 4Linux www.4linux.com.br 3.6 Introduo Terica
Liste os agendamentos correntes e verifique que um novo arquivo 3.6.2 Agendando Tarefas com o CRON
foi criado Cuidados especiais com scripts
no diretrio de spool do at. Utilize nos comandos do script e no agendador, sempre o (path)
1 # cd /var/ spool / cron / atjobs caminho completo do
2 # ls -la aplicativo a ser executado, exemplo para o comando tar, use
Agendada esta tarefa, confirme-a listando todos os agendamentos /bin/tar, tambm na linha
pendentes: de comando que inserir no cron use o caminho completo para o
1 # atq script, por exemplo,
1) Remova o ltimo agendamento: executar um script que est em /home/zago, use a linha:
1 # atrm [n mero_agendamento ]
/home/zago/nome-do-script
Linux System Administration Pgina 17
3.6 Introduo Terica 4Linux www.4linux.com.br e no somente nome-do-script.
Liste os agendamentos ativos e liste o contedo do diretrio de Muito cuidado com scripts, o comodismo pode cair no esquecimento
spool do at e veja e no atualizar
que o job foi removido: o script de backup quando incluir novos servios, diretrios ou
1 # atq usurios, monitore
2 # ls /var/ spool / cron / atjobs constantemente, teste e avalie o que est sendo feito.
Verifique o backup que estava agendado pelo comando at: Tenha os seguintes cuidados quando elaborar scripts para execuo
1 # ls / backup pelo cron.
Todos usurios comuns podem utilizar o comando at, por padro Nestes scripts no pode conter comandos que requer interao com
somente vem criado o usurio, tais
o arquivo /etc/at.deny, neste arquivo so configurados os usurios como pedir senha para completar a conexo de um ftp, nestes
que no podem casos deve ser colocado
utilizar o agendador de tarefas at, caso queira bloquear o uso de todas as instrues dentro do script de maneira que possa
alguns usurios completar a conexo
especficos adicione-os neste arquivo, sendo um usurio por linha, passando o login e senha.
se quiser bloquear Comandos que requerem confirmao para execuo, por exemplo,
o uso de todos, crie o arquivo /etc/at.allow em branco. apagar arquivos,
Caso queira habilitar o uso do agendador de tarefas at para apenas o rm pede confirmao, mas com o parmetro -rf no pede, ento
alguns usurios seria assim: rm -rf
especficos, crie o arquivo /etc/at.allow e coloque um nome por <arquivo, diretrio ou /caminho/o que deve apagar>
linha. No deve ter nenhum comando que pea confirmao ou qualquer
interao com o
usurio. iniciais e tabs so ignorados. As linhas cujo primeiro caractere no-
Fique atento s permisses, quando possvel agende como root branco for um
para executar o "#"so comentrios, e so ignorados. Uma linha ativa em um
script, use o "sudo"para dar permisses de execuo em programas arquivo agenda uma
que requer poderes definio de ambiente ou um comando do cron.
de root na execuo, acesso a diretrios de backup e etc.... Definio de ambiente:
Espao em disco quando baixar arquivos, backup ..., comandos de Pgina 20 Linux System Administration
parar servios ou 4Linux www.4linux.com.br 3.6 Introduo Terica
manipular arquivos em uso. Revise periodicamente scripts que nome=valor -> A string valor pode ser colocada entre aspas (simples
requerem atualiza- ou duplas, mas
Linux System Administration Pgina 19 correspondentes) para preservar espaos iniciais ou finais.
3.6 Introduo Terica 4Linux www.4linux.com.br Vrias variveis de ambiente so definidas automaticamente pelo
o, tais como backup de dados dos usurios, incluir novos servidor cron.
usurios... SHELL definida como /bin/sh, LOGNAME e HOME so definidos a
O cron limita a busca nos diretrios /bin e /usr/bin, portanto indique o partir da linha
caminho completo do /etc/passwd referente ao usurio que agendou a tarefa. HOME e
do programa ou script, ou melhor indique sempre, mesmo que SHELL podem
estejam nestes ser modificadas, mas LOGNAME no.
diretrios. O formato de um comando do cron em grande parte o padro V7.
Para agendar as tarefas usamos o comando crontab com a sintaxe Cada linha
descrita abaixo: tem cinco campos de hora e data, seguidos por um comando. Os
1 # crontab [-u usurio] { -e | -l | -r } comandos so
u -> permite que o superusurio agende tarefas para outros executados pelo servidor cron quando os campos minuto, hora, e
usurios, pois o comando ms correspondem
su pode atrapalhar o crontab. Um usurio comum no precisa usar hora atual, e quando pelo menos um dos campos de dia (dia do
essa ms, ou dia da
opo para especificar ele prprio. semana) correspondem ao dia atual.
e -> edita o arquivo de tarefas agendadas pelo usurio. A Entre na crontab do usurio para edit-la:
formatao desse arquivo 1 # crontab -e
ser descrita mais adiante. Para entendermos a diferena entre os campos dia do ms e dia
l -> lista o arquivo de tarefas agendadas pelo usurio. da semana,
r -> apaga o arquivo de tarefas agendadas pelo usurio. vamos agendar uma tarefa no crontab para escrever a data no
Basicamente, para agendarmos uma tarefa deveremos editar o terminal 2:
nosso arquivo agenda 1 # minuto hora dia_do_mes ms dia_da_semana comando
com o comando: 2 * * 13 09 6 / bin / date > / dev / tty2
1 # crontab -e No comando acima foi feito um agendamento para ser executado,
O arquivo agenda tem as seguintes caractersticas: as linhas em todos os minutos
branco, espaos
de todas as horas, no dia 13 de setembro e todos os sbados de sistema que opera praticamente da mesma forma, apenas tem um
setembro, ou seja, campo a mais,
os campos dia do ms e dia da semana trabalham de forma o usurio que executar o script. Seu arquivo de configurao o
separada. Vamos /etc/crontab.
mudar nossa data e hora para verificarmos: Debian:
1 # date 091323582013 1 # cat /etc/ crontab
Linux System Administration Pgina 21 2 SHELL =/ bin/sh
3.6 Introduo Terica 4Linux www.4linux.com.br 3 PATH =/ usr/ local / sbin :/ usr/ local / bin :/ sbin :/ bin :/ usr / sbin :/ usr /
Mudamos a data para o dia 13 de setembro de 2013, uma sexta- bin
feira. Visualize a 4
data: 5 #m h dom mon dow user command
1 # cal 2013 6 17 * * * * root cd / && run - parts -- report / etc / cron . hourly
7 25 6 * * * root test -x /usr/ sbin / anacron || ( cd / && run - parts --
Visualize no terminal 2 pela data, que, executado o comando
report /etc/ cron . daily )
hoje, dia 13 de 8 47 6 * * 7 root test -x /usr / sbin / anacron || ( cd / && run - parts
setembro de 2013 e que amanh, sbado ele tambm -- report /etc/ cron . weekly )
executado. 9 52 6 1 * * root test -x /usr/ sbin / anacron || ( cd / && run - parts --
Visualize os agendamentos feitos pelo o usurio. report /etc/ cron . monthly )
1 # crontab -l CentOS:
Onde ficam armazenados os agendamentos feitos pelos usurios 1 # cat /etc/ crontab
com o crontab 2 SHELL =/ bin/sh
-e? 3 PATH =/ sbin :/ bin :/ usr/ sbin :/ usr / bin
# cd /var/spool/cron/crontabs # ls 4 MAILTO = root
# cd /var/spool/cron # ls 5 HOME =/
No apague ou edite o seu agendamento dentro desse diretrio, use 6
7 01 * * * * root run - parts / etc / cron . hourly
os comandos
8 02 4 * * * root run - parts / etc / cron . daily
para fazer isso. Linux System Administration Pgina 23
Aps verificar que os agendamentos foram efetuados corretamente, 3.6 Introduo Terica 4Linux www.4linux.com.br
apague todos 9 22 4 * * 0 root run - parts / etc / cron . weekly
os agendamentos do usurio. 10 42 4 1 * * root run - parts / etc / cron . monthly
1 # crontab -r O programa run-parts executa todos os scripts executveis dentro
Pgina 22 Linux System Administration de um certo
4Linux www.4linux.com.br 3.6 Introduo Terica diretrio. Ento com essas linhas, temos diretrios programados
Para apagar somente um agendamento do usurio, use o crontab - para executar programas
e e retire de hora em hora, diariamente, semanalmente ou mensalmente.
a linha desejada. Abaixo a
Agora que aprendemos a utilizar a crontab do usurio podemos tabela:
usar a crontab do Ainda dentro do diretrio /etc, temos quatro agendamentos pr-
definidos:
cron.hourly, cron.daily, cron.weekly e cron.montly Onde: 4.1 Introduo Terica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
cron.hourly: de hora em hora 4.2 Usando os nmeros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
cron.daily: de dia em dia 4.3 Usando a estrutura se . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
cron.weekly: de semana em semana 4.4 Utilizando a estrutura if . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
cron.montly: de ms em ms 4.5 Exemplos de script com IF . . . . . . . . . . . . . . . . . . . . . . . . . 11
3.6.3 Restringindo o uso do crontab 2
Os arquivos /etc/cron.allow e /etc/cron.deny so usados para
restringir acesso ao Automatizao de Tarefas
cron. O formato de ambos arquivos de controle de acesso consiste
em um nome com Shell
de usurio por linha. Espaos em branco no so permitidos em
nenhum destes Script I
arquivos. O daemon do cron no precisa ser reiniciado se os 4.1 Introduo Terica
arquivos de controle de Tarefas administrativas so, muitas vezes, longas e repetitivas.
acesso forem modificados. Os arquivos de controle de acesso so Podemos automatizar
lidos a cada vez esses procedimentos atravs de scripts. Na verdade, os scripts
que o usurio tentar adicionar ou apagar uma tarefa do cron. podem nos
O usurio root pode usar o cron sempre, independentemente dos auxiliar muito, numa vasta gama de atividades.
nomes de usurio O que um script? uma sequncia de instrues que so
listados nos arquivos de controle de acesso. executadas toda vez
Pgina 24 Linux System Administration
que o mesmo chamado.
4Linux www.4linux.com.br 3.6 Introduo Terica
Mas, qual a diferena entre um script e um programa, j que
Se o arquivo /etc/cron.allow existe, somente os usurios listados
ambos so sequncias
neste podero usar
de instrues?
o cron, e ento o arquivo cron.deny ser ignorado.
Um script, um programa no compilado. O processador da
Se o arquivo cron.allow no existe, os usurios listados no
mquina s capaz
cron.deny no podero
de executar programas binrios, isto , compilados especificamente
usar o cron.
Linux System Administration Pgina 25 para ele. Dessa
forma, necessrio um programa que interprete esse script, em
4451 tempo de execuo,
para que o mesmo possa ser executado. No nosso caso, esse
Linux System Administration programa ser
www.4linux.com.br uma shell, j que estamos falando de shell scripts.
Sendo uma linguagem de programao, a Shell Script possui uma
Contedo srie de estruturas
de controle como loops e condicionais, mas que so estudadas
Automatizao de Tarefas com Shell Script I 2
apenas em
cursos mais avanados. Estudando um exemplo -alh); imprimir a data (date) e voltar ao diretrio original (cd -).
Vejamos o seguinte exemplo de Shell Script: Executando o script
3 Um programa ou script no GNU/Linux deve possuir permisso de
4.1 Introduo Terica 4Linux www.4linux.com.br execuo. Supondo
1 # vim shell .sh que nosso script denomina-se shell.sh, para podermos execut-
2 #!/ bin/ bash lo, devemos
3 # Meu primeiro shell script
executar o comando:
4 cd ~
1 # chmod u+x shell .sh
5 clear
Pgina 4 Linux System Administration
6 ls -alh
4Linux www.4linux.com.br 4.1 Introduo Terica
7 date
E em seguida executar o script:
8 cd -
1 # ./ shell .sh
Este um script bem simples. As linhas que comeam pelo
Em algumas situaes, pode ser necessrio fornecer parmetros
smbolo "cedilha"so
para um script.
comentrios, ou seja, tudo que aparece depois do desse carcter
Por exemplo, se ao invs de listar o contedo do diretrio pessoal
desprezado. Os
do usurio, quisssemos
comentrios so muito importantes nos programas, pois so uma
que o script listasse o contedo de um diretrio qualquer.
forma de documentlos.
Supondo que esse novo script chama-se script2.sh, uma possvel
Imagine se voc tiver que fazer uma alterao num programa escrito
forma de utilizao
a um ano
do script seria:
antes. Ser que voc ir se lembrar de todas as estruturas e 1 # ./ script2 .sh /etc
variveis que utilizou? Para passar parmetros para esse script, precisamos conhecer a
Provavelmente no. Se for outra pessoa quem tiver que efetuar essa funo de algumas
mudana, a variveis: $1, $2. Quando passamos algum parmetro para o
situao ser pior ainda! nosso script,
Mas a primeira linha, na qual aparece um comentrio, possui uma esse parmetro fica armazenado em uma varivel especfica. Por
caracterstica exemplo:
um tanto estranha. Na verdade, a primeira linha de um script, 1 # ./ script3 .sh par metro1 par metro2 par metro3
indica qual ser o Para conseguirmos resgatar o valor desses parmetro, precisamos
interpretador daquele script. Em nosso exemplo ser o programa chamar as variveis
binbash, uma $1,$2 e $3, por exemplo:
shell. Se estivssemos criando um script com a linguagem de 1 # vim script3 .sh
programao Perl, 2 #!/ bin/ bash
a primeira linha seria algo como usrbinperl. 3#
O script, propriamente dito, executa 4 comandos simples: Acessar 4 # Esse script pega o valor dos par metros e imprimi na tela .
o diretrio do 5 echo $1
usurio corrente (cd ); limpar a tela (clear); listar o contedo diretrio 6 echo $2
corrente (ls 7 echo $3
8 # ./ script3 42 the answer
Linux System Administration Pgina 5 Pgina 6 Linux System Administration
4.2 Usando os nmeros 4Linux www.4linux.com.br 4Linux www.4linux.com.br 4.3 Usando a estrutura se
4.2 Usando os nmeros resultado de alguma parte do script pode ter vrios rumos. Usando
Muitas vezes quando fazemos scripts, precisamos de uma funo a condio se,
que faa o trabalho possvel testar o resultado de uma condicional.
das operaes matemticas bsicas como soma, diviso, Por exemplo:
multiplicao e subtrao. a=1 b=2 SE b >a ENTO IMPRIMA bSENOIMPRIMAa FIMSE
Em shell script podemos usar o comando expr para realiz-las. A varivel $?
J a A varivel interrogao conhecida por testar o valor de retorno de
contagem de linhas feita pelo comando wc. E o comando cut qualquer comando
serve para cortar quando mostrada aps sua execuo. Com ela podemos verificar se
a sada no ponto especificado pelo separador. o programa
Vamos ver esse exemplo: um script que deve dizer quantos foi executado com sucesso ou no. Para isso basta saber que essa
usurios esto presentes, varivel
quantos grupos esto presentes e no final mostrar quantos objetos tem dois retornos principais.
1 # pwd
meu sistema 2 # echo $?
tem, a soma dos usurios e dos grupos: 3#0
1 #!/ bin/ bash
Quando o resultado dessa varivel igual a 0: Comando
2#
executado com sucesso!
3 echo " Aguarde ..... "
1 # pws
4 sleep 3
2 # echo $?
5 G=wc -l /etc/ group | cut -d" " -f1
3 # != 0
6 U=wc -l /etc/ passwd | cut -d" " -f1
7 echo "O sistema possui $U usu rios ." Quando o resultado diferente de 0, quer dizer que existiu algum
8 echo "O sistema possui $G grupos ." problema na
9 echo "O sistema possui expr $G + $U objetos ." execuo do comando.
Cada programa tem sua tabela e excees, mas sempre retornam
4.3 Usando a estrutura se 0 quando o
At o presente momento, fizemos scripts que no possuem programa bem executado. O comando test
escolhas, ou seja, comandos Linux System Administration Pgina 7
de execuo em linha de comando em srie, utilizando nossa lgica 4.3 Usando a estrutura se 4Linux www.4linux.com.br
para O teste de condicionais (strings, matemticas e em arquivos) em
fazer com que aquele script seja executado corretamente. Mas se Shell Script feito
qualquer coisa atravs do comando test. Vamos conferir algumas formas de testar
acontecer no meio do caminho, no temos a oportunidade de condicionais.
trabalhar com as famosas Testando strings
exceptions. 1 # test "uva" = "uva"
As exceptions, tambm conhecidas como excees, servem para 2 # echo $?
ajudar quando o 3#0
1 # test "uva" = " banana " 6 if [ -z $REPLY ] ; then
2 # echo $? 7 echo "Usurio $USER no existe !"
3#1 8 else
Testando expresses matemticas 9 echo "Usurio Existe "
1# test 5 -eq 2 10 fi
2# echo $? Ao invs de verificar se a varivel que recebia o resultado do
3# 1 comando estava vazia,
1# test 2 -eq 2 poderamos ter utilizado o comando test antes da estrutura e
2# echo $? checar apenas seu
3# 0 cdigo de erro:
Testando expresses em arquivos 1 #!/ bin/ bash
1 # test -z $vazia 2 ## Primeiro script - Verificando se um usu rio existe
2 # echo $? 3#
3#0 4 echo " Digite usurio para consulta :"
Pgina 8 Linux System Administration 5 read USER
4Linux www.4linux.com.br 4.3 Usando a estrutura se 6 REPLY =$( getent passwd | grep $USER )
1 # var= valor 7
2 # test -z $var 8 test -z $REPLY
3 # echo $? 9 if [ $? -eq 0 ] ; then
4#1 10 echo "Usurio $USER no existe !"
Acima mostramos algumas formas de se testar as condicionais 11 else
utilizadas dentro da 12 echo " Pagamento em dia"
estrutura se. Lembre-se que podemos usar as condicionais tanto 13 fi
dentro, quanto Pgina 10 Linux System Administration
fora da estrutura se, depende do caso e do meio. 4Linux www.4linux.com.br 4.5 Exemplos de script com IF
Abaixo podemos ver uma lista de operadores para nossa diverso. 4.5 Exemplos de script com IF
Existem muitos outros operadores para que possamos dominar o Exemplo 1: Verifica se um determinado usurio esta logado no
mundo e consequentemente sistema.
o sistemas UNIX com shell script. Estes so apenas os essenciais! 1 #!/ bin/ bash
Linux System Administration Pgina 9 2 clear
4.4 Utilizando a estrutura if 4Linux www.4linux.com.br 3 echo " Digite o nome do usurio "
4.4 Utilizando a estrutura if 4 read USER
5 if who | grep $USER > /dev/ null
Abaixo alguns exemplos realmente prticos de como utilizar a 6 then
estrutura if. 7 clear
1 #!/ bin/ bash 8 echo $USER esta logado
2 ## Primeiro script - Verificando se um usu rio existe 9 else
3 echo " Digite usurio para consulta :" 10 clear
4 read USER 11 echo $USER no est logado
5 REPLY =$( getent passwd | grep $USER ) 12 fi
Exemplo 2: Pesquisa uma palavra dentro de um arquivo. exatas, o "case"vai agir de acordo com resultados exatos.
1 #!/ bin/ bash Temos o "while"para testa continuamente uma expresso, at que
2 clear ela se torne falsa,
3 echo " Escreva o nome do arquivo e a palavra a ser pesquisada :" e ainda contamos com o lao "for"que vai substituindo uma varivel
4 read file word por um valor,e
5 if grep $word $file > /dev/ null
vai executando os comandos que so pedidos.
6 then
7 clear 5.2 Utilizando a estrutura case
8 echo "A palavra $word existe no arquivo $file ." Outra estrutura bastante til quando vrios if precisam ser
9 fi declarados a estrutura
Linux System Administration Pgina 11 case.
4451 case <valor> in <padro1>) comandos ;; <padro2>) comandos ;;
<padro3>)
Linux System Administration comandos ;; *) comandos ;; esac
3
www.4linux.com.br 5.2 Utilizando a estrutura case 4Linux www.4linux.com.br
Exemplo 1: Executar comandos dependendo do usurio digitado.
Contedo 1 #!/ bin/ bash
Automatizando Tarefas com Shell Script II 2 2
5.1 Introduo Terica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 3 clear
5.2 Utilizando a estrutura case . . . . . . . . . . . . . . . . . . . . . . . . . 3 4 echo " Digite um nome de usurio "
5 read Usuario
5.3 Utilizando a estrutura while . . . . . . . . . . . . . . . . . . . . . . . . 5
6 case $Usuario in
5.4 Utilizando a estrutura for . . . . . . . . . . . . . . . . . . . . . . . . . . 6 7 aluno )
5.5 Transformar Shell Script em binrio . . . . . . . . . . . . . . . . . . . . . 8 8 clear ; ls /etc ; cal ; date
2 9 ;;

Automatizando Tarefas com 10 root )


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

You might also like