Serviços de Redes. Tecnico em Redes de Computadores. Gustavo Henrique da Rocha Reis



Documentos relacionados
Instalando o Debian em modo texto

Software Livre. Acesso ao código fonte Alterar o código fonte Redistribuir Utilizar como desejar

Introdução a Informática - 1º semestre AULA 02 Prof. André Moraes

Introdução ao Linux: Parte I

Guia de instalação UEG Linux LTS

Organização do Curso. Instalação e Configuração. Módulo II. Pós Graduação em Projeto e Gerencia de Redes de Computadores

SOFTWARE LIVRE. Distribuições Live CD. Kernel. Distribuição Linux

Tutorial Instalação Dual Boot Ubuntu e Windows XP Virtualização com VirtualBox

HOW TO. Instalação do Firewall 6.1 Software

ENDEREÇOS DE REDE PRIVADOS até até até Kernel

Aula 4 Comandos Básicos Linux. Prof.: Roberto Franciscatto

FTIN Formação Técnica em Informática Módulo de Administração de Servidores de Rede AULA 03. Prof. Gabriel Silva

Aula 02. Introdução ao Linux

Sistemas Operacionais de Rede Linux - Gerenciamento de Arquivos

MANUAL DE INSTALAÇÃO 1) ORACLE VIRTUALBOX ; 2) MICROSOFT WINDOWS ; 3) SUMÁRIOS GENEPLUS.

Operador de Computador. Informática Básica

UM PBX GENUINAMENTE BRASILEIRO

Tutorial de instalação do Debian Rudson Ribeiro Alves

INTRODUÇÃO AO SISTEMA

I N F O R M Á T I C A. Sistemas Operacionais Prof. Dr. Rogério Vargas Campus Itaqui-RS

Revisão Aula Explique a MBR(Master Boot Record)

Instalação: permite baixar o pacote de instalação do agente de coleta do sistema.

Tutorial: Instalando Linux Educacional em uma maquina virtual

Treinamento para Manutenção dos Telecentros

Gerenciamento de Arquivos e Pastas. Professor: Jeferson Machado Cordini jmcordini@hotmail.com

Sistema Operacional Unidade 5 - Iniciando o modo texto. QI ESCOLAS E FACULDADES Curso Técnico em Informática

Roteiro 3: Sistemas Linux arquivos e diretórios

Follow-Up Acompanhamento Eletrônico de Processos (versão 3.0) Manual do Sistema. 1. Como acessar o sistema Requisitos mínimos e compatibilidade

Jackson Barbosa de Azevedo

UM PBX GENUINAMENTE BRASILEIRO MANUAL DE INSTALAÇÃO COM IMAGEM ISO

Partição Partição primária: Partição estendida: Discos básicos e dinâmicos

Procedimentos para Reinstalação do Sisloc

22:59:36. Introdução à Informática com Software Livre

ArpPrintServer. Sistema de Gerenciamento de Impressão By Netsource Rev: 02

Sistema Operacional Unidade Instalando o Ubuntu Virtualizado

Aula 01 Visão Geral do Linux

Iniciação à Informática

Portaria Express 3.0

Manual do usuário. Mobile Auto Download

Instalação do Linux Educacional 3.0 Bancadas SED

OneDrive: saiba como usar a nuvem da Microsoft

Informática. Aula 03 Sistema Operacional Linux. Instituto Federal de Educação, Ciência e Tecnologia do Rio Grande do Norte Campus Currais Novos

1 Instalando o VirtualBox no Windows

TUTORIAL: MANTENDO O BANCO DE DADOS DE SEU SITE DENTRO DO DOMÍNIO DA USP USANDO O SSH!

Universidade Federal da Fronteira Sul Campus Chapecó Sistema Operacional

TUTORIAL VMWARE WORKSTATION 8. Aprenda a instalar e configurar corretamente uma máquina virtual utilizando VMware Workstation com este tutorial

Sistema Operacional LINUX

VIRTUALIZAÇÃO CONVENCIONAL

INSTALANDO O UBUNTU PELA IMAGEM ISO OU LIVE-USB DA UFV PASSO-A-PASSO.

SIMULADO Windows 7 Parte V

Aloque 1024 MB de RAM para a VM. Crie um novo disco virtual. Figura 03. Figura 04.

Sistemas Operacionais. Curso Técnico Integrado Profa: Michelle Nery

Instalação FreeBSD Inicialização do CD/DVD! Ao colocar o CD/DVD como boot principal na BIOS, aparecerá a seguinte tela:

ALTERNATIVA PARA CONEXÃO VIA INTERNET DE IP MASCARADO A IP REAL

Comandos Básicos do Linux/Unix

Manual de Instalação SNEP 3 Asterisk 13

LISTA DE COMANDOS DO LINUX 1

Índice. Manual Backup Online. 03 Capítulo 1: Visão Geral

CONFIGURAÇÃO MINIMA EXIGIDA:

Guia de Instalação e Configuração do Ubuntu 12.04

FTIN Formação Técnica em Informática Módulo Sistema Proprietário Windows AULA 02. Prof. André Lucio

Manual de backup do banco de dados PostgreSQL - Versão 2. Setembro-2011

1- Requisitos mínimos. 2- Instalando o Acesso Full. 3- Iniciando o Acesso Full pela primeira vez


NetEye Guia de Instalação

Tutorial de Instalação C3SL

Conteúdo 1 Comandos Básicos. Questão 1: Que comando permite encerrar o sistema definitivamente?

Você pode testar se está tudo OK, abrindo um navegador no Debian Linux e acessando qualquer site.

Manual Captura S_Line

ROTEIRO: IMPLANTANDO O SISTEMA OPERACIONAL WINDOWS 7

AULA 5 Sistemas Operacionais

Virtual Box. Guia. Instalação E Utilização. Criado por Wancleber Vieira wancleber.vieira@ibest.com.br

Boot Camp Guia de Instalação e

1 Instalação de Pacotes RPM no Metasys Contato...10

Agente local Aranda GNU/Linux. [Manual Instalación] Todos los derechos reservados Aranda Software [1]

1 REQUISITOS BÁSICOS PARA INSTALAR O SMS PC REMOTO

SISTEMAS OPERACIONAIS LIVRES. Professor Carlos Muniz

Manual do Sistema "Vida Controle de Contatos" Editorial Brazil Informatica

MANUAL DO ADMINISTRADOR LOCAL. Entidade Municipal

TUTORIAL DE INSTALAÇÃO DO PFSENSE E UMA REDE INTERNA NO VIRTUALBOX

Manual de Instalação PIMSConnector em Windows

UDPcast Clonagem de HDs via rede utilizando

Como criar uma máquina virtual para instalar o Windows XP ou outro?

16:21:50. Introdução à Informática com Software Livre

AULA 4 Sistemas Operacionais

MANUAL DO USUÁRIO UTILIZAÇÃO DO SOFTWARE PDF 24 CREATOR. Coordenadoria de Tecnologia da Informação

Manual de Instalação ProJuris8

IBM SPSS Modeler - Princípios Básicos do R: Instruções de Instalação

SIMULADO DE INFORMÁTICA BÁSICA TÉCNICO DO MPU PROF. ALEXANDRE LÊNIN / PROF. JUNIOR MARTINS

Manual AGENDA DE BACKUP

Manual do Usuário Android Neocontrol

Manual de Instalação do Agente Citsmart

Curso de Instalação e Gestão de Redes Informáticas

Guia Sphinx: instalação, reposição e renovação

MANUAL DE INSTRUÇÕES. Versão 1.0. Visão Transportador

Tutorial de Instalação do CentOS Versão 3.3

Sistema de de Bilhetagem Eletrônica MANUAL MÓDULO PDV

Windows. Introdução. Introdução Sistema Operacional. Introdução Sistema Operacional. Introdução Sistema Operacional. Introdução Sistema Operacional

HOW TO Procedimento para instalar Aker Firewall virtualizado no ESXi 5.0

Transcrição:

Serviços de Redes Gustavo Henrique da Rocha Reis Tecnico em Redes de Computadores Centro de Educação Aberta e a Distância (CEAD) Instituto Federal do Sudeste de Minas Gerais - Campus Rio Pomba Av. Dr. José Sebastião Da Paixão s/nº - Bairro Lindo Vale CEP: 36180-000 - Rio Pomba/MG Telefone: (32)3571-5746 Http://cead.riopomba.ifsudestemg.edu.br/

Serviços de Redes Gustavo Henrique da Rocha Reis Rio Pomba - MG 2013

Apresentação e-tec Brasil Prezado estudante, Bem-vindo ao e-tec Brasil! Você faz parte de uma rede nacional pública de ensino, a Escola Técnica Aberta do Brasil, instituída pelo Decreto nº 6.301, de 12 de dezembro 2007, com o objetivo de democratizar o acesso ao ensino técnico público, na modalidade a distância. O programa é resultado de uma parceria entre o Ministério da Educação, por meio das Secretarias de Educação a Distancia (SEED) e de Educação Profissional e Tecnológica (SETEC), as universidades e escolas técnicas estaduais e federais. A educação a distância no nosso país, de dimensões continentais e grande diversidade regional e cultural, longe de distanciar, aproxima as pessoas ao garantir acesso à educação de qualidade, e promover o fortalecimento da formação de jovens moradores de regiões distantes, geograficamente ou economicamente, dos grandes centros. O e-tec Brasil leva os cursos técnicos a locais distantes das instituições de ensino e para a periferia das grandes cidades, incentivando os jovens a concluir o ensino médio. Os cursos são ofertados pelas instituições públicas de ensino e o atendimento ao estudante é realizado em escolas-polo integrantes das redes públicas municipais e estaduais. O Ministério da Educação, as instituições públicas de ensino técnico, seus servidores técnicos e professores acreditam que uma educação profissional qualificada integradora do ensino médio e educação técnica, é capaz de promover o cidadão com capacidades para produzir, mas também com autonomia diante das diferentes dimensões da realidade: cultural, social, familiar, esportiva, política e ética. Nós acreditamos em você! Desejamos sucesso na sua formação profissional! Nosso contato etecbrasil@mec.gov.br Ministério da Educação Janeiro de 2013 3 e-tec Brasil

Indicação de ícones Os ícones são elementos gráficos utilizados para ampliar as formas de linguagem e facilitar a organização e a leitura hipertextual. Atenção: indica pontos de maior relevância no texto. Saiba mais: oferece novas informações que enriquecem o assunto ou curiosidades e notícias recentes relacionadas ao tema estudado. Glossário: indica a definição de um termo, palavra ou expressão utilizada no texto. Mídias integradas: sempre que se desejar que os estudantes desenvolvam atividades empregando diferentes mídias: vídeos, filmes, jornais, ambiente AVEA e outras. Atividades de aprendizagem: apresenta atividades em diferentes níveis de aprendizagem para que o estudante possa realizá-las e conferir o seu domínio do tema estudado. 5 e-tec Brasil

Palavras do professor-autor Olá estudante! Bem vindo ao conteúdo da disciplina Serviços de Rede! Aproveite este momento para conhecer os principais programas que são utilizados para prestar serviços na Internet como servidores de páginas, resolução de domínios, transferência de arquivos, acesso remoto, envio/recebimento de e-mails. Caso seja a primeira vez que você esta tendo contato este conteúdo, não fique preocupado. Seja persistente e tenha disciplina nos estudos. Explore ao Maximo o material que esta sendo disponibilizado a você. Bons estudos! Professor Gustavo Henrique da Rocha Reis

