Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
responsvel
pelo
O curso ensina a projetar, instalar, configurar e disponibilizar os principais servios para internet em uma rede
TCP/IP. Apresenta os conceitos associados a cada um
dos servios, e a instalao e configurao do KVM como
base para o ambiente de virtualizao. Aborda a autenticao nos servios com LDAP, com apoio intensivo de
atividades prticas.
Administrao de
Sistemas Linux
Servios para
Internet
Wagner Vieira Leo
Bruno Alves Fagundes
Andr Ramos Carneiro
Ministrio da
Cultura
Ministrio da
Sade
Ministrio da
Educao
ISBN 978-85-63630-55-1
Ministrio da
Cincia, Tecnologia
e Inovao
9 788563 630551
ads4.capa-NPE-V3.0.0.indd 1
27/04/2016 14:06:54
responsvel
pelo
Ministrio da
Cultura
Ministrio da
Sade
Ministrio da
Educao
Ministrio da
Cincia, Tecnologia
e Inovao
Administrao de
Sistemas Linux:
Servios para
Internet
Wagner Vieira Leo
Bruno Alves Fagundes
Andr Ramos Carneiro
Administrao de
Sistemas Linux:
Servios para
Internet
Wagner Vieira Leo
Bruno Alves Fagundes
Andr Ramos Carneiro
Rio de Janeiro
Escola Superior de Redes
2016
Nelson Simes
Diretor de Servios e Solues
ISBN 978-85-63630-55-1
1. Linux (Sistema operacional de computador). 2. Servios de diretrio (tecnologia de
redes de computador). I. Lo, Wagner Vieira. II. Ttulo.
CDD 005.7
Sumrio
Escola Superior de Redes
A metodologia da ESRxi
A quem se destinaxii
Convenes utilizadas neste livroxiii
Permisses de usoxiii
Comentrios e perguntasxiv
Sobre os autoresxiv
1. DNS
Introduo1
Domain Name Service (DNS)2
Por que utilizar DNS?2
Definies4
Domnio4
Zonas de autoridade5
Exerccio de fixao 1 DNS authoritative answer6
Registro de recursos6
Mapeamento direto e reverso9
Resolver (resolvedor): cliente10
Servidor DNS11
Tipos de servidores DNS11
Servidores raiz DNS13
Estrutura do DNS no Linux13
iii
2. NFS
Network File System (NFS)29
Instalando e configurando um servidor NFS30
Exerccio de fixao 1 Instale o servidor NFS30
Iniciando os servios NFS33
Pr-requisitos 33
Iniciando o portmapper 33
Verificando a execuo do NFS34
Configurao de cliente NFS35
Montagem de sistemas de arquivos NFS em tempo de boot36
NFS sobre TCP36
NFS sncrono versus assncrono37
Segurana e NFS38
NFS e segurana: portmapper39
3. Servidor LDAP
Introduo41
Servios de diretrio41
Sem servio de diretrios42
Com servio de diretrio42
LDAP43
Funcionamento do LDAP44
iv
4. LDAP Avanado
Schemas53
Classes de objetos54
Atributos55
Gerenciando schemas56
Mdulos56
Manipulao da base57
Gerenciamento de Logs59
Cliente LDAP60
Pacotes para instalao cliente60
Segurana do Servidor LDAP62
Criptografia das mensagens Cliente Servidor LDAP64
Replicao da base LDAP66
Replicao Master X Slave66
Replicao Master x Master67
Diretrios distribudos67
Ferramentas grficas67
Backup e Restore68
Backup69
Restore69
Atividade de Fixao Elaborando uma soluo de backup da base do LDAP69
5. Servidor web
Introduo71
Conceitos fundamentais71
Servidor web74
Cliente web74
Protocolo HTTP74
Requisio (request)75
Respostas (response)76
Domnio virtual79
Servidores web80
v
vi
vii
9. Samba
Introduo141
Samba141
Daemons143
nmbd143
smbd144
winbindd144
Conjunto de ferramentas144
Conceitos145
Samba ADS146
Instalao e configurao147
Instalao147
Principais parmetros de configurao149
Parmetros de configurao para administrao de contas152
Backends de contas154
smbpasswd154
tdbsam154
ldapsam155
Modelos de segurana155
Segurana no nvel do usurio155
Modo de Segurana Domain (Segurana ao Nvel de Usurio)156
Modo de Segurana ADS (Segurana ao Nvel de Usurio)156
Contas de usurios, grupos e mquinas157
Samba como PDC159
Parmetros de controle do domnio161
Parmetros de ambiente162
Compartilhamento NETLOGON162
Compartilhamento PROFILE163
Servio de Logon na Rede de Domnio163
Configuraes adicionais163
Integrao com o OpenLDAP164
Configurao do OpenLDAP 165
Inicializao da base de dados LDAP Configurando o smbldap-tools166
Configurando o Samba PDC para acessar a base de dados LDAP169
Configurao de compartilhamento171
Atividades administrativas172
viii
ix
A metodologia da ESR
A filosofia pedaggica e a metodologia que orientam os cursos da ESR so baseadas na
aprendizagem como construo do conhecimento por meio da resoluo de problemas tpicos da realidade do profissional em formao. Os resultados obtidos nos cursos de natureza
terico-prtica so otimizados, pois o instrutor, auxiliado pelo material didtico, atua no
apenas como expositor de conceitos e informaes, mas principalmente como orientador do
aluno na execuo de atividades contextualizadas nas situaes do cotidiano profissional.
A aprendizagem entendida como a resposta do aluno ao desafio de situaes-problema
semelhantes s encontradas na prtica profissional, que so superadas por meio de anlise,
sntese, julgamento, pensamento crtico e construo de hipteses para a resoluo do problema, em abordagem orientada ao desenvolvimento de competncias.
Dessa forma, o instrutor tem participao ativa e dialgica como orientador do aluno para as
atividades em laboratrio. At mesmo a apresentao da teoria no incio da sesso de aprendizagem no considerada uma simples exposio de conceitos e informaes. O instrutor
busca incentivar a participao dos alunos continuamente.
xi
Sobre o curso
O curso tem como objetivo ensinar a projetar, instalar, configurar e disponibilizar os principais servios para Internet em uma rede TCP/IP; Conhecimento dos conceitos tericos
associados a cada um dos servios, com a apresentao de cenrios que facilitem a sua compreenso; Autenticao nos servios, sempre que possvel, com o uso de LDAP; Os servios
so instalados e testados com o uso intensivo de atividades prticas; Conhecimento de boas
prticas para a utilizao bem ajustada dos servios de produo.
A quem se destina
Esse curso destina-se a formao de profissionais responsveis pela instalao, operao
e manuteno de plataforma computacional para conexo com a Internet, gerentes de TI e
programadores, desde que tenham os pr-requisitos necessrios.
xii
Largura constante
Indica comandos e suas opes, variveis e atributos, contedo de arquivos e resultado da
sada de comandos. Comandos que sero digitados pelo usurio so grifados em negrito
e possuem o prefixo do ambiente em uso (no Linux normalmente # ou $, enquanto no
Windows C:\).
Contedo de slide
Indica o contedo dos slides referentes ao curso apresentados em sala de aula.
Smbolo
Indica referncia complementar disponvel em site ou pgina na internet.
Smbolo
Indica um documento como referncia complementar.
Smbolo
Indica um vdeo como referncia complementar.
Smbolo
Indica um arquivo de adio como referncia complementar.
Smbolo
Indica um aviso ou precauo a ser considerada.
Smbolo
Indica questionamentos que estimulam a reflexo ou apresenta contedo de apoio ao
entendimento do tema em questo.
Smbolo
Indica notas e informaes complementares como dicas, sugestes de leitura adicional ou
mesmo uma observao.
Permisses de uso
Todos os direitos reservados RNP.
Agradecemos sempre citar esta fonte quando incluir parte deste livro em outra obra.
Exemplo de citao: TORRES, Pedroet al. Administrao de Sistemas Linux: Redes e Segurana.
Rio de Janeiro: Escola Superior de Redes, RNP, 2013.
xiii
Comentrios e perguntas
Para enviar comentrios e perguntas sobre esta publicao:
Escola Superior de Redes RNP
Endereo: Av. Lauro Mller 116 sala 1103 Botafogo
Rio de Janeiro RJ 22290-906
E-mail: info@esr.rnp.br
Sobre os autores
Wagner Vieira Lo tem 25 anos de experincia na rea de TI, atuando como Analista de
Suporte e em Computao de Alto Desempenho, com foco em sistemas operacionais
UNIX/LINUX, Possui graduao em Matemtica pela Faculdade de Humanidades Pedro II,
com Ps Graduao em Gesto da Inovao pelo LNCC/UCP. Atualmente ocupa o cargo
de Coordenador de Tecnologia da Informao do Laboratrio Nacional de Computao
Cientfica e de Coordenador Administrativo do Ponto de Presena da RNP no Rio de Janeiro.
Professor do Instituto Superior de Tecnologia da Informao de Petrpolis, IST e da Escola
Superior de Redes da RNP nas reas de Segurana da Informao e Sistemas Operacionais.
Bruno Alves Fagundes Tecnlogo em Tecnologia da Informao e da Computao pelo
Instituto Superior de Tecnologia (2007) e especialista em Segurana de Redes pela
Universidade Estcio de S (2011). Tem experincia em administrao de servidores
Linux, gerenciamento de usurio, implementao e gerencia de servios de rede, computao de alto desempenho, segurana de redes, shell script, PHP, Perl, solues de
storage e backup. Atualmente tecnologista no Laboratrio Nacional de Computao
Cientfica e professor na Escola Superior de Redes na rea de Sistemas Operacionais.
Andr Ramos Carneiro possui graduao em Tecnlogo em Tecnologia da Informao e
Comunicao pelo Instituto Superior de Tecnologia em Cincia da Computao (2006).
Trabalha com suporte Linux desde 2005 e atualmente Tecnologista do Laboratrio
Nacional de Computao Cientfica, onde trabalha com administrao de servidores,
gerncia de contas de usurios, implementao de novos servios, suporte a plataformas
de processamento de alto desempenho, compilao de aplicaes cientficas, administrao de storage e backup. Tem experincia na rea de Cincia da Computao, com nfase
em Computao de Alto Desempenho, atuando principalmente nos seguintes temas: previso numrica de tempo, processamento paralelo, aplicaes cientficas e I/O paralelo.
xiv
1
Conhecer o sistema Domain Name Service (DNS).
conceitos
Introduo
O estudo deste captulo apresenta o conceito do servio de resoluo de nomes (DNS),
abordando sua utilizao e execuo de maneira prtica e intuitiva, passando pela instalao,
configurao e testes.
So apresentados os conceitos e definies comuns ao servio DNS, tais como:
11 Espao de Nomes (DNS);
11 Domnio;
11 Zonas de autoridade;
11 Registro de recursos;
11 Mapeamento direto e reverso.
11 Delegao de domnios
11 Servio em chroot.
Em seguida, sero vistos os tipos e montagens tpicas de um servio DNS, que envolvem:
11 Servidor primrio;
11 Servidor(es) Secundrio(s);
11 Servidor Cache;
11 Servidores raiz da internet.
Na etapa seguinte, so abordados os aspectos do DNS associados sua utilizao no Linux,
desde instalao e configurao, at formas de teste e diagnstico.
Captulo 1 - DNS
objetivos
DNS
22 Pgina da RNP.
l
Um motivo adicional
para o uso de um
sistema de endereamento baseado em
nomes torn-lo
independente do
endereo IP em uso em
determinado momento.
arpa
com
gov
edu
mil
net
org
br
...
rnp
esr
Domnios genricos
Domnios geogrcos
Captulo 1 - DNS
Figura 1.1
Os domnios
genricos, como
net ou org,
e os geogrficos,
como rnp.
Definies
11 Domnio.
11 Zonas de autoridade.
11 Registro de recursos.
11 Mapeamento:
22 Direto.
22 Reverso.
11 Delegao de domnio.
11 Servio com chroot.
A segurana da informao um ponto crtico para a sobrevivncia das organizaes na
era da informao. Vrios so os problemas envolvidos, no entanto, a sociedade depende
das informaes armazenadas nos sistemas computacionais para tomadas de deciso em
negcios, uso de rgos do governo, entre outros contextos.
A informao pode existir em diversos formatos: impressa, armazenada eletronicamente,
transmitida pelo correio convencional ou eletrnico etc. Seja qual for o formato, meio de
armazenamento ou transmisso, recomenda-se que ela seja protegida adequadamente.
Sendo assim, de responsabilidade da segurana da informao proteg-la de vrios tipos
de ameaas, a fim de garantir a continuidade do negcio, minimizar riscos e maximizar o
retorno sobre os investimentos. Felizmente, crescente a conscientizao das organizaes
frente ao valor e as vulnerabilidades de seus ativos, no que diz respeito segurana.
Hoje, a segurana da informao determinante para assegurar competitividade, lucratividade, atendimento aos requisitos legais e a boa imagem da organizao junto ao mercado
e s organizaes, tanto no setor pblico quanto no setor privado. Em tais contextos, a
segurana da informao um componente que viabiliza negcios como o e-Gov (governo
eletrnico) ou e-commerce (comrcio eletrnico).
Domnio
11 Subrvore do espao de nomes DNS.
As partes com, edu e br desses servidores so chamadas dedomnios principaisoudomnios de primeiro nvel. Existem vrios domnios principais, incluindo com, edu, gov,
mil, net e org, alm das siglas de duas letras de cada pas, para identificar a origem, em
ingls. No custa lembrar que os domnios registrados nos EUA no possuem a identificao
(us).Em cada domnio principal existe uma enorme lista dedomnios secundrios. Novos
tipos de domnio foram criados para oferecer melhor identificao. Exemplos mais conhecidos so: professor prof.br, pessoais nom.br, rede de televiso tv.br etc.
Um domnio uma subrvore do espao de nomes DNS. Um domnio completo, tambm
denominado de Fully Qualified Domain Name (FQDN), consiste basicamente em um nome
de mquina, um nome de domnio e um domnio de topo. O endereo www.rnp.br um
exemplo de FQDN, onde:
11 www: nome da mquina (ou host);
11 rnp: nome do domnio;
11 br: domnio de topo.
Cada subrvore considerada parte de um domnio. Nesse caso, rnp faz parte do domnio
br. Outra situao referente a subdomnios dentro da prpria rede. Considere o endereo www.df.rnp.br, no qual df uma subrvore de rnp e faz parte desse domnio.
A seguir, alguns exemplos.
Domnio rnp:
11 www.rnp.br: mquina www no domnio rnp.br.
11 mail.rnp.br: mquina mail no domnio rnp.br.
Domnio df.rnp.br:
11 www.df.rnp.br: mquina www no domnio df.rnp.br.
11 mail.df.rnp.br: mquina mail no domnio df.rnp.br.
Zonas de autoridade
11 Tambm denominadas Start of Authority (SOA).
Captulo 1 - DNS
11 Tempo minimum: informa o Time To Live (TTL) default caso o domnio no especifique
um TTL;
11 Tempo de vida, Time To Live (TTL): valor passado pelo servidor de nomes indicando, para a
mquina que originou a pergunta, o tempo que a informao pode ser mantida em cache.
Exerccio de fixao 1 e
DNS authoritative answer
Qual das alternativas a seguir representa uma resposta non-authoritative answer quando
realizamos uma consulta a um servidor de DNS?
(1) Indica que o tempo de vida (TTL) expirou.
(2) Representa uma resposta originada do cache local.
(3) Indica um erro no registro SOA.
(4) Retorna a informao do prximo servidor DNS.
(5) Indica que o cache do servidor de DNS est envenenado (DNS Poisoning).
Registro de recursos
11 Todos os domnios podem ter um conjunto de registro de recursos associado.
O campo Tempo de vida (Time To Live) d uma indicao do nvel de estabilidade do registro.
Informaes muito estveis recebem valor alto, como 86400 (o nmero de segundos em um
dia). Informaes altamente volteis tm um valor pequeno, como 60 (um minuto).
O terceiro campo de todo registro de recurso a Classe. Para informao de servidor
internet, sempre IN. Para informaes no relacionadas com a internet, so usados outros
cdigos, que na prtica so vistos raramente.
O campo Tipo fornece a informao do tipo de registro. Os tipos mais importantes so:
11 Start of Authority Information (SOA): contm informaes referentes ao servidor de
nomes DNS do domnio, verso do banco de dados DNS, e-mail do administrador responsvel pelo domnio etc;
11 A (Host Adress): mantm a tabela de endereos IP dos hosts mantendo compatibilidade com
a tabela antiga de hosts. Permite mapear um nome de host para um ou cada endereo IP;
11 Name Server Identification (NS): especifica os servidores de nomes responsveis pelo
domnio, zona ou subzona;
6
11 General Purpose Pointer (PTR): permite obter um nome de host, a partir do conhecimento do seu endereo IP. a contraparte do registro A;
11 Canonical Name Alias (CNAME): permite criar um apelido para um host. Esse registro
til para ocultar detalhes de implementao da sua intranet, por exemplo: ftp.marketing.
corporao.com pode ser apenas um apelido do verdadeiro servidor que executa ftp
do marketing;
11 Host Information (HINFO): permite identificar propriedades de hardware e do Sistema
Operacional do host que sero exibidas toda vez que o usurio acessar esse host.
A padronizao de identificao do tipo de CPU e do Sistema Operacional deve obedecer
aos nomes listados na RFC 1700;
11 MAIL Exchange (MX): mantm informaes referentes aos hosts responsveis pelo
e-mail do domnio.
Finalmente, ns temos o campo Valor. Esse campo pode ser um nmero, um nome de
domnio, ou um conjunto de caracteres ASCII. A semntica depende do tipo de registro.
Considere que todos os domnios podem ter associado um conjunto de registro de recursos.
Conforme mencionado anteriormente, uma zona de autoridade refere-se a um local onde
esto armazenados os dados sobre as mquinas do domnio.
Todos os registros de um determinado domnio esto em uma zona de autoridade responsvel por este. Nesse caso podemos ter, considerando os domnios df.rnp.br e rnp.br, duas
zonas de autoridade. A primeira responsvel pelas informaes referentes aos servidores
daquele domnio, e a segunda, responsvel pelas informaes dos servidores do outro
domnio. Nesse caso, podemos ter:
11 Servidor 1: SOA do domnio rnp.br e responsvel pelas informaes de DNS dessa rede;
11 Servidor 2: SOA do domnio df.rnp.br e responsvel pelas informaes de DNS dessa rede.
Esses servidores podem estar inclusive em localidades diferentes, sem relao direta (primrio e secundrio) um com o outro.
Os registros do banco de dados do DNS possuem o seguinte formato:
<nome> <TTL> <classe> <tipo> <dados>
Captulo 1 - DNS
11 Nome;
<nome><TTL><classe><tipo><dados>
Descrio
Valor
SOA
Incio de autoridade
PTR
MX
Domnio e prioridade
NS
Servidor de nomes
CNAME
Nome no domnio
HINFO
TXT
Informaes textuais
Tabela 1.1
tabela de tipos de
registros.
DNS
Qual o endereo
Servidor
de mail.rnp.br?
DNS raiz
3
1
DNS
DNS
Servidor
Resposta:
Servidor
200.130.38.66
DNS local
DNS br
6
DNS
Figura 1.2
Mapeamento
direto.
Servidor
DNS rnp
Captulo 1 - DNS
encaminhada ao servidor DNS da rede local. O servidor DNS local consulta um servidor DNS
Qual o nome da
mquina com IP
200.130.77.75?
DNS
Servidor
DNS
3
4
6
Resposta:
Servidor
www.rnp.br
DNS local
DNS raiz
Servidor
Resp.
Classe C
200.130.77
10
Figura 1.3
O mapeamento
reverso em
funcionamento.
software chamado resolver, que faz parte da prpria aplicao, isto , ele no faz parte do
ncleo do Sistema Operacional (j os protocolos TCP/IP so ligados ao ncleo).
Os protocolos TCP/IP no ncleo no conhecem nada a respeito do DNS. Uma aplicao (ou um
servio no transparente TCP/IP) precisa traduzir o endereo simblico de seu computador
hospedeiro para um endereo IP antes de poder iniciar uma conexo de transporte (TCP ou
UDP), e o resolver que faz essa traduo. O resolver se comunica como os servidores de
nomes, geralmente, por meio de conexes UDP. Para efetuar a traduo, o resolver contata
um ou mais servidores de nomes na rede, conforme indicado no arquivo /etc/resolv.conf.
Servidor DNS
11 Quando um resolvedor efetua uma consulta, esta enviada a um servidor de
nomes local.
11 Se o domnio consultado estiver sob a jurisdio do servidor de nomes, esse retornar os dados oficiais.
11 Ou consultar o cache, que armazena as consultas efetuadas recentemente.
22 As informaes no cache podem estar desatualizadas.
Servidores DNS fazem a traduo de nomes de domnio em nmeros IP. Isso pode parecer
um trabalho simples, e seria, se no fosse por quatro fatores:
11 Existem bilhes de endereos IP atualmente em uso, e a maioria das mquinas possuem
um nome;
11 A quantidade de solicitaes feitas aos servidores DNS alcana a casa de muitos bilhes
em apenas um dia;
11 Nomes de domnio e nmeros IP sofrem alteraes dirias;
11 Novos domnios so criados diariamente.
O sistema DNS um imenso banco de dados, e nenhum outro banco de dados recebe tantas
solicitaes. Nenhum banco de dados no planeta tem milhes de pessoas modificando seu
contedo, diariamente. Esses fatores que fazem o servio DNS ser to especial.
O daemon em execuo no servidor DNS escuta na porta 53 por consultas feitas a outros
computadores. O servidor procura localmente em sua base de dados ou encaminha a consulta a outros servidores (raiz, domnio de topo e domnio).
Caso o servidor responsvel pelo DNS no domnio seja consultado, retornar os dados oficiais.
Captulo 1 - DNS
11
Com o BIND, cada estao usa o cdigo do resolver, porm, nem todas as estaes executam o processo servidor de nomes. Uma estao que no executa um processo servidor
de nomes localmente e depende de outras estaes para conseguir as respostas para seus
servios de nomes chamada sistema resolvedor (resolver-only system). As configuraes
somente resolvedoras so comuns apenas em estaes sem disco (diskless). A grande
maioria das estaes executa localmente um processo servidor de nomes.
O servidor de nomes do BIND executado como um processo distinto chamado named
(daemon). Os servidores de nomes so classificados de diferentes maneiras, dependendo do
modo como estejam configurados. As trs principais categorias de servidores de nomes so:
11 Servidor Primrio (master): servidor a partir do qual todos os dados a respeito de um
domnio so originados. O servidor primrio faz a carga das informaes a respeito do
domnio diretamente a partir de um arquivo de especificaes, no formato texto, criado
pelo administrador de sistemas. Os servidores primrios so autorizados, isto , tm
informaes completas e atualizadas a respeito de seus domnios. S pode existir um
nico servidor primrio para cada domnio. Em outras palavras, esse servidor executa o
servio DNS e a fonte autorizada de informaes sobre um domnio, obtendo informaes sobre o domnio de arquivos locais que devem ser mantidos pelo seu administrador;
11 Servidor Secundrio (slave): servidores para os quais uma base de dados completa,
referente a um determinado domnio, obtida a partir do servidor primrio. Uma base
de dados correspondente a um determinado domnio, replicada no servidor secundrio,
chamada de arquivo de zona. Copiar uma base de dados de um servidor primrio
para um servidor secundrio garante que ele sempre ter informaes atuais sobre um
domnio por meio de transferncias peridicas de arquivos de zona para esse domnio.
Os servidores secundrios so autorizados somente para seus domnios. Em outras
palavras, esse servidor executa o servidor DNS, mas obtm informaes sobre o domnio
que est servindo a partir do servidor primrio. Atende a consultas DNS mesmo que o
servidor primrio esteja indisponvel, atuando nesse caso como um servidor de backup.
11 Servidor cache (catching): servidores recebem as respostas para todas as consultas de
servios de nomes que venham de outros servidores de nomes. Quando um servidor
cache recebe uma resposta para uma consulta, ele guarda essa informao para utiliz-la
em outras consultas que venham a ocorrer. A maioria dos servidores de nomes armazena
respostas em memria cache e as utiliza dessa maneira. O que torna os servidores de
Administrao de Sistemas Linux: Servios para Internet
catching importantes que essa tcnica a nica utilizada na construo de sua base de
12
Servidor DNS
DNS
primrio
Transferncia
Transferncia
de zonas
de zonas
Servidor DNS
Servidor DNS
DNS
secundrio
DNS
secundrio
Consultas
Consultas
Consultas
Figura 1.4
Tipos de
servidores DNS.
22 Executvel.
22 Arquivo de configurao named.conf.
22 Arquivo de mapas da rede (zonas).
22 Arquivo para localizao do servidor DNS (resolv.conf ).
11 Cliente:
22 Arquivo para localizao do servidor DNS (resolv.conf ).
Nos Sistemas Operacionais Linux, a estrutura existente funciona com servidores e clientes.
Nos servidores ficam todos os arquivos que compem o banco de dados DNS: configurao
(named.conf ), mapas de rede e o resolv.conf, que aponta para os servidores DNS.
Nos clientes, apenas o arquivo resolv.conf necessrio. Um servidor de DNS tem como
objetivo fazer a converso entre nomes de computadores e seus nmeros IP. O programa
(daemon) responsvel pela tarefa o /usr/bin/named, que parte do pacote BIND. Para o
funcionamento correto do DNS, alguns arquivos so necessrios para a sua configurao.
Captulo 1 - DNS
Estaes de usurio
13
Os arquivos podem ter qualquer nome, mas devem estar definidos em named.conf (aqui
estamos usando os padres da internet).
11 /etc/bind/named.conf: principal arquivo de configurao do servidor DNS;
11 /etc/bind/db.root: arquivo que aponta para hosts externos, essencial quando o servidor
estiver sendo utilizando na internet;
11 etc/bind/db.local: responsvel pela resoluo direta do domnio localhost;
11 /etc/bind/db.127: responsvel pela resoluo reversa do domnio 127.0.0.0;
11 /etc/bind/db.empresa.com.br: responsvel pela resoluo direta do domnio
empresa.com.br;
11 /etc/bind/db.X.168.192: responsvel pela resoluo reversa do domnio
empresa.com.br, supondo que a rede possui endereo de rede
192.168.X.0/255.255.255.0.
A estrutura do servio DNS no Linux, assim como em outros sistemas, consiste em uma
arquitetura cliente/servidor. No servidor h alguns arquivos, como:
11 named: arquivo executvel (daemon);
11 named.conf: arquivo de configurao lido pelo executvel no momento de sua
inicializao;
11 Arquivos de mapas da rede: arquivos com as informaes sobre o(s) domnio(s)
controlado(s) pelo servidor;
11 resolv.conf: arquivo utilizado pelo resolvedor, presente tanto no servidor quanto nas
estaes Linux.
11 Opes default.
11 Definio das zonas.
22 Cache.
22 Loopback reverso.
22 Domnio direto.
22 Domnio reverso.
Esse o arquivo que contm as informaes referentes a cada uma das zonas administradas.
Arquivo de configurao DNS: named.conf
acl interno { 172.16.72.0/24; 192.168.0.1/24; };
acl externo { 200.138.35.230; };
options {
directory /var/named;
forwarders {
200.221.11.100;
200.221.11.101;
externo;
};
allow-transfer { none; };
allow-query { interno; externo; };
14
allow-recursion { interno; };
};
zone . IN {
type hint;
file caching-example/named.ca;
};
zone localhost IN {
type master;
file caching-example/localhost.zone;
allow-update { none; };
};
zone 0.0.127.in-addr.arpa IN {
type master;
file caching-example/named.local;
allow-update { none; };
};
zone site.local IN {
type master;
file site.local.zone;
allow-transfer { 192.168.0.1; externo; };
};
zone rnp.br IN {
type slave;
file slave.rnp.br;
masters { 200.130.77.69; };
};
Captulo 1 - DNS
11 allow-update: especifica quais dos servidores da zona sero atualizados. No caso, nenhum;
15
O arquivo /etc/bind/named.conf o principal arquivo do BIND, e o responsvel pelas informaes usadas para que o servio seja realizado. O arquivo possui informaes referentes
ao diretrio onde esto os arquivos de dados do DNS, os servidores secundrios, as zonas
atendidas, entre outras informaes pertinentes.
O arquivo de configurao named.conf possui uma srie de clusulas que so lidas pelo daemon.
Essas clusulas so estruturas que agrupam statements relacionadas, que so como diretivas
que norteiam o controle do comportamento do servidor em relao a vrias situaes.
Relao de clusulas que podem ser utilizadas:
11 Access Control List (ACL): define uma ou mais listas de controle de acesso, grupo de
hosts e usurios;
11 Controls: descreve e controla o acesso ao canal de controle utilizado pelo administrador
com a chave rndc (Remote Name Daemon Control);
11 include: no propriamente uma clusula, mas referncia a outros arquivos onde podem
ser colocadas clusulas que influenciam no funcionamento do servidor, e que esto em
separado normalmente por questes de segurana ou facilidade de administrao;
11 key: define chaves utilizadas em operaes que exigem autenticao;
11 logging: define o nvel de log e a localizao dos arquivos de log;
11 lwres: propriedades do BIND quando usa um resolvedor leve;
11 options: statements para controle de opes genricas ou globais, que podem ser sobrepostas por configuraes nos arquivos de zona;
11 server: define o comportamento do servidor ao responder ou acessar um servidor remoto;
11 trusted-keys: define opes para acessos que exigem autenticao;
11 view: controla as funcionalidades do BIND em funo do endereo do host;
11 zone: define as zonas mantidas pelo servidor.
As informaes disponibilizadas por meio dos statements no arquivo de configurao
podem ainda ser consideradas em razo da funo que controlam:
11 queries: controlam o comportamento das queries;
11 transfer: controlam o comportamento das transferncias de zonas;
Administrao de Sistemas Linux: Servios para Internet
16
604800
@ IN
SOA
mar.exemplo.com. root.mar.exemplo.com. (
2
; Serial
604800
; Refresh
86400
; Retry
2419200
; Expire
604800 )
IN
NS
localhost
mar.exemplo.com.
IN
127.0.0.1
mar
IN
200.130.77.130
sol
IN
200.130.77.131
Esse o arquivo que contm os nomes dos nmeros IP de cada mquina desse domnio.
Arquivo de configurao DNS: mapas de rede
;
; Configuraes do domnio site.local.
;
$TTL
@
86400
IN
SOA
ns01.site.local. root. (
2007071500; Serial
28800
; Refresh
14400
; Retry
3600000 ; Expire
86400
; Minimum
604800)
; TTL
;
; Definio dos Servidores de Nome.
;
IN
NS
ns01.site.local.
IN
NS
ns02.site.local.
;
; Definio dos Mail Exchanger.
;
IN
MX
10 mail.site.local.
;
; Definio dos endereos de Hosts.
localhost
IN
127.0.0.1
ns01
IN
192.168.0.254
ns02
IN
192.168.0.1
IN
192.168.0.10
IN
mysql
www
192.168.0.9
IN
Captulo 1 - DNS
201.26.142.72
17
11 Serial: nmero serial da zona deve ser incrementado sempre que for feita alguma alterao, para que os servidores secundrios possam se atualizar;
11 Refresh: nmero de segundos entre pedidos de atualizao oriundos dos servidores
secundrios;
11 Retry: nmero de segundos que os servidores secundrios vo esperar para refazer uma
consulta que falhou;
11 Expire: nmero de segundos que um servidor, master ou slave, esperar para considerar
a informao expirada, se ele no conseguir alcanar o servidor de nomes primrio;
11 Minimum: o TTL default caso o domnio no especifique um TTL;
11 Time to Live (TTL): nmero de segundos que um nome de domnio cacheado localmente antes de expirar e retornar para os servidores de nomes de autoridade para
atualizao das informaes.
Conforme mencionado anteriormente, o funcionamento do servidor DNS baseado em
zonas controladas por mapas de rede. Os arquivos de mapas de rede so os arquivos que
contm as informaes de cada uma das zonas atendidas pelo servidor DNS. So de dois
tipos: traduo direta e traduo reversa. So os arquivos onde cada um dos computadores
que pertencem a uma empresa so descritos, com nome, endereo IP e servidor de e-mail,
entre outras informaes, como Time To Live (TTL), serial para controle de alteraes etc.
Um servidor DNS necessita de pelo menos quatro arquivos com mapas de rede:
11 root.servers: mantm uma relao dos servidores raiz da internet; normalmente ficam
em um arquivo denominado named.ca;
11 localhost: permite a resoluo do nome localhost para o endereo de loop local 127.0.0.1;
11 direct-map: apoiam o processo de converso de um nome em um endereo IP;
11 reverse-map: apoiam o processo de converso de um endereo IP em um nome.
IN SOA
mar.exemplo.com. root.mar.exemplo.com. (
; Serial
604800
86400
; Refresh
; Retry
2419200
; Expire
604800 )
;
@
IN
NS
mar.exemplo.com.
130
IN
PTR
mar.exemplo.com.
131
IN
PTR
sol.exemplo.com.
18
Arquivo resolv.conf
O arquivo /etc/resolv.conf usado pelas mquinas Linux para localizar o servidor DNS.
11 Diretivas:
22 nameserver.
33 Endereo IP do servidor DNS.
22 search.
33 Especifica os domnios a serem utilizados na busca pelo host a que se deseja
conectar.
33 A adio de muitos domnios pode causar lentido na resoluo dos nomes.
22 domain.
33 Alternativa diretiva search.
Esse o arquivo responsvel por indicar quem so os servidores de nome para consultas de
DNS. Ele contm uma lista de domnios ao qual pertence a mquina e os servidores de nome
que sero consultados.
Arquivo de configurao DNS resolv.conf
search site.local
nameserver 192.168.0.254
nameserver 192.168.0.1
Adicionalmente a essas zonas, outras podem ser includas. Devem ser includas zonas para
cada rede ou domnio adicional sob responsabilidade do servidor, alm de zona para lidar
com servidor secundrio. O arquivo /etc/resolv.conf o arquivo que possui a informao do
computador que est rodando o servio DNS e o domnio a ser utilizado.
O arquivo resolv.conf utilizado pelo resolvedor (resolver) das mquinas Linux para localizar
o servidor DNS. A principal informao desse arquivo o endereo IP do servidor DNS,
informado pela diretiva nameserver <Endereo IP>.
Pode ainda ser utilizada a diretiva search ou domain, til em consultas DNS quando informado somente o nome do host em vez do endereo completo (FQDN).
Vrios domnios podem ser adicionados, o que deve ser evitado, pois causar uma
Exerccio de fixao 2 e
Servidor de DNS Cache
Instale e configure o servidor de DNS apenas com a funo de cache.
Captulo 1 - DNS
19
Delegao de domnios
Como sabemos, o sistema DNS funciona atravs da delegao, onde um servidor aponta
para outro, sucessivamente, at que a informao que se procura seja encontrada. Essas
conexes no so criadas por acaso, e exigem uma sincronizao por parte dos administradores dos diversos domnios.
Suponhamos ento que seja feito o registro do domnio exemplo.com.br. Durante o
processo de registro de domnios, ser necessrio indicar no mnimo dois servidores DNS
que estejam respondendo pelo domnio exemplo.com.br. Caso esses servidores estejam
corretamente configurados, e as demais informaes necessrias estejam tambm corretas,
o processo finalizado com a insero de registros NS para o novo domnio nos servidores
raiz do domnio BR.
Supondo que os servidores DNS do domnio exemplo.com.br sejam ns1.exemplo.com.br e
ns2.exemplo.com.br, os registros inseridos nos servidores do REGISTRO.BR tero a forma:
exemplo.com.
IN
NS
ns1.exemplo.com.
IN
IN
NS
ns2.exemplo.com.
IN
exemplo.com.
ns1.exemplo.com.
192.168.0.1
ns2.exemplo.com.
192.168.0.2
Servidores DNS, entretanto, podem atender a dezenas ou centenas de domnios. Se quisermos registrar o domnio outroexemplo.com.br, sob a responsabilidade dos mesmos
servidores DNS, o servidor raiz do domnio BR, dever conter apenas os seguintes registros:
outroexemplo.com.
IN
NS
ns1.exemplo.com.
outroexemplo.com.
IN
NS
ns2.exemplo.com.
seus registros nenhuma informao alm do nome dos servidores DNS e do domnio a que
20
servem. Tudo o mais foi delegado. O administrador do domnio exemplo.com.br tem total
liberdade para registrar quantos computadores quiser dentro do domnio sobre o qual possui
autoridade. Ele pode inclusive continuar delegando autoridade para outros subdomnios.
O domnio exemplo.com.br tem representaes em todas as capitais do Brasil e cada um
desses subdomnios se inicia pelo nome da capital onde est sediado. O administrador do
servio DNS do domnio raiz poder realizar a delegao de autoridade para os domnios
regionais, incluindo registros do tipo:
sergipe.exemplo.com.
IN
NS
ns.aracaju.exemplo.com.
Pernambuco.exemplo.com.
IN
NS
ns.recife.exemplo.com.
ceara.exemplo.com.
IN
NS
ns.fortaleza.exemplo.com.
maranhao.exemplo.com.
IN
NS
ns.saoluis.exemplo.com.
para.exemplo.com.
IN
NS
ns.para.exemplo.com.
amazonas.exemplo.com.
IN
NS
ns.amazonas.exemplo.com.
Servio em CHROOT
Em servidores UNIX, possvel executar o BIND em um ambiente chroot (usando a funo
chroot ()), especificando a opo -t para named. Isso pode ajudar a melhorar a segurana
do sistema, colocando o BIND em uma sandbox, que vai limitar os danos causados se um
servidor for comprometido.
Outro recurso til a capacidade de executar o daemon como um usurio sem privilgios (-u
usurio). Sugerimos a execuo como um usurio sem privilgios ao usar o recurso chroot.
Aqui est um exemplo de comando para carregar o BIND em uma sandbox chroot, no
diretrio /var/named, e com opo de setuid para o usurio 202:
/usr/local/sbin/named
-u
202
-t
/var/named
Para que um ambiente chroot possa funcionar corretamente em um diretrio especfico (por
exemplo, /var/named), voc ter de criar um ambiente que inclui tudo o que o BIND precisa
para ser executado. Do ponto de vista do BIND, o diretrio /var/named a raiz do sistema
de arquivos. Ao contrrio de verses anteriores do BIND, voc normalmente no precisar
compilar o BIND estaticamente nem instalar bibliotecas compartilhadas sob a nova raiz. No
entanto, dependendo do seu Sistema Operacional, voc necessitar criar alguns arquivos,
tais como /dev/zero, /dev/random, /dev/log e /etc/localtime.
nomes que suporte esse novo protocolo. Foi criado um novo registro que armazena
endereos no formato do IPv6.
11 AAAA.
Um novo domnio foi criado para a resoluo de reverso, descrito na RFC 3152.
11 ip6.arpa.
Dois tipos de consultas podem ser realizadas em um DNS:
11 Resoluo de nomes.
11 Resoluo de endereo reverso.
Com o desenvolvimento do IPv6, surge a necessidade de se prover um servio de nomes que
suporte esse novo protocolo. Para isso, foi criado um novo registro que armazena endereos
no formato do IPv6, o AAAA. Esto em fase de desenvolvimento novos tipos de registros
que facilitaro a manuteno desse servio. Alm disso, um novo domnio foi criado para a
Captulo 1 - DNS
21
Como servidor de nomes, podemos utilizar o BIND verso 9, cuja implementao a mais
robusta. Dois tipos de consultas podem ser realizadas em um DNS:
11 Resoluo de nomes: name to address lookups (forward lookups);
11 Resoluo de endereo reverso: address to name lookups (reverse lookups).
Resoluo de Nomes
Para Resoluo de Nomes (forward lookups), usado o tipo AAAA. Os registros AAAA so
paralelos e semelhantes aos Registros A no IPv4. Em um nico endereo possvel especificar um endereo IPv6 completo. Por exemplo:
www.ipv6.br.
IN A
200.160.4.22
Passamos, assim, a responder pelo reverso do bloco que foi cedido. Tal prefixo j deve ter
sido delegado pelo provedor de endereos IPv6, da mesma forma como ocorre na delegao
de subdomnios.
A forma como se declara o registro reverso semelhante ao IPv4, ou seja, comeando pelo
ltimo dgito hexadecimal do endereo, e denominado de nibble format.
Arquivo: 2001:12ff:0000.ip6.arpa
22
$TTL 86400
@
IN
SOA
ns.ipv6.br.
root.ipv6..br. (
2001112201
IN
NS
3H
; refresh
15M
; retry
1W
; expiry
1D)
; minimum
ns.ipv6.br.
DNSSEC
11 Domain Name System SECurity Extensions (DNSSEC) tem por objetivo adicionar mais
Captulo 1 - DNS
11 Para que esses servios possam ser ativados, o DNSSEC necessita que todas as solicita-
22 NSEC.
23
Para que esses servios possam ser ativados, o DNSSEC necessita que todas as solicitaes
sejam assinadas digitalmente, usando uma ou mais chaves privadas e um algoritmo assimtrico de criptografia. Novos Registros de Recursos (RRs) passam a ser criados durante o
processo de assinatura digital, usando o utilitrio dnssec-signzone.
11 DNSKEY: armazena as chaves pblicas utilizadas para a assinatura do domnio;
11 RRSIG: armazena as chaves privadas utilizadas para a assinatura dos Rrset;
11 Delegation Signer (DS): ponteiro para a prxima cadeia de confiana;
11 Next Secure (NSEC): permite autenticar uma resposta negativa.
DNSKEY
um Resource Record que armazena a chave pblica da zona de autoridade.
exemplo.com.
900
IN
DNSKEY 256 3 5 (
AwEAAeZPN2yMs9q6kgYjFUblEwjCnWWcPq+TGcJrD5ga
XXAbP5MAqIkgZ5J4TU1mmpL1A8gMfd/wUmBkVipXR8FK
HRajBZSRfgeKnKaQtrxNZ32Ccts2F6Ylv9WaLXtiqebg
OZtuJFpQr6pnIt/FoOI+I7BUSNrX28VTq4jXu/qTrmM/ ) ; key id = 62745
RRSIG
um Resouce Record que contm a assinatura de um RRset (conjunto de RR com o mesmo
nome de domnio, classe e tipo) especfico de uma determinada chave DNSKEY. Possui uma
validade inicial e final.
exemplo.com.
de confiana entre um domnio e seus subdomnios. Indica que a zona delegada est assinada e qual a chave que foi utilizada.
O Registro de Recurso DS um ponteiro para a cadeia de confiana, que garante a autenticidade das delegaes de uma zona at um ponto de confiana.
exemplo.com. IN DS 817 5 1 EAEC29E4B0958D4D3DFD90CC70C6730AD5880DD3
24
domain:
owner:
rnp.br
Associao Rede Nacional de Ensino e Pesquisa
ownerid:
003.508.097/0001-36
BR
owner-c:
RCO217
admin-c:
NES
tech-c:
FRK16
billing-c: RCO217
nserver:
nsstat:
20120216 AA
nslastaa:
20120216
nserver:
nsstat:
20120216 AA
nslastaa:
20120216
nserver:
nsstat:
20120216 AA
nslastaa:
20120216
dsrecord:
dsstatus:
20120216 DSOK
dslastok:
20120216
created:
before 19950101
changed:
20111125
status:
published
Implementao do DNSSEC
11 Utilizar o aplicativo dnssec-keygen para a gerao das chaves do domnio.
Captulo 1 - DNS
25
O comando vai gerar um novo arquivo de zona com a extenso .signed. O perodo de validade das chaves de 30 dias e as chaves devero ser revalidadas antes de sua expirao.
Para isso, altere o serial no registro SOA e repita o processo.
3. Atualizar o arquivo named.conf para referenciar o novo arquivo de zona.
zone exemplo.com{
type master;
file db.exemplo.com.br.signed;
};
4. Reiniciar o Bind.
5. Adicionar o DS no site do registro.br.
$ cat dsset-exemplo.com | head -1
exemplo.com. IN DS 817 5 1 EAEC29E4B0958D4D3DFD90CC70C6730AD5880DD3
Copiar os dados de Key Tag e Digest do arquivo dsset-exemplo.com para a interface no site do
registro.br
6. Aguardar a nova publicao no site do registro.br.
Exerccio de fixao 3 e
DNSSec
So vantagens de se implementar o DNSSEC:
( ) Fornece autenticao da origem da informao.
( ) Evita ataque do tipo DDOS.
( ) Evita ataques do tipo Man-in-the-Middle e Spoofing.
( ) Garante a integridade dos dados DNS.
( ) Reduz o consumo de energia, sendo boa prtica na TI verde.
( ) Evitar a manipulao da memria cache (Pharming, Phishing etc.).
Domnios virtuais
11 Um domnio virtual uma entrada DNS em um servidor que responde por mltiplos
endereos IP.
11 Necessrio caso se deseje que um mesmo servidor DNS responda por vrios
endereos IP.
Exemplo:
Permitir que uma nica mquina atenda por:
11 www.virtual2.exemplo.com: 192.168.1.10
11 www.virtual2.exemplo.com: 192.168.1.20
Utiliza recurso de IP aliasing presente no kernel do Linux. Algumas vezes necessrio
recompilar o kernel e depois configurar normalmente arquivos de mapas da rede.
26
Domnios virtuais so entradas no DNS para permitir que um servidor possa responder por
mais de um nmero IP; so necessrios para que um nico servidor DNS responda a solicitaes por mais de um nmero IP.
290
IN
200.143.193.5
www.rnp.br.
290
IN
200.130.77.75
11 Separao de servidores.
11 Uso de privilgios mnimos.
11 Cuidado com informaes sensveis no DNS.
11 DNS reverso.
11 Contato no DNS.
Captulo 1 - DNS
11 Poltica de backup.
servidores escravos.
27
Separao de servidores
Uma prtica recomendvel separar a funo de servidor com autoridade (mestre ou
escravo) da funo de servidor recursivo. Isso minimiza a eficcia de ataques de envenenamento de cache DNS. Na prtica, essa separao significa que os servidores que possuem
autoridade para uma ou mais zonas respondem somente a consultas relativas a essas zonas;
por sua vez, os servidores recursivos no possuem autoridade sobre nenhuma zona DNS.
DNS reverso
Um DNS reverso mal configurado ou inexistente pode causar alguns transtornos. O primeiro
deles que muitos sites negam o acesso a usurios com endereos sem DNS reverso ou
com o reverso incorreto. Em segundo lugar, erros na configurao do DNS depem contra a
competncia tcnica da equipe de administrao de redes responsvel pelo domnio, e isso
pode vir a causar dificuldades quando for necessrio interagir com equipes de outras redes.
Contato no DNS
Cada domnio registrado em um servidor DNS possui uma srie de parmetros de configurao no registro de SOA (Start of Authority). Um desses parmetros o e-mail do responsvel pelo domnio, que muitas vezes tambm usado para comunicar problemas de
segurana envolvendo esse domnio.
Poltica de backup
A importncia dos backups na administrao de sistemas nunca pode ser minimizada. Sem
28
eles, muitos dados so simplesmente irrecuperveis caso sejam perdidos devido a uma
falha acidental ou a uma invaso.
2
Conhecer o sistema Network File System (NFS).
conceitos
mquinas remotas.
11 Compartilhamento na rede.
11 Outros sistemas:
22 Samba.
22 AFS.
22 Entre outros.
Este captulo apresenta os conceitos e a utilizao do Network File System (NFS). O NFS foi
desenvolvido para permitir que mquinas possam montar uma partio de disco em uma
mquina remota como se fosse em um disco local, permitindo o compartilhamento de
arquivos na rede. Esse captulo aborda a teoria desse servio, configurao, otimizao de
desempenho e ajustes, sendo que no final sero praticadas a configurao do servidor e do
cliente, e ainda testes de funcionamento.
H outros sistemas que proveem uma funcionalidade similar ao NFS; o Samba, por exemplo,
prov servios de arquivos aos clientes Windows; o Andrew File System (AFS), um projeto
open source da IBM que prov um mecanismo de compartilhamento de arquivos com caractersticas de performance e segurana adicional. Algumas das caractersticas do AFS foram
includas na verso 4 do NFS.
Captulo 2 - NFS
objetivos
NFS
29
11 nfs-kernel-server.
11 nfs-commom.
22 portmap.
Arquivos de configurao:
11 /etc/exports.
11 /etc/hosts.allow.
11 /etc/hosts.deny.
Para configurar um servidor NFS, necessrio fazer a configurao do servio NFS, por meio
de seus arquivos de configurao, e disparar a execuo do servio.
Exerccio de fixao 1 e
Instale o servidor NFS
Instale o servio NFS no servidor 192.168.X.1. Para isso, necessrio que estejam instalados
trs pacotes: nfs-kernel-server, nfs-common e portmap.
Arquivo /etc/exports
Lista entradas, com cada uma indicando um volume compartilhado.
O arquivo /etc/exports contm uma lista de entradas, onde cada entrada indica um volume
30
compartilhado e como cada um est compartilhado. Uma entrada desse arquivo similar a:
directory machine1(option11,option12) machine2(option21,option22)
Onde:
11 directory: indica o diretrio que se deseja compartilhar e pode ser um volume inteiro.
Ao compartilhar um diretrio, todos os diretrios a seguir dele no mesmo sistema de
arquivos tambm sero compartilhados;
11 machine1 e machine2: mquinas clientes que tero acesso ao diretrio especificado em
directory. As mquinas podem ser listadas usando endereos IP ou nomes (por exemplo,
machine.company.com ou 192.168.0.8). Usar endereos IP mais confivel e mais seguro;
11 optionXX: lista de opes para cada mquina, que descrever o tipo de acesso que a
mquina ter. Algumas opes importantes sero examinadas a seguir.
/usr/local
/home
Sendo assim, h um compartilhamento read-only para slave1 e slave2, porque eles devem
provavelmente conter os binrios. Por outro lado, alguns diretrios necessitam ser exportados read-write, se os usurios quiserem efetuar escritas sobre eles.
Ao se tratar com uma rede de grande porte, primeiro podemos acessar uma grande faixa de
mquinas especificando uma rede e uma mscara. Por exemplo, se quiser permitir o acesso
para todas as mquinas com endereos IP entre 192.168.0.0 e 192.168.0.255, ento podemos
/usr/local
192.168.0.0/255.255.255.0 (ro)
/home
192.168.0.0/255.255.255.0 (rw)
Para especificar um netgroup NIS no seu arquivo exports, simplesmente anexe o nome do
netgroup com um caractere @.
Captulo 2 - NFS
31
Outro formato que pode ser utilizado, em vez de hostnames, algo do tipo *.foo.com ou 192.168.
Algumas precaues devem ser tomadas em relao ao que pode e o que no pode ser
exportado. Primeiro, se um diretrio exportado, seus diretrios pai e filho no podem ser
exportados se eles estiverem no mesmo sistema de arquivos. Porm, a exportao de ambos
os diretrios pode no ser necessria, uma vez que listar o diretrio pai no arquivo /etc/exports
far com que todos os diretrios sejam exportados, dentro do sistema de arquivo.
32
Onde host o endereo IP de um cliente e pode ser possvel, em algumas verses, usar o
nome DNS do host, embora no seja aconselhvel. Suponha que desejamos permitir acesso
a slave1.foo.com e slave2.foo.com e que os endereos IP dessas mquinas sejam 192.168.0.1 e
192.168.0.2, respectivamente. Teramos, portanto, as seguintes entradas para /etc/hosts.allow:
portmap: 192.168.0.1, 192.168.0.2
Pr-requisitos
O servidor NFS deve ser configurado. Primeiro, preciso ter os pacotes apropriados instalados. Isso consiste principalmente em uma verso de kernel que suporte NFS e uma verso
adequada do pacote nfs-utils.
Em seguida, antes de iniciar o NFS, verifique se a rede TCP/IP est funcionando corretamente na sua mquina. Feito isso, j possvel iniciar o NFS e execut-lo aps reboot da
mquina, pois os scripts de inicializao j detectam que o arquivo /etc/exports foi configurado e inicializar o NFS. Se no funcionar corretamente, alguns daemons precisaro ser
inicializados para executar os servios NFS.
Captulo 2 - NFS
Iniciando o portmapper
33
tcp
111 portmapper
100000
udp
111 portmapper
...
Para fazer isso, consulte o portmapper com o comando rpcinfo -p para verificar os servios
Administrao de Sistemas Linux: Servios para Internet
34
port program
ver
proto port
100000
2 tcp
111
portmapper
100003 3
100000
2 udp
111
portmapper
100024 1
100011
1 udp
749
rquotad
100024 1
100011
2 udp
749
rquotad
300019 1
100005
1 udp
759
mountd
300019 1
100005
1 tcp
761
mountd
100021 1
100005
3 tcp
771
mountd
100021 3
100005
2 tcp
766
mountd
100021 4
100005
3 udp
769
mountd
100021 1
100005
3 tcp
771
mountd
100021 3
100003
2 udp
2049 nfs
100021 4
/mnt/home
Antes de comear, deve-se ter certeza de que o cliente tem suporte para montagem NFS.
Se estiver sendo usado o kernel com o sistema de arquivos /proc, possvel verificar o
arquivo /proc/filesystems e ter certeza de que h uma linha contendo NFS. Se no, digite
insmod nfs para ter certeza de que o NFS foi compilado como um mdulo; caso contrrio, necessrio construir ou fazer download de um kernel com suporte para NFS.
Para usar uma mquina como cliente NFS necessrio que o portmapper esteja rodando
nela. Para usar o controle de acesso de arquivos NFS, ser necessrio tambm que rpc.statd
e rpc.lockd estejam rodando no cliente e no servidor. Distribuies mais recentes iniciam
esses servios por default, em tempo de boot.
Com portmap, lockd e statd executando, o administrador deve ser capaz de montar o
diretrio remoto de seu servidor da mesma forma que montado um disco local, com o
comando mount. Suponha que um dado servidor chamado master.foo.com e que queremos
montar o diretrio /home em slave1.foo.com. Basta digitar:
# mount master.foo.com:/home /mnt/home
O diretrio /home em master aparecer como diretrio /mnt/home em slave 1 (do ltimo exemplo).
Montagem em tempo de boot: o tipo de sistema de arquivos tm de ser NFS, e dump e fsck
devem ter valor zero.
Modos de falha:
11 Soft:
22 Se um arquivo falha, o cliente NFS reportar erro;
Captulo 2 - NFS
35
mountpoint
fs-type
options
dump fsck
...
master.foo.com:/home /mnt
nfs
rw
...
Se estiver sendo usado um automounter como amd ou autofs, as opes nos campos correspondentes das listagens do mount seriam similares, se no idnticas.
Opes de montagem
H vrias opes a considerar em relao forma pela qual o cliente NFS manipula uma
falha (crash) no servidor ou queda da rede. Existem dois modos de falha distintos:
11 Soft: se um arquivo falha, o cliente NFS reportar um erro para o processo na mquina
cliente requisitando o acesso ao arquivo. No se recomenda esse tipo de configurao,
porque pode causar corrupo de arquivos e perda de dados;
11 Hard: o processo no pode ser interrompido ou encerrado, a menos que isso seja especificado, aps uma queda no servidor. Quando o servidor NFS voltar ao estado on-line, o
programa continuar do ponto em que parou. Recomenda-se o uso dessa configurao.
Considerando o exemplo anterior, a entrada fstab seria:
# device
mountpoint fs-type
options
dump fsck
...
master.foo.com:/home /mnt/home nfs
rw,hard,intr 0
...
36
11 Vantagem: TCP funciona melhor do que UDP em determinadas redes. Quando se usa
TCP, um pacote descartado pode ser retransmitido sem a retransmisso do pedido RPC
inteiro, resultando em melhor desempenho. Em adio, TCP manipular diferenas de
velocidade de rede melhor do que UDP, devido ao fluxo de controle bsico no nvel de
rede;
11 Desvantagem: TCP no um protocolo stateless como o UDP. Se o servidor parar no
meio de uma transmisso de pacotes, os compartilhamentos sero desmontados e
remontados. O overhead gerado pelo protocolo TCP resultar em menor performance do
que UDP sob condies ideais de rede, mas o custo no crtico.
Duas opes do comando mount timeo e retrans controlam o comportamento de pedidos
UDP quando o cliente sofre timeouts devido aos pacotes descartados, congestionamento de
rede e assim por diante.
11 Opo -o timeo: permite a designao do tempo, em dcimos de segundo, que levar
at que o cliente decida que no vai esperar uma resposta do servidor e tentar enviar o
pedido novamente. O valor default de 7 dcimos de segundo;
11 Opo -o retrans: define o nmero de timeouts permitidos antes de o cliente desistir e
exibir a mensagem de que o servidor no responde. O valor default de trs tentativas.
Uma vez que o cliente mostra essa mensagem, ele continuar a tentar enviar o pedido,
mas apenas uma vez antes de mostrar a mensagem de erro se outro timeout ocorrer.
Quando o cliente restabelece contato, ele estar usando os valores corretos de retrans e
mostrar uma mensagem OK no servidor.
A critrio do administrador da rede, esses valores podem ser ajustados, caso esteja havendo
quantidade excessiva de retransmisses ou se deseje aumentar o tamanho do bloco de
transferncia sem contar timeouts e retransmisses.
11 Timeout e valores de retransmisso.
11 timeo e retrans controlam o comportamento de pedidos UDP quando o cliente sofre
timeouts.
11 Nmero de instncias de nfsd.
11 A maioria dos scripts de inicializao disparam oito instncias desse daemon.
11 Pode ser modificado, via argumento, para /etc/rc.d/init.d/nfs (no Red Hat).
A maioria dos scripts de inicializao iniciam oito instncias de nfsd. No h um nmero
timo de instncias; todavia, um servidor mais pesado pode requerer mais instncias. Pode
ser utilizado pelo menos um daemon por processador, mas de quatro a oito por processador pode ser melhor.
11 async.
Captulo 2 - NFS
11 Servidor responde a pedido dos clientes assim que processado e manipulado pelo
A opo async da lista de exportao do servidor pede ao servidor que informe ao cliente
que todos os dados foram escritos para armazenamento estvel, independentemente do
protocolo usado. Para seguir um comportamento sncrono, o sistema de arquivos do servidor Linux deve ser exportado com a opo sync.
Note que especificar uma exportao sncrona resultar na situao em que nenhuma
opo ser vista na lista de exportao do servidor. Para exportar sistemas de arquivos,
podem ser usadas diferentes opes:
# /usr/sbin/exportfs -o rw,sync *:/usr/local
# /usr/sbin/exportfs -o rw *:/tmp
Exportao assncrona:
11 /proc/fs/nfs/exports.
22 Mostra a lista de opes de exportao.
11 Clientes podem explicitamente insistir em comportamento sncrono total, independente
de protocolo, usando a opo O SYNC ao abrir arquivos.
Se o kernel for compilado com o sistema de arquivos /proc, o arquivo /proc/fs/nfs/exports
tambm mostrar a lista completa de opes de exportao.
Quando o comportamento sncrono especificado, o servidor no concluir um pedido
NFSv2 at que o sistema de arquivos local tenha escrito todos os dados no disco. O servidor concluir um pedido assncrono NFS sem esse delay e retornar o status dos dados
para informar ao cliente os dados que devem ser mantidos em cache e os dados que
podem ser descartados de maneira segura. H trs valores possveis de status, definidos
em include/Linux/nfs.h:
11 NFS_UNSTABLE: os dados no foram armazenados e confirmados em armazenamento
estvel no servidor, e devem ser colocados em cache no cliente at que um pedido de con-
firmao do cliente garanta que o servidor enviou os dados para armazenamento estvel;
11 NFS_DATA_SYNC: os metadados no foram enviados para armazenamento estvel, e
devem ser colocados em cache no cliente. Uma confirmao subsequente necessria;
11 NFS_FILE_SYNC: dados e meta dados no podem ser colocados em cache, e uma confirmao subsequente no precisa ser enviada para a faixa coberta por esse pedido.
Em adio ao comportamento sncrono, o cliente pode explicitamente insistir em comportamento sncrono total, independente do protocolo, abrindo todos os arquivos com a opo
O-SYNC. Nesse caso, todas as respostas aos pedidos dos clientes vo esperar at que os
dados atinjam o disco do servidor.
Segurana e NFS
Passos para que um cliente possa acessar um arquivo em um diretrio remoto:
11 Montagem: segurana provida por /etc/exports.
11 Acesso aos arquivos: no especfico do NFS, mas parte do controle de acesso do
sistema de arquivos no cliente.
38
Com NFS, h dois passos requeridos para que um cliente ganhe acesso a um arquivo contido
em um diretrio remoto no servidor.
O primeiro passo o de montagem. O acesso montagem conseguido atravs da mquina
cliente tentando atingir o servidor. Para tal, a segurana provida pelo arquivo /etc/exports,
que lista os nomes ou endereos IP para mquinas que possam acessar o ponto de compartilhamento. Se algum for capaz de efetuar spoofing, por exemplo, poder acessar
os pontos de montagem. Uma vez que a mquina foi montada em um dado volume, seu
Sistema Operacional ter acesso a todos os arquivos naquele volume, e tambm acesso de
escrita se o volume tiver sido exportado com a opo rw.
O segundo passo o acesso aos arquivos, uma funo de controle de acesso do sistema
de arquivos no cliente, e no uma funo especializada do NFS. Uma vez que um drive
montado, as permisses do usurio e do grupo nos arquivos determinam controle de acesso.
Primeiro, editamos /etc/hosts.deny, que deve conter a linha portmap: aLL, que negar o acesso
a todos. Aps isso, execute rpcinfo -p apenas para verificar se o portmapper realmente est
lendo o arquivo /etc/hosts.deny. Os arquivos /etc/hosts.allow e /etc/hosts.deny produzem efeito
imediatamente aps salvos. No h necessidade de inicializar daemons.
Fechar portmapper para todo mundo uma medida drstica, ento podemos abri-lo novamente
Captulo 2 - NFS
editando /etc/hosts.allow, listando todas as mquinas que devem acessar servios na mquina.
39
40
3
Entender o funcionamento do servio de diretrio, do protocolo LDAP e da soluo
OpenLDAP; compreender o funcionamento, objetos e atributos; Instalao do
OpenLDAP; Execuo do servidor; Criao e manuteno da base de dados.
conceitos
Introduo
Servios de Diretrio
11 Protocolo LDAP:
22 Funcionamento
22 Estrutura da Base
22 Formato LDIF
22 Formas de conexo
Neste captulo, vamos conhecermos os conceitos de servio de diretrio e o protocolo
Lightweight Directory Access Protocol (LDAP), alm da soluo OpenLDAP, em aspectos
relacionados instalao, configurao e testes.
Na primeira parte, abordaremos o funcionamento, objetos e atributos do protocolo LDAP,
em seguida veremos como est organizada a rvore de configurao no formato cn=config e
por fim apresentaremos uma forma de importar as contas do sistema para a base do LDAP.
A execuo do servidor, bem como a criao da base, sero os objetos finais deste captulo,
onde sero colocados em prtica os conceitos adquiridos.
Servios de diretrio
O que um servio de diretrio?
Servio de diretrio X SGBDs tradicionais
DIT (Directory Information Tree)
objetivos
Servidor LDAP
41
uma base de dados especialmente desenvolvida para armazenar informaes que necessitam de um grande volume de consultas, ou seja, operaes de leitura e escrita no so
prioridade nesse tipo de base.
Diferentemente dos servios de bancos de dados tradicionais que armazenam suas informaes em tabelas, um servio de diretrio armazena suas informaes de forma hierrquica.
Essa organizao chamada de Directory Information Tree (DIT) ou rvore de Informao
do Diretrio. Apresentaremos mais detalhes sobre uma DIT no decorrer deste captulo.
Geralmente utilizamos um servio de diretrio para armazenar informaes sobre os
recursos e os usurios de uma rede de computadores. Sua principal vantagem centralizar
todas as informaes em um nico lugar, facilitando assim o trabalho dos administradores
de sistemas.
manter sua prpria base de dados para autenticao dos clientes. Consequentemente, cada
base ter sua prpria poltica de segurana, possibilitando que o usurio tenha uma senha
diferente em cada servio.
Esse cenrio terrvel para os administradores de sistemas, pois a cada incluso, alterao
ou excluso de um usurio, ser necessria a repetio dos procedimentos em todas as
bases de dados de todos os sistemas disponveis. Isso reduzir a produtividade da equipe,
alm de possibilitar brechas de segurana ao manter usurios com acesso a determinados
servios at que o processo tenha sido realizado em todas as bases de dados.
Aplicao 1
Registro de usurio
Aplicao 2
Registro de usurio
Aplicao 3
Registro de usurio
Cliente da aplicao 1
Cliente da aplicao 2
Cliente da aplicao 3
Um servio de diretrio fundamental para estruturas de sistemas distribudos. A centralizao das contas dos usurios em um nico local facilita muito a vidas dos administradores
de sistemas e permite que os usurios acessem os servios de maneira mais transparente.
Qualquer operao em um objeto do servio de diretrios ser executada uma nica vez em um
nico lugar, e todos os sistemas tero acesso os dados imediatamente. Esses dados podem ser
acessados por qualquer aplicao ou sistema que suportem comunicao padro LDAP.
42
Figura 3.1
Aplicaes
acessando bases
de dados distintas
Aplicao 1
LDAP
Cliente da aplicao 1
Aplicao 2
LDAP
Aplicao 3
LDAP
Registro de usurio
Cliente da aplicao 2
Cliente da aplicao 3
LDAP
11 Protocolo baseado no acesso a servios de diretrio X.500
Figura 3.2
Aplicaes
acessando a
mesma base de
usurios.
43
Funcionamento do LDAP
A utilizao do LDAP recomendada para aplicaes que necessitam realizar muitas consultas base, pois ele foi projetado para atender a grandes volumes de consultas em um
curto espao de tempo, aplicaes que necessitam realizar muitas operaes de escrita
provavelmente no tero um desempenho satisfatrio.
Operaes:
11 Consulta (search e compare)
11 Atualizao (add, delete, modify e modifyDN)
11 Operao e controle (bind, unbind, abandon)
O protocolo LDAP consiste em nove operaes distribudas em trs categorias: consulta;
atualizao e autenticao e controle.
Consulta:
11 search: operao de busca por um (Figura 3.3) ou mltiplos (Figura 3.4) resultados;
44
Search operation
Returned entry
Result code
Cliente LDAP
Servidor LDAP
Figura 3.3
Operao simples
de busca.
Search operation
First entry returned
Second entry returned
Nth entry returned
Cliente LDAP
Result code
Servidor LDAP
Figura 3.4
Operao de busca
com mltiplos
resultados.
Atualizao:
11 add: operao de adio de um ou mais entradas na base;
11 delete: operao de remoo de dados da base;
11 modify: operao de modificao de dados da base;
11 modify DN: operao de modificao da posio ou renomear dados na base;
Autenticao e controle:
11 bind: operao de autenticao;
11 unbind: encerra uma conexo LDAP;
11 abandon: operao de cancelamento unilateral de uma operao.
Open connection and bind
Bind result
Search operation
First entry returned
Second entry returned
Result of search operation
Cliente LDAP
Unbind operation
Servidor LDAP
Close connection
11 Objetos
22 Corresponde a um conjunto de atributos (pares chave/valor) que armazenam
informaes
22 Atributos normais
22 Atributos operacionais
11 LDAP ObjectClass
11 LDAP Schema
Uma base LDAP ou diretrio LDAP onde as informaes esto armazenadas. Essa base
deve seguir o modelo X.500, conforme mencionamos anteriormente.
Os objetos de uma base LDAP so organizados hierarquicamente, formando uma estrutura
de rvore conhecida como DIT (Directory Information Tree). Cada vrtice da DIT um objeto
e suas arestas definem a relao entre eles.
Captulo 3 - Servidor LDAP
Figura 3.5
Operao tpica
de acesso a base
do LDAP.
45
dc= rnp,dc=br
ou=Salvador
ou=Rio de Janeiro
ou=diretoria
ou=operacoes
ou=gerentes
ou=Belm
ou=funcionrios
cn=Joo da Silva
cn=Pedro Souza
Na figura 3.6 temos um exemplo de uma DIT. O vrtice mais ao topo (com o nome rnp.br)
chamado de raiz e a base da nossa rvore. Uma DIT deve ter uma nica raiz e todos os outros
objetos estaro relacionados a ela, sendo assim dizemos que a DIT uma rvore enraizada.
As arestas que ligam os vrtices nos permitem perceber a relao de hierarquia entre os
objetos. Por exemplo: vamos considerar que o nosso objetivo obter as informaes referentes ao vrtice Pedro Souza. Analisando nossa rvore percebemos que ele est abaixo
dos vrtices funcionrios, operaes, Rio de Janeiro e rnp.br, portanto, para conseguirmos chegar at o nosso alvo precisaremos passar por toda a hierarquia da nossa rvore
comeando pela raiz seguindo os vrtices at chegar ao objeto que contm os valores que
desejamos recuperar.
Outra forma de ilustrar essa organizao fazer uma comparao com o sistema de arquivos
do Linux, onde todas as informaes esto organizadas debaixo de uma nica raiz. Organizando nossa DIT como uma rvore de diretrios ela ficara semelhante imagem a seguir:
rnp.br
|__ Salvador
46
|__ operacoes
|__ gerentes
|__ funcionarios
|__ Belem
|
|__ diretoria
Uma DIT pode refletir a organizao poltica, geogrfica e/ou organizacional da empresa ou
instituio, sendo uma prtica muito comum basear-se em nomes j existentes, como os
domnios de DNS, para definio dos nveis mais bsicos da hierarquia.
Figura 3.6
Exemplo de uma
rvore de diretrio.
Cada vrtice da nossa rvore pode representar uma pessoa, unidade organizacional, impressora, documento, grupo de pessoas ou qualquer outra coisa. Essa representao geralmente
chamada de registro ou objeto e corresponde a um conjunto de atributos (pares chave/valor)
que armazenam informaes que permitem caracterizar essa representao.
Existem dois tipos de atributos:
11 Atributos normais: atributos que caracterizam o objeto, como por exemplo:
displayName, mail etc.;
11 Atributos operacionais: so utilizados pelo servidor para funcionalidades operacionais
e/ou administrativas, como por exemplo: armazenar a data de criao de um objeto.
Esses atributos normalmente no so exibidos nos resultados das consultas.
LDAP ObjectClass
Determina as caractersticas de um objeto, ou seja, corresponde ao conjunto de atributos que ele pode ter. Todo objeto criado a partir de uma ou mais objectClasses. Uma
objectClass pode ser derivada de outra objectClass, que por sua vez tambm pode ser
derivada de outra objectClass. Dessa forma, podemos ter uma hierarquia de classes com
superclasses e subclasses que facilitam o nvel de abstrao para a criao dos schemas.
LDAP Schema
Contm todas as definies de objetos e atributos que podem ser utilizados pelo servidor
LDAP. aqui que so definidos quais atributos so obrigatrios e quais so opcionais em
uma determinada classe, se um atributo deve receber uma string ou um nmero inteiro,
quais os critrios de pesquisa podem ser utilizados para um determinado atributo etc.
11 cn=Pedro Souza
11 ou=Rio de Janeiro
11 ou=funcionrios
Exemplos de RDNs:
47
Formado pela concatenao do atributo RDN do objeto desejado mais os atributos RDN
de todos os objetos imediatamente anteriores at a raiz da base
11 Analogia com o sistema de arquivos do Linux:
22 RDN = caminho relativo de um arquivo
22 DN = caminho absoluto de um arquivo
O Distinguished Name ou DN a forma de identificao de um objeto em relao a toda
base do LDAP. Ele no um atributo do objeto, mas formado a partir da concatenao do
seu prprio atributo RDN seguido por todos os atributos RDN dos objetos superiores at
a raiz da rvore. Por exemplo: vamos voltar figura 3.6 onde escolhemos o vrtice Pedro
Souza, o RDN desse objeto cn=Pedro Souza, o objeto imediatamente superior possui o
RDN ou=funcionarios, o objeto imediatamente superior ou=funcionarios possui o RDN
ou=operacoes, o objeto imediatamente superior possui o RDN ou=Rio de Janeiro e por fim o
objeto imediatamente superior a raiz da nossa rvore. Se juntarmos todos esses atributos
RDN teremos o DN no nosso objeto: cn=Pedro Souza,ou=funcionarios,ou=operacoes,
ou=Rio de Janeiro,dc=rnp,dc=br.
Exemplos de DNs:
11 ou=Salvador,dc=rnp,dc=br
11 cn=funcionarios,ou=operacoes,ou=Rio de Janeiro,dc=rnp,dc=br
Podemos notar que o DN representado de baixo para cima na nossa rvore, ou seja, aps
localizarmos o objeto que desejamos identificar devemos seguir as arestas que o ligam at a
raiz da nossa DIT dessa forma conseguimos montar o caminho para chegar ele.
Para facilitar o entendimento podemos fazer uma analogia ao sistema de arquivos do Linux, onde:
11 RDN: caminho relativo de um arquivo, exemplo: resolv.conf;
11 DN: caminho absoluto de um arquivo, exemplo: /etc/resolv.conf.
dc= rnp,dc=br
RDN: dc=rnp,dc=br
DN: dc=rnp,dc=br
ou=Rio de Janeiro
RDN: ou=Rio de Janeiro
DN: ou=Rio de Janeiro,dc=rnp,dc=br
ou=operacoes
RDN: ou=operacoes
DN: ou=operacoes,ou=Rio de Janeiro,dc=rnp,dc=br
ou=funcionrios
RDN: ou=operacoes
DN: ou=funcionrios,ou=operacoes,ou=Rio de Janeiro,dc=rnp,dc=br
cn=Pedro Souza
RDN: ou=operacoes
48
Figura 3.7
Exemplos de DN
e RDN.
Podemos utilizar qualquer atributo para determinar o RDN de um objeto, ficando a cargo
do administrador definir qual ser o mais indicado para cada caso. muito importante que
o RDN seja um atributo com valor nico para aquele ramo da rvore. Em caso de dvida
sobre qual atributo usar, recomendado utilizar algum atributo definido como obrigatrio
no schema. Existem casos em que possvel combinar dois ou mais atributos, formando um
multi-valued RDN.
Exemplo DN:
dn: cn=Pedro Souza+uid=psouza,ou=funcionarios,ou=operacoes,ou=Rio de
Janeiro,dc=rnp,dc=br
LDIF
Formato utilizado para comunicao com o diretrio LDAP
Arquivo LDIF simples com duas entradas, onde cada nova entrada deve ser separada da
entrada anterior por uma linha em branco.
dn: ou=Salvador,dc=rnp,dc=br
objectclass: top
objectclass: organizationalUnit
ou: Salvador
dn: cn=Pedro de Souza,ou=funcionarios,ou=operacoes,ou=Rio de
Janeiro,dc=rnp,dc=br
objectclass: person
objectclass: organizationalPerson
cn: Pedro de Souza
sn: Souza
uid: psouza
objectclass: top
49
Quando um valor possuir algum caractere especial, o nome do atributo dever possuir mais
um caractere :, seguido do valor do atributo codificado em base64.
Exemplo:
dn: uid=jsilva,ou=funcionarios,ou=operacoes,ou=Rio de Janeiro,dc=rnp,dc=br
objectClass: top
objectClass: account
objectClass: posixAccount
uid: jsilva
cn: Sm/Do28gZGEgU2lsdmEK
#cn: Joo da Silva
userPassword: {crypt}X5/DBrWPOQQaI
loginShell: /bin/bash
uidNumber: 1010
gidNumber: 1010
homeDirectory: /home/jsilva
Ao analisar esses exemplos, comeamos a identificar os atributos que sero utilizados pelo
nosso servidor LDAP. Vamos comentar com mais detalhes o ltimo exemplo.
11 Linha 1: Apresenta o Distinguished Name. atravs dele que conseguimos identificar de
maneira nica o objeto em nossa rvore. O atributo escolhido para o RDN foi o uid;
11 Linhas 2, 3 e 4: Descrevem quais so as objectClasses do nosso objeto, ou seja, so elas
que vo determinar quais sero os atributos que poderemos utilizar para caracterizar
nosso objeto;
11 Linha 5: Identificador do usurio UID;
11 Linha 6: Common Name, est codificado em base64, pois possui caracteres especiais;
11 Linha 7: Toda linha que comea com o caractere # ser ignorada;
11 Linha 8: Contm o hash da senha do usurio;
11 Linha 9: Define o shell do usurio;
11 Linha 10: Deve possuir um valor inteiro para identificao do usurio, equivalente ao UID
do Linux;
Administrao de Sistemas Linux: Servios para Internet
11 Linha 11: Deve possuir um valor inteiro para identificao do grupo primrio do usurio,
50
Protocolo
Transporte
ldap:///
LDAP
ldaps:///
ldapi:///
LDAP
Conforme mencionamos anteriormente o servidor LDAP utiliza a porta 389 TCP para
conexes sem criptografia e a porta 636 para conexes com SSL, entretanto caso o servidor
tenha sido configurado em uma porta diferente da padro devemos adicionar o caractere
: aps o nome/IP do servidor seguido do nmero da porta que dever ser utilizada para a
conexo, exemplo: ldap://192.168.0.1:123 ou ldaps://192.168.0.1:321.
Para conexes atravs de socket (IPC) o path completo do arquivo deve ser codificado e
informado na URL. Vamos supor que o socket corresponda ao arquivo /var/run/slapd/ldapi,
nesse exemplo a URL de conexo ser conforme exibida abaixo:
ldapi://%2var%2run%2slapd%2ldapi
Existem vrias formar de converter um PATH em uma URL vlida, vamos citar um exemplo
utilizando o perl:
perl -MURI::Escape -e print uri_escape(/var/run/slapd/ldapi);
Agora basta utilizar o caminho codificado na hora de realizar a conexo com o servidor:
51
52
4
Entender melhor o funcionamento dos schemas e das classes de objetos, ativar
mdulos, habilitar o uso de criptografia na comunicao entre o cliente e o servidor,
conhecer os comandos para manipulao e configurao da base e conhecer alguns
clientes grficos.
conceitos
Schemas
Obtendo informaes sobre os schemas carregados no servidor.
11 Primeiro passo
# slapcat -b cn=config| grep ^dn
11 Segundo passo
# slapcat -b cn=config -a cn={0}core
Para adicionar informaes base precisamos saber quais so os atributos que podem ser
utilizados para caracterizar nossos objetos, conforme mencionamos no captulo anterior, os
schemas so responsveis por definir como as informaes podero ser armazenadas na
nossa base. Para sabermos quais atributos podemos utilizar devemos consultar os schemas
que esto carregados no nosso servidor.
O primeiro passo utilizar o comando slapcat para listar o DN de todos os schemas carregados.
# slapcat -b cn=config| grep ^dn
objetivos
LDAP Avanado
Classes de objetos
11 Criadas pela diretiva olcObjectClasses
54
Atributos
11 Criados pela diretiva olcAttributeTypes
EQUALITY caseIgnoreMatch
SUBSTR caseIgnoreSubstringMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{32768})
SUP name)
55
11 SUP: indica qual o atributo imediatamente superior. Essa opo permite criar uma hierarquia de atributos. Dessa forma, o atributo herda as caractersticas do atributo name.
Podemos criar nossos prprios schemas para uma base LDAP. Entretanto, essa
escolha deve ser feita com muito critrio, pois ferramentas que no conhecem os
schemas que criamos no vo conseguir manipular os objetos corretamente.
Gerenciando schemas
11 Instalar novos schemas:
O modelo de configurao cn=config ainda no possui suporte a excluso dos schemas carregados sem interromper o servio. Para remover um schema, ser necessrio parar o servidor e
excluir os arquivos correspondentes ao schema. O diretrio que contm os arquivos referentes
aos schemas carregados geralmente /diretorio_de_instalacao/ldap.d/cn=config/cn=schema.
Debian/Ubuntu
# cd /etc/ldap/ldap.d/cn\=config/cn\=schema
RedHat/CentOS
# cd /etc/openldap/ldap.d/cn\=config/cn\=schema
Exclua o aquivo ldif correspondente ao mdulo que deseja remover e em seguida inicie o
servidor.
# rm cn={idx}novo-schema.ldif
Mdulos
Funcionalidades adicionais podem ser carregadas em mdulos
O atributo olcModulePath contm a localizao dos mdulos no disco
Carregados atravs do atributo olcModuleLoad
O OpenLDAP um servidor que possui diversas funcionalidade organizadas em mdulos
que podem ser carregadas conforme a necessidade do administrador. Na rvore do diretrio os mdulos ficam organizados em cn=config,cn=modules. O atributo olcModulePath
define a localizao dos mdulos no disco, geralmente em /usr/lib/ldap, e os mdulos so
adicionados a partir de arquivos LDIF conforme o exemplo a seguir:
dn: cn=module{0},cn=config
changetype: modify
add: olcModuleLoad
olcModuleLoad: nome-do-modulo
56
Manipulao da base
Comandos para manipulao da base
11 slaptest
11 slapcat
11 slapadd
11 slappasswd
11 slapindex
11 ldapsearch
11 ldapadd
11 ldapmodify
11 ldapdelete
11 ldapmodrdn
Saber manipular as informaes da base LDAP uma tarefa muito importante para um
administrador de sistemas e nem sempre temos ferramentas grficas para nos auxiliar
nessa tarefa. Eis os principais comandos disponveis no Linux para manipulao das informaes da base LDAP:
slaptest: utilizado para verificar a configurao do servidor openldap. Verifica tanto um
arquivo (formato antigo) quanto o diretrio cn=config(formato novo). Esse comando muito
til quando temos de fazer modificaes diretamente na base do servidor ou para realizar a
migrao do modo de configurao slapd.conf para o modo cn=config.
Testando a configurao de um arquivo:
# slaptest -f /etc/ldap/ldap.conf
slapcat: gera um dump da base do servidor no formato LDIF. O parmetro -b permite escolher o sufixo da base que ser utilizado, e o parmetro -a permite o uso de filtros.
# slapcat -b cn=config
# slapcat -a (uid=aluno)
slapadd: adiciona novos objetos diretamente na base do LDAP, no precisando que o servidor esteja no ar. Pode receber um arquivo LDIF como entrada ou ler a partir da entrada
padro. Esse comando geralmente s est disponvel no servidor.
-h permite definir qual ser o algoritmo de criptografia da senha valores vlidos para o
parmetro -h: {CRYPT}, {MD5}, {SMD5}, {SSHA} e {SHA}.
Exemplos:
# slappasswd -h {SHA} -s minhasenha
slapppasswd: utilitrio para gerar senhas para serem utilizadas em arquivos LDIF. A opo
57
Exemplos:
# slapindex
# slapindex uid
ldapsearch: ferramenta para realizar pesquisas na base do servidor LDAP. Pode retornar
um ou mais objetos e possui uma srie de opes para criao dos filtros de pesquisa, ordenao, definio de escopo, verso do protocolo etc.
Exemplos:
Listando todos os objetos a seguir de ou=usuarios, dc=empresa, dc=com, dc=br
# ldapsearch -D cn=admin,dc=empresa,dc=com,dc=br -b ou=usuarios,dc=empresa,dc=c
om,dc=br -W
ldapmodify: permite realizar modificaes nos objetos da base. Recebe um arquivo LDIF
como parmetro ou l a partir da entrada padro. Se for usando com o parmetro -a tem a
mesma funo do comando ldapadd.
dn: uid=aluno,ou=usuarios,dc=empresa,dc=br
changetype: modify
58
replace: mail
mail: novoemail@dominio.com.br
Caso o arquivo LDIF tenha mais de uma modificao, elas devem ser separadas por
uma linha em branco.
ldapdelete: exclui um objeto da base do LDAP.
# ldapdelete uid=aluno,ou=usuarios,dc=empresa,dc=com,dc=br
Gerenciamento de Logs
11 Registra os logs via syslogd utilizando a facilidade LOCAL4
Nmero
Hexa
Logname
Descrio
-1
0xFFFF
any
0x0000
0x1
trace
0x2
packets
0x4
args
0x8
conns
Gerenciamento da conexo
16
0x10
BER
32
0x20
filter
64
0x40
config
128
0x80
ACL
59
Nmero
Hexa
Logname
Descrio
256
0x100
stats
512
0x200
stats2
1024
0x400
shell
2048
0x800
parse
4096
0x1000
cache
8192
0x2000
index
16384
0x4000
sync
32768
0x8000
none
Cliente LDAP
Para acessar os servios LDAP, o cliente pode utilizar os trs tipos de autenticao:
11 Annima
11 Simples
11 SASL
Para acessar os servios LDAP, o cliente deve se autenticar informando suas credenciais.
Aps esta etapa a aplicao direciona o cliente de acordo com o que ele pode ver e fazer.
No LDAP, a autenticao pode ser de trs tipos: annima, simples e SASL.
11 Annima: quando o cliente que envia um pedido de autenticao sem fazer um bind.
Ser tratado como um cliente annimo;
11 Simples: consiste em enviar ao servidor LDAP o DN do cliente e sua senha (no criptografada);
11 SASL (Simple Authentication and Security Layer): especifica um protocolo cujos dados
sero transferidos entre o cliente e o servidor utilizando canais encriptados, como SSL,
60
22 Instalao
22 Configurao
11 NSS Name Service Switch
22 Instalao
22 Configurao
O PAM (Pluggable Authentication Modules) um conjunto de bibliotecas que so utilizadas
pelas aplicaes para autenticar os usurios no Linux, e o NSS (Name Service Switch) uma
interface que determina onde as bases de dados para autenticao sero obtidas. Precisaremos instalar e configurar os esses pacotes com suporte ao LDAP.
Debian/Ubuntu
# apt-get install libpam-ldap libnss-ldap
Um assistente ser executado logo aps a instalao dos pacotes. Responda as perguntas
de acordo com a configurao do seu ambiente.
Exemplo:
11 LDAP URI: ldap://192.168.0.1
11 DN da base: dc=empresa,dc=com,dc=br
11 Verso do protocolo suportada: 3
11 A base do LDAP necessita de login: no
11 Conta de administrador do LDAP: cn=admin,dc=empresa,dc=com,dc=br
11 Senha: senhasecreta
RedHat/CentOS
# yum install openldap openldap-clients nss-pam-ldapd
Aps a instalao, devemos executar o comando authconfig-tui, que vai iniciar uma interface
para auxiliar a configurao do cliente.
# authconfig-tui
account
password
try_first_pass
optional pam_ldap.so
RedHat/CentOS
auth
sufficient
pam_ldap.so use_first_pass
account
password
session
optional pam_ldap.so
session
61
Debian/Ubuntu
/etc/pam.d/common-session
RedHat/CentOS
/etc/pam.d/system-auth
ldap files
group:
ldap files
shadow:
ldap files
Dessa forma, o sistema vai consultar primeiro as informaes do servidor LDAP. Caso no
encontre, realizar a busca no sistema de arquivos do Sistema Operacional.
Utilize o comando getent para verificar se as configuraes funcionaram corretamente.
Como resultado deve aparecer uma relao com todos os usurios cadastrados no LDAP
mais os usurios locais. Para que a consulta seja somente aos usurios do LDAP basta
remover o parmetro files, entretanto se o servidor do LDAP estiver fora do ar no ser
62
pode conter dados confidenciais que no podem ser acessados por outros usurios ou ser
utilizado para controlar o acesso a um determinado servio. O acesso indevido a essas informaes pode causar grandes problemas para uma empresa ou instituio.
Um recurso que pode ser implantado para melhorar a segurana do sistema o uso de uma
lista de controle de acesso: ACLs no servidor LDAP, que permite controlar o que, quem e
como os dados podem ser acessados.
Sintaxe:
access to <o que> [ by <quem> [
<acesso> ] [ <controle> ] ]+
by self write
by annonymous auth
by dn=cn=admin,dc=empresa,dc=com,dc=br write
by * none
Devido ordem de
interpretao das ACLs,
crie suas regras mais
restritivas primeiro e
depois siga com as
menos restritivas.
acesso: read
Essa ACL determina que todos os usurios tero acesso apenas de leitura aos objetos da
base. Uma soluo bem interessante para consultas genricas realizadas ao servidor.
Observe que as ACLs possuem um nmero entre os caracteres de chaves {N}. Esse nmero
um ndice que determina a ordem em que as ACLs sero interpretadas pelo servidor. Dessa
forma, no nosso exemplo, primeiro ser interpretada a ACL com o ndice 0 e, caso a conexo
no atenda a nenhum dos critrios, ser interpretada a ACL com ndice 1.
quem: *
63
-newca
Criando os certificados
Administrao de Sistemas Linux: Servios para Internet
64
Assinando o certificado
A Autoridade Certificadora ser a responsvel pela assinatura dos certificados dos servidores.
# /usr/lib/ssl/misc/CA.sh
-sign
Certificado do servidor
# mv newcert.pem
servidor.pem
Chave do servidor
# mv newreq.pem
servidorkey.pem
Com os certificados criados e o servidor OpenLDAP configurado, podemos forar que todas
as conexes sejam criptografadas para garantir que ningum conseguir acessar a base por
um meio inseguro. O atributo olcSecurity permite essa configurao. Essa configurao deve
ser realizada no arquivo security.ldif, e conter as configuraes da base do servidor.
# vi /tmp/security.ldif
dn: cn=config
changetype: modify
add: olcSecutiry
olcSecurity: ssf=1 update_ssf=112 simple_bind=64
# ldapmodify -Y EXTERNAL -H ldapi:/// -f /tmp/security.ldif
Para testar o funcionamento, adicione o parmetro -ZZ e faa referncia ao FQDN do servidor nas consultas.
65
A configurao do SSL necessita que o servio seja habilitado para a porta do ldaps. Para
isso, preciso editar o arquivo /etc/default/slapd.
SLAPD_SERVICES=ldap:/// ldapi:///
Por
SLAPD_SERVICES=ldap:/// ldapi:/// ldaps:///
66
Modicaes de cliente
Atualizaes
Servidor 1
Servidor 2
master
slave
leitura
leitura
e escrita
Cliente
Figura 4.1
Replicao
Master x Slave.
Consultas
Provedor B
Replica
Provedor A
Replica
L
Escreve
Replica
Figura 4.2
Replicao
Master x Master.
Cliente
Provedor C
L e escreve
Diretrios distribudos
Esse modelo de replicao permite maior flexibilidade ao administrador. Alm de criar uma
cpia da base em outros servidores, podemos determinar quais informaes devem ser
replicadas para cada um. Para configurar esse modelo de replicao, necessrio utilizar o
Ferramentas grficas
Ferramentas grficas auxiliam a administrao da base do LDAP.
11 Apache Directory Studio
11 Phpldapadmin
11 LDAP Admin
67
Como vimos at agora, a administrao da base do LDAP um pouco trabalhosa, pois precisamos criar arquivos LDIF para realizar qualquer tipo de modificao. Nesse aspecto, as
ferramentas grficas so um recurso muito interessante, pois auxiliam os administradores
menos experientes a gerenciar a base do servidor.
11 Apache Directory Studio: mantido pela Apache Software Foundation, uma ferramenta
muito completa que permite navegar pela base de dados, possui um editor de arquivos
LDIF, editor de schemas e multiplataforma, com verses em ingls, francs e alemo;
11 Phpldapadmin: aplicao web baseada em php, que permite navegar e gerenciar o servidor LDAP. Entre as suas funcionalidades podemos destacar: permite a criao e edio
dos objetos baseado em templates, cpias recursivas, suporte a importao e expor-
Backup e Restore
11 Backup
slapcat
# slapcat > /tmp/backup.ldif
ldapsearch
# ldapsearch -D cn=admin,dc=empresa,dc=com,dc=br -w senhasecreta -b
dc=empresa,dc=com,dc=br -LLL > /tmp/backup.ldif
11 Restore
22 Indicando o arquivo que contm o backup da base
# slapadd -f /tmp/backup.ldif
68
# slapindex -v
22 Inicie o servidor do openLDAP.
# service slapd start
To importante quanto manter um servio bem configurado e funcionando ter a garantia
de recuperao contra possveis desastres. Gerenciar e monitorar a realizao do backup
uma tarefa muito importante de um administrador de sistemas. Para fazer o backup de uma
base LDAP, podemos utilizar os comandos slapcat ou ldapsearch. A sada desses comandos
ser um arquivo LDIF contendo todos os objetos da base que podero ser restaurados
quando necessrio.
Existem duas ferramentas que podemos utilizar para realizar o backup da base de dados do
LDAP, os comandos slapcat e ldapsearch.
Backup
slapcat
# slapcat > /tmp/backup.ldif
ldapsearch
# ldapsearch -D cn=admin,dc=empresa,dc=com,dc=br -w senhasecreta -b
dc=empresa,dc=com,dc=br -LLL > /tmp/backup.ldif
A principal diferena que no comando slapcat no precisamos informar o DN do administrador da base. No comando ldapsearch, usamos a opo -LLL para garantir que a sada no
possuir nenhum tipo de comentrio ou informao referente verso do LDIF gerado.
Restore
Aps certificar-se de que a base do LDAP est vazia e que o servidor no est rodando,
execute o comando slapadd indicando o arquivo que contm o backup da base.
# slapadd -f /tmp/backup.ldif
Atividade de Fixao e
Elaborando uma soluo de backup da base do LDAP
1. Crie um script que realiza o dump da base de dados, armazena o resultado em um
diretrio especfico, compacta o arquivo LDIF gerado e envia o relatrio para o e-mail do
administrador.
2. Configure o cron para que esse script seja executado todos os dias s 23:00h.
69
70
5
Aprender a instalar e configurar o servidor web Apache, configurar servidores virtuais
e o servidor web seguro, usando certificados digitais, utilizao do arquivo.htacces
e gerenciamento de mdulos no servidor web Apache.
conceitos
Introduo
Este captulo aborda os conceitos fundamentais de servidores web, como arquitetura,
esquema de funcionamento, protocolo HTTP, servidores web, servidor Apache e a instalao
e testes com o servidor Apache. Na primeira parte so apresentados os conceitos iniciais,
arquitetura e protocolo. Em seguida so abordados os recursos comuns aos diversos servidores web atualmente disponveis e, por ltimo, so apresentados os recursos do servidor
web Apache, inclusive sua instalao, configurao e testes.
Conceitos fundamentais
World Wide Web (WWW (World Wide Web):
objetivos
Servidor web
71
A internet, muitas vezes denominada World Wide Web (WWW), permite um grande e variado
trnsito de informaes, tais como textos, documentos, contedos multimdia, mensagens
etc. Umas das ferramentas mais utilizadas para o envio e a recuperao de informaes
so os servidores web, que permitem o envio de textos, mensagens, imagens e udio.
Para isso, um determinado servidor web pode usar pginas estticas, que so nada mais
do que arquivos presentes no sistema de arquivos do servidor, ou pginas dinmicas, que
so contedos gerados dinamicamente e sob demanda para o cliente que as solicita. Esta
ltima forma muito utilizada em transaes pela internet. Nesse caso, o contedo pode
ser gerado pelo prprio servidor web que atende ao pedido dos clientes, ou ento por outro
servidor acoplado que processa e repassa o contedo.
A comunicao web lida com um processo do tipo cliente/servidor. Nesse caso, um cliente
(navegador web) envia uma solicitao ao servidor web, que processa a solicitao e envia
a resposta ao cliente. A solicitao enviada pelo cliente consiste em uma URL (Uniform
Resource Locator), por exemplo: http://www.rnp.br. Essa solicitao enviada para o servidor web, que encaminha o contedo associado a esse endereo, que pode conter textos,
imagens e udio.A URL possui uma estrutura conforme ilustrada na figura 5.1.
Protocolo://
servidor
[:porta]
caminho
arquivo
11 Protocolo: indica o servio desejado, exemplosHyper Text Trasnfer Protocol (HTTP), File
Transfer Protocol (FTP), File (para um arquivo local) etc.;
11 Servidor[:porta]: representa o endereo do servidor desejado, pode ser um nmero IP
ou um Fully Qualified Domain Name (FQDN) seguido do nmero da porta. Se nmero da
porta for omitido ser considerada a porta default para o protocolo utilizado;
11 Caminho: indica o caminho no sistema arquivos do servidor;
11 Arquivo: corresponde ao arquivo desejado.
11 Protocolo:
72
Figura 5.1
Formato bsico
da URL.
11 Servidor [:porta]
11 Indica o endereo do servidor desejado.
11 Pode ser um Fully Qualified Domain Name (FQDN (Fully Qualified Domain Name):
nome da mquina, domnio e domnio de topo.
11 Ou somente o nome da mquina para acessos a partir da mesma rede.
11 Caminho:
11 Indica o caminho no sistema de arquivos do servidor web.
11 Arquivo:
11 Indica o arquivo desejado.
Por isso, necessrio que o cliente, ao buscar por determinado dado, informe o caminho completo at ele, o que usualmente feito por meio da digitao da URL no navegador, ou de um
clique em determinado link disponvel em determinada pgina da internet.O caminho indica
em qual pasta ou arquivo a partir de uma pasta raiz est o dado procurado. Essa pasta raiz
normalmente no coincide com a raiz do sistema no qual o servidor web est instalado.
Entre as vrias informaes de uma URL, usamos: protocolo, servidor, porta, caminho e
arquivo. Alguns desses dados podem ser omitidos quando digitamos a URL no navegador ou
em um link da pgina web. Logo, o acesso a determinada pgina web pode ser feito digitando, por exemplo: http://www.rnp.br:80/index.html ou www.rnp.br.
No exemplo apresentado, no foi necessrio, ao informar uma URL no navegador, passar
o protocolo, porta e arquivo. Isso possvel porque os navegadores web encaminham por
padro uma consulta utilizando o protocolo HTTP e a porta padro 80. O servidor web, por
sua vez, envia como resposta a pgina padro especificada em seu arquivo de configurao,
nesse caso, index.html.
URL / HTTP
HTML / MIME
Web Browser
Web Server
Internet
Web Browser
Web Server
Dispositivo
de arquivos
11 Servidor Web
11 Utilizam a porta TCP 80 por padro
11 Aps estabelecida uma conexo o cliente envia uma solicitao e o servidor envia
uma resposta.
11 O protocolo utilizado para comunicao o Hyper Text Transfer Protocol (HTTP)
Figura 5.2
Transferncia de
dados entre cliente
e servidor.
73
11 Cliente Web
Servidor web
Os servidores web, por padro, ficam aguardando conexes na porta 80 TCP. Aps estabelecida
a conexo o cliente envia uma solicitao e o servidor envia uma resposta. O protocolo que
define as solicitaes e respostas vlidas chamado de Hyper Text Transfer Protocol (HTTP).
Cliente web
Disponibiliza um mecanismo de busca, transferncia e apresentao de dados contidos
em servidores web. O navegador, tambm denominado browser, busca a pgina solicitada,
interpreta seu texto, seus comandos de formatao e apresenta os dados na tela.Entre os
navegadores mais conhecidos hoje esto: Google Chrome, Firefox, Internet Explorer e Safari.
Existe tambm o Lynx, um navegador de linha de comando muito utilizado em testes e/ou
em computadores sem a interface grfica instalada.
Protocolo HTTP
Hyper Text Transfer Protocol (HTTP).
74
As verses mais recentes dos principais navegadores possuem suporte para a verso 2 do
protocolo j os servidores ainda esto em fase experimental de implementao, mas j
podem ser utilizados em ambientes de testes.
O HTTP um protocolo do tipo requisio/resposta, e toda comunicao feita atravs de
mensagens no formato ASCII (texto puro). Em uma comunicao tpica, o cliente solicita um
documento ao servidor e o servidor envia ou no o documento para o cliente. O servidor
no armazena nenhuma informao de estado entre as requisies. Isso porque cada requisio completamente independente da outra.
Uma mensagem HTTP formada por uma linha inicial que determina se a mensagem uma
requisio ou uma resposta, seguida por um conjunto de linhas que compem os cabealhos, uma linha em branco (delimitador do cabealho) e por fim o corpo da mensagem
(quando houver).
Mensagens HTTP
11 Formato da mensagem:
[ linha do tipo da mensagem ]
[ linhas de cabealho ]
linha em branco
[ corpo da mensagem ]
As mensagens do protocolo HTTP podem ser de dois tipos: requisio e resposta
Requisio (request)
Mensagem enviada pelo cliente (browser) para o servidor web.
Formato:
[Request Type] espao [URI] espao [HTTP version]
Cabealhos
Mtodos (Request Types):
11 GET
11 HEAD
11 PUT
11 POST
11 DELETE
11 LINK/UNLINK
Uma mensagem de requisio enviada por um cliente tem os seguintes campos: tipo de
requisio (mtodo), uma Universal Resource Identifiers (URI), verso do protocolo, uma
mensagem em formato tipo MIME contendo os cabealhos da requisio e informaes do
cliente e contedo (quando houver).
Formato de uma requisio feita pelo protocolo HTTP:
[Request Type] espao [URI] espao [HTTP version]
Exemplo:
GET /diretorio/pagina.html HTTP/1.1
Host: www.rnp.br
User-agent: Mozilla/4.0
75
Os mtodos so utilizados tanto para solicitaes de pginas web quanto para o envio de
informaes inseridas pelos usurios nessas pginas. atravs deles que informamos ao
servidor o tipo de requisio que estamos realizando. Os principais mtodos so:
11 GET: recupera qualquer recurso identificado por uma URI disponibilizada do servidor. o
mtodo padro para requisies de contedo atravs de uma URL;
11 HEAD: idntico ao mtodo GET, entretanto no possui o corpo da mensagem na resposta;
11 PUT: solicita que o contedo da mensagem seja armazenado na URL especificada
no servidor;
11 POST: utilizado para enviar algum recurso para o servidor. Geralmente utilizado em
formulrios de pginas web;
11 DELETE: solicita que o servidor remova o recurso identificado na requisio;
11 LINK / UNLINK: conecta/finaliza a conexo existente entre dois recursos.
Cabealho (header)
Utilizados para enviar informaes adicionais
76
Respostas (response)
Quando um servidor recebe um pedido ele sempre envia uma resposta para o cliente.
Toda resposta possui um cdigo de status
11 Formato das respostas:
[HTTP version] [Status code] [Status Message]
Cabealhos
--linha em branco
Resposta
Quando um servidor recebe um pedido, ele sempre vai retornar uma resposta ao cliente. As
respostas so enviadas com uma linha de status que inclui a verso do protocolo, um cdigo
de sucesso ou erro seguido de uma mensagem do tipo MIME que contm os cabealhos e o
corpo da mensagem.
Exemplo:
HTTP/1.1 200 OK
Date: Fri, 14 Aug 2015 02:29:07 GMT
Content-Type: text/html
[ Outros cabealhos... ]
<html>... Inicio do contedo da resposta
Cdigos de status
Toda resposta sinalizada com um cdigo de status. Esse cdigo utilizado para informar
se a requisio foi atendida ou no. Os cdigos so formados por trs dgitos e divididos em
cinco classificaes. O primeiro dgito representa a classificao e os outros dois identificam
o status dentro da classificao. A tabela a seguir apresenta os principais cdigos de status
do protocolo HTTP.
1xx - Informao
3xx - Redirecionamento
100 Continue
300
Multiple Choices
101
301
Moved Permanently
2xx - Sucesso
302 Found
200 OK
303
See Other
201 Created
304
Not Modified
202 Accepted
305
Use Proxy
203
Non-Authoritative Information
306
204
No Content
307
205
Reset Content
206
Partial Content
Temporary Redirect
400
500
401 Unauthorized
501
Not Implemented
402
502
Bad Gateway
403 Forbidden
503
Service Unavailable
404
Not Found
504
Gateway Time-out
405
505
406
Not Acceptable
407
Bad Request
Payment Required
Switching Protocols
77
Request Timeout
409
Conflict
410 Gone
411
Length Required
412
Precondition Failed
413
414
415
416
417
Expectation Failed
Tabela 5.1
Principais cdigos
de status do
protocolo HTTP.
78
Resposta recebida
HTTP/1.1 200 OK
Date: Fri, 14 Aug 2015 16:29:36 GMT
Server: Apache
Etag: 1439566915-0
X-Content-Type-Options: nosniff
X-Frame-Options: SameOrigin
Content-Language: pt-br
Link: </home>; rel=canonical,</node/1>; rel=shortlink
Cache-Control: public, max-age=0
Last-Modified: Fri, 14 Aug 2015 15:41:55 GMT
Expires: Sun, 19 Nov 1978 05:00:00 GMT
Vary: Cookie,Accept-Encoding
Transfer-Encoding: chunked
Content-Type: text/html; charset=utf-8
9133
<!DOCTYPE html PUBLIC -//W3C//DTD XHTML+RDFa 1.0//EN
http://www.w3.org/MarkUp/DTD/xhtml-rdfa-1.dtd>
...
Domnio virtual
Diferentes sites so hospedados em um mesmo servidor web.
DNS resolver cada um dos endereos utilizados, para isso devendo possuir um alias
(CNAME) para cada site hospedado.
79
Servidores web
Existem vrios sistemas desenvolvidos para prover o servio web, podemos classificar
80
81
82
6
Entender o que servidor proxy, fazer a instalao e configurao do servidor Squid
na verso compilada, configurar regras de acesso ACL, emitir relatrio de acesso
internet usando SARG e ativar o servio de proxy transparente.
conceitos
Proxy
Tem por funo limitar o tipo de trfego.
objetivos
lista proibitiva, tal como sexo. Todo pacote que contiver essa palavra ser descartado,
83
impedindo o acesso a pginas que contenham contedo imprprio ou estranho s necessidades da rede, seja uma rede residencial, de empresa ou de escola.
Outra finalidade do proxy atuar como cache. Nesse caso, o servidor reserva uma rea em
memria para armazenar os contedos estticos acessados com maior frequncia pelos
usurios de rede interna. Quando o usurio busca por determinada informao, o servidor
proxy cache o entrega diretamente sem acess-lo na internet. Considere por exemplo
um grande portal de notcias da internet. A primeira pessoa a acess-lo far com que o
contedo dessa pgina fique armazenado no cache do servidor. As prximas pessoas que
acessarem essa mesma pgina, dentro do tempo de expirao programado, vo obtero
contedo do servidor, em vez do contedo da internet.
Portanto, essas duas solues apresentam, por motivos diferentes, melhoria no trfego
da rede. O proxy bloqueia o trfego considerado inadequado pela poltica de utilizao da
rede da empresa, enquanto o cache contribui para reduzir o montante de trfego no link
externo da rede.
l
Estudos prvios
realizados pela Rede
Nacional de Ensino e
Pesquisa (RNP) indicam
economia de at 35%
no trfego no link
externo. Outro estudo
indica que 17% do
trfego da internet j
acessado a partir de
web proxy cache.
Internet
Servidor Proxy
Web
A utilizao de um web proxy cache possibilita grande economia de recursos, com impacto
Administrao de Sistemas Linux: Servios para Internet
84
Figura 6.1
Funcionamento de
um proxy cache.
Aliado a esses fatores, h a ampliao constante da largura de banda por parte de empresas
e usurios domsticos, incentivando-os a utilizar servios antes inviveis. Esse cenrio gera
demanda sempre crescente de largura de banda.
Desse modo, extremamente necessrio, em especial por parte de empresas, a definio
de uma poltica de utilizao de rede em que todos os envolvidos tenham plena conscincia
do modo como devem utilizar os recursos disponibilizados. Faz-se necessrio o controle do
registro de todos os acessos, bloqueando aqueles considerados indevidos, reduzindo o uso
de largura de banda em aes estranhas s atividades da empresa, mantendo-a disponvel e
melhor preparada para a prtica de atividades legtimas.
Essa poltica tambm diminui a circulao de vrus, worms, programas piratas e
outros males que apresentam riscos s empresas.
Proxy Squid
O Squid um dos proxies mais utilizados na internet.
Mais informaes
podem ser obtidas na
pgina oficial do Squid:
http://www.squid-cache.org/.
servidor web.
85
Instalao
Debian/Ubuntu
RedHat/CentOS
# yum install squid
Configurao
O arquivo de configurao do squid.conf possui grande nmero de parmetros que podem
ser utilizados. Ao colocar o Squid em funcionamento pela primeira vez, recomendvel
incluir os parmetros aos poucos, especialmente as ACLs, justamente para que se possa
perceber a efetividade de cada um.
Nas distribuies Debian/Ubuntu, o arquivo de configurao fica localizado no
diretrio /etc/squid3, e nas distribuies baseadas em RedHat/CentOS, o arquivo est
localizado no diretrio /etc/squid.
11 http_port
11 auth_param
11 cache_mem
11 cache_dir
11 access_log
86
11 visible_hostname
11 acl
11 http_access
Principais parmetros de configurao:
11 http_port: nmero da porta utilizada pelo servidor, em geral 3128;
11 auth_param: define qual ser o mtodo de autenticao que o squid vai utilizar.
11 cache_mem: quantidade de memria RAM utilizada pelo proxy web (em MB), default 256 MB;
11 cache_dir: define vrios parmetros de cache, como tipo de armazenamento, diretrio
de cache, quantidade em MB, nmero de diretrios de primeiro nvel, nmero de diretrios de segundo nvel. Exemplo: cache_dirufs /usr/local/squid/var/cache 500 16 256;
87
11 myip: til quando o servidor possuir mais de um endereo na mesma rede, serve para
determinar atravs de qual endereo IP o servidor recebeu o pacote;
11 arp: Ethernet (MAC) address;
11 srcdomain: nome de domnio do cliente;
11 dstdomain: nome de domnio do servidor;
11 srcdom_regex: expresso regular para nome de domnio do cliente;
11 dstdom_regex: expresso regular para nome de domnio do servidor;
11 src_as: nmero do Sistema Autnomo da origem (cliente);
11 dst_as: nmero do Sistema Autnomo do destino (servidor);
11 time: data e hora;
11 url_regex: expresso regular para URL;
11 urlpath_regex: expresso regular para URL-path, no considerando protocolos e hostnames;
11 port: porta de destino do servidor;
11 myport: nmero da porta local na qual o cliente se conectou;
11 myportname: nome da porta local na qual o cliente se conectou;
11 proto: protocolo de transferncia (http, ftpetc.);
11 method: mtodo HTTP (get, post etc.);
11 http_status: cdigo de status do protocolo HTTP (200 302 404 etc.);
11 browser: expresso regular para o cabealho user-agent das requisies HTTP;
11 referer_regex: expresso regular para o cabealho http-referer das requisies HTTP;
11 ident: nome do usurio;
11 ident_regex: expresso regular para nome do usurio;
11 proxy_auth: autenticao de usurios por um agente externo;
11 proxy_auth_regex: expresso regular para autenticao de usurios por um agente externo;
11 snmp_community: string que indica o nome da comunidade SNMP;
11 maxconn: limite mximo de conexes feitas por um nico endereo IP (cliente);
11 max_user_ip: limite mximo de endereos IP que um usurio pode se autenticar ao proxy;
w
A lista completa de
elementos de ACL e
listas de acesso podem
ser encontrados em
http://wiki.squid-cache.
org/SquidFaq/SquidAcl
Baseada na URL
Fazendo o uso de expresses regulares, podemos criar uma ACL que restrinja o acesso a
URLs que casam com um determinado padro. No exemplo a seguir criaremos uma ACL que
vai negar o acesso a qualquer URL que termine com os caracteres .mp3. Isso pode ser til
para impedir o download de msicas.
acl
mp3 url_regex
-i
.*\.mp3$
mp3
Data e hora
ACL com controle de data e hora, permitindo que determinados endereos IP acessem a internet
em um intervalo de tempo determinado. Para esse exemplo precisaremos criar dois ACL
elements, o primeiro chamado usurios para determinar a origem das requisies, enquanto
o segundo, chamado almoo, definir o horrio e os dias da semana em que o acesso ser liberado. Quando o Squid avaliar regras, os pacotes recebidos da rede 192.168.0.0/24, de segunda
a sexta entre 12h00 e 13h55 sero liberados. Se os critrios dos elementos de ACL usurios e
almoo no forem satisfeitos, essa regra no ser executada, e o Squid vai avaliar a prxima
regra que nega o trfego http dos pacotes da rede 192.168.0.0/24.
acl
usuarios
acl
almoco
src
time
192.168.0.0/24
MTWHF
http_access
allow
http_access
deny
12:00-13:55
usuarios
almoco
usuarios
/etc/squid/ips-bloquados.txt
192.168.0.20
192.168.0.54
192.168.0.68
acl
bloqueados src
http_access deny
/etc/squid/ips-bloquados.conf
bloqueados
esquema
parmetros
[configuraes]
Autenticao
89
Esquemas
A diretiva auth_param responsvel pela configurao do esquema de autenticao, os
Determina o caminho completo do programa que ser utilizado para realizar a autenticao.
realm string
Texto que ser apresentado aos usurios durante a solicitao de autenticao.
90
l
No possvel utilizar a
autenticao em um
ambiente configurado
com proxy transparente. Para usufruir
dessa funcionalidade
ser necessrio que o
endereo do servidor
proxy e porta estejam
explicitamente
configurados nas
mquinas cliente.
ntlm
/usr/bin/ntlm_auth --helper-protocol=squid-2.5-ntlmssp
auth_param
ntlm
auth_param
auth_param
ntlm
keep_alive on
digest
program /usr/lib/squid3/digest_file_auth
-c /etc/squid3/
password-file
auth_param
digest
auth_param
digest
auth_param
digest
nonce_garbage_interval 5 minutes
auth_param
digest
nonce_max_duration 30 minutes
auth_param
digest
nonce_max_count 50
basic
program /usr/lib/squid3/basic_ncsa_auth
auth_param
basic
auth_param
basic
/usr/etc/passwd
basic
program /usr/lib/squid3/basic_ldap_auth -v 3 -R -b
-f uid=%s -H ldap://192.168.0.1
auth_param
basic
auth_param
basic
A diretiva auth_param apenas determina como o squid vai processar a autenticao. Para
que possa ser solicitada a autenticao do usurio, ser necessrio utilizar ACLs baseadas
em login como proxy_auth, proxy_auth_regex etc.
acl
autenticados
http_access
allow
proxy_auth
REQUIRED
autenticados
91
11 Firefox
11 Internet Explorer
11 Google Chrome
A maioria dos navegadores disponveis no mercado podem ser configurados para acessar a
internet atravs de um servidor proxy. De modo geral, por meio de uma interface de configurao, possvel informar os dados do servidor, como endereo IP e porta.
11 Mozilla Firefox: acesse o menu Editar> Preferncias> Avanado>Rede, determine
como o Firefox conecta-se internet, faa a configurao manual do proxy e, finalmente,
informe o endereo IP e porta utilizados;
11 Internet Explorer: entre no menu Ferramentas> Opes da Internet. Selecione a aba
Conexes e clique no boto Configuraes da LAN. Na janela Configuraes da Rede
Local (LAN), na sesso Servidor proxy, marque a opo para usar um servidor proxy e
informe o endereo IP e a porta utilizada pelo servidor proxy;
11 Google Chrome: acesse as configuraes do navegador atravs da URL chrome://settings.
Na opo Rede, clique sobre o boto Alterar configuraes de proxy.... O Google Chrome
utiliza as configuraes de proxy do Sistema Operacional, portanto a janela de configurao padro do sistema utilizado ser aberta para a configurao.
Proxy transparente
Resolve dois problemas:
de trfego.
92
Desse modo, o uso de proxy fica oculto, e os usurios usam-no mesmo que no queiram.
Facilita ainda a implementao da poltica de segurana, pois tira do navegador a configurao para acesso ao proxy. Todas as solicitaes feitas na porta 80 so redirecionadas para
o Squid, que pode ento controlar o trfego por meio das ACLs.
Para configurao do proxy transparente, so necessrias trs etapas:
11 Certificar-se de que o servidor Linux est com o encaminhamento de pacotes ativado
(ip_forward)
11 Certificar-se de que o Squid foi compilado/instalado com suporte ao Proxy transparente
11 Incluir as regras no Iptables
O valor 0 indica que a funcionalidade est desativada e o valor 1 indica que ela est ativada.
Para ativar durante a execuo do sistema, faa:
# echo 1 > /proc/sys/net/ipv4/ip_forward
Ou:
# sysctl -w net.ipv4.ip_forward=1
2. Certificar-se de que o Squid foi compilado e configurado com suporte ao proxy transparente:
Se o squid foi compilado, importante certificar-se de que a opo --enable-Linux-netfilter foi
utilizada; caso contrrio, ser necessrio recompilar o software adicionando essa opo. Para as
verses instaladas a partir do repositrio, essa funcionalidade j vem habilitada por padro.
Utilize o comando squid -v para verificar todas as opes que foram utilizadas na compilao
do squid.
Debian/Ubuntu
# squid3 -v
RedHat/CentOS
# squid -v
93
Redirecionadores
Ferramentas que permitem ao administrador da rede redirecionar determinadas
94
Relatrios
Ferramenta fundamental para o administrador de sistemas
Em um ambiente com o
squid configurado
como servidor proxy, o
Sarg a principal
ferramenta para
gerao de relatrios.
Sarg
Gera os relatrios baseado nos logs do servidor squid.
Instalao
A instalao pode ser feita atravs do pacote disponvel nos repositrios da distribuio ou
atravs da compilao do cdigo-fonte. Como existem distribuies que no possuem o pacote
do sarg em seus repositrios oficiais, vamos abordar a instalao a partir do cdigo-fonte.
Para instalao a partir do cdigo-fonte, ser necessrio satisfazer algumas dependncias
para prosseguir com a instalao. A mquina precisar teros pacotes:
11 Compilador gcc;
11 Bilioteca GD e arquivos de desenvolvimento (gd e gd-devel);
11 make;
11 autoconf;
11 perl-GD;
11 Servidor web.
Obtenha a verso mais recente do sarg no site oficial: http://sourceforge.net/projects/sarg/.
Descompacte o arquivo e acesse o diretrio que contm o cdigo-fonte:
# tar
# cd
zxvf sarg-versao.tar.gz
sarg-versao
install
95
Configurao
O arquivo sarg.conf contm as diretivas de configurao do Sarg. Os principais parmetros so:
LANGUAGE
Permite definir qual ser a linguagem dos relatrios gerados
output_dir
Indica o caminho onde os arquivos HTML sero gerados. Para que os relatrios fiquem disponveis atravs do navegador, esse diretrio deve ser acessvel pelo servidor web.
access_log
Especifica o caminho para o arquivo de log do squid que ser utilizado para gerar o relatrio.
Gerando os relatrios
O comando sarg gera os relatrios de acesso de acordo com o arquivo de configurao.
O parmetro -d utilizado para definir um intervalo de datas para a gerao dos arquivos
de relatrio. Exemplo:
Gera o relatrio de acesso do dia 25 de outubro de 2015.
# sarg -d 25/10/2015-25/10/2015
Todos os parmetros de execuo do sarg podem ser visualizados com o comando sarg -h.
Caso no seja especificado um intervalo de data, o sarg vai gerar o relatrio agrupando todo
o perodo de acesso registrado no arquivo de log.
Para visualizar os relatrios acesse, via browser, o diretrio configurado no parmetro
output_dir no servidor web.Exemplo:
http://192.168.0.1/squid-reports
96
l
Fique atento ao
rotacionamento dos
logs! Para relatrios
dirios, configure o
rotacionamento de logs
do squid para daily e
deixe a ltima verso
sem compactao. No
sarg configure o
parmetro access_log
para ler o arquivo de
log rotacionado. Ex: /
var/log/squid/access.
log.1 e configure o
crontab para executar
o comando sarg.
7
Projetar, instalar e configurar um servidor de correio eletrnico Postfix; Entender o
funcionamento do correio eletrnico e dos protocolos SMTP, POP e IMAP;
Conhecer os recursos da ferramenta Postfix.
conceitos
Introduo
O estudo deste captulo tem como objetivo capacitar o aluno a projetar, instalar e configurar
um servidor de correio eletrnico Postfix. Sero apresentados conceitos tericos, o funcionamento do correio eletrnico e os protocolos SMTP, POP e IMAP. Em seguida, aspectos e
recursos da ferramenta Postfix. Por ltimo, veremos a parte prtica envolvendo instalao,
configurao e testes com o servidor de correio eletrnico Postfix, no qual so incentivadas
boas prticas de configurao e administrao.
Correio eletrnico
Tambm denominado e-mail (eletronic mail).
Desenvolvido para permitir a troca de mensagens entre usurios por meio eletrnico.
Permite o envio de arquivos anexados s mensagens.
Documentos, planilhas, imagens, vdeos etc.
O correio eletrnico um dos servios mais usados na internet, permitindo que usurios
conectados em qualquer ponto da rede troquem mensagens. Atravs dessas mensagens
podem ser enviados textos e arquivos anexados, como documentos, planilhas, imagens,
vdeos e outros. uma ferramenta extremamente importante no incremento da produtividade, pois integra e aproxima os usurios com a facilitao da troca de informaes.
objetivos
97
Figura 7.1
Troca de
mensagem.
MTA1
MTA2
MUA1
Durante o processo de envio de mensagens so utilizados dois tipos de programas: de transporte e de usurio (tambm denominados respectivamente de agentes de transferncia
de mensagens e agentes de usurio). O primeiro tipo cuida do envio da mensagem entre a
origem e o destino. O segundo permite ao usurio ler e escrever suas mensagens.
Agentes de transferncia de mensagens ou Mail Transfer Agent (MTA):
11 Permitem o deslocamento das mensagens da origem ao destino;
11 So os programas (daemons) que executam no ISP (provedor de internet);
11 Exemplo Sendmail, Postfix, Qmail e Exlm.
Agentes de usurio ou Mail User Agent (MUA):
11 Permitem aos usurios ler e escrever suas mensagens;
11 So os programas de e-mail no computador do usurio: Eudora, Evolution, KMail, Outlook
e Mozilla Thunderbird.
98
MUA2
Figura 7.2
Funcionamento do
correio eletrnico.
SMTP
Figura 7.3
Protocolos
utilizados.
SMTP
POP3/IMAP
POP3/IMAP
Ao longo do processo de envio de uma mensagem, so utilizados alguns protocolos, tais como
Simple Mail Transfer Protocol (SMTP), Post Office Protocol (POP3) e Internet Message Access
Protocol (IMAP). O primeiro utilizado na transferncia de mensagens entre os MTAs, enquanto
os outros dois podem ser utilizados no envio de mensagens do MUA para o MTA e vice-versa.
O usurio, ao escrever sua mensagem, pode faz-lo desconectado da rede (off-line). Para
enviar suas mensagens, deve estar conectado rede. De maneira simplificada, podemos
afirmar que as mensagens so colocadas em uma espcie de caixa de entrada do servidor
de correio eletrnico.
O servidor de correio eletrnico fica constantemente verificando se existem mensagens a
serem enviadas. Caso a mensagem seja destinada a usurios no mesmo servidor, encaminhada a uma caixa de entrada para que sejam distribudas para os usurios. Se a mensagem
for destinada a outro servidor de correio, solicitada uma conexo com esse servidor,
sendo ento encaminhada a mensagem a ele, que analogamente coloca a mensagem em
uma caixa de entrada para posterior distribuio aos seus usurios.
Protocolo SMTP
Figura 7.4
Protocolo SMTP.
SMTP - origem
SMTP - destino
-origem estabelece uma conexo com o SMTP-destino. O SMTP-destino pode tanto ser o
um ponto (<CRLF>.<CRFL>). Aps o envio dos dados, o SMTP-destino confirma com OK.
99
Para o encerramento:
S: QUIT
R: 221 <identificao SMTP-destino> Service closing transmission channel
100
Protocolo POP3
Permite um cliente acessar as mensagens no servidor de modo simples.
Comandos POP3
Autenticao:
11 USER name; PASS string e QUIT.
Transao:
11 STAT; LIST [msg]; RETR msg; DELE msg; NOOP; RSET e QUIT.
Comandos POP3 (opcionais):
11 Autenticao: APOP name digest.
11 Transao: TOP msg n e UIDL [msg].
Respostas POP3:
11 +OK e -ERR.
101
Respostas
11 +OK: resposta positiva a comandos;
11 -ERR: resposta negativa a comandos.
102
<1896.697170952@dbc.mtview.ca.us>
C:
APOP mrose
c4c9334bac560ecc979e58001b3e22fb
S:
C:
STAT
C:
LIST
S:
S:
1 120
S:
2 200
S:
C:
RETR 1
S:
S:
S:
C:
DELE 1
S:
C:
RETR 2
S:
S:
S:
C:
DELE 2
S:
C: QUIT
S:
S:
C:
(maildrop empty)
<close connection>
Protocolo IMAP
Permite a um cliente acessar e manipular mensagens no servidor.
Atua de maneira a permitir uma manipulao da caixa postal (pastas remotas) como
se fossem pastas locais.
Permite:
11 criar; remover; renomear; verificar por novas mensagens;
11 incluir e remover flags;
11 realizar buscas em mensagens, cabealho, corpo do e-mail e outras partes.
Mensagens so identificadas por nmeros (identificador nico).
O protocolo IMAP, assim como o POP3, responsvel pela manipulao de mensagens entre
o servidor de e-mail e o cliente. O IMAP mais recente e possui mais funes que o POP3.
O POP3 foi projetado para manipular mensagens off-line a partir de um nico cliente; desse
modo, efetua o download da mensagem, que em seguida removida do servidor.
J o protocolo IMAP fornece a opo de leitura das mensagens sem necessariamente
remov-las do servidor, o que permite, entre outros recursos: a leitura das mensagens a
um computador porttil; utilizao de webmail e acesso conta de correio eletrnico por
meio de pgina web.
Fornece ainda uma srie de recursos para manipulao de mensagens no servidor, tais
como: possibilidade de criar, remover e renomear pastas; ativar ou remover marcadores
(flags); Multipurpose Internet Mail Extensions (MIME) parsing; busca e seleo de mensagens
por dados do cabealho, corpo ou anexos. Permite ainda suporte a acesso concorrente a
caixas de mensagens compartilhadas. O cliente no precisa conhecer o formato utilizado
para o armazenamento das mensagens.
Exemplo de uma transao IMAP:
11 Uma conexo IMAP consiste em uma saudao inicial seguida por iteraes feitas
entre um cliente e um servidor.
11 Essas iteraes possuem uma solicitao enviada pelo cliente e uma resposta enviada
pelo servidor.
103
Conexo estabelecida
SERVER GREETING
NOT AUTHENTICATED
AUTHENTICATED
SELECTED
LOGOUT
104
Fim da conexo
Figura 7.5
Protocolo IMAP.
105
Configuraes prvias
Para funcionar corretamente, o servio de correio eletrnico depende de configurao
adequada de:
11 Hostname:
11 Conectividade:
11 Sincronizao de relgio do sistema:
11 Log: Registro de atividades do servidor
11 DNS.
Para o funcionamento correto do servio de correio eletrnico, alguns itens do servidor
devem estar adequadamente configurados. No ajustar esses itens pode causar erros no
esperados durante a operao do sistema, como o extravio ou descarte indevido de mensagens pelo MTA de origem, intermedirio ou mesmo de destino.
Entre os itens mais importantes esto:
11 Hostname;
11 Conectividade;
11 System Time;
11 Timestamps;
11 Log;
11 DNS.
Hostname
O servidor deve possuir um endereo Fully Qualified Domain Name (FQDN).
ando uma consulta reversa ao DNS, descartando a mensagem cuja origem no foi adequa-
106
damente confirmada.
Conectividade
O firewall deve permitir trfego nas portas utilizadas pelo servidor:
rsyslog
Log: configurar a ferramenta para anlise e diagnstico de problemas.
-/var/log/messages
mail.* -/var/log/maillog
DNS
Servidor de e-mail deve estar registrado no DNS do domnio.
11 Isso possibilita que qualquer servidor na internet possa enviar mensagens a esse
servidor.
Trs tipos de entradas que devem estar presentes no DNS:
11 A: associa um FQDN a um endereo IP.
11 PTR: associa IP ao FQDN; utilizado para autenticar mensagens.
11 MX: informa o servidor responsvel pelas mensagens nesse domnio
extremamente importante estar com o servio DNS do domnio funcionando corretaendereo do servidor de destino, assim como o servidor de destino deve efetuar uma confirmao da origem por meio de uma consulta reversa ao DNS.
O servidor DNS do domnio deve possuir entradas associadas ao servidor de e-mail do
domnio. Isso necessrio porque, na maior parte dos casos, o MTA do destino efetuar
uma autenticao da origem verificando a autenticidade do FQDN informado. Logo, o DNS
deve ser capaz de informar os servidores responsveis por mensagens no domnio.
Muitos sistemas no incluem a entrada PTR (utilizada pelo endereamento reverso), o que
acaba causando uma rejeio de mensagens, pois o MTA do destino, ao no obter o FQDN
associado, descarta a mensagem supondo que ela seja spam.
Outro cuidado a ser tomado no incluir entradas CNAME ao servidor de e-mail. O protocolo SMTP exige que o servidor de e-mail seja A ou MX.
mente antes de ativar o servidor Postfix. Ao enviar mensagens, o MTA precisa resolver o
107
Havendo mais de um servidor responsvel por mensagens no mesmo domnio, deve ser
atribuda prioridade s entradas MX.
Utilize sempre o comando dig para testar o funcionamento do servidor DNS, verificando as
respostas por ele devolvidas.
Exemplo:
# dig mail.empresa.com.br MX
; <<>> DiG 9.2.2 <<>> mail.empresa.com.br MX
;; global options: printcmd
;; ->>HEADER<<- opcode: QUERY, status:NOERROR, id: 23929
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 2
;; QUESTION SECTION
; mail.empresa.com.br.
IN
MX
;; ANSWER SECTION
; mail.empresa.com.br. 86400
IN MX 10 mail.empresa.com.
br.
; mail.empresa.com.br. 86400
IN MX 20 mail2.empresa.com.
br.
;; AUTHORITY SECTION
86400
IN NS mar.empresa.com.br.
; mar.empresa.com.br.
;; Query time: 10 msec
;; Server: 172.25.0.130#53
Postfix
O servidor de e-mail Postfix:
O Postfix um MTA que envia mensagens de um MUA, ou cliente de e-mail, para um servidor
108
remoto utilizando o protocolo SMTP. Pode ainda receber mensagens de outros MTA e
encaminh-las (relay) para outros MTAs. A responsabilidade do Postfix se resume a receber
ou enviar mensagens para outros MTAs. A distribuio de mensagens ao usurio final, utilizando o protocolo POP3 ou IMAP, de responsabilidade de outros servidores.
Existem atualmente muitos MTAs que podem ser utilizados dependendo dos requisitos
necessrios, incluindo: funcionalidades; facilidade de instalao, configurao e manuteno; robustez; entre outros.
A instalao e configurao do Postfix podem ser feitas de maneira intuitiva. A instalao
padro relativamente segura e simples. Todavia, necessrio conhecer os parmetros para
ajust-los. Recomenda-se que alguns ajustes sejam feitos antes de colocar o servidor em produo. Outros podero ser feitos com o servidor em produo, especialmente ajustes em filtros
de contedo e controle de spam.
Mensagem (Origem)
Figura 7.7
Conexes e mapas.
Mensagem (Destinatrio)
Postx
SMTP
SMTP
LMTP
UUCP
Postx
QMQP
local
pipe
sendmail
transport
virtual
aliases
De modo anlogo a um roteador, o Postfix tambm recebe mensagens por mltiplas origens
e pode encaminh-las tambm a mltiplos destinos. Uma mensagem pode chegar por meio
do sendmail local, por uma conexo SMTP, Unix to Unix Copy (UUCP), ou mesmo Quick Mail
Queuing Protocol (QMQP). O destino dessa mensagem pode ser uma caixa local, outro servidor
SMTP, uma conexo Local Mail Transfer Protocol (LMTP), ou ainda um pipe para um programa.
Para determinar se as mensagens que chegam sero aceitas, ou mesmo para determinar
o mtodo que ser utilizado para encaminhar a mensagem, o Postfix faz uso dos mapas,
que impem permisses ou restries baseadas na origem, destino, e mesmo no contedo
das mensagens.
transport
aliases
.forward
resolve
local
mailbox
local
rewrite
sendmail
maildrop
Internet
RBL
pickup
cleanup
incoming
active
qmgr
smtp
Internet
canonical
virtual
deferred
relocated
pipe
UUCP etc.
smtpd
access
Figura 7.8
Arquitetura
do Postfix.
109
110
Debian/Ubuntu Server
apt-get purge SERVIDOR_ANTERIOR
apt-get install postfix
11 Red Hat/CentOS
22 root# systemclt <parmetro> postfix
11 Debian/Ubuntu Server
22 root# service postfix <parmetro>
O parmetro pode ser: start, stop, restart ou reload.
Ao ser iniciado, o servidor Postfix l as configuraes do arquivo de configurao main.cf.
Opcionalmente, podemos incluir configuraes adicionais em outros arquivos de configurao, referenciando-os em main.cf. Para iniciar o servidor:
Red Hat/CentOS
root# systemclt <parmetro> postfix
Debian/Ubuntu Server
root# service postfix <parmetro>
111
nico domnio
O servidor de e-mail Postfix possui centenas de diretivas (parmetros) que podem ser
inseridas em seu arquivo de configurao. No necessrio configurar cada uma delas, pois
todas possuem um valor padro (default) assumido quando a diretiva omitida no arquivo
de configurao.
Cada diretiva possui o formato: parmetro = valor. Pode ainda referenciar o contedo de
outra diretiva: outro_parametro = $parametro. Nesse caso, o contedo de parmetro ser
atribudo a outro_parametro. Pode ainda aceitar mltiplos valores.
Exemplos:
myhostname = mail.empresa.com.br
myorigin = $mydomain
mydestination = $myhostname localhost.$mydomain localhost $mydomain
112
11 /var/spool/mail/ ou /var/mail
Comando postfix check
Mapas de aliases
Sempre que os arquivos de configurao forem modificados, o comando postfix check deve
ser executado para verificar a sintaxe. Estando Ok, eles devem ser lidos novamente para que
seus novos valores entrem em vigor. Recomenda-se utilizar nesse caso o parmetro reload,
que faz com que o servidor leia as novas informaes sem reiniciar. O parmetro restart faz
com que o servidor tenha sua execuo interrompida e reiniciada, o que causa a indisponibilidade do servidor por alguns momentos. Uma configurao adicional diz respeito
associao entre contas de e-mail e contas de usurio no sistema. Normalmente, o Postfix
somente entrega mensagens a usurios do sistema.
Porm, usualmente podemos desejar desmembrar o nome do usurio da conta no sistema.
Existem diversas razes para isso, principalmente questes de segurana e administrativas.
A primeira trata da no divulgao das contas de usurio (login) na internet. A segunda o
fato de nem todos os usurios possurem contas de e-mail.
Para efetuar essa associao, devemos editar um arquivo de mapas denominado
/etc/postfix/aliases, incluindo as associaes desejadas.
usuario1 uc0001
usuario2 uc0002
joao uc0003
22 smtpd_tls_session_cache_timeout
22 tls_random_source
22 smtp_tls_security_level
O Transport Layer Security (TLS), anteriormente chamado de Secure Socket Layer (SSL),
fornece autenticao baseada em certificados e sesses criptografadas. Uma sesso criptografada protege a informao que est sendo transmitida atravs do SMTP ou em uma
autenticao SASL.
Os passos necessrios para habilitar o suporte ao TLS so:
11 Obter os certificados que so utilizados durante o estabelecimento da conexo TLS;
11 Adicionar os parmetros ao arquivo de configurao do Postfix para habilitar o TLS.
22 smtpd_tls_received_header
113
114
inet
smtpd
-o syslog_name=postfix/smtps
-o smtpd_tls_wrappermode=yes
-o smtpd_sasl_auth_enable=yes
-o smtpd_tls_security_level=encrypt
-o smtpd_reject_unlisted_recipient=no
-o smtpd_recipient_restrictions=permit_sasl_authenticated,reject
Para verificar se o suporte ao TLS est habilitado no servidor SMTP do Postfix, estabelecer
uma conexo utilizando o telnet:
# telnet localhost 25
Aps estabelecer a conexo, executar o comando ehlo para verificar se o TLS est sendo
oferecido pelo servidor:
ehlo localhost
q
Captulo 7 - Servidor de correio eletrnico (parte 1)
115
possvel testar se o servidor Postfix est funcionando corretamente e entregando as mensagens, atravs do comando Telnet (em negrito esto os comandos smtp a serem digitados):
# telnet localhost 25
Trying 127.0.0.1...
Connected to localhost.
Escape character is ^].
220 ESMTP SERVIDOR
helo mail.empresa.com.br
...
mail from: usuario1
Para terminar a
mensagem (comando
data), necessrio
digitar uma linha s
com o caractere .
(ponto).
E-mail de teste
.
250 Ok: queued as #QUEUE-ID
quit
116
Para verificar se o e-mail foi entregue, basta executar o comando mail. Se tudo estiver Ok, o
e-mail deve estar na caixa de entrada da conta. Caso o e-mail no esteja na caixa de entrada,
possvel verificar a fila de e-mail e o arquivo de log do servidor.
Outra forma de enviar um e-mail de teste atravs do comando:
echo E-mail de teste | mail -s Teste usuario1
Comando mailq
Consultando informaes sobre a entrega das mensagens
Buscando no arquivo de log
O entendimento da fila de e-mail do Postfix muito til. O Postfix colocar todo e-mail que
aceitou na sua fila, antes que outro processo pegue o e-mail e tente entreg-lo ao destinatrio. A fila do Postfix pode ser vista atravs do comando mailq.
Em um servidor muito ocupado, possvel ver centenas de e-mails parados por vrias
razes. Um exemplo pode ser visto a seguir:
04D8CA8C442
MAILER-DAEMON
O 04D8CA8C442 o ID da fila. Para descobrir o que aconteceu com esse e-mail, possvel
procurar no arquivo de log:
11 Red Hat / CentOS
# grep 04D8CA8C442 /var/log/mail.log
Resultado:
May 31 09:49:11 mx1 postfix/smtpd[4428]: 04D8CA8C442: client=web.
localnet[10.10.41.3]
May 31 09:49:11 mx1 postfix/cleanup[4473]: 04D8CA8C442: messageid=<20110531094911.0A73631F59D@newsletter.example.net>
May 31 09:49:11 mx1 postfix/qmgr[25512]: 04D8CA8C442: from=<>, size=2399, nrcpt=1
(queue active)
May 31 09:49:41 mx1 postfix/smtp[4945]: 04D8CA8C442: to=<info@example.com>,
relay=none, delay=30, delays=0.05/0.06/30/0, dsn=4.4.1, status=deferred (connect to
Os diferentes processos do Postfix que lidam com o e-mail so exibidos aps o postfix/.
O smtpd recebeu o e-mail vindo do servidor web.localnet. Ento, o processo cleanup
o coloca na fila de e-mail. O qmgr moveu o e-mail para a fila ativa e o smtp tentou
entreg-lo. No foi possvel contatar o servidor remoto mx.example.com, ento o Postfix
manteve o e-mail na fila. O cdigo da notificao do estado da entrega (Delivery Status
Notification DSN) foi 4.4.1. Todos os cdigos comeando com 4 representam erros temporrios, o que significa que o Postfix tentar entregar o e-mail novamente. Os cdigos
comeando com 5 representam erros permanentes, fazendo com que o Postfix descarte o
e-mail e informe ao remetente sobre a falha na entrega. Os cdigos comeando com
2 representam que a entrega foi bem-sucedida.
117
118
8
Servidor de correio eletrnico
(parte 2)
conceitos
Introduo
O estudo deste captulo visa complementar o aprendizado da administrao do servio de
correio eletrnico, onde so ministrados os mtodos de entrega de mensagens e o uso de
domnios virtuais. So abordados o controle de contedo, mail gateways e a autenticao
SMTP, alm de recomendaes de boas prticas para um servidor de e-mail corporativo,
complementadas com orientaes para ajuste de desempenho. Ao final, so praticados a
troca do mtodo de entrega para maildir, a configurao dos servidores POP e IMAP e testes
com os clientes utilizando esses protocolos.
Mtodos de entrega
11 Aps receber uma mensagem, um MTA chama outra aplicao para efetuar a entrega
na caixa de mensagens do usurio.
11 As mensagens destinadas a determinado usurio ficaro em sua caixa postal at que
ele as recupere.
11 Existem algumas formas de armazenar as mensagens de cada usurio:
22 mbox
22 maildir
objetivos
119
Aps receber uma mensagem, um MTA chama uma aplicao que se encarregar de entregar
a mensagem da caixa de mensagens do usurio apropriado. Essas mensagens ficaro disponveis at que o usurio venha recuper-las, atravs dos protocolos POP ou IMAP.
As mensagens devem ento ser armazenadas apropriadamente no servidor, uma vez que
podero ficar disponveis ao usurio por tempo indeterminado. Existem vrias formas de
fazer isso. As mais usuais: mbox, maildir ou banco de dados relacional (SQL).
mbox
Formato padro para caixa de mensagens.
Esse formato no suportado pelo IMAP. Desse modo, o usurio fica limitado a
utilizar o protocolo POP3 para recuperar suas mensagens.
maildir
120
do usurio organizada em vrias pastas, geralmente maildir, contendo outras trs pastas:
11 new
11 cur
11 tmp
O maildir o formato recomendado atualmente, por ser o mais confivel. Alm disso, o
formato suportado pelo protocolo IMAP. Nesse formato a caixa de mensagens do usurio
organizada em vrias pastas. Cada pasta contm as mensagens distribudas em uma
mensagem por arquivo, alm de um arquivo de ndice. Geralmente uma pasta denominada
maildir contm outras trs pastas:
11 new: para mensagens no lidas;
11 cur: para mensagens lidas;
11 tmp: para mensagens em processo de entrega.
O Postfix, por padro, reconhece como destino final somente os nomes especificados no
Domnios virtuais
11 Recarregar as configuraes.
121
Aps a criao desse arquivo, deve ser gerado um mapa indexado com o comando postmap:
# postmap hash:/etc/postfix/virtual_alias_domains
usuario1@exemplo.com
abuse@dominiovirtual.com
usuario1@exemplo.com
usuario1@dominiovirtual.com
usuario1@exemplo.com
usuario2@dominiovirtual.com
usuario2@exemplo.com
Aps a criao desse arquivo, deve ser gerado um mapa indexado com o comando postmap,
conforme segue:
# postmap hash:/etc/postfix/virtual_alias_maps
122
Controle de contedo
Controle de contedo efetuado por ferramentas embutidas ou externas.
123
Mail gateway
Tambm denominado smarthost.
DNS
(Sistema de Nomes de
Domnios, na sigla em
ingls) um sistema
de gerenciamento de
nomes hierrquico e
distribudo com duas
definies: examinar e
atualizar seu banco de
dados e resolver nomes
de domnios em endereos de rede (IP).
Por outro lado, para a rede interna o mail gateway aparece como gateway para todas as
mensagens que saem da rede. Configurando ento o mail gateway para repassar somente
mensagens originadas do servidor de e-mail, aliado a um firewall que bloqueie qualquer
trfego SMTP saindo da rede (exceto pelo mail gateway), temos um controle do trfego
Administrao de Sistemas Linux: Servios para Internet
124
Aps a criao desse arquivo, deve ser gerado um mapa indexado com o comando postmap:
# postmap hash:/etc/postfix/transport
postmap:
# postmap hash:/etc/postfix/relay_recipients
Aps a criao desse arquivo, deve ser gerado um mapa indexado com o comando
125
SMTP autenticado
Permitir o envio de mensagens sem autenticao do cliente pode facilitar o envio de
126
Servidores secundrios
bastante comum uma rede possuir dois (ou mais) servidores de correio eletrnico destinados recepo de mensagens: um principal, responsvel por entregar as mensagens
para as caixas postais dos destinatrios e outros secundrios que no fazem entrega de
mensagens diretamente aos destinatrios. Caso o servidor principal fique impossibilitado
de receber mensagens, os secundrios as recebem e as enfileiram, para retransmiti-las ao
principal quando esse estiver restabelecido.
Para evitar que servidores secundrios sejam abusados por spammers, alguns cuidados
devem ser tomados ao configur-los:
11 Todas as medidas antispam adotadas no servidor principal, como SPF, greylisting etc.,
devem, na medida do possvel, ser implementadas no servidor secundrio tambm, de
modo que o spam seja barrado igualmente em qualquer um deles;
11 O servidor secundrio deve saber para quais domnios ele pode fazer relay. Esse servidor
no deve ser configurado como null relay cliente, para evitar que sua combinao com o
servidor principal forme um relay aberto de segundo nvel;
11 O servidor principal deve assumir que o servidor secundrio confivel, e no fazer
testes de SPF nem colocar em greylisting mensagens que venham dele. Pois se ele foi
corretamente configurado, essas verificaes j foram feitas. Caso seja utilizado SPF,
podemos implementar SRS no servidor secundrio.
Endereos especiais
A RFC 2142 (Mailbox Names for Common Services, Roles and Functions) prev um conjunto de endereos especiais, que devem ser configurados como aliases para os e-mails do
pessoal responsvel pelas reas especficas.
Esses endereos devem estar corretamente configurados, de acordo com o descrito na
sesso sobre e-mails especiais e dados de WHOIS.
ticas, contendo:
11 Postfix.
11 Cyrus SASL e Dovecot SASL.
11 Courier Maildrop.
11 Courier Imap.
11 OpenLDAP.
Os itens abordados at permitem a montagem de servidores de correio eletrnico que
atendem a uma ampla gama de redes, que vo de algumas dezenas at vrias centenas de
usurios. Para ambientes em que devem ser suportados milhares de usurios e para fins de
facilitar a administrao, recomenda-se uma abordagem um pouco diferente. Nessa abordagem proposta o uso de algumas ferramentas associadas ao Postfix: Cyrus SASL, Courier
Maildrop, Courier Imap e OpenLDAP.
Sero abordados neste curso os conceitos e a aplicabilidade dessa utilizao, que em conjunto com os assuntos dos outros captulos fornecero subsdios para que os alunos possam
Captulo 8 - Servidor de correio eletrnico (parte 2)
127
Autentica e
envia e-mail
Postx
Envia
para LDA
Courier
Maildrop
Valida destinatrios
e verica endereo
de origem
Recebe e
gerencia e-mail
Cliente
OpenLDAP
Autentica
destinatrios
Courier IMAP
Obtm localizao de
mailbox e permisses
Entrega para
mailbox
Virtual
Acessa mailbox
e gerencia e-mail
Figura 8.1
Servidor de e-mail
corporativo.
Regras Filtro
128
o Postfix suporta a autenticao atravs do Simple Authentication and Security Layer: SASL
(RFC 4954). Utilizando o SASL, um cliente SMTP pode se autenticar em um servidor SMTP
remoto, lhe conferindo os mesmos privilgios de clientes que esto na rede local. O Postfix
utiliza implementaes existentes do SASL para conferir o suporte ao servidor SMTP.
A configurao da autenticao SASL no servidor SMTP do Postfix envolve dois passos diferentes:
11 Configurar a implementao SASL para oferecer uma lista de mecanismos adequados para
a autenticao e, dependendo da implementao do SASL utilizada, configurar os backends
de autenticao que verificam os dados de autenticao do cliente SMTP remoto;
11 Configurar o servidor SMTP do Postfix para habilitar a autenticao atravs do SASL.
Atualmente o Postfix suporta as implementaes Cyrus SASL e Dovecot SASL.
Para configurar a comunicao do Postfix com o Dovecot:
11 Instalar o pacote do Dovecot;
11 Editar o arquivo /etc/dovecot/conf.d/10-master.conf:
...
service auth {
...
unix_listener /var/spool/postfix/private/auth {
mode = 0660
user = postfix
group = postfix
}
...
}
...
129
smtpd_sasl_tls_security_options = noanonymous
130
Para verificar se o servidor SMTP do Postfix est oferecendo suporte autenticao SASL,
estabelecer uma conexo utilizando o telnet:
# telnet localhost 25
ehlo localhost
Courier Maildrop
11 Agente local para a entrega de mensagens.
Aps essa etapa, execute os comandos make install-strip e install-man para instalar os bindo Postfix (que no executa como root):
# chmod 750 /usr/local/bin/maildrop
# chmod u+s /usr/local/bin/maildrop
# chown root:vmail /usr/local/bin/maildrop
Courier Imap
Oferece os servios:
11 POP.
11 POP-SSL.
11 IMAP.
11 IMAP-SSL.
Suporta o formato maildir.
rios e o manual. Efetue ainda os seguintes ajustes de permisso em razo do daemon pipe
131
Courier Imap suporta o formato maildir e oferece os servios POP, POP-SSL, IMAP e
IMAP-SSL para os clientes que a ele se conectam para manipulao das mensagens.
Para a instalao, utilize as seguintes opes quando for constru-lo:
#./configure --enable-workarounds-for-imap-client-bugs --enable-unicode --withoutauthpgsql --without-socks --with-redhat make
Recomendaes de tuning
11 Ajustes bsicos.
11 Identificao de gargalos.
11 Ajustes para alto volume de trfego.
O Postfix rpido, e essa uma de suas principais caractersticas. Todavia, como muitos
outros programas, pode ter seu desempenho aumentado com alguns ajustes. Alm disso,
algumas situaes, como limitaes de hardware, software ou flutuaes bruscas (como um
pico no volume de spam) podem afetar sua performance.
Entre os ajustes bsicos, alguns itens sempre merecem ser verificados para maior garantia
de ausncia de problemas inesperados. Podemos citar: ajustes em consultas DNS; verificar
se o servidor est atuando como relay, recusando mensagens para usurios inexistentes,
bloqueando mensagens oriundas de redes da lista negra ou reduzindo a frequncia de
retransmisses.
Gargalos afetam o desempenho do sistema, eventualmente sobrecarregando o servidor
e causando nos usurios a percepo da ocorrncia de problemas. Ao chegar ao servidor,
durante seu processamento, uma mensagem movida de uma fila para outra. As filas so:
11 Incoming: todas as mensagens que entram so colocadas nessa fila pelo daemon clean, e
quando ficam prontas, o qmgr notificado;
11 Deferred: mensagens que j foram enviadas a alguns destinatrios, mas com falha para
132
133
134
Existem atualmente vrios tipos de listas negras, inclusive de DNS, que listam endereos IP,
faixas de endereos IP ou mesmo domnios.
Essas listas contm poucos falsos positivos em razo dos critrios utilizados para incluso.
A utilizao dessas listas far com que o servidor receba carga menor de spam.
Outra questo surge quando o servidor tem grande nmero de mensagens que no so
entregues na primeira tentativa. Existem duas alternativas:
11 Usar um relay para fallback; delega tentativas malsucedidas a outro servidor, que se
encarrega desse tipo de mensagem;
11 Aumentar o tempo entre as tentativas pelo parmetro maximal_backoff_time para diminuir a frequncia com que uma mesma mensagem entra novamente na fila de sada. Faz
com que tentativas de envio de mensagens a servidores que estejam fora do ar sejam
feitas em intervalos maiores.
As mensagens que chegam so colocadas nessa fila pelo cleanup com permisso 0600 at
que estejam completas e prontas para processamento, quando sua permisso alterada
para 0700. Em condies normais a fila incoming quase no possui mensagens 0600. Caso
ocorram picos de recebimento de mensagens anterior da capacidade do qmgr, essa fila pode
crescer consideravelmente. Nesse caso, o que pode estar retardando o qmgr o servio
trivial-rewrite, sobretudo por lentido nas consultas LDAP ou SQL.
Evite que uma quantidade excessiva de mensagens seja entregue via pickup. Caso
necessrio, utilize opes alternativas de injeo de mensagens por meio de programas como mini_sendmail.
s verificaes do pickup.
Mensagens enviadas pelo comando sendmail e ainda no coletadas pelo daemon pickup
permanecem na fila maildrop. Mensagens enviadas pelo comando sendmail mesmo com o
Postfix fora de execuo vo para essa fila. O pickup periodicamente verifica essa fila ou
realiza a verificao quando notificado da chegada de novas mensagens pelo postdrop.
Executando em uma nica thread, processa somente uma mensagem por vez, verificando
cabealho, corpo e outras informaes, demandando muito processamento de entrada e
sada de disco. Retardos causados nessa fila so decorrentes de excesso de mensagens ou
consumo excessivo de CPU devido s verificaes do pickup.
Convm observar que quando a fila active estiver cheia, o cleanup diminui a injeo de mensagens. A fila active possui limite de 20 mil mensagens.
tempo mnimo e aumentando o tempo mximo das mensagens, agilizando o envio de men-
Quando o Postfix no consegue entregar a mensagem para algum dos destinatrios, esta
colocada na fila deferred. O qmgr verifica periodicamente a fila conforme especificado no
parmetro queue_run_delay. Uma frao das mensagens periodicamente reinjetada na fila
active de acordo com o tempo de espera, que varia entre os valores de minimal_backoff_time
e maximal_backoff_time, respectivamente o tempo mnimo e mximo que cada mensagem
aguarda antes de ser recolocada para envio.
Cada nova tentativa dobra o tempo de vida da mensagem na fila. Mensagens com tempo
menor possuem tentativas mais frequentes e mensagens mais antigas tm tempo maior
entre as tentativas. Havendo grande volume de mensagens nessa fila, pode ser feita a tentativa de ajuste diminuindo o tempo mnimo e aumentando o tempo mximo das mensagens,
o que agiliza um pouco o envio de mensagens com pouco tempo na fila sem provocar muitas
tentativas para todas as mensagens.
sagens com pouco tempo na fila, sem provocar muitas tentativas para todas as mensagens.
135
Por ltimo, deve-se evitar recarregar ou reiniciar o servidor, quando possvel. Apesar de a
fila active em memria estar vazia, a fila active em disco pode conter muitas mensagens, que
so devolvidas fila incoming, demandando muito consumo de memria.
Prticas Antispam
Administrao de Sistemas Linux: Servios para Internet
136
IN
TXT
Nesse caso, a poltica estabelece que pode enviar mensagens em nome do domnio
empresa.com.br umamquina que satisfaa um dos seguintes critrios:
11 Seu endereo IP deve ser um RR tipo A do domnio empresa.com.br (a);
11 Seja designada como MX do domnio empresa.com.br (mx);
11 Pertena ao bloco de endereos IP 192.0.2.32/27 (ip4).
A clusula -all diz que devem ser recusados (-, prefixo Fail) e-mails partindo de qualquer
outro endereo IP (all).
As opes de prefixos so:
11 + Pass
11 - Fail
11 ~ SoftFail
11 ? Neutral
Para fazer com que o servidor SMTP do Postfix verifique o SPF, necessrio instalar o pacote
postfix-policyd-spf-python, configurar o filtro check_policy_service da restrio smtpd_recipient_restrictions com o valor unix:private/policyd-spf e incluir a seguinte seo no arquivo
master.cf do Postfix:
policy-spf
unix
spawn
user=nobody argv=/usr/bin/policyd-spf
138
O graylisting outra forma de reduzir a quantidade de spam recebida. Ele um intermedirio entre o whitilist (sempre aceitar e-mails de determinadas origens) e blacklist (sempre
recusar e-mails de determinadas origens), que recusa receber o e-mail durante alguns
minutos. Os servidores que esto enviando spams apenas tentam entregar o e-mail de
spam uma nica vez. Porm, os servidores legtimos de e-mail possuem uma fila de sada de
e-mail e, quando recebem um cdigo erro temporrio, tentam enviar o e-mail novamente.
Se o servidor que est enviando um e-mail ao destinatrio pela primeira vez, ento o
mecanismo de greylist retornar um cdigo de erro temporrio (delivery status 4.x.x),
que informa ao servidor do remetente para tentar enviar o e-mail novamente aps alguns
minutos. O servidor de destino registrar o endereo IP do servidor remetente e, aps um
determinado perodo (geralmente 10 minutos), o bloqueio removido e a prxima vez que o
e-mail for enviado ele ser aceito.
O lado negativo do greylist que h um atraso na entrega dos e-mails.
O Antispam.br
(http://antispam.br),
site mantido pelo
Comit Gestor da
Internet no Brasil (CGI.
br), constitui uma fonte
de referncia sobre o
spam, alm de possuir
vrias informaes
teis, como boas
prticas, no combate
ao spam.
/etc/sysconfig/postgrey
Recomendaes do Antispam.br
Relay aberto
Restringir ao mximo os endereos IP que tem permisso para usar o servidor como relay
Podemos utilizar o comando telnet para verificar se o Relay est aberto no servidor.
$ telnet mailserver.example.com 25
Trying 192.0.2.8
Connected to mailserver.example.com.
Relays abertos
Relays abertos so MTAs que transmitem mensagens de qualquer domnio, ou mesmo s
de domnios determinados, para qualquer outro, sem pedir autenticao, sem restringir
(ou restringindo muito pouco) a faixa de endereos IP de origem.
Os relays abertos so utilizados por spammers pelo fato de proverem anonimato. Para o
responsvel pelo MTA com relay aberto sendo abusado, as consequncias so o consumo de
recursos e a possvel incluso do MTA em listas de bloqueio. Alm disso, ele pode passar a
receber mensagens de erro e reclamaes sobre os spams enviados via seu MTA.
Os softwares atuais para servidores MTA costumam vir em sua maioria configurados por
padro para no aceitar a transmisso indiscriminada de mensagens. Normalmente esses
softwares permitem a manuteno de uma lista de domnios pelos quais um determinado
MTA responde e uma lista de endereos autorizados a usar seu relay.
importante, ao configurar um MTA, restringir ao mximo os endereos IP que tm permisso para us-lo como relay, se possvel limitando ao localhost.
H tambm casos em que dois MTAs, aparentemente bem configurados, agem como se
fossem um relay aberto. A mensagem chega ao primeiro MTA, retransmitida para o
segundo, que por sua vez a retransmite para qualquer outro servidor. Essa situao ocorre
139
quando o primeiro MTA tem o segundo como seu mail hub e o segundo tem o primeiro na
lista de IPs autorizados a us-lo como relay. uma situao bem difcil de diagnosticar e fcil
de ser explorada.
Antes de tornar um servio de correio eletrnico pblico fundamental verificar se ele est
se comportando como relay aberto. Uma maneira fcil de fazer isso atravs de um telnet
pela porta adequada, digitando os comandos SMTP diretamente. A ferramenta openssl, com
o comando s_client, pode ser usada no caso de sesses cifradas. Exemplo:
myhost:~$ telnet mailserver.example.com 25
Trying 192.0.2.82...
Connected to mailserver.example.com.
Escape character is ^].
140
9
Instalar o Samba; Configurar um Servidor Primrio de Domnio (PDC); Integrar o PDC
com uma base de autenticao LDAP; Controlar informaes de usurios e autenticao
para clientes Windows.
conceitos
Introduo
O estudo deste captulo ter foco na utilizao do Samba no modo clssico, ou seja, como
um Servidor Primrio de Domnio estilo Windows NT4. Ele se inicia pelos conceitos do servio
Samba, passando por aspectos tcnicos importantes do seu funcionamento, e concluindo com
sua instalao, configurao e testes relevantes nas situaes reais em que est inserido.
Em seguida, estudaremos a instalao e a configurao do Samba, com especial ateno aos
parmetros e sees mais importantes de seu arquivo de configurao. Apresentaremos
ainda o compartilhamento de um disco Linux e a montagem de diretrios do Windows.
Samba
O que o SAMBA?
Captulo 9 - Samba
objetivos
Samba
141
142
Daemons
Nmbd
nmbd
Esse daemon controla todas as requisies de registro e resoluo de nome. o principal
mecanismo envolvido na navegao na rede SMB. Ele tambm gerencia todos os protocolos
baseados em UDP. O daemon nmbd deve ser o primeiro iniciado durante o processo de
Captulo 9 - Samba
inicializao do Samba.
143
smbd
Esse daemon gerencia os recursos compartilhados entre o servidor Samba e seus clientes,
atravs de conexes TCP/IP. Ele fornece servios de acesso a arquivos, impresso e navegao aos clientes SMB. Ele tambm lida com todas as notificaes entre o servidor Samba
e seus clientes na rede, e responsvel pela autenticao de usurios, bloqueio de recursos
e compartilhamento de dados atravs do protocolo SMB. Deve ser iniciado imediatamente
aps o nmbd.
winbindd
Esse daemon deve ser iniciado quando o Samba membro de um Domnio NT ou AD.
Tambm necessrio quando o servidor Samba possui uma relao de confiana com outro
domnio. Ele utilizado para buscar informao sobre os usurios e grupos que esto em
servidores Windows NT, e permitir que o Samba autorize o acesso dos usurios atravs de
um servidor Windows NT/2000.
Conjunto de ferramentas
11 net
11 pdbedit
11 rpcclient
11 smbclient
11 smbcontrol
11 smbpasswd
11 smbspool
11 smbstatus
11 smbtar
11 testparm
A distribuio do Samba tambm contm um conjunto de ferramentas, utilizadas na administrao e operao. Os principais so:
11 net: um programa que pode ser utilizado para realizar administrao remota nos servi-
144
dores Samba;
11 pdbedit: um programa utilizado para o gerenciamento das contas de usurios que
residem em uma base de dados SAM;
11 rpcclient: um programa que pode ser utilizado para executar funes MS-RPC em
clientes Windows;
11 smbclient: um cliente parecido com o FTP, que pode ser utilizado para se conectar com
compartilhamentos SMB e realizar operaes neles;
11 smbcontrol: um utilitrio de administrao que envia mensagens ao nmbd ou smbd;
11 smbpasswd: um programa que permite a um administrador alterar as contas utilizadas
pelo Samba;
11 smbspool: um programa de fila de impresso, utilizado para enviar arquivos para
impressoras remotas que esto compartilhadas na rede SMB;
11 smbstatus: um programa que apresenta um relatrio atual das conexes de rede aos
compartilhamentos em um servidor Samba;
11 smbtar: um programa similar ao comando tar do Linux, para realizar backup dos dados
em compartilhamentos SMB;
11 testparm: um programa simples para realizar verificaes no arquivo de configurao
do Samba.
Conceitos
Samba utiliza o protocolo SMB/CIFS.
Captulo 9 - Samba
group de computadores SMB com uma adio: um computador atuando como controlador
145
de domnio (DC Domain Controller), que fica responsvel por armazenar todas as contas,
utilizadas pelo usurio para acessar os recursos existentes em outras mquinas, e scripts de
logon configurados para fazer ajustes, sincronismo, manuteno ou qualquer outra tarefa
programada pelo administrador do sistema.
O principal benefcio introduzido pela utilizao do Domnio o Single Sign-On (SSO). Ele
permite que os usurios em uma rede realizem o logon em qualquer estao de trabalho
que seja membro de um domnio, e acessem os recursos da rede (compartilhamento,
arquivos, impressoras etc.) como se estivessem em seus prprios computadores.
Um domnio fornece um identificador nico de segurana (SID). Os identificadores de
segurana das contas de usurios, mquinas e grupos do domnio so compostos do SID do
domnio mais um identificador relativo (RID), que nico para a conta. Os SIDs de conta (SID
do domnio mais o RID) podem ser utilizados para criar listas de controle de acesso (ACLs),
que so associadas aos recursos de rede.
Um tpico SID de domnio se parece com o seguinte formato:
S-1-5-21-726309263-4128913605-1168186429
Quando a conta criada, o Samba gera o RID dela de forma algortmica. O Linux utiliza uma
base de dados separada para os identificadores de usurio e de grupo (o UID e GID), mas o
Windows aloca o RID utilizando uma nica base. Um usurio Windows e um grupo Windows
no podem ter o mesmo RID. Assim como o UID 0 utilizado para o usurio root no Linux, a
conta Administrador do Windows possui o RID 500. O RID concatenado ao SID do domnio
Windows. Dessa forma, a conta Administrador de um domnio que possui o SID acima, ter o
seguinte SID de usurio:
S-1-5-21-726309263-4128913605-1168186429-500
Samba ADS
Disponvel a partir da Verso 4
146
Diferentemente do modo clssico PDC do Samba, onde necessrio executar trs daemons
(smbd, nmbd e winbindd), o Samba AD s precisa da execuo de um nico daemon, chamado
samba, e a ferramenta para administrar os servios do AD chamada de samba-tool.
Como o DNS uma parte integral do AD, o Samba 4 passou a fornecer duas solues integradas
de DNS: um servidor DNS interno e um plugin para o BIND, utilizando o mecanismo BIND DLZ.
Toda a parte de integrao com LDAP, incluindo a inicializao da base de dados, realizada
internamente pela nova ferramenta de configurao e provisionamento do Samba.
Instalao e configurao
Instalao
Red Hat/CentOS
Red Hat/CentOS
# yum install samba4 samba4-client samba4-common
ou
# yum install samba samba-client samba-common
Debian/Ubuntu Server
Iniciar/Para os servios
Red Hat/CentOS
root# systemctl nmb {start|stop|reload|restart|force-reload|status}
root# systemctl smb {start|stop|reload|restart|force-reload|status}
Captulo 9 - Samba
147
Debian/Ubuntu Server
root# service {start|stop|reload|restart|force-reload|status} nmbd
root# service {start|stop|reload|restart|force-reload|status} smbd
root# service {start|stop|reload|restart|force-reload|status} winbindd
11 Sees:
22 Representam um compartilhamento ou um meta-servio
22 Definido pelo nome da seo entre colchetes. Ex: [secao1]
11 Atributos:
22 Definidos por pares de chave e valor, separados pelo sinal de igual. Ex: chave1
= valorA
22 Podem ser globais ou locais
11 Sees especiais:
22 [global]
22 [homes]
22 [profile]
22 [printers]
22 Comentrios: # ou ;
A configurao do Samba armazenada no arquivo smb.conf, que geralmente fica localizado
no diretrio Linux. Dessa forma, ele instalar tambm todas as dependnciocal correto de
onde o arquivo de configurao deve ficar, basta executar o seguinte comando:
root#
O arquivo smb.conf utiliza a mesma sintaxe de vrios antigos arquivos .ini do Windows 3.1.
Consiste de vrias sees, que so iniciadas colocando o nome da seo entre colchetes. Os
atributos de cada seo so representados por pares de chave e valor, separados pelo
sinal de igual (=). um simples arquivo de texto, ento possvel edit-lo com qualquer
148
editor de texto.
Cada seo no arquivo smb.conf representa um compartilhamento ou um meta-servio em
um servidor Samba. A seo [global] especial, tendo em vista que ela contm configuraes que so aplicadas ao servidor Samba. O Samba suporta vrios meta-servios, cada um
tendo seu propsito especfico. Por exemplo, o compartilhamento [homes] um meta-servio que faz com que o Samba fornea um compartilhamento do diretrio home pessoal
para cada usurio. O compartilhamento [printers] um meta-servio que estabelece um
suporte fila de impresso. A seo [profile] define um perfil de usurio quando o servidor
Samba usado como PDC de domnio.
As linhas iniciadas por # ou ; so tratadas como comentrio. Quebras de linha podem
ser especificadas com uma \ no final da linha. A seguir um exemplo de uma configurao
mnima do smb.conf:
[global]
workgroup = GRUPO
netbios name = SMBSERVER
map to guest = bad user
security = share
[homes]
guest ok = no
read only = no
[dados]
path = /data
comment = Meus arquivos
read only = No
guest ok = yes
Browseable = yes
importante validar o contedo do arquivo smb.conf antes de iniciar os daemons. Para isso,
basta executar o comando testparm:
root#
testparm /etc/samba/smb.conf
O testparm analisar o arquivo de configurao e reportar qualquer parmetro desconhecido ou com a sintaxe incorreta. Ele tambm verifica os erros de configurao mais comuns
e emite um aviso caso encontre algum.
11 netbios name
11 workgroup
11 invalid users
11 valid users
11 log file
11 log level
11 os level
11 domain master
11 local master
11 preferred master
11 passdb backend
11 comment
11 browseable
11 guest
11 account
Captulo 9 - Samba
11 security path
149
11 public
11 write list
11 read list
11 available
11 printable
11 read only
11 create mask
11 directory mask
11 volume
Os parmetros de configurao esto documentados na pgina do man do smb.conf. Alguns
parmetros podem ser utilizados somente na seo [global], outras somente em sees de
compartilhamentos ou de meta-servios.
11 server role = funcao: parmetro utilizado na seo [global] que determina o modo
bsico de operao de um Servidor Samba e um dos parmetros mais importantes de
configurao. As opes de configurao aceitas so:
22 AUTO: esse o valor padro, e faz com que o Samba consulte o parmetro security
para determinar o modo de operao do servidor. Se o parmetro security no
estiver configurado, o Samba ser configurado como um simples servidor de arquivos,
no estando conectado a nenhum Domnio;
22 STANDALONE: nesse modo de operao, um cliente precisa primeiro realizar o
logon utilizando um usurio e uma senha vlidos. Senhas criptografadas so utilizadas por padro nesse modo;
22 MEMBER SERVER: nesse modo o Samba tentar validar o login/senha encaminhando
a solicitao de autenticao para o Controlador de Domnio. Esse modo s funcionar
corretamente se o comando net foi utilizado para adicionar esse servidor no domnio.
esperado que o parmetro encrypted passwords esteja configurado com o valor
yes;
22 CLASSIC PRIMARY DOMAIN CONTROLLER: nesse modo de operao, o Samba
executa como um Controlador Primrio de Domnio clssico, fornecendo os servios
Administrao de Sistemas Linux: Servios para Internet
11 valid users = user1 user2 @group1: semelhante opo invalid users, mas permite
que somente os usurios especificados tenham acesso ao sistema;
11 log file= /caminho/arquivo: parmetro utilizado na seo [global] que define a localizao e nome do arquivo de log gerado pelo Samba;
11 log level = valor: parmetro utilizado na seo [global] que define o nvel de debug dos
daemons do Samba, variando de 0 (menos informao) a 9 (muita informao);
11 os level=num: parmetro utilizado na seo [global] que especifica o nvel do Sistema
Operacional. Esse nmero usado para as eleies NetBIOS para definir o master
browser local e o controlador de domnio. O valor pode ser de 0 a 255, e o padro 32;
11 domain master = valor: parmetro utilizado na seo [global] que especifica se o servidor tentar se tornar o master browser de domnio. Os valores que podem ser especificados so: yes (valor padro), no e auto. O valor padro auto;
11 local master = valor: parmetro utilizado na seo [global] que define se o servidor
participar ou no das eleies para master browser local. Os valores que podem ser
especificados so: yes e no;
11 preferred master = valor: parmetro utilizado na seo [global] que define se o
servidor Samba ter ou no vantagens de ganhar uma eleio local. O servidor poder se
tornar de forma garantida o master browser do domnio se essa opo for usada em conjunto com domain master = yes. Os valores podem ser yes, no e auto (valor padro);
11 passdb backend = tipo:local: parmetro utilizado na seo [global] que permite escolher qual o tipo de backend ser utilizado para armazenar as informaes das contas. O
valor dividido em duas partes, sendo a primeira o nome/tipo do backend e a segunda
(opcional) uma string definindo o local onde ser armazenada. Mais sobre esse assunto
no item Backends de contas;
11 security = valor: parmetro utilizado na sesso [global] que permite definir o Modo de
segurana do Samba e como os clientes respondem durante a autenticao. Esse parmetro um dos mais importantes e ser tratado mais detalhadamente no item Modelos
de Segurana;
11 path = /caminho/do/diretrio: parmetro utilizado em uma seo de compartilhamento para especificar qual diretrio o usurio ter acesso. No caso de um compartilhamento de impressora, especifica o diretrio do spool de impresso, onde os arquivos
sero armazenados antes de serem enviados para a impressora;
11 comment = Descrio do Compartilhamento: descrio do compartilhamento que
ser mostrada na janela de procura de rede ou no comando smbclient -L maquina;
11 browseable = valor: define se o compartilhamento ser ou no exibido na janela de
procura de rede. Mesmo no sendo exibido, o compartilhamento poder ser acessado.
Valores aceitos so yes e no;
11 guest account = username: conta que ser usada para fazer acesso sem senha (convidado) quando o parmetro guest ok ou public forem usados em um compartilhamento.
11 public = valor: permite aos usurios se conectarem ao compartilhamento sem fornecer uma senha, usando o usurio definido em guest account. Aceita os valores yes e
no. Esse parmetro possui o mesmo efeito do parmetro guest ok;
11 write list = usuario1 usuario2 @grupo1: lista de usurios, separados por espao ou vrgula,
que podero ler e gravar no compartilhamento. Caso o nome for iniciado por @, ser tratado
como um grupo UNIX e todos os usurios daquele grupo tero acesso de gravao;
Captulo 9 - Samba
151
11 read list = usuario1 usuario2 @grupo1: lista de usurios separados por espao ou
vrgula que tero acesso de apenas leitura no compartilhamento. Caso o nome for iniciado por @, ser tratado como um grupo UNIX;
11 available = valor: parmetro utilizado para habilitar e desabilitar um compartilhamento. Aceita os valores yes e no;
11 printable = valor: especifica se o compartilhamento uma impressora (yes) ou um
compartilhamento de arquivo/diretrio (no). O padro no;
11 read only = valor: especifica se o compartilhamento somente para leitura (yes) ou
no (no) para todos os usurios. O parmetro writable um antnimo equivalente a esse
parmetro, s que utiliza as opes invertidas;
11 create mask = valor: mscara do modo padro para criao de arquivos no compartilhamento. Valor configurado como a mscara de criao de arquivos do Linux;
11 directory mask = valor: mscara do modo padro para a criao de diretrios no
compartilhamento. Valor configurado como a mscara de criao de diretrios do Linux;
11 volume = nome: parmetro utilizado para configurar o rtulo do volume de um compartilhamento.
152
11 add user script: caminho completo para o script/comando que ser executado como
root pelo smbd para criar uma conta de usurio;
11 delete user script: caminho completo para o script/comando que ser executado como
root pelo smbd para remover uma conta de usurio;
11 add group script: caminho completo para o script/comando que ser executado como
root pelo smbd para criar um grupo;
11 delete group script: caminho completo para o script/comando que ser executado como
root pelo smbd para remover um grupo;
11 add user to group script: caminho completo para o script/comando que ser executado
como root pelo smbd para adicionar uma conta de usurio a um grupo;
11 delete user from group script: caminho completo para o script/comando que ser executado como root pelo smbd para remover uma conta de usurio a um grupo;
11 set primary group script: caminho completo para o script/comando que ser executado
como root pelo smbd para definir o grupo primrio de um usurio;
11 add machine script: caminho completo para o script/comando que ser executado
como root pelo smbd para adicionar uma conta de mquina;
Os comandos definidos nesses parmetros, que podem apontar para as prprias ferramentas de administrao do Linux ou para scripts especficos, so executados para realizar
as operaes definidas sob demanda, como, por exemplo, quando uma mquina ingressa
no domnio. Se o parmetro add machine script estiver corretamente configurado, quando a
mquina ingressa no domnio, a conta de mquina automaticamente criada.
Variveis de substituio
Variveis de substituio
Captulo 9 - Samba
153
Backends de contas
11 Backend: mecanismo utilizado para armazenar as contas
11 smbpasswd
22 Arquivo texto, similar ao passwd/shadow utilizado pelo Linux
11 tdbsam
22 Melhoria em relao ao smbpasswd
22 Armazena informaes estendidas SAM (Security Accoutn Manager)
22 Arquivo binrio no formato TDB (Trivial Database)
22 Recomendado para ambientes com um nico Controlador de Domnio
11 ldapsam
22 Possibilita a integrao e comunicao com um Servidor LDAP
22 Recomendado para ambientes que necessitam de mltiplos Controladores
de Domnio (Primrio e de Backup)
O passdb backend apenas um mecanismo para armazenar as contas. Essas contas so as
contas de usurios, contas de grupos, contas de relao de confiana de mquina e contas
de relao de confiana entre domnios. Os trs backends suportados pelo Samba so:
smbpasswd, tdbsam e ldapsam. Desses, apenas o ldapsam suporta armazenar ambas as
contas dos usurios Linux (POSIX) e Samba em um nico repositrio.
smbpasswd
Essa opo permite utilizar o arquivo smbpasswd, que um simples arquivo texto (ASCII)
contendo as senhas criptografadas e um campo de informao sobre a conta. Essa forma
de backend no armazena qualquer informao SAM, necessria para sistemas Windows a
partir da verso NT, e que utilizam os controles extras de segurana e acesso.
retrocompatibilidade necessria.
154
tdbsam
Esse backend fornece uma rica base de dados para servidores locais. Ele no recomendado para ambientes com mltiplos controladores de domnio (um PDC e um ou mais BDCs).
O backend tdbsam armazena as informaes do backend smbpasswd, mais as informaes
estendidas do SAM (Security Account Manager), presentes nos servidores Windows, tudo
em um nico arquivo binrio no formato TDB (Trivial Database). A incluso das informaes estendidas tornou possvel ao Samba implementar os mesmos controles de acesso de
contas e sistema existente nos servidores Windows.
ldapsam
Esse backend fornece acesso ao servio de diretrio LDAP, com suporte ao sistema de
gerenciamento distribudo de contas. O Samba possui um schema para integrar a operao
com o servidor LDAP.
Modelos de segurana
11 Segurana ao nvel do Usurio
Captulo 9 - Samba
que todos os direitos de acesso utilizaro o conjunto de credenciais username/senha que foi
155
22 realm = kerberos.REALM
156
22 security = ADS
22 password server = kerberos.server
O Samba pode ingressar em um domnio Active Directory (AD) utilizando um mtodo de
segurana baseado em RPC estilo NT4. Isso possvel se o domnio estiver executando em
modo nativo. O AD em modo nativo permite membros de domnio estilo NT.
Para configurar o Samba para atuar dessa forma, necessrio realizar as seguintes configuraes no arquivo smb.conf:
realm = kerberos.REALM
security = ADS
password server = kerberos.server
O termo realm utilizado para descrever a arquitetura de segurana baseada em Kerberos, que utilizada pelo Microsoft ADS.
Captulo 9 - Samba
157
O PDC desempenha um papel importante no domnio. ele quem inicia uma nova base de
dados para controle do domnio.
Captulo 9 - Samba
159
Os seguintes passos so necessrios para configurar o Samba como um PDC estilo Windows
NT para clientes Windows:
11 Configurao correta da rede TCP/IP e da rede Windows;
11 Configurao correta do parmetro para definir a funo do servidor, no arquivo smb.conf;
11 Configurao correta do servio de resoluo de nomes;
11 Logons de domnio para os clientes Windows;
11 Configurao de perfis remotos ou forar o uso de perfil local;
11 Configurao das polticas de rede e de sistema;
11 Adio e gerenciamento de contas de usurios do domnio;
11 Configurar os clientes Windows para se tornarem membros de domnio.
Cada controlador Samba de domnio deve fornecer o servio de logon de rede, funcionalidade que configurada no Samba atravs do parmetro domain logons no arquivo de
configurao smb.conf.
O primeiro passo para criar um PDC Samba funcional entender os parmetros necessrios
no arquivo smb.conf. Um exemplo de configurao de um PDC pode ser visto a seguir:
[global]
server role = classic primary domain controller
workgroup = DOMINIO1
netbios name = SMBSERVER
passdb backend = tdbsam
os level = 33
preferred master = auto
domain master = yes
local master = yes
security = user
domain logons = yes
logon path = \\%L\profiles
logon drive = H:
logon home = \\%L\%U
add user script = /usr/sbin/useradd -m %u
Administrao de Sistemas Linux: Servios para Internet
[profiles]
path = %H/profiles
160
read only = no
create mask = 0600
directory mask = 0700
[homes]
comment = Diretorios Home
valid users = %S
read only = No
browseable = No
11 server role
11 workgroup
11 netbios name
11 passdb backend
11 server role: parmetro que define o modo de operao padro do Servidor Samba;
11 workgroup: parmetro que define o nome do domnio, quando configurado como PDC;
11 netbios name: parmetro que configura o nome NetBIOS pelo qual o servidor Samba
ser conhecido. Por padro, configurado com o mesmo nome atribudo ao host no DNS;
11 passdb backend: onde toda a informao das contas de usurios e grupos ser armazenada. Os valores aceitveis para a configurao de um PDC so: tdbsam e ldapsam.
22 os level
22 preferred master
22 ddomain master
22 security
22 encrypt passowrds
22 domain logons
Os parmetros os level, preferred master, domain master, security, encrypt password e
domain logons so peas-chave para garantir o funcionamento do domnio e o suporte
logon de rede.
O os level deve ser configurado com um valor igual ou acima de 32. Um controlador de
domnio deve ser o DMB, deve ser configurado para utilizar o modo de segurana user, deve
suportar senhas encriptadas compatveis com o Windows, e deve fornecer o servio de
11 os level: para o PDC, esse valor deve ser configurado como igual ou acima de 32;
11 preferred master: deve ser configurado com o valor yes, para o nmbd forar uma
eleio do Master Browser do Domnio;
11 domain master: deve ser configurado com o valor yes, para que o servidor Samba seja
Captulo 9 - Samba
Parmetros de ambiente
Facilita operaes de logon na rede
um login. O arquivo deve ser no estilo DOS, utilizando os finalizadores de linha CR/LF. O
162
Se esse script for criado no Linux, ele deve ser convertido para DOS, utilizando o
comando unix2dos.
Compartilhamento NETLOGON
Compartilhamento especial
Definido para dar suporte ao logon de rede
Configura o local onde sero armazenados o scripts de logon e arquivos de poltica de grupo
Compartilhamento PROFILE
Compartilhamento especial
Dessa forma, toda vez que uma conda de usurio for criada, o diretrio profiles automaticamente criado.
Configuraes adicionais
Alguns itens adicionais a serem verificados e executados aps a configurao do Samba.
Reiniciar os servios do Samba:
11 Red Hat / CentOS
root# systemctl restart nmb
root# systemctl restart smb
Adicionar a conta do usurio root no Samba. Essa conta essencial nas atividades regulares
de manuteno e administrao:
root#
smbpasswd -a root
Captulo 9 - Samba
163
Configurao do OpenLDAP
Incluir suporte ao objeto sambaSamAccount adicionar o schema do Samba
no OpenLDAP
11 Copiar o arquivo do schema
22 root# zcat /usr/share/doc/samba/examples/LDAP/samba.ldif.gz > /etc/ldap/
schema/samba.ldif
11 Carregar o schema
22 root# ldapadd -Q -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/samba.ldif
11 Criar ndices para os atributos mais utilizados
Para incluir suporte ao objeto sambaSamAccount em um servidor OpenLDAP, primeiro
necessrio copiar o arquivo samba.ldif para a diretrio de configurao do slapd. Esse
arquivo pode ser encontrado o diretrio examples/LDAP da distribuio do Samba, ou
atravs do pacote samba-doc:
root# zcat /usr/share/doc/samba/examples/LDAP/samba.ldif.gz > /etc/ldap/schema/
samba.ldif
recomendado que alguns ndices sejam mantidos sobre alguns dos atributos mais teis,
para agilizar as buscas realizadas nas classes de objeto sambaSamAccount, posixAccount e
posixGroup. Isso feito criando o arquivo samba_indice.ldif, com o contedo:
dn: olcDatabase={1}hdb,cn=config
changetype: modify
add: olcDbIndex
olcDbIndex: uidNumber eq
olcDbIndex: gidNumber eq
olcDbIndex: loginShell eq
olcDbIndex: memberUid eq,pres,sub
olcDbIndex: uniqueMember eq,pres
olcDbIndex: sambaSID eq
olcDbIndex: sambaPrimaryGroupSID eq
olcDbIndex: sambaSIDList eq
olcDbIndex: sambaDomainName eq
olcDbIndex: default sub
Captulo 9 - Samba
olcDbIndex: sambaGroupType eq
165
22 sambaUnixIdPooldn=VALOR
22 oscope=VALOR
22 hash_encrypt=VALOR
22 crypt_salt_format=%s
22 userLoginShell=SHELL
22 userHome=DIRETORIO
22 userHomeDirectoryMode=VALOR
22 userGecos=DESCRICAO
22 defaultUserGid=GID
22 defaultComputerGid=GID
22 skeletonDir=DIRETORIO
22 defaultMaxPasswordAge=NUMERO DE DIAS
22 userSmbHome=CAMINHO UNC
22 userProfile=CAMINHO UNC
166
22 userHomeDrive=LETRA:
22 userScript=SCRIPT.BAT
22 mailDomain=DOMINIO
11 III. Editar o arquivo /etc/smbldap-tools/smbldap_bind.conf
22 slaveDN=ADMIN DN
22 slavePw=SENHA
22 masterDN=ADMIN DN
22 masterPw=SENHA
11 IV. Popular a base do OpenLDAP:
22 root# smbldap-populate
O pacote smbldap-tools possui um bom conjunto de ferramentas para gerenciar as contas,
quando utilizando o Samba com o OpenLDAP. Essas ferramentas permitem o gerenciamento
da maioria dos componentes que so necessrios para as contas, especialmente para a
administrao de usurios, mquinas e grupos. Outro ponto positivo desse pacote que os
scripts contidos nele podem ser utilizados como parmetros no smb.conf.
Antes de adicionar as contas na base de dados do LDAP, necessrio criar a estrutura
onde sero armazenadas (caso ainda no exista). Para essa tarefa, ser utilizado o script
smbldap-populate.
Para inicializar e popular a base de dados do OpenLDAP com smbldap-populate, necessrio configurar o pacote smbldap-tools, editando os arquivos /etc/smbldap-tools/smbldap.
conf e /etc/smbldap-tools/smbldap_bind.conf, para se adequar s caractersticas do
ambiente. Para isso, os seguintes passos so necessrios:
Obter o SID do domnio Samba:
root# net getlocalsid
SID for domain SERVER is: S-1-5-21-3102374607-2088646784-3588851380
Editar o arquivo /etc/smbldap-tools/smbldap.conf. Esse o arquivo que contm toda a configurao do Samba e do OpenLDAP:
root# zcat /usr/share/doc/smbldap-tools/examples/smbldap.conf.gz > /etc/smbldaptools/smbldap.conf
Captulo 9 - Samba
167
168
home drive do usurio (aceita a substituio %U para o username Mesmo valor do parmetro logon home do arquivo smb.conf). Exemplo \\SMBSERVER\%U;
11 userProfile=CAMINHO UNC: o caminho no formato UNC para a localizao do perfil
do usurio (aceita a substituio %U para o username Mesmo valor do parmetro
logon script do arquivo smb.conf ). Exemplo \\SMBSERVER\%U\profiles;
11 userHomeDrive=LETRA:: a letra para o mapeamento padro do home drive (Mesmo
valor do parmetro logon drive do arquivo smb.conf ). Exemplo H:;
11 userScript=SCRIPT.BAT: o nome do script padro utilizado para realizar o netlogon
do usurio (Mesmo valor do parmetro logon script do arquivo smb.conf). Exemplo:
logon.cmd;
11 mailDomain=DOMINIO: domnio adicionado ao atributo mail dos usurios. Exemplo:
empresa.com.br;
Editar o arquivo /etc/smbldap-tools/smbldap_bind.conf, onde as credenciais para conexo
com o servidor OpenLDAP so configuradas:
root# cp /usr/share/doc/smbldap-tools/examples/smbldap_bind.conf /etc/smbldap-tools/.
Esse comando vai ler os arquivos de configurao e criar a estrutura de diretrio (caso ainda
no exista) dentro do servidor OpenLDAP, conforme definido no arquivo smbldap.conf.
com o LDAP
11 Parmetros na seo [global]
22 ldap admin dn = ADMIN DN
ldap ssl = valor
22 passdb backend = ldapsam:ldap://SERVIDOR[:porta]
Captulo 9 - Samba
169
Configuraes adicionais
11 O Servidor Samba deve ser configurado como um cliente LDAP
Configurao de compartilhamento
rea de armazenamento que ser compartilhada na rede
Definida como
11 [nome_do_compartilhamento]
possvel criar um compartilhamento pblico ou restrito a determinados usurios
Principais parmetros para configurar um compartilhamento
11 path
11 comment
11 browseable
11 guest account
11 public
11 guest only
11 write list
11 read list
11 valid users
11 invalid users
11 locking
11 available
11 read only
11 writable
11 create mask
11 directory mask
11 volume
Para criar um compartilhamento de rede, necessrio definir a rea que ser disponibilizada para armazenamento. A definio de um compartilhamento feita configurando uma
seo [nome_do_compartilhamento] no arquivo smb.conf. A seguir um exemplo da configurao de um compartilhamento chamado smbdados. Esse compartilhamento utilizar o
diretrio /mnt/dados e ser acessvel a todos os usurios.
[smbdados]
comment = Espao para Compartilhamento de Dados
path = /mnt/dados
writable = yes
public = yes
Captulo 9 - Samba
definir quais usurios tero direito de acesso, utilizando o parmetro valid users.
171
Atividades administrativas
Comandos de administrao pdbedit, smbpasswd e smbldap-tools
smbpasswd
172
Os comandos de administrao do Samba possuem vrios parmetros, e so utilium dos comandos (man smbpasswd, man pdbedit etc.).
Captulo 9 - Samba
173
useradd -c Descricao -m
root#
passwd USUARIO
USUARIO
smbpasswd -a USUARIO
ou
root#
pdbedit -a -u USUARIO
smbldap-useradd -a -P USUARIO
Remover conta
Utilizando o backend tdbsam
174
pdbedit -x USUARIO
root#
userdel USUARIO
Listar conta
Utilizando o backend tdbsam
11 root# pdbedit -L
11 root# pdbedit -Lv USUARIO
pdbedit -L
root#
smbldap-userlist -u
root#
smbldap-usershow USUARIO
Outros comandos
11 Verificar usurios conectados ao Servidor Samba
22 root# smbstatus
Captulo 9 - Samba
175
11 Alterar a senha
22 root# passwd USUARIO
22 root# pdbedit -a USUARIO
ou
22 root# smbldap-passwd USUARIO
Alguns outros comandos e exemplos de atividades administrativas que regularmente so
executados.
Verificar usurios conectados ao Servidor Samba
root# smbstatus
ou
root#
USUARIO
ou
root#
root#
176
ou
root#
Nesse exemplo, a conta ser bloqueada (D), ativar o bloqueio automtico (L) e a
senha no vai expirar (X).
smbpasswd -d USUARIO
ou
root#
smbldap-usermod -I USUARIO
smbpasswd -e USUARIO
ou
root#
smbldap-usermod -J USUARIO
Alterar a senha
root#
passwd USUARIO
root#
pdbedit -a USUARIO
ou
root#
smbldap-passwd USUARIO
Gerenciamento de Grupos
Criar grupos
Utilizando o backend ldapsam (atravs do smbldap-tools):
smbldap-groupadd -a GRUPO
smbldap-groupmod -a GRUPO
Remover grupo
Utilizando o backend ldapsam (atravs do smbldap-tools):
smbldap-groupdel GRUPO
Listar grupo
Utilizando o backend ldapsam (atravs do smbldap-tools):
root#
smbldap-grouplist -tS
root#
smbldap-groupshow GRUPO
Captulo 9 - Samba
177
bin/false NOME-DA-MAQUINA$
root#
passwd -l NOME-DA-MAQUINA$
root#
pdbedit -a -m -u NOME-DA-MAQUINA
178
root#
pdbedit -x -m -u NOME-DA-MAQUINA
root#
userdel NOME-DA-MAQUINA$
smbldap-userdel NOME-DA-MAQUINA$
smbldap-userlist -m
root#
smbldap-usershow NOME-DA-MAQUINA$
pdbedit -P ?
root#
pdbedit -P NOME_DA_POLITICA
11 root# pdbedit -P ?
11 root# pdbedit -P NOME_DA_POLITICA
O comando para alterar uma poltica :
11 root# pdbedit -P NOME_DA_POLITICA -c VALOR
Exemplos:
11 Definir que o tamanho mnimo de senha seja de 8 caracteres:
22 root# pdbedit -P min password length -C 8
11 Definir que a validade mxima da senha seja de 90 dias:
22 root# pdbedit -P maximum password age -C 7776000
O comando para alterar uma poltica :
root#
Exemplos:
Definir que o tamanho mnimo de senha seja de 8 caracteres:
root#
Captulo 9 - Samba
root#
179
180
10
Aprender a teoria e prtica do servio DHCP; Conhecer formas de transferncia de
arquivos entre computadores; Entender o funcionamento do File Transfer Protocol (FTP);
Analisar formas seguras de transferncia de arquivos envolvendo encriptao e
autenticao, inclusive na administrao remota de outros servidores e backup.
conceitos
Introduo
O estudo deste captulo est dividido em trs partes: DHCP, FTP e SSH. Na primeira parte
so abordados aspectos tericos e prticos do servio DHCP, sendo examinadas algumas
possibilidades de uso dessa soluo.
Na segunda parte sero estudadas as formas de transferncia de arquivos entre computadores, com o servio FTP, associadas a grupos de usurios e pastas.
Na ltima parte conheceremos formas seguras de transferncia de arquivos, que envolvem
encriptao e autenticao, inclusive na administrao remota de outros servidores e backup.
DHCP
Protocolo de rede cuja funo atribuir informaes TCP/IP para as mquinas clientes.
objetivos
182
11 Alocao automtica.
11 Alocao dinmica.
11 Alocao manual.
O DHCP suporta trs mecanismos para alocao de endereos IP:
11 Alocao automtica: um endereo IP atribudo permanentemente para uma estao;
11 Alocao dinmica: um endereo IP atribudo para uma estao por um perodo determinado de tempo;
11 Alocao manual: um endereo IP atribudo para uma estao pelo administrador da
rede, o que feito por meio do arquivo de configurao do DHCP.
Podemos utilizar um ou mais desses mecanismos ao mesmo tempo em uma determinada
rede. Uma estao cliente deve ser capaz de descobrir os parmetros necessrios ao seu
funcionamento, inserindo-os automaticamente em seu sistema sem interveno manual.
OP (1)
HTYPE (1)
HLEN (1)
HOPS (1)
XID (4)
SECS (2)
FLAGS (2)
CIADDR (4)
YIADDR (4)
SIADDR (4)
GIADDR (4)
CHADDR (16)
SNAME (64)
Figura 10.1
Formato de uma
mensagem DHCP
indicando campos e
tamanho em bytes.
FILE (128)
OPTIONS (varivel)
OPTIONS
183
184
11 SNAME (Server Name): campo opcional que define o nome do servidor DHCP;
11 FILE (Boot Filename): nome do arquivo de boot. Nulo em mensagem DHCPDISCOVER;
caminho completo de arquivo em DHCPOFFER;
11 OPTIONS: parmetros opcionais. Esse campo utilizado para informar que tipo de resposta ou solicitao DHCP (DHCPDISCOVER, DHCPOFFER etc.) est sendo enviada para o
cliente ou para o servidor.
Lado cliente
Mensagens
Lado servidor
DHCPDISCOVER
Determina
Recebe
resposta
Cliente DHCP
DHCPOFFER
DHCPREQUEST
DHCPACK
DHCPRELEASE
Libera lease
Figura 10.2
Funcionamento do
protocolo DHCP
congurao
Commit
Servidor DHCP
Inicializao
completa
Tempo
Durante a obteno dos parmetros de configurao, algumas mensagens so trocadas
entre o servidor e o cliente DHCP. A seguir descrita a sequncia desses comandos com
seus respectivos significados:
11 Cliente envia mensagem broadcast DHCPDISCOVER. Inclui o endereo fsico, podendo
incluir sugesto de endereo IP e durao do lease;
11 O servidor pode responder com uma mensagem DHCPOFFER, que inclui um endereo
IP disponvel no campo YIADDR e outros parmetros em OPTIONS. O servidor verifica a
disponibilidade do endereo IP antes de disponibiliz-lo;
11 O cliente envia uma mensagem DHCPREQUEST que inclui o identificador do servidor DHCP.
Isso necessrio para o caso de o cliente receber respostas de mais de um servidor DHCP;
11 O servidor, aps receber a mensagem, salva as configuraes e responde com uma mensagem DHCPACK contendo as configuraes ofertadas anteriormente;
11 O cliente efetua uma verificao utilizando o protocolo ARP com o endereo fornecido.
o cliente receba uma mensagem DHCPNACK, o processo reiniciado;
11 O cliente pode ainda liberar o endereo informando seu CHADDR.
Caso o cliente j saiba o endereo IP, desejando apenas renov-lo, enviar diretamente um
DHCPREQUEST.
necessrio efetuar algumas verificaes antes da edio do arquivo de configurao e
ativao do servidor DHCP. Entre elas: verificar se o daemon est instalado e conferir a sua
localizao, assim como a existncia do arquivo com a base de dados e a forma de interao
Caso perceba que o endereo j est em uso, envia uma mensagem DHCPDECLINE. Caso
Instalao do DHCP
# touch /var/lib/dhcp/dhcp.leases
186
Deve-se escolher o mtodo a ser utilizado pelo servidor. A opo deve ser includa no incio
do arquivo dhcpd.conf.
ddnsupdatestyle interim;
default-lease-time 18000;
Captulo 10 -
22 range: faixa de endereos IP que o servidor DHCP utilizar para configurar os clientes.
187
Exemplos de configurao
# Arquivo dhcpd.conf
ddnsupdatestyle interim;
default-lease-time 18000;
Outro exemplo de arquivo de configurao, nesse caso para duas sub-redes com VLANs
diferentes:
# Arquivo dhcpd.conf
ddns-update-style interim;
default-lease-time -18000;
max-lease-time -18000;
option domain-name-servers 192.168.0.253;
#Rede vlan 10
subnet 192.168.10.0 netmask 255.255.255.0 {
}
#Rede vlan 20
subnet 192.168.20.0 netmask 255.255.255.0 {
Para que essa configurao com VLAN funcione corretamente, necessrio que as
188
ddnsupdatestyle interim;
group {
default-lease-time 18000;
max-lease-time 18000;
host leao {
fixed-address 192.168.0.2;
host tigre {
fixed-address 192.168.0.3;
Quando o servidor dispe de mais de uma interface de rede, podemos especificar qual
interface o servidor utilizar para ouvir as requisies DHCP. Essa funcionalidade extremamente til quando o servidor se encontra conectado a uma rede interna a qual deve prover
DHCP, e a uma rede externa a qual no se deseja acesso ao DHCP. Por padro, o daemon do
DHCP s ouvir nas interfaces para as quais ele encontrar uma declarao de sub-rede no
arquivo de configurao dhcpd.conf. Se for necessrio restringir explicitamente quais interfaces ele utilizar, necessrio realizar os seguintes passos:
Red Hat / CentOS
root# cp /usr/lib/systemd/system/dhcpd.service /etc/systemd/system/
root# vi /etc/systemd/system/dhcpd.service
> ExecStart=/usr/sbin/dhcpd -f -cf /etc/dhcp/dhcpd.conf -user dhcpd -group dhcpd
--no-pid <nomes_das_interfaces>
root# systemctl --system daemon-reload
root# systemctl restart dhcpd.service
Captulo 10 -
189
A configurao de um cliente DHCP pode ser efetuada em dois momentos: (I) durante a
instalao do Sistema Operacional; (II) em qualquer momento, se for realizada pelo usurio
com privilgios de administrador da mquina.
Durante o processo de instalao do Sistema Operacional, surgir uma mensagem solicitando que seja escolhida a opo de configurao da rede: automtica (DHCP) ou manual.
Escolhendo a opo automtica, a mquina iniciar o processo para obteno dos parmetros de rede.
Aps o processo de instalao, a configurao pode ser feita por meio de interface grfica
ou linha de comando. Para a configurao por linha de comando, o arquivo a ser editado
/etc/sysconfig/network-scripts/ifcfg-eth0, nas distribuies Red Hat/CentOS, ou no arquivo
/etc/network/interfaces, no Ubuntu Server.
190
Esse servio pode ser configurado para permitir o acesso a todo e qualquer usurio,
denominado annimo, ou para restringir o acesso a determinados usurios. Em ambos os
casos podemos determinar quem acessa o qu e os privilgios que possui nas pastas que
acessa. Podemos ainda efetuar ajustes para facilitar a passagem por meio de firewalls, para
utilizao de mltiplos servidores virtuais, e tambm para permitir o uso por grupos de
usurios. O administrador de um servidor FTP tem pleno controle sobre quem pode acessar
o qu. Nesse caso, podemos escolher entre permitir ou restringir o acesso de usurios annimos. Podemos ainda relacionar usurios cadastrados a determinadas pastas.
Em todos os casos os privilgios de leitura, escrita, criao ou remoo de arquivos e pastas
podem ser controlados.
De modo geral h dois tipos de usurios:
11 Usurio normal: usurio cadastrado. Possui login e senha, e por meio deles acessa
determinadas pastas e arquivos;
11 Usurio annimo: usurio que acessa o servio sem ser autenticado. De modo geral
possui somente permisso de leitura, podendo efetuar download de arquivos considerados pblicos.
Nos dois casos possvel conceder privilgios de leitura (download) e escrita (upload) a
determinadas pastas e arquivos. Entretanto, recomenda-se manter o usurio com acesso
somente para leitura e na pasta pblica. Caso no seja necessrio um usurio annimo,
desejvel ainda bloquear o acesso desse tipo de usurio.
Figura 10.3
Funcionamento
do FTP.
Funcionamento do FTP
Baseado no estabelecimento de conexes entre o cliente e o servidor:
Captulo 10 -
conexes simultneas.
191
Conexo de dados
Cliente FTP
Servidor FTP
FTP passivo
Conexo de controle
De: porta alta cliente Para: porta 21 servidor
Conexo de dados
Cliente FTP
Servidor FTP
Um servidor FTP pode funcionar no modo passivo ou ativo. Nos dois casos existem as conexes de controle e as conexes de dados. A diferena est na parte que origina cada conexo.
O acesso a um servidor ativo muitas vezes bloqueado pelo firewall da rede, uma vez que as
192
conexes de dados so iniciadas por mquinas de fora da rede e com destino a mquinas na
rede interna.
A resposta ao comando ls, que lista os diretrios do servidor, enviada pela porta 20.
Figura 10.4
Tipos de Servidores
Ativo e Passivo.
O cliente se conecta ao servidor por meio de uma conexo de controle, que se origina em
uma porta alta do cliente e se destina porta 21 do servidor. A diferena que, quando
solicitada a transferncia de arquivos, a conexo de dados iniciada por uma porta alta do
cliente e se destina a uma porta alta no servidor. Desse modo, o servidor nunca inicia uma
conexo TCP, que sempre iniciada pelo cliente. Essa opo funciona melhor quando o
cliente est protegido por um firewall
Alguns comandos utilizados para conexo ao servidor FTP e envio ou recebimento de arquivos:
11 ?: ajuda dos comandos;
11 binary: coloca as transferncias em modo binrio;
11 bye: termina a sesso de FTP e sai;
11 cd: muda de diretrio a ser trabalhado;
11 close: termina apenas sesso do FTP;
11 delete: remove um arquivo do servidor;
11 dir: cria uma lista de arquivos do diretrio;
11 get: recebe um arquivo;
11 help: exibe a ajuda do servidor local;
11 cd: muda o diretrio;
11 ls: lista o contedo dos diretrios;
11 rmdelete: remove vrios arquivos;
11 mget: recebe vrios arquivos;
11 mkdir: cria um diretrio no servidor;
11 mput: envia vrios arquivos;
11 open: conecta a um servidor FTP;
11 put: envia um arquivo;
11 pwd: exibe o nome do diretrio atual;
11 quit: termina a sesso do FTP e sai;
11 recv: recebe um arquivo;
11 rename: renomeia um arquivo.
Consideraes de segurana:
11 Restrio de acesso a usurios.
11 Envio de arquivo como annimo (Anonymous Upload).
11 Mudar banner de saudao.
11 Utilizao de SCP como alternativa ao FTP.
uma conexo ao servidor FTP normalmente. Entretanto, ao utilizar os comandos ls, dir ou
get, o que inicia uma conexo de dados originada do servidor FTP em direo ao cliente, a
transao bloqueada impedindo o uso do servio. Para isso so possveis duas solues:
Captulo 10 -
193
1. Utilizar o servidor FTP em modo ativo: criar regras que permitam o funcionamento das
conexes de controle e de dados. Em especial o estabelecimento de uma conexo originada do servidor FTP, caso no seja permitido utilizar servidor passivo;
2. Utilizar o servidor FTP em modo passivo: criar regras que permitam o estabelecimento de
conexes de controle e de dados originadas a partir do cliente.
Ao configurar o servidor FTP, recomendado levar em considerao as seguintes questes
relacionadas segurana:
11 Restrio de acesso a usurios: adicionar restrio de usurios do sistema que
possuem privilgios de acesso e que por isso no podem utilizar o FTP;
11 Acesso de usurios annimos: caso seja permitido o acesso a usurios annimos, verificar se a pasta pblica possui permisso somente de leitura;
11 Mudar o banner de saudao: trocar o valor da diretiva ftpd_banner. O valor padro traz
indicaes do sistema, informaes que podem ser utilizadas por usurios maliciosos;
11 Utilizao de criptografia com o FTP: a adoo de medidas de segurana pode prevenir
uma invaso ou utilizao indevida do servio. Por padro, os dados, inclusive login e
senha, so transmitidos em texto plano. Servidores como o VSFTPF e PROFTPD suportam
o uso do SSL/TLS. Como alternativa, possvel utilizar o Secure Copy (SCP) ou Secure FTP
(SFTP) para a transmisso de arquivos sigilosos;
194
SSH encripta todo o trfego, incluindo a senha ou chave de autenticao. Tambm usa
chaves de hosts para identificao dos dois hosts envolvidos na comunicao.
A verso do SSH1 era aberta at o release 1.2.12. A partir da verso 1.2.13, a licena mudou
para comercial. O OpenSSH tem a licena GPL, e foi desenvolvido a partir do SSH verso
1.2.13, tendo implementado tambm as caractersticas do protocolo SSH2. Se possvel,
deve-se usar clientes e servidores que suportem SSH2.
OpenSSH
Implementao open source do SSH.
11 openssh-server
Editar arquivo de configurao:
11 /etc/ssh/sshd_config
Ativar o servio sshd.
A configurao de um cliente OpenSSH requer os pacotes:
11 openssh-clients
11 openssh
Para utilizao do servio OpenSSH, necessrio que a mquina remota, denominada servidor,
tenha o pacote opensshserver instalado. necessrio ainda que o arquivo de configurao
esteja com a configurao correta, e, opcionalmente, que o daemon sshd esteja configurado
para iniciar durante a inicializao do sistema. O arquivo de configurao do servidor /etc/ssh/
sshd_config, enquanto o arquivo de configurao do cliente /etc/ssh/ssh_configura.
Embora o OpenSSH esteja pronto para execuo logo aps instalado, recomenda-se que
Entre os ajustes possveis:
11 Mudar a porta utilizada pelo servio: parmetro Port. Pode ser configurado no servidor
e no cliente;
Captulo 10 -
alguns ajustes sejam feitos no arquivo de configurao, o que eleva a segurana do sistema.
195
11 Configurar para aceitar somente a verso SSH2: parmetro Protocol. Pode ser configurado no servidor e no cliente;
11 No permitir acesso como root pelo OpenSSH: parmetro PermitRootLogin. S pode
ser configurado no servidor;
11 Ignorar arquivos.rhosts e.shosts: j que eles autorizam logins subsequentes sem
senha: parmetro IgnoreRhosts. S pode ser configurado no servidor;
11 No permitir senhas em branco: parmetro PermitEmptyPasswords. S pode ser configurado no servidor;
11 Habilitar o uso do servidor SFTP (opcional): parmetro Subsystem. S pode ser configurado no servidor.
A seguir so apresentados alguns parmetros do arquivo de configurao.
Parte do contedo do arquivo /etc/ssh/sshd_config:
# /etc/ssh/sshd_config
Port 2020
Protocol 2
ListenAddress 0.0.0.0
PermitRootLogin no
X11Forwarding no
CheckMail no
RSAAuthentication yes
DSAAuthentication yes
RhostsAuthentication no
RhostsRSAAuthentication no
IgnoreRhosts yes
PasswordAuthentication yes
PermitEmptyPassword no
Comando ssh
Permite efetuar login e executar comandos em uma mquina remota. Exemplo:
196
Caso o nome do usurio seja omitido, seu login atual do sistema ser usado. O uso da opo -C
recomendado para ativar o modo de compactao dos dados (til em conexes lentas). Uma
porta alternativa pode ser especificada usando a opo -p porta (a 22 usada por padro).
Variveis de ambiente personalizadas para o ssh podero ser definidas no arquivo
~/.ssh/environment. Comandos que sero executados somente na conexo ssh em
~/.ssh/rc e /etc/ssh/sshrc.
Estabelecendo conexo
Ao conectar-se pela primeira vez a determinado servidor, exibida a seguinte mensagem:
SCP
Permite a cpia de arquivos entre hosts de forma segura.
Captulo 10 -
Desse modo, a transferncia de um ou mais arquivos entre duas mquinas pode ser feita
197
SFTP
Permite realizar de forma segura a transferncia de arquivos entre hosts.
Connecting to 192.168.0.1
root@192.168.0.1s password:
sftp> ls
pasta1
pasta2
pasta3
sftp> cd pasta1
sftp> ls
teste.txt
sftp> exit
O servio SFTP j vem habilitado por padro no servidor, atravs da seguinte linha, que
198
Por padro, ele est disponvel para todos os usurios, que possuem os mesmos direitos de
acesso aos arquivos de sistema. Ao disponibilizar esse servio na internet, recomendado
configur-lo para um grupo restrito de usurios, que ficaro confinados a um diretrio
especfico, atravs do chroot. Para isso, basta comentar a linha acima e incluir a seguinte
configurao no final no arquivo /etc/ssh/sshd_config:
#Subsystem sftp /usr/lib/openssh/sftp-server
...
Subsystem sftp internal-sftp
Match Group sftp
ChrootDirectory /ftp/%u
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp
Gerao de chaves
ssh-keygen -t <tipo>
Captulo 10 -
199
Agente SSH
Permite automatizar a autenticao atravs de um agente SSH.
200
responsvel
pelo
O curso ensina a projetar, instalar, configurar e disponibilizar os principais servios para internet em uma rede
TCP/IP. Apresenta os conceitos associados a cada um
dos servios, e a instalao e configurao do KVM como
base para o ambiente de virtualizao. Aborda a autenticao nos servios com LDAP, com apoio intensivo de
atividades prticas.
Administrao de
Sistemas Linux
Servios para
Internet
Wagner Vieira Leo
Bruno Alves Fagundes
Andr Ramos Carneiro
Ministrio da
Cultura
Ministrio da
Sade
Ministrio da
Educao
ISBN 978-85-63630-55-1
Ministrio da
Cincia, Tecnologia
e Inovao
9 788563 630551
ads4.capa-NPE-V3.0.0.indd 1
27/04/2016 14:06:54