Buscar

Administração de Redes em Software Material de Estudo

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

CCT 0037 - ADMINISTRAÇÃO DE REDES EM SOFTWARE LIVRE – Versão Alunos - 
Plano de Ensino - 
CCT 0037 - 
ADMINISTRAÇÃO DE REDES EM SOFTWARE LIVRE
	
	Apresentação da disciplina
	A medida que a sociedade se torna mais dependente dos computadores, o software que é executado é de fundamental importância para garantir o futuro de uma sociedade livre.
Utilizar software livre não significa utilizar software gratuito, mas sim ter a liberdade para executar, copiar, distribuir, estudar e aperfeiçoar o software. É ter controle total sobre a tecnologia que utilizamos, onde os computadores trabalham para o benefício do indivíduo e da sociedade.
Em 1984 foi lançado o projeto GNU, com o objetivo de desenvolver um sistema operacional completo e livre, baseado no padrão POSIX. O GNU/Linux funciona nas mais variadas arquiteturas computacionais, incluindo sistemas embarcados.
A disciplina administração de redes em software livre apresenta os conceitos e as características de um sistema operacional livre, capacitando o aluno a montar e administrar redes baseadas em software livre.
	Ementa
História e Conceitos Básicos do Software Livre; Administração de Contas de Usuários; Controle de Dispositivos; Serviços para Redes Local; Arquivos de Log;  Agendador de Tarefas; Quota de Disco; Serviços para Internet e Intranet; Monitoramento de Servidores.
Objetivos gerais
	Especificar, implementar e administrar ambientes computacionais baseados em software livre.
Monitorar e realizar a manutenção de sistemas baseados em software livre.
Objetivos específicos
	O aluno deverá ser capaz de: 
administrar usuários;  
configurar serviços em rede; 
analisar os logs do sistema;  
administrar tarefas;  
administrar dispositivos;  
monitorar servidore; e 
automatizar a tarefa de backup.
Conteúdos
	1 – INTRODUÇÃO
1.1 – Software Livre 
1.1.1 – Conceitos
1.1.2 – Histórico
1.2 – Distribuições do Linux
1.3 – Páginas de ajuda
1.4 – Inicialização do sistema
1.5 – Sistemas de arquivos
1.6 – Comandos básicos
2 – ADMINISTRAÇÃO DO SISTEMA
2.1 – Atualização do sistema
2.2 – Gerenciamento de usuários e grupos
2.3 – Permissões de acesso a arquivos e diretórios
2.4 – Agendador de tarefas
2.5 – Quota de disco
2.6 – Arquivos de log
2.7 – Automatização de backup
3 – GERENCIAMENTO DE SERVIÇOS
3.1 – Configuração de rede
3.2 – Níveis de execução
3.3 – Controle de serviços
3.4– Serviços para rede local
3.4.1 – NFS
3.4.2 – Samba
3.5 – Serviços para intranet e internet
3.5.1 – DNS
3.5.2 – Web
3.5.3 – FTP
3.5.4 – Correio eletrônico
3.5.5 – Monitoramento de servidores
	
Material didático
	Título: Manual Completo do Linux
Autores: Evi Nemeth, Garth Snyder e Trent R. Hein
Editora: Pearson Education do BrasilAno: 2007
Edição: Segunda edição
Capítulos:
2 (17 páginas) 
5 (16 páginas)
6 (13 páginas)
8 (6 páginas)
9 (31 páginas)
10 (16 páginas)
16 (12 páginas)
26 (15 páginas)
28 (12 páginas)
Total de 138 páginas
Procedimentos de ensino
	Aulas expositivas abordando os aspectos teóricos e práticos relacionados ao tópico do conteúdo programático.
Exercícios em grupo ou individuais para fixação do conteúdo.
Práticas em laboratório para fixação dos assuntos abordados.
Recursos
	Sala de aula
Laboratório de informática
Sistema operacional Linux instalado (sugerido o Fedora)
Procedimentos de avaliação
	O processo de avaliação será composto de três etapas, Avaliação 1 (AV1), Avaliação 2 (AV2) e Avaliação 3 (AV3).As avaliações poderão ser realizadas através de provas teóricas, provas práticas, e realização de projetos ou outros trabalhos, representando atividades acadêmicas de ensino, de acordo com as especificidades de cada disciplina. A soma de todas as atividades que possam vir a compor o grau final de cada avaliação não poderá ultrapassar o grau máximo de 10, sendo permitido atribuir valor decimal às avaliações. Caso a disciplina, atendendo ao projeto pedagógico de cada curso, além de provas teóricas e/ou práticas contemple outras atividades acadêmicas de ensino, estas não poderão ultrapassar 20% da composição do grau final.A AV1 contemplará o conteúdo da disciplina até a sua realização, incluindo o das atividades estruturadas.As AV2 e AV3 abrangerão todo o conteúdo da disciplina, incluindo o das atividades estruturadas.
Para aprovação na disciplina o aluno deverá:
1. Atingir resultado igual ou superior a 6,0, calculado a partir da média aritmética entre os graus das avaliações, sendo consideradas apenas as duas maiores notas obtidas dentre as três etapas de avaliação (AV1, AV2 e AV3). A média aritmética obtida será o grau final do aluno na disciplina.
2. Obter grau igual ou superior a 4,0 em, pelo menos, duas das três avaliações.
3. Frequentar, no mínimo, 75% das aulas ministradas.
Bibliografia básica
	Nemeth, E., Snyder, G., Hein, T. R., Manual Completo do Linux, 2ª edição, Editora Pearson Education do Brasil, São Paulo, 2007. 