Apresentação da disciplina A disciplina Serviços de Rede ira abordar o funcionamento dos programas Bind (para resolução de domínios), Apache (para hospedar sites), ProFTPD (para transferência de arquivos), Postfix/Qpopper (programas para envio/recebimento, respectivamente, de e-mails, OpenSSH (para acesso remoto ao servidor). Antes de começar a fazer as instalações/configurações destes serviços, será abordado o conceito de virtualização e instalação do sistema operacional GNU/Linux como base para estes serviços. Bons estudos e sucesso!

Sumário Aula 1. Sistema Operacional Linux...7 1.1 Introdução...7 1.2 Distribuição Debian GNU/Linux...8 1.3 Instalando o Debian...8 1.3.1 Virtualização...8 1.3.2 Configurando uma máquina virtual...13 1.3.3 Instalação do Debian na máquina virtual...17 1.4 Exercícios...32 Aula 2. Shell...33 2.1 Introdução...33 2.2 Comandos para manipulação de diretório...34 2.2.1 Comando ls...35 2.2.2 Comando cd...36 2.2.3 Comando pwd...37 2.2.4 Comando mkdir...37 2.2.5 Comando rmdir...38 2.3 Comandos para manipulação de arquivo...38 2.3.1 Comando cat...38 2.3.2 Comando rm...39 2.3.3 Comando cp...39 2.3.3 Comando mv...40 2.4 Manipulação de contas...41 2.4.1 Comando groupadd...43 2.4.2 Comando useradd...43 2.4.3 Comando passwd...44 2.4.4 Comando userdel...45 2.4.5 Comando groupdel...45 2.5 Manipulação de permissões...45 2.5.1 Comando chmod...47 2.5.2 Comando chown...49 2.5.3 Comando chgrp...50 2.6 Instalação de Programas...50 2.7 Exercícios...54 Aula 3. Serviço DNS...56 3.1 Introdução...56 3.2 Tipos de consultas DNS...58 3.3 Instalando e configurando um servidor DNS...62 3.4 Exercícios...68 Aula 4. Serviço WEB...69 4.1 Introdução...69 4.2 Instalando e Configurando o Servidor Web...70 4.3 Preparando o servidor web para hospedar um site...72

4.4 Analisando o log de acesso...76 4.5 Exercícios...77 Aula 5. Serviço FTP...78 5.1 Introdução...78 5.2 Instalando e Configurando o Servidor FTP...79 5.3 Criando usuário WebDesigner...81 5.4 Exercícios...83 Aula 6. Serviço E-Mail...84 6.1 Introdução...84 6.2 Instalando e Configurando o Servidor E-mail...85 6.3 Enviando um E-mail...87 6.4 Lendo um E-mail...88 6.5 Exercícios...89 Aula 7. Acesso Remoto...90 7.1 Introdução...90 7.2 Instalando e Configurando o OpenSSH...91 7.3 Fazendo login remoto no OpenSSH...92 7.4 Exercícios...93 Palavras finais...94 Bibliografia básica...95 Currículo do professor-autor...96

Aula 1. Sistema Operacional Linux Objetivos Ter noções sobre a história do sistema operacional GNU/Linux Saber o que é uma distribuição Aprender sobre virtualização Instalar do GNU/Linux Debian 1.1 Introdução Linux ou GNU/Linux é um sistema operacional que utiliza um kernel (núcleo do sistema operacional) desenvolvido pelo finlandês Linus Torvalds. O Linux pode ser usado como alternativa a outros sistemas operacionais como MS Windows, Mac OS, MS-DOS, Solaris entre outros. Quando Linus Torvalds era estudante da Universidade de Helsinki, ele estava usando uma versão do sistema operacional UNIX chamado Minix. Linus Torvalds e outros usuários enviaram pedidos de modificações e melhorias ao criador do Minix, Andrew Tanenbaum, mas o mesmo disse que não havia necessidade de alterações. Sendo assim, Linus Torvalds decidiu criar o próprio sistema operacional que deveria ter sugestões e melhorias de outros usuários. Esta filosofia de pedir sugestões, melhorias aos usuários e utilizá-los nos programas de computadores não é novidade. Richard Stallman, que trabalhou no Instituto de Tecnologia de Massachusetts, vem defendendo uma abordagem para programas de computadores e seu uso deste 1970. Ele foi o pioneiro no conceito do software livre1, sempre dizendo que livre significa liberdade, não a custo zero. Encontrando dificuldades para continuar a trabalhar em condições que era contra o seu conceito de "software livre", Richard Stallman deixou o MIT em 1984 e fundou o projeto GNU General Public License (GNU GPL). O objetivo do GNU GPL era produzir um software que era livre para usar, distribuir e modificar. Objetivo de Linus Torvalds, seis anos mais tarde, foi basicamente o mesmo: produzir um sistema operacional que levou em conta o feedback do usuário. O ponto principal de um sistema operacional é o seu kernel. Ele faz a comunicação entre os programas e os processamentos feitos em nível de hardware. As responsabilidades do kernel incluem gerenciamento de processos, gerenciamento de memória, gerenciamento de dispositivos e chamadas de sistema. 1 Software Livre: http://www.debian.org/intro/free 7

1.2 Distribuição Debian GNU/Linux O projeto Debian GNU/Linux é uma associação de pessoas que tem uma causa comum que é criar um sistema operacional livre, desta forma surgindo este projeto. É desenvolvido por mais de mil programadores espalhados pelo mundo. Estes programadores são voluntários em seus tempos livres, sendo que poucos se conhecem pessoalmente. Trocas de informações são feitas através de e-mails e IRC (Internet Relay Chat). Mesmo a distribuição sendo feita se certa forma à distância, existe uma estrutura organizacional 2 bem definida. O Debian utilizam o kernel do Linux ou do FreeBSD. Todavia, existem esforços em prover outros kernels para o Debian como Hurd. Hurd é um software livre produzido pelo projeto GNU. 1.3 Instalando o Debian Antes de ser feita a instalação do Debian, é preciso entender que existem alguns tipos de instalações como as citadas abaixo: Utilizando o disco rígido inteiro do computador, assim existirá apenas o Debian em seu computador; Redimensionando a partição do disco rígido, ou seja, será liberado um espaço no disco (utilizando ferramentas próprias) para ser instalado o Debian nesta partição mantendo desta forma o seu sistema operacional (ex. Windows) e o Debian instalados juntos. Quando for ligado o computador aparecerá uma tela perguntando em qual sistema será inicializado (Windows ou Linux). Utilizando virtualização, desta forma será necessário instalar um programa de virtualização em seu computador e dentro deste programa será instalado qualquer sistema operacional. Desta forma o sistema operacional que já existe em seu computador não será alterado em nada. 1.3.1 Virtualização A opção a ser adotada para instalar o Debian será fazendo o uso de virtualização. Mas por que utilizá-lo? A criação de um ambiente virtual permite simular um ambiente real, propiciando a utilização de diversos sistemas e aplicativos. A principal vantagem é em termos econômicos pois assim podemos utilizar o máximo do poder de processamento do hardware evitando desperdícios computacionais. 2 Estrutura Organizacional: http://www.debian.org/intro/organization 8

A virtualização consistem em executar vários sistemas operacionais no mesmo computador de forma simultânea. Isto é possível com o uso de programas específicos que geram máquinas virtuais: estas emulam os componentes físicos do computador, possibilitando que um sistema operacional diferente seja instalado em cada máquina virtual. Há outras duas vantagens na adoção desta tecnologia: uma voltada a usuários, outra a servidores. No caso dos usuários consiste em eliminar a incompatibilidade entre aplicativos e sistemas operacionais. Pense em um usuário cujo computador tenha o Windows Vista instalado, mas que deseje executar um aplicativo que só é compatível com o Windows XP. Isso é possível com a criação, neste computador, de uma máquina virtual que execute o Windows XP, depois é só instalar o aplicativo nesta máquina virtual e executá-lo normalmente (como se fosse um computador dentro do outro). Quanto aos servidores, sua virtualização permite que, ao invés de se ter diversos servidores (que utilizam apenas uma porcentagem dos recursos), os precessos sejam distribuídos de forma equilibrada entre um número menor de computadores (assim chegam mais próximos do aproveitamento total de sua capacidade). Isto reduz a quantidade de mão-de-obra técnicas, o espaço para alocar os computadores e o gasto com eletricidade, permitindo assim economia. O programa a ser utilizado para fazer a virtualização é o VirtualBox 3 que é mantido pela Oracle4. Este programa está disponível como um software de código aberto sob os termos do GNU GPL versão 2. Pode ser instalado em vários sistemas operacionais como plataformas Windows, Linux, Macintosh e Solaris. Para poder fazer o download do programa acesse o site do VirtualBox, sessão downloads e escolha o pacote para o seu sistema operacional. Ex.: caso o seu computador tenha instalado o sistema operacional Windows, clique na opção x86/amd64 referente a VirtualBox 4.2 for Windows hosts. Após fazer o download do programa, faça a instalação do mesmo clicando duas vezes no arquivo do programa e seguindo os passos abaixo. 3 VirtualBox: https://www.virtualbox.org/ 4 Oracle: http://www.oracle.com/index.html 9

Passo 1: Quando aparecer a tela mostrada pela figura 1.1 clique no botão Next para proceder com a instalação. Figura 1.1 Tela inicial de instalação do VirtualBox Passo 2: Esta tela exibe opções para poder customizar sua instalação. Não altere nenhuma informações e clique no botão Next para continuar com a instalação. Figura 1.2 Tela de customização da instalação do VirtualBox Passo 3: Esta tela permite criar o ícone na Área de Trabalho do seu computador, não desmarque nenhuma opção e clique no botão Next Figura 1.3 Permite criar o ícone do programa na área de trabalho 10

Passo 4: Esta tela permite instalar as interfaces de rede virtuais para as máquinas virtuais poderem ter acesso a rede. Clique no botão Yes para aceitar a instalação. Figura 1.4 Tela de instalação das interfaces de rede Passo 5: Esta tela permite instalar as interfaces de rede virtuais para as máquinas virtuais poderem ter acesso a rede. Clique no botão Install para aceitar a instalação. Figura 1.5 Tela de instalação das interfaces de rede Passo 6: Logo após começará a instalação do probrama como mostrado na figura 1.6. Figura 1.6 Tela de instalação das interfaces de rede 11

Passo 7: Esta tela permite instalar o módulo USB para as máquinas virtuais reconhecerem os dispositivos USB que forem conectados no computador. Clique no botão Instalar. Figura 1.7 Tela de instalação do módulo USB Passo 8: Esta tela permite instalar o módulo Serviço de Rede como por exemplo serviço DHCP para as máquinas virtuais receberem IP. Clique no botão Instalar. Figura 1.8 Tela de instalação do serviço de rede Passo 9: Depois de terminar a instalação será mostrada a tela da figura 1.9. Clique no botão Finish. Figura 1.9 Tela de finalização da instalação 12

Passo 10: Depois da instalação execute o programa. A figura 1.10 mostra a tela principal do VirtualBox. Figura 1.10 Tela de finalização da instalação 1.3.2 Configurando uma máquina virtual O processo de criar uma máquina virtual é como se estivess montando um computador fisicamente, onde terá que ter memória principal (memória RAM), disco rígido (HD), unidade de DVD-ROM dentre outros dispositivos comuns de um computador. Sendo assim, siga os passos abaixo: Passo 1: Após acessar o programa clique no botão Novo para poder começar a criar a máquina virtual. Como mostrado na figura 1.11 coloque o nome da máquina virtual e escolha qual o sistema operacional que será mostrado. Faça igual ao da figura. Depois clique no botão Próximo(N). Figura 1.11 Tela inicial de criação da máquina virtual Passo 2: A próxima tela (figura 1.12) mostra a configuração do tamanho da memória principal que a máquina virtual irá usar.o próprio VitualBox calcula o tamanho ideal com relação à configuração do seu computador. Não altere o valor. Clique no botão Próximo (N). Figura 1.12 Tela configuração do tamanho da memória RAM 13

Passo 3: Esta tela permite criar o disco rígido da máquina virtual.deixa a configuração padrá e clique no botão Criar. Figura 1.13 Tela de criação do disco rígido Passo 4: A próxima tela permite escolher qual o tipo de arquivo será criado para o dísco rígido. Toda máquina virtual criada será armazenada em um diretório e o disco rígido será representado por um arquivo. Deixe a configuração padrão e clique no botão Próximo(N). Figura 1.14 Tela de criação do disco rígido Figura 1.15 Tela tipo de armazenamento em disco rígido físico Passo 5: Esta tela permite escolher qual tipo de armazemanto será criado. A opção dinamicamente alocado permite que o arquivo criado cresça à medida que seja instalados programas ou copiados arquivos para dentro da máquina virtual. Deixe a configuração padrão e clique no botão Próximo(N). 14

Passo 6: Este passo permite digitar um nome para o disco rígido e onde ele será armazenado. Deixe a configuração padrão e clique no botão Criar. Figura 1.16 Tela de localização e tamanho do disco rígido Passo 7: Depois de criar a máquina virtual, será mostrada a tela principal do VirtualBox com todas as máquinas virtuais criadas, neste caso somente a máquina virtual Debian Squeeze. Figura 1.17 Tela principal com a máquina virtual criada Figura 1.18 Tela de configuração da imagem ISO do Debian. 15

Passo 8: Para poder fazer a instalação de um sistema operacional, utilizamos uma mídia DVD contendo o sistema e efetuamos a inicialização do computador através deste DVD. Em nosso caso, como estamos fazendo uso da virtualização temos a opção de fazer a instalação dos sistemas operacionais nas máquinas virtuais através de imagens ISO 5. Sendo assim, selecione a máquina virtual Debian Squeeze na tela principal do VirtualBox e logo em seguida clique na opção Configurações como mostrado na figura 1.17 (na marcação em verde). Depois disso será mostrada a tela representada pela figura 1.18 onde deve ser selecionado a opção Armazenamento, Controladora IDE/Vazio, e no símbolo que represenda uma mídia de CD/DVD (seta vermelha). Após selecionar esta opção clique em Selecione um arquivo de CD/DVD virtual, assim irá aparecer uma tela de diálogo pedindo para selecionar a imagem ISO de instalação do Debian. Para adquirir uma imagem ISO do Debian é só fazer o download na página oficial6 do projeto. Passo 9: Após a seleção do arquivo ISO a tela irá ficar semelhante a da figura 1.19. Sendo assim, clique no botão OK para voltar à tela principal. Figura 1.19 Tela de configuração da imagem ISO do Debian. 5 Imagens ISO: é toda a informação de um CD/DVD contida em um único arquivo com extensão ISO. 6 Página Oficial: http://cdimage.debian.org/debian-cd/6.0.6/amd64/iso-dvd/debian6.0.6-amd64-dvd-1.iso 16

1.3.3 Instalação do Debian na máquina virtual Depois da máquina virtual criada basta seguir os passos abaixo para poder fazer a instalação da distribuição Debian. Passo 1: Para iniciar a máquina virtual, selecione Debian Squeeze e clique no botão Iniciar, como indicado na marcação verde. Figura 1.20 Tela principal Passo 2: Depois de ser iniciada a máquina virtual, será mostrada a tela de instalação do Debian (figura 1.21). Clique dentro da tela de instalação do Debian para começar a fazer a instalação. Figura 1.21 Tela principal de instalação do Debian Figura 1.22 Aviso de captura do mouse e teclado Passo 3: Ao clicar dentro da tela de instalação do Debian, será mostrada a tela da figura 1.22 dizendo que o mouse e o teclado estarão focados na máquina virtual, clique no botão Capturar. Para poder liberar o mouse e o teclado basta pressionar a tecla Ctrl do lado direito do teclado. 17

Após a captura do mouse e teclado deixe selecionado a opção Install e pressione a tecla Enter para começar a instalação do Debian. Passo 4: Será mostrada a tela para escolher a linguagem desejada. Com a seta do teclado navegue para baixo até encontrar a opção Portuguese (Brazil) Português do Brasil. Depois pressione a tecla Enter. Figura 1.23 Escolha da linguagem Passo 5: A próxima tela permite selecionar a localidade. Deixe marcada a opção Brasil e pressione a tecla Enter. Figura 1.24 Selecione sua localidade Passo 6: Selecione o layout do teclado sendo Português Brasileiro (layout ABNT2). Este layout é para os teclados que possuem a tecla ç. Caso seu teclado não possua a tecla ç escolha a opção Português. Pressione a tecla Enter. Figura 1.25 Escolha do layout do teclado 18

Passo 7: Carregando componentes adicionais para a instalação do Debian. Figura 1.26 Componentes adicionais para instalação Passo 8: Tela para informar o nome do computador. Deixe o nome Debian e pressione Enter. Figura 1.27 Tela para informar o nome do computador Passo 9: Informe o domínio que o computaor irá pertencer, em nossa instalação digite localhost. Isto significa que o domínio é o próprio computador e depois pressione Enter. Figura 1.28 Tela para informar o domínio do computador Passo 10: Informe a senha do usuário root (administrador do Linux). A senha será 123456 e depois pressione a tecla Enter. Figura 1.29 Tela para informar a senha do usuário root Passo 11: Confirme a senha do usuário root 123456 e depois pressione a tecla Enter. Figura 1.30 Tela para informar a senha do usuário root 19

Passo 12: O próximo passo é criar uma conta de usuário comum (sem muitos privilégios). Digite o nome completo da conta do usuário chamado usuario do curso de redes e pressione a tecla Enter. Figura 1.31 Tela para informar o nome completo do usuário Passo 13: Esta tela permite digitar o nome da conta do usuário que está sendo criado. Digite usuario e depois pressione a tecla Enter. Figura 1.32 Tela para informar o nome da conta do usuário Passo 14: O próximo passo é digitar uma senha para a conta usuario. Digite a senha 123456 e depois pressione a tecla Enter. Figura 1.33 Tela para informar a senha do usuário Passo 15: Confirme a senha para a conta usuario. Digite a senha 123456 e depois pressione a tecla Enter. Figura 1.34 Tela para confirmar a senha do usuário 20

Passo 16: Logo em seguida escolha o fuso horário. Deixe marcada a opção São Paulo e depois pressione a tecla Enter. Figura 1.35 Tela para escolher o fuso horário Passo 17: Carregando os componentes de particionamento de discos. Figura 1.36 Tela carregando componentes adicionais de discos Passo 18: Esta tela permite escolher qual tipo padrão de particionamento será feito. Escolha a opção Manual e pressione a tecla Enter. Figura 1.37 Tela de particionamento de discos Particionar um disco significa dividi-lo em partes lógicas, para o sistema operacional é como se existissem vários discos rígidos. No Linux, de uma forma padrão, existem duas partições que são criadas: a partição de troca 7 (onde o sistema operacional faz troca de informações entre memória principal e o disco rígido) e a partição onde será instalado o sistema operacional. 7 Partição de troca: conhecido também como partição de swap. 21

Passo 19: Esta tela mostra o disco que foi criado na máquina virtual. Selecione este disco e pressione a tecla Enter para criar a tabela de partição do disco. Figura 1.38 Tela de particionamento de discos Passo 20: Selecione a opção Sim para aceitar a criação da tabela de partição no disco e pressione a tecla Enter. Figura 1.39 Tela de particionamento de discos Figura 1.40 Tela de particionamento de discos Passo 21: A figura 1.40 mostra a tabela de partição criada. Agora basta pressionar a tecla Enter para começar a criar as partições necessárias para a instalação do Linux. 22

Passo 22: Esta tela permite criar uma nova partição para o seu disco rígido. Pressione a tecla Enter para criar a partição. Figura 1.41 Tela de particionamento de discos Passo 23: Esta tela permite definir o tamanha da partição a ser criada. Digite o tamanho de 1 GB, igual ao indicado na figura 1.42, este tamanho será para a partição de Troca. Depois pressione a Figura 1.42 Tela de particionamento de discos (tam. da partição) tecla Enter. A partição de troca (swap) permite estender o tamanho da memória principal (RAM) utilizando a memória secundária (disco rígido). Passo 24: Aqui você vai escolher o tipo de partição a ser criado. Escolha Primária e depois pressione a tecla Enter. Figura 1.43 Tipo de partição Passo 25: Este ponto permite crair a partição no início ou fim do disco rígido. Escolha a opção Início e depois pressione a tecla Enter. Figura 1.44 Partição pode ser criada no Início ou Fim do disco 23

Figura 1.45 Configuração da partição Passo 26: neste passo (figura 1.45) você poderá escolher qual o tipo de sistemas de arquivos esta partição terá. Como estamos criando uma partição de Troca, existe um sistema de arquivos específico para isto. Sendo assim, selecione a opção Usar Como e pressione a tecla Enter para escolher o sistema de arquivos correto. Passo 27: Esta tela permite você escolher o sistema de arquivos correto para a partição que está sendo criada. Escolha o sistema de arquivos área de troca (swap) e depois pressione a tecla Enter. Figura 1.46 Escolha do tipo de partição 24

Figura 1.47 Finaliza a configuração da partição Passo 28: Depois de escolhido o sistema de arquivos, será mostrada esta tela com as configurações corretas. Sendo assim, selecione a opção Finalizar a configuração da partição e depois pressione a tecla Enter. Figura 1.48 Tela de particionamento de discos com partição de troca (swap) criada Passo 29: neste passo você terá que criar outra partição. É nesta partição que será feita a instalação do sistema operacional Linux. Sendo assim, selecione a opção ESPAÇO LIVRE e pressione a tecla Enter. Passo 30: Esta tela permite criar uma nova partição para o seu disco rígido. Pressione a tecla Enter para criar a partição. Figura 1.49 Tela de particionamento de discos 25

Passo 31: Esta tela permite definir o tamanho da partição. Deixe o tamanho total a ser utilizado e depois pressione a tecla Enter. Figura 1.50 Tela de particionamento de discos (tam. da partição) Passo 32: Aqui você vai escolher o tipo de partição a ser criado. Escolha Primária e depois pressione a tecla Enter. Figura 1.51 Tipo de partição Figura 1.52 Configuração da partição Passo 33: esta tela mostra a configuração padrão da partição onde será instalado o Linux. A opção Usar como mostra o tipo de sistema de arquivos que será utilizado pelo Linux Sistema de arquivos com journaling ext3. O Ponto de montagem: / refere-se onde será instalado o Linux. Fazendo uma analogia com o sistema operacional da Microsoft (Windows), é como se fosse a letra C:\ significando que o Windows foi instalado a partir deste ponto. No Linux o símbolo Barra (/) significa que o sistema operacional é instalado a partir deste ponto. Deixte estas configurações padrões (como mostrado na figura 1.52), selecione a opção Finalizar a configuração da partição e depois pressione a tecla Enter. 26

Passo 34: Esta tela mostra todas as partições criadas. Sendo assim, selecione a opção Finalizar o particionamento e escrever as mudanças no disco. Depois pressione a tecla Enter. Figura 1.53 Tela de particionamento de discos Passo 35: Selecione a opção Sim para aceitar as modificações das partições criadas e depois pressione a tecla Enter. Figura 1.54 Tela para aceitar as configurações de partição feitas Figura 1.55 Tela de formatação das partições criadas Passo 36: fazendo a formatação das partições criadas. A formatação serve para preparar a partição para receber a estrutura de diretórios e arquivos do sistema operacional. Assim, o sistema operacional é capaz de ler e gravar informações no disco. Figura 1.56 Tela de instalação do sistema básico Passo 37: neste passo está sendo instalado o sistema básico do Linux. 27

Figura 1.57 Tela de configuração do gerenciador de pacotes Passo 38: esta tela permite ser catalogado outros CD/DVD's. Toda vez que for instalado um novo programa no Linux, utilizando o comando aptitude (mostrado na Aula 2), será pesquisado neste catálogo e o mesmo irá pedir o CD/DVD correto que possui o programa. A imagem ISO que está sendo usada para instalar o Linux já foi catalogada sendo assim escolha a opção Não (para não catalogar outra imagem/cd) e pressione a tecla Enter. Figura 1.58 Tela de configuração do gerenciador de pacotes Passo 39: esta opção permite configurar um espelho de rede para poder instalar novos programas ou atualizar programas já instalados através da Internet. Em nosso laboratório de instalação vamos escolher a opção Não e pressionar a tecla Enter. Pois que será utilizado nesta instalação já está na imagem de instalação. Figura 1.59 Tela de instalação dos programas restantes do Linux básico 28

Passo 40: esta tela mostra o restante da instalação básica do Linux. Figura 1.60 Tela de configuração de estatísticas de uso de pacotes (programas) Passo 41: neste passo é possível participar de um levantamento dos programas mais utilizados no Debian para os desenvolvedores colocarem no primeiro CD/DVD de instalação da distribuição. Mas em nossos exercícios vamos escolher a opção Não e pressionar a tecla Enter. Figura 1.61 Tela de seleção de softwares Passo 42: neste passo é possível escolher os serviços que queremos executar no Debian. Mas deixe as configurações padrões e pressione a tecla Enter. Os programas de serviços como WEB, DNS, arquivos serão vistos nas aulas seguintes e instalados após a instalação do Debian. Será feito desta forma para poder nos familiarizarmos melhor com a distribuição. 29

Figura 1.62 Tela de seleção do GRUB Passo 43: após ser instalado todos os programas selecionados, será mostrada a tela acima (figura 1.62) pedindo para instalar o GRUB 8 no disco rígido. O GRUB é um gerenciador de boot de sistemas operacionais. Ex.: caso o seu computador tenha dois sistemas operacionais (Windows e Linux), o gerenciador de boot permite você escolher um dos dois sistemas operacionais que queira utilizar quando ligar o computador. Sendo assim, escolha a opção Sim e pressione a tecla Enter. Figura 1.63 Instalando o GRUB Passo 44: este passo mostra a instalação do GRUB. Figura 1.64 Instalação finalizada Passo 45: este passo mostra a finalização da instalação do Debian. Pressione a tecla Enter para ser reinicializada a máquina virtual e ter acesso ao novo sistema operacional instalado. 8 GRUB: Grand Unified Boot Loader 30

Figura 1.65 Tela do GRUB Passo 46: este passo permite você escolher a inicialização padrão do Debian (Debian GNU/Linux, with Linux 2.6.32-5-amd64) ou escolher o modo de recuperação (Debian GNU/Linux, with Linux 2.6.32-5-amd64 recovery mode) caso o sistema tenha algum problema. Pressione a tecla Enter para inicializar o Debian ou não faça nada que o sistema inicializa sozinho. Figura 1.66 Tela de login do Debian 31

Passo 47: tela de sessão do Debian, selecione o usuário chamado usuario para digitar a senha 123456 e ter acesso ao ambiente de trabalho do Debian. Figura 1.67 Área de trabalho do Debian Passo 48: depois de ter digitado usuário/senha, será mostrada a área de trabalho do Debian. 1.4 Exercícios 1) Quem criou/desenvolveu o GNU/Linux? 2) Faça uma pesquisa na Internet sobre GNU General Public License. 3) O que é uma distribuição Linux? Além da distribuição Debian existem outras, cite outras duas distribuições e algumas características delas. 4) Para a instalação da distribuição do Debian foi feito o uso de virtualização. Cite algumas vantagens em se utilizar virtualização e outros programas que trabalham com virtualização (além do VirtualBox). 5) Durante a instalação do Debian, foram criadas duas partições no disco virtual. Para que serve a partição de troca e a partição representada por uma barra /? 6) Para que serve o programa chamado GRUB? 32

