Escolar Documentos
Profissional Documentos
Cultura Documentos
451 Linux System Administration (+atualizado 2012) PDF
451 Linux System Administration (+atualizado 2012) PDF
www.4linux.com.br
Contedo
2
Compactadores, Empacotadores e
Procedimentos de Backup
O programa tar, cujo nome deriva de tape archiver, realiza a tarefa de conca-
tenar todos os arquivos e diretrios preservando as informaes do filesystem, isto
, seus meta-dados.
3
2.1 Introduo Terica 4Linux www.4linux.com.br
Completo - Visa salvar todos os dados, mesmo o que j foram salvos anterior-
mente, assim fazendo um backup completo de todos os objetos em questo.
1 # mkdir / backup
1 # useradd inexistente
O comando cpio somente volta os arquivos, caso ele no exista ou ele seja mais
recente que o atual:
1 # rm -f / etc / passwd
O que os compactadores como gzip e bzip2 no conseguem fazer, o tar (Tape Archi-
ves) faz. Ele um aplicativo capaz de armazenar vrios arquivos em um s. Porm,
no capaz de compactar os arquivos armazenados. Como possvel notar, o tar
serve de complemento para os compactadores e vice-versa. Por isso, foi criado um
parmetro no tar para que ambos os programas possam trabalhar juntos. Assim, o
tar "junta"os arquivos em um s e este arquivo, por sua vez, ento compactado por
um dos compactadores suportados pelo tar.
A sintaxe do TAR :
Podemos observar que o compactador gzip mais rpido que o bzip2, mas qual
deles fez a melhor compactao:
O bzip2 faz a melhor compactao, mas em compensao leva um tempo maior que
o gzip. Para visualizar o contedo dos pacotes tar faa:
Para adicionar arquivos ao pacote j criado utilize o parmetro -r, mas somente
possvel em pacotes que ainda no foram compactados: Crie um arquivo chamado
aaaaaaaaaaaaaaaaaaa em /etc:
Visualize:
1 # cd / backup
2 # tar - zxvf usr . tar . gz
1 # ls
Para determinar qual vai ser o ponto inicial para descompactar o pacote utilize o
parmetro -C. Descompacte o pacote feito com bzip2 no diretrio /mnt:
1 # ls / mnt
1 # rm -rf / etc
Verifique:
1 # ls / etc
Entretanto, para que voc pudesse entender o que comp significa seria necessrio
estar ciente dessa conveno ou seja, do algoritmo de compresso.
1 # gzip etc
2 # bzip2 etc
Crie dois arquivos de texto puro. Abra o arquivo texto1 no editor vim e insira uma
linha contento os nmeros de 0 a 9:
1 # vim texto1
2 0123456789
Ainda dentro do vim, copie essa linha e cole 250.000 vezes e salve o arquivo:
1 <ESC >
2 yy
3 250000 p
4 :x!
1 # cp texto1 texto2
Crie um par de arquivos binrios para nossos testes. Utilizaremos como base, o
programa aptitude:
1 # cp bin1 bin2
Verifique que foram criados quatro arquivos com tamanhos parecidos, aproximada-
mente 2.4MB, sendo dois deles binrios e dois texto puro:
Utilize a tabela tab:comparacao1 para anotar os resultados obtidos nos testes com
gzip e bzip em arquivos de texto puro:
Determine o intervalo de tempo que leva para comprimir o arquivo texto1 com
gzip:
Determine o tamanho final do arquivo texto1 aps ser comprimido com gzip:
1 # ls -lh texto1 . gz
Determine o tamanho final do arquivo texto2 aps ser comprimido com bzip2:
Utilize a tabela tab:comparacao2 para anotar os resultados obtidos nos testes com
gzip e bzip em arquivos binrios:
Determine o intervalo de tempo que leva para comprimir o arquivo bin1 com gzip:
Determine o tamanho final do arquivo bin1 aps ser comprimido com gzip:
1 # ls -lh bin1 . gz
Determine o tamanho final do arquivo bin2 aps ser comprimido com bzip2:
2.5 Comando dd
Cuidado com o comando dd, qualquer falta de ateno pode danificar o sis-
tema, de forma irrecupervel.
Onde:
if=/dev/sda3
of=/dev/sda11
www.4linux.com.br
Contedo
Agendamento de Tarefas 12
3.6 Introduo Terica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
3.6.1 Agendamento de Tarefas com AT . . . . . . . . . . . . . . . . . 15
3.6.2 Agendando Tarefas com o CRON . . . . . . . . . . . . . . . . . 19
3.6.3 Restringindo o uso do crontab . . . . . . . . . . . . . . . . . . . 24
2
Backup com ferramentas XFS
Existem diversas ferramentas para gerenciar parties do tipo XFS, em nossa pratica
vamos manipular a aplicao do sistema de arquivos, backup e restore no sistema
de arquivos XFS. Antes de usar os comandos prepare sua infra adicionando um novo
disco para o backup. Um novo disco sera usado em /dev/sdb para as tarefas, sendo
que a primeira partio /dev/sdb1 deve conter 2GB e a segunda 6GB:
O comando mkfs.xfs usado para aplicar sistema de arquivos XFS em uma partio.
O comando tambm pode ser usado com a flag -t como em mkfs -t xfs.
3
3.3 Gerar backup com xfsdump 4Linux www.4linux.com.br
O comando xfsdump utilizado para fazer backup de arquivos com seus atributos
em um sistema de arquivos. O xfsdump examina os arquivos e determina quais
precisam ser salvos (backup), e copia esses arquivos para um disco especificado,
como fita magntica ou outra mdia de armazenamento.
A ferramenta usa diretivas especficas do XFS para otimizao, e tambm sabe como
salvar os atributos extensos do XFS. Os backups criados pelo xfsdump so do tipo
"endian safe"e assim podem ser transferidos entre mquinas Linux de diferentes ar-
quiteturas e tambm entre mquinas IRIX.
Crie um local para nosso backup em /media usando a segunda partio de 6GB
34 seconds elapsed
37 xfsdump : ending media file
38 xfsdump : media file size 160228640 bytes
39 xfsdump : dump size ( non - dir files ) : 158883080 bytes
40 xfsdump : dump complete : 38 seconds elapsed
41 xfsdump : Dump Status : SUCCESS
Opes utlizadas:
-p: Faz com que relatrios de progresso sejam impressos no intervalo espe-
cificado (intervalo dada em segundos). O relatrio indica quantos arquivos
foram despejadas, o nmero total de arquivos para descarregar, a porcenta-
gem de dados, objeto de dumping, e o tempo decorrido.
Como resultado do comando foi criado um arquivo com a extenso .dump no diret-
rio /media/backup. Atravs deste arquivo podemos restaurar o backup completo da
partio /dev/sdb1.
1 # echo " Esta uma nova altera o " >> / media / xfs / var / log / mail . log
Use o comando xfsdump para criar um backup do contedo alterado (backup incre-
mental)
Como resultado do comando foi criado um novo arquivo com a extenso .dump no
diretrio /media/backup (backup.1.dump). Neste arquivo temos o incremento da par-
tio (o que tem de novo). Compare o tamanho dos dois arquivos:
1 # cd / media / backup
2 # ls -lh
3 -rw -r --r - - 1 root root 153 M Abr 26 16:29 backup .0. dump
4 -rw -r --r - - 1 root root 34 K Abr 26 16:40 backup .1. dump
Primeiro crie um novo local para armazenar o backup restaurado, e use o comando
xfsrestore para restaurar o backup incremental:
1 # mkdir / backup
2 # xfsrestore -f / media / backup / backup .1. dump / backup /
3
4 xfsrestore : using file dump ( drive_simple ) strategy
5 xfsrestore : version 3.0.4 ( dump format 3.0) - Running single -
threaded
6 xfsrestore : searching media for dump
7 xfsrestore : examining media file 0
8 xfsrestore : dump description :
9 xfsrestore : hostname : debian
10 xfsrestore : mount point : / media / xfs
Toda a estrutura de diretrios com o arquivo auth.log foi restaurado. Liste o conteudo
do diretrio /backup e comprove a restaurao.
Atravs da linha de comando em nosso exemplo, o backup foi criado de forma remota
na maquina CentOS no diretrio /backup. No esquea de criar este diretrio na
maquina CentOS.
1 # echo " Novo conteudo " >> / media / xfs / var / log / auth . log
2 # xfsdump -l 1 -L backup - / media / xfs | gzip | ssh root@192
.168.200.2 dd of =/ backup / backup - incremental01 - $ ( date +% d -% m -% Y ) .
gz
Dica: Para no precisar informar a senha crie uma configurao com chaves no SSH
entre as maquinas Debian e CentOS!
1 # crontab [ - e | - r | - l ]
13
3.6 Introduo Terica 4Linux www.4linux.com.br
Alm disso cada campo possui um conjunto de valores vlidos, sendo eles:
vrgula (,) -> especifica uma lista de valores, por exemplo: 1,3,4,7,8;
hifen (-) -> especifica um intervalo de valores, por exemplo: 1-15 (de 1 a 15);
barra (/) -> especifica pulos de valores, por exemplo: se no campo hora utili-
zarmos */3 o comando ser executado s 0,3,6,9,12,15,18,21 horas;
1 # date
Agende para 10 minutos no futuro um backup do diretrio /etc, colocando seu bac-
kup no diretrio /backup.
1 # at HH : mm MM / DD / YYYY
2 at > tar zcvf / backup / backup - etc . tar . gz / etc /
3 at > ( Ctrl + d )
1 # atq
# cd /var/spool/cron/atjobs # ls -la
# cd /var/spool/at # ls -la
1 # cat ( agendamento )
Vamos realizar outro agendamento qualquer, para executar em 15 minutos, para que
possamos aprender como apag-lo:
1 # at HH : mm MM / DD / YYYY
2 at > echo " Teste " > / tmp / at . out
3 at > ^d
1 # atq
1 # atrm [n mero_agendamento ]
1 # atq
2 # ls / var / spool / cron / atjobs
1 # ls / backup
Todos usurios comuns podem utilizar o comando at, por padro somente vem criado
o arquivo /etc/at.deny, neste arquivo so configurados os usurios que no podem
utilizar o agendador de tarefas at, caso queira bloquear o uso de alguns usurios
especficos adicione-os neste arquivo, sendo um usurio por linha, se quiser bloquear
o uso de todos, crie o arquivo /etc/at.allow em branco.
Caso queira habilitar o uso do agendador de tarefas at para apenas alguns usurios
especficos, crie o arquivo /etc/at.allow e coloque um nome por linha.
1 $ at 12:00 01/01/2014
Tenha os seguintes cuidados quando elaborar scripts para execuo pelo cron.
Nestes scripts no pode conter comandos que requer interao com o usurio, tais
como pedir senha para completar a conexo de um ftp, nestes casos deve ser colo-
cado todas as instrues dentro do script de maneira que possa completar a conexo
passando o login e senha.
Comandos que requerem confirmao para execuo, por exemplo, apagar arquivos,
o rm pede confirmao, mas com o parmetro -rf no pede, ento seria assim: rm -rf
<arquivo, diretrio ou /caminho/o que deve apagar>
No deve ter nenhum comando que pea confirmao ou qualquer interao com o
usurio.
Fique atento s permisses, quando possvel agende como root para executar o
script, use o "sudo"para dar permisses de execuo em programas que requer po-
deres de root na execuo, acesso a diretrios de backup e etc....
Espao em disco quando baixar arquivos, backup ..., comandos de parar servios ou
manipular arquivos em uso. Revise periodicamente scripts que requerem atualiza-
O cron limita a busca nos diretrios /bin e /usr/bin, portanto indique o caminho com-
pleto do programa ou script, ou melhor indique sempre, mesmo que estejam nestes
diretrios.
Para agendar as tarefas usamos o comando crontab com a sintaxe descrita abaixo:
u -> permite que o superusurio agende tarefas para outros usurios, pois o co-
mando su pode atrapalhar o crontab. Um usurio comum no precisa usar essa
opo para especificar ele prprio.
e -> edita o arquivo de tarefas agendadas pelo usurio. A formatao desse arquivo
ser descrita mais adiante.
Basicamente, para agendarmos uma tarefa deveremos editar o nosso arquivo agenda
com o comando:
1 # crontab -e
Definio de ambiente:
nome=valor -> A string valor pode ser colocada entre aspas (simples ou duplas, mas
correspondentes) para preservar espaos iniciais ou finais.
1 # crontab -e
No comando acima foi feito um agendamento para ser executado, todos os minutos
de todas as horas, no dia 13 de setembro e todos os sbados de setembro, ou seja,
os campos dia do ms e dia da semana trabalham de forma separada. Vamos
mudar nossa data e hora para verificarmos:
1 # date 091323582013
1 # cal 2013
1 # crontab -l
# cd /var/spool/cron/crontabs # ls
# cd /var/spool/cron # ls
1 # crontab -r
CentOS:
cron.montly: de ms em ms
O usurio root pode usar o cron sempre, independentemente dos nomes de usurio
listados nos arquivos de controle de acesso.
www.4linux.com.br
Contedo
2
Automatizao de Tarefas com Shell
Script I
Sendo uma linguagem de programao, a Shell Script possui uma srie de estru-
turas de controle como loops e condicionais, mas que so estudadas apenas em
cursos mais avanados. Estudando um exemplo
3
4.1 Introduo Terica 4Linux www.4linux.com.br
1 # vim shell . sh
2 # !/ bin / bash
3 # Meu primeiro shell script
4 cd ~
5 clear
6 ls - alh
7 date
8 cd -
Este um script bem simples. As linhas que comeam pelo smbolo "cedilha"so
comentrios, ou seja, tudo que aparece depois do desse carcter desprezado. Os
comentrios so muito importantes nos programas, pois so uma forma de document-
los. Imagine se voc tiver que fazer uma alterao num programa escrito a um ano
antes. Ser que voc ir se lembrar de todas as estruturas e variveis que utilizou?
Provavelmente no. Se for outra pessoa quem tiver que efetuar essa mudana, a
situao ser pior ainda!
1 # chmod u + x shell . sh
1 # ./ shell . sh
Supondo que esse novo script chama-se script2.sh, uma possvel forma de utili-
zao do script seria:
1 # ./ script2 . sh / etc
Para passar parmetros para esse script, precisamos conhecer a funo de algu-
mas variveis: $1, $2. Quando passamos algum parmetro para o nosso script,
esse parmetro fica armazenado em uma varivel especfica. Por exemplo:
1 # vim script3 . sh
2 # !/ bin / bash
3 #
4 # Esse script pega o valor dos par metros e imprimi na tela .
5 echo $1
6 echo $2
7 echo $3
8 # ./ script3 42 the answer
Muitas vezes quando fazemos scripts, precisamos de uma funo que faa o tra-
balho das operaes matemticas bsicas como soma, diviso, multiplicao e sub-
trao. Em shell script podemos usar o comando expr para realiz-las. J a
contagem de linhas feita pelo comando wc. E o comando cut serve para cortar
a sada no ponto especificado pelo separador.
Vamos ver esse exemplo: um script que deve dizer quantos usurios esto presen-
tes, quantos grupos esto presentes e no final mostrar quantos objetos meu sistema
tem, a soma dos usurios e dos grupos:
1 # !/ bin / bash
2 #
3 echo " Aguarde ..... "
4 sleep 3
5 G= wc -l / etc / group | cut -d " " -f1
6 U= wc -l / etc / passwd | cut -d " " -f1
7 echo "O sistema possui $U usu rios . "
8 echo "O sistema possui $G grupos . "
9 echo "O sistema possui expr $G + $U objetos . "
resultado de alguma parte do script pode ter vrios rumos. Usando a condio se,
possvel testar o resultado de uma condicional.
Por exemplo:
A varivel $?
1 # pwd
2 # echo $?
3 # 0
1 # pws
2 # echo $?
3 # != 0
Cada programa tem sua tabela e excees, mas sempre retornam 0 quando o
programa bem executado. O comando test
Testando strings
1 # test 5 - eq 2
2 # echo $?
3 # 1
1 # test 2 - eq 2
2 # echo $?
3 # 0
1 # test -z $vazia
2 # echo $?
3 # 0
1 # var = valor
2 # test -z $var
3 # echo $?
4 # 1
Existem muitos outros operadores para que possamos dominar o mundo e conse-
quentemente o sistemas UNIX com shell script. Estes so apenas os essenciais!
1 # !/ bin / bash
2 ## Primeiro script - Verificando se um usu rio existe
3 echo " Digite usu rio para consulta : "
4 read USER
5 REPLY =$( getent passwd | grep $USER )
6 if [ -z $REPLY ] ; then
7 echo " Usu rio $USER n o existe ! "
8 else
9 echo " Usu rio Existe "
10 fi
1 # !/ bin / bash
2 ## Primeiro script - Verificando se um usu rio existe
3 #
4 echo " Digite usu rio para consulta : "
5 read USER
6 REPLY =$( getent passwd | grep $USER )
7
8 test -z $REPLY
9 if [ $? - eq 0 ] ; then
10 echo " Usu rio $USER n o existe ! "
11 else
12 echo " Pagamento em dia "
13 fi
1 # !/ bin / bash
2 clear
3 echo " Digite o nome do usu rio "
4 read USER
5 if who | grep $USER > / dev / null
6 then
7 clear
8 echo $USER esta logado
9 else
10 clear
11 echo $USER n o est logado
12 fi
1 # !/ bin / bash
2 clear
3 echo " Escreva o nome do arquivo e a palavra a ser pesquisada : "
4 read file word
5 if grep $word $file > / dev / null
6 then
7 clear
8 echo "A palavra $word existe no arquivo $file . "
9 fi
www.4linux.com.br
Contedo
2
Automatizando Tarefas com Shell
Script II
Temos o "while"para testa continuamente uma expresso, at que ela se torne falsa,
e ainda contamos com o lao "for"que vai substituindo uma varivel por um valor,e
vai executando os comandos que so pedidos.
Outra estrutura bastante til quando vrios if precisam ser declarados a estrutura
case.
3
5.2 Utilizando a estrutura case 4Linux www.4linux.com.br
1 # !/ bin / bash
2
3 clear
4 echo " Digite um nome de usu rio "
5 read Usuario
6 case $Usuario in
7 aluno )
8 clear ; ls / etc ; cal ; date
9 ;;
10 root )
11 clear ; whoami
12 ;;
13 *)
14 clear
15 echo $Usuario n o existe
16 ;;
17 esac
1 # !/ bin / bash
2 clear
3 echo " Escolha uma op o para informa es da maquina ( Digite o numero
)"
4 echo "1- Horario do sistema "
5 echo "2- Tempo que o servidor esta ligado "
6 echo "3- Quantidade de usu rio logados "
7 echo "4- Sair "
8 read ESC
9 case $ESC in
10 1)
11 H=$( uptime | awk -F " " { print $1 } )
12 echo " Agora s o $H "
13 ;;
14 2)
15 T=$( uptime | awk -F " " { print $3 } )
16 echo "O sistema esta $T ligado "
17 ;;
18 3)
19 U=$( uptime | awk -F " " { print $4 } )
20 echo " Existem $U atualmete logados "
21 ;;
22 4)
23 echo " Bye ... "
24 ;;
25 *)
26 echo " Op o invalida "
27 ;;
28 esac
1 # !/ bin / bash
2 clear
3 echo " Digite o endere o de um site "
4 read SITE
5 while ping - c1 $SITE > / dev / null 2 >&1
6 do
7 echo "O site $SITE est no ar . "
8 done
Exemplo 2: Cria quantos arquivos voc indicar com uma determinada extenso.
1 # !/ bin / sh
2 clear
3 echo " Digite o nome do arquivo "
4 read ARQ
5 clear
6 echo " Digite a extens o do arquivo "
7 read EXT
8 clear
9 echo " Digite o numero de arquivos criados "
10 read NUM
11 i =1
12 while [ $i - le $NUM ]
13 do
14 touch $ARQ$i . $EXT
15 i= expr $i + 1
16 done
O for pode ser utilizado efetuar um looping no estilo do while ou para processar
uma lista.
1 # !/ bin / bash
2 for i in ls -1
3 do
4 tar - cvzf $i . tar . gz $i
5 done
1 # !/ bin / bash
2 clear
3 echo " Digite a extens o dos arquivos que voc quer apagar "
4 read ARQ
5 for i in *. $ARQ ; do
6 rm $i
7 done
Exemplo de Loop
Vamos criar um script que far uma verificao de quais mquinas esto ativas na
rede, para isso usaremos o comando ping.
1 # ping 192.168.200.254
Usaremos algumas opes do comando ping para que ele no entre num loop, como
acontece por padro, e espere nossa interao para interrompe-lo:
1 # ping -c 2 -w 2 192.168.200.1
1 # !/ bin / bash
2 for IP in $ ( seq 1 15) ; do
3 ping -c 2 -w 2 192.168.200. $IP > / dev / null &&
4 echo " 192.168.200. $IP - UP " ||
5 echo " 192.168.200. $IP - DOWN "
6 done
1 # cd / sbin
2 # chmod u + x hostup . sh
3 # hostup . sh
Programar em shell script uma arte, e como na arte, em shell o limite a sua
imaginao. Para se aprofundar nesse assunto:
http://jneves.wordpress.com/ http://aurelio.net
1 # wget -c http :// www . datsi . fi . upm . es /~ frosal / sources / shc -3.8.6. tgz
Descompacte o arquivo:
1 # shc -v -r -f script
Copie o arquivo binrio para /bin (assim todos os usurios tero acesso)
www.4linux.com.br
Contedo
2
Gerenciamento de dados SQL
3
6.3 Criao do Banco de Dados e Tabelas 4Linux www.4linux.com.br
1 # mysql -u root -p
3) Visualizando databases:
1) Criando database:
2) Utilizando database:
Novamente podemos nos valer do parmetro opcional IF NOT EXISTS para execu-
tarmos o comando sem termos certeza da existncia ou no da tabela. Para criarmos
uma tabela executamos a seguinte parte da sintaxe: CREATE TABLE nome_tabela.
Mas mais comum criarmos a tabela j acompanhada de seus campos (fields). Va-
mos criar no nosso exemplo a tabela LPI com os seguintes campos:
id - campo de identificao;
4) Visualizando as tabelas:
Com o retorno do comando desc podemos ver quais os campos da tabela, qual o
tipo dos campos, se aceitam ou no valores nulos, se existe uma chave primria, e
se algum campo possui a propriedade auto_increment.
2) Selecionar todos os registros da tabela lpi onde o campo nota possui o valor
igual a 101:
1) Adicionando usurio:
2) Saindo do Mysql:
1 # mysql -u root -p
2 # mysql -u curso -p
www.4linux.com.br
Contedo
Administrao de Usurios I 3
7.1 Registro de usurios no sistema . . . . . . . . . . . . . . . . . . . . . . 4
7.1.1 Arquivo /etc/passwd . . . . . . . . . . . . . . . . . . . . . . . . . 5
7.1.2 Arquivo /etc/shadow . . . . . . . . . . . . . . . . . . . . . . . . . 7
7.2 Levantamento de informaes dos usurios . . . . . . . . . . . . . . . 8
7.2.1 Comando chage . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
7.2.2 Comando id . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
7.2.3 Comando groups . . . . . . . . . . . . . . . . . . . . . . . . . . 9
7.2.4 Comando finger . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
7.2.5 Comando users . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
7.2.6 Comando who . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
7.2.7 Comando w . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
7.3 Criando grupo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
7.3.1 Comando addgroup . . . . . . . . . . . . . . . . . . . . . . . . . 11
7.3.2 Comando groupadd . . . . . . . . . . . . . . . . . . . . . . . . . 11
7.3.3 Comando adduser . . . . . . . . . . . . . . . . . . . . . . . . . . 12
7.4 Criando Usurios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
7.4.1 Comando adduser . . . . . . . . . . . . . . . . . . . . . . . . . . 13
7.4.2 Comando useradd . . . . . . . . . . . . . . . . . . . . . . . . . . 14
7.5 Adicionando usurio ao grupo . . . . . . . . . . . . . . . . . . . . . . . 15
7.5.1 Comando addgroup . . . . . . . . . . . . . . . . . . . . . . . . . 15
7.5.2 Comando adduser . . . . . . . . . . . . . . . . . . . . . . . . . . 16
7.5.3 Comando gpasswd . . . . . . . . . . . . . . . . . . . . . . . . . 17
7.6 Deletando usurio de um grupo . . . . . . . . . . . . . . . . . . . . . . 17
7.6.1 Comando deluser . . . . . . . . . . . . . . . . . . . . . . . . . . 17
7.6.2 Comando gpasswd . . . . . . . . . . . . . . . . . . . . . . . . . 18
2
4Linux www.4linux.com.br Contedo
group -> contm as informaes dos grupos e usurios que fazem parte deles;
4
4Linux www.4linux.com.br 7.1 Registro de usurios no sistema
Cada usurio cadastrado no sistema identificado por uma linha no arquivo /etc/-
passwd. Os campos so separados pelo caractere : (dois pontos). O formato do ar-
quivo /etc/passwd o seguinte: usuario:x:1000:1000:User da Silva,8111-1234:/home/usurio:/bin/
Onde:
Campo 2 -> Referncia da senha do usurio, pois ela fica armazenada em outro
arquivo.
Debian:
CentOS:
Essas definies de usurios de sistema e usurios normais podem variar nas distri-
buies, somente o UID 0 padro em todas as distribuies.
Debian:
CentOS:
O suporte a senhas shadow costuma vir ativado por padro em todas as distribui-
es. Em algumas delas, se forem instaladas no modo expert, possvel optar
por ativar ou no esse suporte. sempre recomendado deixar as senhas shadow
ativadas.
7.2.2 Comando id
1 # id
1 # id aluno
O uso do comando groups, sem parmetros, faz com que o sistema informe os gru-
pos dos quais o usurio membro.
1 # groups
Para ver qual grupo o usurio aluno pertence utilize a seguinte sintaxe:
1 # groups aluno
O comando finger mais amigvel e nos traz maiores informaes como: Lo-
gin, Nome, Diretrio home, Shell, nmero de e-mails no lidos e os horrios das
ltimas autenticaes que esse usurio realizou.
1 # finger aluno
O comando users mostra de maneira bem simples os usurios que esto logados
no sistema. A sintaxe do comando users a seguinte:
1 # users
O comando who mostra quais usurios esto logados na mquina. Traz informa-
es adicionais sobre qual terminal est sendo utilizado, o momento e a partir de
qual mquina foi feito o login de cada usurio.
1 # who
7.2.7 Comando w
1 # w
1 # w aluno
Um usurio sempre deve pertencer a um grupo primrio, mas pode ser adicionado a
grupos secundrios, normalmente usado dentro de uma estrutura empresarial onde
os usurios precisam pertencer a vrios grupos para terem acessos a arquivos de
outros setores.
S funciona no Debian:
1 # addgroup rede
2 # addgroup internet
CentOS:
No existe o comando.
1 # groupadd aula
S funciona no Debian:
CentOS:
Antes de criarmos um usurio, vamos definir o que conter por padro em seu di-
retrio home, isto definido no arquivo /etc/skel, tudo o que estiver dentro deste
diretrio ser adicionado ao home do usurio por padro. Crie um diretrio e um
arquivo dentro do diretrio /etc/skel:
Este comando pode ser usado de vrias formas, mas a sintaxe mais utilizada a
seguinte:
Debian:
1 # adduser mandark
2 # adduser meemee
Dessa maneira ele adicionar o usurio, j pedindo para definir sua senha e as infor-
maes adicionais. Automaticamente, ele j cria um grupo com o mesmo nome do
usurio e copia todos os arquivos que esto no diretrio /etc/skel para o diretrio
home do usurio.
1 # id mandark
2 # ls / home / mandark
CentOS:
1 # useradd leelee
2 # useradd levinsky
1 # passwd levinsky
Agora tente se logar no terminal com o usurio levinsky e veja que, possvel aps
ser definida a senha. Mas tente se logar na parte grfica e veja o que acontece, no
possvel, pois o usurio no tem diretrio home.
-u -> UID
-g -> GID
perl -e print crypt(123456, salt) -> criptografar senha 123456 no formato crypt
1 # id deedee
O comando addgroup pode ser utilizado para adicionar um usurio a um grupo. Adi-
cione o usurio mandark ao grupo rede, aula e aluno:
CentOS:
No existe o comando.
S funciona no Debian:
1 # id mandark
CentOS:
O comando gpasswd pode ser utilizado para definir a senha de um grupo. Utili-
zando a opo -a podemos adicionar um usurio a um grupo secundrio.
Visualize:
1 # id mandark
Visualize:
1 # id mandark
CentOS:
No tem o comando.
O comando gpasswd pode ser utilizado para remover um usurio de um grupo se-
cundrio. Para remover um usurio de um grupo secundrio a sintaxe a seguinte:
Visualize:
1 # id mandark
Visualize:
1 # id mandark
A remoo de usurios pode ser feita de duas formas. A primeira mantendo o dire-
trio home do usurio e a segunda, removendo tambm o home. aconselhvel
que se remova o diretrio do usurio para que um prximo usurio adicionado ao
sistema no acabe como dono daquele diretrio e tendo acesso a informaes s
quais ele no deveria ter. Isso pode acontecer porque a delegao de UIDs se-
quencial. Mas para remover o usurio com o seu diretrio, tambm aconselhvel,
antes, fazer um backup de tudo o que aquele usurio possua ou transferir todos os
arquivos para o responsvel. O usurio que ser removido no pode estar logado.
1 # userdel meemee
Repare que a usuria meemee foi removida, mas seu diretrio home no:
1 # ls -l / home
O problema aqui que o prximo usurio que for criado, herdar o diretrio pra si,
veja:
1 # adduser herdeiro
2 # ls -l / home
Alm de ser criado um diretrio home, ele tambm herda o do usurio anterior, isto
acontece porque os usurios so criados conforme os UIDs disponveis na sequn-
cia. Para remover o usurio e o seu diretrio home, necessrio utilizar a opo
-r da seguinte forma:
1 # userdel -r deedee
1 # ls -l / home
1 # deluser levinsky
1 # ls -l / home
1 # adduser levinsky
1 # ls -l / home
1 # adduser levinsky
1 # ls -l / home
CentOS:
No tem o comando.
O comando deluser pode tambm deletar um grupo, desde que este no seja o
grupo primrio de um usurio. Vamos deletar o grupo criado anteriormente chamado
empresa:
Apaga um grupo do sistema. Quando usado, este comando apaga todos os dados
do grupo especificado dos arquivos de contas do sistema. No possvel remover o
grupo primrio de um usurio. Remova o usurio primeiro.
Visualize que o usurio mandark pertence ao grupo aula que criamos anteriormente:
1 # id mandark
1 # groupdel aula
1 # id mandark
1 # delgroup internet
CentOS:
No existe o comando.
www.4linux.com.br
Contedo
Administrao de Usurios II 2
8.1 Modificando Usurios . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
8.1.1 Comando passwd . . . . . . . . . . . . . . . . . . . . . . . . . . 3
8.1.2 Comando usermod . . . . . . . . . . . . . . . . . . . . . . . . . 4
8.2 Alterao do Dono e Grupo . . . . . . . . . . . . . . . . . . . . . . . . . 7
8.3 Introduo a tipos de permisses . . . . . . . . . . . . . . . . . . . . . . 9
8.4 Permisses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
8.4.1 LITERAL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
8.4.2 OCTAL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
8.4.3 Exemplos de permisses . . . . . . . . . . . . . . . . . . . . . . 17
8.5 Umask . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
8.5.1 Clculo da umask . . . . . . . . . . . . . . . . . . . . . . . . . . 21
8.6 Permisses Especiais . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2
Administrao de Usurios II
Depois do usurio ter sido criado podemos usar alguns comandos para modificar sua
conta. O primeiro ser o passwd que possibilita adicionar ou modificar a senha de
um usurio. As principais sintaxes que podem ser utilizadas nesse comando esto
descritas abaixo.
1 # passwd
3
8.1 Modificando Usurios 4Linux www.4linux.com.br
acontece com o usurio root, que pode definir a nova senha diretamente, tanto
para ele quanto para os outros usurios.
1 # passwd mandark
1 # passwd -l mandark
Tente se logar com o usurio mandark, no possvel, pois sua conta est bloque-
ada. Para desbloquear a conta do usurio mandark:
1 # passwd -u mandark
Outro comando que pode ser utilizado para modificar parmetros do usurio o
usermod. Ele possibilita alterar qualquer tipo de informao relativa ao usurio.
Um dos parmetros que pode ser modificado o grupo primrio, usando-se a opo
-g. Com a opo -G, podemos alterar os grupos secundrios.
1 # id mandark
Visualize:
1 # id mandark
-d diretrio [-m] : cria um novo diretrio home para o usurio. A opo -m faz com
que o diretrio atual do usurio seja movido para o novo diretrio.
-U : desbloqueia a conta
Como j vimos, cada arquivo e diretrio possui um dono e um grupo. Para alter-los
podemos utilizar os comandos chown e chgrp como nos exemplos a seguir.
Como criamos como usurio root, o dono e o grupo do diretrio criado pertencem ao
usurio root e grupo root:
Temos que mudar o usurio e grupo para o usurio leelee e seu grupo primrio
leelee. Alterando apenas o grupo de root para leelee:
Visualize:
Outra forma de trocar apenas o grupo com o comando chown, veja sua sintaxe:
Visualize:
1 # passwd leelee
Agora se logue na parte grfica como usurio leelee. Para poder alterar o dono/-
grupo de arquivos e diretrios dentro do diretrio utilize o parmetro -R para fazer
a alterao recursiva
Tanto para o usurio root, quanto para o usurio comum, sempre aconselhvel
ter uma boa poltica de criao de senhas, para que um possvel invasor no se
aproveite de um usurio com uma senha fraca. At mesmo um usurio comum,
precisa tomar cuidado com a sua senha, pois esse seria o primeiro passo para o
invasor escalar privilgios no sistema, e virar o usurio administrador root. Evite
usar senhas com datas de aniversrio, casamento e outras datas que so fceis
de serem descobertas. Evite usar palavras listadas em um dicionrio. Uma boa
Para que os usurios comuns e o root tenham acesso ao sistema e consigam tra-
balhar normalmente, so necessrios 5 elementos.
Nome;
Senha;
Diretrio Home;
Shell;
Grupo Primrio;
Devemos ter em mente que um usurio sempre deve estar vinculado a um grupo,
pois isso afeta diretamente a questo de permisses dentro do sistema.
8.4 Permisses
A cada permisso atribudo um valor, mostrado entre parnteses, que ser utilizado
para a definio de permisses.
Alm disso, cada arquivo contm trs conjuntos de permisses, sendo elas:
Sendo assim, considere a seguinte sada do comando ls -l, para um arquivo: permis-
so do arquivo:
Vamos entender o que essas linhas significam. O primeiro caractere pode ser:
1 $ cd / tmp
2 $ touch arquivo
1 $ ls -l / tmp / arquivo
2 -rw -r --r - - 1 aluno aluno 0 2011 -11 -04 12:17 arquivo
8.4.1 LITERAL
O caractere seguinte poder ser um sinal de = para deixar a permisso igual que
se deseja, + para garantir a permisso ou - para retirar a permisso. Por fim,
detalhamos a permisso: A letra r significa leitura, w escrita e x execuo,
como era de se esperar.
1 $ ls -l / tmp / arquivo
2 ----r --r - - 1 aluno aluno 0 2011 -11 -04 12:17 arquivo
As permisses seguem uma ordem dono, grupo, outros, ou seja, se voc o dono as
permisses que se encaixam no seu perfil a de dono, mesmo que voc pertena
ao grupo, as permisses de dono prevalecem.
Agora se logue com o usurio mandark, que pertence ao grupo aluno, em outro
terminal e tente ler o arquivo:
As permisses de grupo permitem que ele abra o arquivo para leitura, mas no para
escrita:
Este comando adiciona a permisso de escrita para os usurios que fazem parte do
mesmo grupo ao qual o arquivo pertence. As demais permisses no so altera-
das.
Se logue com o usurio mandark que pertence ao grupo aluno e tente escrever no
arquivo.
1 $ ls -l / tmp / diretorio
2 $ cd / tmp / diretorio
1 $ cd ..
2 $ chmod a - x / tmp / diretorio
1 $ cd / tmp / diretorio
1 $ ls / tmp / diretorio
8.4.2 OCTAL
Vejamos um exemplo:
importante observar que quando usamos a forma literal, alteramos apenas o pa-
rmetro especificado, no alterando as demais permisses. J na forma numrica,
alteramos todas as permisses simultaneamente.
Ou
Ou
Verifique a permisso:
1 # ls -l / tmp / naofazer
2 - rwxrwxrwx 1 root root 0 2011 -11 -06 22:17 naofazer
Evite dar permisso total para um arquivo ou diretrio a no ser que seja realmente
preciso.
Ou
Ou
Visualize:
1 # ls -l / tmp / naofazer
Comando para alterar a permisso padro do arquivo arquivo para que todos os
usurios apenas possam l-lo.
Visualize:
1 # ls -l / tmp / arquivo
ANTES:
DEPOIS:
8.5 Umask
1 Debian :
2
3 O valor padr o da " umask " fica armazenada no arquivo " / etc / login .
defs " . Caso n o exista adicione umask < valor \ _da \ _umask >.
4
5 Ex :
6
7 umask 0022
8
9 O primeiro " 0 " significa modo octal , pode - se passar o valor em
hexadecimal colocando " 0 x " como prefixo .
10 CentOS :
11
12 O valor padr o da " umask " fica armazenada no arquivo " / etc / bashrc "
1 # umask
Para Diretrio:
Para calcular a umask para um diretrio, pegue a permisso total que um diretrio
pode chegar, 777. Subtraia a sua umask atual.
777 permisso mxima para um diretrio - 022 umask atual = 755 permisso do
diretrio a ser criado
777 permisso mxima para um diretrio - 033 umask atual = 744 permisso do
diretrio a ser criado Para Arquivo:
Para calcular a umask para um arquivo, saiba que um arquivo no pode ser criado
com permisso de execuo por padro, esta permisso s pode ser passada para
ele manualmente. Logo a permisso do arquivo no pode ser mpar, porque o bit de
execuo vale 1. Como calcular? Ex: umask 022
777 Permisso mxima para um arquivo - 022 umask atual = 755 permisso para o
arquivo, mas lembre-se no pode ter permisso de execuo, ento subtraia 1 dos
bits que sejam mpares:
777 Permisso mxima para um arquivo - 033 umask atual = 744 permisso para o
arquivo, mas lembre-se no pode ter permisso de execuo, ento subtraia 1 dos
bits que sejam mpares:
Repare que a permisso no muda para o arquivo com a umask 022 e umask 033.
O Sitcky bit era bastante utilizado para realizar otimizaes de acesso a conte-
dos, entretanto, a partir da srie 2.6 do kernel do Linux essa tarefa realizada dire-
tamente pelo kernel. A nica utilidade desse bit, atualmente, fazer diretrios de
utilizao comum a todos os usurios, como no /tmp. Quando esse bit est ativo
em um diretrio, todo contedo criado dentro dele pertencer ao criador do contedo
e por mais que ele atribua a esse contedo permisses totais para todos os usurios,
o nico que poder excluir o arquivo ou diretrio ser o prprio dono ou o root ou
ainda o dono do diretrio que tem a permisso. Para atribuirmos esses bits especi-
ais, procedemos da mesma forma que nas permisses comuns, somando os valores
e utilizando o comando chmod, mas agora utilizando quatro nmeros, o primeiro
nmero sendo o bit especial, seguido dos trs da permisso padro.
Veja que quando o arquivo ou diretrio no tem permisso de execuo, o bit espe-
cial representado por uma letra S (Upper Case), e quando possuem uma permis-
so de execuo, o bit especial apresentado como s (Lower Case). O mesmo
acontece com o Sticky bit, mas com a letra t e T.
Exemplos:
Suid Bit:
Os nossos usurios comuns s podem mudar sua senha pois o comando passwd
est com o bit SUID ativado.
Desabilite o Suid:
1 $ passwd
SGID Bit:
1 # mkdir / teste
2 # chmod 777 / teste
1 $ ls -l / teste
2 -rw -r --r - - 1 aluno aluno 0 2011 -11 -07 11:01 numero1
Agora como root altere a permisso do diretrio teste, adicionando o SGID Bit:
Novamente como usurio aluno, crie um novo arquivo dentro do diretrio teste:
1 $ ls -l / teste
2 -rw -r --r - - 1 aluno aluno 0 2011 -11 -07 11:01 numero1
3 -rw -r --r - - 1 aluno root 0 2011 -11 -07 11:19 numero2
Stick Bit:
Agora modifique as permisses dos arquivos dentro dele dando permisso total para
todos os usurios:
1 $ ls -ld / teste
2 drwxrwsrwt 2 root root 4096 2011 -11 -07 11:19 / teste
3 $ ls -l / teste
4 - rwxrwxrwx 1 aluno aluno 0 2011 -11 -07 11:01 / teste / numero1
5 - rwxrwxrwx 1 aluno root 0 2011 -11 -07 11:19 / teste / numero2
Agora que voc viu que tem permisso total nos arquivos, tente deletar algum arquivo
dentro do diretrio teste:
1 $ rm / teste / numero1
www.4linux.com.br
Contedo
Quotas de Disco 2
8.1 Introduo Terica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
8.1.1 Quotas por Usurio . . . . . . . . . . . . . . . . . . . . . . . . . 6
8.1.2 Quotas por Grupo . . . . . . . . . . . . . . . . . . . . . . . . . . 10
8.2 Replicando quotas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
8.3 Criando usurio com quota definida (S funciona no Debian) . . . . . . 13
8.3.1 Aviso de quota excedida . . . . . . . . . . . . . . . . . . . . . . . 13
2
Quotas de Disco
3
8.1 Introduo Terica 4Linux www.4linux.com.br
Uma vez criada essa estrutura, basta editar os arquivos de controle de quotas e
distribuir as quantidades de forma apropriada. A quota somente pode ser aplicada
por parties.
Edite o arquivo /etc/fstab e inclua as opes de quota por usurio e por grupo em
/home:
1 UUID =12 e9cf3f -99 b3 -4 e8e -8079 - d4337b2ce9c8 / home ext3 defaults ,
usrquota , grpquota 0 2
1 # mount
1 # ls -l / home
1 # quotaon / home
1 # quotaoff / home
1 # repquota - va
1 # repquota - vag
Vamos definir qual a quantidade de recursos do HD que cada usurio poder utili-
zar. Vamos impor que o usurio mandark poder utilizar at 50MB com um limite
mximo de 60MB ou 100 arquivos com o limite mximo de 110 arquivos.
1 # edquota -u mandark
Onde:
soft -> limite da quota de espao disponvel para gravao, ao ultrapassar este limite
o usurio estoura sua quota.
hard -> limite mximo permitido de espao disponvel para gravao, aps exceder
sua quota, existe um perodo de tempo chamado grace time para uso deste limite.
inodes -> tamanho real utilizado em nmero de arquivos. (no possvel alterar)
soft -> limite da quota de nmero de arquivos que podem ser criados, ao ultrapassar
este limite o usurio estoura sua quota.
hard -> limite mximo permitido de nmero de arquivos que podem ser criado, aps
exceder sua quota, existe um perodo de tempo chamado grace time para uso deste
limite.
1 # repquota -v -a
1 # edquota -t
Caso o usurio estoure sua quota ele tem um tempo(grace period) antes de sua
conta ser bloqueada para apagar os arquivos necessrios para utilizar o limite de
sua quota.
1 # quota -u mandark
1 $ yes > a
Depois que a quota estourou, volte ao terminal do root, examine o status da quota
e veja se a quota do usurio mandark est estourada por espao utilizado:
1 # repquota - va
Depois que a quota estourou, volte ao terminal do root, examine o status da quota
e veja se a quota do usurio mandark est tambm por nmero de arquivos:
1 # repquota - va
Quando o usurio est com a quota estourada possvel aumentar o "grace pe-
riod"para ele:
Onde: -u -> defini que a quota pra um usurio mandark -> usurio que receber a
definio de quota -T -> define o prodo de grace time 86400 -> tempo em segundos
(por tamanho) 86400 -> tempo em segundos (por inode) /home -> partio que ser
definida a quota
1 $ rm a file *
1 # quota -u mandark
Outra forma de definir a quota do usurio atravs do comando setquota, este co-
mando muito til para scripts.
1 # quota -u mandark
Ou
1 # edquota -g users
1 # repquota - vag
Verifique os detalhes mais avanados sobre o uso das quotas nas parties.
1 # quotastats
Troque sua permisso para toda vez que um arquivo for criado, pertena ao grupo
users, para isso mude tambm o grupo do diretrio para users:
1 $ yes > a
1 # repquota - vag
1 # repquota - va
O usurio mandark tem quota definida e o usurio rh no tem, ento vamos copiar a
quota do usurio mandark para o usurio herdeiro:
Onde:
-u -> usurio
-p -> prottipo
-g -> grupo
1 # repquota - va
Crie um usurio com o comando adduser e veja que ele j ter quota definida:
1 # adduser compras
2 # repquota - va
Quando a quota por grupo deve-se eleger um usurio para receber os e-mails de
quota excedida do grupo.
1 # warnquota -u
2 # warnquota -g
www.4linux.com.br
Contedo
Servidor de Impresso 16
10.3 Introduo Terica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
10.3.1 Instalao Servidor Cups . . . . . . . . . . . . . . . . . . . . . . 17
10.4 Compartilhando a impressora . . . . . . . . . . . . . . . . . . . . . . . . 40
10.5 Configurao do Cliente . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
2
Trabalhando com Mdulos
O kernel que vem por padro em uma distribuio, deve ser capaz de rodar em pra-
ticamente qualquer PC e dar suporte a quaisquer tipos de recursos que o usurio
pretenda utilizar, o desenvolvedor compila um kernel que fornece todas as funciona-
lidades bsicas e, em separado, compila pedaos de cdigo que do suporte a funci-
onalidades mais especficas. Esses pedaos de cdigo so os chamados mdulos.
Dessa forma, quando o sistema carregado, um kernel bsico se coloca na memria
e passa a controlar a mquina. Neste ponto so verificadas outras funcionalidades
que se espera que o kernel d suporte, como por exemplo utilizar uma partio XFS.
Neste momento, se o kernel no possuir suporte nativo a esse file system ele ir
verificar se o mdulo que d suporte a ele foi compilado e se est disponvel. Se
esse mdulo for encontrado, ele ser carregado expandindo as funcionalidades do
kernel.
3
10.2 Gerenciando os mdulos 4Linux www.4linux.com.br
De modo geral, a escolha tende a ser a compilao como mdulo. Isso se traduz no
carregamento dinmico do cdigo apenas quando esta funcionalidade for necess-
ria. Alm disso, torna o kernel mais enxuto, leve, e portanto mais eficiente. Diversos
componentes do kernel do Linux so implementados como mdulos, por exemplo,
filesystems, device drivers, e novas camadas de protocolos de comunicao.
Em alguns casos, compilar o cdigo juntamente com o kernel pode ser necessrio.
Se um determinado componente precisa alterar alguma estrutura do kernel, ele no
ter privilgios de fazer isso dinamicamente, ou mesmo que gere sua prpria es-
trutura modificada, o restante do kernel e outros mdulos carregados ainda estaro
enxergando a antiga estrutura.
Ao executar o comando lsmod voc pode ver quais mdulos esto carregados atual-
mente no seu kernel. Abaixo um exemplo da sada deste comando:
1 # lsmod
2 Module Size Used by Tainted : P
3 ppp_generic 24060 0 ( autoclean ) ( unused )
4 slhc 6564 0 ( autoclean ) [ ppp_generic ]
5 ircomm - tty 24224 0 ( autoclean ) ( unused )
6 ircomm 9736 0 ( autoclean ) [ ircomm - tty ]
7 irda 112112 0 ( autoclean ) [ ircomm - tty ircomm ]
8 lp 8096 0 ( autoclean ) ( unused )
9 parport 34176 0 ( autoclean ) [ lp ]
10 printer 8448 0 ( unused )
11 agpgart 40896 3 ( autoclean )
12 nvidia 1765632 11 ( autoclean )
13 i810_audio 26312 0
14 soundcore 6276 0 [ i810_audio ]
15 ac97_codec 12488 0 [ i810_audio ]
16 nfsd 74256 8 ( autoclean )
Observe a coluna Used. Ela reflete quantos processos esto fazendo uso do mdulo.
Todo mdulo deve implementar um campo na sua estrutura de dados denominado
usage counter para esta finalidade. Um mdulo s pode ser removido da memria
1 # uname -r
Dica LPI: O comando que exibe o Kernel em uso, e suas opes : uname
-a
1 # lsmod
2 # cat / proc / modules
Veja que a sada do comando lsmod em colunas, listado todos mdulos que esto
carregados em memria, inclusive os que no esto em uso. Onde:
1 # modprobe -l
1 # modinfo ext3
1 # modprobe vfat
1 # modinfo vfat
1 # modprobe -r vfat
O comando modprobe tambm pode ser utilizado para remover mdulos que no
estejam sendo utilizados por outros mdulos. Alm dele remover o mdulo, ele tam-
bm remove suas dependncias. Para executar essa ao, basta usar a opo -r:
1 # modinfo vfat
2 filename : / lib / modules /2.6.32 -5 -686/ kernel / fs / fat / vfat . ko
3 author : Gordon Chaffee
4 description : VFAT filesystem support
5 license : GPL
6 srcversion : 13 B4B9904275625D3971810
7 depends : fat , nlsbase
8 vermagic : 2.6.32 -5 -686 SMP mod_unload modversions 686
Na sada temos duas dependncias para o mdulo vfat, agora precisamos saber se
suas dependncias no so dependentes de outras dependncias:
1 # modinfo fat
2 filename : / lib / modules /2.6.32 -5 -686/ kernel / fs / fat / fat . ko
3 license : GPL
4 srcversion : F3CEDF3D6DC8D993978847D
5 depends : nls_base
6 vermagic : 2.6.32 -5 -686 SMP mod_unload modversions 686
1 # modinfo nls_base
2 filename : / lib / modules /2.6.32 -5 -686/ kernel / fs / nls / nls_base . ko
3 license : DUAL BSD / GPL
4 depends :
5 vermagic : 2.6.32 -5 -686 SMP mod_unload modversions 686
Lembrando que voc deve passar o caminho completo do mdulo para utilizar o
comando .
Todos os mdulos:
1 # modprobe -l
Mdulo especfico:
1 # modprobe -l nls_base
2 # modprobe -l fat
3 # modprobe -l vfat
Na sada do comando anterior verifique qual mdulo est sendo utilizado por outro:
Removendo os mdulos:
1 # rmmod vfat
2 # rmmod fat
3 # rmmod nls_base
1 # depmod
2 # ls / lib / modules / $ ( uname -r ) / modules . dep
3 # modprobe vfat
DICA: Repare no nmero 10ec:8136 (PCI iD) este nmero nico para este dispo-
sitivo e atravs dele podemos saber qual o nome do seu mdulo e qual verso do
kernel tem suporte a ele.
1 # lspci -v -s 04:00.0
2 04:00.0 Ethernet controller : Marvell Technology Group Ltd . 88 E8057
PCI -E Gigabit Ethernet Controller ( rev 10)
3 Subsystem : Sony Corporation Device 907 a
4 Flags : bus master , fast devsel , latency 0 , IRQ 46
5 Memory at e6620000 (64 - bit , non - prefetchable ) [ size =16 K ]
6 I/O ports at a000 [ size =256]
7 Expansion ROM at e6600000 [ disabled ] [ size =128 K ]
8 Capabilities : [48] Power Management version 3
9 Capabilities : [5 c ] MSI : Enable + Count =1/1 Maskable - 64 bit +
10 Capabilities : [ c0 ] Express Legacy Endpoint , MSI 00
11 Capabilities : [100] Advanced Error Reporting
12 Capabilities : [130] Device Serial Number 6b -3 b -74 - ff - ff -49 -42 -54
13 Kernel driver in use : sky2
14 Kernel modules : sky2
Outra forma de busca seria buscar informaes na internet ou tentar determinar qual
o mdulo que ela utiliza na raa(tentativa e erro):
No h uma regra geral para determinar qual o mdulo que fornece su-
porte a um determinado hardware. A forma mais fcil utilizar um kernel genrico
e tentar descobrir qual o mdulo que utilizado por meio dos comandos lsmod
e modinfo, procurar na rvore do kernel, ou procurar nos mecanismos de busca na
Internet.
Aps descobrir o mdulo descarregue-o e veja que a placa rede parou de funcio-
nar:
1 # modprobe -r r8169
Debian:
CentOS:
Verifique que o mdulo zaurus para PDA ZAURUS no est carregado, reinicie a
mquina e veja que ele ser carregado automaticamente, aps o boot:
O CUPS - Common Unix Printing System uma das formas mais utilizadas atual-
mente para trabalhar com impresso no mundo GNU/Linux. Ele utiliza o protocolo
IPP - Internet Printing Protocol para gerenciar as filas e trabalhos de impresso. Com
o IPP voc pode imprimir de qualquer lugar, atravs da internet para sua impres-
sora domstica, por exemplo. Alm disso, o CUPS fornece uma interface Web
para gerenciamento de quotas de impresso e que oferece suporte maioria das
impressoras existentes.
Debian:
CentOS:
17
10.3 Introduo Terica 4Linux www.4linux.com.br
Clique em Printers:
Antes de fazer o download, pode-se tentar instalar o driver hplip pelo gerenciador
de pacotes de sua distribuio:
Debian:
Verifique a verso:
1 # dpkg -l hplip
CentOS:
Verifique a verso:
1 # rpm -q hplip
Compare as verses com a do site, talvez sua verso no tenha suporte para a
impressora, ento faa o download da verso mais atual:
Clique em avanar, verfique que na prxima tela, apresentado que o pacote forne-
cido pela distribuio no tem suporte a esta impressora: Red Hat Enterprise linux
6.0 supplies HPLIP 1.6.7 and it does not support your printer.
Clique em avanar:
Faa o download:
Para instalar:
No Debian:
Na tela seguinte alertado que o Debian6 fornece uma verso do driver hplip que no
suporte a impressora HP. Debian 6.0 supplies HPLIP 2.8.6 and it does not support
your printer
Clique em avanar:
21
22
23 INSTALLATION MODE
24 -----------------
25 Automatic mode will install the full HPLIP solution with the most
common options .
26 Custom mode allows you to choose installation options to fit
specific requirements .
27 Qual o tipo de instala o : autom tica
28 Please choose the installation mode ( a = automatic * , c = custom , q = quit )
: a
29 Initializing . Please wait ...
30
31 INTRODUCTION
32 ------------
33 This installer will install HPLIP version 3.11.10 on your computer .
34 Please close any running package management systems now ( YaST , Adept
, Synaptic , Up2date , etc ) .
35
36
37 DISTRO / OS CONFIRMATION
38 ----------------------
39 Distro appears to be Debian 6.0.3.
40 DICA : Quando perguntar qual a vers o da sua distro no cado do Debian ,
diga que n o est correto e selecione manualmente a vers o 6.0 ,
o pacote n o atualizado constantemente quanto a distribui o e
por isso , falhar a instala o postriormente se n o escolher
manualmente .
41 Is " Debian 6.0.3 " your correct distro / OS and version ( y = yes * , n = no ,
q= quit ) ? n
42
43 DISTRO / OS SELECTION
44 -------------------
45
46 Choose the name of the distro / OS that most closely matches your
system :
47
113 warning : Missing REQUIRED dependency : cups - image ( CUPS image - CUPS
image development files )
114 warning : Missing REQUIRED dependency : libjpeg ( libjpeg - JPEG
library )
115
116
117 INSTALL MISSING OPTIONAL DEPENDENCIES
118 -------------------------------------
119 warning : There are 10 missing OPTIONAL dependencies .
120 note : Installation of dependencies requires an active internet
connection .
121 warning : Missing REQUIRED dependency for option network : libcrypto
( libcrypto - OpenSSL cryptographic library )
122 warning : Missing REQUIRED dependency for option network :
libnetsnmp - devel ( libnetsnmp - devel - SNMP networking library
development files )
123 warning : Missing REQUIRED dependency for option gui_qt4 : pyqt4 -
dbus ( PyQt 4 DBus - DBus Support for PyQt4 )
124 warning : Missing REQUIRED dependency for option gui_qt4 : pyqt4 (
PyQt 4 - Qt interface for Python ( for Qt version 4. x ) )
125 warning : Missing OPTIONAL dependency for option fax : reportlab (
Reportlab - PDF library for Python )
126 warning : Missing REQUIRED dependency for option fax : dbus ( DBus -
Message bus system )
127 warning : Missing REQUIRED dependency for option scan : sane - devel (
SANE - Scanning library development files )
128 warning : Missing OPTIONAL dependency for option scan : pil ( PIL -
Python Imaging Library ( required for commandline scanning with hp
- scan ) )
129 warning : Missing OPTIONAL dependency for option scan : xsane ( xsane
- Graphical scanner frontend for SANE )
130 warning : Missing OPTIONAL dependency for option base : cups - ddk (
CUPS DDK - CUPS driver development kit )
131 warning : This installer cannot install cups - ddk for your distro / OS
and / or version .
132
133
205 OK
206
207
208 BUILD AND INSTALL
209 -----------------
210 Running ./ configure -- with - hpppddir =/ usr / share / ppd / HP -- libdir =/ usr
/ lib64 -- prefix =/ usr -- enable - qt4 -- enable - doc - build -- disable -
cups - ppd - install -- disable - foomatic - drv - install -- disable -
foomatic - ppd - install -- disable - hpijs - install -- disable - policykit
-- enable - cups - drv - install -- enable - hpcups - install -- enable -
network - build -- enable - dbus - build -- enable - scan - build -- enable -
fax - build
211 Please wait , this may take several minutes ...
212 Command completed successfully .
213
214 Running make clean
215 Please wait , this may take several minutes ...
216 Command completed successfully .
217
218 Running make
219 Please wait , this may take several minutes ...
220 Command completed successfully .
221
222 Running make install
223 Please wait , this may take several minutes ...
224 Command completed successfully .
225
226
227 Build complete .
228
229
230 POST - BUILD COMMANDS
231 -------------------
232 / usr / sbin / usermod -a -G lp , lpadmin root ( Post - build step 1)
233
234
235 RESTART OR RE - PLUG IS REQUIRED
236 ------------------------------
237 If you are installing a USB connected printer , and the printer was
plugged in
238 when you started this installer , you will need to either restart
your PC or
239 unplug and re - plug in your printer ( USB cable only ) . If you choose
to restart ,
240 run this command after restarting : hp - setup ( Note : If you are using
a parallel
241 connection , you will have to restart your PC . If you are using
network / wireless ,
242 you can ignore and continue ) .
243 Restart or re - plug in your printer ( r = restart , p = re - plug in * , i =
ignore / continue , q = quit ) :
244 Please unplug and re - plugin your printer now . Press < enter > to
continue or q to quit : < enter >
1 # hp - setup
Adicione a impressora:
Pode-se adicionar a impressora diretamente pela sua interface grfica caso o driver
j esteja instalado:
Acesse: http://localhost:631
Caso sua impressora j esteja conectada ao servidor e ligada, ela ser detec-
tada automaticamente, escolha a forma com que ela est conectada correta-
mente, caso ela no tenha sido reconhecida.
Tudo o que pode ser feito no gerenciador grfico, pode ser feito no arquivo de confi-
gurao do servidor cups:
ServerName 192.168.200.254
Definimos nossa impressora conectada atravs da porta USB, mas e se fosse uma
impressora da rede, ou Paralela? Podemos conferir como ela seria referenciada
usando o comando abaixo:
1 # lpinfo -v
1 # lpstat -t
ou
1 # lpq - Pnome_da_empresa
www.4linux.com.br
Contedo
Redes avanado 2
11.1 Introduo Terica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
11.1.1 IPV4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
11.2 Mscara de rede . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
11.2.1 Alterando o nmero de bits da mscara de sub-rede . . . . . . . 8
11.2.2 Ipv6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
11.3 Tipos de Endereos IPv6 . . . . . . . . . . . . . . . . . . . . . . . . . . 24
11.3.1 Endereos Unicast . . . . . . . . . . . . . . . . . . . . . . . . . 25
11.4 Endereos Anycast . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
11.4.1 Endereo Multicast . . . . . . . . . . . . . . . . . . . . . . . . . 31
11.5 Estrutura do endereo Anycast . . . . . . . . . . . . . . . . . . . . . . . 33
11.6 ARP - Address Resolution Protocol . . . . . . . . . . . . . . . . . . . . . 36
11.7 Verificando portas abertas . . . . . . . . . . . . . . . . . . . . . . . . . . 40
11.7.1 Comando netstat . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
11.7.2 Comando nmap . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
11.8 Comando tcpdump . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
2
Redes avanado
11.1.1 IPV4
Os micros da rede local podem acessar a internet atravs de um roteador, que pode
ser tanto um servidor com duas placas de rede, quando um modem ADSL ou outro
dispositivo que oferea a opo de compartilhar a conexo. Neste caso, o roteador
passa a ser o gateway da rede e utiliza seu endereo IP vlido para encaminhar as
3
11.1 Introduo Terica 4Linux www.4linux.com.br
requisies feitas pelos micros da rede interna. Este recurso chamado de NAT
(Network Address Translation).
Mesmo nos endereos classe B (dois octetos para a rede, dois para o host, garan-
tindo 65 mil endereos) e nos classe C (trs octetos para a rede e um para o host,
ou seja, apenas 256 endereos) o desperdcio muito grande. Muitas empresas
alugam faixas de endereos classe C para utilizar apenas dois ou trs endereos por
exemplo.
Para piorar, parte dos endereos esto reservados para as classes D e E, que jamais
foram implementadas. Isto faz com que j haja uma grande falta de endereos,
principalmente os de classe A e B, que j esto todos ocupados.
A mscara de rede, juntamente com o endereo IP, define a rede o computador per-
tence, isto , que outros endereos IP que o computador pode comunicar diretamente
na mesma LAN.
A fim de compreender a mscara lembre-se sempre que os 4 bytes que define tanto o
endereo IP e a mscara de rede poderiam ser representados em formato binrio.
A mscara de rede , por definio, uma seqncia de "1"a partir da esquerda para
a direita, seguido por um certo nmero de "0"(a faixa de rede). Devido a esta regra
a mscara de rede muitas vezes representada com valores decimais, que soam
como um ou mais "255", seguido por um ou mais "0".
Por isso que existe uma outra notao conhecida como CIDR (Classless Inter-Domain
Routing), onde a mscara de sub-rede indicada simplesmente pelo nmero de bits
utilizados na mscara de sub-rede, conforme exemplos a seguir:
Analise o outro extremo desta questo. Imagine, por exemplo, uma empresa de
porte mdio, que tem a matriz em So Paulo e mais cinco filiais em outras cidades
do Brasil. Agora imagine que em nenhuma das localidades, a rede tem mais do
que 30 computadores. Se for usado as mscaras de sub-rede padro, teria que ser
definida uma rede Classe C (at 254 computadores), para cada localidade. Observe
que estamos reservando 254 nmeros IP para cada localidade (uma rede classe C
com mscara 255.255.255.0), quando na verdade, no mximo, 30 nmeros sero
utilizados em cada localidade. Na prtica, um belo desperdcio de endereos IP,
mesmo em um empresa de porte mdio ou pequeno.
Observe que neste exemplo, uma nica rede Classe C seria suficiente. J que so
seis localidades (a matriz mais seis filiais), com um mximo de 30 endereos por
localidade, um total de 254 endereos de uma rede Classe C seria mais do que
suficiente. Ainda haveria desperdcio, mas agora bem menor.
A boa notcia que possvel dividir uma rede (qualquer rede) em sub-redes, onde
cada sub-rede fica apenas com uma faixa de nmeros IP de toda a faixa original.
Por exemplo, a rede Classe C 200.100.100.0/255.255.255.0, com 256 nmeros IPs
disponveis (na prtica so 254 nmeros que podem ser utilizados, descontando o
primeiro que o nmero da prpria rede e o ltimo que o endereo de broadcast,
poderia ser dividida em 8 sub-redes, com 32 nmeros IP em cada sub-rede. O
esquema a seguir ilustra este conceito:
Para o exemplo da empresa com seis localidades (matriz mais cinco filiais), onde,
no mximo, so necessrios trinta endereos IP por localidade, a utilizao de uma
nica rede classe C, dividida em 8 sub-redes seria a soluo ideal. Na prtica a
primeira e a ltima sub-rede so descartadas, pois o primeiro IP da primeira sub-
rede representa o endereo de rede e o ltimo IP da ltima sub-rede representa o
endereo de broadcast. Com isso restariam, ainda, seis sub-redes. Exatamente a
quantia necessria para o exemplo proposto. Observe que ao invs de seis redes
classe C, bastou uma nica rede Classe C, subdividida em seis sub-redes. Uma bela
economia de endereos. Claro que se um dos escritrios, ou a matriz, precisasse de
mais de 32 endereos IP, um esquema diferente de diviso teria que ser criado.
Observe o que tem que ser alterado para fazer a diviso de uma rede padro (com
mscara de 8, 16 ou 24 bits) em uma ou mais sub-redes. Em seguida, veja alguns
exemplos de diviso de uma rede em sub-redes. Mos a obra.
Uma mscara de 8 bits significa que todos os bits do primeiro octeto so iguais a 1;
uma mscara de 16 bits significa que todos os bits do primeiro e do segundo octeto
so iguais a 1 e uma mscara de 24 bits significa que todos os bits dos trs primeiros
octetos so iguais a 1. Este conceito est ilustrado na tabela a seguir:
No exemplo da rede com matriz em So Paulo e mais cinco escritrios, vamos utilizar
uma rede classe C, que ser subdividida em seis sub-redes (na prtica 8, mas a
primeira e a ltima no so utilizadas). Para fazer esta subdiviso, voc deve alterar
o nmero de bits iguais a 1 na mscara de sub-rede. Por exemplo, ao invs de 24 bits,
voc ter que utilizar 25, 26, 27 ou um nmero a ser definido. Bem, j avanamos
mais um pouco:
Agora, naturalmente, surge uma nova questo: "Quantos bits?". Ou de uma outra
maneira (j procurando induzir o seu raciocnio): "O que define o nmero de bits a
ser utilizados a mais?"
Bem, esta uma questo bem mais simples do que pode parecer. Vamos a ela. No
exemplo proposto, precisamos dividir a rede em seis sub-redes. Ou seja, o nmero
de sub-redes deve ser, pelo menos, seis. Sempre lembrando que a primeira e a
ltima sub-rede no so utilizadas. O nmero de sub-redes proporcional ao nmero
de bits que vamos adicionar mscara de sub-rede j existente. O nmero de rede
dado pela frmula a seguir, onde n o nmero de bits a mais a serem utilizados
para a mscara de sub-rede:
No nosso exemplo esto disponveis at 8 bits do ltimo octeto para serem tambm
utilizados na mscara de sub-rede. Claro que na prtica no podemos usar os 8 bits,
seno ficaramos com o endereo de broadcast: 255.255.255.255, como mscara de
sub-rede. Alm disso, quanto mais bits pegar para a mscara de sub-rede, menos
sobraro para os nmeros IP da rede. Por exemplo, se adicionar mais um bit a
mscara j existente, ficarei com 25 bits para a mscara e 7 para nmeros IP, se
adicionar mais dois bits mscara original de 24 bits, ficarei com 26 bits para a
mscara e somente 6 para nmeros IP e assim por diante. O nmero de bits que
restam para os nmeros IP, definem quantos nmeros IP podem haver em cada
sub-rede. A frmula para determinar o nmero de endereos IP dentro de cada sub-
rede, indicado a seguir, onde n o nmeo de bits destinados a parte de host do
Na tabela a seguir, veja os clculos para a diviso de sub-redes que ser feita no
exemplo. Observe que quanto mais bits adicionado mscara de sub-rede, mais
sub-redes possvel obter, porm com um menor nmero de mquinas em cada
sub-rede. Lembrando que no exemplo estamos subdividindo uma rede classe C -
200.100.100.0/255.255.255.0, ou seja, uma rede com 24 bits para a mscara de
sub-rede original.
Claro que algumas situaes no se aplicam na prtica. Por exemplo, usando ape-
nas um bit a mais para a mscara de sub-rede, isto , 25 bits ao invs de 24. Neste
caso teremos 0 sub-redes disponveis. Pois com 1 bit possvel criar apenas duas
sub-redes, como a primeira e a ltima so descartadas, conforme descrito anterior-
mente, na prtica as duas sub-redes geradas no podero ser utilizadas. A mesma
situao ocorre com o uso de 7 bits a mais para a mscara de sub-rede, ou seja,
31 ao invs de 24. Nesta situao sobra apenas um bit para os endereos IP.
Com 1 bit posso ter apenas dois endereos IP, descontanto o primeiro e o ltimo
que no so utilizados, no sobra nenhum endereo IP. As situaes intermedi-
rias que so mais realistas. No nosso exemplo, precisamos dividir a rede Classe
C - 200.100.100.0/255.255.255.0, em seis sub-redes. De acordo com a tabela da
Figura anterior, precisamos utilizar 3 bits a mais para obter as seis sub-redes dese-
jadas.
Observe que utilizando trs bits a mais, ao invs de 24 bits (mscara original), vamos
utilizar 27 bits para a mscara de sub-rede. Com isso sobram cinco bits para os
nmeros IPs dentro de cada sub-rede, o que d um total de 30 nmeros IP por sub-
rede. Exatamente o que precisamos.
A prxima questo que pode surgir como que fica a mscara de sub-rede, agora
que ao invs de 24 bits, estou utilizando 27 bits, conforme ilustrado na tabela a
seguir:
Para determinar a nova mscara temos que revisar o valor de cada bit. Da esquerda
para a direita, cada bit representa o seguinte valor, respectivamente:
128 64 32 16 8 4 2 1
Como os trs primeiros bits do ltimo octeto foram tambm utilizados para a mscara,
estes trs bits somam para o valor do ltimo octeto. No nosso exemplo, o ltimo
octeto da mscara ter o seguinte valor: 128+64+32 = 224. Com isso a nova mscara
de sub-rede, mscara esta que ser utilizada pelas seis sub-redes, a seguinte:
255.255.255.224. Observe que ao adicionar bits mscara de sub-rede, fazemos
isso a partir do bit de maior valor, ou seja, o bit mais da esquerda, com o valor de
128, depois usamos o prximo bit com valor 64 e assim por diante. Na tabela a
seguir, apresento a ilustrao de como fica a nova mscara de sub-rede:
Com o uso de trs bits adicionais para a mscara de rede, teremos seis sub-redes
Nmero de redes e nmero de hosts em cada rede - divso de uma rede Classe
C.
At aqui foram vistos ememplos da rede Classe C, que est sendo subdividida em
vrias sub-redes. Porm tambm possvel subdividir redes Classe A e redes Classe
B. Lembrando que redes classe A utilizam, por padro, apenas 8 bits para o endereo
de rede, j redes classe B, utilizam, por padro, 16 bits. Na tabela a seguir, apresento
um resumo do nmero de bits utilizados para a mscara de sub-rede, por padro, nas
classes A, B e C:
Para subdividir uma rede classe A em sub-redes, basta usar bits adicionais para a
mscara de sub-rede. Por padro so utilizados 8 bits. Se voc utilizar 10, 12 ou mais
bits, estar criando sub-redes. O mesmo raciocnio vlido para as redes classe B,
as quais utilizam, por padro, 16 bits para a mscara de sub-rede. Se voc utilizar
18, 20 ou mais bits para a mscara de sub-rede, estar subdividindo a rede classe B
em vrias sub-redes.
Observe como o entendimento dos clculos binrios realizados pelo TCP/IP facilita
o entendimento de vrios assuntos relacionados ao TCP/IP, inclusive o conceito de
subnet. Por padro a classe B utiliza 16 bits para a mscara de sub-rede, ou seja,
uma mscara padro: 255.255..0.0. Agora se utilizar oito bits adicionais (todo o
terceiro octeto) para a mscara, ter todos os bits do terceiro octeto como sendo
iguais a 1, com isso a mscara passa a ser: 255.255.255.0. Este resultado est
coerente com a tabela da Figura 16.11. Agora ao invs de 8 bits adicionais, utilize 9.
Ou seja, todo o terceiro octeto (8 bits) mais o primeiro bit do quarto octeto. O primeiro
bit, o bit bem esquerda o bit de valor mais alto, ou seja, o que vale 128. Ao
usar este bit tambm para a mscara de sub-rede, ser obtida a seguinte mscara:
255.255.255.128. Tambm fecha com a tabela anterior. Com isso se conclui que o
entendimento da aritemtica e da representao binria, facilita muito o estudo do
protocolo TCP/IP e de assuntos relacionados, tais como subnet e roteamento.
Como listar as faixas de endereos para cada sub-rede? Este exatamente o as-
sunto que vem a seguir.
a) Quantos bits sero necessrios para fazer a diviso e obter pelo menos 10 sub-
redes?
a) Quantos bits sero necessrios para fazer a diviso e obter pelo menos 10 sub-
redes? R: 4 bits.
Como utilizei quatro bits do ltimo octeto (alm dos 24 bits dos trs primeiros octetos,
os quais j faziam parte da mscara original), sobraram apenas 4 bits para os ende-
reos IP, ou seja, para os endereos de hosts em cada sub-rede. Tenho que lembrar
da seguinte frmula: Nm. de end. IP dentro de cada sub-rede = 2n-2 substituindo
n por 4, vou obter um valor de 14. Com isso j estou em condies de responder a
alternativa b.
Como utilizei quatro bits do quarto octeto para fazer a diviso em sub-redes, os quatro
primeiros bits foram definidos iguais a 1. Basta somar os respectivos valores, ou seja:
128+64+32+16 = 240. Ou seja, com os quatro primeiros bits do quarto octeto sendo
iguais a 1, o valor do quarto octeto passa para 240, com isso j temos condies de
responder a alternativa c.
importante lembrar, mais uma vez, que esta ser a mscara de sub-rede utilizada
por todas as 14 sub-redes.
Diviso da rede em 14 sub-redes, onde cada sub-rede fica com 16 endereos IP,
sendo que a primeira e a ltima sub-rede no so utilizadas e o primeiro e o ltimo
nmero IP, dentro de cada sub-rede, tambm no so utilizados:
Vamos a mais um exemplo prtico, agora usando uma rede classe B, que tem inici-
almente, uma mscara de sub-rede: 255.255.0.0
a) Quantos bits sero necessrios para fazer a diviso e obter pelo menos 10 sub-
redes?
a) Quantos bits sero necessrios para fazer a diviso e obter pelo menos 20 sub-
redes?
R: 5 bits.
Como utilizei cinco bits do terceiro octeto (alm dos 16 bits dos dois primeiros oc-
tetos, os quais j faziam parte da mscara original), sobraram apenas 11 bits (os
trs restantes do terceiro octeto mais os 8 bits do quarto octeto) para os endereos
IP, ou seja, para os endereos de hosts em cada sub-rede. Lembre-se da seguinte
frmula:
R: 2046.
Como utilizei cinco bits do terceiro octeto para fazer a diviso em sub-redes, os cinco
primeiros bits foram definidos iguais a 1. Basta somar os respectivos valores, ou
seja: 128+64+32+16+8 = 248. Ou seja, com os quatro primeiros bits do quarto
octeto sendo iguais a 1, o valor do quarto octeto passa para 248, com isso j temos
R: 255.255.248.0 importante lembrar, mais uma vez, que esta ser a mscara de
sub-rede utilizada por todas as 30 sub-redes.
d) Listar a faixa de endereos de cada sub-rede. Como saber de que nmero at que
nmero vai cada endereo IP. Esta tambm fcil e o raciocnio o mesmo utilizado
para o exemplo anterior, onde foi feita uma diviso de uma rede classe C. Observe
o ltimo bit definido para a mscara. No nosso exemplo o quinto bit do terceiro
octeto. Qual o valor decimal do quinto bit (de qualque octeto)? 8 (o primeiro 128,
o segundo 64, o terceiro 32, o quarto 16 e o quinto 8. O valor do ltimo bit um
indicativo das faixas de variao para este exemplo. Ou seja, na prtica temos 2048
hosts em cada sub-rede, embora o primeiro e o ltimo no devam ser utilizados, pois
o primeiro o endereo da prpria sub-rede e o ltimo o endereo de broadcast
da sub-rede. Por isso que ficam 2046 hosts por sub-rede, devido ao -2"na frmula, o
-2"significa: - o primeiro - o ltimo. Ao listar as faixas, consideramos o valor do ltimo
bit da mscara. No nosso exemplo o 8. A primeira faixa vai do zero at um nmero
anterior ao valor do ltimo bit, no caso do 0 ao 7. A seguir indico a faixa de endereos
da primeira sub-rede (sub-rede que no ser utilizada na prtica, pois descarta-se a
primeira e a ltima):
Com isso todo endereo IP que tiver o terceiro nmero na faixa entre 0 e 7, ser um
nmero IP da primeira sub-rede, conforme os exemplos a seguir:
150.100.0.25
150.100.3.20
150.100.5.0
150.100.6.244
Qual seria a faixa de endereos IP da prxima sub-rede. Aqui vale o mesmo reci-
ocnio. O ltimo bit da mscara equivale ao valor 8. Esta a variao da terceira
parte do nmero IP, que onde esta sendo feita a diviso em sub-redes. Ento, se a
primeira foi de 0 at 7, a segunda sub-rede ter valores de 8 a 15 no terceiro octeto,
a terceira sub-rede ter valores de 16 a 23 e assim por diante.
Diviso da rede em 32 sub-redes, onde cada sub-rede fica com 2048 endereos IP,
sendo que a primeira e a ltima sub-rede no so utilizadas e o primeiro e o ltimo
nmero IP, dentro de cada sub-rede, tambm no so utilizados:
Com base na tabela apresentada, fica fcil responder em que sub-rede est contido
um determinado nmero IP. Por exemplo, considere o nmero IP 150.100.130.222.
Primeiro voc observa o terceiro octeto do nmero IP (o terceiro, porque neste
octeto que esto os ltimos bits que foram utilizados para a mscara de sub-rede).
Consultando a tabela anterior, voc observa o valor de 130 para o terceiro octeto
corresponde a sub-rede 17, na qual o terceiro octeto varia entre 128 e 135, conforme
indicado a seguir:
11.2.2 Ipv6
"IPv6 a nova verso do protocolo de redes de dados nos quais a Internet est ba-
seada. O IETF (Internet Engineering Task Force), desenvolveu suas especificaes
bsicas durante os anos 90. A principal motivao para o desenvolvimento e lan-
amento do IPv6 foi a expanso do espao de endereos disponveis na Internet,
permitindo assim que se conectem bilhes de novos dispositivos (PDAs, telefones
celulares, etc), novos usrios e tecnologias sempre-conectada (xDSL, cabo, Ether-
net ou fibra direto na residncia, comunicao via rede eltrica, etc).
Espao de endereamento
A proposta mais interessante, denominada TUBA (TCP and UDP with Bigger Ad-
dresses) propunha a substituio do IP pelo CNLP da pilha OSI. O CNLP bem
documentado e tem um espao de endereamento de at 20 octetos (160 bits). A
indisposio generalizada da comunidade Internet com o protocolo OSI, constatada
no trabalho de DIXON (1993), acabou sepultando a idia. Textos a favor e contra o
TUBA e o OSI podem ser encontrados facilmente na Internet.
Embora o roteamento por agregao seja padro para IPv4 desde 1995 com a im-
plementao da CIDR (FULLER, 1993), nem todas as redes classe A, B ou C podem
ser renumeradas, e os roteadores da espinha dorsal da Internet tm de conhecer
rotas especficas para inmeras redes no agregadas.
mite:
Segundo a RFC 2374, uma mesma interface, que utiliza o protocolo IPv6, pode utili-
zar mais de um endereo, diferentemente do IPv4, onde tal caracterstica s era pos-
svel em roteadores. Essa caracterstica importante porque na verso 6 algumas
aplicaes, em geral de controle, utilizam-se de endereos especiais que veremos
adiante. Para o endereamento das interfaces existem ento 3 tipos de endereos:
Unicast;
Anycast;
Multicast.
Esse tipo de endereo comumente usado em IPv4, que identifica apenas uma
nica interface. Desta forma um pacote destinado a um endereo do tipo Unicast
enviado diretamente para a interface associada a esse endereo. Foram definidos
pela RFC 2374 vrios tipos de endereos Unicast :
Loopback Address
Unspecified Address
NSAP Address
Loopback Address
Esse tipo de endereo, como o prprio nome j diz, o endereo da prpria interface.
Porm ele s pode ser usado quando um n envia um pacote para ele mesmo. No
IPv4 esse tipo de endereo era geralmente o 127.0.0.1, em IPv6 indicado por:
0:0:0:0:0:0:0:1
ou simplesmente:
::1
Esse endereo no pode ser associado a nenhuma interface fsica, nem como ende-
reo de fonte, nem como endereo de destino, mas pode ser imaginado como sendo
de uma interface virtual, a interface loopback. Um pacote IPv6 com endereo destino
do tipo loopback address tambm no deve deixar o prprio host, sendo que esse
endereo nunca ser repassado por um roteador IPv6.
Unspecified Address
0:0:0:0:0:0:0:0
ou simplesmente:
::
NSAP Address
Esse tipo de endereo ident ificado pelo prefixo FP - 0000001. Ele foi definido pela
RFC 1888 - OSI NSAPs and IPv6 como mecanismo de suporte para endereamento
OSI NSAP - Network Service Access Point em redes IPv6. Possui alm do FP de 7
bits, que o indica, 121 bits para constituio de seu endereo. IPX Address
O endereo do tipo Site Local similar aos endereos privados usados em IPv4,
como as redes 10.0.0.0 /8, 172.16.0.0/16 e 198.168.0.0/16. Esses endereos podem
ser usados para uma comunicao restrita dentro de um domnio especfico.
Esse tipo de endereo usado em IPv6 como um mecanismo de transio entre IPv6
e IPv4. utilizado como endereos de destino e origem em tunnel (encapsulamento
de um protocolo sobre outro) IPv6 sobre IPv4. representado por um endereo IPv6
cujos ltimos 32 bits so um endereo IPv4. Desta forma, anexando-se um prefixo
nulo (96 bits de zeros) a um endereo IPv4 (32 bits) obtm-se o seguinte formato:
0:0:0:0:0:0:192.168.30.1
::192.168.30.1
Existe um prefixo mais longo desse mesmo endereo para cada endereo Anycast
atribudo que identifica a regio ao qual todas as interfaces pertencem. Abaixo
mostrada a estrutura bsica deste tipo de endereo.
Um endereo do tipo Multicast Address um endereo IPv6, que indicado pelo pre-
fixo FP, como visto na tabela III, FF00::/8 ou 11111111 em binrio. O segundo octeto
que se segue ao prefixo (FP = FF) define o tempo de vida (lifetime), os 4 primeiros
bits e o escopo do endereo Multicast, os ltimos 4 bits deste octeto. Um endereo
com lifetime permanente tem um parmetro de tempo de vida igual a "0", enquanto
um endereo temporrio tem o mesmo parmetro igual a "1". O escopo para este
tipo de endereo apresenta os valores j definidos de 1, 2, 3, 4, 5, 8 e "E"(os outros
esto reservados para o futuro, sendo que o escopo F j est reservado para ser
usado para mbito galctico) para identificar um host, enlace, site, organizao ou
um escopo global, respectivamente. Os outros 112 bits so utilizados para identificar
o grupo Multicast. Abaixo, visualizamos a estrutura de um endereo.
Configure uma rede para que as mquinas Debian e Red Hat fiquem em redes dis-
tintas: rede 192.168.200.0
Ranges: 192.168.200.
1 # ping 192.168.200.241
Agora no cliente CentOS adicione duas placas de rede uma pra cada subrede.
1 # ping 192.168.200.241
2 # ping 192.168.200.81
1 # ping 192.168.200.241
Ainda no possvel.
Para que as duas mquina possam se pingar, adicione o cliente Debian como rota:
No Server Debian:
No Server CentOS:
1 # ping 192.168.200.241
Mesmo aps adicionarmos a rota para o gateway das redes ainda no possvel
ping-los.
Isto ocorre porque o linux por padro no encaminha pacotes, na mquina gateway
(cliente CentOS) ajuste o encaminhamento:
1 = habilitado 0 = desabilitado
Salve o arquivo e execute o comando seguinte para validar a regra e ficar perma-
nente:
1 # sysctl -p
No servidor Debian:
1 # ping -b 192.168.200.95
1 # sysctl -p
1 # ping -b 192.168.200.95
1 # arp -n
Vamos configurar a rede IPV6 agora: Ao conectarmos o cabo de rede a placa de rede
j obtm um endereo IPV6, atravs do endereo de sua placa de rede. Cheque o
servidor Debian: Para visualizar o ipv6 configurado automaticamente:
ou
Onde:
1 # ifconfig < interface > inet6 add < ipv6address >/ < prefixlength >
No servidor Debian:
No servidor CentOS:
1 # ifconfig < interface > inet6 del < ipv6address >/ < prefixlength >
CentOS:
O comando netstat sem parmetros traduz os IPs para os nomes, por isso, desse
modo, ele demora bastante para gerar um resultado. Resolve-se esse problema
usando a opo -n:
State - Exibe o estado da conexo de rede que podem ser CLOSE_WAIT, CLOSED,
ESTABLISHED, FIN_WAIT_1, FIN_WAIT_2, LAST_ACK, LISTEN, SYN_RECEIVED,
SYN_SEND, e TIME_WAIT.
Para saber mais sobre os estados das conexes consulte a RFC 793 http://tools.ietf.org/html/rfc793
1 # netstat -n
1 # netstat - ntl
1 # netstat - nul
1 # netstat - nltup
A opo -a exibe tanto os socket que estejam ouvindo quanto aqueles que no
estejam. netstat -an
O Nmap um escaneador de hosts que usa recursos avanados para verificar o es-
tado do seu alvo. Existem diversas formas e parmetros a serem informados durante
umavarredura.
Mtodos de Varredura
-sP
Ping scan: Algumas vezes necessrio saber se um determinado host ou rede est
n ar. Nmap pode enviar pacotes ICMP echo request para verificar se determinado
host ou rede est ativa. Hoje em dia, existem muitos filtros querejeitam os pacotes
ICMP echo request, ento envia um pacote TCP ACK paraa porta 80 (default) e
caso receba RST o alvo est ativo. A terceira tcnica envia um pacote SYN e espera
um RST ou SYN-ACK.
-sR
RCP scan: Este mtodo trabalha em conjunto com vrias tcnicas do Nmap. Ele
considera todas as portas TCP e UDP abertas e envia comandos NULL SunRPC,
para determinar se realmente so portas RPC. como se o comando rpcinfo -p
estivesse sendo utilizado, mesmo atravs de um firewall ( ou protegido por TCP-
wrappers ).
-sS
TCP SYN scan: Tcnica tambm conhecida como half-open, pois no abre uma
conexo TCP completa. enviado um pacote SYN, como se ele fosse uma conexo
real e aguarda uma resposta. Caso um pacote SYN-ACK seja recebido, aporta est
aberta, enquanto um como resposta indica que a porta est fechada. Avantagem
dessa abordagem que poucos iro detectar esse scanning de portas.
- sT
TCP connect() scan: a tcnica mais bsica de TCP scanning. utilizada achamada
de sistema (system call) connect() que envia um sinal as portas ativas.Caso a porta
esteja aberta recebe como resposta connect(). um dos scan mais rpidos, porm
fcil de ser detectado.
-sU
UDP scan: Este mtodo utilizado para determinar qual porta UDP est aberta em
um host. A tcnica consiste em enviar um pacote UDP de 0 byte para cada porta
do host. Se for recebido uma mensagem ICMP port unreachable ento a porta est
fechada, seno a portapode estar aberta. Para variar um pouco, a Microsoft ignorou
a sugesto da RFC e com isso a varredura de mquinas Windows muito rpida.
-sV
Version detection: Aps as portas TCP e/ou UDP serem descobertas por algum dos
mtodos, o nmap ir determinar qual o servio est rodando atualmente. Oarquivo
nmap-service-probes utilizado para determinar tipos de protocolos,nome da aplica-
o, nmero da verso e outros detalhes
-O
Especifica quais portas devem ser verificadas na varredura. Por default, todas aspor-
tas entre 1 e 1024 so varridas.
-n
-v
Na mquina Debian:
1 # nmap -v -n -O localhost
1 # nmap -v - sT - sU localhost
O comando tcpdump mostra o trfego de uma rede. Ele exibe a descrio do con-
tedo de pacotes numa interface de rede que case com uma expresso booleana.
Opes:
-r L os pacotes a partir de um arquivo (que tenha sido criado com a opo -w).
-w Escreve os pacotes em um arquivo que pode ser lido posteriormente com a opo
-r.
expresso Seleciona quais pacotes sero exibidos. Se no for definida nenhuma ex-
presso todos os pacotes sero exibidos. Do contrrio somente os pacotes com os
quais a expresso coincidir sero exibidos. A expresso consiste em uma ou mais
premissas. As premissas usualmente consistem em um ID (nome ou nmero) prece-
dido por um ou mais qualificadores.Existem trs diferentes tipos de qualificadores:
type (tipo) Especifica host, net, port e portrange. Ex: host dragon, net 192.168,
port 22, portrange 5000-5777.
dir (direo) Indica a direo dos pacotes a serem capturados. Podem ser: src, dst,
src or dst e src e dst, que significam respectivamente origem, destino, origem ou
destino e origem e destino. Se nada for definido assume origem ou destino.
proto (protocolo) Define qual o tipo de protocolo ser exibido. Os protocolos possveis
so: ether, fddi, tr, wlan, ip, ip6, arp, rarp, decnet, tcp e udp. Exemplos:
Onde:
-i -> interface, -n -> no resolve nomes, port -> identifica a porta de monitoramento.
Antes de partir direto para o acesso remoto via telnet, preciso explicar uma teo-
ria importante j que vai ser trabalhado configurao de servios como telnet, ssh,
NFS.
xinetd
portmap
stand alone
Esse superdaemon fica escutando nas portas que os servios controlados por ele
trabalham carregando o programa apropriado quando chega uma requisio na de-
terminada porta. Exemplos de servios tipo inetd: telnet, FTP, POP3 etc. Ao longo
47
11.9 Telnet TELetype NETwork 4Linux www.4linux.com.br
do tempo, alguns dos servios que eram controlados pelo inetd passaram a operar
como stand alone a fim de contornar problemas associados ao inetd.
Os servios stand alone so aqueles em que cada tipo de servidor possui seu dae-
mon prprio. Esta forma de trabalho preferida hoje em dia pois possibilita um maior
controle sobre cada servio sem separado. Exemplos de servios que operam dessa
forma: SSH, httpd (daemon do Apache), FTP, dentre outros.
Os servios tipo portmap so aqueles que no possuem porta especifica para operar,
como por exemplo, o NIS e o NFS. Estes servios enviam uma chamada RPC
Remote Procedure Call para a mquina servidora causando a execuo de uma
determina subrotina. Dessa forma quando um cliente faz a requisio de NFS a
um servidor, ele est enviando um RPC tipo NFS e que quando chegar ao servidor
ser tratada como tal, carregando a subrotina apropriada para enviar a resposta ao
cliente.
Telnet um protocolo que pode ser utilizado tanto localmente quanto na internet. O
telnet considerado muito inseguro e se usar altamente desencorajado. Ao longo
dos anos vm sendo descobertas diversas vulnerabilidades em suas implementa-
es e, provavelmente, h muitas outras que ainda no foram determinadas.
1 No Debian :
2 # aptitude install telnet telnetd openbsd - inetd
1 No CentOS :
2 # yum install telnet telnet - server xinetd
No Debian:
Descrio da opes:
stream: tipo de socket usado pelo protocolo, possveis valores so: stream,
dgram, raw, rdm e seqpacket; tcp tipo do protocolo usado;
Faa agora uma check list para verificar se o servio est funcionando:
Se a porta estiver em estado de LISTEN ou OUA significa que ela est ouvindo, ou
seja, est disponvel. Voc pode ver se o processo do telenet est ativo usando o
fuser:
Para fazer um acesso remoto em um servidor que tem o telnet habilitado muito
simples:
No CentOS:
www.4linux.com.br
Contedo
Rsyslog 21
12.3 Introduo Terica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
12.3.1 Organizao do Rsyslog . . . . . . . . . . . . . . . . . . . . . . . 22
12.4 Configurando o sistema de Logs no cliente (Debian): . . . . . . . . . . . 26
12.4.1 Logs Centralizados, configurando um servidor de Logs (Server
Debian) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
12.4.2 Logs Centralizados, configurando um servidor de Logs (Server
CentOS) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
12.4.3 Rotao de Logs . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
2
Data e Hora do Sistema e Servidor de
NTP
Manter o sistema com o horrio correto uma tarefa muito importante e que muitas
vezes negligenciada pelos administradores. Sem o horrio ajustado corretamente,
fica difcil agendar tarefas a serem executadas periodicamente, ou at mesmo fazer
a leitura dos logs e determinar em que horrio um determinado evento ocorreu. Esse
detalhe torna-se ainda mais importante quando temos um servidor de e-mail rodando
na mquina. Imagine um e-mail que pode ser enviado a/de qualquer parte do mundo
e, somando a diferena de fuso horrio, um servidor com a hora errada, fica muito
difcil determinar a hora na qual o e-mail foi enviado.
Visualizar a hora:
1 # date
3
12.1 Introduo Terica 4Linux www.4linux.com.br
1 # date mmddHHMMYYYY
Onde:
1 # date 071513151983
Outra forma :
1 # date -s "12:01"
o horrio esteja atualizado da prxima vez que a mquina for religada. Sua forma de
utilizao bastante simples:
1 # hwclock
1 # hwclock -w
2 Ou
3 # hwclock -- systohc
1 # hwclock -s
2 Ou
3 # hwclock -- hctosys
Outro ponto importante no que diz respeito s configuraes de data e hora do sis-
tema a configurao da "timezone", ou seja, o fuso horrio em que a mquina
se encontra. Essa configurao pode ser efetuada utilizando os comandos dpkg-
reconfigure tzdata" (especfico do Debian) e "system-config-date" em distribui-
es como CentOS, Suse e Gentoo.
O NTP, criado em 1985, um dos protocolos de internet mais antigos ainda em uso e
pode atingir uma preciso de aproximadamente 200s(duzentos microssegundos).
Conectados aos "stratum 1"h o "stratum 2"que em geral esto conectados a mais
de um servidor de stratum 1 e determinam de fato qual a hora padro com base
nos dados recebidos dos "stratum 1"utilizando o algoritmo do NTP.
Os "stratum 2"responde ao "stratum 3"que responde ao "stratum 4"e assim por diante
at atingir, no mximo, 16 nveis. Uma representao esquemtica dessa estrutura
pode ser vista na figura.
Ainda assim, nossa poltica de acesso aos "stratum 3"deve ser tambm bastante
criteriosa. Se nossa rede possu diversas mquinas, no h sentido em fazermos
todas elas se sincronizarem em um "stratum 3", mas sim escolher uma de nossas
mquinas para ser um stratum 4 e nossos clientes realizarem a sincronizao a
partir dela.
Sendo assim, vamos proceder com a configurao dos servidores e dos clientes.
Caso esteja com um dos fusos horrios incorreto, corrija-o com um dos comandos:
CentOS:
Debian:
1 # date
2 # hwclock
Para as mquinas da rede que forem os clientes NTP, possvel fazer a sincronizao
do horrio com o servidor por meio do comando "ntpdate", assim:
1 # ntpdate - debian
O servidor NTP provido pelo pacote "ntp", tanto no Debian quanto no CentOS.
Configure o servidor CentOS para fornecer as horas:
1 # rpm -q ntp
Vamos precisar obter endereos de servidores oficiais de "NTP", para isso, podemos
acessar o site http://www.ntp.br, que a pgina do projeto NTP. Logo na pgina inicial
haver uma lista de servidores pblicos, mantidos pelo projeto ntp.br.
sempre aconselhvel utilizar mais de um servidor para que, caso ocorra algum erro
em algum deles, o nosso sistema possa continuar com a configurao correta.
Os parmetros adicionais "iburst"fazem com que sejam enviados oito pacotes em vez
de apenas um durante a sincronizao inicial e o parmetro "prefer"faz com que a
resposta de um servidor preferido seja descartada se ela diferir muito das respostas
dos demais servidores, caso contrrio, ser utilizado sem qualquer considerao
para outras respostas.
1 restrict 127.0.0.1
2 restrict 192.168.200.0 mask 255.255.255.0
3 disable auth
loopstats
day, second, offset, drift compensation, estimated error, stability, polling inter-
val dia, segundo, deslocamento, escorregamento, erro estimado, estabilidade,
e intervalo de consulta
Exemplo:
peerstats
day, second, address, status, offset, delay, dispersion, skew (variance)dia, se-
gundo, endereo, estado, deslocamento, atraso, disperso, varincia
Exemplo:
0.063231626 0.000020460
11 54475 34939.286 200.160.0.8 f054 0.000368748 0.000334013
0.000484437 0.000013953
12 54475 34939.286 200.160.0.43 f034 0.000325615 0.000260201
0.000849475 0.000039634
A interpretao dos arquivos de log fica bastante facilitada com o uso de grficos. E
uma vez que se conhece seu formato fica muito fcil ger-los. Vrias ferramentas
podem ser utilizadas para isso, mas recomenda-se o uso do "gnuplot". Foge do
escopo desse site dar informaes detalhadas sobre a instalao ou uso dessa fer-
ramenta, ento consulte http://www.gnuplot.info/ para mais informaes. O software
funciona em GNU/Linux, FreeBSD, Windows e outros sistemas.
Segue um exemplo de uso, no GNU/Linux com interface grfica, que permitir aos
interessados entender o processo:
Observe-se que o comando plot faz referncia ao arquivo loopstats, e usa suas co-
lunas 2 e 3, onde: 2 representa o tempo, no dia, em segundos; e 3 representa o
deslocamento, em milisegundos.
E pronto, como a sada esta redirecionada para display, v-se o gif gerado na tela:
O ntp traz consigo algumas ferramentas que permitem monitorar seu funcionamento.
A mais importante o ntpq. A seguir so apresentados dois comandos do ntpq que
permitem visualizar algumas variveis importantes do ntp:
1 # ntpq -c pe
Onde:
A primeira coluna apresenta os tally codes, que significam o seguinte: * -> o system
peer, par do sistema, ou principal fonte de sincronizao;
o -> o system peer, par do sistema, ou principal fonte de sincronizao, mas apenas
se a fonte for o sinal de um pulso por segundo (PPS);
+ -> candidate, ou um relgio sobrevivente, indica que uma boa fonte de sincro-
nizao e que est sendo utilizada no momento, juntamente com o par do sistema,
para ajustar o relgio local;
- -> outlyer, ou relgio afastado, indica que uma boa fonte de sincronizao, mas
no sobreviveu ao algoritmo de agrupamento, ou seja, no momento h opes me-
lhores e ela no est sendo utilizada;
x -> falseticker, ou relgio falso, indica que no uma boa fonte de sincronizao,
foi descartada j no algoritmo de seleo de relgios por discordar muito das outras
fontes;
. -> excess, excesso: a fonte foi rejeitada por no estar entre as 10 melhores;
refid = a referncia (par do sistema) qual o servidor de tempo remoto est sincro-
nizado;
1 # ntpq -c rl
rootdelay -> atraso ou tempo de ida e volta dos pacotes at o estrato 0, em milisse-
gundos;
offset -> deslocamento, quanto o relgio local tem de ser adiantado ou atrasado
para chegar hora certa (hora igual do estrato 0);
1 # date 010101012009
2
3 # / etc / init . d / ntpd stop
4
5 # / etc / init . d / ntpd start && tail -f / var / log / messages
1 # date
1 # date 010101012009
2 # / etc / init . d / ntp stop
3 # / etc / init . d / ntp start && tail -f / var / log / syslog
1 # date
12.2.1 Configurando
a) Se no existir nenhum arquivo com tais informaes ento crie um novo, de nome
"verao.zic"por exemplo, no diretrio /usr/share/zoneinfo/Brazil/. Este arquivo dever
conter as seguintes linhas:
Uma vez feitos os devidos ajustes no arquivo verao.zic execute o comando zic:
1 Brazil / East Sun Oct 21 02:59:59 2012 UTC = Sat Oct 20 23:59:59 2012
BRT isdst =0 gmtoff = -10800
2 Brazil / East Sun Oct 21 03:00:00 2012 UTC = Sun Oct 21 01:00:00 2012
BRST isdst =1 gmtoff = -7200
3 Brazil / East Sun Feb 17 01:59:59 2013 UTC = Sat Feb 16 23:59:59 2013
BRST isdst =1 gmtoff = -7200
4 Brazil / East Sun Feb 17 02:00:00 2013 UTC = Sat Feb 16 23:00:00 2013
BRT isdst =0 gmtoff = -10800
Note que em "Sat Oct 20 23:59:59 2012"o sistema ainda no est no Horrio de
Vero (indicao BRT). No segundo seguinte as modificaes do Horrio de Vero
entram em vigor, adiantando o localtime em uma hora: "Sun Oct 21 01:00:00 2012
Cheque novamente:
22
4Linux www.4linux.com.br 12.3 Introduo Terica
facilidade - usada para especificar que tipo de programa est enviando a mensa-
gem.
Facilidades do Rsyslog
Nveis
Destinos
(|)- O Rsyslog enviar os logs atravs de um pipe. Muito usado para redirecio-
nar logs um terminal.
(@) - Com a arroba, o Rsyslog enviar seus logs para um computador remoto,
utilizando hostname ou endereo IP.
Arquivos importantes
Debian e CentOS: Logs utilizados pelo comando last: /var/log/wtmp Logs utilizados
pelo comando last: /var/log/btmp Log utilizado pelo comando lastlog: /var/log/las-
tlog Logs utilizados pelos comandos w e who: /var/run/utmp
1 Se for Debian :
2 # aptitude install rsyslog
3 OU
4 Se for CentOS :
5 # yum install rsyslog
9 # Debian
10 *.* @192 .168.200.101
11 # CentOS
12 *.* @192 .168.200.100
5) Reinicie o rsyslog:
7) Tente se logar como aluno no terminal 3, mas erre a senha, depois logue-se cor-
retamente, em seguida veja o log de erro de login no terminal dois:
1 # ctrl + alt + 2
8) Reinicie o servio do cron no terminal 1 como root e veja o log na tela do usurio
aluno que est logado no terminal 3:
Primeiro, necessrio que o servidor seja habilitado para recebermos logs de outras
mquinas, para isto, acrescente o parmetro -r:
Verifique o log:
Verifique o log:
Com o tempo, os logs podem ocupar muito do espao disponvel na partio. Por
isso, devemos configurar corretamente a poltica de rotao dos logs, ou seja, du-
rante quanto tempo os logs sero armazenados no seu computador.
Podem aparecer mensagens de erros na tela, pois o comando cat no pode visualizar
o contedo de diretrios. Para visualizar o tamanho dos arquivos:
Verifique que: o arquivo teste.err tem menos de 5M. o arquivo teste.info tem mais de
5M.
Verifique que o arquivo teste.err foi rotacionado, mas o teste.info no. Isto porque o
arquivo teste.info no atingiu os 5M necessrios para o rotacionamento.
www.4linux.com.br
Contedo
Servidor SSH 2
13.1 Introduo Terica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
13.1.1 SSH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
13.1.2 Chaves de Criptografia Assimtricas . . . . . . . . . . . . . . . . 3
13.1.3 Acesso SSH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
13.1.4 Copiando Arquivos Remotos . . . . . . . . . . . . . . . . . . . . 6
13.1.5 Cpia maq_LOCAL para maq_REMOTA . . . . . . . . . . . . . 6
13.1.6 Cpia maq_REMOTA para maq_LOCAL . . . . . . . . . . . . . 6
13.1.7 SSH com Chaves Assimtricas . . . . . . . . . . . . . . . . . . . 7
13.1.8 Acesso por SSH sem senha com ssh-agent . . . . . . . . . . . . 10
13.1.9 Configurando o servidor SSH (CentOS): . . . . . . . . . . . . . . 11
13.1.10Cpia remota com porta diferente: . . . . . . . . . . . . . . . . . 16
13.1.11Tunelamento SSH . . . . . . . . . . . . . . . . . . . . . . . . . . 16
13.1.12Mensagem em broadcast: wall . . . . . . . . . . . . . . . . . . . 18
TCP Wrappers 19
13.2 Introduo Terica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
13.2.1 Entendendo o TCP Wrappers . . . . . . . . . . . . . . . . . . . . 20
13.2.2 Suporte a TCP/Wrappers . . . . . . . . . . . . . . . . . . . . . . 22
2
Servidor SSH
13.1.1 SSH
3
13.1 Introduo Terica 4Linux www.4linux.com.br
Como s h um par que se completa, apenas quem possuir a chave privada poder
estabelecer uma conexo utilizando a respectiva chave pblica. Uma ilustrao do
par de chaves assimtricas pode ser vista na figura: Quando criamos um par de cha-
ves assimtricas devemos tomar o cuidado com a chave privada para que ningum
tenha acesso a ela.
O SSH possui diversas formas de utilizao; a mais bsica de todas serve para
estabelecer uma simples shell remota:
1 # ssh nome_usuario_remoto@ip_servidor
Outra opo se logar no servidor remoto com o mesmo nome de usurio que voc
est logado, desde que este mesmo usurio exista remotamente:
1 # ssh ip_servidor
Ou:
1 # ssh 192.168.0.1
1 # nmap localhost
Copiando arquivo:
Copiando diretrio:
Copiando arquivo:
1 # ls / tmp
Copiando diretrio:
1 # ls / tmp
Em nossa mquina local, sem ser via ssh, vamos criar o par de chaves:
Obs.: A passphrase pode ser desde uma senha "normal", com 6 ou 12 carac-
teres, at uma frase complexa, sem limite de tamanho; o importante que no seja
algo fcil de adivinhar. Caso a passphrase no seja definida o acesso remoto ser
sem senha.
Mesmo que algum consiga roubar sua chave privada, no conseguir conectar sem
saber a passphrase e vice-versa.
1 # ls / root /. ssh
2 id_rsa id_rsa . pub known_hosts
Depois de gerar seu par de chaves, falta o comando final, que instala a chave pblica
no servidor, permitindo que ela seja usada para autenticao:
Copiando a chave:
Em resumo, o que o ssh-copy-id faz nada mais do que copiar o contedo do ar-
quivo ".ssh/id_rsa.pub", dentro do seu diretrio home, para o arquivo ".ssh/autho-
rized_keys"dentro do diretrio home do servidor remoto, uma operao que tambm
pode ser realizada manualmente em caso de problemas.
1 # ssh - agent
2 SSH_AUTH_SOCK =/ tmp / ssh - dSVLR17117 / agent .17117; export SSH_AUTH_SOCK ;
3 SSH_AGENT_PID =17118; export SSH_AGENT_PID ;
4 echo Agent pid 17118;
Adicione a chave:
1 # ssh - add
2 Enter passphrase for / root /. ssh / id_rsa : 123456
3 Identity added : / root /. ssh / id_rsa (/ root /. ssh / id_rsa )
Alguns parmetros:
Keyword Description Default AllowGroups Habilita acesso apenas para grupos espe-
cificados * AllowUsers Habilita acesso apenas para usurios especificados * Deny-
Groups Nega acesso apenas para grupos especificados none DenyUsers Nega acesso
apenas para usurios especificados none
Alterando o arquivo:
36 PermitRootLogin no
37 # StrictModes yes
38 # MaxAuthTries 6
39
40 # RSAAuthentication yes
41 # PubkeyAuthentication yes
42 # AuthorizedKeysFile . ssh / authorized_keys
43
44 # For this to work you will also need host keys in / etc / ssh /
ssh_known_hosts
45 # RhostsRSAAuthentication no
46 # similar for protocol version 2
47 # HostbasedAuthentication no
48 # Change to yes if you don t trust ~/. ssh / known_hosts for
49 # RhostsRSAAuthentication and HostbasedAuthentication
50 # IgnoreUserKnownHosts no
51 # Don t read the user s ~/. rhosts and ~/. shosts files
52 # IgnoreRhosts yes
53
54 # To disable tunneled clear text passwords , change to no here !
55 # PasswordAuthentication yes
56 # PermitEmptyPasswords no
57 PasswordAuthentication yes
58 # Change to no to disable s / key passwords #
ChallengeResponseAuthentication yes
59 ChallengeResponseAuthentication no
60 # Kerberos options
61 # KerberosAuthentication no
62 # KerberosOrLocalPasswd yes
63 # KerberosTicketCleanup yes
64 # KerberosGetAFSToken no
65 # GSSAPI options
66 # GSSAPIAuthentication no
67 GSSAPIAuthentication yes
68 # GSSAPICleanupCredentials yes
69 GSSAPICleanupCredentials yes
70 # Set this to yes to enable PAM authentication , account processing
,
71 # and session processing . If this is enabled , PAM authentication
will
72 # be allowed through the ChallengeResponseAuthentication mechanism .
73 # Depending on your PAM configuration , this may bypass the setting
of
74 # PasswordAuthentication , PermitEmptyPasswords , and
75 # " PermitRootLogin without - password ". If you just want the PAM
account and
76 # session checks to run without PAM authentication , then enable this
but set
77 # ChallengeResponseAuthentication = no
78 # UsePAM no
79 UsePAM yes
80
81 # Accept locale - related environment variables
82 AcceptEnv LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY
LC_MESSAGES
83 AcceptEnv LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT
84 AcceptEnv LC_IDENTIFICATION LC_ALL
85 # AllowTcpForwarding yes
86 # GatewayPorts no
87 # X11Forwarding no
88 X11Forwarding yes
89 # X11DisplayOffset 10
90 # X11UseLocalhost yes
91 # PrintMotd yes
92 # PrintLastLog yes
93 # TCPKeepAlive yes
94 # UseLogin no
95 # UsePrivilegeSeparation yes
96 # PermitUserEnvironment no
97 # Compression delayed
98 # ClientAliveInterval 0
99 # ClientAliveCountMax 3
100 # ShowPatchLevel no
101 # UseDNS yes
Reinicie o servio:
Agora ele no consegue identificar a porta do ssh, pois voc alterou a porta padro,
mas ainda existem parmetros do nmap que conseguem identificar:
A opo -p serve para passar um range de portas ou uma porta especfica a ser
escaneada.
Ele ainda no identificou qual o servio est sendo executado na porta, ento colo-
que a opo -sV para escanear a verso do programa:
-P - porta
Por exemplo, se algum se encontra dentro de uma instituio cuja conexo Inter-
net protegida por um firewall que bloqueia determinadas portas de conexo, no
ser possvel, por exemplo, acessar e-mails via POP3, o qual utiliza a porta 110, nem
envi-los via SMTP, pela porta 25.
As duas portas essenciais so a 80, para HTTP e a 443, para HTTPS, as quais
garantem uma navegao em pginas da Web sem restries.
Para quebrar essa imposio rgida, porm necessria, o SSH oferece o recurso do
Tnel.
http://192.168.0.1
Por ssh vamos criar um tnel com esse servidor e mapear a porta 80 para a porta
12345 na nossa mquina local:
Lembre-se que estamos utilizando uma porta diferente da padro, e que o nico
usurio que pode se conectar o aluno:
Outras opes:
-f - O parmetro -f"dentro do comando faz com que ele seja executado em back-
ground, liberando o terminal depois que a conexo estabelecida.
1 # wall
2 minha mensagem
3 < ctrl +d >< enter >
4- copie uma imagem do cliente para o servidor e substitua a imagem do home: ar-
quivo a ser copiado: /usr/share/images/desktop-base/gnome-foot.png salve o arquivo
com o nome de home.png
20
4Linux www.4linux.com.br 13.2 Introduo Terica
comando (opcional): possvel executar um comando sempre que uma regra casa
com um padro e utilizada.
Como citado anteriormente, curingas podem ser utilizados tanto na lista de daemons
quanto na lista de clientes. Entre os existentes, pode-se destacar os seguintes:
LOCAL - Este curinga casa com qualquer nome de mquina que no contenha um
caractere ponto ., isto , uma mquina local.
PARANOID - Casa com qualquer nome de mquina que no case com seu endereo.
Isto geralmente ocorre quando algum servidor DNS est mal configurado ou quando
alguma mquina est tentando se passar por outra.
1 # which sshd
2 # ldd / usr / sbin / sshd
Tente acessar seu servidor CentOS por ssh a partir da mquina Debian:
www.4linux.com.br
Contedo
2
Introduo ao uso do GPG
O que criptografia?
Criptografia o estudo dos princpios e tcnicas pelas quais a informao pode ser
transformada da sua forma original para outra ilegvel, de forma que possa ser co-
nhecida apenas por seu destinatrio (detentor da "chave secreta"), o que a torna
difcil de ser lida por algum no autorizado.
O que simetria?
3
14.2 Caractersticas da criptografia simtrica 4Linux www.4linux.com.br
Simples e til;
Seu uso exige que cada um dos lados possua um par chaves: uma pblica e
outra privada
A chave privada deve sempre ser de conhecimento exclusivo do dono. Tome muito
cuidado para que ningum tome posse de sua chave privada! A par de chaves do
remetente confere autenticidade, isto , atribui legitimidade s informaes trocadas
entre partes diferentes. A par de chaves do destinatrio confere privacidade, isto ,
atribui sigilo s informaes trocadas entre partes distintas.
Logo, entre os interlocutores, o uso das duas chaves leva em conta que cada um
possua a chave pblica do outro.
Produtividade;
Segurana
Chaves com 512 bits oferecem melhor desempenho nas operaes criptogrficas,
mas so facilmente quebradas. O uso de chaves grandes causa lentido, mas pro-
porciona muita segurana.
14.4 GNUPG
Vamos utililizar o software gnup. O gnupg licenciado pela GPL e pode ser usado
tanto no Linux, quanto no Windows e MAC OS X. O gnupg trabalha com critografia
simtrica e assimtrica. Os algoritmos que o gnupg utiliza so:
1 # gpg -- version
2 gpg ( GnuPG ) 1.4.10
3 Copyright ( C ) 2008 Free Software Foundation , Inc .
4 License GPLv3 +: GNU GPL version 3 or later < http :// gnu . org / licenses /
gpl . html >
Acesse a maquina Debian com um usurio comum, e digite o comando abaixo para
gerar a chave pblica e privada.
A utilizar o comando o diretrio oculto .gnupg sera criado na home do usurio lo-
gado.
Varias perguntas sero feitas durante a criao do par de chaves. Responda com as
seguintes opes:
Tecle 2 para selecionar DSA usada para assinaturas digitais e Elgamal usada
para conferir privacidade s comunicaes.
Por favor especifique por quanto tempo a chave deve ser vlida.
You need a user ID to identify your key; the software constructs the user ID from the
Real Name, Comment and Email Address in this form: "Heinrich Heine (Der Dichter)
<heinrichh@duesseldorf.de>"
No h bytes aleatrios suficientes. Por favor, faa algum outro trabalho para que o
sistema possa coletar mais entropia! (So necessrios mais 276 bytes)
Agora o gpg far vrios clculos para gerar uma chave pblica e uma privada.
Abra outro terminal com usurio root, e digite comandos de pesquisa e lista-
gem de arquivos para gerar mais entropia
Para exportar a chave pblica do usurio para um arquivo, utilizae o comando abaixo
com o usurio comum:
1 $ ls . gnupg /
2 gpg . conf pubring . gpg pubring . gpg ~ random_seed secring . gpg
trustdb . gpg
Nome completo
Comentrio
Please decide how far you trust this user to correctly verify other users keys (by
looking at passports, checking fingerprints from different sources, etc.)
Antes de enviar um arquivo ao usurio que importou sua chave pblica, garanta a
segurana na troca de informaes encriptando o arquivo com o comando GPG.
1 $ gpg -- recipient " Tux CentOS " -- output " lista_secreta . txt . gpg " --
encrypt " lista_secreta . txt "
1 $ ls
2 lista_secreta . txt lista_secreta . txt . gpg
Cenrio: Vamos supor que voc quer enviar um arquivo de texto e que o destinatrio
deseja uma prova sua de que realmente foi voc quem enviou. Uma assinatura no
basta, ainda mais em um texto.
Liste o contedo do diretrio para verificar o arquivo original (.txt) e o arquivo assi-
nado (.asc)
1 $ ls
2 aviso . txt aviso . txt . asc
7 iEYEARECAAYFAkv +2
y4ACgkQixXsqYEooo6D2QCfYSwOZE3Yy6LlXeYspLxrOdw9e1cAoKpPCAoSDYZYY /
c8BkC9SzY + gk0P = DDzt
8 ----- END PGP SIGNATURE - - - - -
www.4linux.com.br
Contedo
Compilao do Kernel 2
15.1 Introduo Terica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
15.2 Introduo ao Kernel verso 3 . . . . . . . . . . . . . . . . . . . . . . . 5
15.3 Funcionalidades do Kernel 3.3 . . . . . . . . . . . . . . . . . . . . . . . 5
15.4 Conhecendo o hardware da maquina . . . . . . . . . . . . . . . . . . . 7
15.5 Configurar, compilar e instalar o Kernel . . . . . . . . . . . . . . . . . . 9
2
Compilao do Kernel
3
15.1 Introduo Terica 4Linux www.4linux.com.br
A perfeio seria ter um kernel bem compilado contendo apenas o conjunto de par-
tes estritamente necessrias ao funcionamento do nosso servidor e no ter nenhum
mdulo externo compilado. Retiraramos at o suporte a carregar mdulos.
No entanto, uma coisa verdade: voc deve conhecer muito bem seu sistema
quando voc comear a configurar o kernel manualmente. A maior parte das in-
formaes pode ser obtida utilizando o comando lspci.
A verso 3.0 teve seu lanamento com 14,647,033 linhas de cdigo, diferente de
outras verses, como pode ser comparada na lista abaixo:
Open VSwitch
Suporte a drivers
Esta verso teve uma reviso melhorada no suporte do Kernel (hardware), para que
houvesse progresso nos drivers de cdigo aberto para a processadores AMD, Intel e
processadores grficos NVIDIA.
Esta verso apresenta um esboo de inicializao EFI que permite que uma ima-
gem bzImage x86, seja carregada e executada diretamente pelo firmware do EFI. O
bzImage aparece para o firmware como uma aplicao EFI. Tanto a BIOS e gerencia-
dores de inicializao EFI podem carregar e executar a mesma bzImage, permitindo
que uma nica imagem de kernel possa trabalhar em qualquer ambiente de iniciali-
zao.
1 # lspci
2 # lsusb
Agora que voc sabe as novidades do Kernel 3.3 e tem conhecimento do hardware
da maquina, vamos colocar em pratica a implementao da verso 3 do Kernel. O
download sera feito no endereo do kernel.org, e a distribuio usada sera o Debian
6.
http://www.kernel.org
1 # cd / usr / src /
1 # wget -c http :// www . kernel . org / pub / linux / kernel / v3 .0/ linux -3.3.3.
tar . bz2
1 # make help
1 # make mrproper
mrproper -> remove todos arquivos gerados pelo comando make + arquivo config +
vrios arquivos de backup
1 # make menuconfig
1 # less . config
1 # make CONFIG_DEBUG_SECTION_MISMATCH = y
Dica: Caso seu processador possua varios ncleos otimize a compilao atravs da
flag -j. Exemplo:
1 # make CONFIG_DEBUG_SECTION_MISMATCH = y - j4
Aps compilar o kernel e seus mdulos, vamos copiar os mdulos para o diretrio
apropriado em /lib/modules:
1 # make modules
2 # make modules_install
Copie-o para o diretrio /boot, com o nome de vmlinuz, este o nome dado ao
kernel:
Se o nosso kernel tiver sido compilado com mdulos que sejam extremamente
necessrios durante o boot, ser necessrio criar uma imagem de boot.
Esta parte mais simples! Se o Kernel tem o nome vmlinuz-verso no diretrio /boot.
Aos invs de criar uma configurao manual com a entrada do Kernel e initrd-img,
apenas digite o comando abaixo e a entrada no Grub 1 ou 2 sera feita de forma
automtica:
1 # update - grub
www.4linux.com.br
Contedo
Gerenciadores de Boot 2
16.1 Introduo Terica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
16.1.1 GRUB (Padro CentOS) . . . . . . . . . . . . . . . . . . . . . . . 3
16.1.2 Segurana no grub . . . . . . . . . . . . . . . . . . . . . . . . . . 12
16.2 GRUB2 (Padro Debian) . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
16.2.1 Melhorias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
16.2.2 GRUB vs GRUB2 . . . . . . . . . . . . . . . . . . . . . . . . . . 14
16.2.3 Hierarquia de arquivos e diretrios . . . . . . . . . . . . . . . . . 15
16.2.4 Configurao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
16.2.5 Entradas personalizadas . . . . . . . . . . . . . . . . . . . . . . 19
16.2.6 Criando menus personalizados . . . . . . . . . . . . . . . . . . . 21
16.2.7 Regras para construo de menuentry . . . . . . . . . . . . . . . 22
16.2.8 Configurando fonte e cores . . . . . . . . . . . . . . . . . . . . . 23
16.2.9 Segurana no grub2 . . . . . . . . . . . . . . . . . . . . . . . . . 24
16.3 Colocar Imagem no Grub2 . . . . . . . . . . . . . . . . . . . . . . . . . 25
16.4 Atualizando novas entradas no menu . . . . . . . . . . . . . . . . . . . 26
2
Gerenciadores de Boot
Este o BootLoader padro do CentOS. Para que nosso novo kernel, possa ser
inicializado, devemos configurar nosso bootloader. Veja agora como fazer isso no
Grub.
3
16.1 Introduo Terica 4Linux www.4linux.com.br
1 default 0
2 timeout 5
3 color cyan / blue white / blue
4 splashimage =( hd0 ,0) / grub / splash . xpm . gz
5
6 title CentOS
7 root ( hd0 ,0)
8 kernel / vmlinuz -2.6.32 -71. el6lx86_64 ro root =/ dev / VolGroup / lv_root
9 initrd / initramfs -2.6.32 -71. el6lx86_64
10
11 title Microsoft Windows
12 root ( hd0 ,2)
13 makeactive # Se usar Windows7 comente esta linha .
14 chainloader +1
15
16 title Debian Squeeze
17 root ( hd0 ,3)
18 kernel / vmlinuz -2.6.31 ro root =/ dev / sda3
19 initrd / initrd . img -2.6.31
O CentOS o default, por causa da opo "default 0"no incio do arquivo. Do ponto
de vista do grub, o CentOS o sistema "0", o Windows o sistema 1, enquanto
que o Debian o sistema 2. Note que ele conta os sistemas includos na lista a
partir do zero.
Se voc quisesse que o Debian passasse a ser o sistema default, bastaria trocar
"default 0"por "default 2". O mesmo vale para os outros sistemas operacionais insta-
lados.
A linha "timeout 5" um pouco mais cosmtica. Ela diz que se voc no pressionar
nenhuma tecla na tela de boot, o sistema default ser iniciado depois de 5 segundos.
O "(hd0,0)"dentro da opo diz a partio onde o CentOS est instalado, onde ele
vai procurar o arquivo. Como pode ver, o grub usa uma nomenclatura prpria para
designar as parties do HD, o que acaba sendo o aspecto da configurao mais
difcil de entender.
Se voc est me acompanhando at aqui, sente e respire fundo, pois nada disso vale
para o grub. Para "simplificar", os desenvolvedores decidiram adotar uma nomencla-
tura prpria, onde os HDs e parties so nomeados a partir do zero.
1 / dev / hda = 0
2 / dev / hdb = 1
3 / dev / hdc = 2
4 / dev / hdd = 3
Para o grub esta distino entre hds no existe. O "/dev/sda1"continua sendo "(hd0,0)"dentro
do grub.
O que acontece ento se voc tiver um HD IDE e outro SATA na mesma mquina?
Bem, a depende de como eles estiverem configurados dentro do setup. O HD "pri-
mrio", ou seja, o que o BIOS acessa primeiro na hora de carregar o sistema, ser
visto como "(hd0)", independentemente de ser SATA ou IDE, enquanto o outro ser
visto como "(hd1)".
Esta configurao vem bem a calhar, pois permite explicar os casos mais comuns,
ou seja, a seo referente ao CentOS, ao Windows e referente a outras distribuies
Linux, no caso o Debian.
1 title CentOS
2 root ( hd0 ,0)
3 kernel / vmlinuz -2.6.32 -71. el6lx86_64 ro root =/ dev / VolGroup / lv_root
4 initrd / initramfs -2.6.32 -71. el6lx86_64
A linha "title" contm apenas o nome do sistema, da forma como ele ir aparecer na
tela de boot. No preciso que o nome indique corretamente o sistema, voc pode
usar apelidos, o importante apenas que um sistema receba um apelido diferente
do outro.
A linha "root" logo a seguir, indica a localizao do /boot (no formato do grub), ou
seja, onde o sistema est instalado. Como o CentOS neste caso est instalado na
primeira partio do HD, usamos "(hd0,0)".
A terceira linha, "kernel", indica o arquivo com o kernel, que ser carregado no
incio do boot. O Kernel vai sempre dentro da pasta "/boot"e o arquivo tem o nome
padro de "vmlinuz", seguido da verso, como "vmlinuz-2.6.32-71.el6lx86_64". Alm
de indicar a localizao do arquivo, voc pode incluir opes que sero passadas
para ele no incio do boot, por exemplo: "acpi=off", "vga=791"e assim por diante.
Isto simplifica as coisas, pois voc precisa apenas indicar um nome ou apelido na
linha "title"e indicar a partio onde ele est instalado na linha "root". No nosso
exemplo, o Windows est instalado na terceira partio do HD, por isso o "(hd0,2)".
Concluindo, temos a seo referente ao Debian, que pode ser usada (com as devidas
modificaes) tambm para outras distribuies Linux instaladas no HD:
Esta seo muito similar seo do CentOS, que vimos a pouco. O Debian neste
caso est instalado na quarta partio, que no grub vista como "(hd0,3)". O im-
portante indicar corretamente o arquivo com o Kernel, dentro da partio e o initrd
(caso exista).
Voc poderia duplicar estas quatro linhas para incluir outras distribuies. Bastaria
alterar a partio dentro da linha "root"e indicar corretamente o arquivo do Kernel e
o initrd que seriam usados.
Embora seja um tema um pouco chato de estudar, importante conhecer pelo menos
o bsico sobre a configurao do grub, pois ele usado atualmente em praticamente
todas as distribuies, de forma que um conhecimento que voc vai acabar usando
bastante.
No caso das distribuies, Linux, quase sempre voc tem a opo de instalar gra-
vando o gerenciador de boot na partio, o que permite reinstalar sem subscrever o
grub "titular". Aqui, por exemplo, temos um screenshot do instalador do Ubuntu:
O problema o Windows, j que ele chega "chutando o balde", gravando seu geren-
ciador de boot na MBR sem nem te consultar.
Isto acaba se revelando um grande problema, j que voc perde o acesso ao Linux
instalado no HD sempre que precisar reinstalar o Windows.
Nestes casos, voc pode regravar o grub dando boot com um live CD do linux.
D boot pelo CD e abra um terminal como root. A partir da, use o comando "grub"para
entrar no prompt do grub, onde usaremos os comandos para regravar o gerenciador
de boot:
1 # grub
Falta agora o comando "setup", que especifica aonde o grub ser gravado. Neste
caso, estou gravando o grub na MBR do primeiro HD:
Terminando, voc pode sair do prompt do grub usando o "quit"e reiniciar o micro.
Este um exemplo de operao que mais simples no grub. No lilo, era necessrio
montar a partio e abrir um chroot para conseguir regravar o gerenciador :).
Mais um problema comum acontece quando voc precisa configurar o grub numa
mquina com vrios HDs. Nestes casos, alm de verificar como o grub detectou
cada um, voc precisa se preocupar em gravar o grub no MBR do HD correto.
Se voc instalar o CentOS no segundo HD, e o grub for instalado na MBR do segundo
HD, o CentOS no vai inicializar depois de instalado, pois o BIOS do micro continuar
lendo o MBR do primeiro HD.
A soluo no caso bem simples. Mesmo que voc instale o CentOS, ou qual-
quer outra distribuio no segundo HD, tome sempre o cuidado de gravar o grub no
MBR do primeiro HD. Se voc est instalando o Debian (por exemplo), na partio
/dev/sdb1 (a primeira partio do segundo HD) o "root", ou seja, o dispositivo aonde
o sistema est sendo instalado ser "(hd1,0)", mas na hora de gravar o grub, voc
indicaria o "(hd0)", que o primeiro HD.
1 # grub
2 grub > root ( hd1 ,0)
3 grub > setup ( hd0 )
4 grub > quit
Note que isto necessrio apenas ao regravar o grub manualmente. Outra pegadi-
nha que quando voc tem uma instalao do Windows no segundo HD (hd1,0 no
grub), como em situaes onde voc compra outro HD para instalar Linux e instala
o HD com o Windows como secundrio, necessrio adicionar duas linhas na se-
o do grub referente ao Windows. Elas fazem com que a posio lgica dos dois
HD seja trocada, fazendo com que o Windows pense que est inicializando a partir
do primeiro. Sem isso, voc tem um erro de "partio invlida"durante o boot e o
Windows no carregado.
1 title Windows
2 root ( hd1 ,0)
3 makeactive
4 chainloader +1
5 map ( hd1 ) ( hd0 )
6 map ( hd0 ) ( hd1 )
Para melhorarmos nossa segurana local, uma boa seria colocar senha no grub,
ento vamos fazer melhor, iremos colocar uma senha criptografada nele:
Aps digitarmos nossa senha ela criptografada em md5, a basta copi-la e editar
o arquivo /boot/grub/menu.lst.
16.2.1 Melhorias
O menu do GRUB2 parecer familiar aos usurios do Grub mas h muitas diferenas
internamente.
- pressione a tecla SHIFT para mostrar o menu durante o boot (no GRUB legacy
formalmente ESC). - /boot/grub/menu.lst do GRUB legacy foi substituido por /boot/-
grub/grub.cfg no GRUB2.
grub.cfg sobrescrito sempre que houver uma atualizao, um kernel for adici-
onado/removido ou o usurio executar update-grub.
/boot/grub/grub.cfg
Por padro, e sempre que o comando update-grub executado, este arquivo feito
somente leitura. Isto porque a inteno que o arquivo no seja editado manual-
mente.
O usurio tambm ver uma infinidade de arquivos *. mod na pasta /boot/grub. Esses
arquivos so da natureza modular do GRUB 2 e so carregados necessariamente
pelo GRUB 2.
/etc/default/grub
Esse arquivo pode ser editado e configurado. Detalhes da configurao esto mais
adiante em Configurando GRUB 2.
/etc/grub.d/ (diretrio)
A colocao dos tens de menu no grub.cfg determinada pela ordem em que os ar-
quivos so executados nessa pasta. Arquivos com numeral no incio so executados
primeiro comeando pelo menor. 10_linux executado antes de 20_mentest que
executado antes de 40_custom.
- 10_hurd : no usada.
16.2.4 Configurao
Algumas das alteraes mais comuns como OS/kernel default, menu timeout podem
ser feitas pelo StartUp-Manager.
- GRUB_DEFAULT
- GRUB_DEFAULT=0
Configura a entrada default pela posio. Como no GRUB a primeira entrada zero,
a segunda 1, etc,
- GRUB_DEFAULT=saved
Define a entrada de menu padro com o que foi selecionado anteriormente (a ltima
seleo).
- GRUB_DEFAULT=xxxx
Uma entrada de menu exata, incluida entre aspas, tambm pode ser usada. Neste
caso, a localizao no menu no importa. Exemplo: GRUB_DEFAULT=Debian
Squeeze
- GRUB_HIDDEN_TIMEOUT=0
- GRUB_HIDDEN_TIMEOUT_QUIET=true
Se esta linha est comentada (#) ou a resoluo no est disponvel o GRUB 2 usa
a configurao padro determinada pelo /etc/grub.d/00_header.
GRUB2 permite ao usurio criar selees de menus personalizados que sero auto-
maticamente adicionados ao menu principal quando o comando update-grub exe-
Entrada 10_linux aparecer antes de 30_os prober, que ser colocado antes de en-
tradas 40_custom, que ir preceder my.custom.entries.
1 # !/ bin / sh
2 exec tail -n +3 $0
uma cpia de backup deste arquivo pode estar na pasta /boot/grub se o usurio
atualizou do GRUB para GRUB 2.
o que est entre aspas o que vai aparecer no menu do GRUB 2. Edite como
desejar
Exemplo de menuentry :
A cor definida pela linha abaixo. A primeira cor a cor do texto, a segunda a cor
de fundo.
Se o segundo valor nesta linha alterada para uma cor diferente de black a imagem
splash ser escondida atrs de um fundo de cor slida.
Para melhorarmos nossa segurana local, uma boa seria colocar senha no grub2,
ento vamos fazer melhor, iremos colocar uma senha criptografada nele, para isso
temos que gerar uma senha criptografada:
Onde : (echo 123456 ;echo 123456) 123456 a senha, caso no queira passar a
senha no comando execute diretamente e preencha o prompt com a senha quando
for solicitado:
7 .8037149 B1F04504F84E019100C56D86816D3859ED7DD557CBEEBD2F95
8 B5177CCC5C5947559092C4A5320E70B8AA07C81EEAE37711763589D525
9 F77C54E10CF85EOF
Atualize o grub2:
1 # update - grub
Para colocar uma imagem no grub2 bem simples basta ter uma imagem valida,
JPEG, PNG, TGA e JPG, e passar o seu caminho dentro de um arquivo e ja esta
pronto. Vamos a prtica, dentro do diretrio home tem uma imagem jpeg, dexter.jpeg,
vamos colocar ela no grub. Copie a imagem para o /boot/grub:
1 # update - grub2
1 # update - grub2
OU
Aps feitas essas alteraes, reinicie o computador, e veja se o nosso Novo kernel
"boota".
1 # update - grub
2 ou
3 # update - grub2