Академический Документы
Профессиональный Документы
Культура Документы
2010
ISBN: 978-85-64426
1. Redes de computadores. 2. Linux. 3. Ttulo.
CDD: 004.6
Agradecimentos
Quero agradecer especialmente ao Emerson pelos ensinamentos e
ajustes no LATEX, a Cludia pela reviso do texto e ao Cassiano pela
linda capa. Quero agradecer tambm aos colegas Alexandre, Eraldo, Evandro, Marcos, Mrio, Saul e todos os demais professores da
rea de Telecomunicaes do IF-SC, pelo apoio e companheirismo
ao longo destes anos de trabalho. Ao IF-SC pelo suporte e publicao
deste livro.
Agradeo tambm a minha famlia, por todo histrico de vida e
que responsvel por ser eu quem sou.
Prefcio
Este livro fruto da compilao de roteiros didticos, de anos de trabalho com disciplinas de Administrao de Redes no IF-SC. Muitos
destes roteiros so adaptaes de materiais encontrados na Internet.
Ele tem por objetivo ser base para o ensino de Administrao de
Redes com uso do sistema Operacional Linux. A abordagem dada
nos captulos sempre inicia com uma pequena introduo terica sobre determinado assunto ou servio, seguido por um roteiro prtico
para experimentao do mesmo. Do mesmo modo que a abordagem
terica sucinta e breve, a experimentao tambm o . So abordados dezenas de tpicos desde a parte introdutria at a parte mais
avanada na administrao de servios de rede usando o Linux. Por
isto no se tem a pretenso de uma abordagem profunda sobre todos
os temas abordados.
O diagrama da Figura 1 apresenta os captulos integrantes do
livro agrupados em 6 blocos. O objetivo ilustrar a categorizao de
assuntos e indicar a sequncia de leitura, indicada pelas setas entre
blocos, que pode ser utilizada para um melhor aprendizado. O bloco
base pretende dar um embasamento mnimo ao leitor para poder
acompanhar o desenvolvimento do texto como um todo. Em seguida
existe o bloco que trata das configuraes mnimas necessrias a
serem feitas num servidor de produo. A programao do Shell
pretende dar suporte para agilizar tarefas repetitivas em todo o
sistema. Os prximos trs blocos so relativos aos servidores de rede
que so o principal foco de estudo do livro. Dependendo do nvel de
conhecimento preliminar do leitor, etapas podem ser puladas, ou a
viii
Sumrio
1
Introduo
Inittab
2.1
Introduo . . . . . . . . . . . . . . . . . . . . . . .
2.2
Configurao . . . . . . . . . . . . . . . . . . . . .
3.1
Introduo . . . . . . . . . . . . . . . . . . . . . . .
3.2
3.3
3.4
3.5
Acessrios relacionados . . . . . . . . . . . . . . . .
3.6
10
3.6.1
Remoo de aplicativos . . . . . . . . . . .
11
Mdias do URPMI . . . . . . . . . . . . . . . . . . .
11
3.7
4
Sistema de Arquivos
13
4.1
Introduo . . . . . . . . . . . . . . . . . . . . . . .
13
4.2
17
4.3
Montando parties . . . . . . . . . . . . . . . . . .
18
4.4
A estrutura de diretrios . . . . . . . . . . . . . . .
22
25
5.1
Introduo . . . . . . . . . . . . . . . . . . . . . . .
25
5.2
O que o LVM . . . . . . . . . . . . . . . . . . . .
26
5.3
Implantando LVM . . . . . . . . . . . . . . . . . . .
28
5.4
31
35
6.1
Introduo . . . . . . . . . . . . . . . . . . . . . . .
35
6.2
36
6.3
37
6.4
39
6.5
39
6.6
Removendo contas . . . . . . . . . . . . . . . . . .
40
43
7.1
Introduo . . . . . . . . . . . . . . . . . . . . . . .
43
7.2
Permisses de acesso . . . . . . . . . . . . . . . . .
44
7.3
46
7.3.1
46
7.3.2
47
7.3.3
48
7.3.4
49
7.3.5
Dono de um arquivo . . . . . . . . . . . . .
49
Cotas em disco
51
8.1
Introduo . . . . . . . . . . . . . . . . . . . . . . .
51
8.2
52
8.3
Manipulando Cotas . . . . . . . . . . . . . . . . . .
54
8.3.1
54
8.3.2
54
8.3.3
55
8.3.4
Verificando Cotas . . . . . . . . . . . . . . .
55
Crontab
57
9.1
Introduo . . . . . . . . . . . . . . . . . . . . . . .
57
9.2
Uso do Crontab . . . . . . . . . . . . . . . . . . . .
58
10 Backups e Polticas
61
10.1 Introduo . . . . . . . . . . . . . . . . . . . . . . .
61
. . . . . . . . . . . . . . . . . . .
62
62
63
63
64
64
64
10.4 Armazenamento . . . . . . . . . . . . . . . . . . . .
65
65
65
10.4.3 CD e DVD . . . . . . . . . . . . . . . . . .
66
66
68
69
73
73
11 Programao do Shell
11.1 Introduo . . . . . . . . . . . . . . . . . . . . . . .
79
79
xi
80
80
83
11.3.1 A Estrutura if . . . . . . . . . . . . . . . . .
83
86
87
87
88
11.5 Funes . . . . . . . . . . . . . . . . . . . . . . . .
89
12 Rede e Roteamento
91
12.1 Introduo . . . . . . . . . . . . . . . . . . . . . . .
91
91
12.2.1 Apelidos de IP . . . . . . . . . . . . . . . .
93
94
96
97
99
103
117
125
133
139
143
19 Servidor DHCP
153
159
163
167
175
193
203
209
215
227
233
237
241
32 Webmin
249
253
257
263
267
275
F Comandos Bsicos
289
F.1
Introduo . . . . . . . . . . . . . . . . . . . . . . . 289
F.2
F.3
Comandos . . . . . . . . . . . . . . . . . . . . . . . 290
G Redirecionamentos
293
. . . . . . . . 297
xix
Captulo 1
Introduo
Como princpio o gerenciamento de redes consiste em controlar os
dispositivos que compe a rede local e prover servios de rede aos
usurios da maneira transparente e fcil aos mesmos, sem esquecer a
segurana da mesma.
Usurios de rede acessam servios como: correio eletrnico,
navegao na internet, servidor para hospedar as pginas de seus projetos, um lugar seguro para guardar seus dados e documentos, impressoras etc. A tica dos mesmo que os servios devem estar sempre
disponveis, na mxima velocidade e sem impeclios em seu uso.
A direo da instituio normalmente enxerga a rede como um
recurso para melhorar a produtividade mas com um custo muitas
vezes elevado. Sendo assim estabelece limites para gastos, seja com
equipamentos, seja com contratao de enlaces com a Internet ou
ponto a ponto.
Por outro lado, do ponto de vista do administrador da rede, para
prover estes servios de maneira estvel e segura so necessrios uma
srie de outros servios e equipamentos que, a princpio, no interessa
diretamente ao usurio ou direo, sendo que muitas vezes os mesmos no percebem a existncia destes. Ao administrador da rede cabe
a tarefa de manter a rede ativa e funcional, sob todas as perspectivas,
seja do usurio em busca de servios, seja da direo da instituio
DNS
WWW
E-mail
FTP
SSH
Cota
Backup
etc
DNS
SSH
LDAP
Samba
Cota
etc
DMZ
DHCP
Backup
SSH
etc
Firewall
Proxy/Cache
SSH
NFS
Cota
SSH
etc
....
Cliente A
Cliente B
Introduo
Captulo 2
Inittab
2.1
Introduo
2.2
Congurao
ID:runstate:ao:processo
Cada um destes campos indicam:
ID identificador da entrada
runstate nvel de operao na qual esta entrada usada
ao indica como o processo executado. Por exemplo, o valor
wait indica que o processo deve ser executado e aguardar pelo
seu encerramento
s3:3:wait:/sbin/rc3
indica que o script /sbin/rc3 executado quando o sistema se
encontra no nvel de operao de nmero 3 e que o processamento
deve ser encerrado antes que qualquer ao adicional seja tomada.
Uma das principais atribuies deste arquivo a definio do
nvel de inicializao do sistema (runlevel), que podem ser:
id:5:initdefault:
indica que est mquina inicializa no modo grfico.
Outra atribuio deste arquivo habilitar ou no o reboot pela
associao das teclas <Ctrl>+<Alt >+<Delete >, com uma linha do
tipo:
Captulo 3
Instalao de Aplicativos
com RPM
3.1
Introduo
3.2
http://pt.wikipedia.org/wiki/RPM
as ligaes duplas garantem que eles possa ser reconstrudo sem nenhum problema. Nos computadores com o sistema operacional RedHat e derivados instalado, este banco de dados se encontra em /var/
lib/rpm.
3.3
Todo pacote RPM tem um rtulo de pacote (package label), que contm as seguintes informaes:
<nome>-<verso>-<release>.<arquitetura>.rpm
O nome do software.
A verso do software (a verso tirada da fonte original do pacote).
A edio do pacote (o nmero de vezes que o pacote foi refeito
utilizando a mesma verso do software).
A arquitetura sob a qual o pacote foi feito (i386, i686, athlon,
ppc, noarch etc.).
Um exemplo:
nano-0.98-2.i386.rpm
Note que o rtulo do pacote est contido no arquivo e no precisa necessariamente ser o mesmo que o nome do arquivo.
O cdigo-fonte tambm pode ser distribudo em pacotes RPM. O
rtulo de tais pacotes no contm a parte destinada para a arquitetura
e em seu local inserem src. Exemplo:
libgnomeuimm2.0-2.0.0-3mdk.src.rpm
8
3.4
3.5
Acessrios relacionados
O RPM comumente usado por outros acessrios para manipular dependncias, como o Yellow dog Updater Modified - yum ou o (verso
compatvel com RPM) Advanced Packaging Tool (apt).
Alguns gerenciadores de pacotes so:
dpkg usado com o Advanced Packaging Tool (apt) no Debian
Linux.
portage usado no Gentoo Linux.
urpmi usado no Mandriva.
9
3.6
URPMI
3.7
Mdias do URPMI
11
Captulo 4
Sistema de Arquivos
4.1
Introduo
14
http://pt.wikipedia.org/wiki/Sistema_de_cheiros
Sistema de Arquivos
Control Block) e ainda criando uma lista com a posio deste dado,
chamada de MFT (Master File Table).
Sabendo a posio do arquivo a ser aberto/gravado, o Sistema
Operacional solicita a leitura desta, decodifica/codifica e realiza a
abertura/gravao do dado.
Um sistema de arquivos , assim, uma forma de criar uma estrutura lgica de acesso a dados numa partio.
Sistema de arquivos e parties so normalmente confundidos,
quando na verdade so conceitos totalmente diferentes. As parties
so reas de armazenamento, criadas durante o processo de particionamento, sendo que cada partio funciona como se fosse um dispositivo de armazenamento. Para se utilizar uma partio, entretanto,
deve-se criar um sistema de arquivos, ou seja, um sistema que organize e controle os arquivos e diretrios desta partio.
Quando um sistema de armazenamento e particionado com uma
nica partio e formatado com um sistema de arquivos do Linux,
o mesmo dividido em 4 partes, Figura 4.1.
Permisses.
Data e hora de criao, acesso e ltima modificao.
Nmero de links para o mesmo.
Tamanho.
Localizao dos blocos onde est armazenado seu contedo.
O bloco de dados contm os dados propriamente ditos dos arquivos.
O Linux tem suporte dezenas de sistemas de arquivos, sendo
que os principais so:
ext: sistema de arquivos estendido (extended filesystem). o
sistema de arquivos mais utilizado no Linux. Existem ramificaes (ext2, ext3 e ext4), sendo o ext3 o mais amplamente utilizado pela comunidade Linux atualmente. Ele fornece padres
para arquivos regulares, diretrios, arquivos de dispositivos,
links simblicos e suporte a transaes (journalling), entre outras caractersticas avanadas. O ext4, lanado no final de 2008,
amplia os limites de armazenamento para 64 bits, aproximadamente 18 Exa Bytes, alm de melhorias de desempenho etc.
vfat: este o sistema de arquivos (volume FAT) dos sistemas
Windows9x e Windows NT.
ntfs:
este o sistema de arquivos dos sistemas
Windows2000, Windows XPe NT, entre outros.
nfs: sistema de arquivos de rede, utilizado para acessar diretrios de mquinas remotas, que permite o compartilhamento
de dados na rede.
reiserfs: sistema de arquivos com suporte a caractersticas
como, por exemplo, melhor performance para diretrios muito
grandes e suporte a transaes (journalling). No suporta
nativamente cota para usurios e grupos.
16
Sistema de Arquivos
4.2
2
3
4
5
Disco: /dev/sda
Tamanho: 160041885696 bytes, 160.0 GB
Cabecas: 255 Set . por Trilha : 63 Cilindros : 19457
6
7
8
9
10
11
12
13
sda1 Inic .
Primaria Linux ext3
41940,71
sda5
Logica
Linux ext3
20003,89
sda6
Logica
Linux swap/ Solaris
1998,75
sda7
Logica
Linux ext3
10001,95
17
14
15
Pri / log
Primaria
sda3
Espaco livre
Linux ext3
29652,14
56441,88
16
17
18
19
20
4.3
Montando parties
Uma vez formatado deve-se montar a nova partio para que ela se
torne acessvel aos usurios. O primeiro passo criar um diretrio
onde ser montado a nova partio e em seguida a montagem. Por
exemplo:
mkdir /dados
18
Sistema de Arquivos
Device
/dev/hda4
/dev/hda5
/dev/hda6
/dev/hdb
ext3
ext3
swap
iso9660
/dev/fd0
/mnt/oppy
auto
/dev/hda2
/media/win
ntfs
1
1
0
0
1
2
0
0
http://www.linuxbsd.com.br/phpLinuxBSD/modules/artigos _tecnicos/fstab.htm
19
Sistema de Arquivos
umask serve para indicar quais sero as permisses dos arquivos, j que os sistemas FAT e derivados no tem sistema de permisses. O padro a mscara do processo
atual. O valor dado em formato octal. O padro geralmente representado por 022, ou seja, bit w(permisso
de escrita) apenas para o dono.
21
4.4
A estrutura de diretrios
Sistema de Arquivos
23
Captulo 5
LVM - Logical
Manager
5.1
Volume
Introduo
Figura 5.1.
5.2
O que o LVM
O Gerenciador de Volumes Lgicos consiste em uma camada adicional entre os dispositivos fsicos e a interface de E/S no kernel para
fornecer uma viso lgica no armazenamento.
Ao contrrio do mtodo tradicional de particionamento, a implementao LVM cria um grande disco virtual, que pode inclusive
ter mais de um dispositivo de armazenamento, e o divide em parties
virtuais.
A grande vantagem permitir o redimensionamento das reas
de modo dinmico, ou seja, com o sistema operacional sendo utilizado.
A grande desvantagem que por ser um nico disco virtual, a
recuperao de dados em uma eventual pane no sistema de armazenamento bastante prejudicada.
A camada LVM composta pelas seguintes partes:
PV (Physical Volume) - Os volumes fsicos so as parties de
discos alocadas para o LVM.
VG (Volume Group) - o grande disco virtual. Um conjunto
(1 ou mais) de PVs forma um VG. Um conjunto de PVs podem
ser necessrios para criar filesystems maiores que a limitao
fsica de um disco rgido. Pode-se ter mais de um VG num
nico sistema.
26
5.3
Implantando LVM
Se o LVM no foi instalado juntamente com o sistema pode-se instalar/configurar o mesmo posteriormente. Como primeira ao deve-se
instalar os pacotes necessrios para gerenciamento e criao de parties LVM. Para isto usa-se o comando:
urpmi lvm2
No exemplo abaixo cria-se um grupo de volumes de nome
vgteste, numa partio j existente na mquina.
Primeiro
"inicializa-se"o LVM com o comando:
28
vgscan
Cria-se um volume fsico - PV - para cada partio que desejase alocar ao LVM. O comando abaixo deve ser executado um para
cada partio. No caso da Figura 5.2 teria-se 4 PVs: PV1, PV2, PV3
e PV4.
pvcreate /dev/hdaX (X = nmero da partio existente)
Inclui-se todos os volumes fsicos PV no grupo de volumes
VG com o comando:
vgcreate vgteste /dev/hdaX /dev/hdbX ...
Atualiza-se o LVM com o comando:
vgscan
Ativa-se o grupo de volumes VG com o comando:
vgchange -a y
Verifica-se a criao com o comando:
vgdisplay -v vgteste
Dentro do grupo de volumes VG cria-se, por exemplo, dois
volumes lgicos lv1 de 300 MB e lv2 de 500 MB com os comandos:
lvcreate -L 300M -n lv1 vgteste
lvcreate -L 500M -n lv2 vgteste
Ative os volumes lgicos com os comandos:
29
lvchange -a y /dev/vgteste/lv1
lvchange -a y /dev/vgteste/lv2
Formatam-se as parties lgicas criadas com os comandos
abaixo, ou de acordo com o sistema de arquivos usado: mkfs.xfs,
mkfs.ext3 e mkfs.reiserfs.
mkfs.ext4 /dev/vgteste/lv1
mkfs.ext4 /dev/vgteste/lv2
Criam-se os diretrios, onde sero montadas as parties, com
o comando:
mkdir /dados /backup
Montam-se as parties com os comandos:
mount /dev/vgteste/lv1 /dados
mount /dev/vgteste/lv2 /backup
Verificam-se as parties montadas com o comando:
df -h
As parties j esto disponveis para uso. Podem ser copiados
arquivos e diretrios. Se for necessrio pode-se aumentar o tamanho
da parties.
30
5.4
Para aumentar o tamanho de uma partio preciso primeiro verificar a disponibilidade de espao no volume group - VG. O espao
disponvel pode ser visto com o comando:
vgdisplay
Para verificar quais so os volumes lgicos - LV - utiliza-se o
comando:
lvdisplay
No exemplo abaixo aumenta-se o volume lgico lv1 em 100
MB:
lvextend -L +100M /dev/vgteste/lv1
Procuram-se e reparam-se erros do volume lgico:
e2fsck -f /dev/vgteste/lv1
Pronto a partio j foi aumentada. O nico problema que
o sistema de arquivos ainda no sabe disso. Executa-se o prximo
passo de acordo com o sistema de arquivos:
Sistemas de arquivos XFS:
xfs_growfs /dados
Sistemas de arquivos ReiserFS:
resize_reiserfs -f /dev/vgteste/lv1
31
33
Captulo 6
Administrao de
Usurios e Grupos
6.1
Introduo
6.2
-c Normalmente o nome completo do usurio, endereo etc. Campos separados por vrgulas.
6.3
As contas de usurios e grupos ficam armazenadas nos seguintes arquivos /etc/passwd, /etc/group e /etc/shadow.
O arquivo /etc/passwd armazena informaes de todos os
usurios cadastrados no sistema. Por padro contas com UID e GID
abaixo de 500 so contas do sistema, normalmente pre-definidas, ou
criadas no momento de instalao de algum servio. Este arquivo
deve ter permisso de leitura para todos os usurios. A separao dos
campos feita pelo caractere : segundo o modelo:
login:x:503:500:comentrio:/home/login:/bin/bash
A descrio dos respectivos campos so:
nome_do_grupo:senha:500:lista_de_usurios
A descrio dos respectivos campos so:
6.4
6.5
Valor padro
MAIL_DIR
PASS_MAX_DAYS
/var/spool/mail
99999
PASS_MIN_DAYS
PASS_MIN_LEN
PASS_WARN_AGE
UID_MIN
UID_MAX
GID_MIN
GID_MAX
CREATE_HOME
500
60000
500
60000
yes
Comentrio
Diretrio de e-mail
Nmero de dias at que a
senha expire
Nmero mnimo de dias entre duas trocas senha
Nmero mnimo de caracteres para composio da
senha
Nmero de dias para noticao da expirao da
senha
Nmero mnimo para UID
Nmero mximo para UID
Nmero mnimo para GID
Nmero mximo para GID
Criar ou no o diretrio
home
-g Grupo primrio.
-G Grupo(s) suplementar(es).
-l Novo login.
-L Trava a senha e portanto a conta de usurio.
-s Shell do usurio.
6.6
Removendo contas
Tabela 6.2:
useradd
Diretiva=
GROUP=
100
HOME=
/home
INACTIVE=
-1
EXPIRE=
AAAA/MM/DD
SHEL=
SKEL=
/bin/bash
/etc/skel
Comentrio
userdel login
A principal opo :
-r apaga o diretrio home do usurio e todo seu contedo.
41
Captulo 7
Permisso de Acesso
Arquivos
7.1
Introduo
7.2
Permisses de acesso
2
4
1
1
1
1
3
mar
ze
root
ze
root
4
adm
adm
root
prof
root
5
4096
11188
112614
900186
917615
6
Abr
Out
Dez
Out
Jan
7
2
31
27
31
5
8
14:48
21:28
14:47
22:04
21:27
9
BrOffice/
bro.bz2
bro.rpm
BrOo.exe
BrOo2.exe
valor
d
2,5,8
3,6,9
4,7,10
atributo
se o arquivo for um
diretrio
se existe permisso
de leitura
se existe permisso
de alterao
se existe permisso
de execuo
valor
-
atributo
se for um arquivo comum
se no existe permisso de leitura
se no existe permisso de alterao
se no existe permisso de execuo
7.3
r
4
w
2
x
1
Exemplo : Usando o formato octal, muda-se o modo de permisso do arquivo arq1 para que o proprietrio tenha acesso total e
todos os outros usurios (grupo e outros) tenham apenas permisso
de leitura e execuo:
46
ls -l arq1
50
Captulo 8
Cotas em disco
8.1
Introduo
O sistema de cotas em disco muito importante pois permite um controle efetivo do espao em disco a ser utilizado por usurios e grupos.
Permite que o administrador controle o sistema sendo equnime com
os usurios e grupos, antecipando, por exemplo, travamentos por parties lotadas.
A implementao do sistema de cotas no Linux se d por parties, ou seja, em todas as parties onde deseja-se um efetivo controle deve-se configurar o sistema de cotas. O controle se d dentro de
determinada partio, onde todos os arquivos pertencentes a determinado usurio/grupo sero contabilizados em sua cota, independente
do diretrio onde est contido.
As cotas so determinadas por usurio e/ou grupo, sendo que
pode-se impor limites por espao ocupado e/ou por nmero de arquivos e diretrios criados. Por exemplo, se um determinado usurio
recebe uma cota de 100 MB, ele poder ocupar no mximo 100 MB
de espao na partio, seja qual for o diretrio da partio. Ao mesmo
tempo no ter contabilizado em sua cota algum arquivo ou diretrio
salvo em outra partio.
/dev/hda5
/dev/hda7
/dev/hda9
/dev/hda1
/dev/hda8
none
/dev/hda6
/
/home
/dados
/mnt/win_c
/mnt/win_d
/proc
swap
ext3
ext3
ext3
ntfs
vfat
proc
swap
relatime
relatime
relatime
umask=0,nls=utf8,ro
umask=0,iocharset=utf8
relatime
relatime
1
1
1
0
0
0
0
1
2
2
0
0
0
0
/dev/hda5
/dev/hda7
/dev/hda9
/dev/hda1
/dev/hda8
none
/dev/hda6
/
/home
/dados
/mnt/win_c
/mnt/win_d
/proc
swap
ext3
ext3
ext3
ntfs
vfat
proc
swap
relatime
relatime,usrquota
relatime,usrquota,grpquota
umask=0,nls=utf8,ro
umask=0,iocharset=utf8
relatime
relatime
1
1
1
0
0
0
0
1
2
2
0
0
0
0
Arquivo modicado
8.2
Cotas em disco
quotaoff -augv
Se desejado pode-se retornar ao modo grfico a partir deste
ponto.
8.3
Manipulando Cotas
Cotas em disco
Disk quotas
Filesystem
/dev/hda7
/dev/hda9
inodes
482
432
soft
0
0
hard
0
0
55
Captulo 9
Crontab
9.1
Introduo
Hora
Dia do ms
Ms
0-59
0-23
1-31
1-12
9.2
Dia da semana
0-6 (0 o
domingo)
Programa a ser
executado
Nome do programa
Uso do Crontab
Funo
Edita a crontab atual do usurio logado
Exibe o atual contedo da crontab do usurio
Remove a crontab do usurio
Crontab
Captulo 10
Backups e Polticas
10.1
Introduo
10.2
Tipos de
backup
Backups e Polticas
As desvantagens so os dados redundantes, j que vrios backups totais vo manter a cpia de todos os dados, alterados ou no, em
fitas ou conjuntos distintos. Backups totais podem ser muito demorados. Se a quantidade de dados a ser salva muito grande. H um
desperdcio de fitas, devido a redundncia dos dados.
10.3
Modos de
backup
Backups e Polticas
10.4
Armazenamento
de acesso/gravao.
Atualmente encontram-se modelos com
capacidade de at 1,6 TB para gravao de dados compactados.
10.4.3 CD e DVD
Unidades com baixa capacidade de armazenamento. Sua vida esperada de 75 anos em casos de extremos cuidados. Pode ser utilizado
como forma de backup rpido e para pouco tempo de reteno. Adequado para uso domstico.
10.5
Polticas de
backup
Uma poltica de backup tem a funo de formalizar todos os procedimentos tcnicos e no tcnicos de uma cpia de segurana dos dados.
Dentro dele devem estar disponveis informaes sobre o que feito
no backup, dos tempos, validao dos dados e armazenagem.
Definir a poltica de backup no um procedimento puramente
tcnico, no compete somente a um administrador de redes a sua construo. Esse ponto importante devido ao fato de que nesta poltica
dever estar descrito exatamente o que dever ser salvo, por quanto
tempo e onde ser armazenado.
Agora se est entrando no maior ponto de problemas
relacionado a backup, o que salvar e o que no salvar. Quando
entra-se nesta discusso fica claro que o melhor, por garantia,
aquela vamos salvar tudo, mas o que tudo? Pode-se salvar
tudo? timo! Cabe a uma poltica definir o tudo, informando
caminhos completos destes arquivos, por quanto tempo e onde sero
armazenados, s ento entra o administrador, que o responsvel
pela operacionalizao dos procedimentos descritos. importante
que haja completa descrio para que toda a empresa possa saber
onde deixar seus arquivos, seja na rede ou numa estao especfica,
tendo a certeza de que neste local as informaes esto seguras
contra perdas ou apagamentos.
66
Backups e Polticas
precisa-se
detalhar de quanta em quantas horas, dias, semanas ou meses
os dados sero salvos.
Se existirem diferentes tempos
de backup para os dados, estes tambm necessitam de
especificao. Definir este tempo inclui, novamente, mais
pessoas alm do administrador, que ser responsvel por dar o
aval do que tecnicamente possvel realizar ou no.
Window )
Seja
qual for o local para armazenar as fitas do backup, sabe-se que
haver limitaes, seja de espao fsico, lgico ou realmente
de quantidade de unidades de armazenamento. Isto leva a
realizar um rodzio no backup, no qual para se salvar novos
dados, abre-se mo de outros considerados mais antigos. A
poltica ento deve ser capaz de informar em quanto tempo um
dado antigo e por quanto tempo este dado antigo precisa ser
mantido. O modelo de rotacionamento mais genrico e
famoso que tem-se o Grandfather-Father-Son GFS que
67
10.6
O sistema Amanda
68
http://www.amanda.org/
Backups e Polticas
diretrio
padro
No amanda.conf os principais parmetros a serem configurados so o org, onde deve-se informar um nome sugestivo para o esquema. O mailto que define o endereo eletrnico do responsvel
pelo backup. O tapecycle que define a quantidade de fitas no backup.
O tapedev que define o dispositivo de fita. O tapetype que define
o tipo de fita usado, o Amanda tem suporte nativo para vrios dispositivos de fita, caso necessrio pode-se buscar no stio do Amanda
atualizaes para novos modelos de dispositivos de fita. O labelstr
o rtulo que ser dado cada fita, no exemplo: diario01 diario99.
O dumpcycle define o nmero de dias entre os backups totais. O
continer holdingdisk traz as informaes do disco local auxiliar,
onde sero feitas as cpias temporrias. No exemplo isto feito no
disco hd1, no diretrio /amanda com tamanho mximo de 21 GB.
Recomenda-se que o tamanho deste diretrio deve ser maior ou igual
a capacidade de armazenamento da fita em uso.
org diario
mailto administrador@domnio.com.br
tapecycle 21 tapes
tapedev /dev/nst0
tapetype DDS4
labelstr diario[0-9][0-9]*
dumpcycle 4 weeks
holdingdisk hd1 {
comment main holding disk
directory /amanda
use 21 Gb
}
Backups e Polticas
Mtodo de
always-full
backup
root-tar
user-tar
high-tar
comp-root-tar
comp-root-tar-low
comp-user-tar
holding-disk
comp-user
nocomp-user
comp-root
nocomp-root
comp-high
nocomp-high
nocomp-test
comp-test
72
Aplicao
Backup completo para todas
as cpias
Parties root copiadas com o
tar
Parties de usurios copiadas
com o tar
Parties copiadas com o tar
Parties root copiadas com
compresso
Parties root copiadas com
compresso e baixa prioridade
Parties de usurios copiadas
com compresso
Salva diretamente na ta, no
armazenando no disco auxiliar
Parties no root em
mquinas
razoavelmente
rpidas
Parties no root em
mquinas lentas
Parties root com compresso
Parties root sem compresso
Parties muito importantes
em mquinas muito rpidas
Parties muito importantes
em mquinas lentas
Testa a cpia sem compresso
Testa a cpia com compresso
Backups e Polticas
Restaurando
Backups e Polticas
mkdir restauro
cd restauro
Em seguida chame-se o programa de recuperao:
amrecover diario
Deste modo entra-se num shell especfico do Amanda, que
ir habilitar uma srie de comandos prprios. Dentro deste ambiente
pode-se listar os arquivos armazenados, por data, por servidor etc.
A seguir mostra-se um exemplo de recuperao de alguns arquivos e
alguns comandos teis.
Pode-se ter uma viso geral dos diretrios e clientes Amanda
com o comando:
listdisk
Como primeira etapa determina-se a data em que foi
armazenado o arquivo que pretende-se restaurar. Evidentemente esta
uma informao que deve ser passada pelo usurio que est
requisitando a recuperao de algum arquivo. O formato a ser
utilizado AAAA-MM-DD, onde AAAA o ano, com quatro
dgitos, MM o ms e DD o dia. No exemplo abaixo ajusta-se a
data para 05 de setembro de 2009.
setdate 2009-09-05
O prximo passo determinar de qual cliente Amanda se quer
restaurar o backup. No exemplo abaixo seleciona-se o localhost,
mas pode-se optar por qualquer cliente definido na seo 10.6.2.
sethost localhost
A seguir determina-se de qual diretrio do respectivo cliente
Amanda se restaurar o backup. Abaixo, um exemplo, de como extrair
somente um arquivo do diretrio /etc.
75
setdisk /etc
Agora pode-se navegar pelos sub-diretrios do diretrio escolhido, ou simplesmente listar seu contedo.
cd rc.d
ls
O prximo passo adicionar todos os arquivos a serem restaurados. Lembre-se que pode-se usar coringas, como o * para adicionar todos os arquivos, ou pode adicionar um diretrio completo
bastando informar seu nome.
add rc.local
Continua-se adicionando diretrios e arquivos, conforme o
necessrio.
Depois disso resta extrair os arquivos. Os arquivos e diretrios
marcados para extrao sero salvos no diretrio de entrada, ou seja,
no diretrio a partir de onde se lanou o comando amrecover, no exemplo restauro.
extract
Backups e Polticas
0 12 * * 6 /usr/sbin/amcheck -m semanal
0 12 * * 6 /usr/sbin/amdump semanal && eject /dev/nst0
78
Captulo 11
Programao do
11.1
Shell
Introduo
Programao Shell permite que administradores criem pequenos programas para automatizar a administrao do sistema, configurar melhor o sistema e entender vrios recursos do prprio sistema operacional Linux, por exemplo, toda a configurao da sequncia de boot
do UNIX envolve scripts shell.
A programao shell permite a criao de um arquivo de texto
contendo comandos do UNIX e comandos especiais do shell para
definir e utilizar: variveis, fazer testes no sistema, laos de
repetio, funes, comentrios etc.
Existe uma relao direta entre conhecimento dos comandos
do shell e a complexidade dos scripts que podem ser escritos. Este
livro parte do pressuposto do conhecimento preliminar dos mesmos e
no tem a inteno de se aprofundar nestes comandos, no Apndice
F so citados alguns poucos e seus usos.
Um script shell1 interpretado pelo respectivo shell e, portanto, no um programa a ser compilado. Isto pode tornar um script
shell lento, j que cada comando que o script chama dispara um pro1
http://walfredo.dsc.ufpb.br/cursos/suporte20012/progsh/index.htm
11.2
Comandos Bsicos
# !/ bin /bash
# Este programa diz alo
3
4
Programao do Shell
# !/ bin /bash
# Script mostrando o uso de variveis
3
4
5
6
Outro conjunto interessante de variveis o que pode ser passado diretamente do shell ao script. Isto feito imediatamente com
o uso do caractere especial $ ao longo do script. O $0 retorna
ao script seu prprio nome, o $1 $9 retorna respectivamente os
campos 1 9 passados junto com o nome do script em sua execuo,
o $# retorna o nmero de parmetros passados e o $* retorna todos
os parmetros do programa, se em alguma linha do script tem-se o
contedo echo $*, todos os parmetros passados sero impressos. No
exemplo da Listagem 11.3, tem-se um teste simples para verificar a
entrada de parmetros num script. Neste script, entre as linhas 5 e
8, faz-se o teste buscando a presena de 1 (um) parmetro passado
ao script, caso isto no acontea o script retorna uma mensagem de
erro, informando como o mesmo deve ser executado e termina sua
execuo. O comando exit encerra o shell e retorna um status para o
processo pai.
1
2
# !/ bin /bash
# Script mostrando a manipulacao de variveis
81
3
4
5
6
7
8
${variavel:-valor_padrao}
ou
${variavel:?mensagem_desejada}
No primeiro caso a varivel assumir o valor_padrao caso
nenhum valor seja inserido e no segundo caso ser apresentada ao
usurio uma mensagem de erro com contedo mensagem_desejada.
No exemplo da Listagem 11.4 tem-se um script que ir somar 3 valores passados ao mesmo, caso um ou mais dos valores no sejam
passados, os mesmos sero assumidos com o valor 0 (zero). Por exemplo, ao executar-se o script com valores 2, 4 e 7 tem-se como resposta A soma e 13, sem valores tem-se como resposta A soma e
0.
1
2
# !/ bin /bash
# Script mostrando a manipulacao de variveis
3
4
5
Programao do Shell
Parmetros compostaos podem ser utilizados desde que estejam agrupados dentro de aspas duplas - . Por exemplo o comando
echo a b c d apresenta 4 parmetros, j o echo a bc d apresenta 3,
j que a b sero encarados como um nico parmetro.
Num script, como em qualquer outra linguagem de programao, pode-se ter entrada e sada de parmetros. J foi apresentada
a possibilidade de sada (print) de parmetros com o comando echo
e entrada na chamada do script. Para uma leitura de parmetros em
qualquer posio do script utiliza-se o comando read. No exemplo
apresentado na Listagem 11.5 tem-se na quarta linha uma requisio,
ao usurio que executou o script, de insero de seu nome, o -n
serve para a no insero de nova linha aps a mensagem. Na quinta
linha faz-se a leitura propriamente dita da varivel, no caso nome, e
na ltima linha utiliza-se esta varivel para imprimir uma mensagem
ao usurio. Caso o usurio no insira caracteres ser impresso: Seu
nome e sem_nome.
1
2
# !/ bin /bash
# Script modelo para interacao com usuario . Entrada e saida de
parametros
3
4
5
6
11.3
11.3.1 A Estrutura if
Como em qualquer linguagem de programao um script shell
pode executar testes com variveis. Abaixo tem-se as principais formaes da estrutura se (if ).
if comando
83
then
execuo se "comando" retornar status "ok" (=0)
else
execuo se "comando" retornar status "no ok"
fi
if comando1
then
execuo se "comando1" retornar 0
elif comando2
execuo se "comando2" retornar 0
else
execuo se no entrar nos "if" acima
fi
if comando1 && comando2
then
execuo se "comando1" E "comando2" retornarem 0
fi
if comando1 || comando2
then
execuo se "comando1" OU "comando2" retornarem 0
fi
Os comandos, da estrutura se podem ser substitudos por
variveis, neste caso devem ser inseridas entre colchetes - [ ]. Na
Listagem 11.6 tem-se algumas possibilidades de uso desta estrutura,
inclusive com variveis. Entre as linhas 4 e 7 o if testa o nmero
de parmetros passados, se for igual a zero aborta a execuo. Entre
as linhas 9 e 15 o if executa o comando ls em dois arquivos. Se os
dois existirem o script envia uma mensagem que os arquivos foram
encontrados. Caso pelo menos um deles no exista o retorno do comando sera no ok e o script envia uma mensagem de erro e aborta
a execuo.
84
Programao do Shell
1
2
# !/ bin /bash
# Script com exemplos da estrutura if
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Expresso
Verdeiro se
-z string
-n string
string1 = string2
string1 != string2
string
85
Expresso
Verdeiro se
int1
int1
int1
int1
int1
int1
int1
int1
int1
int1
int1
int1
-eq int2
-ne int2
-gt int2
-ge int2
-lt int2
-le int2
igual a int2
NO igual a int2
maior que int2
maior ou igual a int2
menor que int2
menor ou igual a int2
arquivo
arquivo
arquivo
arquivo
arquivo
arquivo
arquivo
arquivo
arquivo
arquivo
arquivo
arquivo
arquivo
existe
existe
existe
existe
existe
existe
existe
existe
existe
existe
existe
existe
existe
e
e
e
e
e
e
e
e
e
e
e
e
e
Expresso Propsito
!
-a
-o
( expr )
Programao do Shell
# !/ bin /bash
# Script com exemplo de uso da estrutura case .
3
4
...
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
11.4
Laos de Repetio
while comando
87
do
# !/ bin /bash
# Exemplo de uso da estrutura while
3
4
5
6
7
8
9
10
nomeArq=$1
numLinha=1
while read linha
do
echo "$numLinha $linha"
numLinha=expr $numLinha + 1
done < nomeArq
Programao do Shell
/caminho/do/diretorio/lista_de_usuarios.txt
e a atribui varivel user. Na linha 6 gerado o arquivo.
1
2
# !/ bin /bash
# Exemplo de uso da estrutura for .
3
4
5
6
7
11.5
Funes
# !/ bin /bash
#
# Exemplo de uso das Funcoes
4
5
nome_do_arquivo=$1
6
7
8
9
10
11
12
else
return 1
fi
13
14
15
16
17
# Programa principal
18
19
20
21
22
23
24
25
if verificaArquivos $nome_do_arquivo
then
echo "Arquivo $nome_do_arquivo existe . "
else
echo "Arquivo nao encontrado . "
exit 1
fi
90
Captulo 12
Rede e Roteamento
12.1
Introduo
Neste captulo no se tem a inteno de abordar a arquitetura das redes e nem seus protocolos. O objetivo to somente mostrar como
configurar as interfaces de rede de uma mquina com sistema operacional Linux, bem como configur-la como roteador ou roteador de
borda.
Parte-se do prvio conhecimento das camadas do protocolo
TCP/IP Transmission Control Protocol /Internet Protocol, do endereamento IP e dos protocolos de roteamento.
12.2
Congurao dhcp
DEVICE=eth0
BOOTPROTO=dhcp
ONBOOT=yes
Congurao esttica
DEVICE=eth0
BOOTPROTO=static
ONBOOT=yes
IPADDR=192.168.2.1
NETMASK=255.255.255.0
BROADCAST=192.168.2.255
GATEWAY=192.168.2.1
MS_DNS1=172.18.0.1
MS_DNS2=200.135.37.65
HOSTNAME=nome_de_maquina.nome.do.dominio
Uma vez ajustados estes parmetros, basta reiniciar a interface
de rede com o comando:
service network restart
Os parmetros ajustados acima sero assumidos como o padro
da mquina e, sempre que a mquina ou interfaces de rede forem
reiniciadas, os valores setados sero dados por estes arquivos.
92
Rede e Roteamento
O comando ifconfig serve, entre outras coisas, para modificar dinamicamente alguns destes parmetros. Para um teste, por
exemplo, pode-se mudar os parmetros da interface de rede sem modificar estes arquivos. Para isto usamos o comando ifconfig com a
seguinte sintaxe:
ifconfig interface ip/mascara up/down
Por exemplo, no comando abaixo estamos mudando a
configurao da interface de rede eth0 para assumir o endereo IP
192.168.2.23 com mscara de rede 255.255.255.0. Isto passar a
valer imediatamente mas ao reiniciarmos a interface, ou mquina, os
arquivos de configurao sero lidos e a interface voltar a ter os
parmetros pr-ajustados.
ifconfig eth0 192.168.2.23/24 up
12.2.1 Apelidos de IP
No Linux, a mesma interface de rede pode responder por mais de um
endereo IP. Isto pode ser til em algumas configuraes especiais de
rede, por exemplo, duas sub-redes no mesmo domnio de coliso ou
um servidor Apache atendendo a domnios virtuais etc. Para fazer-se
isto basta criar interfaces virtuais com nomes ethN:0, ethN:1 etc. Por
exemplo:
ifconfig eth0:0 10.10.1.23/24 up
Ou
criando
um
arquivo
/etc/sysconfig/network-scripts/ifcfg-eth0:0
com
somente o contedo abaixo e reiniciarmos o servio de rede.
IPADDR=192.168.2.1X
NETMASK=255.255.255.0
93
Rede e Roteamento
Roteador
0.0.0.0
0.0.0.0
192.168.2.1
MscaraGen.
255.255.255.0
255.0.0.0
0.0.0.0
Opes
U
U
UG
Mtrica
1
0
0
Ref
0
0
0
Uso
0
0
0
Iface
eth0
lo
eth0
nameserver 172.18.0.1
nameserver 200.135.37.65
Para alter-los deve-se redefinir os devidos parmetros na
seo 12.2.
12.3
Roteadores e sub-redes
Rede e Roteamento
de tal modo que quando for encontrada uma regra que atenda a demanda o sistema para imediatamente. Analisando a tabela de roteamento apresentada na Tabela 12.2 pode-se fazer a seguinte interpretao: se um pacote for destinado 192.168.2.0/24 o roteamento
analisar somente a primeira linha e simplesmente jogar o pacote
na interface eth0, se o pacote for destinado a qualquer endereo iniciado com 127 o pacote ser jogado pela interface virtual lo e por
ltimo para qualquer outro destino (0.0.0.0) o pacote ser encaminhado para 192.168.2.1 e este que se vire. Observe que o endereo
192.168.2.1 um endereo atingvel pela interface eth0, ou seja,
encontra-se em sua rede local.
12.3.1 Montando
Roteamento
Tabelas
Estticas
de
Observe que nas tabelas de roteamento existem algumas rotas que podem eliminadas, j que so desnecessrias pois direcionam
rotas para redes especficas passando pelo roteador padro (0.0.0.0).
Portanto, para a rede proposta na Figura 12.1 as tabelas estticas de
roteamento simplificadas seriam as apresentadas na Tabela 12.6.
Pode-se observar nas tabelas que todos os caminhos so contemplados e todos os roteadores passam a conhecer as demais redes e
98
Rede e Roteamento
Roteador 1
Rede
10.5.7.0
192.168.5.0
0.0.0.0
Roteador
eth0
eth1
192.168.5.254
Roteador 3
Rede
172.18.4.0
10.0.0.0
172.18.4.0
Roteador
eth0
eth1
172.18.4.253
echo 1 >/proc/sys/net/ipv4/ip_forward
sysctl -w net.ipv4.ip_forward=1
Assim, a mquina imediatamente passar a rotear pacotes de
uma interface outra. Este roteamento ocorrer somente se os pacotes tiverem um destino explcito outra interface, caso contrrio os
pacotes no sero roteados, ou seja, um roteador segmenta a rede, e
seu trfego, criando sub-redes distintas.
99
Caso deseja-se deixar permanentemente o roteamento habilitado deve-se editar o arquivo /etc/sysctl.conf e acrescentar ao
final no mesmo o seguinte contedo:
# To enable routing
net.ipv4.ip_forward = 1
Rede e Roteamento
IPADDR=192.168.X.X
NETMASK=255.255.255.0
Reinicia-se o servio de rede com o comando:
service network restart
Adicionam-se as rotas, para as 3 demais sub-redes, com a sequncia de comandos abaixo:
route add -net 172.18.3.0/24 gw 192.168.2.103
route add -net 172.18.4.0/24 gw 192.168.2.104
route add -net 172.18.5.0/24 gw 192.168.2.105
Adiciona-se tambm a rota padro:
route add default gw 192.168.2.101
Habilita-se o roteamento com o comando:
Testes
Para testar todas as rotas estabelecidas deve-se adotar, por exemplo,
a seguinte sequncia de testes:
1. A partir do cliente pingar a interface mais prxima do
roteador. Se este ping no funcionar deve-se revisar a
configurao fsica e lgica entre este e o roteador.
2. A partir do roteador pingar para 192.168.2.101. Se no pingar por que tem algum erro de configurao fsica ou lgica
na interface externa do roteador.
3. A partir do roteador pingar para a interface interna de um
outro roteador, por exemplo 192.168.4.1. Se houve problemas os motivos podem ser dois: no foi escrita uma rota adequada para tal rede, verifica-se com o comando route -n, e/
ou porque o roteador pingado est mal configurado. Lembrese que os pacotes devem ter rota para ida e volta.
4. A partir do cliente, pingar para outro cliente. Se houver problemas pode ser por m configurao do roteador local ou do
roteador da rede pingada.
5. A partir do cliente, usar o traceroute para outro cliente, verificando a rota utilizada.
102
Captulo 13
Introduo
Um servio de nomes, como o DNS Domain Name System, armazena o conjunto de um ou mais contextos de atribuio de nomes
conjuntos de vnculos entre nomes textuais e atributos de objetos,
como usurios, computadores, servios e objetos remotos.
O DNS um projeto de servio de nomes cujo banco de
dados de atribuio de nomes usado na Internet. Foi planejado por
Mockapetris, no RFC 1034, para substituir um arquivo central que
era carregado por download, no escalvel e de administrao centralizada. projetado para ser usado em vrias implementaes. Na
prtica, somente amplamente utilizado para atribuio de nomes da
Internet. Os objetos nomeados so principalmente os computadores
com, basicamente, seu endereo IP como atributo.
O Domain Name System um banco de dados global com
estrutura hierrquica com separador ponto .. Sendo que os servidores DNS no reconhecem nomes relativos j que todos os nomes se
referem raiz global.
13.2
Domnios Hierrquicos
Tipo de Signicado
registro
Contedo principal
NS
Nome de domnio do
servidor
Nome de domnio do
CNAME
SOA
MX
PTR
TXT
WKS
HINFO
13.3
Endereo de computador
Servidor de nome com
autoridade
Nome cannico de um
Nmero IP
alias
alias
Texto arbitrrio
Lista de nomes de
servios e protocolos
Arquitetura de mquina
e SO
Resoluo de Nomes
Ao se realizar uma consulta DNS pode-se obter as seguintes informaes principais: resoluo de nomes de mquinas, ou seja, seu
nmero IP; localizao de servidores de correio eletrnico e a resoluo reversa, ou seja, dado um nmero IP obtm-se o nome da
mquina. Alm disto, mas muito pouco utilizado na prtica, podese obter informaes sobre mquinas e servios conhecidos.
105
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
br .
172800 IN NS E.DNS.br.
br .
172800 IN NS F.DNS.br.
br .
172800 IN NS A.DNS.br.
br .
172800 IN NS B.DNS.br.
br .
172800 IN NS C.DNS.br.
br .
172800 IN NS D.DNS.br.
;; Received 288 bytes from 192.228.79.201#53(B.ROOTSERVERS.NET) in
272 ms
25
26
27
28
ifsc . edu.br .
86400 IN NS artemis . ifsc .edu.br .
ifsc . edu.br .
86400 IN NS hermes.ifsc . edu.br .
;; Received 122 bytes from 200.189.40.10#53(B.DNS.br) in 24 ms
29
30
31
32
33
sj . ifsc . edu.br .
3600
sj . ifsc . edu.br .
3600
sj . ifsc . edu.br .
3600
;; Received 134 bytes from
IN A 200.135.37.65
IN NS ns.popudesc.rctsc.br.
IN NS hendrix. sj . ifsc .edu.br .
IN NS ns.popufsc.rctsc.br.
200.135.37.65#53(hendrix . sj . ifsc .edu.br) in 0
34
35
36
37
38
39
13.4
Instalao e congurao
https://www.isc.org/software/bind
109
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
110
23
24
25
26
27
Agora
edita-se
o
arquivo
/var/lib/named/var/named/master/redes.zone de acordo
com o modelo da Listagem 13.3. Na linha 1 tem-se a definio do
TTL (Time To Live) que neste caso significar por quanto tempo, em
segundos, que a cpia permanecer no cache do servidor que o
copiou. Na linha 2 tem-se a demarcao do incio da zona (Start Of
Authority) seguida do endereo eletrnico do responsvel pelo
domnio. Na terceira limha tem-se o nmero serial do arquivo. Este
nmero deve ser incrementado a cada alterao do arquivo, sob pena
de inconsistncia com as cpias cache espalhadas pela Internet. A
recomendao que este nmero seja composto pela data, na ordem
inversa, mais dois dgitos para o nmero serial do dia. As linhas 4 e
5 afetam principalmente o mantenedor da zona e os prestadores de
servios secundrios e pode ser negociado entre eles. O campo
expiry, linha 6, define a validade dos dados da zona, portanto os
dados de cache podem ser utilizados mesmo que o servidor master
esteja fora do ar. A linha 7 determina o valor padro para todos os
TTL dos registros sem valor explcito. Na linha 8 e 9 esto
declarados quais so os servidores de nomes (Name Servers)
responsveis pelo domnio. Nas linhas 10 e 11 os servidores de
correio eletrnico, sendo que o mail1 o principal, prioridade 0, e o
mail2 o secundrio, prioridade 10. Na linha 12 definido o
endereo (Address) da mquina localhost.
Na linha 13 o
$ORIGIN define a extenso que valer todos os endereos definidos
na sequncia. Da linha 14 em diante so definidos todos os
endereos de mquinas do domnio, por exemplo a mquina
m1.redes.edu.br. ter o endereo 192.168.2.101. Cabe
salientar que as declaraes entre as linhas 18 e 21 servem para fazer
um balanceamento de carga entre os servidores declarados. Neste
caso, a cada consulta o DNS entregar um IP distinto, num esquema
111
$TTL 86400
@
IN SOA m1.redes.edu.br root (
2009123100
; serial (d. adams)
3H
; refresh
15M
; retry
1W ; expiry
1D )
; minimum
IN NS
m1.redes.edu.br .
IN NS
m7.redes.edu.br .
IN MX 0
mail1. redes . edu.br .
IN MX 10 mail2.redes.edu.br .
localhost
IN A
127.0.0.1
$ORIGIN redes.edu.br.
m1 A 192.168.2.101
m7 A 192.168.2.177
mail1 A 192.168.2.201
mail2 A 192.168.2.202
www A 192.168.2.155
www A 192.168.2.156
www A 192.168.2.157
www A 192.168.2.158
Por
fim
edita-se
o
arquivo
/var/lib/named/var/named/master/redes.rev de acordo
com o modelo apresentado na Listagem 13.4.
Este arquivo
segue o mesmo padro de configurao do redes.zone. Neste
caso objetiva-se a declarao da zona reversa, ou seja, dado um
nmero IP qual o seu nome equivalente. Entre as linhas 10 e
13 esto declarados os nmeros IPs de 101 104, da classe
192.168.2 definido no arquivo /etc/named.conf, com seus nomes
equivalentes, por exemplo m1.redes.edu.br..
1
2
3
4
5
112
$TTL 86400
@
IN
SOA
3600000
86400 )
7
8
IN
9
10
11
12
13
101
102
103
104
; Expire
; Minimum
NS
m1.redes.edu.br .
IN
NS
m7.redes.edu.br .
IN
PTR
m1.redes.edu.br .
IN
PTR
m2.redes2.edu.br .
IN
PTR
m3.redes3.edu.br .
IN
PTR
m4.redes4.edu.br .
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$TTL 86400
@
IN SOA m2.redes2.edu.br root (
2009123100
; serial (d. adams)
3H
; refresh
15M
; retry
1W ; expiry
1D )
; minimum
IN NS
m2.redes2.edu.br .
IN NS
m15.redes2.edu.br .
IN MX 0
mail . redes2 . edu.br .
localhost
IN A
127.0.0.1
$ORIGIN redes2.edu.br.
m2 A 192.168.2.102
mail A 192.168.2.102
www A 192.168.2.102
Testes de funcionamento
Como primeiro teste configura-se a mquina M2, por exemplo,
para ser sua prpria cliente, editando o /etc/resolv.conf e
adicionando a diretiva nameserver 192.168.2.102 no incio do
arquivo. Em seguida d-se um ping para m2.redes2.edu.br (a
prpria mquina). Se pingar sinal de que o prprio servidor est
funcionando.
Para poder resolver os nomes das demais mquinas deve-se
configurar as mquinas para serem cliente DNS da mquina M1, editando o arquivo /etc/resolv.conf e deixando-o com o contedo:
114
nameserver 192.168.2.101
Em seguida pode-se testar a resoluo de nomes com
qualquer cliente ou com as ferramentas especficas, como o dig ou
nslookup. Por exemplo, para testes de resoluo direta usa-se o
dig m2.redes2.edu.br e para resoluo reversa dig -x
192.168.2.102.
115
Captulo 14
Servidor Apache
14.1
Introduo
Um servidor web um programa de computador, ou o computador que executa este programa, responsvel por responder a pedidos
HTTP (Hypertext Transfer Protocol) feitos por clientes incluindo opcionalmente dados. As requisies geralmente so pginas web, tais
como documentos HTML com objetos embutidos como imagens, arquivos etc.
O servidor Apache12 (Apache server) o mais bem sucedido
servidor web livre. Foi criado em 1995 por Rob McCool, ento
funcionrio do NCSA (National Center for Supercomputing Applications), Universidade de Illinois.
O servidor compatvel com o protocolo HTTP verso 1.1.
Suas funcionalidades so mantidas atravs de uma estrutura de mdulos, permitindo inclusive ao usurio escrever seus prprios mdulos
utilizando a API do software.
disponibilizado em verses para os sistemas Windows,
Novell Netware, OS/2 e diversos outros do padro POSIX (Unix,
GNU/Linux, FreeBSD etc..
1
2
http://pt.wikipedia.org/wiki/Servidor_Apache
http://www.apache.org/
14.2
Instalao e congurao
Servidor Apache
14.2.1 Direcionamento
A diretiva Listen diz ao servidor para aceitar requisies somente
da porta ou da tupla <endereo, porta >. Por exemplo, para fazer o
servidor aceitar conexes na porta 80 e 8080 em todas as interfaces
basta:
Listem 80
Listem 8080
Para o servidor aceitar conexes na porta 80 numa interface e
na porta 8080 em outra:
Listem 192.168.2.1:80
Listem 192.168.2.10:8080
<VirtualHost 192.168.2.188>
ServerAdmin webmaster@redes.edu.br
DocumentRoot /var/www/docs/virtual
ServerName virtual.redes.edu.br
ErrorLog logs/virtual-error_log
119
TransferLog logs/virtual-access_log
<\slash VirtualHost>
<VirtualHost >e </VirtualHost >so usados para delimitar um
conjunto de diretrizes que se aplicam apenas a um Hospedeiro Virtual especfico. Qualquer diretiva que permitido em um contexto
de acolhimento virtual pode ser utilizada. As diretivas apresentadas
no exemplo so auto-explicativas, sendo a principal a DocumentRoot
que especifica o diretrio que conter os arquivos html e outros relativos ao Hospedeiro Virtual em questo. Quando o servidor recebe
um pedido de um documento em um Hospedeiro Virtual especfico,
ele usa as diretivas de configurao includo na seo <VirtualHost >.
Cria-se o diretrio virtual com o comando:
mkdir -p /var/www/docs/virtual
Cria-se mais um arquivo index.html dentro deste diretrio
com o contedo:
Servidor Apache
urpmi apache-mod_userdir
Com isto, entre aoutras coisas, ser criado um arquivo /etc/
httpd/modules.d/67_mod_userdir.conf, que conter as definies de
compartilhamento dos diretrios pessoais. Este arquivo pode conter um continer com o seguinte formato:
Order allow,deny Ordem de avaliao das diretivas para permitir ou negar acesso ao recurso.
require valid-user
AuthType Basic
AuthName "Aqui define-se o nome da janela que
ser aberta solicitando login e senha"
AuthUserfile /etc/httpd/conf/senhas.pw
O login e senha requisitados pelo Apache podem ser consultados em uma base LDAP, veja no Captulo 18, ou podem ser formados por uma pequena base local do prprio Apache. Neste caso
devem ser criados com o seguinte comando:
htpasswd
-c
nome_do_usuario
/etc/hhtpd/conf/senhas.pw
Servidor Apache
o
/etc/httpd/conf/vhosts.d/01_default_ssl_vhost.conf
que cria um servidor virtual para as pginas https, que entre
outras coisas tem um diretiva SSLCertificateKeyFile que
aponta para a chave criptogrfica que fica localizada no arquivo
/etc/pki/tls/certs/localhost.crt. Esta chave gerada no
momento de instalao do mdulo.
123
Captulo 15
Servidor Postx
15.1
Introduo
Um servidor de correio eletrnico1 gerencia os e-mails que so enviados e recebidos. Os servidores de e-mail podem ser servidores Internet, onde e-mails enviados e recebidos podem ser transitados para
qualquer lugar do mundo, ou servidores de correio de intranet onde
as mensagens trafegam apenas dentro da empresa. Atravs do correio
eletrnico podem ser criados grupos de discusso sobre quaisquer assuntos. Estes grupos so chamados de listas ou refletores. Um refletor
uma caixa postal eletrnica falsa. Todas as mensagens enviadas para
esta caixa postal, so transmitidas para as pessoas cadastradas na lista
deste refletor. Desta forma, cada membro do grupo passa a dispor das
mensagens enviadas para o refletor em sua caixa postal ou mailbox.
Cada membro, pode ler as mensagens e dar a sua opinio sobre elas,
enviando uma nova mensagem para o refletor.
Como exemplo de sistemas de correio eletrnico livres pode-se
citar o Postfix23 , que um dos candidatos a substituir o SendMail.
O Postfix hoje uma das melhores alternativas para todas as insti1
http://pt.wikipedia.org/wiki/Sistema_de_correio_eletrnico
http://www.postx.org/postconf.5.html
3
http://www.postx.org/
2
15.2
Servidor Postfix
nome por agir como uma agncia de correios mesmo, que guarda as
mensagens dos usurios em caixas postais e aguarda que estes venham buscar suas mensagens. Outro protocolo que pode ser utilizado
para este mesmo fim o IMAP (Internet Message Access Protocol),
Protocolo para Acesso de Mensagens via Internet, que implementa,
alm das funcionalidades fornecidas pelo POP, muitos outros recursos. Os protocolos POP e IMAP so protocolos para recebimentos de
mensagens, ao contrrio do protocolo SMTP, que serve para enviar
mensagens, logo, possuem funcionalidades diferenciadas, como por
exemplo, autenticao do usurio.
O recebimento de mensagens pelo cliente se d atravs da solicitao do MUA do usurio ao seu servidor de e-mail, que aps a
autenticao do usurio vai informar se existem mensagens em sua
caixa postal e quantas so. A seguir o MUA solicita a transferncia
das mensagens para a mquina local, finalizando assim o processo de
troca de mensagens entre dois usurios.
15.3
Instalao e congurao
urpmi postfix
O servidor de correio eletrnico4 exige o funcionamento em
conjunto com um servidor DNS, ou melhor, necessrio que exista
um servidor DNS apontando para a mquina que pretende-se instalar o Postfix. Para configurar o Servidor DNS corretamente veja o
Captulo 13. Para funcionamento na mquina local, trocando mensagens somente entre os usurios da prpria mquina, o Postfix j
vem pronto, bastando inici-lo. Para funcionar como um servidor
de Intranet ou Internet deve-se configurar o segundo bloco do arquivo /etc/postfix/main.cf, acrescentando/mudando somente os
parmetros apresentados na Listagem 15.1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
http://www.conectiva.com/doc/livros/online/10.0/servidor/pt_BR/
ch11.html
128
Servidor Postfix
27
28
29
30
Algumas diretivas tem funo evidente e no sero comentadas. Na linha 4 define-se a extenso do e-mail, ou seja, o campo a
ser colocado aps o @. O inet_interfaces, linha 5, define em quais
interfaces o servidor de correio vai atender. mynetworks_style,
linha 6, define a rede de confiana do servidor, ou seja, quais os
clientes podero acess-lo. Pode ser class, confia em toda a classe
de rede onde o servidor est alocado, subnet confia somente na subrede local, host confia somente na prpria mquina. Na linha 7
definido os domnios de e-mail aos quais o servidor receber correspondncias.
A filtragem de spans sempre um motivo de preocupao para
os administradores do Postfix. Como primeira tentativa de evit-los
so propostas algumas regras, entre as linhas 9 e 31, novamente algumas so auto explicativas. Na linha 12 definido um arquivo onde
pode-se colocar manualmente endereos de email ou endereos de
domnios que sero bloqueados, isto serve para evitar envios reincidentes de fontes maliciosas e que no so filtradas pelas outras regras.
Na linha 16 define-se o cdigo padro de resposta ao endereo bloqueado. Na linha 17 so rejeitados os e-mails de usurios onde no
h casamento entre o usurio logado e o nome de usurio que envia o e-mail, ou seja, quando um usurio tenta se passar por outro.
O reject_rbl_client, linhas 23 28, consulta o stio informado
e verifica uma lista reversa de endereos de rede contendo possveis
spammers, caso o emitente esteja nesta lista seu e-mail ser rejeitado.
o mesmo caso para reject_rhsbl_client a diferena que neste
caso a consulta para endereos diretos. possvel a consulta a
vrios stios. Deve-se tomar cuidado com este tipo de consulta j que
as mesmas podem apresentar falso positivo, ou seja, conterem um
endereo que efetivamente no gerador de spam.
129
15.4
Testes
130
http://www.gnu.org/software/mailman/index.html
Servidor Postfix
131
Captulo 16
Servidor Samba
16.1
Introduo
http://www.samba.org/
uma implementao do servidor de nomes NetBIOS, Network Basic Input/Output System. O WINS dinmico: quando um cliente
iniciado so requeridos seu nome, endereo e grupo de trabalho. Este
servidor manter estas informaes para futuras consultas e atualizaes.
O Samba tem condies de exercer todos os papis de uma rede
Windows, com exceo do BDC. Mais especificamente o Samba
pode ser: servidor de arquivo, servidor de impresso, PDC e servidor
WINS, entre outros.
16.2
Instalao e congurao
134
[ global ]
workgroup = redes
netbios name = m1
security = user
encrypt passwords = yes
smb passwd file = / etc /samba/smbpasswd
passwd program = / usr / sbin /smbldappasswd u "%u"
passwd chat = "Mudando senha para*\nNew password*" %n\n "*Redigite a
nova senha" %n\n"
ldap suffix = dc=redes,dc=edu,dc=br
ldap admin dn = "cn=Manager,dc=redes,dc=edu,dc=br"
passdb backend = ldapsam:ldap ://127.0.0.1/
ldap user suffix = ou=People
ldap group suffix = ou=Group
ldap machine suffix = ou=People
add user script = / usr / sbin /smbldapuseradd m "%u"
Servidor Samba
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
ldap delete dn = No
add machine script = / usr / sbin /smbldapuseradd w "%u"
add group script = / usr / sbin /smbldapgroupadd p "%g"
add user to group script = / usr / sbin /smbldapgroupmod m "%u" "%g
"
delete user from group script = / usr / sbin /smbldapgroupmod x "%u"
"%g"
load printers = yes
printcap name = cups
[homes]
comment = Home Directories
browseable = no
[ software ]
comment = Softwares
path = /dados/ software
guest ok = no
public = no
writable = yes
browseable = yes
force create mode = 0555
force directory mode = 0555
veto files = /*. mp3/
valid users = user1 , user2
force group = admin
16.3
Testes
Servidor Samba
137
Captulo 17
Servidor NFS
17.1
Introduo
17.2
Instalao e congurao
Servidor NFS
17.3
Testes
141
Captulo 18
Servidor LDAP
18.1
Introduo
18.2
Instalao e congurao
144
http://www.openldap.org/
Servidor LDAP
BASE
HOST
URI
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
146
Servidor LDAP
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
smbldap-populate
Este comando gerar uma sada informando todas as entradas
(escritas) que sero feitas no banco de dados. Ao final ser requisitada
a senha para a escrita no mesmo.
A Listagem 18.2 representa parte do diretrio gerado. A representao feita por meio do formato texto chamado LDIF LDAP
Data Interchange Format. O contedo do diretrio pode ser consultado a qualquer momento via o comando slapcat.
1
2
3
4
5
6
7
8
9
10
11
12
dn: dc=redes,dc=edu,dc=br
objectClass : dcObject
objectClass : organization
o: redes
dc: redes
structuralObjectClass : organization
entryUUID: b42dbf2350024e97bd3c6b328f5c5243
creatorsName: cn=Manager,dc=redes,dc=edu,dc=br
createTimestamp: 20091127130738Z
entryCSN: 20091127130738.161251Z#000000#000#000000
modifiersName: cn=Manager,dc=redes,dc=edu,dc=br
modifyTimestamp: 20091127130738Z
13
14
15
16
17
18
19
20
21
22
23
24
dn: ou=People,dc=redes,dc=edu,dc=br
objectClass : top
objectClass : organizationalUnit
ou: People
structuralObjectClass : organizationalUnit
entryUUID: 33590f4142f24fd3ad416d6875066645
creatorsName: cn=Manager,dc=redes,dc=edu,dc=br
createTimestamp: 20091127130738Z
entryCSN: 20091127130738.188550Z#000000#000#000000
modifiersName: cn=Manager,dc=redes,dc=edu,dc=br
modifyTimestamp: 20091127130738Z
25
26
27
28
29
30
31
32
148
Servidor LDAP
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
uid : usuario
uidNumber: 1000
gidNumber: 513
homeDirectory: /home/usuario
loginShell : / bin /bash
gecos: System User
structuralObjectClass : inetOrgPerson
entryUUID: 0edf9c10714945659e9b77d488b20acd
creatorsName: cn=Manager,dc=redes,dc=edu,dc=br
createTimestamp: 20091127131021Z
userPassword :: e1NTF9T1NsTU11aXVqdEVyKzRoV25Cd2VqUTE=
shadowLastChange: 14575
shadowMax: 45
cn :: VXN1w4PCoXJpbyBUZXN0ZSBMREFQ
sn: LDAP
givenName:: VXN1w4PCoXJpbyBUZXN0ZQ==
entryCSN: 20091127131441.310265Z#000000#000#000000
modifiersName: cn=Manager,dc=redes,dc=edu,dc=br
modifyTimestamp: 20091127131441Z
Agora pode-se acrescentar ou modificar usurios com os comandos: smbldap-useradd, smbldap-usermod, smbldap-passwd
etc. As flags para os comandos so praticamente as mesmas dos comandos similares para criao e modificao de contas de usurios no
Linux, ver Captulo 6. Entre as linhas 26 e 51, da Listagem 18.2, est
representado um usurio que foi criado por meio destes comandos.
Alm do j exposto o OpenLDAP, juntamente com o protocolo
LDAP, algumas ferramentas para consulta e manuteno:
Agora a base est pronta para consultas. Pode-se ento configurar as mquinas, sejam clientes ou outros servidores de rede, para
2
150
http://phpldapadmin.sourceforge.net/
Servidor LDAP
pam_ldap
autofs
18.3
Testes
152
Captulo 19
Servidor DHCP
19.1
Introduo
19.2
O protocolo DHCP
154
http://sites.google.com/site/marciokatan/dhcp-mandriva
Servidor DHCP
necessrios para a configurao da interface de rede do solicitante, ver Figura 19.2. O servidor armazena (reserva) o nmero
IP passado para evitar possveis conflitos.
Servidor
DHCP
192.168.2.1
aa:bb:cc:dd:ee:ff
DHCP Offer
00:01:02:03:04:05
Origem
192.168.2.1
aa:bb:cc:dd:ee:ff
DHCP Offer
Destino
?.?.?.?
00:01:02:03:04:05
Proposta: 192.168.2.44
Servidor
DHCP
192.168.2.100
00:aa:11:bb:22:cc
....
Origem
192.168.2.100
00:aa:11:bb:22:cc
Destino
?.?.?.?
00:01:02:03:04:05
Proposta: 192.168.2.144
....
Servidor
DHCP
192.168.2.100
00:aa:11:bb:22:cc
DHCP Request
00:01:02:03:04:05
192.168.2.44
Origem
Destino
192.168.2.1
192.168.2.44
00:01:02:03:04:05 aa:bb:cc:dd:ee:ff
Servidor
DHCP
192.168.2.100
00:aa:11:bb:22:cc
DHCP Ack
00:01:02:03:04:05
192.168.2.44
19.3
Instalao e congurao
Servidor DHCP
DHCP atende somente rede(s) (s) qual(is) pertence, portanto a subrede declarada deve ser compatvel, pertencer mesma rede, da qual
sua(s) interface(s) pertena(m).
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
ddnsupdatestyle none;
option domainnameservers m1.redes.edu.br;
subnet 192.168.2.0 netmask 255.255.255.0 {
option routers 192.168.2.1;
option subnetmask 255.255.255.0;
option domainname "redes.edu.br";
range dynamicbootp 192.168.2.30 192.168.2.60;
range dynamicbootp 192.168.2.91 192.168.2.99;
default leasetime 21600;
maxleasetime 43200;
host novo {
hardware ethernet 12:34:56:78: AB:CD;
fixed address 192.168.2.88;
}
}
subnet 192.168.3.0 netmask 255.255.255.0 {
option routers 192.168.3.1;
option subnetmask 255.255.255.0;
option domainname "redes3.edu.br";
range dynamicbootp 192.168.3.122 192.168.3.144;
default leasetime 21600;
maxleasetime 43200;
}
19.4
Testes
158
Captulo 20
Servidor FTP
20.1
Introduo
20.2
Instalao e congurao
http://www.proftpd.org/
http://vsftpd.beasts.org/
3
http://www.wu-ftpd.org/
2
o Proftpd. Cabe salientar que todos so similares na funcionalidade e configurao. Para instal-lo basta executar o comando:
urpmi proftpd
O Proftpd vem absolutamente pronto para uso, no sendo
necessria nenhuma configurao preliminar. Mas ao desejar-se alguma configurao especial deve-se editar o arquivo /etc/
proftpd.conf. Um dos parmetros editveis permite uma dose extra de segurana que enjaular a conexo do usurio, isto significa
dizer que aps a conexo o usurio no poder subir na rvore de diretrios, ele ficar restrito ao seu diretrio e seus subdiretrios. Para
isto deve-se descomentar a opo DefaultRoot .
Agora deve-se iniciar o servio com o comando:
service proftpd start
20.3
Testes
Para testar pode-se usar a prpria mquina como cliente. Para isto
basta executar o comando:
ftp 192.168.2.X
E surgir um prompt com algo parecido com:
Connected to 192.168.2.1.
220 (vsFTPd 2.0.2)
530 Please login with USER and PASS.
530 Please login with USER and PASS.
KERBEROS_V4 rejected as an authentication type
Name (192.168.2.1:odilson):
160
Servidor FTP
161
Captulo 21
Servidor SSH
21.1
Introduo
Em informtica, o Secure Shell1 ou SSH , simultaneamente, um programa de computador e um protocolo de rede que permite a conexo
segura com outro computador na rede, de forma a executar comandos de uma mquina remota. Possui as mesmas funcionalidades do
TELNET, com a vantagem da conexo entre o cliente e o servidor ser
criptografada.
O SSH faz parte da sute de protocolos TCP/IP que torna segura a administrao remota de um servidor Linux/Unix.
O scp (Secure Copy) uma maneira segura de fazer cpias de
arquivos e diretrios usando o protocolo SSH.
21.2
Instalao e congurao
http://pt.wikipedia.org/wiki/SSH
http://www.openssh.com/
Servidor SSH
21.3
Testes
Para testar pode-se usar a prpria mquina como cliente. Para isto
basta executar o comando:
ssh usuario@192.168.2.X
Com isto abre-se uma conexo segura com o servidor,
podendo-se executar todos os comandos, como se logados
localmente.
Pode-se tambm fazer cpias de arquivos com o scp. Por exemplo:
scp -r usuario@192.168.2.1:diretorio ./
Com este comando copia-se recursivamente o diretrio
diretorio do servidor 192.168.2.1 para o diretrio corrente local.
165
Captulo 22
Servidor Proxy/Cache
22.1
Introduo
http://www.fundao.wiki.br/articles.asp?cod=199
Requisio
Servidor
Proxy/Cache
Requisio
Requisio
Cliente 1
Cliente 2
22.2
Instalao e congurao
168
http://www.squid-cache.org/
Servidor Proxy/Cache
22.3
Testes
Servidor Proxy/Cache
22.4
Com o Squid possvel o bloqueio ou liberao de acesso a determinados stios, redes, em determinados dias e horrios etc.
Para operacionalizar esta funo primeiramente deve-se criar
as chamadas ACLs (Access Control List) que so simplesmente listas
de stios, nmeros IPs ou classes de rede.
Aps a criao destas listas deve-se criar as regras de acesso
ou bloqueio que referenciaro as listas criadas.
A anlise das regras, por parte do Squid, sequencial, ou seja,
o Squid vai lendo as regras uma a uma e, assim que encontrar uma
regra que enquadre a mensagem, para imediatamente a anlise, e libera ou bloqueia o acesso, dependendo da regra. Portanto, nas regras
pode-se ter duas polticas diversas: libera o acesso a alguns contedos
e probe todo o resto ou probe o acesso a alguns contedos e libera o
restante. A adoo de uma ou outra depende da poltica pretendida.
A regra geral de formao de uma ACL a seguinte:
Restringindo o horrio de acesso. Neste caso a rede local somente poder navegar nos dias teis da semana das 8 s 18h. Obs.:
S=domingo, M=segunda, T=tera, W=quarta, H=quinta, F=sexta e
A=sbado.
Servidor Proxy/Cache
Na linha 25 liberado o acesso para a mquina local. Entre as linhas 26 e 29 tem-se o seguinte, caso o acesso seja lista_sitios
e palavras o mesmo ser bloqueado, e ser liberado somente nos
horrios previsto em horario. Por ltimo, linha 29, bloqueado
qualquer outro acesso.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
173
Captulo 23
Introduo
http://www.netlter.org/
23.2
Princpio de funcionamento do
wall
re-
urpmi iptables
23.3
Tabela Filter
Com a tabela filter pode-se construir regras para permisso ou bloqueio de pacotes oriundos de, destinados a, ou de passagem pelo
firewall. As regras devem ser escritas pensando no resultado final
a ser obtido j que sua sequncia define o exato comportamento da
filtragem ou no dos pacotes.
A seguir detalha-se cada um dos campos do comando
iptables, relativo a tabela filter.
23.3.1 Opes
-P Policy. Altera a poltica da chain. A poltica padro de cada
chain ACCEPT. Isso faz com que o firewall inicialmente
aceite qualquer INPUT, OUTPUT ou FORWARD. Para uma
boa segurana, recomenda-se que todas as chains sejam
ajustadas para a poltica DROP e em seguida, libera-se o que
for necessrio com o -A. O -P no aceita REJECT ou LOG.
Exemplos:
iptables -D FORWARD 4
iptables -F
iptables -F FORWARD
23.3.2 Chains
Existem 3 chains pr-definidas para a tabela filter: INPUT utilizada quando o destino final a prpria mquina firewall; OUTPUT
pacotes gerado pela mquina firewall com qualquer destino; FORWARD qualquer pacote que atravessa o firewall, oriundo de uma
mquina e direcionado a outra. Figura 23.1. Outras chains podem
ser criadas com o comando iptables -N nome_da_chain.
23.3.3 Dados
Os elementos mais comuns para se gerar dados so os listados as
seguir.
-s
-s
-s
-s
-s
172.20.0.0/255.255.0.0
172.20.5.10/32
172.20.5.10
www.dominio.com.br
0/0
-p Protocol.
-p icmp
-i ppp0
-i eth+
! Excluso. Utilizado com -s, -d, -p, -i, -o e outros, para excluir
o argumento. Exemplos:
-p tcp --sport 80
23.3.4 Aes
As principais aes so:
23.3.6 Impasses
Deve-se tomar cuidado ao montar regras com a poltica DROP. Neste
caso inicialmente probe-se tudo, ento, ao fazer-se uma regra com
um nome de mquina por exemplo, deve-se antes liberar o acesso
ao servidor de nomes. Tambm no pode-se esquecer que deve-se
liberar o caminho de ida e retorno de determinada requisio. No
exemplo abaixo tem-se uma sequncia de regras onde, aps estabelecida a poltica DROP, libera-se ao acesso de ida e volta ao servidor de
nomes e em seguida o acesso ao stio propriamente dito.
iptables
iptables
iptables
iptables
iptables
184
-P
-A
-A
-A
-A
FORWARD
FORWARD
FORWARD
FORWARD
FORWARD
DROP
-s 10.0.0.0/8 -d 200.135.37.65 -j ACCEPT
-s 200.135.37.65 -d 10.0.0.0/8 -j ACCEPT
-s 10.0.0.0/8 -d www.dominio.com.br -j ACCEPT
-s www.dominio.com.br -d 10.0.0.0/8 -j ACCEPT
23.3.7 Extenses
As extenses permitem filtragens especiais, principalmente contra
ataques bem conhecidos. Quando necessrias, devem ser as primeiras
regras do firewall. Alguns exemplos:
Inibe o recebimento e, portanto, respostas ao ping.
186
24
25
26
27
28
29
30
31
32
33
34
35
23.4
23.4.1 Chains
Para a tabela nat existem as chains listadas abaixo e sua representao na Figura 23.3.
PREROUTING Utilizada para analisar pacotes que esto entrando no kernel para sofrerem NAT. O PREROUTING permite
a troca do endereo de destino do datagrama, isso conhecido
como DNAT (Destination NAT);
23.4.2 Dados
A maioria dos dados bsicos apresentados para a tabela filter continuam valendo. Por exemplo, -p servir para definir um protocolo
de rede e -d define uma mquina de destino.
23.4.3 Aes
SNAT Utilizado com POSTROUTING para fazer aes de mascaramento da origem, ou seja, troca do nmero IP/porta de
origem.
MASQUERADE Tambm faz mascaramento da origem, diferente do SNAT por ser indicado para mquinas que tenham interface externa configuradas com IP dinmico.
192
Captulo 24
Introduo
O Shoreline Firewall1 ,
comumente conhecido como
Shorewall, uma ferramenta de alto nvel para configurar o
iptables, facilitando a vida dos administradores mais
inexperientes. Sua configurao simples j que descreve-se as
necessidades de firewall usando entradas/diretivas num conjunto de
arquivos de configurao, o Shorewall l estes arquivos e monta as
regras do iptables para atender as demandas.
http://www.grulic.org.ar/eventos/charlas/shorewall-2005-09.html
http://www.fs-security.com
3
http://www.fwbuilder.org
2
24.2
Linux Firewall
do
Zonas
24.3
Instalao e congurao
urpmi shorewall
Todos os arquivos de configurao do Shorewall so documentados e contm uma srie de exemplos. Abaixo so apresentados alguns parmetros dos principais arquivos de configurao do
mesmo.
24.3.1 shorewall.conf
o principal arquivo de configurao do Shorewall. Algumas das
diretivas importantes a se configurar neste arquivo so:
4
http://rocky.eld.leidenuniv.nl/joomla/
http://doxfer.com/Webmin/LinuxFirewall
6
http://rehol.sourceforge.net
7
http://www.shorewall.net/
5
194
ADMINISABSENTMINDED
Se
estiver
ajustada para No, somente o trfego listado em
/etc/shorewall/routestopped sero aceitos quando o
Shorewall for parado ou reiniciado. Caso esteja em Yes,
todas as conexes abertas continuaro a ser aceitas, isto
muito til durante o processo de manuteno do firewall, j
que, ao fazer uma regra que bloquearia o acesso do prprio
administrador, na reinicializao do mesmo no ocorreria o
bloqueio da mquina em uso, somente aps sua desconexo.
LOGRATE e LOGBURST
Estes
parmetros
indicam/limitam a rotao dos logs e a taxa de pacotes que
so registrados. til quando se geram muitos pacotes
invlidos na rede o que poderia gerar muitssimo consumo do
processador no firewall.
24.3.2 zones
Neste arquivo define-se as zonas, que so abstraes que definem
uma mquina, ou um conjunto delas, que tem caractersticas em
comum quanto ao trfego gerado e/ou recebido. No exemplo abaixo
redefine-se a zona firewall, e cria-se a zona net, loc, e dmz, que
dizem respeito respectivamente Internet, rede local e a zona
desmilitarizada.
#ZONE
fw
net
loc
dmz
TYPE
firewall
ipv4
ipv4
ipv4
195
24.3.3 interfaces
Neste arquivo se definem as interfaces de rede presentes no firewall e
sua possvel associao a uma zona (pode no ser necessrio). Alm
disto se identificam certas propriedades a respeito da interpretao
dos pacotes que entram ou saem pelas mesmas. Exemplo:
ZONE
dmz
net
loc
INTERFACE
eth1
eth1
eth0
BROADCAST
detect
detect
detect
OPTIONS
tcpflags,routefilter,nosmurfs
tcpflags,detectnets,logmartians
24.3.4 policy
Neste arquivo se definem as polticas para os pacotes que trafegam
entre uma zona e outra. As possveis polticas e interpretaes so
praticamente as mesmas do iptables, ou seja, ACCEPT, DROP,
REJECT. Pode ainda especificar a taxa mxima de conexes TCP e
o limite das rajadas. Exemplo:
#SOURCE DEST POLICY LOG LEVEL LIMIT:BURST
$FW
net
ACCEPT
$FW
dmz
ACCEPT
$FW
loc
ACCEPT
$FW
all
ACCEPT
## Policies for traffic originating from the Internet zone (net)
net
dmz
ACCEPT
net
$FW
ACCEPT
net
loc
DROP
info
net
all
DROP
info
## THE FOLLOWING POLICY MUST BE LAST
all
all
ACCEPT
24.3.5 rules
Provavelmente este o arquivo de configurao mais importante.
Aqui se definem as regras que permitem ou negam o acesso a
196
SOURCE
DEST
PROTO
DEST PORT
REDIRECT
ACCEPT:info
ACCEPT
loc
loc
net:200.135.233.1
3128
net
loc
tcp
tcp
www
25
tcp
tcp
20,21,22,53,80
2222
## Redirecionamento de IP e portas
DNAT
net
loc:192.168.1.9
DNAT
net
loc:192.168.1.7:22
SOURCE
PORT
-
ORIGINAL DEST
200.135.233.9
200.135.233.9
!200.135.233.1
24.3.6 masq
Este o arquivo utilizado para definir o mascaramento e SNAT.
essencial para as redes locais que desejam se conectar internet via
firewall. Exemplo:
INTERFACE
eth0
SUBNET
eth1
ADDRESS
PROTO
PORT(S)
IPSEC
OpenVPN etc.). O conjunto de arquivos iniciados por tc que so utilizados para carregar regras de tc traffic shaping do kernel do
firewall, muito til para controlar a banda por tipo de trfego num
enlace saturado com a Internet.
24.4
Alguns
Shorewall
exemplos
prticos
com
/etc/shorewall/shorewall.conf
STARTUP_ENABLED=Yes
/etc/shorewall/zones
loc Local Local networks
net Net Internet
/etc/shorewall/interfaces
net eth1 - norfc1918,nobogons,routefilter,
logmartians,blacklist,tcpflags,nosmurfs
loc eth0 detect dhcp
/etc/shorewall/policy
198
loc
loc
net
all
net ACCEPT
fw ACCEPT
all DROP info
all REJECT info
/etc/shorewall/masq
eth1 eth0
/etc/shorewall/rules
AllowWeb fw all
AllowWeb all fw
AllowSSH fw all
AllowSSH loc fw # Servidor ssh para rede interna
ACCEPT:info net fw tcp 22000 # Idem para Internet
AllowSMB loc fw # Servidor samba
AllowSMB fw loc # Servidor samba
ACCEPT loc fw tcp 3128
ACCEPT fw all tcp 6667:6669
/etc/shorewall/shorewall.conf
STARTUP_ENABLED=Yes
199
/etc/shorewall/zones
loc2 Local Local networks
loc1 Local Local networks
net Net Internet
/etc/shorewall/interfaces
net eth1 - norfc1918,nobogons,routefilter,
logmartians,blacklist,tcpflags,nosmurfs
- eth0 detect dhcp
/etc/shorewall/host
loc1 eth0:192.168.0.0/25
loc2 eth0:192.168.0.128/25
net eth0:0.0.0.0/0
/etc/shorewall/policy
loc1 net ACCEPT
loc2 net REJECT
loc1 loc2 ACCEPT
loc2 loc1 ACCEPT
net all DROP info
all all REJECT info
/etc/shorewall/rules
AllowWeb loc2 net
AllowSMTP loc2 fw
AllowWeb fw all
AllowWeb loc1 fw #
AllowSSH fw all
AllowSSH loc1 fw #
ACCEPT:info net fw
AllowSMB loc1 fw #
200
Servidor http,https
Servidor ssh para rede interna
tcp 22000 # Idem para Internet
Servidor samba
201
Captulo 25
DenyHosts
25.1
Introduo
DenyHosts1 um script escrito por Phil Schwartz para ajudar administradores de sistemas bloquear ataques de fora bruta em seus servidores SSH. Ele monitora o arquivo de log do sistema, /var/log/
auth.log, e quando um ataque detectado adiciona o IP do atacante
no /etc/hosts.deny, sendo assim o prprio sistema se encarregar
de bloquear tentativas de acesso posteriores.
Quando executado pela primeira vez, o DenyHosts ir criar um
diretrio de trabalho para armazenar as informaes coletadas dos
arquivos de log em um formato facilmente legvel e categorizados
por tipo de tentativa.
O script possui uma grande variedade de configuraes que podem ser exploradas, como por exemplo, configurar quantas tentativas
invlidas devem ser consideradas um ataque, ou quantas tentativas
erradas de usurios que no existem no sistema sero aceitas, pode
enviar correspondncias com relatrios etc.
1
http://www.drsolutions.com.br/exemplos/protegersshd.pdf
25.2
Instalao e congurao
O DenyHosts2 dependente do Python v2.3 ou superior. Exe-cutase o seguinte comando para saber qual a verso Python instalada:
rpm -q python
Caso o Python no esteja instalado, faa-o com o comando:
urpmi python
Agora instala-se o DenyHosts propriamente dito. Faz-se
download da ltima verso do DenyHosts na pgina oficial,
http:\slash\slashdenyhosts.sourceforge.net\slash,
existe um rpm noarch (para qualquer arquitetura que admita rpm) e
um tar.gz que tambm independente de plataforma e pode ser
utilizado em qualquer distribuio, por este motivo os teste sero
feitos com este ltimo.
Desempacota-se o arquivo do DenyHosts baixado com o comando:
mv DenyHosts-2.6 /sbin/DenyHosts
O DenyHosts tem um arquivo de configurao exemplo, podese utiliz-lo como base para o arquivo de configurao propriamente
dito, com os comandos:
cd /sbin/DenyHosts
cp denyhosts.cfg-dist denyhosts.cfg
2
204
http://denyhosts.sourceforge.net/
DenyHosts
SECURE_LOG = /var/log/auth.log
PURGE_DENY = 2w
BLOCK_SERVICE = sshd
DENY_THRESHOLD_INVALID = 5
DENY_THRESHOLD_VALID = 10
DENY_THRESHOLD_ROOT = 1
WORK_DIR = /usr/share/denyhosts/data
ADMIN_EMAIL = user@redes.edu.br
SMTP_HOST = smtp.redes.edu.br
SMTP_PORT = 25
SMTP_FROM = DenyHosts <user@redes.edu.br>
SMTP_SUBJECT = Relatorios do DenyHosts
SMTP_USERNAME = user
SMTP_PASSWORD = senha.aqui
DAEMON_LOG = /var/log/denyhosts
DAEMON_SLEEP = 30s
205
/sbin/DenyHosts/denyhosts.py
--config=/sbin/DenyHosts/denyhosts.cfg --daemon
Pode ser necessrio criar um arquivo vazio para o DenyHosts
rodar pela primeira vez, caso ocorra uma mensagem de erro. Faz-se
isto com o comando:
touch /var/log/secure
No diretrio /usr/share/denyhosts/data sero criados os
arquivos: hosts, hosts-restricted, hosts-root, offset,
supicious-login, user-hosts, user-invalid e users-valid.
Os arquivos iniciados com hosts trazem uma relao das mquinas
que tentaram ou se conectaram ao sistema. O offset tem uma
informao de controle para o DenyHosts da posio da ltima
busca no arquivo de log. Os arquivos iniciados com user informam
o nome de usurios que tentaram ou se conectaram ao sistema, com
os respectivos IPs de origem.
Lembre-se que este somente um script ento pode ser interessante adicionar o comando para sua inicializao ao final do arquivo
/etc/rc.local, para que o DenyHosts rode sempre que a mquina
for reiniciada.
25.3
Testes
DenyHosts
207
Captulo 26
Antivrus
26.1
Introduo
Um vrus de computador1 , da mesma forma que o biolgico, precisa de uma taxa de reproduo maior do que a taxa de erradicao
(morte), para se proliferar. E, se a taxa de reproduo cai abaixo do
nvel de morte, o vrus est condenado extino.
Na plataforma Linux, vrios obstculos reduzem significativamente a taxa de reproduo. E, portanto, praticamente no existem
vrus que o ataquem. O motivo a sobreposio de alguns fatores
listados a seguir.
Para que um vrus infecte um programa executvel num sistema com kernel Linux o executvel precisa estar em arquivo com
permisso de escrita para o usurio que esteja ativando o vrus. Tal
situao incomum. Numa instalao desktop, via de regra os arquivos executveis tm como dono (owner) o administrador do sistema (root), e rodam em processo de usurio comum. Ou seja, a
partir de uma conta no-privilegiada.
Quanto mais inexperiente for o usurio, menos provvel que
tenha ele mesmo feito a instalao do executvel, e portanto, que seja
1
http://www.cic.unb.br/docentes/pedro/trabs/virus_no_linux.html
Antivrus
26.2
Instalao e congurao
http://www.clamav.net/
211
urpmi clamav
O CLAMAV vem pr-configurado e pronto para uso mas caso
seja necessrio alguma personalizao deve-se editar o arquivo /etc/
clamav.conf. Deste arquivo as principais diretivas a serem reconfiguradas so: ArchiveMaxFileSize 10M que diz o tamanho mximo
da mensagem em anexo que ser escaneada e ClamukoIncludePath
/var/spool discrimina os diretrios que sero escaneados, podem
ser includas vrias diretivas com os vrios diretrios.
Depois de configurar o clamav.conf, pode-se configurar o
/etc/freshclam.conf, que o responsvel pelas atualizaes do
banco de dados de vrus do CLAMAV. A principal diretiva a ser
reconfigurada neste arquivo DatabaseMirror que contm a lista
com endereos de espelhos para atualizaes, ver em http:\slash\
slashwww.clamav.net\slashmirrors.html. Em seguida faz-se
as atualizaes com o comando:
freshclam
urpmi amavis
O servio que j vem previamente configurado, caso se deseje
alterar algum parmetro deve-se acessar o arquivo /etc/amavisd/
212
Antivrus
urpmi samba-vscan-clamav
Em seguida cria-se um diretrio .recycle em cada um dos
diretrios compartilhados pelo Samba, este deve ter permisso 777,
ou seja acesso livre a todos. E por ltimo deve-se descomentar (ou
acrescentar) as seguintes linhas no arquivo /etc/samba/smb.conf,
ver Captulo 16:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# !/ bin /bash
#
# Script que procura por virus , move para / var / infectados , caso encontre
, e envia email.
#
#
# Escaneia as pastas /home e /dados. Caso encontre virus move os
arquivos infectados para / var / infectados e cria uma lista dos
mesmos em /root/ lista_virus
clamscan r i /home/ /dados/ move=/var/infectados/ recursive > /tmp
/ lista_virus 2>&1
# Verifica se o arquivo /tmp/ lista_virus esta vazio , se nao estiver
manda um email de alerta
cat /tmp/ lista_virus | grep FOUND > /tmp/virusencontrado.txt 2>&1
tam_arq=ls l /tmp/ virusencontrado . txt | awk { print $5}
if [ $tam_arq gt 5 ]
then
date >> /tmp/ alerta . txt
echo " " >> /tmp/ alerta . txt
echo "Atencao Administrador!" >> /tmp/ alerta . txt
echo " " >> /tmp/ alerta . txt
echo "Foram encontrados virus no servidor . " >> /tmp/ alerta . txt
echo "Os arquivos infectados foram movidos para o diretorio / var /
infectados . " >> /tmp/ alerta . txt
echo "Segue a listagem dos mesmos." >> /tmp/ alerta . txt
echo " " >> /tmp/ alerta . txt
cat /tmp/ lista_virus >> /tmp/ alerta . txt
/ bin /mail s "Virus encontrado . Listagem em anexo" a /tmp/ alerta . txt
admin1@redes.edu.br
/ bin /mail s "Virus encontrado . Listagem em anexo" a /tmp/ alerta . txt
admin2@redes.edu.br
fi
exit
214
Captulo 27
VPN
27.1
Introduo
O uso de Redes Privadas Virtuais1 representa uma alternativa interessante na racionalizao dos custos de redes corporativas oferecendo
confidencialidade e integridade no transporte de informaes atravs
de redes pblicas.
A ideia de utilizar uma rede pblica como a Internet em vez de
linhas privativas para implementar redes corporativas denominada
de VPN ou Rede Privada Virtual. As VPNs so tneis de criptografia
entre pontos autorizados, criados atravs da Internet ou outras redes
pblicas e/ou privadas para transferncia de informaes, de modo
seguro, entre redes corporativas ou usurios remotos.
A segurana a primeira e mais importante funo da VPN.
Uma vez que dados privados sero transmitidos pela Internet, que
um meio de transmisso inseguro, eles devem ser protegidos de forma
a no permitir que sejam modificados ou interceptados.
Outro servio oferecido pelas VPNs a conexo entre corporaes (Extranets) atravs da Internet, alm de possibilitar conexes
criptografadas que podem ser muito teis para usurios mveis ou
remotos, bem como filiais distantes de uma empresa.
1
http://www.rnp.br/newsgen/9811/vpn.html
27.2
VPN
Rede
Invisvel
Servidor
VPN
VPN
Rede Corporativa
27.3
Requisitos bsicos
No desenvolvimento de solues de rede, bastante desejvel que sejam implementadas facilidades de controle de acesso a informaes
e a recursos corporativos. A VPN deve dispor de recursos para permitir o acesso de clientes remotos autorizados aos recursos da LAN
corporativa, viabilizar a interconexo de LANs de forma a possibilitar o acesso de filiais, compartilhando recursos e informaes e, finalmente, assegurar privacidade e integridade de dados ao atravessar
a Internet bem como a prpria rede corporativa. A seguir so enumeradas caractersticas mnimas desejveis numa VPN.
218
VPN
27.4
Tunelamento
ceptado durante o seu transporte. O pacote criptografado e encapsulado viaja atravs da Internet at alcanar seu destino onde desencapsulado e descriptografado, retornando ao seu formato original.
O protocolo de tunelamento encapsula o pacote com um
cabealho adicional que contm informaes de roteamento que
permitem a travessia dos pacotes ao longo da rede intermediria.
Tnel a denominao do caminho lgico percorrido pelo pacote ao
longo da rede intermediria. Aps alcanar o seu destino na rede
intermediria, o pacote desencapsulado e encaminhado ao seu
destino final. A rede intermediria por onde o pacote trafegar pode
ser qualquer rede pblica ou privada. Note que o processo de
tunelamento envolve encapsulamento, transmisso ao longo da rede
intermediria e desencapsulamento do pacote.
27.5
Instalao e congurao
VPN
urpmi openvpn
Carregar o mdulo tun com o comando:
modprobe tun
Instalar a biblioteca para compresso de dados, se necessrio, com o
comando:
urpmi liblzo
http://www.openvpn.net/
221
prope-se a criptografia com chaves estticas, que o padro proposto pelo pacote. O diretrio /etc/openvpn onde se encontram
todos os arquivos de configurao.
Como primeiro passo cria-se a chave esttica com o comando:
cat /etc/openvpn/chave
Em seguida cria-se o arquivo /etc/openvpn/matriz.conf,
de acordo com o exposto na Listagem 27.1. Na linha 1 estabelecido o nome do dispositivo que ser criado, por exemplo tun0, que
ser uma interface de rede virtual, veja Captulo 12. Na linha 3 so
definidos os nmeros IP que formaro o tnel, respectivamente da
Matriz e Filial. A linha 5 referencia a chave criptogrfica a ser utilizada. A linha 7 define a porta a ser usada na conexo. Na linha 13
define-se a verbosidade do log e na linhas 14 e 15, seus arquivos.
Caso deseje-se criar mais tuneis, com outras filiais ou clientes, devese repetir o contedo do arquivo com outro nome, outra porta e outro
conjunto de endereos IP.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
dev tun
persist tun
ifconfig 192.168.10.1 192.168.10.2
cd / etc /openvpn
secret chave
persist key
port 5000
user openvpn
group openvpn
complzo
pingtimerrem
complzo
verb 3
status / var / log /openvpnstatus.log
logappend /var/log /openvpn.log
VPN
ifconfig
Se for mostrado algo como abaixo, o tnel na Matriz j est
pronto a espera da conexo da filial.
tun0 Link encap:No Especificado Endereo de HW 00-00-00-00-00-00-00
inet end.: 192.168.10.1 P-a-P:192.168.10.2 Masc:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Mtrica:1
....
dev tun
persist tun
ifconfig 192.168.10.2 192.168.10.1
remote 200.200.200.1
cd / etc /openvpn
secret chave
persist key
port 5000
user openvpn
223
10
11
12
13
14
15
16
group openvpn
complzo
pingtimerrem
complzo
verb 3
status / var / log /openvpnstatus.log
logappend /var/log /openvpn.log
ifconfig
DROP
$FW
net
loc
all
ACCEPT
ACCEPT
ACCEPT
ACCEPT
VPN
/etc/shorewall/rules
ACCEPT loc:172.18.0.0/16 vpn
/etc/shorewall/interfaces
vpn
tun0
detect
/etc/shorewall/zones
vpn
ipv4
225
Captulo 28
SNMP
28.1
Introduo
28.2
Uma rede gerenciada pelo protocolo SNMP formada por trs componentes chaves:
1. Dispositivos Gerenciados um n de rede que possui um
agente SNMP instalado e se encontra em uma rede gerenciada.
Este dispositivo coleta e armazena informaes de gerenciamento e mantm estas informaes disponveis para sistemas
1
http://pt.wikipedia.org/wiki/Simple_Network_Management_Protocol
28.3
Arquitetura
SNMP
28.3.2 Subagent
Os subagents so pequenos programas em execuo no dispositivo
com suporte a SNMP, responsveis pelo monitoramento de recursos
especficos naquele dispositivo, como por exemplo, o status de um
enlace ethernet em um roteador, ou a quantidade de espao livre
em um disco de um servidor.
28.4
28.5
Instalao e Congurao
urpmi net-snmp
Depois de instalado configura-se o SNMP editando o arquivo
/etc/snmp/snmpd.conf. Este arquivo auto-explicativo e vem
pronto para gerar relatrios relativamente completos mas pode-se
personalizar. Por exemplo na Listagem 28.1 tem-se algumas
diretivas que recomenda-se que sejam personalizadas. Na linha 1 e 2
definem-se as parties de disco a serem monitoradas sendo que o
nome que as sucede representa a quantidade mnima de espao livre,
em MB, que deve existir na respectiva partio, antes de serem
gerados alertas. Entre as linhas 3 e 10 so definidos vrios
processos que esto sendo explicitamente monitorados e os nmeros
subsequentes representam o intervalo, mnimo e mximo, de nmero
de processos rodando que no geraro alertas, fora deste intervalo o
SNMP apontar, por meio de MIBS, que houve extrapolamento de
limites. Este arquivo permite tambm controle de acesso s
requisies SNMP por meio de sua(s) comunidade(s).
1
2
3
230
disk / 10000
disk /home 1000
proc portmap 100 0
SNMP
4
5
6
7
8
9
10
proc
proc
proc
proc
proc
proc
proc
syslogd 100 0
/ usr / sbin /sshd 100 0
ntpd 100 0
/ usr / bin / freshclam 100 0
crond 100 0
xinetd 100 0
/ usr / bin / nxserver 100 0
28.6
Testes
Para testar se o SNMP est ativo na mquina, pode-se fazer uma auto
consulta. As consultas podem conter filtros por MIB etc. Para uma
consulta geral usa-se o comando:
7
8
9
10
11
12
13
14
15
16
17
18
Fica evidente que a anlise deste tipo de dados muito difcil de ser feita manualmente. Para facilitar a administrao da rede
existe uma srie de servios que coletam e organizam estas informaes de maneira bastante eficiente, personalizveis e com excelente apresentao. Nos prximos captulos sero apresentados algumas destas solues, o MRTG, o Cacti e o Nagios. Outro exemplo o
Zabbix http:\slash\slashwww.zabbix.com\slash que no ser
abordado neste livro.
232
Captulo 29
MRTG
29.1
Introduo
O MRTG1 The Multi Router Traffic Grapher monitora os dispositivos de rede SNMP e desenha grficos mostrando o trfego passante
de cada interface de rede dos equipamentos. Seus grficos so apresentados por meio de navegadores web, num formato universal, que
pode ser acessado de qualquer mquina.
MRTG escrito em perl e funciona em Unix/Linux, bem como
em Windows.
29.2
Instalao e congurao
urpmi mrtg
Cria-se em seguida um arquivo de configurao, com o
cfgmaker, para cada dispositivo a ser monitorado via SNMP. Por
1
http://oss.oetiker.ch/mrtg/
WorkDir: /var/lib/mrtg Define qual ser o diretrio de trabalho do MRTG, ou seja, o diretrio onde sero salvos os arquivos gerados pelo MRTG (logs, arquivos html, png etc..
MRTG
indexmaker --output=/var/lib/mrtg/index.html
/etc/mrtg/mrtg.local.cfg
/etc/mrtg/mrtg.router.cfg
Por fim, mas no menos importante, roda-se o MRTG:
29.3
Testes
235
236
Captulo 30
Cacti
30.1
Introduo
http://pt.wikipedia.org/wiki/Cacti
30.2
Instalao e congurao
mysql -u root -p
<Enter> (senha em branco)
CREATE DATABASE cacti;
use cacti
source /usr/share/cacti/cacti.sql
exit
Edita-se o arquivo /etc/cacti.conf para configurar o
usurio e senha que tero acesso a base de dados. Isto feito nos
seguintes campos:
$database_username = "root";
$database_password = "";
Observe que esta no a configurao mais segura. Num caso
real deve-se criar um usurio e senha no banco mysql e dar permisses ao mesmo de acesso base cacti.
2
238
http://www.cacti.net/
Cacti
Uma
vez
configurada
a
base,
o
Cacti
se
configurar
praticamente
de
maneira
automtica,
para isto basta acessar,
via navegador,
a pgina
http:\slash\slashlocalhost\slashcacti\slash e seguir as
orientaes da mesma. Caso no haja nenhum problema basta
aceitar as configuraes padro. Ao final ser requisitado login e
senha, entre com admin X admin, em seguida o Cacti forcar a
troca de senha do usurio admin. O Cacti ento terminar toda sua
configurao, j preparado para coleta de vrios tipos de dados da
mquina local.
Aps isto pode-se clicar na aba graphs e pode-se observar
algo parecido com o da Figura 30.1.Pode-se ainda configurar mais
monitores, para isto basta clicar na aba console, na opo New
Graph e/ou Create New Host e selecionar as opes desejadas.
Existem uma srie de outras opes que podem ser acessadas nos
menus disponveis.
239
Captulo 31
Nagios
31.1
Introduo
http://www.nagios.org/
31.2
Instalao e congurao
urpmi nagios-www
Com este pacote so instalados todos os arquivos necessrios
para o funcionamento do Nagios e, inclusive, reconfigurado automaticamente o Apache para poder acessar as pginas do Nagios.
Sendo necessrio somente criar uma senha para o acesso ao Nagios
com o comando:
Nagios
contacts.cfg Indivduos que, possivelmente, devero ser notificados no caso de problemas detectados pelo Nagios.
etc.
Existem vrios plugins, dependendo da distribuio
pode ser necessrio a instalao em separado.
No stio
http:\slash\slashnagiosplugins.org\slashnode\slash2
existe a lista completa de todos os plugins disponveis.
Alm disto o Nagios 3 j possui outros diretrios para organizar o monitoramento agrupando as mquinas por seu tipo. Por exemplo: roteadores, servidores, switches etc.
Pode-se fazer uma conferncia inicial da configurao dos arquivos com o comando:
Nagios
## HOST DEFINITION
define host{
use
linuxserver
host_name teste
alias
teste
address
172.18.0.1
}
## HOST GROUP DEFINITION
members
localhost , teste
## SERVICE DEFINITIONS
define service {
use
host_name
service_description
check_command
notifications_enabled
}
define service {
generic service
dk
HTTP
check_http
1
245
19
20
21
22
23
24
define
25
26
27
28
29
30
define
31
32
33
34
35
36
define
37
38
39
40
41
42
define
43
44
45
46
47
48
49
50
51
52
53
54
define
use
host_name
service_description
check_command
}
service {
use
host_name
service_description
check_command
}
service {
use
host_name
service_description
check_command
}
service {
use
host_name
service_description
check_command
RSZDT
}
service {
use
host_name
service_description
check_command
!5.0,4.0,3.0!10.0,6.0,4.0
}
service {
use
host_name
service_description
check_command
notifications_enabled
}
generic service
dk
PING
check_ping!100.0,20%!500.0,60%
generic service
dk
Root Partition
check_local_disk !20%!10%!/
generic service
dk
Current Users
check_local_users !20!50
generic service
dk
Total Processes
check_local_procs !250!400!
generic service
dk
Current Load
check_local_load
generic service
dk
SSH
check_ssh
1
246
Nagios
31.3
Testes
nagios -v /etc/nagios/nagios.cfg
Agora deve-se (re)iniciar o Nagios com o comando:
feito tambm no arquivo /etc/nagios/conf.d/sample.cfg mudando o campo email na seo CONTACTS. Com isto, qualquer aviso
ou alarme gerado pelo Nagios gerar uma correspondncia enviada
ao(s) endereo(s) informado(s).
Para os administradores de rede existe uma ferramenta
muito interessante associada ao Nagios, que um plugin do
navegador Firefox: Nagios Checker. Com este plugin instalado e
configurado haver avisos sonoros e visuais no prprio navegador
sempre que for gerado algum alarme pelo Nagios.
248
Captulo 32
Webmin
32.1
Introduo
http://www.devin.com.br/webmin/
http://www.webmin.com/
32.2
Instalao e congurao
urpmi webmin
service webmin start
Uma vez instalado ele j estar absolutamente pronto para o
uso, para isto basta acessar com um navegador qualquer o endereo
https:\slash\slashlocalhost:10000\slash. Ou seja uma
conexo segura, https, na porta 10000 do servidor. Ser requisitado
um usurio e senha, que so as mesmas cadastradas na mquina. Se
deseja-se fazer manuteno nos servios o ideal usar a prpria
conta de root. Aps a troca de linguagem de apresentao para
portugues_BR tem-se uma tela do tipo da Figura 32.1. Em seguida
pode-se fazer instalao e configuraes de servios, hardware etc.
250
Webmin
251
Apndice A
Sistema Operacional
O Sistema Operacional um programa especial que gerencia todos
os recursos da mquina, tais como memria, teclado, vdeo (monitor), mouse, entre outros. atravs do Sistema Operacional que
executa-se outros programas, grava-se ou l-se informaes em disquetes, visualiza-se textos em vdeo ou impressora etc. Sem o Sistema Operacional no consegue-se realizar estas tarefas. Ou seja,
simplesmente no se poderia utilizar o computador.
Existem inmeros Sistemas Operacionais, tais como: UNIX,
OS/2, Windows, Linux etc. Cada um deles possuem caractersticas prprias e so executados em mquinas diferentes. Assim, no
pode-se executar um programa em Sistemas Operacionais distintos, a
no ser que o fabricante do programa garanta esta portabilidade.
de responsabilidade do Sistema Operacional:
Carregar e executar programas.
Controlar dispositivos de entrada e sada (teclado, monitor,
mouse etc..
Gerenciar arquivos e diretrios.
Gerenciar a memria RAM.
Todo e qualquer programa executado em um computador utiliza a memria RAM (Read Only Access Memory). Da mesma forma,
o Sistema Operacional deve ser carregado, ou seja, copiado do disco
rgido ou disco flexvel para a memria RAM. Denomina-se este processo de BOOT. Toda vez que liga-se o computador, feita uma srie
de testes para verificar o funcionamento dos perifricos e se tudo estiver perfeito, o Sistema Operacional pode ser carregado. Os Sistemas Operacionais ainda podem ser classificados quanto ao nmero
de pessoas que podem utilizar os recursos ao mesmo tempo e quanto
ao nmero de programas que podem ser executados em uma mesma
mquina.
Interface grca para usurios (GUI) Quando os comandos so executados em um ambiente grfico auxiliado pelo uso
do mouse. Voltada principalmente para o usurio final.
254
Sistema Operacional
A.1
Processos
255
Apndice B
Linux
B.1
Histrico
Linux
MS-DOSe do WINDOWS.
O Linux pode ser til em empresas que desejam possuir estaes de trabalho com poder razoavelmente comparvel s estaes
existentes como SUNs e outras usando PCs, com fiel semelhana no
seu uso. O Linux pode conviver pacificamente com outros sistemas
operacionais no PC. Existe uma infinidade de formas de instal-lo:
em uma partio DOS j existente, pode ainda ser instalado em um
HD exclusivamente dedicado a ele.
O Linux pode ser obtido de diversas formas diferentes, existem
diversos livros venda, os quais incluem CDs com distribuies do
Linux. Outra forma de obt-lo inteiramente grtis e via ftp pela INTERNET. Existe hoje, um movimento no sentido de tornar o Linux
um sistema popular, dado que superioridade tcnica ele j possui.
Existem algumas outras verses de UNIX para PCs, tais como
Xenix, SCO Unix, FreeBSD e NetBSD, as ltimas duas tambm
livres, no entanto alm de mais popular, o Linux possui uma srie
de caractersticas a mais, no encontradas em outras verses, mesmo
comerciais, de UNIX.
B.2
A primeira vista, parece que o Linux nada possui de diferente de qualquer outro Sistema Operacional, mas nenhum to bom em unir e
integrar o que h de melhor em um computador de forma harmoniosa
e eficiente devido a sua prpria origem em meio a toda uma comunidade de pessoas interessadas em obter o mximo e o melhor em
desempenho. Cabe ressaltar tambm que o Linux possui todas as caractersticas que fazem do UNIX um excelente sistema operacional,
entre elas : portabilidade, multiusurio, multitarefa, estrutura hierrquica de arquivos, ferramentas, utilitrios, comunicao com
outros sistemas.
Uma rpida olhada em algumas das principais caractersticas e
vantagens que fazem o Linux nico:
260
Linux
Multitarefa. Linux, como as outras verses do UNIX um sistema multitarefa, possibilitando a execuo de mltiplas aplicaes de diferentes usurios no mesmo sistema ao mesmo
tempo.
O X Window System , de fato, um padro na indstria de sistemas grficos para mquinas UNIX. Uma verso completa do
X Window System, conhecida como Xfree86 est disponvel
para Linux.
TCP/IP (Transmission Control Protocol /Internet Protocol).
Com uma conexo Ethernet o Linux permite que seja feita
uma conexo da Internet a uma rede local.
Memria Virtual. O Linux pode usar parte do seu HD como
memria virtual, aumentando assim a capacidade da
memria RAM.
Compatibilidade com o IEEE POSIX. Linux foi desenvolvido
com a portabilidade de software em mente.
B.3
Kernel/Shell
262
Apndice C
Editor vi
C.1
Introduo
C.2
C.3
Buer
de edio
Quando edita-se um arquivo com o vi, na verdade no se est alterando o arquivo em si. As alteraes feitas so aplicadas em um
buffer (uma rea na memria, que passa a conter o arquivo sendo editado). Quando quiser-se que as alteraes fiquem permanentemente
aplicadas ao arquivo, ser necessrio copiar o contedo do buffer para
o disco, usando o comando write (w) no modo last line. Portanto, se o comando write no for executado antes de deixar o vi,
as alteraes contidas no buffer no sero aplicadas ao arquivo que
264
Editor vi
est no disco.
C.4
, onde n nmero de linhas que deseja-se excluir. Por exemplo ao digitar-se 3dd apaga-se 3 linhas do texto. Observe que
o texto removido ser armazenado no buffer e poder ser inserido em qualquer outra parte do documento com o comando
p ou P.
modo
de
comando, tecla-se :s/palavra/outra.
Por exemplo para
subs-tituir-se velha por nova: :s/velha/nova, assim tem-se a
troca da primeira ocorrncia de velha por nova. Para
substituio de todas as ocorrncias no texto deve-se
acrescentar o caractere % no incio do comando. Por exemplo:
:%s/velha/nova
Insero de um texto externo No modo de comando, teclase :r/caminho/e/nome/do/arquivo e o texto do arquivo mencionado ser inserido a partir da posio do cursor.
266
Apndice D
Estrutura de Arquivos e
Diretrios
Existem 4 tipos bsicos de arquivos em Linux :
Arquivo diretrio;
Arquivo convencional;
Arquivo de dispositivo;
Arquivo simblico ou de ligao;
Um arquivo diretrio nada mais do que um tipo de arquivo
contendo informaes sobre arquivos que conceitualmente (e no fisicamente) esto contidos nele. Isso significa que o contedo de seus
arquivos no est armazenado dentro do diretrio. Assim sendo, no
h limite para o tamanho de um diretrio. Teoricamente pode-se colocar no seu diretrio tantos arquivos quanto quisesse, at o ponto de
estourar a capacidade do disco.
Os dados contidos no arquivo diretrio so apenas o nome de
cada arquivo e seu ponteiro para uma tabela de informaes de controle de todos os arquivos do sistema ou tabela de inodes, ver Captulo
4. Esta tabela contm informaes administrativas do arquivo, como
dados de segurana, tipo, tamanho, datas de acesso e dados que indicam onde ele est gravado no disco.
Quando se usa um arquivo, o sistema operacional consulta o diretrio para verificar se existe no disco um com o nome que se especificou. Em caso afirmativo, o sistema obtm, da tabela as informaes
necessrias para poder manipul-lo. Caso contrrio, o sistema envia
uma mensagem informando que no foi possvel encontrar o arquivo.
Um diretrio pode conter outros diretrios, aos quais chamamse subdiretrios. Um subdiretrio pode conter outros arquivos e subdiretrios, que tambm podem conter arquivos e subdiretrios e assim
por diante. Este um relacionamento pai/filho entre um diretrio e
seus arquivos e diretrios subordinados. Cada diretrio pai guarda informaes sobre os arquivos e diretrios que esto a um nvel abaixo
dele seus filhos.
Um arquivo convencional um conjunto de caracteres presentes em algum meio de armazenamento, como por exemplo um
disco. Ele pode conter texto para uma carta, cdigo de programa ou
qualquer informao armazenada para um futuro uso.
Um arquivo de dispositivo, como um diretrio, no contm
dados. Ele basicamente um ponteiro para um dispositivo perifrico,
como por exemplo uma unidade de disco, um terminal ou uma impressora. Os arquivos especiais associados aos dispositivos perifricos esto localizados no diretrio /dev.
Um arquivo simblico um arquivo convencional que aponta
para outro arquivo em qualquer lugar do sistema de arquivos Linux.
D.1
Diretrios
usurios possam organizar seus arquivos separando-os por temas, assuntos etc.
Ao entrar pela primeira vez numa conta, j se est em um subdiretrio do sistema Linux, chamado seu diretrio de entrada (home
directory). A menos que se crie alguns subdiretrios em sua conta,
todos os seus arquivos sero armazenados no diretrio de entrada.
Teoricamente, pode-se fazer isso, mas a manuteno dos arquivos
ser mais eficiente ao criar seu prprio sistema se subdiretrios. Assim ficar mais fcil manter o controle de seus arquivos porque eles
estaro agrupados em diretrios por assunto ou por tipo. O Linux
tambm realiza buscas de maneiras mais eficiente em diretrios pequenos que nos grandes.
D.2
Colchetes ([ ])
O smbolo [] contm uma lista de caracteres. Um dos caracteres dentro do colchetes ser substitudo. Um hfen separando os
caracteres que esto entre colchetes indica um intervalo. Um ! dentro do colchetes indica o sentido da procura invertido. Esses caracteres especiais poupam tempo de digitao. O mais importante que
eles podem ser usados para fazer referncia a arquivos cujo nome no
se conhece exatamente.
Exemplos :
1. Lista todos os arquivos com extenso .new:
ls *.new
File.new arquivo.new
2. Lista todos os arquivos cujo nome termine com um nmero
entre 1 e 5:
ls *[1-5]
file1 arquivo3 dir5
3. Lista todos os arquivos cujo nome tem trs caracteres e
comeam com f:
ls f??
fig fin
D.3
Para usar literalmente um caractere especial sem que o shell interprete seu significado ele deve ser marcado. O shell trata um caractere especial marcado como um caractere normal.
272
Apstrofe ' Apstrofe mais restritivo. Todos os caracteres especiais entre apstrofes so ignorados.
273
Apndice E
Manipulando Arquivos e
Diretrios
E.1
Introduo
A funo essencial de um computador armazenar informaes (arquivos) e catalog-los de forma adequada em diretrios, fornecendo,
se possvel, algum esquema de segurana de modo que pessoas no
autorizadas no tenham acesso a arquivos importantes.
O objetivo deste captulo aprender como manipular arquivos
e diretrios no Linux. Saber copiar, mover, exibir o contedo de um
arquivo, e localizar um arquivo so algumas das atividades que sero
vistas neste captulo.
Os comandos aqui apresentados no so a totalidade dos comandos disponveis, mas certamente so suficientes para executar
funes tpicas e usuais de um programador ou de um usurio de
aplicativos em ambiente Linux.
E.2
pwd
O comando pwd (print working directory) no possui nenhuma opo
ou argumento. Este comando mostra o nome do diretrio corrente ou
de diretrio de trabalho (working directory). Pode-se utiliz-lo para
situar-se no sistema de arquivos. Por exemplo, sempre til verificar
o diretrio corrente antes de criar ou remover arquivos e diretrios.
Do mesmo modo, o pwd til para confirmar o diretrio corrente
aps vrias trocas de diretrios.
mkdir
Nos diretrios pode-se agrupar informaes afins, isto , arquivos que
possuem alguma inter-relao. O nome do diretrio deve ser significativo e permitir um acesso e uma localizao rpida dos arquivos
armazenados no seu sistema de arquivos.
O comando mkdir (make directory) utilizado para criar diretrios. Os nomes dos diretrios a serem criados so passados como
argumentos para o comando. Estes nomes podem ter at 255 caracteres, e devem ser nicos, isto , no pode haver dois diretrios com
mesmo nome dentro de um mesmo subdiretrio, nem mesmo um arquivo e um diretrio iguais em um mesmo subdiretrio.
Opes:
-m Especifica o modo de permisso de acesso para o diretrio
que est sendo criado;
-p Cria os diretrios pai citados no nome do diretrio que est
sendo criado.
Exemplos:
1. Criar um diretrio chamado teste com o seguinte modo de permisso 711.
276
ls
ls [AaCFpdlmRrstucx] [nomes]
Normalmente o contedo de um diretrio listado em ordem
alfabtica, um item por linha. As diversas opes do comando ls
permitem adaptar o formato da listagem.
Se nada for especificado em nomes todos os itens do diretrio
corrente so listados. Entretanto em nomes possvel determinar
mscaras (filtros) para selecionar padres de nomes de itens a serem
listados.
Principais opes:
-a All. Lista todos os itens , inclusive os que comeam com
pontos;
-l Long. Lista o contedo de um item que diretrio;
277
ls -la
cd
cd <nome-do-diretrio>
O comando cd (change directory) utilizado para mudar o
diretrio de trabalho corrente.
No h opes para este
comando. O nome do novo diretrio de trabalho indicado em
nome-do-diretrio. Se no for especificado um diretrio, cd far
com que o seu diretrio de entrada (home directory) se torne o seu
diretrio corrente. Se nome-do-diretrio for um subdiretrio do
seu diretrio corrente, basta informar o nome dele. Caso contrrio
pode-se informar o nome relativo ou absoluto do diretrio para o
qual se deseja mudar.
touch
touch <arquivo>
Cria um arquivo vazio de nome arquivo.
Exemplo:
Criar um arquivo vazio de nome teste.arquivo
touch teste.arquivo
echo
echo "texto a ser inserido> <arquivo>
278
cat
cat [svte] <arquivos>
O comando cat mostra o contedo de arquivos (ou da entrada
padro), apresentado-o na tela (de fato, na sada padro). possvel
utilizar o cat para criar, exibir e juntar arquivos. Quando utiliza-se
o cat para concatenar arquivos, os arquivos da origem permanecem
intactos.
Exemplo: Mostrar o contedo do arquivo teste.arquivo:
cp
cp <arquivo-origem> <arquivo-destino>
O comando cp (copy) copia, isto , cria uma cpia de um arquivo com outro nome ou em outro diretrio sem afetar o arquivo
original. Pode-se usar esse comando para criar cpias de segurana
de arquivos importantes ou para copiar arquivos que se queira modificar. Se h algum arquivo que se queira ter em mais de um diretrio,
pode-se usar o comando cp para copi-lo para outros diretrios.
Na linha de comando, arquivo-origem o nome do arquivo que
se quer copiar e arquivo-destino o nome que ser dado cpia.
Lembre-se: se fizer uma cpia de um arquivo no mesmo diretrio,
ela no poder ter o mesmo nome do arquivo-origem. Com este
279
comando pode-se acidentalmente perder arquivos se j existir um arquivo com o nome arquivo-destino, neste caso o comando cp escreve o novo arquivo por cima do antigo.
Exemplo: Copiar o arquivo arquivo.teste para teste:
cp arquivo.teste teste
mv
mv <arquivo-origem> <arquivo-destino>
O comando mv (move) funciona com arquivos da mesma
maneira como funciona com diretrios. Pode-se usar mv para
renomear um arquivo ou para mov-lo para outro diretrio,
dependendo dos argumentos utilizados.
Na linha de comando, arquivo-origem o nome do arquivo
cujo nome se deseja mudar, e arquivo-destino o novo nome para
este arquivo. Se arquivo-destino j existir, mv primeiro remove
o arquivo j existente e depois renomeia arquivo-origem com o novo
nome. Para evitar este problema, tem-se duas opes:
Examinar o contedo do diretrio antes de renomear um arquivo, para verificar se o novo nome a atribuir j existe.
Usar a opo -i (interactive) que permite uma confirmao da
remoo de um arquivo entes de o comando mv remov-lo.
Se arquivo-destino for o nome de um diretrio presente no
diretrio corrente, ento o comando mv entende que arquivoorigem deve ser movido para o diretrio arquivo-destino, e no
que este deve ser eliminado e substitudo por arquivo-origem.
Se objetiva-se mover um arquivo para um novo diretrio, o
arquivo ter o mesmo nome de arquivo-origem, a menos que se especifique o novo nome tambm, dando o nome do caminho (relativo
ou absoluto) antes do nome do arquivo.
280
mv -i arquivo.teste teste
ln
ln [-opes] fonte destino
Uma ligao uma entrada em um diretrio que aponta para
um arquivo. O Sistema operacional cria a primeira ligao a um arquivo quando este criado. O comando ln geralmente usado para
criar mltiplas referncias ao arquivo em outros diretrios. Uma ligao no cria uma cpia de um arquivo, ela simplesmente outra indicao para os mesmos dados, ver Captulo 4. Quaisquer alteraes
em um arquivo so independentes do nome usado para se referir ao
arquivo, ou seja, alterando o arquivo ou a ligao o efeito o mesmo.
As ligaes no podem ser feitas entre sistemas de arquivos
distintos, a menos que a opo -s seja usada. Esta opo cria uma
ligao simblica que um arquivo que contm o nome do caminho
do arquivo ao qual ele est ligado.
Opo:
ln -s arquivo.teste slink
ls -l
Notas: Quando se liga um arquivo a outro, no est criando
um novo arquivo, mas simplesmente dando ao arquivo antigo outro
281
rm
rm [ -opes ] arquivo(s)
O comando rm remove o arquivo e/ou as ligaes. Quando a
ltima ligao removida, o arquivo no pode mais ser acessado e
o sistema libera o espao ocupado pelo arquivo para outro uso. Se o
arquivo for de ligao simblica, a ligao do arquivo removida.
Para remover um arquivo exigida a permisso de gravao do
diretrio pai do arquivo. Entretanto no exigido o acesso de leitura
ou gravao ao arquivo. Os caracteres especiais podem ser usados
para se referir a vrios arquivos sem indicar cada nome separadamente.
Opes :
nd
find diretrios [expresso]
O comando find procura recursivamente por arquivos em diretrios do sistema de arquivos.
282
-iname arquivo Seleciona os arquivos com nomes que correspondam a arquivo, ignorando (i) maisculas e minsculas,
sendo que arquivo pode ser um nome de arquivo, ou um padro
de nomes de arquivos (especificado com o uso de *), mas deve
ser precedido de uma barra invertida;
find
-iname teste.arquivo
./curso/aula1/teste.arquivo
./teste.arquivo
2. Encontre todos os seus arquivos a partir do diretrio curso:
grep
grep [-opes] `sequncia de caracteres'
arquivo(s)
O comando grep procura uma sequncia de caracteres em um
ou mais arquivos, linha por linha. A ao especificada pelas opes
executada em cada linha que contm a sequncia de caracteres procurada.
Se mais de um arquivo for indicado como argumento do comando, o grep antecede cada linha de sada que contm a sequncia
284
de caracteres com o nome do arquivo e dois pontos. O nome do arquivo mostrado para cada ocorrncia da sequncia de caracteres em
um determinado arquivo.
Opes :
more/less
So paginadores para visualizao em tela. Quando usa-se o cat
para ver o contedo de um arquivo, e se o mesmo for muito extenso,
tem-se dificuldade em ver o incio do mesmo. Com o more/less
possvel navegar pelo contedo dos arquivos ou da sada padro.
Exemplo: more /etc/passwd
head e tail
Mostram na tela as 10 primeiras ou 10 ltimas linhas de um arquivos,
respectivamente. Muito teis para anlise de log's.
Opes:
tail -n 20 /etc/passwd
head -n 10 /etc/passwd
gzip e gunzip
Compacta e descompacta arquivos, respectivamente. Um nico por
vez, mudando a extenso do mesmo.
Exemplos:
gzip teste.arquivo.2
ls -l
gunzip teste.arquivo.2.gz
ls -l
tar
tar (abreviatura de Tape ARchive), um formato de arquivamento
de arquivos. Apesar do nome tar ser derivado de tape archive, o
seu uso no se restringe a fitas magnticas. Ele se tornou largamente
usado para armazenar vrios arquivos em um nico, preservando informaes como datas e permisses. Normalmente produzido pelo
comando tar.
tar tambm o nome de um programa de arquivamento desenvolvido para armazenar (backup) e extrair arquivos de um arquivo
tar (que contm os demais) conhecido como tarfile ou tarball.
O primeiro argumento para tar deve ser uma das seguintes opes:
Acdrtux, seguido por uma das seguintes funes adicionais. Os argumento finais do tar so os nomes dos arquivos ou diretrios nos quais
eles podem ser arquivados. O uso de um nome de diretrio, implica
sempre que os subdiretrios sob ele, sero includos no arquivo.
286
Usando o tar
O que o gzip no consegue fazer, o tar (Tape ARchives) faz. Ele
um aplicativo capaz de armazenar vrios arquivos em um s. Porm,
no capaz de compactar os arquivos armazenados. Como possvel
notar, o tar serve de complemento para o gzip 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.
Este arquivo, por sua vez, ento compactado pela gzip.
O tar tambm consegue gravar a propriedade e as permisses
dos arquivos. Ainda, consegue manter a estrutura de diretrios original (se houve compactao com diretrios), assim como as ligaes
diretas e simblicas.
A sintaxe do tar :
288
Apndice F
Comandos Bsicos
F.1
Introduo
Certos comandos so interativos e outros no-interativos. Comandos interativos so aqueles que aps serem executados, exigem que
algumas perguntas sejam respondidas para que possam prosseguir.
Comandos no interativos simplesmente executam os comandos sem
nada perguntar e retornam linha de comando do Linux.
Exemplos de comandos no interativos:
F.2
O shell analisa a linha do comando separando seus vrios componentes com o uso de espaos em branco. Este procedimento conhecido como parsing (anlise), e composto dos seguintes passos:
1. O shell examina se h algum caractere especial a ser interpretado na linha de comando;
2. Supondo que os caracteres at o primeiro branco se referem
a um comando, o shell procura um arquivo executvel (programa) com o mesmo nome;
3. Se o shell localiza o programa, ele verifica se o usurio que
fez o pedido tem permisso de acesso para usar o comando;
4. O shell continua a examinar o resto da linha de comando para
ver a formatao;
5. Finalmente, ele informa ao kernel para executar o programa,
passando todas as opes e argumentos vlidos para o programa;
6. Enquanto o kernel copia o arquivo executvel do disco para a
memria e executa-o, o shell permanece inativo at que o programa tenha encerrado. O programa em execuo na memria
chamado de processo;
7. Quando o processo termina de ser executado, o controle retorna
ao shell que exibe novamente o prompt para avisar que est
pronto para o prximo comando;
F.3
Comandos
Login
Por ser um Sistema Operacional que suporta vrios usurios (multiusurio), antes de tudo, preciso se identificar. O Linux ento se
290
Comandos Bsicos
Logout
Este comando permite sair da seo shell, ou seja, desconectar o
usurio do sistema.
Reboot
Este comando equivalente init 6 e com ele pode-se reiniciar o
sistema, sem desligamento do hardware.
Halt
Este comando equivalente shutdown -r now e permite desligar
o sistema.
Man
Pginas de manual ou man pages so pequenos arquivos de ajuda que
podem ser invocados pelo comando man a partir de linha de comando
de sistemas baseados em Unix e Linux. A forma de invocar a ajuda
:
man ls
292
Apndice G
Redirecionamentos
G.1
G.2
G.3
Redirecionamentos
cat Arquivo.teste
cat <Arquivo.teste
produziro exatamente o mesmo efeito.
who data.de.hoje
cat data.de.hoje
G.3.4 Pipes
Os smbolos de redirecionamento permitem realizar mais de uma operao em um mesmo arquivo. Somente com esses smbolos j se tem
condies de realizar tudo o que quiser sobre um arquivo. Suponha,
entretanto, que se queira fazer um conjunto de operaes diferentes
em um mesmo arquivo. Cada operao implicaria a criao de um
novo arquivo, sendo que o nico propsito desses arquivos seria servir
como entrada para outro comando. Entretanto, tudo o que importa
o resultado final. Para situaes como essas o Linux possui outra
maneira de redirecionar entradas e sadas: os pipes.
comando 1 | comando 2
Este smbolo, |, pode ser usado para enviar a sada de um
comando para a entrada de outro. Pode-se usar vrios pipes em
uma linha de comando, de maneira que possvel combinar tantos
comandos quantos necessrios, bastando intercal-los por smbolos
296
Redirecionamentos
ls | grep arq | wc -l
3
2. Contar o nmero de usurios que esto presentes no sistema
neste momento:
who | wc -l
2
0 Entrada padro;
298
Redirecionamentos
1 Sada padro;
2 Sada de erro padro.
O descritor do arquivo deve ser colocado imediatamente antes
dos caracteres de redirecionamento. Por exemplo, 1> indica a sada
padro, enquanto 2> indica a sada de erro padro. Assim, o
comando mkdir temp 2>errfile faz o shell direcionar qualquer
mensagem de erro para o arquivo errfile. As indicaes da
entrada padro (0>) e sada padro (1>) so necessrias apenas para
evitar ambiguidade.
Exemplo :
299
Referncias Bibliogrcas
[1] Ken O. Burtch. Scripts de Shell Linux com Bash. Editora Cincia Moderna, Rio de Janeiro, Brasil, 2004.
[2] Felipe Costa. Ambiente de Rede Monitorado com Nagios e
Cacti. Editora Cincia Moderna, Rio de Janeiro, Brasil, 2008.
[3] George Coulouris, Jean Dollimore, and Tim Kindberg.
Sistemas Distribudos, Conceitos e projeto. Bookman, quarta
edio edition, 2007.
[4] Rubem E. Ferreira. Linux Guia do Administrador do Sistema.
Novatec Editora Ltda., So Paulo, Brasil, 2003.
[5] Craig Hunt. Linux Servidores de rede. Editora Cincia Moderna, Rio de Janeiro, Brasil, 2004.
[6] James F. Kurose and Keith W. Ross. Redes de computadores
e a Internet Uma aobordagem top-down. Pearson Addison
Wesley, terceira edio edition, 2006.
[7] Evi Nemeth, Garth Snyder, Scott Seebass, and Trent R. Hein.
Manual De Administrao do Sistema Unix. Artmed, 3 edition,
2001.
[8] James Stanger, Patrick T. Lane, and Edgar Danielyan. Rede
Segura Linux. Editora Alta Books, Rio de Janeiro, Brasil, 2002.
[9] Chuck V. Tibet. Linux Administrao e Suporte. Novatec
Editora Ltda., So Paulo, Brasil, 2001.
[10] Odilson Tadeu Valle. Linux bsico, gerncia, segurana e administrao de redes. 2008.
[11] Marco lvarez, Cludia Nasu, Alfredo Lanari, and Luciene
Marin. Curso de introduo ao linux.
302