Aula 2. Shell Objetivos Conhecer o que é Shell Manipular diretórios/arquivos Fazer a manutenção de usuários/grupos Instalar de programas 2.1 Introdução Shell é um programa executado após a inicialização do sistema Linux que serve como interpretador de comandos entre o usuário e o kernel. Estes comandos podem vir de uma entrada padrão (teclado) ou de um arquivo executável. Sendo assim, os comandos digitados são interpretados pelo shell e enviados para o kernel do Linux, que por sua vez executa o comando e retorna o resultado desta execução. No Linux existem diversos programas shell como bash, sh, tcsh, csh, ash e bsh. Na distribuição Debian, o shell padrão é o bash. Os comandos do shell podem ser usados para escrever programas em uma linguagem interpretada conhecidad como shell script. Existem duas formas de utilizar um shell: Modo interativo o usuário digita um comando e espera a execução dele antes de passar ao próximo comando. Modo batch, script, lote ou não-interativo quando um conjunto de comandos serão executados, a partir de uma data e hora especificada e não haverá intervenção do usuário. 33

Figura 2.1 Acessando o terminal do Linux (prompt de comando) Quando for acessado o prompt de comando, será mostrada uma informação semelhante a esta: usuario@debian:~$. O que significa esta informação? usuario: nome do usuário com quem você entrou no Debian. @: símbolo para separar o nome do usuário do nome do computador. debian: nome do computador que foi escolhido durante a instalação. ~: este símbolo identifica que você está na pasta pessoal do usuario. Se você navegar por outras pastas será mostrado o nome no lugar do ~. $: este símbolo significa que você é um usuário comum (sem privilégios de administrador do Linux). Ao se tornar administrador do Linux, este símbolo irá mudar para #. Ao usar o prompt de comandos, preste muita atenção nos exemplos que serão mostrados a seguir, pois o Linux é case sensitive (um comando, diretório ou arquivo escrito em letra maiúscula ou miníscula são diferentes). Ex: a pasta Redes é diferente de redes, pois a primeira começa com letra maiúscula e a outra com letra minúscula. 2.2 Comandos para manipulação de diretório Quando você entrar com seu usuário/senha no Debian e iniciar o terminal (figura 2.1), o prompt do terminal estará no diretório padrão que é o 34