Kurose, J. F., ROSS, K. W., Redes de computadores e a Internet: uma abordagem top-down, 5ª edição, Editora Pearson Education do Brasil, São Paulo, 2010. 
Comer, D. E., Interligação em Redes com TCP/IP – Volume 1, 5ª edição, Editora Campus, Rio de Janeiro, 2006.
Introdução 1 - Conceituação
Objetivos
Conhecer o docente da disciplina.
Conhecer o plano de ensino da disciplina.
Compreender os conceitos de software livre.
Conhecer o histórico do Linux.
Entender as diferenças entre as distribuições de software livre.
Aprender a procurar por ajuda no sistema.
Compreender o processo de inicialização e desligamento do sistema.
Conceitos de Software Livre
Um software  é considerado livre quando atende a quatro tipos de liberdade para os usuários do software:
A liberdade para executar o programa, para qualquer propósito.
A liberdade de estudar como o programa funciona, e adaptá-lo para as suas necessidades.
A liberdade de redistribuir cópias de modo que você possa ajudar ao seu próximo.
A liberdade de modificar o programa, e liberar estas modificações, de modo que toda a comunidade se beneficie.
A maioria dos softwares livres são licenciados através de uma licença de software livre, sendo a GNU GPL a mais conhecida delas.
O artigo abaixo descreve software livre X software proprietário:
Jon ‘Maddog’ Hall ensina como ganhar dinheiro com software livre
http://www.techtudo.com.br/noticias/noticia/2012/07/jon-maddog-hall-ensina-como-ganhar-dinheiro-com-software-livre.html
Histórico do Linux
Estudar a evolução do sistema operacional Linux e seu relacionamento com o UNIX. O histórico pode ser encontrado no capítulo 1.3 (página 4) do livro “Manual Completo do Linux – 2ª edição”, disponível para consulta na biblioteca virtual da Estácio.
Distribuições do Linux
Uma distribuição Linux é um conjunto de programas incluindo o núcleo (kernel) do Linux e outras aplicações, formando um conjunto. Distribuições são mantidas por organizações comerciais e por projetos comunitários, que montam e testam seus conjuntos de software antes de disponibilizá-los ao público.
Qualquer organização ou indivíduo pode criar e disponibilizar sua própria distribuição. Isso faz com que hoje haja registro de centenas de distribuições ativas.
Exemplos de distribuições podem ser encontrados no capítulo 1.4 (página 5) do livro “Manual Completo do Linux – 2ª edição”, disponível para consulta na biblioteca virtual da Estácio.
Páginas de ajuda
O Linux possui uma extensa documentação para ser consultada, que pode ser encontrada em sítios da Internet ou instalada no próprio sistema. Dentre as várias fontes de consulta podem ser citadas:
Páginas man (comando man)
Documentos textinfo (comando info)
Documentação técnica do projeto de documentação do Linux (http://tldp.org)
Documentação específica disponibilizada pelas diferentes distribuições
Páginas web espalhadas por todo o mundo dedicadas a ensinar e difundir o uso do Linux
Inicialização
Quando o computador é ligado, a BIOS verifica o sistema e dispara o primeiro estágio do boot
a partir do MBR do disco. Como o MBR é muito pequeno, o primeiro estágio é utilizado apenas para carregar em memória o segundo estágio, que normalmente se encontra no diretório “/boot”.
O segundo estágio carrega o núcleo na memória, que carrega alguns módulos e monta a partição “/” como somente leitura. O núcleo então transfere o controle do sistema ao programa init. Exemplos de programas que fazem a carga do segundo estágio são o Grub e o Lilo.
O init coloca o sistema em modo multiusuário, carrega todos os serviços e monta as partições listadas em /etc/fstab. O init é iniciado como o primeiro processo do sistema, tornando-se pai de todos os outros processos.
	Níveis de Execução
	Ação
	0
	desligar o sistema
	1
	modo monousuário, também chamado de modo single
	2
	modo multiusuário, texto
	3
	modo multiusuário, texto, com serviços
	4
	não utilizado
	5
	modo gráfico (X11)
	6
	reinicializar o sistema
O nível de execução mais utilizado é o 3, por permitir que multiusuários acessem o sistema e tenham acesso à rede. Quando desejar que a tela de acesso inicial esteja em modo gráfico, basta configurar o nível de execução em 5. O nível número 1 faz com que o sistema entre no modo single, onde são inicializados o shell padrão e os serviços que foram configurados para inicializar neste nível. Se você executar o comando /sbin/chkconfig --list, a lista com todos níveis de execução e todos os serviços será fornecida, mostrando em quais níveis de execução cada serviço é inicializado. O modo single é importante para manutenção do sistema, pois pode verificar serviços e programas sem prejudicar o funcionamento do sistema, já que a maioria dos serviços e programas estarão parados.
Mais detalhes:
http://linuxcommand.org/man_pages/chkconfig8.html
Aplicação Prática Teórica
Estudo dirigido: leitura do capítulo 2 do livro “Manual Completo do Linux – 2ª edição”.
Pesquisar sobre vantagens e desvantagens de se utilizar software livre em servidores.
Avaliação
Qual a diferença entre software livre e software gratuito?
Citar softwares gratuitos que não são softwares livres.
Como a liberdade do software pode vir a beneficiar a sociedade?
O que diferencia uma distribuição de um sistema operacional?
Qual o programa do Linux é responsável pela carga dos demais processos em memória?
Qual a função dos gerenciados de boot Grub e Lilo?
Introdução 2 - Sistemas de arquivos e comandos 
Objetivos
Entender os conceitos de sistema de arquivos.
Conhecer os principais sistemas de arquivos suportados pelo Linux.
Conhecer os comandos básicos utilizados na administração de software livre.
Sistemas de arquivos
O armazenamento e a recuperação de informações são atividades essenciais para qualquer tipo de aplicação. As principais exigências para armazenamento de informações são:
Deve ser possível armazenar uma grande quantidade de informações.
A informação deve sobreviver à finalização do processo que a utiliza.
Múltiplos processos devem ser capazes de acessar as informações concorrentemente.
É mediante a implementação de arquivos em discos ou outras mídias que o sistema operacional estrutura e organiza estas informações.
O sistema de arquivos é constituído de duas partes distintas: um conjunto de arquivos, que armazenam dados, e uma estrutura de diretórios, que organiza e fornece informações sobre os arquivos do sistema.
O Linux suporta diferentes tipos de sistemas de arquivos. Dentre os principais, pode-se citar: EXT2, EXT3, EXT4, Reiser, FAT12, FAT16, FAT32, HPFS, NTFS, AIX, QNX, CP/M, Novell Netware, etc.
O sistema de arquivos é baseado em uma estrutura hierárquica que se inicia no diretório / (diretório raiz). Nesta estrutura são montados todos os demais sistemas de arquivos, formando uma hierarquia única. Para se obter acesso a outros sistemas de arquivos, eles antes devem ser montados em algum ponto desta hierarquia.
Tipos de arquivos suportados pelo Linux:
Regulares – Arquivos comuns contendo uma sequência qualquer de bytes, sem qualquer restrição quanto à sua estrutura interna.
Diretórios – Arquivos de sistema usados para manter a estrutura do sistema de arquivos. Contém referências para outros arquivos.
Dispositivos de caracteres – Arquivos especiais que permitem acesso à dispositivos de E/S. Costumam modelar dispositivos seriais.
Dispositivos de bloco – Arquivos especiais que permitem acesso à dispositivos de E/S. Costumam modelar dispositivos de bloco, em especial discos.
Sockets – Conexões de permitem a troca de informações entre processos. Pode ser local ou em rede.
Pipes – Conexões que permitem a troca de informações entre processos no mesmo host.Links – Ligações entre arquivos.
Comandos básicos
Estudar os principais comandos utilizados na administração de um sistemas operacional livre. Dentre eles podem ser citados: 
ls, 
pwd, 
cd, 
mkdir, 
rmdir, 
cp, 
mv, 
rm, 
more, less, 
cat, tail, 
ln, 
ping, 
telnet, 
ssh, 
ps, 
top, 
kill, 
find, 
su, 
netstat, 
route e 
ifconfig.
A explicação para cada um dos comando acima, assim como de outros comandos, pode ser encontrada no manual Focalinux, disponível para download no endereço http://focalinux.cipsga.org.br/.
Aplicação Prática Teórica
Estudo dirigido: leitura do capítulo 5 do livro “Manual Completo do Linux – 2ª edição”.
Pesquisar sobre os seguintes assuntos:
arquivo “/etc/fstab”
montagem e desmontagem de sistemas de arquivos remotos
comando “umask”.
Avaliação
Qual a diferença entre link simbólico (soft link) e link físico (hard link)?
Qual a diferença entre partição de dados e partição de swap?
Administração do Sistema 1 
- Atualização, usuários e permissões
Objetivos
Aprender a instalar novos softwares;
Aprender a manter o sistema atualizado;
Aprender a administrar contas de usuário e grupos; e
Aprender a gerenciar permissões de acesso aos recursos do sistema.
Atualização do sistema
Manter um sistema sempre atualizado deve ser umas das prioridades do administrador do sistema a fim de manter o sistema livre de bugs e falhas de segurança conhecidas.
No mundo do software livre, onde existem dezenas de distribuições disponíveis, a atualização de um software pode não ser uma das tarefas mais fáceis de ser realizada. Até mesmo a instalação de um novo software pode ser complicada. Pacotes de software podem depender da pré-instalação de outros pacotes, que por sua vez também podem depender de outros, e assim por diante. Quando um software necessita da pré-instalação de outro(s), diz-se existir(em) dependência(s).
A fim de facilitar o processo de verificação de dependências foram criados algum "pacotes", sendo o .rpm e o .deb os mais conhecidos. Um sistema que utiliza tais pacotes garante que serão instalados somente softwares que não tenham problemas com dependências.
Porém, para gerenciar a instalação de pacotes não basta ter a garantia da verificação das dependências, é preciso ter um mecanismo para resolver as dependências. Os principais softwares utilizados para a resolução de dependências são o yum e o apt-get. O yum é padrão em sistemas Fedora.
Os principais objetivos do yum são:
simplificar a localização, instalação e desinstalação de softwares;
automatizar a atualização do sistema; e
facilitar o gerenciamento das dependências entre pacotes.
Entre outras funções, o yum pode ser utilizado para:
Instalar novos pacotes: yum install <nome do pacote>
Atualizar um pacote: yum update <nome do pacote>
Atualizar todo o sistema: yum update
Listar todos os pacotes disponíveis para atualização/instalação: yum list all
Remover determinado pacote: yum remove <nome do pacote>
Procurar por determinado pacote: yum search <string para busca>
Mais detalhes sobre atualização do sistema podem ser encontrados nos capítulos 11.3 e 11.4 (páginas 166 e 168) do livro "Manual Completo do Linux – 2ª edição", disponível para consulta na biblioteca virtual da Estácio.
Gerenciamento de usuários e grupos
O Linux mantém sua base de usuários e grupos nos arquivos "/etc/passwd",
"/etc/shadow" e "/etc/group".
/etc/passwd
O arquivo "/etc/passwd" armazena as seguintes informações do usuário:
login
marcador de senha (não utilizado)
uid
gid
nome completo
diretório inicial
shell
/etc/shadow
O arquivo "/etc/shadow" armazena as seguintes informações do usuário:
login
senha criptografada
data da última alteração da senha
número mínimo de dias para alteração da senha
número máximo de dias para alteração da senha
número de dias para alertar que a senha será desabilitada
número de dias após a expiração que a senha será desabilitada
data de expiração da senha
/etc/group
O arquivo "/etc/group" lista os grupos do sistema e seus membros, contendo as seguintes informações:
nome do grupo
senha criptografada, ou "x" ou "*" indicando que a senha está armazenada no arquivo "/etc/gshadow"
gid
lista de membros
Usuários
Usuários podem ser adicionados tanto pela console quanto pela interface gráfica. Os principais comandos para manipular usuários pela console são:
adduser: Adiciona um novo usuário ao sistema.
passwd: Altera a senha de um usuário.
chfn: Altera as informações de um usuário.
Para o gerenciamento de usuários pela interface gráfica, executar o Gerenciador de Usuários por intermédio do comando system-config-users (em uma sessão de terminal aberta na inteface gráfica) ou chamando-o pelo menu "Sistema: Administração: Usuários e Grupos".
Mais detalhes sobre gerenciamento de usuários e grupos podem ser encontrados no capítulo 6 (página 66) do livro "Manual Completo do Linux – 2ª edição", disponível para consulta na biblioteca virtual da Estácio.
Permissões de acesso
Permissões de acesso protegem o sistema de arquivos do acesso indevido de pessoas ou programas não autorizados. O princípio da segurança é baseada na definição de como será o acesso aos arquivos por donos, grupos e outros usuários:
dono: Usuário que criou o arquivo ou o diretório.
grupo: Cada usuário pode fazer parte de um ou mais grupos e então acessar arquivos que pertençam ao mesmo grupo que o seu.
outros: Categoria de usuários que não são donos ou não pertencem ao grupo do arquivo.
Existem 3 tipos de permissões que se aplicam ao dono, grupo e outros usuários:
r: Permissão de leitura para arquivos. Caso seja um diretório, permite listar seu conteúdo.
w: Permissão de gravação para arquivos. Caso seja um diretório, permite a gravação de arquivos dentro dele.
x: Permite executar um arquivo. Caso seja um diretório, permite que seja acessado através do comando cd.
As permissões de acesso a arquivos e diretórios são alteradas através do comando "chmod". Sua sintaxe é:
chmod [permissões] [diretório/arquivo]
As permissões a serem dadas serão do tipo  "ugoa +-= rwx", onde:
"ugoa": Controla que nível de acesso será mudado. Especificam usuário (u), grupo (g), outros (o) e/ou todos (a).
"+": Adiciona a permissão.
"-": Retira a permissão.
"=": Define a permissão exatamente como especificado.
"rwx": Permissão de leitura (r), gravação (w) e execução (x).
Aplicação Prática Teórica
Estudo dirigido: leitura do capítulo 6 do livro “Manual Completo do Linux – 2ª edição”.
Debater em sala de aula sobre a importância de um sistema atualizado.
Pesquisar sobre os tipos de empacotamento utilizado pelas principais distribuições Linux.
Debater em sala de aula sobre o esquema de criptografia “sem volta” utilizado para guardar as senhas dos usuários.
Comparar as ACLs do Windows e do Linux.
Avaliação
Por que é necessário ao Linux um software para gerenciamento de instalação de software? Não bastaria instalar o executável do software?
Por que as informações de usuários ficam armazenadas em dois arquivos diferentes em vez de ficar armazenada em um único arquivo?
Administração do Sistema 2 
- Agendador de tarefas e quotas
Objetivos
Aprender a programar um servidor para executar tarefas automaticamente.
Aprender a gerenciar o espaço de armazenamento em disco dos usuários.
Agendador de tarefas – cron e crontab
O cron é um daemon que permite o agendamento da execução de um programa para um determinado dia/mês/ano/hora. É muito usado em tarefas de arquivamento de logs, teste da integridade do sistema e execução de programas em horários pré-determinados. 
Os arquivos responsáveis pela manutenção automática do sistema encontram-se em arquivos individuais localizados nos diretórios /etc/cron.daily, /etc/cron.weekly e /etc/cron.montly.
 crontab é o programa que edita o arquivo onde são especificados os comandos a serem executados e a hora e dia de execução pelo cron. Ele possui os seguintes parâmetros:
-l usuário: lista as tarefas agendadas para o usuário
-e usuário: edita o agendador
-d usuário: apaga o arquivo do usuário
Ao solicitar a abertura de um arquivo para edição o mesmo será aberto em um editor de textos que segue o padrão do editor "vi". O arquivo de controle segue uma formatação baseada em campos:
 *  *  *  *  *  /etc/comando.sh |  |  |  |  |   | |  |  |  |  |   \_Comando que será executado |  |  |  |  \_ Dia da semana (0 a 7) |  |  |  \_ Mês (1 a 12) |  |  \_ Dia do Mês (1 a 31) |  \_ Hora (0 a 23) \_ Minuto (0 a 59)
O campo pode conter um asterisco, o que significa que todos os períodos serão marcados, sejam eles horários, dias ou meses. Pode-se utilizar intervalos de números, que são indicados por dois números separados por um hífen. Por exemplo, 8-10 em uma entrada horas especifica execução às 8, às 9 e às 10 horas.
É possível utilizar listas, que são representadas por números (ou intervalos) separados por vírgulas. Por exemplo: 1,2,5,6,12-17,21,23.
Um "/número" imediatamente após um intervalo especifica um passo no valor do número através do intervalo. Por exemplo, 0-23/2 pode ser usado no campo das horas para especificar que o comando deve ser executado a cada duas horas (0,2,4,6,8,10,12,14,16,18,20,22). Estes intervalos também são permitidos depois de um asterisco. Logo, se for simplesmente desejável que uma ação ocorra a cada duas horas, pode-se utilizar "*/2".
O último campo serve para especificar o comando a ser executado.
Exemplo de um arquivo do crontab:
#min hora dia_mes mes dia_semana comando
# envia (por e-mail) toda saida para o usuario indicado,
# independentemente de quem e o dono do crontab.
MAILTO=suporte@curso.com.br
# executa as 0h05, todo dia
5 0 * * * /etc/trabalho_diario.sh
# executa as 14h15 no dia primeiro de cada mes
15 14 1 * * /etc/mensal.sh
# executa as 22h00 em dias de semana
0 22 * * 1-5 /etc/dia_util.sh
# executa as 0h23, 2h23, ... todo dia
23 */2 * * * /etc/periodico.sh
# executa as 4h05 todo domingo
5 4 * * 0 /etc/domingao.sh
O arquivo /etc/cron.deny lista os usuários que não podem utilizar o crontab.
Caso haja a necessidade de executar um comando uma única vez no futuro, pode ser utilizado o comando at. As sintaxes para o comando at são:
at  hh:mm  -f  comando        at  -t  AAAAMMDDhhmm  -f  comando
Os parâmetros são:
hh: hora da execução
mm: minuto da execução
DD: dia da execução
MM: mês da execução
AAAA: ano da execução
comando: comando/programa a ser executado
Para o gerenciamento dos agendamentos feitos com o at existem os comandos atq (mostra os agendamentos na fila) e atrm (remove agendamentos da fila).
Quota de disco
Quotas no Linux são controladas por partição. Assim, se for necessário controlar quanto de espaço os usuários estão consumindo em determinado diretório, tal diretório deverá estar em uma partição separada.
Assumindo que será controlada a quota de disco dos usuários a partir do diretório /extra, o sistema deverá ter o diretório /extra em uma partição separada.
Editar o arquivo /etc/fstab e na linha que aponta para o diretório /extra, inserir a opção "usrquota,grpquota". Por exemplo:
/dev/sdb1   /extra   ext3   defaults,usrquota,grpquota  1 1
Criar os arquivos quota.user e quota.group que vão armazenar, respectivamente, as quotas de usuários e de grupos:
touch /extra/quota.usertouch /extra/quota.groupchmod  600  /extra/quota.userchmod  600  /extra/quota.group
Para
dar início ao sistema de cotas, digitar:
mount  -o  remount  /extraquotacheck -avugquotaon -avug
Reiniciar o sistema.
Para editar a quota de um usuário, executar o comando:
edquota  usuario
Será aberta uma configuração de quota. Preencha com os valores desejados:
Disk quotas for user usuario (uid 500):
Filesystem blocks soft hard inodes soft hard
/dev/sdb1 36 10000 11000 9 0 0
Dados que podem ser alterados:
soft = 10000: 10MB (espaço em disco que pode ser usado)
hard = 11000: 11MB (espaço máximo em disco que pode ser usado)
Para copiar os parâmetros de cópia de um usuário a outro executar o comando:
edquota -u usuario -p usuario_com_quota_padrao
Aplicação Prática Teórica
Estudo dirigido: leitura do capítulo 8 do livro “Manual Completo do Linux – 2ª edição”.
Avaliação
Solicitar exemplos de aplicações a serem executas com o cron e aplicações a serem executadas com o at.
Como fazer com que um usuário perca o direito de utilizar o cron e o at?
Citar situações com data/hora para execução de scripts e solicitar que os alunos montem as entradas do crontab.
Analisar o arquivo /etc/crontab e estabelecer seu relacionamento com os diretórios /etc/cron.hourly, /etc/cron.daily, /etc/cron.weekly e /etc/cron.monthly.
Qual a diferença entre as entradas soft e hard do arquivo de quotas?
Qual a diferença entre as entradas blocks e inodes do arquivo de quotas?
Administração do Sistema 3 
- Arquivos de log e backup
Objetivos
Entender como são gerados os logs do sistema.
Ser capaz de buscar informações sobre o comportamento do sistema.
Compreender como configurar regimes de backup.Ser capaz de automatizar um processo de backup.
Arquivos de log
A atividade dos programas são registradas em arquivos de log (arquivos de registro), localizados no diretório /var/log . Estes arquivos contém a data, a hora e a mensagem emitida por programa (violações do sistema, mensagens de erro, alerta e outros eventos). Muitos detalhes úteis ao administrador tanto para acompanhar o funcionamento do sistema, comportamento dos programas ou ajudar na solução e prevenção de problemas podem ser encontrados nos arquivos de log. Alguns programas criam diversos arquivos de log e por este motivo estes são organizados em sub-diretórios.
Não é recomendado se desfazer das mensagem de logs recentes, porém é preciso tomar cuidado para que os arquivos de log não atinjam tamanho exorbitante. O rotacionamento e o backup dos arquivos de log são boas técnicas para resolver estas questões.
O rsyslogd é o daemon que controla os registros de log do sistema e tem sua configuração definida pelo arquivo /etc/rsyslog.conf, onde cada entrada possui o formato:
facilidade.nível		destino
Onde:
facilidade: É usada para especificar que tipo de programa está enviando a mensagem.
nível: Especifica a importância da mensagem.
destino: O destino das mensagens pode ser um arquivo, um pipe (se iniciado por um "|"), um computador remoto (se iniciado por uma "@"), determinados usuários do sistema (especificando os logins separados por vírgula) ou para todos os usuários logados (usando "*").
Um exemplo de conteúdo do rsyslog.conf:
authpriv.* /var/log/secure
mail.* /var/log/maillog
cron.* /var/log/cron
*.emerg *
Mais detalhes sobre arquivos de log podem ser encontrados no capítulo 10 (página 143) do livro "Manual Completo do Linux – 2ª edição", disponível para consulta na biblioteca virtual da Estácio.
Automatização de backup
O backup existe como forma de prevenir que arquivos sejam perdidos, seja por falha física, por falha humana ou até mesmo por acidentes naturais.
O hábito do backup deve fazer parte da rotina de um administrador e deve seguir uma política determinada. Preferencialmente deve ser feito da forma mais automatizada possível, de modo a reduzir as chances de problemas e seu impacto sobre o trabalho dos administradores de sistemas.
O backup de um sistema deve incluir:
dados
arquivos de configuração
logs
Cuidados devem ser tomados em relação ao local onde os backups ficam armazenados. Alguns aspectos devem ser observados:
O acesso ao local deve ser restrito para evitar que pessoas não autorizadas roubem ou destruam backups.
O local deve ser protegido contra agentes nocivos naturais (poeira, calor, umidade).
O local deve ser a prova de fogo ou redundante.
Os backups devem ser verificados logo após a sua geração. Isto possibilita a descoberta de defeitos em dispositivos e meios de armazenamento e pode evitar que dados sejam perdidos por problemas com backups que não podem ser restaurados.
Backups de dados sigilosos devem ser gerados em conjunto com algum método de criptografia.
Existem algumas práticas de facilitam a tarefa de backup. São elas:
Executar os dumps a partir de uma única máquina.
Rotular todas a mídias de backup com data da primeira utilização da mídia, data do backup e proveniência do backup.
Fazer o backup em intervalos de tempo razoáveis.
Selecionar cuidadosamente de que parte do sistema serão feitos os backups.
Manter a mídia de backup fora do local de trabalho.
Proteger os backups contra possibilidade de perda ou roubo.
Verificar a mídia periodicamente.
O mais importante: esteja preparado para o pior que pode acontecer.
Vários tipos de mídia podem ser utilizados em backups, cada uma com características próprias em termos de capacidade de armazenamento, facilidade de uso, segurança, tempo de vida, etc. Os principais tipos de mídias utilizados em backups são:
CDs, DVDs e BDs;
discos rígidos removíveis;
unidades de fita; e
jukeboxes.
Mais detalhes sobre tipos de mídias de backup podem ser encontrados no capítulo 9.2 (página 115) do livro "Manual Completo do Linux – 2ª edição", disponível para consulta na biblioteca virtual da Estácio.
As políticas de backup mais comuns são:
Total: É o backup que abrange na todos os arquivos e diretórios selecionados para backup no sistema.
Incremental: Método de backup onde múltiplos backups são mantidos (e não apenas o último). Cada arquivo é armazenado uma única vez e, em seguida, sucessivos backups contêm apenas as informações que mudaram desde uma cópia de segurança anterior. É um esquema muito eficiente.
Diferencial: É um backup cumulativo de todas as alterações feitas desde o último backup completo. Juntos, um backup total e um backup diferencial devem incluir todos os os arquivos no computador, alterados e inalterados.
Aplicação Prática Teórica
Estudo dirigido: leitura dos capítulos 9 e 10 do livro “Manual Completo do Linux – 2ª edição”.
Avaliação
Qual a importância de rotacionar os arquivos de log? Existem ferramentas para fazer o rotacionamento de forma automatizada? Como?
Qual a necessidade de se guardar arquivos de log por um período de tempo relativamente longo?
Qual a importância da utilização de ferramentas analisadoras de log?
Explique em quais situações é conveniente criptografar backups.
Qual a importância do crontab para a automatização do backup?
Diferencie os backups total, incremental e diferencial. Quais as vantagens e desvantagens de cada um deles?
Gerenciamento de Serviços 
- Rede, níveis de execução e controle de serviços
Objetivos
Configurar parâmetros de rede.
Entender os níveis de execução do UNIX.
Selecionar serviços a serem executados automaticamente em cada nível de execução.
Controlar a execução de serviços.
Configuração de rede
A interface de rede no Linux pode ser configurada de forma temporária ou permanente. Uma configuração temporária irá valer somente até o próximo boot.
Configuração temporária da interface de rede
A configuração dinâmica da interface de rede (DHCP) é feita por intermédio do comando dhclient, passando como parâmetro a interface que será configurada. Por exemplo, para configurar a interface eth0 por DHCP utiliza-se:
dhclient eth0
Para configurar a interface de rede com endereço IP estático utiliza-se o comando ifconfig, passando como parâmetros
a interface de rede, o endereço IP e a máscara de rede.
Se o computador estiver configurado para obter endereço IP de forma automática (DHCP), deve-se antes terminar a execução do processo dhclient.
Por exemplo, para configurar a interface eth0 com endereço IP 192.168.1.23 e máscara 255.255.255.0, utiliza-se:
killall dhclient
ifconfig eth0 192.168.1.23 netmask 255.255.255.0
Configuração permanente da interface de rede
Para habilitar a rede do Linux é preciso editar o arquivo "/etc/sysconfig/network" informando que a rede deve ser iniciada e o nome do computador. Por exemplo:
NETWORKING=yes
HOSTNAME=lab23.cursoredes.com.br
Para cada interface de rede a ser configurada deve ser criado um arquivo para a respectiva interface dentro do diretório "/etc/sysconfig/network-scripts". O nome do arquivo deverá iniciar por "ifcfg-" e terminar com o nome da interface. Normalmente um sistema possui as interfaces eth0 e lo, com respectivos arquivos de configuração "ifcfg-eth0" e "ifcfg-lo". O conteúdo do arquivo "ifcfg-eth0" para configurar a interface eth0 automaticamente (DHCP) deve ser:
DEVICE=eth0
BOOTPROTO=dhcp
ONBOOT=yes
Para fazer configuração estática da interface eth0 com endereço IP 192.168.1.23 e máscara 255.255.255.0, o conteúdo do arquivo "ifcfg-eth0" deve ser:
DEVICE=eth0
BOOTPROTO=none
ONBOOT=yes
IPADDR=192.168.1.23
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
TYPE=Ethernet
USERCTL=no
Configurando o cliente DNS
O arquivo que guarda a configuração DNS é o "/etc/resolv.conf". Para configurar o sistema para o domínio "cursoredes.com.br", com servidores DNS 192.168.1.16 e 192.168.1.22, o conteúdo do arquivo deverá ser:
search cursoredes.com.br
nameserver 192.168.1.16
nameserver 192.168.1.22
Configurando pela interface gráfica
As interfaces de rede também podem ser configuradas por intermédio de programas próprios. O programa utilizado é o system-config-network, que funciona tanto em modo texto quanto em modo gráfico. Ele também pode ser iniciado na interface gráfica através do menu:
Administração > Controle dos Dispositivos de Rede
Níveis de execução
O Linux possui sete níveis de execução (0 a 6). Cada nível pode ser reconfigurado da forma que o administrador desejar, mas são os seguintes os formatos padrão de execução:
 
	Nível
	Definição
	Diretório
	0
	halt
	/etc/rc0.d
	1
	monousuário
	/etc/rc1.d
	2
	multiusuário sem NFS
	/etc/rc2.d
	3
	multiusuário em modo texto
	/etc/rc3.d
	4
	não definido
	/etc/rc4.d
	5
	multiusuário em modo gráfico
	/etc/rc5.d
	6
	reboot
	/etc/rc6.d
 
O comportamento de cada nível é definido por seu diretório de inicialização. O init determina o diretório a ser utilizado e executa, em ordem alfabética, todos os scripts iniciados por "K", passando para eles o parâmetro "stop". Após ele executa, também em ordem alfabética, todos os scripts iniciados por "S", passando para eles o parâmetro "start".
Os scripts dentro do diretório de inicialização são links simbólicos para os scripts no diretório "/etc/init.d".
Controle de serviços
Os serviços no Linux são controlados por scripts que ficam no diretório "/etc/init.d". Para alterar a execução de um serviço basta chamar o script correspondente passando a ele o parâmetro adequado. Os principais parâmetros são:
start: Inicia o serviço
stop: Para o serviço
restart: Reinicia o serviço (stop seguido de start)
reload: Carrega novas configurações sem reiniciar
status: Mostra o estado do serviço
Por exemplo, para iniciar o serviço httpd usa-se o comando:
/etc/init.d/httpd start
Para fazer com que toda vez que o sistema seja inicializado no nível de execução 3 o serviço httpd seja inicializado automaticamente, basta entrar no diretório "/etc/rc3.d" e executar o comando:
ln -s /etc/init.d/httpd S85httpd
Para controlar os serviços através da interface gráfica pode-se utilizar o programa em:
Administração > Serviços Gerenciamento do Serviço
Aplicação Prática Teórica
Estudo dirigido: leitura do capítulo 29 do livro “Manual Completo do Linux – 2ª edição” (Biblioteca Virtual da Estácio).
Avaliação
Solicitar ao aluno para configurar a rede IP de um computador.
Questionar ao aluno a diferença entre uma configuração IP estática e uma configuração IP dinâmica.
O que são níveis de execução?
Como fazer para determinado serviço iniciar automaticamente no nível de execução 3?
Em que diretório são instalados por padrão os scripts que controlam os serviços?
Que comandos podem ser utilizados para controlar serviços?
Serviços para rede local 1 
- Compartilhamento de arquivos (NFS)
Objetivos
Configurar o compartilhamento de arquivos entre sistemas Linux.
Aprender a montar sistemas de arquivos remotos manualmente.
Aprender a configurar montagem automática de sistemas de arquivos remotos.
NFS (Network File System)
O NFS é um daemon que permite exportar diretórios de um computador de forma que eles possam ser montados remotamente, permitindo o acesso a seus arquivos e subdiretórios.
O daemon NFS precisa estar em execução somente no computador que irá exportar o diretório. O computador que fará a montagem local não precisa da instalação do servidor NFS.
O NFS no lado servidor
Atuando como servidor, um computador exporta um diretório, ou seja, ele torna o diretório disponível na rede de forma a ser utilizado por outros computadores. 
Para que um diretório seja exportado automaticamente durante a inicialização do sistema, ele deve constar no arquivo /etc/exports. Tal arquivo contém um série de linhas, cada uma indicando um diretório a ser exportado e seus parâmetros de exportação. O primeiro campo de uma linha contém o diretório a ser exportado. Após a identificação do diretório segue uma lista de clientes, onde cada cliente possui um série de parâmetros entre parênteses.
Por exemplo, para exportar o diretório /home/extra para o host alfa com permissão de leitura e gravação, e para o host beta com permissão de somente leitura, sua linha no /etc/exports seria:
/home/extra alfa(rw) beta(ro)
Os clientes podem ser identificados por:
seu nome de host
curingas (* e ?)
redes IP (endereço IP / máscara de rede)
Algumas opções de exportação são:
ro: somente leitura
rw: leitura e gravação
no_root_squash: permite que o usuário root remoto tenha acesso ao sistema de arquivos como se fosse o usuário root local
Uma lista completa das opções de exportação pode ser encontrada na tabela 16.3 (página 341) do livro “Manual Completo do Linux – 2ª edição”, disponível para consulta na biblioteca virtual da Estácio.
O comando exportfs pode ser utilizado para controlar que sistemas de arquivos serão ou não exportados. Alguns exemplos:
exportfs -a: exporta todos os diretórios listados no arquivo /etc/exports
exportfs -ua: cancela a exportação de todos os diretórios exportados
exportfs -o rw alfa:/home/extra: exporta o diretório /home/extra para o host alfa com permissão de leitura e gravação
exportfs -u alfa:/home/extra: cancela a exportação do diretório /home/extra para o host alfa
exportfs: sem parâmetros é utilizado para mostrar os diretórios atualmente exportados
O NFS no lado cliente
No cliente os sistemas de arquivos são montados da mesma forma como os sistemas de arquivos locais. É utilizado normalmente o comando mount, sendo que a ele deve ser acrescentado o servidor que fez a exportação do diretório. Por exemplo, para montar no diretório /rede o diretório /home/extra exportado pelo host gama, executar o comando:
mount gama:/home/extra /rede
Para que um diretório exportado por um servidor seja montado automaticamente durante a inicialização de um host, acrescentar o diretório a ser montado como uma linha no arquivo /etc/fstab. O fstab lista os diretórios e as partições disponíveis para montagem no sistema. Por exemplo, para montar automaticamente no diretório /rede o diretório /home/extra exportado pelo host gama, a seguinte linha deve ser acrescentada ao /etc/fstab:
gama:/home/extra /rede nfs rw 0 0
Aplicação Prática Teórica
Estudo dirigido:
leitura do capítulo 16 do livro “Manual Completo do Linux – 2ª edição”.
Avaliação
Pesquisar sobre o procedimento de automontagem de dispositivos.
Comprar o NFS ao Samba em relação aos quesitos segurança e desempenho.
Pesquisar sobre os sistemas NIS e sua correlação com o NFS.
Serviços para rede local 2 
- Compartilhamento de arquivos (SAMBA)
Objetivos
Conhecer os conceitos de compartilhamento de arquivos entre os sistemas Linux e Windows.
Configurar o compartilhamento de arquivos entre sistemas Linux e Windows.
Aprender a montar manualmente no sistema local compartilhamentos Windows.
Introdução
O Samba é um servidor poderoso e versátil que permite o compartilhamento de arquivos e impressoras entre sistemas Linux e Windows. Com o Samba é possível:
Permitir o acesso ao sistema de arquivos local para outros hosts Linux e Windows
Permitir a navegação pelo host em busca de compartilhamentos
Autenticar em domínios Windows
Prover resolução de nomes Windows (WINS)
Atuar como um controlador de domínios primário (PDC) estilo Windows NT
Atuar como um controlador de domínios de backup (BDC) para um PDC baseado em Samba
Atuar como um servidor membro do Active Directory
É preciso atenção a mecanismos de segurança como firewalls e o SELinux, que podem bloquear as requisições pela rede e impedir o correto funcionamento do servidor Samba.
Servidores
O Samba é composto por 3 daemons:
smbd: Provê o compartilhamento de arquivos e serviços de impressão para clientes Windows, além da autenticação do usuário.
nmbd: Entende e responde às solicitações de serviço de nome NetBIOS. Participa também nos protocolos de navegação que compõem a rede do Windows.
winbindd: Resolve informações sobre usuários e grupos de um servidor Windows, permitindo que tais informações sejam compreendidas na plataforma UNIX.
Conectando a um compartilhamento
Para conectar a um compartilhamento podem ser utilizados os próprios navegadores de arquivos que acompanham a interface do gráfica do Linux.
No GNOME, abrir o Nautilus, selecionar Locais: Rede: Rede Windows. Irão aparecer os grupos de trabalho/domínios existentes na rede.
No KDE, abrir o Konqueror e digitar “smb://”na barra de localização. Irão aparecer os grupos de trabalho/domínios existentes na rede.
Conectando a um compartilhamento pela linha de comando
Para consultar a rede por servidores Samba é utilizado o comando findsmb. Para cada servidor encontrado é exibido o endereço IP, o nome NetBIOS, o nome do grupo de trabalho, o sistema operacional e a versão do servidor SMB.
Para conectar a um compartilhamento Samba a partir do shell, utilizar o comando:
smbclient //nome_do_host/compartilhamento -U usuário
onde nome_do_host é o nome ou o endereço IP do servidor Samba, compartilhamento é o nome do diretório compartilhado e usuário é o nome do usuário do Samba.
Se aparecer o prompt “smb:\>” é porque o logon foi efetuado com sucesso. Digitar help para obter uma lista de comandos. Para sair, digitar exit.
Para montar um compartilhamento Samba de forma que ele possa ser utilizado como parte do sistema de arquivos local, executar o comando:
mount -t cifs -o usuário,senha //servidor/compartilhamento /ponto_de_montagem
Configuração do servidor
O arquivo de configuração padrão (/etc/samba/smb.conf) permite que os usuários possam acessar seu próprio “home directory” como um compartilhamento. Ele também compartilha todas as impressoras do sistema.
Interface gráfica
Para configurar o servidor utilizando a interface gráfica, inicializar a ferramenta por intermédio do menu Sistema > Administração > Samba (ou executando o programa system-config-samba).
O primeiro passo é fazer a configuração básica do servidor. Para tanto, selecionar Preferências: Configurações do servidor. Na aba “Básica”, entrar com o grupo de trabalho e a descrição.
A aba “Segurança” contém as opções:
Modo de autenticação:
ADS: O servidor atua como um membro de um ADS. O Kerberos precisará estar instalado e o servidor Sambra precisa ser configurado como membro do domínio utilizando o comando net.
Domain: O servidor se baseia em um Windows NT atuando como PDC para verificar um usuário. É preciso especificar o nome NetBIOS do PDC. A criptografia de senhas também precisa ser habilitada.
Servidor: O servidor tenta verificar o usuário passando-o a outro servidor Samba. Caso não consiga, tenta pelo modo de autenticação “Usuário”.
Compartilhar: Não é solicitado um par usuário/senha até que seja tentada a conexão a um diretório compartilhado.
Usuário: O usuário precisa fornecer um par usuário/senha válido no servidor.
Criptografar senhas : Precisa ser habilitada se os clientes estiverem conectando a partir de hosts Windows 98, Windows NT 4.0 SP3, ou versões mais recentes dos sistemas operacionais Microsoft Windows.
Conta de convidado: Quando um usuário faz login no sistema ele precisa ser mapeado em um usuário válido no servidor. Esta opção seleciona em que usuário a conta de convidado será mapeado.
Após clicar no botao OK as alterações são salvas e o deamon é reiniciado, aplicando as alterações imediatamente.
Para que um usuário possa ser adicionado ao Samba é preciso que exista uma conta associada no sistema. Para adicionar um usuário no Samba, selecione Preferências: Usuários Samba, e clique no botão “Adicionar usuário”. Em “Nome de usuário Unix” selecione um usuário existente no sistema local. Se o usuário tiver um nome diferente no host Windows, especifique seu username em “Nome de usuário Windows”. Esta opção funcionará apenas se tiver sido escolhido como modo de autenticação o modo Usuário. Coloque também a senha (que não precisará ser a mesma do sistema local).
Pela mesma interface também é possível editar e excluir usuários do Samba.
Para criar um compartilhamento clicar em Arquivo: Adicionar compartilhamento (ou clique no ícone com sinal “+”).
Na aba “Básica” aparece:
Diretório: O diretório que será compartilhado pelo Samba.
Nome do compartilhamento: O nome que visto pelos hosts remotos.
Descrição: Rápida descrição do compartilhamento.
Permitir escrita: Habilita permissão para usuários alterarem informações no compartilhamento. Funcionará apenas se o usuário local tiver permissão de escrita no diretório compartilhado.
Visível: Se estará visível à negação pela rede.
Na aba “Acesso” devem ser selecionados os usuários que poderão utilizar o compartilhamento.
Linha de comando
O Samba utiliza o “/etc/samba/smb.conf” como arquivo de configuração. Alterações neste arquivo terão efeito somente após o reinício do servidor pelo comando
service smb restart.
Para especificar o grupo de trabalho e uma breve descrição do servidor, editar o arquivo “/etc/samba/smb.conf” e editar a seguintes linhas:
workgroup = GRUPO_DE_TRABALHO
server string = BREVE DESCRIÇÃO DO SERVIDOR
Para criar um compartilhamento, editar o arquivo “/etc/samba/smb.conf” e adicionar as seguintes linhas:
[nome_do_compartilhamento]
comment = Inserir um breve comentário sobre o compartilhamento
path = /caminho/para/o/compartilhamento
valid users = lista de usuários separados por espaço
public = yes
writable = yes
printable = no
create mask = 0765
Para criar um usuário, utilizar o comando:
smbpasswd -a usuário
Aplicação Prática Teórica
Estudo dirigido: leitura do capítulo 26 do livro “Manual Completo do Linux – 2ª edição”.
Avaliação
1. Definir um grupo de trabalho e adicionar computadores Linux e Windows ao grupo. Criar compartilhamentos e fazer com que cada computador acesse os compartilhamentos do outro.
2. Testar as opções “Permitir escrita” e “Visiível” da configuração de compartilhamento.
3. Instalar o software Samba-SWAT e configurar o servidor Samba remotamente.
Serviços para intranet e internet 1 
- Servidor DNS 1
Objetivos
Conhecer os conceitos do serviço DNS
Configurar um servidor DNS utilizando software livre
Acompanhar a execução de um servidor DNS
Introdução
Raramente os programas fazem referência a hosts utilizando seus endereços binários de rede. Em vez de números, eles
utilizam nomes. Todavia, a rede em si só compreende endereços binários. Portanto, é necessário algum tipo de mecanismo para converter nomes em endereços de rede. A essência do DNS é a atribuição de nomes de forma hierárquica, baseada em domínios.
No Linux o processo que implementa o serviço DNS é o named, que faz parte do pacote Bind.
ATENÇÃO: No Fedora o named executa de forma protegida dentro do diretório “/var/named/chroot”. Assim, o named executa como se seu diretório raiz fosse “/var/named/chroot”. Isto pode ser modificado alterando o arquivo “/etc/sysconfig/named”. Para tanto, edite o arquivo e comente a linha:
ROOTDIR=/var/named/chroot
Arquivos de configuração
O principal arquivo de configuração para o DNS é o arquivo “/etc/named.conf”. A partir dele são definidas as zonas administradas pelo servidor e os demais arquivos de configuração.
Uma zona DNS pode ser do tipo master (primária) ou slave (secundária). Uma zona primária é definida no próprio servidor e deve ter seu arquivo de configuração criado pelo administrador.
Uma zona secundária é uma zona que fica em um servidor de backup e responde pelo domínio na falta do servidor primário. Seu arquivo de configuração deve ser criado no servidor primário e será importado pelo servidor secundário. Tal arquivo deve ser armazenado em um diretório no qual o usuário named tenha permissão de escrita (normalmente é utilizado o subdiretório slaves).
Exemplos de arquivos
Arquivo /etc/named.conf:
options {
//	listen-on port 53 { 127.0.0.1; };
//	listen-on-v6 port 53 { ::1; };
	directory 	"/var/named";
	allow-query { 0.0.0.0/0; };
	recursion yes;
	notify yes;
};
logging {
 channel default_debug {
 file "data/named.run";
 severity dynamic;
 };
};
zone "." IN {
	type hint;
	file "named.ca";
};
include "/etc/named.rfc1912.zones";
// Criacao da zona primaria "cursointra.com.br"
zone "cursointra.com.br" IN {
	type master;
	file "cursointra.com.br.zone";
	also-notify {192.168.100.20; };
};
// Secundario da zona "outra.com.br"
zone "outra.com.br" IN {
	type slave;
	file "slaves/outra.com.br.zone";
	masters {192.168.100.15;};
};
No campo options aparecem as principais opções do servidor DNS:
listen-on: Porta e endereço IPv4 no qual o servidor DNS irá aguardar por solicitações. Por padrão aguardará somente em 127.0.0.1, assim a opção deve ser alterada ou comentada.
listen-on-v6: Porta e endereço IPv6 no qual o servidor DNS irá aguardar por solicitações. Por padrão aguardará somente em ::1, assim a opção deve ser alterada ou comentada.
directory: Diretório onde se encontram arquivos de apoio à configuração.
allow-query: Hosts que poderão utilizar o servidor DNS para consultas recursivas. Por padrão permitirá apenas localhost, assim a opção deve ser alterada.
recursion: Se será permitida consultas recursivas.
notify: Se irá notificar os servidores secundários em caso de alteração das zonas primárias.
A diretiva zone é utilizada para definir uma zona que será configurada no servidor:
type :Defiene o tipo da zona. Os principais tipos são master (o arquivo de zona será configurado no próprio servidor) e slave (o arquivo de zona será buscado no servidor master e uma cópia de backup guardada localmente).
file : Arquivo que armazenará as configurações da zona.
masters : Endereço IP do servidor onde deve ser buscado o arquivo de configuração da zona.
also-notify : Endereço IP dos servidores secundários que devem ser avisados caso haja alteração na configuração da zona.
Arquivo /var/named/cursointra.com.br.zone:
; Arquivo de configuracao da zona "cursointra.com.br"
; Arquivo de configuracao da zona "cursointra.com.br"
$TTL	86400
@	IN SOA	ns.cursointra.com.br. root.cursointra.com.br. (
				2010062901; serial (d. adams)
				3H		; refresh
				15M		; retry
				1W		; expiry
				3H )		; minimum
	IN NS		ns.cursointra.com.br.
	IN NS		ns.serv.secundario.
	IN MX		10 mail.cursointra.com.br.
ns		IN A		192.168.100.99
mail		IN A		192.168.100.101
		IN MX	10 mail.cursointra.com.br.
aguia		IN A	192.168.100.105
www		IN CNAME	aguia
ftp		IN CNAME	aguia
Ao criar o arquivo de zona é preciso garantir que o usuário named tenha permissão de leitura no arquivo. Isto pode ser feito fazendo com que o arquivo passe para o usuário named e para o grupo named com o comando
chown named.named /var/named/cursointra.com.br.zone 
Um arquivo de zona possui uma série de registros de recursos que descrevem as características da zona. Os principais tipos de registros são:
A: Endereço IPv4.
AAAA: Endereço IPv6.
CNAME: Um apelido para o host.
MX: Servidor de correio eletrônico.
NS: Servidor de nomes.
PTR: Endereço reverso (IPv4 ou IPv6).
SOA: Início de autoridade. Define os parâmetros da zona.
TXT: Informação texto associada ao nome.
Execução
Para reiniciar o servidor DNS executar:
service named restart
Para fazer com que o servidor DNS inicie automaticamente junto com o sistema operacional nos níveis de execução 3 e 5, executar:
chkconfig --level 35 named on
É preciso atenção a mecanismos de segurança como firewalls e o SELinux, que podem bloquear as requisições pela rede e impedir o correto funcionamento do servidor DNS.
Verificação
Para verificar a inicialização do named pode-se acompanhar sua saída no arquivo “/var/log/messages”. Uma forma de acompanhar em tempo real o que está se passando é utilizar o comando:
tail -f /var/log/messages
Outra forma de testar o funcionamento do DNS é por intermédio dos utilitários nslookup e dig.
Aplicação Prática Teórica
Estudo dirigido: leitura do capítulo 15 do livro “Manual Completo do Linux – 2ª edição” (Biblioteca Virtual da Estácio).
Avaliação
Separar os alunos em grupos. Caso hajam computadores suficientes, é sugerido que o trabalho seja realizado de forma individual. 
Cada grupo deverá escolher um domínio diferente dos demais.
Configurar uma zona para o domínio definido. Definir para o domínio um host chamado “www” e definir um apelido chamado “ftp” para o host “www”.
Testar o funcionamento do serviço utilizando o comando ping (usar um nome de host, não o seu endereço IP).
Serviços para intranet e internet 2 
- Servidor DNS 2
Objetivos
Fixar os conceitos do serviço DNS
Configurar subdomínios DNS utilizando software livre
Subdomínios
No DNS a criação de subdomínios depende exclusivamente do dono do domínio pai. Não é necessária autorização de qualquer outra entidade. Subdomínios levam em conta apenas as fronteiras organizacionais.
Um subdomínio pode ser alugado, doado, emprestado, removido ou vendido exclusivamente de acordo com a vontade da entidade que detém os direitos sobre o domínio pai.
A administração de um subdomínio pode acontecer no próprio servidor do domínio pai ou ser delegada a qualquer outro servidor.
Subdomínio no mesmo servidor
No plano de aula anterior foi criado o subdomínio “cursointra.com.br”. Dando continuidade, para criar o subdomínio “redes.cursointra.com.br” no mesmo servidor DNS, é necessário editar o arquivo de definições da zona “cursointra.com.br” (arquivo /var/named/cursointra.com.br.zone) e acrescentar:
;definicoes do subdominio redes.cursointra.com.br
$ORIGIN redes.cursointra.com.br.
@	IN	MX	10 mail
mail	IN	A	192.168.100.98
ftp	IN	A	192.168.100.97
Caso prefira a colocação das definições do subdomínio em um arquivo separado (melhor estruturado) colocar as definições do subdomínio em outro arquivo e utilize a diretiva “$INCLUDE” para fazer a inclusão do arquivo. Por exemplo:
;definicoes do subdominio redes.cursointra.com.br
$INCLUDE redes-subdominio.sub
Subdomínio no mesmo servidor
Para criar o subdomínio “redes.cursointra.com.br” em outro servidor DNS, e necessário ir ao servidor DNS do domínio pai (cursointra.com.br), editar o arquivo “/etc/named.conf” e acrescentar:
zone "redes.cursointra.com.br" IN {
	type slave;
	file "slaves/redes.cursointra.com.br.slave";
	masters {192.168.100.95;};
};
No arquivo de configuração da zona “cursointra.com.br”, acrescentar:
;definicoes do subdominio redes.cursointra.com.br
$ORIGIN redes.cursointra.com.br.
@	IN	NS	ns.redes.cursointra.com.br.
	IN	NS	ns.cursointra.com.br.
ns	IN	A	192.168.100.95
A configuração do servidor DNS para o subdomínio delegado se dará da mesma forma que é feita para qualquer domínio.
Carregando as alterações
Para carregar o servidor DNS com as alterações configuradas, executar:
service named reload
Aplicação Prática Teórica
Estudo dirigido: leitura do capítulo 15 do livro “Manual Completo do Linux – 2ª edição” (Biblioteca Virtual da Estácio).
Pesquisar sobre configurações avançadas em servidores DNS pela leitura do livro disponível online em “http://www.zytrax.com/books/dns/”.
Avaliação
Solicitar que cada grupo implemente um subdomínio localmente. Testar a configuração.
Separar os grupos e solicitar que cada grupo delegue um subdomínio a outro grupo. Implementar 
Serviços para intranet e internet 3 
- Servidor Web
Objetivos
Conhecer os conceitos do serviço Web
Configurar o servidor Web Apache utilizando software livre
Conhecer os conceitos de domínios virtuais
Configurar domínios virtuais utilizando software livre
Introdução
A Web é a estrutura que permite o acesso a documentos vinculados espalhados por milhares de máquinas na Internet. Em poucos anos ela deixou de ser um meio para distribuir dados técnicos para se tornar a aplicação que milhões de pessoas consideram ser “A Internet”.
A Web começou em 1989 no CERN. Ela nasceu da necessidade de se fazer com que um grupos de cientistas de diferentes nacionalidades pudessem colaborar uns com os outros através da troca de relatórios, plantas, desenhos, fotos e outros documentos.
A proposta inicial para uma teia de documentos surgiu em março de 1989. O primeiro protótipo (no modo texto) já era operacional um ano e meio depois. Em dezembro de 1991, foi realizada uma demonstração pública na conferência Hypertext'91. Seu desenvolvimento prosseguiu e em fevereiro de 1993 houve o lançamento da primeira interface gráfica, o Mosaic.
Servidores Web
Todos os sites da Web têm servidores escutando a porta 80 do TCP, aguardando por conexões dos clientes, que geralmente estão utilizando algum browser (software cliente para Web). Depois de estabelecida a conexão, o cliente envia uma solicitação e o servidor envia uma resposta. A conexão é, então, liberada. O protocolo que define as solicitações e respostas válidas é chamado HTTP (HyperText Transfer Protocol).
HTTP (HyperText Transfer Protocol)
O HTTP é o protocolo de transferência padrão da Web, e cada interação consiste em uma solicitação ASCII seguida de uma resposta RFC 822 do tipo fornecido pelo MIME. O protocolo consiste em dois itens distintos: um conjunto de solicitações dos browsers aos servidores e um conjunto de respostas que retornam.
O servidor Web que acompanha as distribuições Linux é o Apache HTTP Server. Ele já vem pré-configurado e bastar executá-lo para que comece a atender às requisições Web.
Configurando o Apache
Para alterar alguma configuração do servidor Web, editar o arquivo “/etc/httpd/conf/httpd.conf”. Suas principais diretivas são:
# Listen: Configura o Apache para um endereco IP e/ou
# porta especificos.
#Listen 12.34.56.78:80
Listen 80
# ServerAdmin: Endereco de e-mail para onde problemas devem
# ser reportados. Este endereco aparece em algumas paginas
# geradas pelo servidor como, por exemplo, avisos de erro.
#ServerAdmin admin@seu-dominio.com
ServerAdmin webmaster@cursointra.com.br
# ServerName: Fornece o nome e a porta que o servidor utiliza
# para se autoidentificar. Pode ser determinado automaticamente
# pelo servidor, porem eh recomendado que seja especificado
# explicitamente para evitar problemas durante a inicializacao.
ServerName www.cursointra.com.br:80
# UseCanonicalName: Determina como o Apache constroi URLs se
# autorreferenciando assim como as variaveis SERVER_NAME e
# SERVER_PORT. Quando configurado como "Off", o Apache utilizara
# os nomes de host e porta fornecidos pelo cliente. Quando
# configurado como "On", o Apache utilizara os valores fornecidos
# pela diretiva ServerName
UseCanonicalName Off
# DocumentRoot: Determina o diretorio que sera utilizado para
# servir os documentos. Por padrao todas as requisicoes são
# buscadas neste diretorio, porem links e aliases podem ser
# utilizados para apontar para outras localizacoes
DocumentRoot "/var/www/html"
# UserDir: Por padrao a opcao esta desabilitada uma vez que ela
# pode ser utilizada para confirmar a presenca de um nome de
# usuario no sistema. Quando configurada, determina o nome do
# subdiretorio no diretorio de trabalho do usuario que sera
# utilizado para servir as paginas pessoais do usuario.
UserDir disable
# DirectoryIndex: Determina o arquivo que o Apache ira servir se
# for solicitado um diretorio.
DirectoryIndex index.html index.html.var
O firewall e o SELinux podem impedir o correto funcionamento do sistema. Desabilitar tais funcionalidades nos computadores que serão utilizados.
Carregando servidor
Para colocar o servidor o servidor em execução, executar o comando:
service httpd start
Para recarregá-lo com alterações realizadas, executar o comando:
service httpd reload
Para fazer com que o Apache inicie automaticamente quando o Linux for inicializado nos víveis de execução 3 e 5, executar o comando:
chkconfig --level 35 httpd on
Domínios virtuais
Domínios virtuais são utilizados para que um mesmo servidor web possa armazenar páginas de diferentes domínios, servindo as páginas conforme a URL solicitada.
Para a criação de domínios virtuais é preciso criar no(s) servidor(es) DNS entradas com diferentes nomes apontando para o mesmo host. No servidor Web é preciso informar os domínios virtuais e os locais onde estão suas respectivas páginas. Abaixo segue um exemplo de configuração de domínios virtuais no arquivo “/etc/httpd/conf/httpd.conf”:
NameVirtualHost *:80
<VirtualHost *:80>
ServerAdmin webmaster@cursointra.com.br
DocumentRoot /var/www/html
ServerName www.cursointra.com.br
ErrorLog logs/error_log
CustomLog logs/access_log common
</VirtualHost>
<VirtualHost *:80>
ServerAdmin webmaster@cursointra.com.br
DocumentRoot /var/www/virtual/info
ServerName www.info.com.br
ErrorLog logs/info.com.br-error_log
CustomLog logs/info.com.br-access_log common
</VirtualHost>
<VirtualHost *:80>
ServerAdmin webmaster@cursointra.com.br
DocumentRoot /var/www/virtual/adm
ServerName www.adm.com.br
ErrorLog logs/adm.com.br-error_log
CustomLog logs/adm.com.br-access_log common
</VirtualHost>
As configurações de domínios virtuais podem ser acrescentadas no final do arquivo “/etc/httpd/conf/httpd.conf” ou podem ser colocadas em um arquivo específico de configuração do domínio, que deverá ser armazenado no diretório “/etc/httpd/conf.d”.
Verificação
Para verificar o que está ocorrendo durante a inicialização ou execução do apache pode-se verificar o diretório “/var/log/httpd/log”. Nele existem uma série de arquivos de log que podem ser consultados, entre eles o “error_log”, que mostra os erros, e o “access_log”, que mostra todos os acessos realizados ao servidor. Uma forma de acompanhar em tempo real os erros que estão ocorrendo é através do comando:
tail -f /var/log/httpd/error_log
Aplicação Prática Teórica
Estudo dirigido: leitura do capítulo 21 do livro “Manual Completo do Linux – 2ª edição” (Biblioteca Virtual da Estácio).
Avaliação
Definir domínios virtuais para cada grupo de alunos e solicitar que:
Configurem o(s) servidor(es) DNS para que apontem os hosts “www” de cada domínio para o mesmo servidor web.
Configurem o servidor web para responder pelos domínios virtuais.
Serviços para intranet e internet 4 
- Servidores Web e FTP
Objetivos
Conhecer os diretivas de controle de acesso do servidor web
Aprender a bloquear/liberar o acesso ao servidor web com base em filtragem de endereços IP
Aprender a bloquear/liberar o acesso ao servidor web com base em contas de usuários
Conhecer os conceitos
de servidor FTP
Aprender a configurar servidores FTP em software livre
Restrição de acesso ao servidor Web
Para controlar o acesso a determinadas páginas do servidor pode-se configurá-lo para ler as restrições de acesso a partir de um arquivo oculto de nome “.htaccess”. As diretivas colocadas em tal arquivo permitem fazer alterações na configuração padrão do servidor que afetam somente as páginas que se encontram a partir de tal diretório.
Para, por exemplo, permitir o uso do “.htaccess” a partir do diretório “/var/www/html/seguro”, editar o arquivo “/etc/httpd/conf/httpd.conf” e acrescentar as linhas:
<Directory "/var/www/html/seguro">
Options Indexes FollowSymLinks
AllowOverride AuthConfig Limit
</Directory>
A diretiva “Options” controla características específicas que o servidor web terá dentro de determinado diretório. Quando “Indexes” é habilitado e não existe um arquivo especificado por “DirectoryIndex” dentro do diretório, será retornado ao navegador web uma lista formatada com o conteúdo do diretório. Quando “FollowSymLinks” é habilitado o servidor web seguirá links simbólicos do sistema de arquivos.
A diretiva “AllowOverride” especifica que diretivas podem ser utilizadas no arquivo “.htaccess” para alteração do comportamento do servidor web. Quando “AuthConfig” é habilitado, é permitida a utilização das diretivas “AuthName”, “AuthType”, “AuthUserFile” e “Require”, entre outras. Estas diretivas permitem liberar ou negar acesso com base em usuários e senhas. Quando “Limit” é habilitado é permitido o uso de diretivas de controle de acesso a hosts por endereço IP (diretivas “Allow”, “Deny” e “Order”).
Restringindo o acesso por endereço IP
Para bloquear o acesso por todos os hosts, com exceção de alguns endereços IP, criar o arquivo “.htaccess” no diretório com o conteúdo a seguir. As regras valerão também para os seus subdiretórios.
Order deny,allow
deny from all
allow from 192.168.100.0/24
allow from 127.0.0.0/8
Para liberar o acesso por todos os hosts, com exceção de alguns endereços IP, criar o arquivo “.htaccess” no diretório com o conteúdo a seguir. As regras valerão também para os seus subdiretórios.
Order allow,deny
allow from all
deny from 10.0.1.0/24
Restringindo o acesso por usuário/senha
Para restringir o acesso por usuário/senha é preciso criar um arquivo de senhas com o utilitário “htpasswd”.
mkdir /etc/httpd/auth
cd /etc/httpd/auth
htpasswd -c acesso huguinho
htpasswd acesso zezinho
htpasswd acesso luizinho
É preciso garantir que o usuário sob o qual o apache está sendo executado tenha acesso ao arquivo de senhas.
Para que o browser solicite a senha de acesso é preciso criar o arquivo “.htaccess” no diretório a ser protegido. As regras valerão também para os seus subdiretórios.
AuthName "Acesso restrito"
AuthType Basic
AuthUserFile /etc/httpd/auth/acesso
require valid-user
A diretiva AuthName configura uma mensagem que será mostrada na janela que solicita o par usuário/senha. A diretiva AuthType determina o tipo de autenticação que será utilizada. A diretiva AuthUserFile informa qual arquivo contém os usuários com suas respectivas senhas. Por fim a diretiva require valid-user faz a solicitação do par usuário/senha.
Servidor FTP
Com um protocolo de transporte fim a fim confiável, como o TCP, a transferência de arquivos pode parecer trivial. No entanto os detalhes da autorização, denominação e representação entre máquinas heterogêneas fazem com que o protocolo se torne complexo. Além disso, o FTP oferece outras vantagens além da função de transferência propriamente dita:
acesso interativo
especificação de formato (representação)
controle de autenticação
A maioria das implementações de servidor FTP permite o acesso simultâneo de vários clientes. Os clientes usam o TCP para se conectar a um processo servidor único que aguarda conexões e cria um processo escravo para tratar cada conexão. O processo escravo não realiza toda a computação necessária. Ao contrário, o escravo aceita e trata a conexão de controle do cliente, e usa um ou mais processos adicionais para tratar uma conexão de transferência de dados à parte. A conexão de controle transporta comandos que informam ao servidor qual arquivo transferir. A conexão de transferência de dados, que também usa o TCP como protocolo de transferência, transporta todas as transferências de dados.
As conexões de transferência de dados e os processos de transferência de dados que as utilizam podem ser criados dinamicamente, quando necessário, mas a conexão de controle persiste através de uma sessão. Uma vez que a conexão de controle desaparece, a sessão é finalizada e o software de ambas as extremidades encerra todos os processos de transferência de dados.
Quando um cliente forma uma conexão inicial com um servidor, o cliente usa um número de porta aleatório atribuído localmente, mas contata o servidor pela porta 21 do TCP. Para uma transferência de dados o cliente obtém uma porta não utilizada em sua máquina e a usa para conectar o processo de transferência de dados da máquina do servidor. Esse processo usa a porta 20 do TCP.
Configuração
Será vista a configuração do servidor VSFTP, encontrado na maioria das distribuições Linux. Para configurar o vsftp é preciso editar o arquivo “/etc/vsftpd/vsftpd.conf”. As principais diretivas de configuração são:
# Permite a utilizacao de FTP anonimo.
anonymous_enable=YES
# Permite a autenticacao de usuario local.
local_enable=YES
# Habilita a opcao de escrita (upload de arquivos)
write_enable=YES
# Permite que o usuario anonimo (anonymous) faca upload de
# arquivos. A diretiva tera efeito somente se write_enable estiver
# habilitado. O usuario sob o qual o servidor FTP esta executando
# precisa ter permissao de escrita no diretorio.
anon_upload_enable=YES
# Permite ao usuario anonimo (anonymous) criar novos diretorios
anon_mkdir_write_enable=YES
# Habilita o envio de mensagens ao usuario remoto quando ele
# entrar em determinado diretorio.
dirmessage_enable=YES
# Banner de boas-vindas.
ftpd_banner=Bem-vindo ao servidor FTP de cursointra.
# Se definido, determina o diretorio padrao onde usuarios
# autenticados irao iniciar
#local_root=/var/ftp_autenticado
# Se definido, determina o diretorio padrao onde usuarios
# anonimos irao iniciar
#anon_root=/var/ftp_anonimo
O diretório raiz para FTP anônimo é o diretório “/var/ftp”.
Quando ativada a diretiva “dirmessage_enable”, cada vez que se entrar em um diretório e existir nele um arquivo de nome “.message”, o conteúdo do arquivo é mostrado.
O arquivo “/etc/vsftpd/ftpusers” lista os usuários que não podem fazer login via FTP.
Existe também o arquivo “/etc/vsftpd/user_list”, que lista usuários do sistema que poderão ou não logar no servidor FTP, dependendo de como estiver configurada a diretiva userlist_deny do arquivo “/etc/vsftpd/vsftpd.conf”. Caso esteja com o valor “NO”, apenas os usuários listados no arquivo poderão logar no servidor FTP. Caso esteja com o valor “YES”, os usuários listados no arquivo não poderão logar no servidor FTP. Caso nada seja informado o valor padrão é “YES”.
Iniciando o servidor FTP
O vsftp pode ser inicializado com o comando:
/etc/init.d/vsftpd start
e parado com o comando:
/etc/init.d/vsftpd stop
Para fazer com que o vsftp inicie automaticamente quando o Linux for inicializado nos víveis de execução 3 e 5, executar o comando:
chkconfig --level 35 vsftpd on
Verificando a execução do servidor FTP
O FTP anônimo pode ser testado com a utilização de um browser.
Para testar a transferência por um software de FTP pode ser utilizado o utilitário gftp.
Todas as transferências realizadas ficam registradas no arquivo “/var/log/xferlog”.
Aplicação Prática Teórica
Estudo dirigido: leitura do capítulo 21 do livro “Manual Completo do Linux – 2ª edição” (Biblioteca Virtual da Estácio).
Avaliação
I - Solicitar que os alunos criem em seus servidores Web um diretório dentro do qual as páginas poderão ser acessadas somente a partir de determinados endereços
e com um par usuário/senha.
Configurar o servidor Web para as restrições.
Testar a acesso a partir de um host autorizado.
Testar o acesso a parir de um host não autorizado.
II - Configurar o servidor Web para permitir acesso somente por sua rede local (não colocar permissão de acesso para a rede 127.0.0.0). Tentar acessar o servido pelo nome localhost. Foi liberado o acesso? Explique.
III - Configurar o servidor FTP para permitir acesso pelo usuário anônimo com permissão de escrita. Acessar com a conta anonymous.
O usuário consegue entrar em qualquer diretório do servidor?
Serviços para intranet e internet 5 
- Correio Eletrônico
Objetivos
Conhecer os conceitos de correio eletrônico
Conhecer os principais protocolos de transferência de mensagens de correio eletrônico da Internet
Aprender a configurar um sistema de correio eletrônico utilizando software livre
Identificar e resolver problemas em sistemas de correio eletrônico
Correio eletrônico
Os primeiros sistemas de correio eletrônico, ou e-mail, eram simplesmente formados por protocolos de transferência de arquivos, com a convenção de que a primeira linha de cada mensagem (arquivo) contivesse o endereço do destinatário.
Em 1982 as propostas de sistemas de correio eletrônico da ARPANET foram publicadas como a RFC 821 (protocolo de transmissão) e a RFC 822 (formato de mensagem). Desde então, essas RFCs se tornaram os padrões na Internet.
Arquitetura e Serviços
Os sistemas de correio eletrônico costumam ser divididos em dois subsistemas: os agentes usuários (user agents), que permitem que usuários ler, compor e enviar mensagens, e os agentes de transferência de mensagens (message transfer agents), que deslocam as mensagens da origem para o destino.
Os agentes usuários são programas locais que permitem a interação com o sistema de correio eletrônico. Normalmente, os agentes de transferência de mensagens são processos executados em segundo plano e que transportam mensagens de correio eletrônico através do sistema (servidores de e-mail).
Na Internet, as mensagens de correio eletrônico são entregues quando a máquina origem estabelece uma conexão TCP com a porta 25 da máquina destino. Um processo de correio eletrônico que implementa o SMTP (Simple Mail Transfer Protocol) permanece escutando essa porta. Esse processo aceita as conexões recebidas e copia as mensagens nelas contidas para as mailboxes apropriadas.
Após estabelecer a conexão, a máquina de transmissão (cliente) espera que a máquina de recepção (servidor) comunique-se primeiro. O servidor começa por enviar uma linha de texto informando sua identidade e indicando se está ou não preparado para receber mensagens. Caso não esteja, o cliente encerrará a conexão e tentará outra vez mais tarde.
Se o servidor estiver pronto para receber mensagens, o cliente anunciará de quem veio a mensagem e para quem ela está indo. Se esse destinatário existir no destino, o servidor sinalizará para o cliente enviar a mensagem. Em seguida, o cliente enviará a mensagem e o servidor irá confirmá-la. Quando todas as mensagens tiverem sido trocadas, a conexão será encerrada.
Segue abaixo um exemplo de conexão para transferência de uma mensagem de correio eletrônico simulada através de uma conexão Telnet:
telnet smtp.destino.com.br 25
220 Protegido SMTP server
helo rayra.inventado.com.br
250 Hello rayra.inventado.com.br, pleased to meet you
mail from: <fulano@inventado.com.br>
250 <fulano@inventado.com.br>... Sender ok
rcpt to: <teste@destino.com.br>
250 <teste@destino.com.br>... Recipient ok
data
354 Please start mail input.
subject: Teste de e-mail
Primeira linha da mensagem de teste.
Segunda linha.
Terceira linha.
.
250 Mail queued for delivery.
Para a transferência acima, a seguinte mensagem seria recebida:
Return-Path: <fulano@inventado.com.br> 
Received: from servidor (root@localhost [127.0.0.1]) 
by smtp.destino.com.br (8.12.4/8.9.3) with SMTP id i6RDVM1U008056 
for <teste@destino.com.br>; Tue, 27 Jul 2004 10:31:25 -0300 
Date: Tue, 27 Jul 2004 10:31:22 -0300 
From: fulano@inventado.com.br 
Message-Id: <200407271331.i6RDVM1U008056@smtp.destino.com.br> 
Received: from 192.168.1.1 ([192.168.1.1] helo=fwall.destino.com.br) by servidor ; 27 Jul 04 13:31:22 -0000 
X-Assp-Spam-Prob: 0.00000
subject: Teste de e-mail
De: fulano@inventado.com.br 
Para: teste@destino.com.br 
Assunto: Teste de e-mail
Data: 27/07/04 13:31 
Primeira linha da mensagem de teste.
Segunda linha.
Terceira linha.
Entrega Final
Com o advento das pessoas acessando a Internet o modelo proposto pelo SMTP falha, pois provavelmente o receptor da mensagem não estará com seu computador ligado no momento da entrega da mensagem.
A solução é fazer um agente de transferência de mensagens em uma máquina servidora aceitar mensagens de correio eletrônico para seus usuários e armazená-las nas respectivas caixas de correio. Assim as mensagens de correio eletrônico podem ser trocadas a qualquer momento.
Deste modo, para que um usuário possa receber suas mensagens de correio eletrônico é necessário criar outro protocolo que permita aos agentes usuários buscarem as mensagens no servidor. A seguir são descritas as principais soluções desenvolvidas com esta finalidade.
POP3
O POP3 (Post Office Protocol Version 3) é descrito pela RFC 1939. Para o seu funcionamento, ele estabelece uma conexão TCP com o servidor na porta 110. Depois que a conexão é estabelecida o protocolo passa por três estados em sequência:
Autorização
Transações
Atualização
O estado de autorização lida com o login do usuário. O estado de transação lida com a coleta de mensagens e com a marcação das mensagens para exclusão. O estado de atualização faz com que as mensagens marcadas para exclusão sejam efetivamente excluídas.
Com o POP3 pode-se baixar mensagens específicas e também eliminar apenas as mensagens que não se deseja mais, embora o mais comum seja o programa do cliente baixar e eliminar do servidor todas as mensagens.
IMAP
Para um usuário com uma conta de correio eletrônico que é sempre acessada a partir de um único computador o POP3 funciona bem. Porém muitas pessoas têm alguma conta de correio eletrônico que querem acessar a partir de mais de um local. Embora o POP3 torne isso possível, o resultado é que as mensagens do usuário ficarão espalhado por várias máquinas. Para resolver esta situação foi criado o IMAP (Internet Message Access Protocol), definido na RFC 3501.
O IMAP pressupõe que todas as mensagens permanecerão no servidor e fornece mecanismos para leitura de mensagens ou mesmo partes de mensagens. O IMAP também fornece mecanismos para criar, destruir e manipular várias caixas de correio no servidor. Ao contrário do POP3, o IMAP não copia as mensagens para a máquina pessoal do usuário.
O servidor IMAP espera por conexões de clientes na porta 143 do TCP.
Webmail
Um webmail não é um protocolo, mas uma forma que alguns sites da Web oferecem para que os usuários possam ler suas mensagens de correio eletrônico.
Para usar o sistema o usuário abre uma página na qual ele entra com uma identificação e uma senha. A partir daí ele tem acesso imediato às suas mensagens, de forma parecida a um cliente IMAP.
Servidores
Existem vários servidores SMTP para Linux, entre eles o sendmail e o postfix. Iremos estudar o postfix.
Configuração do MTA Postfix
Existe muito pouco a configurar para se obter o postfix funcionando. A configuração é feita editando diretamente os arquivos situados em “/etc/postfix”. Os principais arquivos de configuração são o “main.cf” e o “master.cf”.
Abaixo estão identificadas as principais entradas no arquivo “main.cf”.
/etc/postfix/main.cf:
# O parametro myhostname especifica o nome que o sistema de e-mail
# terah na internet. $myhostname eh utilizado como valor padrao em
# varios outros parametros de configuracao.
#
myhostname = mail.cursointra.com.br
# O parametro mydomain especifica o nome dominio do sistema. O
# padrao eh utilizar $myhostname menos o primeiro componente.
#

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Outros materiais