home directory do usuário. Este é o diretório pessoal 9 que pertence ao usuário no qual você fez o login. Figura 2.2 Hierarquia de diretórios no Linux Na figura 2.2 são mostrados alguns diretórios do GNU/Linux como por exemplo o /llib (onde são armazenadas as bibliotecas que o sistema operacional precisa e os programas instalados nele), /dev (diretório onde ficam armazenadas as referências de dispositivos físicos como o dvd, hd, usb), /var/log (onde ficam armazenados os históricos de acesso ao sistema operacional, serviços de rede), /var/spool (diretório onde são armazenadas as filas de impressão), /boot (diretório que contém as informações de inicialização do sistema operacional). 2.2.1 Comando ls Lista os arquivos de um diretório. ls [opções] [caminho/arquivo] onde: caminho/arquivo: diretório/arquivo que será listado opções: -a: lista todos os arquivos (inclusive os ocultos) de um diretório. Arquivos/diretórios ocultos começam com o símbolo de ponto.. -l: mostra os arquivos na forma de listagem (detalhado) sendo possível visualizar as permissões, data de modificação, donos, grupos, etc. -h: mostra o tamanho dos arquivos em Kbytes, Mbytes, Gbytes. usuario@debian:~$ ls /home/usuario Desktop usuario@debian:~$ Comando 2.1 Área de trabalho do usuário Ao digitar o comando ls e pressionar a tecla Enter, como mostrado mo comando 2.1, será visualizado o diretório Desktop (representa a Área de Trabalho do Usuário). Abaixo existem outros exemplos utilizando o comando ls e suas opções. 9 Diretório pessoal: diretório pertencente a um determinado usuário para poder guardar seus arquivos pessoais. 35

usuario@debian:~$ ls -a /home/usuario..dbus.gstreamer-0.10.recently-used.xbel.. Desktop.gvfs.thumbnails.bash_history.dmrc.ICEauthority.xsession-errors.bash_logout.gconf.local.xsession-errors.old.bashrc.gconfd.nautilus.config.gnome2.profile usuario@debian:~$ Comando 2.2 Listagem do conteúdo do diretório pessoal com seus arquivos/diretórios ocultos usuario@debian:~$ ls -l /home/usuario total 4 drwxr-xr-x 3 usuario usuario 4096 Set 27 17:59 Desktop usuario@debian:~$ Comando 2.3 Listagem do conteúdo do diretório pessoal em formato de listagem (detalhado) usuario@debian:~$ ls -lh /home/usuario total 4,0K drwxr-xr-x 3 usuario usuario 4,0K Set 27 17:59 Desktop usuario@debian:~$ Comando 2.4 Listagem do conteúdo do diretório pessoal em formato de listagem (detalhado) e o tamanho do diretório em Kbytes usuario@debian:~$ ls /usr/ bin games include lib lib32 lib64 local sbin share src usuario@debian:~$ Comando 2.5 Listagem do conteúdo do diretório /usr 2.2.2 Comando cd Comando responsável por entrar (navegar) nos diretórios. cd [diretório] Para entrar no diretório chamado tmp digite o comando mostrado em comando 2.6 e depois pressione a tecla Enter. Para voltar ao diretório do usuário /home/usuario, digite o comando mostrado em comando 2.7. 36

usuario@debian:~$ cd /tmp/ usuario@debian:/tmp$ Comando 2.6 Entrando no diretório /tmp usuario@debian:/tmp$ cd /home/usuario/ usuario@debian:~$ Comando 2.7 Voltando ao diretório /home/usuario 2.2.3 Comando pwd O comando pwd mostra o caminho completo do diretório atual em que você está. usuario@debian:~$ pwd /home/usuario usuario@debian:~$ Comando 2.8 Mostra o caminho completo do diterório do usuario 2.2.4 Comando mkdir Cria um diretório (pasta) no sistema operacional Linux. mkdir [opções] [caminho/diretório] onde: caminho: caminho onde será criado o diretório diretório: nome do diretório que será criado dentro do caminho informado opções: -p: se os diretórios dos níveis acima não existirem, também serão criados. - -verbose: mostra uma mensagem quando o diretório é criado. usuario@debian:~$ mkdir /home/usuario/teste usuario@debian:~$ ls Desktop teste usuario@debian:~$ Comando 2.9 Criando o diretório teste dentro do diretório do usuário 37

2.2.5 Comando rmdir Este comando remove um diretório no sistema, fazendo o contrário do comando mkdir. Para remover um determinado diretório, este deve estar vazio. Caso seja necessário remover um diretório que tenha arquivos/diretórios dentro dele, deve ser usado o comando rm que será visto no item 2.3.2. rmdir [caminho/diretório] onde: caminho: caminho do diretório que será removido diretório: nome do diretório que será removido usuario@debian:~$ rmdir /home/usuario/teste usuario@debian:~$ ls Desktop usuario@debian:~$ Comando 2.10 Removendo o diretório teste dentro do diretório do usuário 2.3 Comandos para manipulação de arquivo 2.3.1 Comando cat O comando cat serve para mostrar o conteúdo de um determinado arquivo texto ou binário. cat [opções] [caminho/arquivo] onde: caminho: caminho onde está o arquivo arquivo: nome do arquivo que será mostrado o conteúdo usuario@debian:~$ cat /etc/networks default 0.0.0.0 loopback 127.0.0.0 link-local 169.254.0.0 usuario@debian:~$ Comando 2.11 Mostrando o conteúdo do arquivo networks 38

2.3.2 Comando rm Comando utilizado para excluir arquivos. Pode ser utilizado também para excluir diretório, mas neste caso deve ser utilizado a opção -r para o comando ser executado com sucesso. rm [opções] [caminho] [arquivo/diretório] onde: caminho: caminho onde está o arquivo ou o diretório. arquivo/diretório: nome do arquivo/diretório que será excluído. opções: -v: mostra mensgens dos arquivos/diretórios que estão sendo excluídos. -r: exclui arquivos/diretórios de forma recursiva. Isto permite excluir subdiretórios dentro de diretórios. usuario@debian:~$ rm /home/usuario/.bash_history usuario@debian:~$ ls -a. Desktop.gvfs resultado.txt...dmrc.iceauthority.thumbnails.bash_logout.gconf.local.xsession-errors.bashrc.gconfd.nautilus.xsession-errors.old.config.gnome2.profile.dbus.gstreamer-0.10.recently-used.xbel usuario@debian:~$ Comando 2.12 Excluindo o arquivo oculto bash_history usuario@debian:~$ rm -r /home/usuario/teste usuario@debian:~$ Comando 2.13 Excluindo o diretório teste 2.3.3 Comando cp Comando responsável por copiar arquivos/diretórios da origem para o destino. cp [opções] [origem] [destino] onde: origem: o arquivo/diretório origem a ser copiado. destino: caminho para onde será copiado o arquivo/diretório 39

opções: -v: mostra os arquivos/diretórios que estão sendo copiados. -R: responsável por copiar arquivos e sub-diretórios de forma recursiva. usuario@debian:~$ cp /var/log/lastlog /home/usuario/ usuario@debian:~$ ls Desktop lastlog usuario@debian:~$ Comando 2.14 Copiando o arquivo lastlog que se encontra no caminho /var/log para o diretório /home/usuario usuario@debian:~$ cp -R /bin /home/usuario/ usuario@debian:~$ ls bin Desktop lastlog usuario@debian:~$ Comando 2.15 Copiando o diretório /bin que se encontra na rais do disco / (figura 2.2) para o diretório /home/usuario 2.3.3 Comando mv Comando responsável por mover um arquivo/diretório da origem para o destino. Pode ser utilizado para renomear arquivo/diretório. O processo é semelhante ao comando cp. mv [opções] [origem] [destino] onde: origem: o arquivo/diretório origem a ser copiado ou renomeado. destino: caminho para onde será movido ou renomeado arquivo/diretório. o opções: -v: mostra os arquivos/diretórios que estão sendo movidos/renomeados. usuario@debian:~$ mv /home/usuario/lastlog /home/usuario/arquivo.txt usuario@debian:~$ ls arquivo.txt bin Desktop usuario@debian:~$ Comando 2.16 Renomeando o arquivo lastlog para arquivo.txt usuario@debian:~$ mv /home/usuario/bin /tmp/ usuario@debian:~$ ls /tmp/ bin keyring-8ej8eo orbit-debian-gdm orbit-usuario ssh-caqmdn1467 usuario@debian:~$ Comando 2.17 Movendo o diretório bin que se encontra em /home/usuario para o diretório /tmp 40

2.4 Manipulação de contas O Linux é um sistema multiusuário sendo muito importante saber como funcionam algumas funções de administração do seu ambiente. Um sistema multiusuário caracteriza-se por permitir acessá-lo de qualquer lugar através de conexões TCP/IP ou acessar o sistema localmente através dos Terminais Virtuais, tudo simultaneamente. Onde cada usuário executando tarefas completamente independentes uns dos outros. Além dos usuários existentes, qualquer sistema operacional de rede possui grupos. Estes são conjuntos de usuários com ações em comuns. São utilizados para facilitar ações que deveriam ser executadas para cada um dos usuários. Em grupos, determinadas ações podem ser executadas apenas uma vez para um grupo que contém determinados usuários. É importante saber que usuários e grupos são identificados por um númbero único denominados de UID10 e GID11 respectivamente. O Linux utiliza um arquivo /etc/passwd para armazenar informações de seus usuários e o arquivo /etc/group para armazenar informações de seus grupos. Além destes dois arquivos existe um terceiro /etc/shadow onde são armazenadas as senhas dos usuários cadastrados no Linux. Muitas das vezes que for manipular usuários/grupos deve ter permissão para esta ação. Para tanto você deve tornar-se um super-usuário, ou seja, ter privilégios de administrador do Linux. Como comentado no item 2.1, você deve adquirir privlégios de administrador, para tanto utilize o comando su (responsável por mudar o usuário comum para administrador do Linux) como mostrado abaixo. usuario@debian:~$ su Senha: root@debian:/home/usuario# Comando 2.18 Tornando-se super-usuário Ao digitar o comando su será pedido a senha do usuário administrador do Linux (usuário root). Durante a digitação da senha não será mostrado nada na tela semelhante ao símbolo de senhas como asteríscos (*********). Esta é uma técnica de segurança adotada pelo sistema operacional. Após a senha ser digitada, pressione a tecla Enter, se a senha estiver correta você terá privilégios de super-usuário. Repare no comando 2.18 que o prompt de comando mudou de $ para #. Agora que somos administradores do Linux, podemos visualizar algumas informações. 10 UID: User IDentification (Identificação do Usuário) 11 GID: Group IDentification (Identificação do Grupo) 41

root@debian:/home/usuario# cat /etc/passwd usbmux:x:104:46:usbmux daemon,,,:/home/usbmux:/bin/false Debian-gdm:x:105:109:Gnome Display Manager:/var/lib/gdm3:/bin/false usuario:x:1000:1000:usuario curso de redes,,,:/home/usuario:/bin/bash vboxadd:x:999:1::/var/run/vboxadd:/bin/false root@debian:/home/usuario# Comando 2.19 Visualizando o arquivo /etc/passwd Neste arquivo podemos visualizar alguns usuários existentes no Linux. Cada linha representa um usuário com suas informações. Ex.: usuario:x:1000:1000:usuario curso de redes,,,:/home/usuario:/bin/bash Esta linha acima mostra as informações do usuário chamado usuario onde suas informações estão separadas pelo símbolo dois pontos :. usuario: nome do usuário criado no Linux x: significa que o usuário possui uma senha criptografada. 1000: UID do usuário. 1001: GID do grupo. Significa que o usuário pertence a um grupo com este identificação. usuario curso de redes,,,: informações separadas por vírgula como nome completo do usuário, número do telefone, local de trabalho. /home/usuario: caminho da pasta pessoal do usuário. /bin/bash: shell que o usuário irá utilizar quando acessar o prompt do terminal root@debian:/home/usuario# cat /etc/group Debian-gdm:x:109: netdev:x:110:usuario usuario:x:1000: vboxsf:x:1001: root@debian:/home/usuario# Comando 2.20 Visualizando o arquivo /etc/group O arquivo /etc/group contém os grupos existentes no Linux. Ex.: usuario:x:1000: usuario: este é o grupo chamado usuario. No Debian, quando é adicionado um usuário, se não for informado qual o grupo ele irá pertencer durante sua criação, será criado um grupo com o nome do usuário. x: significa que o grupo possui uma senha criptografada. 1000: GID do grupo. 42

root@debian:/home/usuario# cat /etc/shadow gustavo: $6$hkw901RZ$nk0kabsf03v4HB/dnJouyLkpzEqjPRtjCVViLnRM7dXu2wzj AHGTST4mhLiIbF6fG3ZQFopR2bqhA1Gwxvktj1:15594:0:99999:7::: mysql:!:15595:0:99999:7::: jetty:*:15595:0:99999:7::: root@debian:/home/usuario# Comando 2.21 Visualizando o arquivo /etc/shadow Aqui é possível visualizar a senha dos usuários. Ex.: gustavo: $6$hkw901RZ$nk0kabsf03v4HB/dnJouyLkpzEqjPRtjCVViLnRM7dXu2wzjA HGTST4mhLiIbF6fG3ZQFopR2bqhA1Gwxvktj1:15594:0:99999:7::: gustavo: usuário chamado gustavo. $6$hkw901RZ$nk0kabsf03v4HB/dnJouyLkpzEqjPRtjCVViLnRM7dXu2wzjA HGTST4mhLiIbF6fG3ZQFopR2bqhA1Gwxvktj1: senha criptografada do usuário gustavo (senha 123456). 2.4.1 Comando groupadd Comando responsável por criar um novo grupo no sistema operacional. groupadd [grupo] root@debian:/home/usuario# groupadd redes root@debian:/home/usuario# cat /etc/group usuario:x:1000: vboxsf:x:1001: redes:x:1002: root@debian:/home/usuario# Comando 2.22 Criando o grupo chamado redes O comando 2.22 adiciona o grupo denominado redes e logo em seguida é mostrado o grupo no arquivo /etc/group com o GID 1002. 2.4.2 Comando useradd Este comando é responsável por adicionar um usuário no Linux. É necessário utilizar alguns parâmetros para informações adicionais durante a criação do usuário. useradd [opções] [usuário] opções: -m: responsável por criar o diretório do usuário dentro de /home 43

-g: adiciona o usuário a um determinado grupo. Caso este parâmetro não seja usado, será criado um grupo com o mesmo nome do usuário. root@debian:/home/usuario# useradd gustavo -m -g redes root@debian:/home/usuario# cat /etc/passwd usbmux:x:104:46:usbmux daemon,,,:/home/usbmux:/bin/false Debian-gdm:x:105:109:Gnome Display Manager:/var/lib/gdm3:/bin/false usuario:x:1000:1000:usuario curso de redes,,,:/home/usuario:/bin/bash vboxadd:x:999:1::/var/run/vboxadd:/bin/false gustavo:x:1001:1002::/home/gustavo:/bin/sh root@debian:/home/usuario# ls /home/ gustavo usuario root@debian:/home/usuario# Comando 2.23 Criando o usuário gustavo e adicionando-o ao grupo redes O comando 2.23 adiciona o usuário gustavo, criando seu diretório pessoal localizado em /home/gustavo (opção -m) onde o mesmo irá pertencer ao grupo redes (opção -g nome_do_grupo). Quando é mostrado o conteúdo do arquivo /etc/passwd (cat /etc/passwd) é possível visualizar o UID do usuário (1001) e o GID (1002) que corresponde ao GID do grupo redes. Isto significa que o usuário gustavo pertence ao grupo redes. Logo em seguida é mostrado o diretório pessoal do usuário (ls /home). 2.4.3 Comando passwd O comando passwd é utilizado para mudar a senha de um determinado usuário. Quando você é administrador do Linux, é possível mudar a senha de qualquer usuário. Mas se você for um usuário comum (sem privilégios de administrador do sistema operacional) é permitido apenas mudar a própria senha. passwd [usuário] root@debian:/home/usuario# passwd gustavo Digite a nova senha UNIX: Redigite a nova senha UNIX: passwd: senha atualizada com sucesso root@debian:/home/usuario# Comando 2.24 Mudando a senha do usuário gustavo O comando acima mostra a mudança da senha do usuário gustavo. Após digitar o comando e pressionar a tecla Enter será pedido para digitar a nova senha e logo em seguida redigitar a nova senha. 44

2.4.4 Comando userdel Este comando é responsável por excluir um usuário do Linux. userdel [opção] [usuário] opção: -r: esta opção exclui o diretório pessoal do usuário root@debian:/home/usuario# userdel -r gustavo root@debian:/home/usuario# ls /home/ usuario root@debian:/home/usuario# Comando 2.24 Excluindo o usuário gustavo e seu diretório pessoal 2.4.5 Comando groupdel Comando responsável por excluir um determinado grupo no Linux. groupdel [grupo] root@debian:/home/usuario# groupdel redes root@debian:/home/usuario# Comando 2.25 Excluindo o grupo redes 2.5 Manipulação de permissões As permissões de acesso garantem uma certa proteção ao sistema de arquivos do Linux das ações de usuários ou programas mal intencionados. Isto significa que arquivos importantes não sejam alterados, apagados ou copiados por pessoas ou programas não autorizados. root@debian:/home/usuario# ls -l total 4 -rw-r--r-- 1 usuario usuario 292292 Set 28 11:03 arquivo.txt drwxr-xr-x 3 usuario usuario 4096 Set 27 17:59 Desktop root@debian:/home/usuario# Comando 2.26 Listando as permissões do arquivo.txt e Desktop A figura 2.3 mostra em detalhes o significado de cada informação listada pelo comando 2.26. 45

Figura 2.3 Permissões do arquivo.txt Analisando as permissões do arquivo.txt: como visto na figura 2.3, as permissões são separadas em 3 partes (rw- r-- r--). Antes das permissões é possível visualiar o símbolo -. Este primeiro símbolo significa que o objeto listado é um arquivo. Como as permissões são divididas em 3 partes, a primeira significa que o usuário dono (chamado usuario) pode ler, alterar o conteúdo e excluir o arquivo.txt (rw-). A segunda parte sifgnifica que o grupo dono (chamado usuario) pode somente ler o conteúdo do arquivo.txt (r--). Já a terceira parte significa que os outros usuários que não é o usuário dono e não pertence ao grupo dono do arquivo.txt podem somente ler o conteúdo deste arquivo (r--). Figura 2.4 Permissões do Desktop 46

Analisando as permissões do Desktop: como visto na figura 2.4, as permissões são separadas em 3 partes (rwx r-x r-x). Antes das permissões é possível visualiar o símbolo d. Este primeiro símbolo significa que o objeto listado é um diretório. Como as permissões são divididas em 3 partes, a primeira significa que o usuário dono (chamado usuario) pode visualizar o conteúdo, alterar e entrar no diretório Desktop (rwx). A segunda parte sifgnifica que o grupo dono (chamado usuario) pode somente visualizar o conteúdo e entrar no diretório Desktop (r-x). Já a terceira parte significa que os outros usuários que não é o usuário dono e não pertence ao grupo dono do Desktop podem somente visualizar o conteúdo e entrar no diretório Desktop (r-x). A tabela abaixo mostra cada uma das permissões para arquivos e diretórios. Direito Sigla Arquivos Diretórios leitura r Permissão de leitura do conteúdo Visualiza o conteúdo do 4 diretório Permissão de escrita Permite criar arquivos e 2 subdiretórios gravação w execução x Permissão para que o arquivo seja Permite entrar no diretório executado Tabela 2.1 Permissões Valor 1 2.5.1 Comando chmod O comando chmod (change mode) é responsável por mudar as permissões dos arquivos/diretórios. Para tanto, quando for utilizado deve-se fazer uma soma dos valores, respeitando o valor de cada direito (tabela 2.1), de cada permissão para as modificações dos direitos de acesso dos usuários donos, grupos donos e outros usuários. chmod [opção] [permissões] [arquivo/diretório] opção: -R: muda as permissões de todos os arquivos/sub-diretórios dentro do diretório permissões: são as permissões de leitura, escrita, execução onde os valores devem ser somados para o usuário dono, grupo dono e outros usuários. onde: arquivo/diretório: arquivo ou diretório que será modificada as permissões 47

root@debian:/home/usuario# chmod 755 /home/usuario/arquivo.txt root@debian:/home/usuario# ls -l total 4 -rwxr-xr-x 1 usuario usuario 292292 Set 28 11:03 arquivo.txt drwxr-xr-x 3 usuario usuario 4096 Set 27 17:59 Desktop root@debian:/home/usuario# Comando 2.27 Modificando as permissões do arquivo.txt O comando 2.27 modifica as permissões de arquivo.txt para rwxr-wr-w. Isto significa que o usuário dono pode ler, modificar o conteúdo do arquivo e executar o arquivo (caso seja um programa). O grupo dono pode ler e modificar o conteúdo. Os outros usuários podem ler e modificar o conteúdo do arquivo também. Par poder modificar as permissões houve a necessidade de fazer a soma dos valores (tabela 2.1). O valor 7 significa que o usuário dono tem a permissão rwx. O valor 5 significa que o grupo dono tem a permissão rw-. E o outro valor 5 significa que os outros usuários tem a permissão rw-. root@debian:/home/usuario# chmod 740 /home/usuario/arquivo.txt root@debian:/home/usuario# ls -l total 4 -rwxr----- 1 usuario usuario 292292 Set 28 11:03 arquivo.txt drwxr-xr-x 3 usuario usuario 4096 Set 27 17:59 Desktop root@debian:/home/usuario# Comando 2.28 Modificando as permissões do arquivo.txt O comando 2.28 modifica as permissões de arquivo.txt para rwxr-----. Isto significa que o usuário dono pode ler, modificar o conteúdo do arquivo e executar o arquivo (caso seja um programa). O grupo dono pode somente ler o conteúdo. Os outros usuários não tem permissão algumo sobre o arquivo. Par poder modificar as permissões houve a necessidade de fazer a soma dos valores (tabela 2.1). O valor 7 significa que o usuário dono tem a permissão rwx. O valor 4 significa que o grupo dono tem a permissão r - -. E o valor 0 significa que os outros usuários não tem permissão - - -. root@debian:/home/usuario# mkdir /home/usuario/redes root@debian:/home/usuario# ls -l total 8 -rwxr----- 1 usuario usuario 292292 Set 28 11:03 arquivo.txt drwxr-xr-x 3 usuario usuario 4096 Set 27 17:59 Desktop drwxr-xr-x 2 root root 4096 Out 10 09:51 redes root@debian:/home/usuario# Comando 2.29 Criando o diretório redes O comando 2.29 cria o diretório chamado redes e mostra em seguida as permissões deste diretório. Pode ser observado que o usuário dono é o root 48

com as permissões de visualizar o conteúdo do diretório, modificar o diretório e entrar no mesmo (rwx). O grupo dono root tem o direito de visualizar o conteúdo do diretório e entrar no mesmo (r-x). Os outros usuários podem visualizar o conteúdo do diretório e entrar no mesmo também (r-x). root@debian:/home/usuario# chmod 775 -R /home/usuario/redes/ root@debian:/home/usuario# ls -l total 8 -rwxr----- 1 usuario usuario 292292 Set 28 11:03 arquivo.txt drwxr-xr-x 3 usuario usuario 4096 Set 27 17:59 Desktop drwxrwxr-x 2 root root 4096 Out 10 09:51 redes root@debian:/home/usuario# Comando 2.30 Modificando as permissões de redes Já o comando 2.30 modifica as permissões do diretório redes onde o usuário dono pode visualizar e modificar o conteúdo, entrar no diretório (rwx). O grupo dono tem as mesmas permissões do usuário dono (rwx). Já os outros usuários podem somente visualizar o conteúdo do diretório e entrar no mesmo (r-x). 2.5.2 Comando chown Comando responsável por modificar o dono do arquivo/diretório. chown [opção] [usuário] [arquivo/diretório] onde: arquivo/diretório: arquivo ou diretório que será modificado seu dono usuário: usuário dono do arquivo ou diretório opção: -R: modifica o usuário dono de todos os arquivos/sub-diretórios dentro do diretório root@debian:/home/usuario# chown gustavo -R /home/usuario/redes/ root@debian:/home/usuario# ls -l total 8 -rwxr----- 1 usuario usuario 292292 Set 28 11:03 arquivo.txt drwxr-xr-x 3 usuario usuario 4096 Set 27 17:59 Desktop drwxrwxr-x 2 gustavo root 4096 Out 10 09:51 redes root@debian:/home/usuario# Comando 2.31 Mudando o usuário dono do diretório redes 49

2.5.3 Comando chgrp Comando responsável por modificar o grupo do arquivo/diretório. chgrp [opção] [grupo] [arquivo/diretório] onde: arquivo/diretório: arquivo ou diretório que será modificado seu dono grupo: grupo dono do arquivo ou diretório opção: -R: modifica o grupo dono de todos os arquivos/sub-diretórios dentro do diretório root@debian:/home/usuario# chgrp redes -R /home/usuario/redes/ root@debian:/home/usuario# ls -l total 8 -rwxr----- 1 usuario usuario 292292 Set 28 11:03 arquivo.txt drwxr-xr-x 3 usuario usuario 4096 Set 27 17:59 Desktop drwxrwxr-x 2 gustavo redes 4096 Out 10 09:51 redes root@debian:/home/usuario# Comando 2.32 Mudando o grupo dono do diretório redes 2.6 Instalação de Programas Para fazer instalações de programas no Linux pode ser feita através do código fonte deste programa que consta basicamente em três passos: Passo 1: executar um script (arquivo./configure) que é responsável por verificar se as bibliotecas necessárias para o programa funcionar estão presentes no sistema operacional, verificar a arquitetura do computador (processador, memória), local onde será instalado o programa. Passo 2: após esta configuração, o programa deve ser compilado utilizando o comando make. Passo 3: agora deve instalar o programa utilizando o comando make install. A grande vantagem em instalar um programa através da compilação é que o mesmo fica todo customizado para a arquitetura do seu computador e sistema operacional. Uma desvantagem é que se durante a configuração for detectado que não existe uma determinada biblioteca, será necessário fazer o 50

dwonload desta biblioteca e fazer sua compilação também. Isto pode tomar muito tempo. Uma solução viável é utilizar gerenciadores de pacotes (interface que gerenciam os programas instalados no Linux). No caso do Debian, pode-se utilizar a interface de gerenciamento de pacotes chamado aptitude. Esta inteface pode fazer o download do programa pela internet ou através de um dvd, verificar as dependências de bibliotecas (caso a biblioteca não esteja presente no Linux será instalada automaticamente) e em seguida instalar o programa. Para fazer o download de um programa através da internet ou de um dvd, o aptitude acessa um arquivo chamado sources.list que se encontra dentro do diretório /etc/apt. Este arquivo possui o caminho onde são encontrados os programas a serem instalados. # Line commented out by installer because it failed to verify: #deb http://security.debian.org/ squeeze/updates main contrib # Line commented out by installer because it failed to verify: deb-src http://security.debian.org/ squeeze/updates main contrib # Line commented out by installer because it failed to verify: #deb ://volatile.debian.org squeeze-updates main contrib # Line commented out by installer because it failed to verify: #deb-src ://volatile.debian.org squeeze-updates main contrbr deb http://ftp.br.debian.org/debian/ squeeze main contrib non-free deb-src http://ftp.br.debian.org/debian/ squeeze main contrib non-free deb http://ftp.br.debian.org/debian-security/ squeeze/updates main contrib non-free deb-src http://ftp.br.debian.org/debian-security/ squeeze/updates main contrib non-free #deb http://security.debian.org/ squeeze/updates main contrib non-free #deb-src http://security.debian.org/ squeeze/updates main contrib non-free deb http://ftp.br.debian.org/debian/ squeeze-updates main deb-src http://ftp.br.debian.org/debian/ squeeze-updates main deb http://www.debian-multimedia.org squeeze main non-free Comando 2.33 Listagem do /etc/apt/sources.list endereços para download de programas via internet. 51

# deb cdrom:[debian GNU/Linux 6.0.5 _Squeeze_ - Official amd64 CD Binary-1 20120512-14:34]/ squeeze main deb cdrom:[debian GNU/Linux 6.0.0 _Squeeze_ - Official amd64 DVD Binary1 20110205-18:15]/ squeeze contrib main deb cdrom:[debian GNU/Linux 6.0.5 _Squeeze_ - Official amd64 CD Binary-1 20120512-14:34]/ squeeze main #deb http://security.debian.org/ squeeze/updates main #deb-src http://security.debian.org/ squeeze/updates main # squeeze-updates, previously known as 'volatile' # A network mirror was not selected during install. The following entries # are provided as examples, but you should amend them as appropriate # for your mirror of choice. # # deb http://ftp.debian.org/debian/ squeeze-updates main # deb-src http://ftp.debian.org/debian/ squeeze-updates main Comando 2.34 Listagem do /etc/apt/sources.list endereços para download de programas via DVD. Para poder instalar um programa primeiro deve ser pesquisado o programa (aptitude search nome_do_programa) para poder identificar o nome correto para fazer a instalação. Após idendificar o nome correto, basta fazer a instalação do mesmo (aptitude install nome_do_programa). O comando 2.35 mostra um exemplo da instalação do programa chamado Wireshark. Não se esqueça de estar como administrador do Linux para fazer a instalação dos programas. Caso seja necessário fazer a desinstalação de algum programa utilize o comando aptitude remove nome_do_programa. O aptitude possui vários parâmetros além destes mostrados para o gerencimento de programas. Para saber mais, utilize o comando man aptitude (este comando abre uma página somente texto mostrando todos os parâmetros do comando). 52

root@debian:/home/usuario# aptitude search wireshark p wireshark - network traffic analyzer - GTK+ version p wireshark-common - network traffic analyzer - common files root@debian:/home/usuario# aptitude install wireshark Os NOVOS pacotes a seguir serão instalados: libc-ares2{a} libcap2-bin{a} libpcap0.8{a} libportaudio2{a} libsmi2ldbl{a} wireshark wireshark-common{a} 0 pacotes atualizados, 7 novos instalados, 0 a serem removidos e 0 não atualizados. É preciso obter 0 B/15,2 MB de arquivos. Depois do desempacotamento, 62,1 MB serão usados. Você deseja continuar? [Y/n/?] Pré-configurando pacotes... Selecionando pacote previamente não selecionado libcap2-bin. (Lendo banco de dados... 57187 ficheiros e directórios actualmente instalados.) Desempacotando libcap2-bin (de.../libcap2-bin_2.19-3_amd64.deb)... Selecionando pacote previamente não selecionado libpcap0.8. Desempacotando libpcap0.8 (de.../libpcap0.8_1.1.1-2_amd64.deb)... Selecionando pacote previamente não selecionado libportaudio2. Desempacotando libportaudio2 (de.../libportaudio2_19+svn200710223.2_amd64.deb)... Selecionando pacote previamente não selecionado libsmi2ldbl. Desempacotando libsmi2ldbl (de.../libsmi2ldbl_0.4.8+dfsg2-3_amd64.deb)... Selecionando pacote previamente não selecionado libc-ares2. Desempacotando libc-ares2 (de.../libc-ares2_1.7.3-1_amd64.deb)... Selecionando pacote previamente não selecionado wireshark-common. Desempacotando wireshark-common (de.../wireshark-common_1.2.116_amd64.deb)... Selecionando pacote previamente não selecionado wireshark. Desempacotando wireshark (de.../wireshark_1.2.11-6_amd64.deb)... Processando gatilhos para man-db... Processando gatilhos para gnome-menus... Processando gatilhos para desktop-file-utils... Processando gatilhos para menu... Configurando libcap2-bin (1:2.19-3)... Configurando libpcap0.8 (1.1.1-2)... Configurando libportaudio2 (19+svn20071022-3.2)... Configurando libsmi2ldbl (0.4.8+dfsg2-3)... Configurando libc-ares2 (1.7.3-1)... Configurando wireshark-common (1.2.11-6)... Configurando wireshark (1.2.11-6)... Processando gatilhos para menu... root@debian:/home/usuario# Comando 2.35 Pesquisa e instalação do programa Wireshark 53

2.7 Exercícios 1) O que é Shell? 2) Explique as formas de utilização do shell. 3) Visite os seguintes diretórios, utilizando os comandos cd e ls. (a) /home (b) O pai do /home (use o.. ) (c) / (d) /bin (e) /usr (f) /proc (g) /usr/bin (h) Seu diretório pessoal 4) Liste o conteúdo de cada um dos diretórios acima, de dois modos: (a) Sem sair do seu diretório pessoal (b) Movendo-se primeiramente para o diretório a ser listado 5) Crie em seu diretório pessoal um diretório com nome igual ao da máquina que você está usando. Ex: patolino, catatau, etc. Mova-se para esse diretório. 6) Crie um diretório para cada um dos dias da semana. 7) No diretório destinado ao sábado, crie três subdiretórios chamados manha, tarde e noite. 8) Crie um diretório chamado.todo dia (todo dia precedido por um ponto) no seu diretório pessoal. 9) Liste o conteúdo de todos os diretórios criados nos exerícios anteriores. 10) Remova o diretório domingo criado no exercício. 11) Crie um diretório com o seu nome. Em seguida, altere as permissões desse diretório de forma que somente você (dono do diretório) tenha permissão de leitura, escrita e execução. Os outros usuários não devem ter nenhuma permissão (rwx------). 54

12) Copie para dentro do diretório criado no exercício 9 os arquivos termcap, profile, motd, issue e HOSTNAME que estão no diretório /etc. (a) Qual o tipo desses arquivos? (b) Qual o comando que se pode utilizar para mostrar o conteúdo desses arquivos? (c) Veja o conteúdo destes arquivos, usando more, head e tail caso ele não caiba totalmente na tela. (d) Mova o arquivo hostname para o diretório pai do diretório atual (não utilize cp, nem rm). (e) Altere o nome desses arquivos para, respectivamente, terminal, perfil, mensagem do dia, edicao e nome da máquina. 13) Instale o editor de textos chamado "vim". 55

Aula 3. Serviço DNS Objetivos Conhecer a hierarquia de funcionamento do DNS Conhecer os tipos de consultas DNS Instalar/Configurar do Bind Criar domínios 3.1 Introdução O Domain Name System (DNS) é um serviço de resolução de nomes de domínio, que tem a função de traduzir nomes em endereços IP e vice-versa. Ex.: o endereço de nome www.riopomba.ifsudestemg.edu.br tem o endereço IP 200.131.51.30. Os nomes de domínio são hierárquicos, com a parte mais significativa do nome à direita e o segmento mais a esquerda representa o nome de um computador individual (www.riopomba no exemplo do domínio www.riopomba.ifsudestemg.edu.br). Digitando o endereço IP do site do Campus Rio Pomba, também conseguiríamos acessar a página. Mas por motivos práticos, é muito mais fácil decorar um nome do que uma sequencia de númeors IP. Por isso a importância do serviço de tradução de nomes de domínio realizado pelo DNS. Como exemplo, abra o prompt de comando do Linux e utilize o comando chamado host12. usuario@debian:~$ host www.riopomba.ifsudestemg.edu.br www.riopomba.ifsudestemg.edu.br has address 200.131.51.30 usuario@debian:~$ Comando 3.1 Consultando o domínio www.riopomba.ifsudestemg.edu.br Neste exemplo o comando host fez uma consulta a um servidor DNS para descobrir o endereço IP do domínio www.riopomba.ifsudestemg.edu.br que neste caso possui o valor 200.131.51.30. O comando host não fez a resolução do nome de domínio para o endereço IP, quem fez esta resolução foi o serviço DNS. Ele simplesmente repassou a consulta para um servidor DNS. Mas qual servidor DNS o seu computador consultou? Como é feita a resolução de nomes para endereços IPs? Para o seu computador saber qual servidor que está utilizando um serviço de resolução de nomes (DNS), para fazer uma consulta, é necessário ter o endereço IP deste servidor cadastrado em seu sistema opercional como mostrado no comando 3.2. 12 Host : comando utilizado para fazer pesquisa DNS. 56

usuario@debian:~$ cat /etc/resolv.conf nameserver 10.0.2.2 usuario@debian:~$ Comando 3.2 Arquivo /etc/resolv.conf contém o endereço IP de um servidor DNS para fazer as consultas a ele O serviço DNS utiliza a porta 53, utiliza normalmente o protocolo UDP da camada de transporte e definidos pelas RFC's 13 1034 e 1035. Possui uma base de dados distribuida que é implementada em uma hierarquia de muitos servidores de nomes. Para fazer a resolução de um nome de domínio a consulta é feita da hierarquia mais alta (DNS Raiz), passando pelos servidores DNS TLD (Top Level Domain) até chegar no servidor DNS de autoridade (servidor que possui o endereço IP do endereço de nome pesquisado). Isto é mostrado na figura 3.1 (setas vermelhas) onde o cliente deseja saber o ip do endereço de nome www.google.com (IP 74.125.234.20). Figura 3.1 Hierarquia serviço DNS. Resolução de nome www.google.com Servidores de nomes Raiz (Root Level): existem 13 servidores de nome raiz (denominados de A a M). Estes servidores identificam todos os servidores TLDs existentes. 13 RFC: Request for comments 57

Figura 3.2 Lista dos servidores DNS Raiz. Fonte: www.root-servers.org A figura 3.2 mostra os servidores DNS Raiz no mundo inteiro. Para consultar onde ficam os servidores DNS Raiz no Brasil acesse o site www.rootservers.org. Na página principal existe uma tabela com todos os servidores e seus locais. Servidores Top-Level Domain (TLD): responsáveis pelos domínios de alto nível como com, org, net, edu, gov e por todos os domínios de alto nível de países como br, jp, fr dentre outros. Servidores de nomes com autoridade: são servidores que possuem o registro IP de um endereço de nome como mostrado na figura 3.1 onde o servidor DNS do google.com possui este valor IP para o endereço www.google.com. 3.2 Tipos de consultas DNS Na resolução de nomes de domínios existem dois tipos de consultas DNS que são: Consulta Recursiva: transfere a tarefa de resolução do nome para o servidor de nomes consultado (figura 3.3); Consulta Iterativa: servidor contatado responde com o nome de outro servidor para contato (figura 3.4). 58

Figura 3.3 Consulta Recursiva A consulta recursiva ocorre da seguinte forma: 1. O computador chamado gustavo (sob o domínio redesead.com.br) deseja acessar o computador www.riopomba.ifsudestemg.edu.br e para isto deve saber o endereço ip do mesmo. Sendo assim, o computador faz uma solicitação ao seu servidor DNS local dns.redesead.com.br; 2. Como o servidor local não sabe o ip do domínio consultado, este faz uma requisição ao servidor de nomes raiz; 3. O servidor raiz também não sabe o endereço ip mas conhece o servidor TLD que possa ser consultado. Sendo assim, o servidor raiz faz uma requisição a este servidor TLD; 4. O servidor TLD recebe esta requisição vinda do servidor raiz. O TLD possui o endereço do servidor dns de autoridade que possui o endereço ip do domínio que está sendo consultado. Sendo assim, o TLD faz o pedido ao servidor de autoridade dns.ifsudestemg.edu.br; 59

5. O servidor de autoridade possui em suas configurações o endereço ip do domínio que está sendo consultado. Desta forma, retorna o resultado, com este endereço ip, ao servidor TLD que havia feita a requisição; 6. O servidor TLD de posse deste valor retorna o resultado para o servidor raiz que havia feita a requisição; 7. O servidor raiz repassa o resultado para o servidor dns local que havia feita a requisição; 8. De posse do endereço ip do domínio consultado, o servidor dns local entrega o resultado para o computador gustavo. Figura 3.4 Consulta Recursiva A consulta iterativa ocorre da seguinte forma: 1. O computador chamado gustavo (sob o domínio redesead.com.br) deseja acessar o computador www.riopomba.ifsudestemg.edu.br e para isto deve saber o endereço ip do mesmo. Sendo assim, o computador faz uma solicitação ao seu servidor DNS local dns.redesead.com.br; 60

2. Como o servidor local não sabe o ip do domínio consultado, este repassa o endereço ip do servidor de nomes raiz para o computador gustavo. 3. O computador gustavo faz uma requisição ao servidor de nomes raiz; 4. O servidor raiz também não sabe o endereço ip do domínio consultado mas entrega o endereço ip do servidor TLD, para o computador gustavo, que possa ser consultado. 5. Sendo assim, o computador gustavo faz uma requisição a este servidor TLD; 6. O servidor TLD recebe esta requisição vinda do computador gustavo. O TLD possui o endereço do servidor dns de autoridade que possui o endereço ip do domínio que está sendo consultado. Sendo assim, o TLD entrega o ip deste servidor de autoridade para o computador gustavo; 7. O computador gustavo faz a requisição da resolução de nomes para este servidor de autoridade; 8. O servidor de autoridade possui em suas configurações o endereço ip do domínio que está sendo consultado. Desta forma, retorna o resultado para o computador gustavo. O exemplo mostrado na figura 3.5 usa ambas as consultas recursiva e interativa. A consulta que é feita do computador gustavo.redesead.com.br ao seu servidor dns local dns.redesead.com.br tem o comportamento recursivo, devido que o computador gustavo pede ao dns local obtenha o mapeamento em seu nome. Mas as que se seguem são interativas, pois todas as respostas são retornadas ao servidor dns local dns.redesead.com.br. Na prática, as consultas normalmente seguem o padrão da figura 3.5. 61

Figura 3.5 Consulta Recursiva e Iterativa 3.3 Instalando e configurando um servidor DNS Em sistemas Linux o programa mais utilizado como serviço de resolução de nomes é o BIND14 (Berkeley Internet Name Domain). Este nome surgiu devido o programa ter sido desenvolvido na década de 80 na Universidade da Califórnia em Berkeley. Para instalar este programa siga a listagem do comando 3.3. Para fazer a instalação do BIND, é necessário ativar a imagem ISO dentro da máquina virtual. Para isto, siga o Passo 8 do item 1.3.2 Configurando uma máquina virtual. 14 BIND http://www.isc.org/software/bind 62

root@debian:/home/usuario# aptitude install bind9 Os NOVOS pacotes a seguir serão instalados: bind9 bind9utils{a} 0 pacotes atualizados, 2 novos instalados, 0 a serem removidos e 0 não atualizados. É preciso obter 0 B/473 kb de arquivos. Depois do desempacotamento, 1286 kb serão usados. Você deseja continuar? [Y/n/?] Pré-configurando pacotes... Selecionando pacote previamente não selecionado bind9utils. (Lendo banco de dados... 59020 ficheiros e directórios actualmente instalados.) Desempacotando bind9utils (de.../bind9utils_9.7.2.dfsg.p3-1.1_amd64.deb)... Selecionando pacote previamente não selecionado bind9. Desempacotando bind9 (de.../bind9_9.7.2.dfsg.p3-1.1_amd64.deb)... Processando gatilhos para man-db... Configurando bind9utils (1:9.7.2.dfsg.P3-1.1)... Configurando bind9 (1:9.7.2.dfsg.P3-1.1)... # Starting domain name service...: bind9. root@debian:/home/usuario# Comando 3.3 Instalando o BIND9 ustilizando o comando aptitude Depois de feita a instalação (aptitude install bind9) o programa DNS será inicializado automaticamente (Starting domain name service...: bind9) com suas configurações básicas. Os arquivos de configurações do BIND9 encontram-se dentro do diretório /etc/bind/. Um destes arquivos de configurações é o /etc/bind/db.root que possui os endereços dos servidores de nomes raiz. Pois é desta forma que quando o servidor dns não souber a resolução de um determinado domínio, ele possa fazer uma requisição a um servidor raiz. O comando 3.4 mostra o conteúdo do arquivo /etc/bind/db.root com os endereços dos servidores de nomes raiz denominados de A (A.ROOT-SERVERS.NET. 3600000 A 198.41.0.4 ) e B (B.ROOT-SERVERS.NET. 3600000 A 192.228.79.201). 63

root@debian:/home/usuario# cat /etc/bind/db.root ; This file holds the information on root name servers needed to ; initialize cache of Internet domain name servers ; (e.g. reference this file in the "cache. <file>" ; configuration file of BIND domain name servers). ; ; This file is made available by InterNIC ; under anonymous FTP as ; file /domain/named.cache ; on server FTP.INTERNIC.NET ; -ORRS.INTERNIC.NET ; ; last update: Jun 17, 2010 ; related version of root zone: 2010061700 ; ; formerly NS.INTERNIC.NET ;. 3600000 IN NS A.ROOT-SERVERS.NET. A.ROOT-SERVERS.NET. 3600000 A 198.41.0.4 A.ROOT-SERVERS.NET. 3600000 AAAA 2001:503:BA3E::2:30 ; ; FORMERLY NS1.ISI.EDU ;. 3600000 NS B.ROOT-SERVERS.NET. B.ROOT-SERVERS.NET. 3600000 A 192.228.79.201 Comando 3.4 Conteúdo do arquivo /etc/bind/db.root O comando 3.5 mostra o conteúdo do arquivo /etc/bind/named.conf.default-zones que possui as zonas (domínios) que o servidor DNS terá autoridade sobre ele. Para poder criar a zona, utilize o editor de textos vim que foi instalado no exercício 13 da aula 2. Para tanto siga as instruções abaixo (faça igual às instruções, respeite os espaços em brancos, as letras maiúsculas e minúsculas. Estas instruções devem ser feitas em modo super usuário - root): 1. Edite o arquivo da seguinte forma: vim /etc/bind/named.conf.default-zones 2. Após digitar o comando acima (vim) e pressionar a tecla ENTER será mostrada uma tela, em modo texto com o conteúdo do arquivo named.conf.default-zones. Esta tela inicial está no modo comando (onde pode ser salvo o arquivo, pesquisar um conteúdo dentro do arquivo, sair do editor de textos). Para poder inserir alguma informação no arquivo é necessário pressionar a tecla INSERT (na parte inferior da tela será mostrada uma mensagem semelhante a INSERÇÃO ); 3. Feito isso, vá para o final do arquivo utilizando a seta do teclado direcionada para baixo e insira as informações que estão mostradas no final do comando 3.5 denominada de zone redesead.com.br ; 4. Após inserir estas informações devemos salvá-las, para tanto pressione a tecla ESC para voltar ao modo comando do editor 64

VIM e pressione a sequencia das teclas SHIFT+: depois as letras wq para poder salvar (w) e sair (q) do editor VIM. Caso durante a edição do arquivo dê algum problema e para não perder a configuração original o arquivo é recomendado que saia deste sem salvar. Para tanto, pressione a tecla ESC e depois utilize a sequencia de teclas SHIFT+: e depois os valores q! para sair (q) sem salvar (!). root@debian:/home/usuario# vim /etc/bind/named.conf.default-zones // prime the server with knowledge of the root servers zone "." { type hint; file "/etc/bind/db.root"; }; // be authoritative for the localhost forward and reverse zones, and for // broadcast zones as per RFC 1912 zone "localhost" { type master; file "/etc/bind/db.local"; }; zone "127.in-addr.arpa" { type master; file "/etc/bind/db.127"; }; zone "0.in-addr.arpa" { type master; file "/etc/bind/db.0"; }; zone "255.in-addr.arpa" { type master; file "/etc/bind/db.255"; }; zone "redesead.com.br" { type master; file "/etc/bind/db.redesead"; }; Comando 3.5 Inserindo a zona redesead.com.br A zona que acabou de ser inserida (redesead.com.br) possui uma configuração do tipo master (isto significa que todas as alterações de informações de nomes de computadores sob este domínio e valores ips devem ser feitos neste servidor dns). A diretiva file /etc/bind/db.redesead significa que deverá ser criado um arquivo chamado db.redesead dentro do diretório /etc/bind onde estarão todas as informações deste domínio como os ips dos 65

computadores sob o domínio redesead.com.br, o e-mail do administrador do servidor dns. Para fazer a configuração do arquivo db.redesead copie um arquivo de exemplo que é o arquivo /etc/bind/db.empty. Para tanto siga o comando 3.6. root@debian:/home/usuario# cp /etc/bind/db.empty /etc/bind/db.redesead root@debian:/home/usuario# Comando 3.6 Copiando/criando o arquivo db.redesead Logo após criar o arquivo tendo como base o db.empty, edite o arquivo /etc/bind/db.redesead para modificar as informações contidas nele que fique igual ao comando 3.7. Os procedimentos de inserção de informações no arquivo utilizando o comando vim são iguais ao que foi mostrado na edição do arquivo /etc/bind/named.conf.default-zones. O endereço IP dos computadores do domínio redesead.com.br foi usado o valor 10.0.2.15 que é da máquina virtual que está sendo utilizada para construir a apostila. Coloque o valor igual ao endereço IP da sua máquina virtual, para tanto utilize o comando ifconfig para verificar o seu endereço IP. Ao digitar o comando e pressionar a tecla ENTER procure no resultado a sua interface de redes que deve ser eth0 com o valor do endereço ip. $TTL 86400 @ IN SOA redesead.com.br. root.redesead.com.br. ( 20121231001 ; Serial 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 86400 ) ; Negative Cache TTL ; @ IN NS localhost. www IN A 10.0.2.15 ftp IN A 10.0.2.15 gustavo IN A 10.0.2.15 smtp IN A 10.0.2.15 pop IN A 10.0.2.15 ;Mail server IN MX 10 pop.redesead.com.br. ww2 IN CNAME www Comando 3.7 Editando o arquivo db.redesead Na linha que possui o primeiro símbolo @ siginifica este servidor, ou seja, o servidor responsável pelo registro. O IN indica que é um internet record e o SOA (Start of Authority) define o início da autoridade sobre o domínio em questão. Depois do SOA tem-se o domínio redesead.com.br. seguido do email root.redesead.com.br. no formato user.server, para o qual as mensagens administrativas deverão ser enviadas. Nas linhas abaixo são definidos os parâmetros como: 20121231001; Serial: número de série ou versão desse arquivo. Esse número é útil para sincronizações entre servidores. Por 66

exemplo, um servidor secundário sabe que está desatualizado e precisa sincronizar-se com seu master, quando o seu arquivo possui um número de série ou versão menor que o do seu master. Sendo assim a cada alteração nas configurações do domínio, este valor deve ser incrementado; 604800; Refresh: indica o intervalo de tempo, em segundos, em que o servidor secundário deverá executar a verificação do número de série com o master e realizar a sincronização se necessária; 86400; Retry: caso o servidor secundário seja impedido de contactar, por qualquer motivo, o servidor master quando o intervalo definido em Refresh for atingido, esse parâmetro define o tempo em que o servidor deverá fazer uma nova tentativa de contactar o servidor master. O intervalo é definido em segundos; 2419200; Expire: o tempo máximo, em segundos, que o servidor secundário pode ficar sem contactar o servidor primário. Caso esse tempo seja atingido, o conteúdo do arquivo deve ser considerado expirado e desprezado, dessa forma, pelo servidor secundário; 86400; Negative Cache TTL: define o valor de TTL para respostas negativas. A linha www IN A 10.0.2.15 significa que o computador www tem o ip 10.0.2.15. Como o computador www está sob o domínio redesead.com.br o seu endereço completo é www.redesead.com.br. O mesmo são para as outras linhas como por exemplo ftp IN A 10.0.2.15, significando que o endereço ftp.redesead.com.br possui o ip 10.0.2.15. O valor IN MX 10 pop.redesead.com.br. informa que o servidor de correios eletrônicos (MX Mail Exchange Record) tem uma preferência de resolução de nomes em relação a outros servidores de e-mails do mesmo domínio (caso exista mais de um servidor de e-mails). Quando menor o valor maior a preferência. Estes valores vão de 0 a 32.767. Além de inserir um registro com o valor do endereço IP, podemos criar apelidos para um determinado computador. A linha ww2 IN CNAME www significa que quando for resolvido o domínio ww2.redesead.com.br o IP será o mesmo do domínio www.redesead.com.br. Dando continuidade à configuração do serviço DNS, será preciso agora reinicializar o bind para que este aceite as novas configurações. Para tanto digite o seguinte comando /etc/init.d/bind9 restart. Após a reinicialização do bind, verifique se o mesmo está sendo executado corretamente, desta forma utilize o seguinte comando ps -aux grep named. Este comando mostra uma lista de processos (programas que estão em execução) mas filtrando apenas o processo chamado named (que é o nome do processo do bind). Caso apareça uma mensagem semelhante a esta bind 1148 0.0 2.8 117348 10952? Ssl 17:40 0:00 /usr/sbin/named -u bind significa que o processo do bind está em funcionando corretamente. 67

Para fazer o seu computador pesquisar o próprio servidor DNS que acabou de ser configurado, será necessário fazer uma modificação em qual servidor DNS deva ser consultado. Sendo assim, o arquivo a ser modificado é o /etc/resolv.conf. Edite o arquivo utilizando o comando vim para fazer as modificações. Troque o valor do endereço ip do nameserver para o ip da sua máquina virtual. Como mostrado no comando 3.8. root@debian:/home/usuario# vim /etc/resolv.conf nameserver 10.0.0.15 Comando 3.8 Editando o arquivo resolv.conf Salve as modificações e faça o teste usando o comando host no domínio que foi criado para verificar se está sendo feita a resolução de nomes (comando 3.9). root@debian:/home/usuario# host www.redesead.com.br www.redesead.com.br has address 10.0.2.15 root@debian:/home/usuario# Comando 3.9 Fazendo a resolução do domínio www.redesead.com.br 3.4 Exercícios 1) O que foi visto na Aula 3 foi como configurar um domínio (zona) em um serviço DNS. Esta resolução é feita de forma direta, ou seja, dado o domínio o DNS faz a consulta trazendo como resultado o endereço IP. Existe também a consulta reversa que trata-se em informar o endereço IP e o serviço DNS fazer a consulta trazendo como resultado o domínio associado a este IP. O serviço de DNS reverso é importante para verificar a autenticidade se o IP atual corresponde ao endereço IP informado pelo servidor DNS. Um exemplo disso são servidores de e-mails como o provedor TERRA. Quando é enviado um email para o domínio terra.com.br é feita uma consulta reversa do IP do e-mail do destinatário. Se tudo estiver correto o e-mail será entregue ao destinatário, caso contrário será negada a entrega. Isto tudo é para evitar spam. Um texto interessante sobre DNS reverso encontra-se em http://mail.terra.com.br/postmaster/dnsrev.htm. Sendo assim, configure o DNS reverso do domínio redesead.com.br. Para tanto pesquise na Internet como fazer esta configuração, existem vários tutoriais explicando sobre o assunto. É muito semelhante com a configuração da resolução direta que fizemos durante as aulas. 68

Aula 4. Serviço WEB Objetivos Conhecer os conceitos de funcionamento do serviço WEB Instalar/Configurar do Apache Aprender a hospedar um site Analisar o histórico de acesso ao servidor WEB 4.1 Introdução Até a década de 1990, o acesso a Internet era feito mais por pesquisadores, acadêmicos e estudantes universitários para transferir arquivos entre computadores, enviar e receber mensagens. O uso da Internet era conhecido mais nas comunidpades acadêmicas. Desta forma no início dos anos 90 surgiu uma aplicação conhecida como World Wide Web (www) mudando a forma de como as pessoas interagem dentro e fora de seus ambientes de trabalho. O serviço Web é responsável por disponibilizar as páginas HTML 15 (sites) que acessamos quando estamos conectados a Internet. A comunicação acontece utilizando o protocolo HTTP (HyperText Transfer Protocol), usando a porta 80. Este protocolo é definido pela RFC 1945 e 2616. O acesso se dá através do uso de um navegador como o Mozilla Firefox, Microsoft Internet Explorer, Google Chrome (lado cliente) e um servidor Web (programa servidor). Este lado servidor possui vários programas servidores responsáveis por disponibilizarem páginas HTML. Os programas mais conhecidos são o Microsoft IIS16 e Apache HTTP Server17. A empresa BuiltWith, sediada na Austrália, faz medições do uso de determinados programas. Na figura 4.1 é mostrada a popularidade do programa Apache HTTP Server. Esta estatística foi feita em 21 de dezembro de 2012 onde o Apache se destaca em primeiro lugar com 52.11%, contra 18,73% do IIS e 9,25% do IIS7. O programa Apache HTTP é um dos principais responsáveis pela difusão de sistemas Linux, também podendo ser usados em plataformas Microsoft Windows. 15 HTML: HyperText Markup Language 16 Microsoft IIS: http://technet.microsoft.com/pt-br/magazine/2008.07.iis7.aspx 17 Apache HTTP Server: http://httpd.apache.org/ 69

Figura 4.1 Estatísticas de uso de servidores web. Fonte: trends.builtwith.com/web-server 4.2 Instalando e Configurando o Servidor Web O Apache HTTP Server é um dos projetos mantidos pela The Apache Software Foundation18. A fundação provê um suporte organizacional, legal e financeiro para um grande número de projetos de softwares de código fonte aberto. O servidor web Apache pode responder por vários sites através de um recurso conhecido como servidor virtual (virtual server). Este servidor virtual é composto por três informações que são: endereço IP, porta de conexão http e um cabeçalho (header). Como vários sites de domínios diferentes podem ser disponibilizados em um mesmo servidor, o valor IP e a porta de conexão http acabam sendo o mesmo, o que difere é o header. Sendo assim podemos ter www.redesead.com.br, www.teste.com.br, www.outrodominio.com.br, todos os três sites no mesmo servidor web (IP e porta padrão iguais) mas com headers diferentes (domínios diferentes). Para fazer a instalação do Apache siga as instruções do comando 4.1. Para fazer a instalação do Apache, é necessário ativar a imagem ISO dentro da máquina virtual. Para isto, siga o Passo 8 do item 1.3.2 Configurando uma máquina virtual. root@debian:/home/usuario# aptitude install apache2 libapache2-mod-php5 mysql-server-5.1 php5-mysql Comando 4.1 Instalação do servidor web Apache No comando 4.1 serão instalados o servidor Apache que está na versão 2.x.x, o módulo PHP19 para o Apache (módulo responsável pela interpretação 18 The Apache Software Foundation: http://www.apache.org/foundation/ 19 PHP (PHP: Hypertext Preprocessor): http://php.net 70

de sites dinâmicos desenvolvidos em PHP), o servidor de bando de dados MySQL20 e o módulo PHP responsável por fazer comunicação com o MySQL. Depois de ter instalado Apache, reinicialize o serviço web para que o Apache aceite as configurações do PHP (comando 4.2). root@debian:/home/usuario# /etc/init.d/apache2 restart root@debian:/home/usuario# Comando 4.2 Reinicializando o Apache Após a instalação, vamos fazer o teste se o servidor está funcionando e interpretando o PHP. O primeiro teste é referente se o Apache está funcionado, para isto abra o navegador de internet (localizado em Aplicativos/Internet/Navegador Web Iceweasel) e digite no local de endereços do navegador localhost21. Assim irá aparecer uma mensagem semelhante à figura 4.2. Figura 4.2 Mensagem do servidor Apache Para verificar se o Apache interpreta páginas escritas em PHP siga as instruções do comando 4.3 para criar um arquivo chamado teste.php e insira o conteúdo como mostrado no comando 4.4. root@debian:/home/usuario# vim /var/www/teste.php root@debian:/home/usuario# Comando 4.3 Criando/editando arquivo teste.php 20 MySQL: http://www.mysql.com 21 Localhost: significa o endereço do próprio computador 71

<?php phpinfo();?> Comando 4.4 Criando/editando arquivo teste.php As linhas <?php e?> significam que tudo que estiver entre elas são comandos PHP para serem interpretados pelo módulo libapache2-mod-php5 que foi instalado com o Apache. A função phpinfo() é responsável por gerar uma página HTML com as informações do servidor Apache e os módulos que estão instalados e suportados nele. Os procedimentos de inserção de informações no arquivo utilizando o comando vim são iguais ao que foi mostrado na edição do arquivo /etc/bind/named.conf.default-zones. Depois de salvar as informações, entre no navegador de internet e digite o seguinte endereço localhost/teste.php. A figura 4.3 mostra o resultado do site. Figura 4.3 Resultado da página teste.php 4.3 Preparando o servidor web para hospedar um site Como foi descrito no item 4.2, o servidor Apache consegue hospedar (responder) por mais de um site de domínios diferentes. Desta forma iremos aprender neste item como fazer este tipo de configuração. Iremos utilizar o endereço www.redesead.com.br do domínio criado na aula 3. Para começar a fazer a configuração do site www.redesead.com.br será necessário copiar o arquivo de exemplo /etc/apache2/sites-available/default renomeando para /etc/apache2/sites-available/redesead.conf como mostrado no comando 4.5. 72

root@debian:/home/usuario# cp /etc/apache2/sites-available/default /etc/apache2/sites-available/redesead.conf root@debian:/home/usuario# Comando 4.5 Copiando/criando o arquivo redesead.conf Após feita a cópia edite o arquivo /etc/apache2/sitesavailable/redesead.conf conforme o comando 4.6, para fazer as inserções das informações conforme o comando 4.7. Depois salve as informações. Os procedimentos de inserção de informações no arquivo utilizando o comando vim são iguais ao que foi mostrado na edição do arquivo /etc/bind/named.conf.default-zones. root@debian:/home/usuario# vim /etc/apache2/sites-available/redesead.conf Comando 4.6 Editando o arquivo redesead.conf <VirtualHost *:80> ServerAdmin webmaster@redesead.com.br ServerName www.redesead.com.br DocumentRoot /var/www/redesead <Directory /var/www/redesead/> AllowOverride None Order allow,deny allow from all </Directory> ErrorLog ${APACHE_LOG_DIR}/error_redesead.log # Possible values include: debug, info, notice, warn, error, crit, # alert, emerg. LogLevel warn CustomLog ${APACHE_LOG_DIR}/redesead.log combined </VirtualHost> Comando 4.7 Conteúdo do arquivo redesead.conf Os arquivos de configuração do Apache ficam armazenados dentro do diretório /etc/apache2. Em especial o diretório /etc/apache2/sites-available possui os arquivos de configuração dos sites que são hospedados pelo servidor. Por isto que foi criado o arquivo redesead.conf dentro deste diretório. Entendendo as linhas do arquivo redeaead.conf: <VirtualHost *:80></VirtualHost>: são as diretivas responsáveis por criar um servidor virtual de hospedagem. Tudo que estiver entre estas diretivas são as configurações de um determinado site; ServerAdmin webmaster@redesead.com.br: e-mail que receberá as mensagens administrativas do servidor Apache; 73

ServerName www.redesead.com.br: esta diretiva define o nome (header) do servidor virtual que será hospedado pelo servidor Apache; DocumentRoot /var/www/redesead: indica o caminho do diretório que armazena as páginas do site que está sendo hospedado; <Directory /var/www/redesead/></directory>: diretiva responsável por adicionar configurações especiais de acesso ao diretório do site que está sendo hospedado; AllowOverride none: responsável por permitir ou não permitir autenticação no site. Para fazer permitir autenticação deve trocar none por all; Order allow,deny: diretiva responsável por fazer controle de acesso ao site. Este controle se dá através de informações dos endereços IPs ou nomes de domínio de computadores. Esta ordem se refere que primeiro será processada a regra de permissão (allow) ao site e depois a regra de negação (deny). Caso o endereço do computador esteja na regra de permissão será permitido seu acesso. Mas se não estiver na regra de permissão ou se estiver na regra de negação, seu acesso será bloqueado; allow from all: esta diretiva permite que todos os computadores tenham acesso ao site, sem restrições. Para aprender mais sobre o controle de acesso, acesse a página http://httpd.apache.org/docs/2.2/howto/access.html para mais informações; ErrorLog ${APACHE_LOG_DIR}/error_redesead.log: diretiva responsável por guardar os erros, em arquivo, que ocorrem no servidor virtual. A variável ${APACHE_LOG_DIR} guarda o caminho /var/log/apache2, onde estão os arquivos de log 22 do Apache; LogLevel warn: esta diretiva é responsável por configurar o Apache para informar as saídas de informações de erros dentro de um arquivo de log. O parâmetro warn é a configuração padrão onde informa avisos condicionais. Para saber mais sobre estes tipos de avisos acesse a página http://httpd.apache.org/docs/2.4/mod/core.html#loglevel para mais informações; CustomLog ${APACHE_LOG_DIR}/redesead.log combined: esta diretiva armazena no arquivo redesead.log informações de acesso ao site de computadores como o negador, endereço IP, data/hora de acesso, dentre outras informações. Esta diretiva é semelhante ao ErrorLog. 22 Log: termo usado para gerar o histórico de algum evento de um determinado programa 74

Depois desta configuração o Apache ainda não está habilitado a hospedar o site em questão. Todos os sites que serão hospedados, os seus arquivos de configuração deverão ter uma referência dentro do diretório /etc/apache2/sites-enable. Sendo assim siga as instruções do comando 4.8 para permitir que o Apache esteja apto a disponibilizar o novo site. root@debian:/home/usuario# a2ensite redesead.conf Enabling site redesead.conf. Run '/etc/init.d/apache2 reload' to activate new configuration! root@debian:/home/usuario# Comando 4.8 Disponibilizando as configurações do site www.redesead.com.br Agora será necessário recarregar o Apache para que ele aceite as novas configurações, mas antes será necessário criar o diretório onde serão armazenados as páginas do site do www.redesead.com.br. Para tanto siga as instruções do comando 4.9 para criar o diretório (que deve ser o mesmo que está configurado na diretiva DocumentRoot) e do comando 4.10 para criar uma página para este site (arquivo index.html). root@debian:/home/usuario# mkdir /var/www/redesead root@debian:/home/usuario# Comando 4.9 Criando o diretório onde ficarão armazenadas as páginas root@debian:/home/usuario# vim /var/www/redesead/index.html root@debian:/home/usuario# Comando 4.10 Criando/editando o arquivo index.html Insira neste arquivo a seguinte informação Página principal do site Redes EaD e depois salve o arquivo. Os procedimentos de inserção de informações no arquivo utilizando o comando vim são iguais ao que foi mostrado na edição do arquivo /etc/bind/named.conf.default-zones. Feita estas configurações, agora podemos recarregar o Apache utilizando as instruções do comando 4.11. root@debian:/home/usuario# /etc/init.d/apache2 reload Reloading web server config: apache2. root@debian:/home/usuario# Comando 4.11 Recarregando o Apache Após recarregar o Apache acesse o novo site digitando o endereço www.redesead.com.br no navegador da máquina virtual. A figura 4.4 mostra o resultado da configuração. Não se esqueça de verificar se o arquivo /etc/resolv.conf está com o ip da sua própria máquina virtual para utilizar o seu próprio servidor DNS visto na aula 3. 75

Figura 4.4 Página principal o site RedesEaD (index.html) 4.4 Analisando o log de acesso Todos os acessos que são feitos em um determinado site é gerado um histórico (log) de acesso ao mesmo pelo servidor web. Este histórico contém várias informações úteis como o endereço IP do computador cliente, o nome do navegador, qual página foi acessada em que data e hora. O arquivo que guarda estas informações do site www.redesead.com.br é o /var/log/apache2/redesead.log. Sendo assim vamos analisar o conteúdo que foi gerado durante o seu acesso (comando 4.12). root@debian:/home/usuario# cat /var/log/apache2/redesead.log 10.0.2.15 - - [03/Jan/2013:12:07:17-0200] "GET / HTTP/1.1" 304 209 "-" "Mozilla/5.0 (X11; U; Linux x86_64; en-us; rv:1.9.1.16) Gecko/20120714 Iceweasel/3.5.16 (like Firefox/3.5.16)" root@debian:/home/usuario# Comando 4.12 Conteúdo do arquivo redesead.log Vamos analisar algumas destas informações: 10.0.2.15: endereço IP do computador cliente que acessou a página (neste caso o IP do cliente é o mesmo do servidor pelo fato de usarmos o mesmo computador para ser o servidor web e o computador cliente); [03/Jan/2013:12:07:17-0200]: mostra data e hora de quando a página foi acessada; 76

"GET / HTTP/1.1": o acesso foi feito utilizando o método GET 23, acessando a página principal (representado pelo caracter barra / ), usando o protocolo HTTP versão 1.1; "Mozilla/5.0 (X11; U; Linux x86_64; en-us; rv:1.9.1.16) Gecko/20120714 Iceweasel/3.5.16 (like Firefox/3.5.16)": esta linha mostra o navegador, Iceweasel versão 3.5.16 que é baseado no Mozilla/5.0, usando o idioma americano (US), sendo que este navegador está instalado em um sistema operacional Linux de 64 bits (Linux x86_64). Estas informações são importantes para fazer um levantamento de quem mais acessa o seu site, quais os navegadores que fazem este acesso, quais as páginas mais acessadas. Um programa interessante para fazer este tipo de levantamento é o AWStats24. A figura 4.5 mostra uma parte do relatório gerado pelo programa onde é mostrada a quantidade de informações acessadas no mês de janeiro de 2012 (5.19GB) e um gráfico de acesso durante todo o ano de 2012. Figura 4.5 Relatório de acesso gerado pelo AWStats 4.5 Exercícios 1) Durante esta aula vimos como fazer a configuração do servidor web Apache para hospedar um site de domínio www.redesead.com.br. Foi visto também que o Apache consegue hospedar mais de um site com domínios diferentes. Desta forma configure o servidor web para hospedar o site chamado www.outrodominio.com.br. Para poder funcionar o novo domínio será necessário criar uma zona no servidor DNS com este domínio (aula 3). 23 GET: além do método de acesso GET, existem outros como PUT, POST, DELETE, HEAD. 24 AWStats: http://www.awstats.org/ 77