Você está na página 1de 148

1

SABE Sistema Aberto de Educao


Av. Cel. Jos Alves, 256 - Vila Pinto Varginha - MG - 37010-540 Tele: (35) 3219-5204 - Fax - (35) 3219-5223

Instituio Credenciada pelo MEC Portaria 4.385/05 Centro Universitrio do Sul de Minas - UNIS Unidade de Gesto da Educao a Distncia GEaD Mantida pela Fundao de Ensino e Pesquisa do Sul de Minas - FEPESMIG

Varginha/MG
2

SILVA, Rodrigo Gomes da. Guia de Estudo Tpicos em Sistemas de Informao. Rodrigo Gomes da Silva - Varginha: GEaD-UNIS, 2010. 148p.

Todos os direitos desta edio reservados ao Sistema Aberto de Educao SABE. proibida a duplicao ou reproduo deste volume, ou parte do mesmo, sob qualquer meio, sem autorizao expressa do SABE.

REITOR Prof. Ms. Stefano Barra Gazzola GESTOR Prof. Ms. Wanderson Gomes de Souza Supervisora Tcnica Prof. Ms. Simone de Paula Teodoro Moreira Design Instrucional Prof. Celso Augusto dos Santos Gomes Jacqueline Aparecida Silva Coord. do Ncleo de Comunicao Renato de Brito Coord. do Ncleo de Recursos Tecnolgicos Lcio Henrique de Oliveira Coordenadora do Ncleo Pedaggico Terezinha Nunes Gomes Garcia Maria Carolina Silva Castro Oliveira Equipe de Tecnologia Educacional Danbia Pinheiro Teixeira Reviso ortogrfica / gramatical Gisele Silva Ferreira

Autor Rodrigo Gomes da Silva Especializando em Informtica com nfase em anlise de sistemas pela UFMG, Especialista em docncia do ensino superior pela FINOM, bacharel em sistemas de informao pela UEMG e Tcnico em processamento de dados pelo CETEV.

CONES
REALIZE. Determina a existncia de atividade a ser realizada. Este cone indica que h um exerccio, uma tarefa ou uma prtica para ser realizada. Fique atento a ele.

PESQUISE. Indica a exigncia de pesquisa a ser realizada na busca por mais informao.

PENSE. Indica que voc deve refletir sobre o assunto abordado para responder a um questionamento.

CONCLUSO. Todas as concluses sejam de ideias, partes ou unidades do curso viro precedidas desse cone.

IMPORTANTE. Aponta uma observao significativa. Pode ser encarado como um sinal de alerta que o orienta para prestar ateno informao indicada.

HIPERLINK. Indica um link (ligao), seja ele para outra pgina do mdulo impresso ou endereo de Internet.

EXEMPLO. Esse cone ser usado sempre que houver necessidade de exemplificar um caso, uma situao ou conceito que est sendo descrito ou estudado.

SUGESTO DE LEITURA. Indica textos de referncia utilizados no curso e tambm faz sugestes para leitura complementar.

APLICAO PROFISSIONAL. Indica uma aplicao prtica de uso profissional ligada ao que est sendo estudado. CHECKLIST ou PROCEDIMENTO. Indica um conjunto de aes para fins de verificao de uma rotina ou um procedimento (passo a passo) para a realizao de uma tarefa. SAIBA MAIS. Apresenta informaes adicionais sobre o tema abordado de forma a possibilitar a obteno de novas informaes ao que j foi referenciado.

REVENDO. Indica a necessidade de rever conceitos estudados anteriormente. 5

INDCE
UNIDADE I - CONCEITOS INICIAIS ................................................................................................................................ 9 1.1 INTRODUO AO SOFTWARE LIVRE ........................................................................................................................ 11 1.2 VANTAGENS DO SOFTWARE LIVRE .......................................................................................................................... 13 1.3 POR QUE NO USAR SOFTWARE PROPRIETRIO ..................................................................................................... 14 1.4 O GNU ..................................................................................................................................................................... 15 1.5 ORIGEM DO LINUX .................................................................................................................................................. 15 1.6 DISTRIBUIES DO LINUX........................................................................................................................................ 16 1.7 UBUNTU .................................................................................................................................................................. 18 1.8 COMO OBTER O UBUNTU ........................................................................................................................................ 19 1.9 EXPERIMENTANDO ANTES DE INSTALAR ................................................................................................................. 19 1.10 CONHECENDO O AMBIENTE .................................................................................................................................. 22 UNIDADE II - UTILIZANDO O GNU/LINUX UBUNTU 9.10 ............................................................................................ 27 2.1 INSTALANDO O UBUNTU NO HD ............................................................................................................................. 29 2.2 SISTEMA DE ARQUIVOS E DIRETRIOS .................................................................................................................... 39 2.3 TERMINAL E CONSOLE ............................................................................................................................................. 40 2.4 COMANDOS BSICOS DO GNU/LINUX..................................................................................................................... 41 2.5 USURIO ROOT........................................................................................................................................................ 43 2.6 USURIOS E GRUPOS...............................................................................................................................................44 2.7 GERENCIADOR DE ATUALIZAES ....................................................................................................................................44 2.8 GERENCIAMENTO DE PACOTES ............................................................................................................................... 46 2.9 GERENCIANDO PACOTES COM O SYNAPTIC ............................................................................................................. 48 2.10 INFORMAES DO SISTEMA ................................................................................................................................. 50 2.11 PERMISSES EM LINUX ......................................................................................................................................... 56 2.12 CONFIGURAES DE REDE ....................................................................................................................................61 2.13 CONFIGURANDO REDE SEM FIO ............................................................................................................................ 62 2.14 WINE RODANDO APLICAES PARA WINDOWS NO LINUX ................................................................................ 64 2.15 INSTALANDO O JAVA NO UBUNTU......................................................................................................................... 65 2.16 CONEXO PPPOE ................................................................................................................................................... 66 UNIDADE III - SERVIDORES E OUTROS RECURSOS ...................................................................................................... 71 3.1 SERVIDOR DE ARQUIVOS COM O SAMBA ........................................................................................................................... 73 3.2 LAMP LINUX + APACHE + MYSQL + PHP ..................................................................................................................... 76 3.3 MENSAGENS INSTANTNEAS NO UBUNTU ......................................................................................................................... 80 3.4 ANALISADOR DE UTILIZAO DO DISCO ............................................................................................................................ 82 3.5 INSTALANDO IMPRESSORAS ............................................................................................................................................ 83 3.6 MAIS COMANDOS ........................................................................................................................................................ 85 3.7 PANDA ANTIVRUS NO LINUX .......................................................................................................................................... 87 3.8 COMPACTANDO E DESCOMPACTANDO ARQUIVOS ................................................................................................................ 89 3.9 CONFIGURANDO UM SERVIDOR PROXY COM SQUID ............................................................................................................ 91 3.10 CACHE DO SQUID ....................................................................................................................................................... 98 3.11 RESTRINGINDO O ACESSO POR DOMNIO ....................................................................................................................... 102 3.12 RESTRINGINDO O ACESSO POR IP .................................................................................................................................105 3.13 RESTRINGINDO O ACESSO POR PALAVRAS NA URL ........................................................................................................... 107

3.14 BLOQUEANDO O ACESSO POR HORRIO ........................................................................................................................109 3.15 MONITORAMENTO DE ACESSO COM SARG ....................................................................................................................109 3.16 CONFIGURANDO UM SERVIDOR DHCP .........................................................................................................................111 3.17 CONFIGURANDO UM SERVIDOR DE FTP ........................................................................................................................113 3.18 CONFIGURANDO XMAIL.............................................................................................................................................118 3.19 PHPXMAIL COMO FRONT-END DO XMAIL ....................................................................................................................122 3.20 SITES PARA LEITURAS SOBRE LINUX ..............................................................................................................................129 ANEXO .................................................................................................................................................................... 133

EMENTA
Introduo ao software livre, origem do software livre, vantagens do software livre, origem do sistema Gnu/Linux, distribuies do Linux, sistema de arquivos e instalao do Linux, Kernel, Shell, arquivos, diretrios, bash, comandos bsicos, usurios, grupos, permisses de acesso, interfaces grficas, instalao e remoo de pacotes, configuraes do sistema, configuraes de rede, servidor de arquivos samba, servidor web apache e xmail.

UNIDADE I - CONCEITOS INICIAIS UNIDADE I - CONCEITOS INICIAIS

META
A unidade 1 deste guia de estudos tem como meta apresentar os conceitos bsicos do software livre por meio de uma introduo ao estudo e apresentao da histria do surgimento do software livre, Conhecer as vantagens do software livre e apresentar o projeto GNU, compreender a histrico do sistema operacional GNU/Linux e apresentar algumas distribuies disponveis no mercado.

OBJETIVOS
Esperamos que, aps o estudo desta unidade voc seja capaz de: 1. Definir os conceitos bsicos de software livre; 2. Apresentar a histria do surgimento do software livre; 3. Identificar os quatro pilares que sustentam o software livre; 4. Demonstrar as vantagens do software livre frente aos softwares proprietrios; 5. Definir o que o projeto GNU; 6. Relatar a histria do surgimento do sistema operacional GNU/Linux; 7. Explicar o sistema de distribuio do GNU/Linux.
9

PR-REQUISITOS
Para o perfeito aproveitamento do aluno nesta unidade necessrio que o mesmo conhea os conceitos bsicos de hardware, software, as definies e categorias de software tais como sistema operacional. desejvel ainda que o mesmo conhea os conceitos bsicos da instalao de sistemas operacionais e a configurao do Seup de um computador de forma que seja possvel configur-lo para iniciar pela unidade de CD/DVD.

10

1.1 INTRODUO AO SOFTWARE LIVRE


No ano de 1969, Ken Thompson, pesquisador da Bell Labs, impulsionou o surgimento dos softwares livres. Thompson criou o sistema operacional Unix. O Unix foi utilizado pelos grandes computadores da dcada de 70, os chamados mainframes. O sistema operacional Unix era distribudo gratuitamente para as universidades e centros de pesquisas, e alm da distribuio gratuita, Thompson permitia a distribuio do cdigo fonte do software, dando origem a ao chamado OSS Open Source Software, ou Software de Cdigo Aberto. A partir da iniciativa de Thompson, vrios programadores que tiveram acesso ao cdigo do Unix comearam a aprimorar e gerar melhoramentos no sistema, iniciando com isto as comunidades de desenvolvimento de software livre. Cada nova verso gerada pelos programadores era distribuda da mesma forma, ou seja, gratuitamente e acompanhada do cdigo fonte, proporcionando assim inmeras melhorias ao sistema original de Thompson. Em 1971, Richard Stallman, inaugurou de fato o movimento Open Source, ele produziu, em um dos laboratrios do MIT, Massachusetts Institute of Technology, diversos softwares com o cdigo fonte aberto. Em 1979 a empresa AT&T juntou-se a empresas como IBM, DEC, HP e Sun para formar a Open Source Foundation criada para dar suporte ao BSD Unix, uma verso do sistema criada pela Universidade de Barkley. A OSF tinha como base o combate s restries de cpias e alteraes de softwares, incentivando a criao de softwares livres para a cpia e distribuio. A conotao free vai alm do contexto de software gratuito, ela indica que o usurio livre para executar, distribuir, estudar e melhorar o software.
11

A filosofia do software livre baseia-se na troca de conhecimentos e experincias, proporcionando uma democratizao do saber. A evoluo dos softwares livres acontece de forma to rpida, justamente pelo envolvimento de diversas pessoas, de vrias partes do mundo em um mesmo projeto. Os quatro pilares do software livre, citados cima, demonstram a preocupao das comunidades de desenvolvedores na quebra de barreiras econmicas para a distribuio e acesso s novas tecnologias. A liberdade de executar o software para qualquer uso permite que os usurios utilizem tais sistemas da maneira seja necessrio, independente da autorizao do seu criador. A liberdade de distribuir o software democratiza a utilizao da tecnologia por grupos de usurios que poderiam no ter acesso ao software por questes de custo e direitos autorais. A liberdade de estudar o software democratiza o conhecimento, do ponto de vista que alunos e profissionais da rea de desenvolvimento tm acesso ao cdigo fonte e passa a compartilhar as experincias de vrios desenvolvedores. A liberdade de melhorar o software proporciona um grande aumento de qualidade dos softwares livres, pois novas verses so criadas por desenvolvedores do mundo todo e so redistribudas para a comunidade de usurios. A filosofia do software livre no surge apenas pela questo do custo do software, mas visa a democratizao do acesso tecnologia e o conhecimento. Lembre-se dos quatro pilares do software livre: a liberdade de executar o software para qualquer finalidade, a liberdade de distribuir o software, a liberdade de estudar o software e a liberdade de melhorar o software.
12

Leia mais sobre a histria do software livre no endereo:


http://vecam.org/article710.html

1.2 VANTAGENS DO SOFTWARE LIVRE


Ao pensarmos nas vantagens da utilizao de um software livre comum pensarmos principalmente no custo, mas os benefcios podem ir bem alm disso. Claro que o custo um fator importante e deve ser considerado uma grande vantagem da utilizao do software livre, tendo em vista que a ausncia de investimentos em software permite a democratizao do acesso a tecnologia. Imagine por exemplo, a economia do Governo Federal na implantao de softwares livres em escolas pblicas em todo pas. Os valores pagos por licenas de softwares muitas vezes so revertidos em benefcios fora do pas, os royalties pagos Microsoft, por exemplo, que no uma empresa brasileira, provavelmente ir voar para fora do pas, e assim por diante. Mas alm do custo importante ressaltarmos aqui a democratizao do conhecimento, do ponto de vista que o software livre pode ser estudado e aprimorado por qualquer pessoa que tenha conhecimentos na rea de desenvolvimento de software. Podemos citar tambm a segurana do software livre como ponto importante nesta avaliao. O software proprietrio, muitas vezes apresenta falhas de segurana que no so percebidas, pois poucas pessoas tm acesso ao cdigo fonte. Ao contrrio, no software livre, milhares de pessoas de todo
13

mundo possuem acesso ao cdigo, o que nos proporciona uma maior agilidade na percepo de fragilidades que podem ocasionar em perdas irreparveis, principalmente se pensarmos no mundo coorporativo. Mais pessoas conhecem o software, mais pessoas conhecem o fonte, mais pessoas procuram falhas de segurana e mais pessoas trabalham na melhoria de tais falhas. Desta forma fcil concluir as vantagens dos softwares livres sobre os softwares proprietrios. Mais pessoas conhecem o cdigo-fonte do software, isto implica que mais pessoas esto apontando falhas de segurana e estudando melhorias, enquanto que no software proprietrio, apenas os desenvolvedores da empresa proprietria tm acesso a este cdigo.

1.3 POR QUE NO USAR SOFTWARE PROPRIETRIO


Softwares proprietrios como o Windows so bons, o grande problema que alm de pesar no bolso, a utilizao de software proprietrio nos priva de algumas liberdades. Os softwares proprietrios normalmente so licenciados e no vendidos, o que nos permite afirmar que ao comprarmos uma licena de software no estamos comprando o software e sim o direito de utiliz-lo. Desta forma nos obrigamos a aceitar as restries impostas pelo fabricante. Normalmente os formatos utilizados pelos softwares proprietrios so fechados, no possuem compatibilidade com outros softwares similares. Os cdigos fontes so fechados, ou seja, ns na verdade no sabemos exatamente como os softwares funcionam, dificultando assim a manuteno dos softwares. Uma empresa no poder manter uma equipe de desenvolvimento para manter os softwares proprietrios de terceiros.

14

Leia o artigo Por que usar software Livre? Disponvel no endereo: http://www.dicas-l.com.br/dicas-l/20000116.php

1.4 O GNU
Em 1983, Richard Stallman deu incio ao Projeto GNU, com o objetivo de desenvolver uma nova verso do Unix, acompanhada de aplicativos e ferramentas compatveis, tais como editores de textos, o projeto definia a necessidade de todos os pacotes de software serem livres. Em 1985 ele publicou o manifesto GNU, intitulado General Public License. A GPL no somente concede as quatro liberdades do software livre mas tambm as protege. Hoje a GPL a licena mais utilizada por softwares livres.

Faa a leitura do Manifesto GNU no endereo:


http://www.Gnu.org/Gnu/manifesto.pt-br.html

1.5 ORIGEM DO LINUX


Linus Torvalds, um estudante de computao da Universidade de Helsinki, na Finlndia, iniciou a criao de um novo sistema operacional baseado no sistema Unix, o nome Linux surge do agrupamento de Linus + Unix. Em 1991 Linus disponibilizou a primeira verso do Kernel. Quando desenvolveu o Linux, Linus no tinha a inteno de ganhar dinheiro e sim desenvolver um sistema para seu uso pessoal. Ele desenvolveu o sistema de forma coletiva, ou seja, vrias pessoas participaram do desenvolvimento. Milhares de pessoas participaram do desenvolvimento do Linux, pelo simples fato de poderem desenvolver um sistema melhor.
15

O Linux possui a licena GPL, o que permite que qualquer pessoa tem a permisso de utilizar seus programas com o objetivo de no tornar os programas fechados e nem comercializados. Depois da distribuio da primeira verso do Linux, o seu desenvolvimento no parou mais. Vrias comunidades de desenvolvedores espalhadas pelo mundo continuam desenvolvendo novas verses, cada comunidade trabalha em uma distribuio especfica, com suas particularidades, mas mantendo os princpios bsicos do sistema operacional original. Nos dias atuais, devido ao grande esforo de desenvolvedores do mundo todo, as verses do Linux so capazes de rodar em qualquer tipo de plataforma tecnolgica. A ideologia do software livre tem motivado desenvolvedores de todo mundo a reunirem-se em comunidades de desenvolvimento com objetivos comuns.

1.6 DISTRIBUIES DO LINUX


Distribuio Linux um sistema operacional que inclui o Kernel, Linux e mais alguns programas aplicativos. Normalmente so mantidas por organizaes comerciais e projetos comunitrios. Da mesma forma que o Linux, os aplicativos includos em distribuies so livres, permitindo assim que qualquer indivduo ou organizao possa criar e disponibilizar sua prpria distribuio. Alguns autores indicam que hoje existem mais de 300 distribuies de Linux mantidas, no entanto menos de 20 delas so largamente conhecidas. Dentre as distribuies mais conhecidas, algumas utilizam sistemas de Live CD, o que permite executar o sistema operacional sem a necessidade de instalao, desta forma, mais fcil conhecer e testar uma distribuio antes mesmo de instal-la no seu computador.
16

Quando voc for escolher qual distribuio dever utilizar, leve em considerao alguns pontos, tais como: - recursos necessrios; - forma de utilizao (desktop ou servidor); - interfaces grficas disponveis; - a distribuio compatvel com o hardware disponvel; - a distribuio possui pacotes de softwares necessrios; - o processo de instalao e configurao est de acordo com as minhas aptides; - h uma comunidade de usurios da qual eu possa participar. De forma geral, impossvel responder qual a melhor distribuio. Cada caso um caso, desta forma preciso analisar e avaliar as vantagens e desvantagens das distribuies disponveis antes de optar por uma. Leve em considerao a seguinte regra: opte sempre pela distribuio mais atualizada possvel; lembre-se que quanto mais atualizada for a distribuio, maior sero as facilidades de configurao e compatibilidade com hardware e recursos de comunicao. Dentre as distribuies mais utilizadas no Brasil esto: - Conectiva - Kurumin - Debian BR - Debian - Fedora - Gentoo
17

- Knoppix - Mandriva - Red Hat - Slackware - SUSE - Ubuntu - Yellow Dog Linux (para Mac) Faa a leitura do primeiro captulo do livro: Linux O Guia essencial, disponvel no endereo:
http://books.google.com.br/books?id=V4zSF3sjREIC&pg=PA22&dq=Gnu&lr=la ng_pt&as_brr=0&cd=9#v=onepage&q=Gnu&f=false

1.7 UBUNTU
O Ubuntu um sistema operacional de fonte aberta, baseado no Kernel do Linux. Desenvolvido com a filosofia do software livre, ele livre de custos, inclui tradues e recursos de acessibilidade de qualidade e possui distribuies constantes de novas verses e atualizaes. Baseado no Debian, uma das mais utilizadas distribuies do Linux, o Ubuntu uma distribuio coerente para a utilizao em desktops e servidores. O Ubuntu proporciona um ambiente de trabalho seguro e eficiente, tanto para usurios domsticos como comerciais. A numerao da verso do Ubuntu definida pelo ano e ms de lanamento. A primeira verso lanada em outubro de 2004 denominava-se 4.10. A verso atual do Ubuntu, que a verso que iremos utilizar em nosso curso a verso 9.10.
18

1.8 COMO OBTER O UBUNTU


O Ubuntu pode ser facilmente baixado pela Internet do site da comunidade Ubuntu-br, no endereo http://www.ubuntu-br.org Como dito anteriormente, durante nosso curso iremos trabalhar com a verso 9.10 do Ubunto, por isso, se voc ainda no possui esta verso hora de adquir-la, para isto siga os passos abaixo para o download e gravao do CD de instalao do Ubuntu 9.10. Ao acessar o site da comunidade Ubuntu-br, clique no boto Baixar agora, conforme a ilustrao abaixo:

Aps baixar o Ubuntu grave-o em um DVD para que possamos experimentar este maravilhoso sistema operacional.

1.9 EXPERIMENTANDO ANTES DE INSTALAR


O Ubuntu nos oferece a possibilidade de utilizao do software por Live-CD, ou seja, podemos experimentar o Ubuntu sem que haja a necessidade de instalar o sistema em nosso computador. Mesmo que o meu computador j tenha um sistema operacional como o Windows ou outro qualquer, podemos experimentar o Ubuntu sem gerar nenhum tipo de problema no sistema j instalado.

19

Siga os passos abaixo para que voc possa experimentar o Ubuntu 9.10 sem a necessidade de instalar o sistema operacional em seu computador. Mesmo que voc j tenha algum outro sistema operacional instalado, veja como fcil testar o Ubuntu em seu computador. Para isso, o primeiro passo certificarmos de configurar a BIOS(Setup) para dar o Boot pelo drive de CD/DVD. Feito isto, insira o DVD do Ubuntu no drive e inicie o computador. Com a devida configurao do Boot pelo CD/DVD a tela a seguir ser apresentada, onde sero necessrias algumas alteraes de idioma e possivelmente mapa de teclados (keymaps), conforme demonstrado na figura abaixo:

Pressione a tecla F2 para selecionar o idioma.

20

Aps definir as opes de configurao do idioma e outras que se fizerem necessrias, basta escolher a opo Iniciar Ubuntu para carregar o mesmo. Desta forma o Ubuntu ser iniciado em seu computador sem que seja instalado no HD. Assim voc poder conhecer e experimentar o Ubuntu antes de instal-lo.

At este momento no escolha ainda a opo de instalao do sistema operacional no disco, antes de instal-lo vamos experimentar! Posteriormente iremos trabalhar com o sistema operacional instalado.

21

1.10 CONHECENDO O AMBIENTE


Aps executar o Ubuntu pelo Live CD a tela inicial ser apresentada conforme a figura abaixo:

Trs menus principais so disponibilizados no canto superior direito da tela, sendo eles: Aplicativos, Locais e Sistema. No menu Aplicativos so disponibilizados os menus Acessrios, Escritrio, Grficos, Internet, Jogos, Multimdia e Central de Programas do Ubuntu. Teste alguns destes recursos e veja como fcil trabalhar com o Ubuntu. Navegue pelos menus e sub-menus testando os aplicativos disponveis. No menu Locais, como o prprio nome j diz, disponibilizam os locais de armazenamento e acesso do Ubuntu, tais como unidades de disco, pastas do usurio, locais de rede, etc.
22

Faa o mesmo, navegue pelos menus e sub-menus e se familiarize com o ambiente. No menu Sistema, o Ubuntu disponibiliza ferramentas para anlise e monitoramento de Hardware e configuraes de forma geral. Navegue pelos menus e sub-menus e conhea tais recursos. No canto superior direito da tela, o Ubuntu disponibiliza alguns recursos importantes que podem nos ajudar no dia a dia, tais como informaes de data e hora, volume de som, e conexes de rede. No perca tempo, explore agora mesmo tais recursos! Alm disso, no canto superior direito da tela, o Ubuntu disponibiliza o boto Desligar, por onde podemos facilmente desligar o computador, reiniciar, trocar de usurios alm de outras opes. Experimente agora! No menu Aplicativos/Escritrio, podemos explorar os recursos do pacote de escritrio OpenOffice, um pacote bastante similar ao Microsoft Office, com recursos de editorao de textos, planilhas eletrnicas e apresentaes de slides. No menu Aplicativos / Grficos temos a opo de trabalhar com imagens de forma profissional, utilizando o software Gimp, disponvel no Ubuntu, alm de podermos gerenciar foto e trabalhar com digitalizao de imagens. No menu Aplicativos / Internet localizaremos o navegador padro do Ubuntu, o Mozila Fire Fox, um excelente navegador de Internet. Alm do Fire Fox, podemos contar com um Cliente de Mensagens Instantneas, que nos permite conectar com vrias redes de mensagens, tais como MSN, Yahoo e outras, alm de cliente de email e outros recursos. Os recursos aqui citados so apenas alguns recursos disponveis no Ubuntu, navegue por todos os menus e sub-menus e conhea melhor o ambiente.

23

Nossa prxima etapa ser realizar a instalao do Ubuntu no HD, para que possamos ganhar em desempenho e possamos explorar de fato os recursos deste sistema operacional incrvel.

Reveja os conceitos estudados nesta unidade. Faa um resumo geral dos tpicos apresentados.

Aps rever todos os conceitos estudados nesta unidade, responda as questes abaixo: 1. Quando e como surgiu o conceito de software livre? 2. O que a OSF e qual o seu objetivo? 3. Qual o objetivo da filosofia do software livre? 4. Apresente as vantagens da utilizao do software livre. 5. Quais os pilares que sustentam o desenvolvimento do software livre? 6. O que o projeto GNU? 7. Explique a origem do sistema operacional GNU/Linux. 8. O que so as distribuies GNU/Linux? 9. O que o Ubuntu? 10. O que significa dizer que uma distribuio GNU/Linux pode ser utilizada em Live/CD?

24

CONCLUSO
Ao final desta unidade podemos concluir a importncia do surgimento do software livre, tendo em vista os diversos benefcios que o mesmo proporcionar democratizao do acesso tecnologia como ao conhecimento, por meio de seus pilares que proporcionam a capacidade de utilizao do software frente a qualquer tipo de necessidade, a possibilidade de estudo do software, alterao e distribuio do mesmo. O software livre deixou de ser uma tendncia e h tempos se tornou realidade, no s no Brasil, mas tambm no mundo. Os profissionais de Sistemas de Informao e reas afins devem estar atentos a esta realidade de mercado que pode proporcionar enormes oportunidades de crescimento profissionais e realizao pessoal. O estudo do software livre, no nosso caso em especfico, o GNU/Linux se faz de extrema importncia para a acesso profissional dos alunos deste curso. O profissional de tecnologia pode atingir seus objetivos financeiros atuando com softwares livres mesmo que este no seja comercializado, mas atravs de implantao de sistemas, manuteno e treinamentos.

RESUMO DA UNIDADE
Na unidade 1 deste guia de estudo, procuramos apresentar os conceitos iniciais e histrico do surgimento do software livre. Demonstramos as vantagens da utilizao do software livre, o surgimento do projeto GNU, que busca regulamentar a utilizao de software livre no mundo. Em especial, focamos o sistema operacional GNU/Linux, objeto de estudo desta disciplina, atravs do primeiro contato com a distribuio Ubunto 9.10.

25

Procuramos apresentar ainda um pouco do histrico do surgimento do sistema operacional GNU/Linux e suas principais distribuies.

Demonstramos como obter uma cpia gratuda do sistema operacional em estudo e como experimentar o sistema sem a necessidade de instalao do mesmo do computador.

NA PRXIMA UNIDADE
Na prxima unidade sero apresentados os processos de instalao do Ubuntu 9.10 em disco, dando nfase aos processos de particionamento de
discos, sistemas de arquivos e estrutura de diretrios do Linux. Veremos

tambm a utilizao de comandos pelo Terminal, o registro de usurios e super-usurios, assim como o controle e administrao de grupos. Ainda na prxima unidade, sero apresentados os recursos para a utilizao do sistema de gerenciamento de pacotes, a aquisio de pacotes por meio do APT e pelo Synaptic, as ferramentas para a obteno de informaes do sistema, os conceitos de permisses de acesso, configuraes de redes cabeadas e redes sem fio, a utilizao de aplicativos Windows no ambiente Linux, a instalao de pacotes Java e a configurao de conexes PPPoE.

26

Unidade II - Utilizando o GNU/Linux Ubuntu 9.10

META
A unidade 2 deste guia de estudos tem como meta apresentar os conceitos necessrios utilizao do sistema operacional GNU/Linux, desta vez j instalado no computador e permitir que o usurio tenha acesso aos recursos bsicos necessrios do sistema, recursos de segurana, rede e Internet.

OBJETIVOS
Esperamos que, aps o estudo desta unidade voc seja capaz de: 1. Realizar a instalao do sistema operacional GNU/Linux; 2. Compreender o sistema de arquivos e estrutura de diretrios do sistema em estudo; 3. Utilizar os comandos bsicos do Linux por meio do Terminal; 4. Explorar o sistema de usurios do Linux, conhecendo todo processo relacionado ao usurio root, insero, alterao e excluso de novos usurios; 5. Utilizar o gerenciamento de atualizaes e pacotes do Linux; 6. Consultar as informaes do sistema;
27

7. Montar regras de permisses de acesso a aquivos e diretrios; 8. Configurar uma rede local cabeada em Linux; 9. Configurar uma rede sem fio em Linux; 10. Utilizar recursos que permitam rodas aplicaes Windows no Linux; 11. Instalar pacotes para aplicaes Java; 12. Configurar conexes PPPoE.

PR-REQUISITOS
Como pr-requisitos para o perfeito acompanhamento desta unidade, espera-se que o aluno tenha noes bsicas de instalao de sistemas operacionais e configurao do Setup, entenda os conceitos de arquivos e pastas em um sistema operacional, compreenda mesmo que a nvel bsico, os conceitos de rede e do protocolo TCP/IP e particionamento de HDs.

28

2.1 INSTALANDO O UBUNTU NO HD


Antes de iniciarmos a instalao do Ubuntu no HD, devemos observar alguns itens: Eu j tenho um sistema operacional instalado em minha

mquina? Se eu j tenho um sistema operacional instalado, eu quero

substitu-lo e manter apenas o Ubuntu? Ou eu quero manter os dois sistemas operacionais na

mquina?

Observe com cuidado os tpicos acima antes de iniciar o processo de instalao do GNU/Linux Ubuntu em seu computador!

Analise bem estes itens, pois podemos definir diversas opes para a instalao do Ubuntu. A primeira coisa a fazer verificar a compatibilidade do meu hardware com o sistema operacional que queremos instalar: Vamos imaginar agora que voc j possui um sistema operacional instalado em sua mquina, um Windows por exemplo. Suponhamos que voc possua um HD de 150 Gb e que este HD possui uma nica partio. Neste caso, para mantermos os dois sistemas operacionais na mquina voc precisar de um software capaz de redimensionar a sua partio, sem perder os dados. Alguns softwares disponveis podem fazer isso. Um dos mais utilizados o Partition Magic. Tome cuidado, pois aes erradas com este tipo de software podem acarretar em perdas irreparveis de dados.

29

O melhor mesmo voc fazer um backup de todos os seus arquivos antes de pensar em redimensionar o HD. Agora vamos imaginar o seguinte, voc j redimensionou a sua partio e seu HD ficou estruturado da seguinte forma: 100 Gb a sua partio primria onde o Windows se manteve instalado assim como todos os seus programas, e voc agora possui um espao livre, no particionado de 50 GB. justamente a que iremos instalar o Linux, para isto precisamos definir as parties necessrias para a instalao.

Atente-se aos passos abaixo, eles demonstraro como instalar o sistema operacional GNU/Linux Ubuntu 9.10 no seu computador.

Antes de iniciar a instalao do GNU/Linux Ubuntu no seu computador, leia todo o processo de instalao apresentado nesta unidade.

A criao das parties destinadas ao Linux poder ser criada durante o processo de instalao, ento mos a obra, vamos agora iniciar o Linux pelo Live-CD, da forma que fizemos anteriormente durante o tpico: Conhecendo o Ambiente. Insira o CD/DVD no drive e reinicie o computador. Escolha o idioma e realize os processos definidos no tpico anterior, como j fizemos anteriormente.

30

Para iniciar a instalao do Ubuntu no HD, clique sobre o cone Instalar o sistema no computador, conforme a imagem acima. A partir da, deveremos seguir os passos sugeridos pelo assistente de instalao do Ubuntu, observando os questionamentos realizados pelo mesmo. Voc ser questionando sobre qual idioma deseja instalar o Ubuntu, conforme a tela abaixo:

Selecione em seguida o fuso horrio,:

31

Selecione o layout do teclado:

E finalmente deveremos particionar o disco para receber a instalao do Ubuntu. Este sem dvidas o ponto mais crtico do processo de instalao do Ubuntu. Fique atento, o particionamento correto do HD de fundamental importncia para o perfeito funcionamento do sistema operacional e, no caso de Hds com mais de um sistema operacional, o particionamento errado pode acarretar em perdas de dados e at mesmo do prprio sistema.

32

Se por acaso voc for instalar o sistema operacional em um computador que no possui nenhum sistema, e se esse for utilizar todo o disco, basta escolher a opo Assistido Usar disco Inteiro, isto far com que o assistente de instalao do Ubuntu prepare todo o disco para ser utilizado pelo Linux, atente-se para o fato de que esta opo ir apagar todo contedo do disco, e o Linux passar a utilizar o HD em sua totalidade.

33

Mas como exemplificamos anteriormente, vamos imaginar que temos aqui uma partio de 100 GB onde rodamos o sistema operacional Windows, e um espao de 50 GB ainda no particionado, onde desejamos instalar o Linux, desta forma escolha a opo Particionamento Manual, o que nos permitir definir o tamanho das parties utilizadas pelo Linux.

Sugiro que seja criadas 3 parties para a instalao do Linux, uma ser utilizada para a estrutura de diretrios raz, outra para rea de troca (swap) e a outra para o diretrio pessoal dos usurios (/home). As duas primeiras Rais (/) e a home(/home) utilize o tipo Ext3, um tipo de sistema de arquivos nativo do Linux, na terceira partio utilize o tipo Swap, que ser utilizada como rea de troca em disco.

34

Observe tambm a necessidade da rea de Swap ser a ltima rea definida, desta forma teremos a estrutura definida abaixo. Em relao ao tamanho das parties, claro que isto vai depender da quantidade de espao livre no seu HD que voc deseja utilizar, mas observe o seguinte: Sugere-se que a rea de Swap tenha no mnimo o dobra da capacidade da sua memria RAM.

O prximo passo a possibilidade de importamos contas de outros sistemas operacionais instalados para o Ubuntu. Selecione as opes desejadas e clique em Avanar.

35

Posteriormente deveremos definir o usurio do sistema, onde voc dever informar os dados do usurio tais como: nome para acesso, senha, etc. Feito isto, clique em Avanar.

36

Aps a concluso destes passos, uma tela mostrando um resumo do processo de instalao exibida, voc poder conferir todas as opes escolhidas e clicar em Install para de fato realizar a instalao do sistema.

Finalizado o processo de instalao, clique no boto Reiniciar agora, lembre-se de remover o CD/DVD de instalao do drive, desta forma voc poder utilizar o Ubuntu j instalado no seu computador. Faa o login no sistema utilizando o nome de usurio e senha criados durante o processo de instalao.

37

Pronto, desfrute agora deste maravilhoso sistema operacional!

Revendo todo processo de instalao do GNU/Linux: 1. Configure a Bios do seu computador para iniciar o Boot pelo drive de CD/DVD. 2. Inicie o computador pelo CD/DVD e escolha o idioma. 3. Aps acessar o Ubuntu pelo Live/CD clique no cone Instalar o sistema no computador. 4. Escolha novamente o idioma. 5. Escolha o fuso-horrio que ir utilizar. 6. Escolha o layout do teclado. 7. Prepare as parties. 8. Informe os dados de sua conta (usurio, senha, etc...) 9. Cheque todas as opes. 10. Inicie o processo de instalao.

38

2.2 SISTEMA DE ARQUIVOS E DIRETRIOS


O sistema de arquivos do Linux possui um formato hierrquico, o nvel mais alto o (/) ou simplesmente root. No Linux, tudo considerado um arquivo, incluindo unidades de disco, parties, diretrios, etc. Exemplo: /home/eu/carta.old mostra o caminho completo do arquivo carta.old, que se encontra dentro do diretrio eu que est dentro do diretrio home que est no diretrio / root. Abaixo segue uma relao dos principais diretrios que se encontram dentro do root: /bin aplicativos binrios

/boot arquivos necessrios ao processo de inicializao /dev /etc arquivos de dispositivos arquivos de configurao

/home diretrio do usurio /lib bibliotecas do sistema

/media arquivos removveis montados (cds, pendrives, etc.) /root /sys /tmp /usr /var diretrio home do usurio root informaes do sistema arquivos temporrios arquivos que podem ser disponveis a todos os usurios arquivos variveis, tais como logs e outros

39

2.3 TERMINAL E CONSOLE


A opo de trabalhar com Terminais, nos permite interagir com o Linux por meio de linhas de comandos, praticamente todos os recursos do Linux podem ser utilizados por meio da sua interface grfica, no entanto em alguns momentos poder surgir a necessidade de trabalhar com linhas de comandos. Para acessar a tela do terminal clique no menu Aplicativos / Acessrios / Terminal, voc ver o terminal de comandos do Linux sendo exibido conforme a tela abaixo:

Na tela do Terminal, poderemos visualizar o nome do usurio e o nome do computador. No exemplo acima, identificamos o usurio rodrigo, utilizando o computador informatica. Tambm podemos identificar o nvel de usurio como usurio comum pelo identificador cifro ($), a partir da podemos utilizar alguns comandos bsicos que veremos adiante.
40

2.4 COMANDOS BSICOS DO GNU/LINUX


Comando ls O comandando ls lista arquivos e diretrios dos usurios. Faa um teste, digite ls e pressione enter. Comando mkdir Cria um novo diretrio Comando cd Muda do diretrio atual para algum diretrio especfico Comando cp Copia arquivos de um diretrio para outro cp -r copia diretrios Comando rm Apaga arquivos rm -rf apaga diretrios Comando mv move arquivos e diretrios de lugar Comando locate procura um arquivo especificado Comando top exibe informaes sobre o sistema, processos em andamento, recursos do sitema e outros Espao atualiza a visualizao das informaes do top
41

q abandona o comando top Comando free exibe informaes da memria do seu computador Comando chmod altera as permisses de arquivos e diretrios, veremos conceitos de permisses mais adiante. Comando fdisk gerencia as parties do disco Comando passwd altera senha de usurios Comando ifconfig exibe informaes da interface de rede

Pratique um pouco, crie diretrios, copie algum arquivo para os diretrios criados, apague os arquivos copiados, apague diretrios, etc...

Alm de podermos trabalhar com o modo Termial, podemos utilizar as linhas de comando no modo Console, para alterar a utilizao do Linux para o modo Console, pressione as teclas CTRL + ALT + F1 Existem disponveis 6 console, cada console acessado pelas teclas CTRL + ALT + F1 at CTRL + ALT + F6 Para retornar para o modo grfico, utilize CTRL + ALT +F7.

42

2.5 USURIO ROOT


Usurio root o usurio mestre do sistema, ou seja, o super usurio, aquele usurio que tem autorizao para realizar qualquer tarefa no sistema. Muitas vezes preciso estar logado no sistema como root para que possamos concluir determinadas tarefas. Num primeiro momento, precisamos definir a senha do usurio root, para isto acesse o Terminal em Aplicativos / Acessrios / Terminal: No Terminal utilize o comando sudo passwd root Digite a nova senha Confirme a nova senha Em seguida para acessar o sistema como o super usurio (root) digite o comando: su Voc perceber que o nome do usurio que aparece no Terminal ir mudar para root, a partir da voc tem acesso irrestrito a todas as opes do sistema. Digitando o comando exit, voc poder retornar ao seu usurio original. Agora que voc j definiu uma senha par ao usurio root, encerre a sesso do Linux e faa um novo login utilizando o usurio root. A senha criada durante o processo de instalao do Ubuntu no a senha do usurio root (super-usurio), por isso devemos cri-la posteriormente.

43

2.6 USURIOS E GRUPOS


Para acessar o gerenciador de usurios e grupos, acesse o menu Sistema / Administrao / Usurios e Grupos, l voc dever visualizar pelo menos dois usurios, o root e o usurio que voc definiu quando realizou a instalao do Linux.

possvel a partir da, visualizar e editar as propriedades dos usurios, adicionar novos usurios, excluir usurios e gerenciar os grupos de usurios. Em Gerenciar grupos voc pode, por exemplo, definir que um usurio qualquer faa parte do grupo root dando a ele poderes de um super usurio.

2.7 GERENCIADOR DE ATUALIZAES


Periodicamente, diversas atualizaes para o Ubuntu so disponibilizadas na rede, importante que estas atualizaes sejam baixadas para que possamos desfrutar de todos os recursos e segurana do sistema operacional. Para verificar as atualizaes clique no menu Sistema / Administrao / Gerenciados de Atualizaes, em seguida clique em Verificar.
44

Aps Verificar a existncia de atualizaes disponveis, voc poder escolher a opo Instalar atualizaes para realizar todas as atualizaes possveis, conforme a figura abaixo:

Manter o sistema operacional atualizado nos trar diversos benefcios, dentre eles podemos citar um melhor desempenho e segurana.

45

2.8 GERENCIAMENTO DE PACOTES


Inicialmente, utilizvamos o .tar.gz para gerenciar os pacotes do Linux, neste momento eram necessrios que os usurios compilassem os programas que iriam utilizar no Linux. Posteriormente, o Debian passou a oferecer uma nova forma de gerenciamento de pacotes, o dpkg. Os desenvolvedores Linux. comearam a perceber a necessidade de criar um sistema de gerenciamento de pacotes mais rpido, prtico e eficiente, a partir deste momento ento surgiu o APT Advanced Packaging Tool. A maioria dos comandos do APT requer senha de super-usurio, para isto voc pode utilizar o comando sudo antes de cada comando. O comando sudo indica uma ao pelo super-usurio do sistema.

Veja abaixo alguns exemplos do gerenciador de pacotes APT:

apt-get install nome_do_pacote - instala um novo pacote no sistema apt-get remove nome_do_pacote - remove um pacote instalado (no exclui os arquivos de configurao) apt-get purge remove nome_do_pacote - remove um pacote instalado excluindo tambm os arquivos de configurao apt-get upgrade - atualiza todos os pacotes instalados apt-get dist-upgrade - atualiza o sistema com uma nova verso apt-cache search termo - procura por termo na lista de pacotes disponveis

46

dpkg -l nome_pacote - lista os pacotes instalados que casam com nome_pacote, utilize *nome_pacote* se voc no souber o nome completo do pacote. apt-cache showpkg - pacotes mostra informaes sobre os pacotes apt-cache dumpaival - mostra uma lista de pacotes disponveis apt-cache pkgnames - rpida listagem dos pacotes instalados no sistema

Vamos praticar um pouco, realize os testes listados abaixo:

Inicie o Terminal e teste os comandos abaixo: Supomos que voc gostaria de procurar por um jogo de corrida, para isto iremos utilizar o comando apt-cache search, conforme abaixo: sudo apt-cache search racing game isto ir listar pacotes que contenham o termo racing game; Veja o resultado abaixo:

47

Suponhamos

agora

que

desejamos

instalar

pacote

extremetuxracer, listado na imagem, para isto utilizaremos o apt-install, da seguinte forma: sudo apt-get install extremetuxracer Voc pode acompanhar a progresso da instalao atravs da tela do Terminal. Possivelmente, pode existir defeitos em algum pacote instalado, isto pode fazer com que o apt fique travado, sem concluir a instalao de algum pacote, isto far com que o apt no aceite a instalao de algum outro pacote.

Algumas artimanhas podem resolver este tipo de problema, tais como: apt-get update desta forma voc poder ter certeza de que a lista de pacotes apt se encontra atualizada. apt-get -f install utiliza o sistema de resoluo de problemas dpkg -i force -all fora a instalao de pacotes com problemas dpkg -r nome_do_pacote desiste da instalao de algum pacote dpkg configure -a verifica a existncia de pendncias de na configurao de pacotes

2.9 GERENCIANDO PACOTES COM O SYNAPTIC


O Synaptic um gerenciador de pacotes do Ubuntu que utilizaa interface grfica, ele utiliza todos os recursos do apt-get. Por ele possvel instalar, remover, configurar ou atualizar pacotes, dentre outras opes.

48

Clique no menu Sistema / Administrao / Gerenciador de Pacotes Synaptic

A janela divide-se em trs partes bsicas, o navegador de pacotes esquerda, a relao de pacotes direita e os detalhes dos pacotes direita abaixo. O Synaptic mantm uma lista de pacotes no seu sistema, esta lista tem o objetivo de informar ao usurio sobre novos pacotes disponveis. O sistema verifica a existncia de novos pacotes cada vez que iniciado.

49

A navegao pelos pacotes pode ser realizada por meio de categorias, sees, status do pacote, filtros personalizados ou resultados da busca.

Pratique um pouco explorando os recursos do Gerenciador de Pacotes Synaptic.

2.10 INFORMAES DO SISTEMA


Possivelmente, em algum momento, poderemos necessitar de informaes do sistema que estamos utilizando, seja elas relativas ao software como ao hardware, desta forma, o Ubuntu disponibiliza uma ferramentas que podero nos oferecer relatrios com tais informaes. Para obtermos as informaes do sistema em forma de relatrios HTML, devemos instalar alguns pacotes adicionais, sendo eles: lshw e lshwgtk, para isto, acesse o Gerenciador de Pacotes Synaptic, estudado na sesso anterior. Clique na opo sees e em seguida escolha Todas, na caixa de texto de busca rpida procure por lshw, selecione os dois pacotes e clique na no boto Aplicar, desta forma os pacotes sero aplicados. Agora que temos os pacotes necessrios devidamente instalados, abra o Terminal e digite o comando: sudo lshw Desta forma voc receber um relatrio completo sobre o seu hardware, conforme exibido na figura abaixo:

50

Se preferir, voc pode gerar um relatrio em formato HTML, para isto utilize o comando abaixo: sudo lshw -html >nome_do_arquivo.html

Por exemplo: sudo lshw -html >relatorio.html

51

Ou ainda voc poder gerar um relatrio no formato XML. Veja o exemplo abaixo: sudo lshw -xml >relatorio.xml

Por exemplo: sudo lshw -html >relatorio.xml

52

Alguns parmetros podem ser adicionados ao lshw para que possamos especificar determinadas informaes, tais parmetros podem ser teis no momento em que precisamos de informaes de um dispositivo especfico, facilitando assim a leitura e compreenso dos dados. Os parmetros podem ser indicaes de leitura de informaes dos discos, interfaces de rede, componentes de vdeo e outros. Obter informaes de forma compacta: sudo lshw -short

53

Listando as propriedades do disco sudo lshw class disk

Listando as propriedades das interfaces de rede sudo lshw -class network


54

Listando as propriedades de vdeo do sistema sudo lshw -class display

55

2.11 PERMISSES EM LINUX


Vejamos agora como funciona o sistema de permisses do Linux. Possivelmente em algum momento de execuo do Linux, voc j tenha se deparado com a mensagem Permition Denied, isto acontece graas ao poderoso sistema de segurana do Linux, onde possvel definir permisses de acesso para arquivos e diretrios. As permisses de acesso se tornam muito til no momento que utilizamos o sistema para acesso de diversos usurios, ou grupos de usurios. Faamos o primeiro teste, abra o Terminal em Aplicativos / Acessrios / Terminal, difite o comando ls -l. O comando ls como j vimos anteriormente, nos devolve uma listagem de diretrios e arquivos, utilizando o ls -l, veremos esta mesma listagem acompanhada das permisses de acesso aplicadas a cada item, conforme podemos observar na figura abaixo:

O sistema de permisses visualizado por e letras, rwx, onde: r - read a permisso para ler o arquivo; w - write a permisso para escrever no arquivo; x - execute a permisso para executar o arquivo;
56

Quando criado um arquivo ou diretrio, o usurio que criou tal item denominado dono do arquivo, ao utilizarmos o comando ls -l, podemos identificar a primeira sequncia de letrar rwx como a permisso definida para o dono do arquivo, ou seja, o usurio que o criou. A primeira letra da permisso indicar se um arquivo ou diretrio, observe a descrio retirada da figura acima: drwxr-xr-x 2 rodrigo rodrigo rea de trabalho

Observe que o esquema de descrio comea por d, ou seja, rea de trabalho um diretrio. Vejamos o prximo item: -rw-r-- 1 rodrigo rodrigo examples.desktop

Como o esquema de permisses deste item comea com o carcter - (hifen), podemos identific-lo como um arquivo. Observe ainda que tanto o diretrio como o arquivo utilizado no exemplo, apresentam os nome rodrigo rodrigo. O primeiro

nome identifica o dono do arquivo, ou seja, o usurio que o criou. O segundo nome identifica o grupo de usurio que podem utilizar este arquivo, claro que respeitando as permisses configuradas. Vamos analisar mais um exemplo: -rwxrwxrwx rodrigo funcionarios carta.txt Lembremos que o primeiro carter identifica arquivo - ou diretrio d, neste caso podemos afirmar que carta.txt um arquivo. Os trs prximos caracteres identificam a permisso para o dono do arquivo, ou seja: neste caso, o usurio rodrigo o dono do arquivo e tem permsso para rwx no arquivo, ou seja, pode ler, escrever e executar o arquivo.
57

Os trs prximos caracteres identificam a permisso para o grupo de usurios, ou seja: neste caso, o grupo funcionrios tem permisso para rwx no arquivo, ou seja, pode ler, escrever e executar o arquivo. E por fim, os trs ltimos caracteres identificam a permisso para os demais usurios, ou seja, usurios que no sejam nem o dono do arquivo, nem faam parte de um grupo definido de usurios autorizados a acessar o arquivo. Neste caso, podemos afirmar que os demais usurios tm permisso para rwx no arquivo, ou seja, pode ler, escrever e executar o arquivo. Vamos agora trabalhar com exemplos mais elaborados, para que possamos exercitar nossos conhecimentos em permisses no Linux. -rwxr-x--rodrigo funcionarios carta.txt

O primeiro item da permisso - identifica um arquivo; Os trs prximos itens rwx identificam que o dono do arquivo, neste caso rodrigo, pode ler, escrever e executar o arquivo. Os trs prximos itens r-x identificam que o grupo de usurios funcionrios, pode ler e executar o arquivo, no entanto, no pode escrever no arquivo pois a permisso w foi substituda pelo caracter -, isso gera o efeito de anulao da permisso. E os trs prximos itens --- identificam que os demais usurios no possuem nenhum tipo de acesso ao arquivo, ou seja, no podem ler, nem escrever nem executar o arquivo. Podemos definir as permisses por meio de um sistema simples de numerao, onde: r igual a 4; w igual a 2 x igual a 1
58

a definio das permisses gerada pelo comando chmod, por exemplo: Se quisermos definir que um usurio tenha permisso para apenas ler o arquivo, utilizamos apenas o nmero 4. Se quisermos definir que um usurio tenha permisso para ler e escrever o arquivo, utilizamos 4 +2, ou seja, utilizamos 6. Se quisermos definir que um usurio tenha permisso para ler, escrever e executar um arquivo utilizamos 4+2+1, ou seja, utilizamos 7. Para que possamos praticar um pouco estes conceitos, utilize um editor de texto para criar o arquivo teste.txt dentro do seu diretrio de trabalho, em seguida utilize o comando ls -l para visualizar suas permisses no terminal.

Podemos tambm definir permisses utilizando a interface grfica, desta forma devemos visualizar o item atravs do menu Locais / Pasta Pessoal, conforme a figura abaixo:

59

Clique com o boto direito do mouse sobre o arquivo, escolha Propriedades / Permisses, assim ser possvel definirmos as permisses utilizando apenas alguns cliques com o mouse:

60

2.12 CONFIGURAES DE REDE


Acesse o Terminal para identificar suas interfaces de rede e as devidas configuraes, para isto utilize o comando: ifconfig O Comando ifconfig exibir as suas configuraes de rede, da mesma forma que o IPCONFIG do Windows. Veja o resultado abaixo:

61

Observe que no exemplo, existe uma interface de rede (placa de rede) ativa chamada de eth0, o IP da placa de rede 192.168.254.5, o Broadcast da rede 192.168.254.255 e a mscara de sub-rede 255.255.255.0. Alm disso, podemos observar tambm a interface para Loopback definida pelo IP 127.0.0.1 e mscarade sub-rede 255.0.0.0. Para alterar as configuraes da sua rede clique no menu Sistema/Preferncias/Conexes de Rede

Aqui voc poder visualizar e/ou editar as configuraes de sua rede, tais como utilizar DHCP ou definir manualmente o seu IP.

2.13 CONFIGURANDO REDE SEM FIO


Muitas placas de rede sem fio so reconhecidas pelo Ubuntu automaticamente, neste caso, basta apenas configurar a rede conforme descrio abaixo:

62

O Network Manager procura automaticamente as redes sem fio disponveis, para acess-lo clique com o boto direito do mouse no cone do programa, localizado no canto superior direito da tela, ao lado do relgio. Certifique-se que a opo Habilitar rede sem fio est selecionada.

Para a configurao de senhas e chave de criptografia abra o menu Aplicativos / Acessrios / Senhas e chave de criptografia. Clique no menu Arquivo / Novo... Na janela Criar nova... escolha Senha do Chaveiro e clique em Continuar. D um nome para o novo chaveiro e clique em Adicionar. Deixe os campos Senha e Confirmar Senha em branco e clique no boto Criar. Na caixa Armazenar senhas sem criptografia?, clique em Usar armazenamento no seguro.

Voc deve deixar o campo senha em branco para que no seja necessrio digitar uma senha toda vez que a rede sem fio for habilitada.

63

2.14 WINE RODANDO APLICAES PARA WINDOWS NO LINUX


O um recurso do Linux que realiza a simulao de um ambiente Windows. Com ele possvel utilizarmos aplicaes Windows dentro do Linux. O Wine est disponvel nos repositrios do Ubuntu e pode ser instalado pelo gerenciado de pacotes Synaptic ou pelo Terminal. Para instalao via Terminal digite o comando abaixo: sudo apt-get install wine
64

Aps realizar a instalao do Wine possvel instalarmos e utilizarmos sistemas Windows no nosso ambiente.

2.15 INSTALANDO O JAVA NO UBUNTU


A instalao do Java acontece de forma simples. No necessrio que sejam baixados arquivos do site da Sun, pois todos os pacotes necessrios esto disponveis no repositrio do Ubuntu. O JRE o Ambiente de Execuo Java que nos permite executar aplicaes Java, para instal-lo utilize o comando abaixo: sudo apt-get install sun-java6-jre Aps a instalao dos pacotes, configure o Ubuntu para utiliz-lo. Faa isto utiizando o comando abaixo: sudo update-alternatives config java Para instalar o plugin Java em seu navegador, utilize os comandos abaixo: sudo apt-get install sun-java6-plugin Em seguida configure o Ubuntu para utiliz-lo: sudo update-alternatives config javap Para instalar o JDK, utilize o comando abaixo: sudo apt-get install sun-java5-jdk Em seguida configure o Ubuntu para utiliz-lo: sudo update-alternatives configjavac

65

O JRE necessrio para rodarmos aplicaes Java no Ubuntu, o plugin Java necessrio para rodarmos aplicaes Java pelo navegador de Internet e o JDK kit de desenvolvimento necessrio para os programadores em Java.

2.16 CONEXO PPPOE


A conexo por meio de um modem PPPoE muio utilizada no Brasil pelos modens ADSL em conexes como Velox, Speedy e outras. Para iniciar a configurao, voc precisa do usurio e senha de um provedor e uma placa de rede para ligar o modem, alm claro do prprio modem. O pacote pppoe j instalado com o Ubuntu por padro, mas se for necessrio instalar o pacote, utilize o comando: sudo apt-get install pppoe pppoeconf Para configurar a conexo via Terminal, utilize o comando: sudo pppoeconf Uma aplicao mostrar as opes de configurao, conforme a imagem abaixo:

66

Voc dever realizar as seguintes configuraes: 1. confirmar a deteco da placa de rede; 2. informar o nome de usurio fornecido pelo provedor; 3. informar a senha fornecida pelo provedor; 4. se j possuir uma conexo PPPoE configurada o aplicativa perguntar se deseja alter-la; 5. se no tiver certeza das configuraes a serem escolhidas, responda o padro para todas as perguntas, para isto baste pressionar enter; 6. limited MSS modem problem choose YES 7. voc ser questionado se deseja ativar a conexo durante o boot, responda que sim; 8. e por fim, perguntar se deseja iniciar a conexo imediatamente.

67

Reveja os conceitos estudados nesta unidade. Faa um resumo geral dos tpicos apresentados.

Aps rever todos os conceitos estudados nesta unidade, responda as questes abaixo: 1. Quais as parties necessrias para a instalao do Linux? 2. Em qual diretrio localizam-se os dados dos usurios do Linux? 3. Pratique os comandos do Terminal vistos nesta unidade. 4. Por que necessrio definirmos uma senha para root depois da instalao do Ubuntu? 5. O que o Synaptic? 6. O que o APT? 7. Como funciona o sistema de permisses do Linux? 8. O que o Wine?

68

CONCLUSO
Ao final desta unidade, podemos observar as facilidades de instalao e utilizao do sistema operacional Linux, principalmente em relao distribuio aqui apresentada, Ubuntu 9.10. Ressaltamos a importncia do gerenciamento de usurios e pacotes de instalaes e atualizaes do sistema.

RESUMO
Na unidade 2 deste guia de estudo, apresentamos o processo de instalao do sistema operacional GNU/Linux, apresentamos a estrutura de diretrios e sistema de arquivos, a utilizao de comandos bsicos por meio do Terminal, a gesto de usurios e grupos de usurios no Ubuntu, o gerenciamento de atualizaes e pacotes de instalao. Apresentamos ainda o processo de obteno de informaes do sistema, o sistema de permisses de acesso a diretrios e arquivos, o processo de configurao de redes locais cabeadas, redes locais sem fio e conexes PPPoE. Demonstramos ainda a possibilidade de utilizao de aplicaes Windows no ambiente Linux e a instalao de pacotes Java para aplicaes desktop, web e para ambientes de desenvolvimento.

NA PRXIMA UNIDADE
Na prxima unidade apresentaremos os recursos de servidores Linux e conceitos mais avanados. Sero demonstradas as configuraes dos servidores Samba e LAMP (Linux+Apache+Mysql+PHP), a utilizao de
69

sistemas de mensagens instantneas e analisadores de discos, a instalao de dispositivos externos e comandos do Terminal a nvel mais avanados. Veremos ainda a instalao e utilizao de sistemas de antivrus, o processo de compactao e descompactao de arquivos. Focaremos os servidores de rede, demonstrado os conceitos para instalao e configurao de um servidor proxy com Squid, a configurao do cache rpido e cache lento do Squid, a restrio de acessos por domnio, palavras, IPs e horrios e o monitoramento de acessos por meio da ferramenta Sarg. Tambm sero apresentados os conceitos para a instalao e configurao de servidores DHCP, FTP e E-mail.

70

Unidade III - Servidores e outros recursos

META
A unidade 3 deste guia de estudos tem como meta apresentar os conceitos intermedirios do sistema operacional GNU/Linux. Sero abordados temas relativos preparao do sistema para trabalhar com vrios tipos de servios aplicados s redes coorporativas.

OBJETIVOS
Esperamos que, aps o estudo desta unidade voc seja capaz de: 1. Configurar um servidor SAMBA; 2. Configurar um servidor LAMP (Linux + Apache + MySql + PHP); 3. Utilizar o sistema de mensagens instantneas do Ubuntu; 4. Utilizar ferramentas de anlise de utilizao de disco; 5. Instalar dispositivos de sada como impressoras; 6. Instalar e utilizar sistemas de antivrus no Linux; 7. Compactar e descompactar arquivos e diretrios; 8. Configurar um servidor proxy com Squid;

71

9. Criar regras de restrio no servidor proxy Squid; 10. Monitorar o servidor proxy atravs do Sarg; 11. Configurar um servidor DHCP; 12. Configurar um servidor FTP; 13. Configurar um servidor de email.

PR-REQUISITOS
Para o perfeito acompanhamento desta unidade, o aluno dever ter assimilado os conceitos apresentados nas unidades 1 e 2, conhecer os conceitos bsicos de servios de rede, conhecer os conceitos bsicos de instalao e atualizao de drivers, compreender o funcionamento de sistemas de antivrus, entender os conceitos de servidor web, servidor de banco de dados, proxy, cache, domnio, protocolo TCP/IP, servio de DHCP, FTP e email.

72

3.1 SERVIDOR DE ARQUIVOS COM O SAMBA


O Samba um software servidor para Linux e outros sistemas operacionais baseados em Unix. O Samba utiliza o protocolo SMB e seu objetivo permitir que um computador que utiliza sistema operacional Linux possa compartilhar arquivos e impressoras com estaes de trabalho no Linux, Windows por exemplo. A utilizao do Samba pode ser muito til no meio corporativo tendo em vista o elevado custo de licenas de sistemas operacionais servidores como o Windows Server. Com a utilizao do Samba, mesmo que as estaes de trabalho sejam Windows, podemos utilizar o Linux como servidor de arquivos e impresso. O Samba compatvel com praticamente todas as verses do Windows, utiliza um sistema de comunicao altamente seguro e proporciona diversas opes de configurao de acesso.

Ento vamos l, vamos configurar o servidor Samba para nossa rede.

A primeira coisa a ser feita verificar a minha rede, para isto, pint em algum computador da sua rede, isto pode ser feito por meio do Terminal, utilizando o comando ping e o nmero do IP que voc deseja pingar. Verifique tambm o seu acesso a Internet, pois possivelmente iremos precisar da rede para baixar atualizaes. Aps verificar os requisitos de rede acima, acesse o seu Linux com usurio root. Em seguida abra o Terminal e digite o comando para instalao do Samba: apt get install samba4
73

Se o Samba no estiver instalado no seu sistema operacional sero realizados os downloads necessrios instalao e a instalao acontecer de forma automtica. Aps a instalao do Samba, o sistema ir criar o arquivo smb.conf dentro da pasta /etc/samba/. Este arquivo responsvel pela configurao de todo o servio. Abra o arquivo smb.conf localizado na pasta indicada acima e registre nele as configuraes abaixo:

Em [global] #nome do grupo de trabalho workgroup = escritorio #Como a mquina Linux ir aparecer na rede Windows netbios name = servidor (est linha pode ser adicionada a baixo do workgroup)

####### Authentication ####### #Modo de acesso aos arquivos do Linux security = "share" ou "user" (caso exista, remova o # que est no incio desta linha) #share = para NO exigir autenticao #user = para exigir autenticao ex: security = user

Agora adicione estas linhas no final do arquivo: #nome do compartilhamento [arquivos] # descrio do compartilhamento
74

comment = meus arquivos

# caminho da pasta, no Linux, que ser compartilhada path = /home/voce #(Informe o caminho da pasta que voc quer compartilhar, pode ser /home/voce) #se todos os compartilhamentos podero ser acessados por todos os usurios public = yes # se o compartilhamento ser visivel ou oculto na rede (yes para visvel) browseable = yes # se permitir escrita writable = yes

# somente leitura read only = no

# define a mascara em que os arquivos sero criados create mask = 0700 #(tero a permisso rwx somente para o root)

# define a mascara em que os diretrios sero criados directory mask = 0700

Salve o arquivo de configurao, e execute este comando para reiniciar o samba $ sudo /etc/inti.d/samba restart

Caso tenha colocado security = user, no momento que for acessar por uma mquina Windows ser exibido uma tela de login e senha. Para cadastrar esta senha no Linux execute os seguintes comandos.

Primeiramente adiciona na lista de usuarios do Linux

75

este comando adiciona usurio teste na lista de usurios do Linux $ sudo adduser teste este comando adiciona o usurio na lista de usurios do Samba $ sudo smbpasswd -a teste

Reveja os passos para a configurao do Samba.

3.2 LAMP LINUX + APACHE + MYSQL + PHP


A Internet baseia seus recursos em pginas Web. No incio as pginas eram consideradas estticas,pois utilizam apenas recursos de HTML, posteriormente foram acrescentados recursos de scripts CGIs. A base para a hospedagem de sites na Internet so softwares como o APACHE, que so servidores Web responsveis pela disponibilizao de pginas na Internet. As linguagens de scripts ganharam seu espao entre elas, surge ento o PHP, uma linguagem de programao que rodas suas aplicaes do lado do servidor, devolvendo ao cliente o resultado de seu processamento no formato HTML. Alm da execuo de scripts PHP hoje em dia e extremamente recomendvel que pginas web acessem bancos de dados, tais como cadastros de clientes, fornecedores e outros. Um dos bancos de dados mais utilizados na internet o MySQL, popular pela sua robustez e gratuidade. Com este conceito surge o LAMP Linux + Apache + MySQL + PHP, um pacote que disponibiliza os recursos necessrios para hospedagem de pginas web dinmicas no seu Linux.

76

O Apache se responsabiliza pelo acesso as pginas, o MySQL se responsabiliza pelos bancos de dados do seu sistema e o PHP interpreta e executa os scripts PHPs de suas pginas. Para iniciarmos a instalao do LAMP log no sistema com usuario root, informando a sua devida senha. Faremos a instalao dos pacotes em separado para que voc possa entender melhor todo o processo de instalao.

Vamos configurar o LAMP em nossa rede.

Abra o Terminal e digite o comando abaixo: sudo apt-get install apache2 Isto ir baixar os pacotes e instalar o apache no seu Linux. Em seguida iremos instalar o PHP utilizando o comando abaixo: sudo apt-get install php5 libapache2-mod-php5 Em seguida iremos startar o apache com o comando sudo /etc/init.d/apache2 restart A partir deste ponto j podemos realizar alguns testes com hospedagens locais de pginas web estticas (html) e pginas dinmicas (php). Teste a disponibilidade do seu servidor, para isto abra o seu navegador de internet (Fire Fox) ou outro de sua preferncia e digite nele o endereo de localhost (http://127.0.0.1)

77

A tela a seguir dever ser exibida, indicando que o servidor apache est rodando:

Vamos testar agora a hospedagem de pginas estticas (html). Clique no menu Aplicativos / Acessrios / Editor de textos gedit No gedit crie uma pgina html simples com o cdigo abaixo:

<html> <title>Teste de Servidores Web</title> <body> Meu primeiro teste com Apache no Linux
78

</body> </html> Salve o arquivo com o nome teste.html na pasta: /var/www Aps salvar o arquivo no diretrio correto, abra novamente o seu navegador web e digite o endereo: http://127.0.0.1/teste.html O resultado abaixo dever ser apresentado:

Faamos agora um teste com pginas dinmicas (php), abra novamente o editor de texto e crie um novo arquivo com o cdigo abaixo: <html> <title>Teste de Servidores Web com PHP</title> <body> <?php $myString = "Hello Word!"; echo $myString;
79

echo " Meu teste com PHP funcionou perfeitamente!"; ?> </body> </html> Em seguida salve o arquivo no mesmo diretrio com o nome de teste2.php. Abra novamente o seu navegador de internet e acesse o endereo:
http://127.0.0.1/teste2.php

O resultado abaixo dever ser exibido.

3.3 MENSAGENS INSTANTNEAS NO UBUNTU


A instalao do Ubuntu 9.10 traz o aplicativo Empathy, para acess-lo clique nome menu Aplicativos / Internet / Cliente de Mensagens Instantneas Empathy.

80

Ao acessar o aplicativo pela primeira vez voc dever informar a conta de usurio e senha ou escolher uma das opes disponveis, conforme a imagem abaixo:

O aplicativo Empathy nos permite acessar sistemas de mensagens instantneas como MSN, Google Talk, AIM e outros. Se voc j possui uma conta em um destes servios, escolha a primeira opo Sim, eu digitarei os detalhes da minha conta agora e clique em Avanar. Na opo Qual tipo de conta de bate-papo voc possui? escolha em qual servio voc deseja se conectar, informe em seguida a sua ID de usurio e senha. Feito isto clique no boto Aplicar.

81

A sua lista de contatos ser automaticamente capturada e voc poder iniciar sua conversa.

3.4 ANALISADOR DE UTILIZAO DO DISCO


A instalao do Ubuntu traz o aplicativo Analisador de Utilizao de Disco. O aplicativo nos proporciona uma viso geral da capacidade de armazenamento e espao utilizado nos disco, fornecendo informaes detalhadas de pastas.
82

3.5 INSTALANDO IMPRESSORAS


A instalao do Ubuntu traz uma vasta relao de drivers de impressora. O processo de instalao bastante simples, clique no menu Sistema / Administrao / Impresso:

Clique em Nova Impressora e escolha a forma de conexo:

83

Escolha o drive para a sua impressora:

Por fim nomeia e indique informaes adicionais da impressora:

84

3.6 MAIS COMANDOS


Na unidade 1 desta apostila, vimos alguns comandos bsicos que podem ser utilizados pelo Terminal, veremos agora mais alguns comandos que podem facilitar o dia a dia do administrador Linux. Estes comandos tambm devem ser utilizados pelo Terminal. Desligar o PC shutdown -n now init 0 halt Reiniciar o PC reboot shutdown -r now init 6
85

Listar processos ps -aux Matar processo kill -9 <nmero do processo> Compactar arquivo zip <nome do arqivo> Descompactar arquivo unzip <nome do arquivo> Descompactar arquivo .tar.gz tar -xzvf <arquivo>.tar.gz Testar conexo de rede ping <ip_do_PC> Configurar IP ifconfig eth0<IP_host>netmask<mscara_da_rede>up Visualizar dispositivos PCIs lspci Limpar a tela clear Visualizar calendrio cal Ver data atual e hora date

Antes de iniciar reveja os conceitos j estudados na unidade 3.

86

3.7 PANDA ANTIVRUS NO LINUX


O Panda Antivrus uma soluo free voltada para o ambiente Linux. Seu objetivo escanear estaes de trabalho conectadas aos servidores Linux e o prprio servidor Linux. Para iniciar a instalao, baixe o arquivo .tgz do endereo abaixo:
http://www.pandasoftware.com/download/Linux/Linux.asp

Copie para a pasta root o arquivo pavcl_Linux_i386.tgz, para isto utilize o comando: sudo mv pavcl_Linux_i386.tgz / Faa a descompactao do arquivo utilizando o comando: tar xvfz pavcl_Linux_i386.tgz A descompactao ir criar a estrutura de diretrios necessrios para o funcionamento do antivrus. A sintaxe de utilizao do antivrus :
pavcl [caminho] -parmetro1 -parmetro2 ... -parmetroN

Exemplo: pavcl /mnt/DOS -aex -clv

87

As tabelas abaixo identificam alguns parmetros que podem ser utilizados com o Panda:

88

3.8 COMPACTANDO E DESCOMPACTANDO ARQUIVOS


Normalmente precisamos transportar diversos arquivos de um local para outro, seja por meio de alguma mdia removvel (cds, pen-drives,etc.) ou seja pela prpria Internet. O transporte de vrios arquivos se faz de forma mais fcil se todos os arquivos estiverem compactados em um arquivo nico. Isto nos traz facilidade para localizao dos arquivos transportados e tambm pela reduo do tamanho. Vrios formatos de compactao so disponveis, o que diferencia uma da outra basicamente o algoritmo de compactao utilizado por cada um. Dentre os principais formatos podemos citar: zip, rar, rar, tar.gz e 7z. Para habilitarmos a extrao e compactao em alguns formatos, pode ser necessrio a instalao de pacotes pelo Synaptic. Acesse o Synaptic em Sistema / Administrao / Gerenciador de Pacotes Synaptic e instale os pacotes rar, unrar e p7zip. Se preferir poder fazer a instalao por meio do Terminal, digitando o comando: sudo aptitude install rar unrar p7zip Para compactar arquivos, abra o diretrio onde se encontram os arquivos a serem compactados, selecione os arquivos, e clique com o boto direito do mouse e escolha a opo comprimir, conforme demonstrados nas figuras abaixo:

89

90

3.9 CONFIGURANDO UM SERVIDOR PROXY COM SQUID


Para que voc configure adequadamente o servidor proxy Squid, necessrio que esteja locado como root.

Um servidor proxy um software que realiza o compartilhamento de Internet com outras estaes de trabalho de sua rede. Alm de realizar o compartilhamento do acesso ele nos permite gerar controles de acesso e cache de pginas acessadas. Com o controle de acesso podemos definir o que os nossos usurios podero acessar na Internet, gerando filtros de pacotes que autorizam ou negam o acesso a determinadas pginas. Com o cache de pginas podemos armazenar as pginas visitadas pelos usurios, desta forma, toda vez que um usurio tenta acessar uma pgina j visitada, o sistema no busca a pgina na Internet e sim no servidor de proxy, com isto ganhamos em desempenho da rede. O primeiro passo instalar os pacotes do Squid, para isto, abra o Terminal e utilize o comando abaixo: sudo aptitude install squid squid-common Posteriormente faa uma checagem para verificar se o pacote foi istalado corretamente: sudo dpkg -l | grep squid Aqui voc visualizar informaes do seu pacote Squid. Acesse agora o diretrio de configuraes bsicas do Squid, ele se encontra em /etc/squid/

91

O arquivo de configurao do squid squid.conf, faa uma cpia de segurana deste arquivo, pois no caso de alguma configurao errada, voc poder restaur-la e voltar as configuraes iniciais do sistema. Aps ter feito a cpia de segurana, d um clique duplo sobre o arquivo para que voc possa editar neles as configuraes do seu servidor proxy. O Gedit ir abrir o arquivo e exibir o contedo conforme a figura abaixo:

Limpe todo o contedo do arquivo squid.conf, pois iremos comear a configurao do mesmo a partir do zero. Alguns aplicativos para configurao de proxy podem ser baixados da Internet, dentre eles o mais utilizado o Webmin, no entanto vamos estudar os conceitos da configurao manual, sem a ajuda de nenhum aplicativo especfico. Posteriormente, quando voc j conhecer os conceitos bsicos da configurao de um servidor proxy, voc ter mais facilidade em trabalhar com este tipo de aplicativo. Abra o arquico squid.conf, nele vamos adicionar as linhas abaixo: http_port 3128 visible_hostname servidor
92

acl all src 0.0.0.0 / 0.0.0.0 http_access allow all Estas configuraes so suficientes para o inicio do funcionamento do Squid, vejamos agora o que significa cada linha.

http_port 3128 define a porta onde o squid ir funcionar visible_hostname servidor define o nome do computador onde o servidor proxy est sendo configurado. No caso de dvida entre no Terminal e digite o comando hostname, voc dever utilizar o nome retornado pelo comando. acl all src 0.0.0.0 / 0.0.0.0 e http_access allow all Estas duas linhas criam uma acl (acl uma poltica de acesso) chamada all todos, incluindo todos os endereos Ips possveis, ou seja, esta poltica de segurana permite que qualquer IP acesse o servidor proxy. Para que voc possa testar as configuraes do Squid preciso reiniciar o servio, para isto utilize o comando: /etc/init.d/squid restart

Aps reiniciar o servio, voc ver uma tela como apresentada na figura abaixo:

93

Para saber se o servidor proxy est funcionando, vamos configurar no navegador de Internet, no meu caso o Fire Fox para buscar pginas em um servidor proxy. Como vou realizar os testes na mquina em que eu estou configurando o proxy, o endereo do proxy que vou utilizar ser 127.0.0.1 porta 3128. Para iniciar esta configurao abra o Fire Fox clique em Editar / Preferncias / Avanado, clique no boto configurar conexo, marque a opo Configurao manual de proxy, no campo HTTP preencha 127.0.0.1 Porta 3128. Marque a opo Usar este proxy para todos os protocolos, conforme demonstrado na figura abaixo:

94

Aps configurar o proxy no navegaro de Internet faa o seguinte teste: tente acessar qualquer pgina e veja o que acontece:

95

Veja o que est acontecendo. No foi possvel abrir a pgina que solicitamos. Isto bom ou ruim? Na verdade isto timo! sinal que nosso servidor proxy est funcionando corretamente. O que acontece que no definimos ainda quais pginas podero ser acessadas, desta forma o servio bloqueia todas as pginas. Uma configurao de proxy to simples pode gerar problemas de segurana, neste caso, por exemplo, qualquer micro poder acessar o seu proxy. Passamos ento a melhorar um pouco mais nossas configuraes. Edite novamente o arquivo squid.conf com o contedo abaixo:

96

http_port 3128 visible_hostname servidor acl all src 0.0.0.0/0.0.0.0 acl manager proto cache_object acl localhost src 127.0.0.1/255.255.255.255 acl SSL_ports port 443 563 acl Safe_ports port 21 80 443 563 70 210 280 488 59 777 901 1025-65535 acl purge method PURGE acl CONNECT method CONNECT http_access allow manager localhost http_access deny manager http_access allow purge localhost http_access deny purge http_access deny !Safe_ports http_access deny CONNECT !SSL_ports acl redelocal src 192.168.0.0/24 http_access allow localhost http_access allow redelocal http_access deny all

Vamos entender nossas configuraes agora: As acl's SSL_ports e Safe_ports indicam quais as portas podem ser acessadas pelo proxy. A acl localhost tem o endereo 127.0.0.1 que libera o acesso para a sua mquina local, ou seja utilizando recursos do localhost. A acl redelocal identifica os micros da rede que tero acesso ao servidor proxy.
97

As trs ltimas linhas identificam que libera o acesso (http_access allow) para micros pertencentes ao grupo localhost e redelocal e nega o acesso (http_access deny all) para os demais micros que tentem acessar o servio. Depois de aplicar estas alteraes, reinicie o servio para que todas as configuraes sejam ativadas. Para reiniciar o servio v para o Terminal e digite o comando: /etc/init.d/squid restart Teste as novas configuraes, acesse o navegador e tente abrir alguma pgina na Internet.

Reveja os conceitos estudados at aqui. Para assimilar tudo da melhor forma, faa e refaa vrias vezes.

3.10 CACHE DO SQUID


Neste ponto, se voc seguiu todos os passos acima corretamente, a pgina da Internet dever abrir normalmente. Um dos pontos mais importantes da utilizao de um servidor proxy a utilizao de cache para armazenamento dos contedos acessados. O cache pode diminuir o trfego da rede, assim como agilizar todo o processo de navegao. Basicamente, existem duas formas de cache no Squid, o cache em memria RAM, normalmente utilizado para armazenar pginas e o cache em HD, mais comumente utilizado para armazenamento de arquivos como downloads.

98

O cache da RAM um cache menor, tendo em vista que a memria RAM deve ser ocupada por outros dispositivos e recursos, j o cache do HD pode ser maior, tendo em vista a alta capacidade de armazenamento dos discos rgidos. Por consequncia, o cache da RAM conhecido como cache rpido e o cache do HD conhecido por cache lento, a deduo para isto evidente, o acesso as informaes da memria RAM vrias vezes mais veloz do que o acesso as informaes do disco rgido. A definio da quantidade de memria RAM a ser utilizada pelo cache rpido gerada pelo comando cache_men. Por exemplo, se voc quiser reservar 64 Mb da memria RAM para o cache rpido, insira o comando abaixo no arquivo squid.conf cache_mem 64 MB Basicamente voc poder reservar 64 MB em um servidor que atende apenas as mquinas de uma pequena rede e no caso de um servidor dedicado reserve um tero da memria total da mquina. Depois de definirmos a quantidade de memria RAM reservada para o cache rpido devemos identificar o tamanho mximo dos arquivos que sero armazenados neste cache. Como a memria RAM limitada, devemos limitar tambm o tamanho dos arquivos que iro para este cache. Se voc quiser que o cache rpido armazene arquivos de no mximo 64 Kb, insira a linha abaixo: maximum_object_size in_memory 64 KB Posteriormente, devemos indicar o tamanho mximo dos arquivos que sero armazenados no cache lento, ou seja, no cache do HD. Se voc quiser que o tamanho mximo destes arquivos sejam por exemplo, 512 MB, insira as linhas abaixos: maximum_object_size 512 MB
99

minimum_object_size 0 Mb possvel ainda configurar um limite de utilizao do cach. Desta forma, sempre que o cache atingir o limite previamente configurado ele comea a descartar os arquivos mais antigos, liberando assim espao. Por exemplo, imagine que voc queira que toda vez que o cache em disco atingir 95% de sua capacidade ele elimine os arquivos mais antigos at atingir um limite de 90%. Para isto insira as linhas abaixo: cache_swap_low 90 cache_swap_high 95 Posteriormente deveremos configurar o diretrio de destino do cache em disco, assim como a sua capacidade de armazenamento. Para isto insira no arquivo a linha; cache_dir ufs /var/spool/squid/ 2048 16 256 A linha acima indica que o cache em disco ser armazenado na pasta /var/spool/squi/, o tamanho mximo de armazenamento de 2048 MB. A capacidade de armazenamento pode ser alterada de acordo com a sua disponibilidade e necessidade. Lembre-se que quanto maior o espao destina ao cache, mais tempos os arquivos ficaro armazenados. Os valores 16 e 256 indicam respectivamente a quantidade de subpastas que sero criadas dentro do diretrio de cache. O prximo passo definir o local de armazenamento do arquivo de logs de acesso. Para isto insira a linha abaixo: cache_access-log /var/log/squid/access.log Posteriormente, voc dever configurar o tempo em que o servidor proxy ir chegar os arquivos armazenados para verificar se houve ou no alteraes. O primeiro valor (15) indica que depois de 15 minutos sempre que

100

for acessado o arquivo ser checado, o terceiro valor (2280 equivalente a 2 dias) indica que este arquivo sempre ser checado. Insira estas configuraes atravs das linhas abaixo: refresh_pattern ^fpt: 15 20% 2280 refresh_pattern ^gopher: 15 20% 2280 refresh_pattern . 15 20% 2280 Depois de adicionadas todas as configuraes, verifique o contedo do arquivo de configurao: http_port 3128 visible_hostname servidor cache_mem 64 MB maximum_object_size_in_memory 64 KB maximum_object_size 512 MB minimum_object_size 0 KB cache_swap_low 90 cache_swap_high 95 cache_dir ufs /var/spool/squid 2048 16 256 cache_access_log /var/log/squid/access.log refresh_pattern ^ftp: 15 20% 2280 refresh_pattern ^gopher: 15 0% 2280 refresh_pattern . 15 20% 2280 acl all src 0.0.0.0/0.0.0.0 acl manager proto cache_object acl localhost src 127.0.0.1/255.255.255.255 acl SSL_ports port 443 563 acl Safe_ports port 21 80 443 563 70 210 280 488 59 777 901 102565535

101

acl purge method PURGE acl CONNECT method CONNECT http_access allow manager localhost http_access deny manager http_access allow purge localhost http_access deny purge http_access deny !Safe_ports http_access deny CONNECT !SSL_ports acl redelocal src 192.168.0.0/24 http_access allow localhost http_access allow redelocal http_access deny all

Lembre-se as configuraes apresentadas nesta unidade necessitam do acesso como super-usurio. Log no Linux como root.

3.11 RESTRINGINDO O ACESSO POR DOMNIO


Um papel importante dos servidores proxy limitar o acesso a pginas especficas, isto sem dvidas um recurso muito til para o meio coorporativo. Imagine que o seu chefe no vai querer que os funcionrios da sua empresa acessem sites como orkut, facebook e outros. possvel bloquearmos o acesso por domnios ou por palavras. Vejamos como funciona a restrio por domnios: Por meio da construo de ACLs possvel criar regras que bloqueiam e liberam a acesso a determinados sites. Esta ao deve ser executada em duas etapas: primeiro voc cria as regras ACLs, definindo os
102

endereos e em seguida utiliza o parmetro http_access para bloquear o liberar os endereos especificados na regra. acl bloqueados dstdomain orkut.com http_access deny bloqueados No exemplo acima, bloqueados o nome da regra criada e orkut.com o endereo referenciado pela regra. Em seguida o parmetro http_access deny indica que o site referenciado pela regra bloqueados no poder ser executado. Basicamente podemos criar quantas regras acl's forem necessrias desde que cada uma delas tenha um nome especfico. A partir do domnio definido na regra, o Squid bloqueia todos os subdomnios, por exemplo se bloquessemos o o endereo subdomnio

www.computador.com.br,

automaticamente

www.notebook.computador.com.br estaria bloqueado. Uma importante observao sobre o bloqueio por domnios que se bloquearmos o domnio orkut.com o endereo provavelmente ainda poderia ser acessado pelo endereo www.orkut.com, desta forma devemos nos atentar para este detalhe. Em uma regra de bloqueio por domnio, podemos definir quantos domnios forem necessrios, veja o exemplo abaixo: acl bloqeuado dstdomains orkut.com www.orkut.com

www.facebook.com http_access deny bloqueados A relao dos domnios a serem bloqueados devem ser escritas em uma mesma linha.

103

No caso de desejarmos inserir uma relao extensa de domnios para o bloqueio, podemos inserir os endereos em um arquivo externo, isto com certeza ir facilitar nosso controle. Crie um arquivo texto com a relao dos endereos a serem bloqueados, neste caso cada endereo em uma linha, conforme abaixo: orkut.com
www.orkut.com

facebook.com
www.facebook.com www.globo.com www.terra.com.br

terra.com.br Na construo da regra da acl voc ir referenciar o arquivo que contm os endereos a serem bloqueados, conforme as linhas abaixo: acl bloqueados url_regex -i /etc/squid/bloqueados http_access deny bloqueados Neste caso, etc/squid/bloqueados o arquivo que contm os endereos a serem bloqueados. Poderamos realizar o efeito contrrio com esta regra, ou seja, invs de bloquearmos determinados site, podemos liberar apenas alguns sites e bloquear todos os demais. Crie agora um arquivo onde iremos definir alguns sites que tero acesso permitido, tais como:
www.unis.edu.br 104

www.sabe.br

Salve o arquivo com o nome de permitidos no endereo /etc/squid/permitidos Desta vez, a regra seria o contrrio, vamos liberar os endereos definidos no arquivo e em seguida bloquear os demais: acl permitidos url_reg -i /etc/squid/peritidos http_access allow permitidos http_access deny all Ou seja, aqui estamos liberando (allow) os enderos listados no arquivos permitidos e estamos bloqueando todos os outros (deny all).

3.12 RESTRINGINDO O ACESSO POR IP


possvel ainda bloquear um endereo pelo IP do servidor, isto pode ser til no caso de servidores sem domnios registrados e em caso de servidores que respondem por vrios domnios: Para descobrir o IP de um determinado domnio, entre no Terminal e digite o comando host dominio, conforme o exemplo abaixo: host www.google.com.br

105

Montando o bloqueio por IP nossa regra ficaria assim: acl ips_bloqueados dst 200.234.21.23 http_access deny ips_bloqueados Observando novamente o nosso cdigo por completo teremos: http_port 3128 visible_hostname servidor error_directory /usr/share/squid/errors/Portuguese/ cache_mem 64 MB maximum_object_size_in_memory 64 KB maximum_object_size 512 MB minimum_object_size 0 KB cache_swap_low 90 cache_swap_high 95 cache_dir ufs /var/spool/squid 2048 16 256 cache_access_log /var/log/squid/access.log refresh_pattern ^ftp: 15 20% 2280
106

refresh_pattern ^gopher: 15 0% 2280 refresh_pattern . 15 20% 2280 acl all src 0.0.0.0/0.0.0.0 acl manager proto cache_object acl localhost src 127.0.0.1/255.255.255.255 acl SSL_ports port 443 563 acl Safe_ports port 21 80 443 563 70 210 280 488 59 777 901 102565535 acl purge method PURGE acl CONNECT method CONNECT http_access allow manager localhost http_access deny manager http_access allow purge localhost http_access deny purge http_access deny !Safe_ports http_access deny CONNECT !SSL_ports acl bloqueados url_regex -i "/etc/squid/bloqueados" http_access deny bloqueados acl redelocal src 192.168.0.0/24 http_access allow localhost http_access allow redelocal http_access deny all

3.13 RESTRINGINDO O ACESSO POR PALAVRAS NA URL


Com a ajuda do Squid, possvel restringir o acesso a algum site com base no contedo das palavras de sua URL, para isto devemos utilizar o parmetro dstdom_regex, atente-se para o fato que este parmetro restringe o acesso com base em palavras da URL e no do contedo do site. Crie um arquivo contendo as palavras que sero bloqueadas, conforme listadas abaixo:
107

orkut globo sexo playboy Posteriormente adicione a regra abaixo referenciando o arquivo criado: alc palavrasproibidas dstdom_regex /etc/squid/palavrasproibidas http_access deny palavrasproibidas Cuidado com a utilizao deste tipo de regra, pois ela pode acabar bloqueando sites que no eram pra ser bloqueados, bastando apenas que o endereo do site apresente as palavras listadas no arquivo de restries.

Por padro as mensagens de erro aparecem em ingls, mas podem ser configuradas com o parmetro: "error_directory /usr/share/squid/errors/Portuguese/" possvel ainda personalizar as pginas de erro, configurando-as na pasta "/usr/share/squid/errors/Portuguese" ou "/usr/share/squid/errors/English"
108

3.14 BLOQUEANDO O ACESSO POR HORRIO


Ainda possvel criar regras para bloqueio de acesso por horrios especficos por exemplo, imagine que voc queira bloquear o acesso de seus usurios das 0:00 hs s 06:00 hs e das 12:00 hs s 14:00 hs, para isto basta inserir a regra abaixo: acl madrugada time 00:00-06:00 http_access deny madrugada acl almoco time 12:00-14:00 http_access deny almoco Caso queria o contrrio, ao invs de bloquear o acesso no horrio do almoo, voc deseja liberar o acesso, para isto insira a regra: acl almoco time 12:00-14:00 http_access allow almoco Poderamos ainda combinar as regras de horrios com a regra de domnios, permitindo assim que os usurios acessassem o orkut, por exemplo, no horrio do almoo: acl almoco time 12:00-14:00 acl orkut dstdomain orkut.com www.orkut.com http_access allow orkut almoco http_access deny orkut

Antes de prosseguir, reveja os conceitos do Squid.

3.15 MONITORAMENTO DE ACESSO COM SARG


O Sarg funciona como um monitor de logs do Squid, toda vez que ele executado ele cria um conjunto de pginas que fornecem um relatrio completo sobre os acessos do seu servidor proxy.
109

Com ele voc poder acompanhar as pginas que esto sendo acessadas. Veja um exemplo de relatrio do Sarg:

Para instalar o Sarg digite no Terminal o comando: apt-get install sarg Depois que o Sarg estiver devidamente instalado, chame o comando no Terminal toda vez que quiser atualizar o relatrio, para isto utilize o comando: sarg As configuraes do Sarg podem ser configuradas no arquivo etc/squid/sarg.conf Por padro, as sadas de relatrios do Sarg so armazenadas na pasta /var/www/squid-reports, desta forma tendo o apache rodando

normalmente, podemos acessar os relatrios pelo navegador de Internet, acessando o endereo: http://localhost/squid-reports
110

As duas configuraes mais importantes do Sarg so: output_dir var/www/squid-reports

Que indica o destino dos relatrios do Sarg e access_log /var/log/squid/access.log Que indica a localizao do arquivo de log do Squid. Veja abaixo algumas telas do Sarg:

3.16 CONFIGURANDO UM SERVIDOR DHCP


Muitas vezes poder ser necessrio configurarmos um servidor de DHCP para a nossa rede, basicamente ele ir fornecer um endereo IP para os clientes da rede, evitando assim que tenhamos que fornecer um IP esttico para cada mquina da rede.

111

Antes de iniciarmos a configurao do servidor de DHCP precisamos observar os tpicos abaixo: 1. Sua mquina precisa de um IP configurado na mesma faixa de

Ips especificada na configurao do servidor. 2. 3. 4. 5. O IP do gateway precisa existir preciso que haja um IP de DNS vlido O endereo de broadcast deve ser vlido O endereo de netmask deve ser vlido Crie um arquivo de configurao vazio utilizando o comando abaixo: sudo gedit /etc/dhcp3/dhcpd.conf O contedo do arquivo dever ser o contedo abaixo: ddns-update-style none; #para ele funcionar corretamente authoritative; ##A sua Subrede subnet 192.168.254.0 netmask 255.255.255.0 { ##faixa de ips que ele vai distribuir de 1 at 200 range 192.168.254.1 192.168.254.200; ##servidor de DNS option domain-name-servers 200.165.132.155; ##Gateway option routers 192.168.254.254; ##Endereo de broadcast option broadcast-address 192.168.254.255; default-lease-time 600; max-lease-time 7200; }
112

Aps editar o arquivo de configurao salve-o e start o DHCP com o comando abaixo: sudo /etc/init.d/dhcp3-server restart

3.17 CONFIGURANDO UM SERVIDOR DE FTP


O FTP um servio de transmisso de arquivos pela internet, muito utilizado nos dias de hoje. No Linux, o FTP mais utilizado o Proftpd, disponvel em praticamente todas as distribuies. O servio de FTP aceita conexes remotas utilizando o login dos usurios cadastrados no servidor. O processo de instalao do Proftpd bastante simples, para instal-lo abra o Terminal e digite o comando abaixo: sudo apt-get install profdpd Utilizando este comando, os pacotes necessrios sero baixados e o processo de instalao ter incio. Durante a instalao do sistema ir perguntar se voc deseja deixar o servidor de FTP trabalhando em modo standalone ou em modo ineted. O modo standalone mais seguro e mais rpido; j o modo ineted faz com que ele fique ativo apenas quando for acessado, o que pode gerar gargalho na conexo. Escolha a opo standalone, que a mais recomendada. Logo que voc encerrar a instalao, o servio ser iniciado automaticamente, ficar ativo, mas caso ocorra algum problema ele pode ser iniciado pelo comando: sugo /etc/init.d/proftp start

113

Para testar se o servio est ok voc tem duas opes, a primeira seria utilizar um cliente FTP, como o FileZila, ou acesse o navegador e digite o endereo: ftp://servidor (lembrando que servidor o nome do computador) ou ftp://localhost ou ftp://127.0.0.1 Aps acessar o endereo ser solicitado a autenticao de usurio e senha, conforme a tela abaixo:

Aps logar corretamente, voc poder visualizar pelo navegador o contedo da pasta local do usurio logado, conforme apresentado abaixo:

114

configurao

do

Proftpd

pode

ser

feita

no

arquivo

/etc/proftpd/proftpd.conf. Lembre-se de que a cada alterao na configurao do servidor de FTP, voc dever reiniciar o servio para ativas as novas configuraes, para isto, no Terminal digite o comando: sudo /etc/init.d/proftp restart Vejamos algumas das principais configuraes do servidor de FTP: Uma importante configurao a definio da porta em que o servidor ir atuar no arquivo de configurao procure por: Port 21

A porta 21 a porta padro para servidores ftp, no caso de precisar voc poder alter-la para por exemplo: Port 2121

Mas em princpio, no existe a necessidade desta alterao.

115

Se voc alterar a porta do FTP de 21 para 2121, o cliente dever informar a porta quando tentar se conectar ao servio. Podemos tambm configurar a opo Maxclients, que limita o nmero de clientes simultneos conectados ao servidor FTP, por padro est opo vem configura com 30, ou seja, possvel que at 30 clientes se conectem simultaneamente ao servidor. Para limitar o acesso dos clientes em seu diretrio home insira no final do arquivo o comando: DefaultRoot ~ O caracter ~ funciona como um curinga que identifica o diretrio home do usurio logado. Para definir um limite de banda para os usurios utilize o comando: TransferRate RETR: 8:10 Onde 8 pode ser substitudo pela taxa de transferncia desejada em KB/s por usurio. Num primeiro momento apenas os usurios cadastrados podero acessar o ftp, no entanto possvel autorizarmos o acesso de usurio annimos, para isto acrescente as linhas abaixo no arquivo de configurao: <Anonymous ~ftp> User ftp Group nogroup UserAlias anonymous ftp DirFakeUser on ftp DirFakeGroup on ftp RequireValidShell off MaxClients 20 DisplayLogin welcome.msg DisplayFirstChdir .message
116

<Directory *> <Limit WRITE> DenyAll </Limit> </Directory> <Directory incoming> Umask 022 022 <Limit READ WRITE> DenyAll </Limit> <Limit STOR> AllowAll </Limit> </Directory> </Anonymous> O comando MaxClients define o nmero mximo de clientes annimos que podero acessar o servio simultaneamente, esta definio separada do nmero de clientes com login vlidos. Com isto possvel definir um nmero de clientes vlidos e um nmero diferente de clientes annimos. DisplayLogin welcome.msg define a mensagem de boas vindas emitida pelo servidor quando o usurio logar, o contedo exibido ser o contedo do arquivo home/ftp/welcome.msg. Por padro os usurios annimos tm acesso apenas ao contedo da pasta /home/ftp que identificado pelo software cliente de ftp como o raz, impossibilitando assim que os usurios alterem outros arquivos do sistema. Directory Incoming cria a pasta de upload dos usurios annimos em /home/ftp/incoming.

117

Para acessar o sevio de ftp como usurio annimo, o usurio dever informar login anonymous ou ftp e a senha dever ser um endereo de email qualquer. Faa alguns testes: Crie outros usurios no sistema e tente acessar o ftp via browser log com os usurios cadastrados e ver que cada login direciona voc para a pasta home especfica de cada usurio.

No prossiga sem antes rever os conceitos anteriores.

3.18 CONFIGURANDO XMAIL


O Xmail um servidor de email simples de ser configurado que pode ser utilizado com qualquer distribuio Linux. Ele atua como um servidor de email completo, dando suporte a SMTP e POP. Tambm vale ressaltar que as contas de usurios de email do Xmail nada tm haver com as contas dos usurios do sistema operacional, tornando assim o seu sistema mais protegido. Vamos iniciar ento o processo de instalao do Xmail: Lembre-se durante todo o processo de instalao e configurao do Xmail necessrio possuir poderes de super-usurio, por isso, log com o usurio root. Abra o Terminal e digite o comando abaixo para verificar as atualizaes do seu sistema: apt-get update Para baixar e instalar o xmail digite o comando abaixo:
118

apt-get instal xmail Durante a instalao, algumas perguntas sero feitas aceite as respostas padres para prosseguir.

119

120

Aps as definies iniciais, voc precisa startar o servidor, para isto, pelo Terminal digitem o comando abaixo: /etc/init.d/xmail start Devemos agora realizar as configuraes do xmail. Vamos l! Os arquivos de configurao do xmail ficam localizados na pasta /etc/xmail/ Localize o arquivo /etc/xmail/ctrlaccounts.tab Este arquivo contm o login e senha do administrador do servidor, por exemplo: admin <tab> enc-passwd

O arquivo domains.tab armazena os domnios virtuais do servidor, por exemplo: localhost seu.servidor.com.br O arquivo mailusers.tab contem o registro dos usurios cadastrados no servidor, por exemplo: host<tab>usuario<tab>enc-passwrd<tab>id conta<tab>diretorio da conta<tab>tipo de conta<newline> At aqui o servidor Xmail est instalado e configurado, no entanto, podemos utilizar um aplicativo chamado PHPXMAIL como front-end de acesso as configuraes do Xmail. da

121

3.19 PHPXMAIL COMO FRONT-END DO XMAIL


Antes de iniciarmos a instalao e configurao do PHPXMAIL, vamos verificar se o servidor XMAIL est funcionando corretamente. Para isto digite no Terminal o comando abaixo: telnet localhost 110 A mensagem abaixo dever ser exibida:

Pressione <CTRL>+C para sair do telnet. Depois teste a porta 25 com o comando abaixo: telnet localhost 25 A mensagem abaixo dever aparecer:

122

Se os resultados forem diferentes dos resultados apresentados nas 2 telas anteriores refaa o processo de instalao do xmail. Vamos agora baixar a instalao do PHPXMAIL, para isto acesse o endereo abaixo:
https://sourceforge.net/project/downloading.php? group_id=32103&use_mirror=ufpr&filename=phpxmail1.4.zip&7951383

Salve o arquivo na pasta /var/www, o diretrio Web do Ubuntu. Depois de copiar o cdigo descompacte o arquivo. Para descompactar o arquivo pelo Terminal digite o comando: unzip phpxmail1.4.zip -d /var/www Se tudo der certo, a pasta phpxmail ser criada dentro da pasta /var/www. Antes de iniciar as configuraes voc precisa mudar as permisses de acesso desta pasta e de seus arquivos, d permisses de escrita. Agora acesse o navegador web e digite o endereo:
http://localhost/phpxmail

Caso tudo esteja funcionando bem, voc ver a tela inicial do phpxmail, conforme a imagem abaixo:
123

Preencha os dados solicitados como abaixo: Server hostname: localhost Server ip address: 127.0.0.1 Server port: 6017 CTRL account: admin CTRL password: admin Se tudo der certo voc ver a mensagem abaixo: Server localhost was added successfully Agora precisamos configurar o Xmail para atender ao PHPXMAIL, para fazer isto, diremos ao Xmail quem o seu administrador e qual a sua senha. Os dados esto no arquivo /var/www/phpxmail/servers.php L encontraremos a seguinte linha: localhost 127.0.0.1 6017 admin 0401080c0b 0

124

O que nos impor aqui so a quarta e quinta colunas (admin 0401080c0b) Devemos ento inserir esta informao no arquivo

/etc/xmail/ctrlaccounts.tab, o arquivo dever ficar assim: admin 0401080c0b

Obs: o espao entre admin e 0401080c0b um <tab> Volte agora para o navegaro, no endereo http://localhost/phpxmail clique em login informe usuario: admin, senha: admin. Se der tudo certo a mensagem abaixo aparecer:

Logged in as Server admin admin on localhost

125

Agora que voc j est logado no PHPXMAIL, clique no menu Server domains para criar um novo domnio, em seguida, clique em new domain, para dar a possibilidade de criar um domnio virtual:

126

Preencha os campos da seguinte forma: Domain Name: exemplo.com.br Postmaster password: admin Depois de clicar em submit o domnio exemplo ser criado, a confirmao aparecer como a tela abaixo:

127

Para adicionar usurios ao domnio, clique no menu servers domain e clique sobre o dominio criado, no nosso caso exemplo.com.br Clique em new user para adicionar um novo usurio ao domnio.

Informe o nome de usurio e senha:

Desta forma, nosso servidor de email XMAIL est rodando e devidamente configurado no Linux, alm dele temos tambm o front-end PHPEXMAIL funcionando corretamente.
128

3.20 SITES PARA LEITURAS SOBRE LINUX


www.ubuntu-br.org Www.vivaoLinux.com.br br-Linux.org www.Linux.org www.Linux.com Www.clubedohardware.com.br www.conectiva.com.br Www.debian.org Www.Kernel.org Www.Linuxmall.com.br Www.ubuntu.com Www.bigLinux.com.br Www.Linux-magazine.com.br Www.redhat.com Www.Linuxfoundation.org Www.noticiasLinux.com.br Www.li.org Www.Linuxjournal.com Www.slackware.com

129

Reveja os conceitos estudados nesta unidade. Faa um resumo geral dos tpicos apresentados.

Aps rever todos os conceitos estudados nesta unidade, responda as questes abaixo: 1. Explique o que o Samba. 2. Explique o que o LAMP. 3. O que faz o comando shutdown -r now? 4. Explique o que o Squid. 5. No Squid, o que fazem os comandos http_access aloow e http_access deny? 6. No Squid, explique o que o cache rpido e o que o cache lento? 7. Explique o que faz a configurao abaixo: acl liberados url_regex -i /etc/squid/liberados http_access deny liberados 8. Monte uma acl para liberar o acesso do site (www.bbb.globo.com) apenas de 120:00hs 13:00hs. 9. O que o Sarg? 10. Na configurao de um servidor DHCP, explique o que faz a linha abaixo: range 192.168.254.1 192.168.254.100; 11. O que faz o Maxclients na configurao de um FTP? 12. Explique e diferencie o XMAIL do PHPXMAIL.

130

CONCLUSO
Com o estudo desta unidade, podemos concluir as vantagens da utilizao do sistema operacional GNU/Linux. Ele apresenta uma srie de recursos relacionados servios de rede, tais como servidores de arquivos e impresso, proxy, DHCP, email, entre outros. Procuramos demonstrar os recursos e servios mais utilizados, especialmente aos recursos destinados aos servios de rede. Procuramos demonstrar com exemplos prticos, o funcionamento de cada recurso abordado assim como procuramos demonstrar por meio de imagens os processos de instalao e configurao de tais servios.

RESUMO
Na unidade trs deste guia de estudos, demonstramos os principais servios destinados a servidores Linux. Apresentamos a instalao e configurao do servidor Samba, capaz de interagir e compartilhar arquivos e impressoras em redes constitudas de diferentes sistemas operacionais. Apresentamos o conceito do LAMP, instalando e configurando o servidor web Apache, o servidor de banco de dados MySql e o interpretador PHP, preparando assim nosso servidor para operar em um ambiente web, permitindo que o mesmo disponibilize pginas web estticas e pginas web dinmicas com acesso a banco de dados. Demonstramos a utilizao de alguns recursos do Ubuntu, como a ferramenta de mensagens instantneas capaz de se conectar a diversos servios como msn e outros similares; a ferramenta de anlise de utilizao de discos, que demonstra de forma grfica o nvel de utilizao dos discos, pastas e arquivos. Demonstramos alguns comandos mais avanados que podem ser utilizado pelo Terminal. Apresentamos a instalao e configurao
131

do antivrus Panda, como forma de proteger os dados armazenados no servido de ataques indesejados de cdigos maliciosos. Demonstramos o processo de compactao e descompactao de arquivos e diretrios, assim como o processo de instalao de impressoras. Apresentamos a configurao do servidor proxy Squid, demonstrando os controle de acesso por domnio, palavras, IPs e horrio. Apresentamos a ferramenta Sarg, capaz de gerar relatrios para monitoramento de acessos do servidor proxy. Por fim, apresentamos a configurao dos servidores de DHCP, FTP e E-mail. Para a configurao do servidor de E-mail, utilizamos o XMAIL e o front-end PHPXMAIL.

REFERNCIAS BIBLIOGRFICAS
KUROSE, JAMES F. REDES DE COMPUTADORES E A INTERNET: UMA ABORDAGEM TOP-DOWN. 3. ED. SAO PAULO. MORIMOTO, CARLOS E. LINUX, GUIA PRTICO. SO PAULO: GDH PRESS, 2009. MORIMOTO, CARLOS E. KURUMIN 7, GUIA PRTICO. SO PAULO: GDH PRESS, 2007. MORIMOTO, CARLOS E. LINUX FERRAMENTAS TCNICAS, GUIA PRTICO. SO PAULO: GDH PRESS, 2006. MORIMOTO, CARLOS E. LINUX ENTENDENDO O SISTEMA, GUIA PRTICO. SO PAULO: GDH PRESS, 2006. MORIMOTO, CARLOS E. LINUX REDES PAULO: GDH PRESS, 2006. PALMA, LUCIANO. TCP/IP: GUIA DE CONSULTA RAPIDA. NOVATEC, PEARSON ADDISON WESLEY, 2006. SOARES, LUIZ FERNANDO GOMES. REDES DE COMPUTADORES. 2. ED. RJ: CAMPUS, 1995. TANENBAUM, ANDREW S. REDES DE COMPUTADORES. 3. ED. RJ: CAMPUS, 1997.
132
E

SERVIDORES, GUIA PRTICO. SO

ANEXO
Manifesto GNU (Fonte: http://www.Gnu.org/Gnu/manifesto.pt-br.html) Copyright (C) 1985, 1993 Free Software Foundation, Inc. A cpia fiel e a distribuio deste artigo completo permitida em qualquer meio, desde que esta nota seja preservada e o distribuidor garanta aos recipientes permisso para nova redistribuio como permitido por esta nota. No podem ser feitas verses modificadas. O Manifesto GNU (que segue abaixo) foi escrito por Richard Stallman no incio do Projeto GNU, para pedir por participao e ajuda. Durante os primeiros anos ele sofreu pequenas atualizaes para registrar desenvolvimentos, mas agora achamos melhor mant-lo inalterado, j que a maioria das pessoas j viu o manifesto antes.

Desde aquele tempo, ns aprendemos sobre certos mal-entendidos frequentes que uma escolha diferente de palavras poderia ter ajudado a evitar. Notas de rodap adicionadas em 1993 ajudam a clarear esses pontos.

Para informaes atualizadas sobre o software GNU disponvel, por favor veja a informao disponvel no nosso servidor web, em especial nossa lista de software. O Que o GNU? Gnu No Unix! Tradues do Manifesto GNU Manifesto esto disponveis em Alemo, Coreano (1, 2), Francs, Italiano, Japons, Russo, and Sueco. GNU, que significa Gnu No Unix, o nome para um sistema de software completo e compatvel com o Unix, que eu estou escrevendo para que possa
133

fornec-lo gratuitamente para todos os que possam utiliz-lo. (1) Vrios outros voluntrios esto me ajudando. Contribuies de tempo, dinheiro, programas e equipamentos so bastante necessrias. At o momento, ns temos um editor de textos Emacs com Lisp para a escrita de comandos do editor, um depurador de cdigo-fonte, um gerador de compiladores compatvel com o yacc, um linkeditor e em torno de 35 utilitrios. Um Shell (interpretador de comandos) est quase completo. Um novo compilador C otimizador portvel j compilou a si mesmo e dever ser liberado este ano. Um Kernel inicial existe mas muitos recursos ainda so necessrios para emular o Unix. Quando o Kernel e o compilador estiverem finalizados, ser possvel distribuir um sistema GNU adequado para o desenvolvimento de novos programas. Ns usaremos o TeX como nosso formatador de textos, mas estamos trabalhando em um nroff. Ns tambm usaremos o X Window System, que livre e portvel. Depois disso, adicionaremos um Common Lisp portvel, um jogo do Imprio, uma planilha eletrnica, e centenas de outras coisas, alm de documentao on-line. Ns esperamos fornecer, eventualmente, tudo de til que normalmente vem com um sistema Unix, e ainda mais. GNU ser capaz de rodar programas do Unix, mas no ser idntico ao Unix. Faremos todos os aperfeioamentos que forem convenientes baseados em nossa experincia com outros sistemas operacionais. Em particular, planejamos adicionar nomes de arquivos longos, nmeros de verso de arquivos, um sistema de arquivos prova de falhas, auto-gerao de nomes de arquivos, talvez, suporte de vdeo independente do terminal, e talvez um sistema de janelas baseado no Lisp atravz do qual vrios programas Lisp e programas Unix comuns possam compartilhar uma tela. Tanto C quanto Lisp estaro disponveis como linguagens de programao de sistemas. Ns tentaremos suportar UUCP, MIT Chaosnet, e protocolos da Internet para comunicao. GNU inicialmente orientado para mquinas do classe 68000/16000 com memria virtual, porque essas so as mquinas mais fceis de suportar. O
134

esforo extra par faz-lo rodar em mquinas menores ser deixado para algum que deseje utiliz-lo nelas. Para evitar uma confuso horrvel, por favor, pronuncie a letra "G" na palavra "GNU" quando ela for o nome deste projeto.

Por que eu Tenho que Escrever o GNU

Eu acredito que a regra de ouro exige que, se eu gosto de um programa, eu devo compartilh-lo com outras pessoas que gostam dele. Vendedores de Software querem dividir os usurios e conquist-los, fazendo com que cada usurio concorde em no compartilhar com os outros. Eu me recuso a quebrar a solidariedade com os outros usurios deste modo. Eu no posso, com a conscincia limpa, assinar um termo de compromisso de nodivulgao de informaes ou um contrato de licena de software. Por anos eu trabalhei no Laboratrio de Inteligncia Artificial do MIT para resistir a estas tendncias e outras animosidades, mas eventualmente elas foram longe demais: eu no podia permanecer em uma instituio onde tais coisas eram feitas a mim contra a minha vontade. Portanto, de modo que eu possa continuar a usar computadores sem desonra, eu decidi juntar uma quantidade de software suficiente para que eu possa continuar sem nenhum software que no seja livre. Eu me demiti do Laboratrio de IA para impedir que o MIT tenha qualquer desculpa legal para me impedir de fornecer o GNU livremente.

Por que o GNU ser Compatvel com o Unix

Unix no o meu sistema ideal, mas ele no to ruim. Os recursos essenciais do Unix parecem ser bons recursos, e eu penso que eu posso fornecer o que falta no Unix sem compromet-lo. E um sistema compatvel com o Unix seria conveniente para muitas pessoas adotarem.

Como o GNU Estar Disponvel 135

GNU no est no domnio pblico. Qualquer um ter permisso para modificar e redistribuir o GNU, mas nenhum distribuidor ter permisso para restringir a sua nova redistribuio. Ou seja, no ser permitida nenhuma modificao proprietria (18k characters). Eu quero ter certeza de que todas as verses do GNU permanecero livres.

Por que Muitos Outros Programadores Desejam Ajudar

Eu encontrei muitos outros programadores que esto excitados quanto ao GNU e querem ajudar. Muitos programadores esto descontentes quanto comercializao de software de sistema. Ela pode traz-los dinheiro, mas ela requer que eles se considerem em conflito com outros programadores de maneira geral em vez de consider-los como camaradas. O ato fundamental da amizade entre programadores o compartilhamento de programas; acordos comerciais usados hoje em dia tipicamente probem programadores de se tratarem uns aos outros como amigos. O comprador de software tem que escolher entre a amizade ou obedecer lei. Naturalmente, muitos decidem que a amizade mais importante. Mas aqueles que acreditam na lei frequentemente no se sentem vontade com nenhuma das escolhas. Eles se tornam cnicos e passam a considerar que a programao apenas uma maneira de ganhar dinheiro. Trabalhando com e usando o GNU em vez de programas proprietrios, ns podemos ser hospitaleiros para todos e obedecer a lei. Alm disso, GNU serve como um exemplo para inspirar e um chamariz para trazer outros para se juntarem a ns e compartilhar programas. Isto pode nos dar um sentimento de harmonia que impossvel se ns usarmos software que no seja livre. Para aproximadamente metade dos programadores com quem eu falo, esta uma importante alegria que dinheiro no pode substituir.

Como Voc Pode Contribuir

136

Eu estou pedindo aos fabricantes de computadores por doaes de mquinas e dinheiro. Eu estou pedindo s pessoas por doaes de programas e de trabalho. Uma consequncia que voc pode esperar se voc doar mquinas que o GNU ir rodar nelas mais cedo. As mquinas devem ser sistemas completos, prontos para uso, e aprovadas para utilizao em reas residenciais, e no devem necessitar de sistemas sofisticados de refrigerao ou energia. Eu encontrei muitos programadores dispostos a contribuir em tempo parcial com o GNU. Para a maioria dos projetos, este trabalho distribudo em tempo parcial seria bem difcil de coordenar; as partes escritas independentes uma das outras no funcionariam juntas. Mas para a tarefa em particular de substituir o Unix, este problema no existe. Um sistema Unix completo contm centenas de programas utilitrios, cada um documentado

separadamente. A maioria das especificaes de interface garantidas pela compatibilidade com o Unix. Se cada contribuidor puder escrever um substituto compatvel para um nico utilitrio do Unix, e conseguir que ele trabalhe corretamente no lugar do original em um sistema Unix, ento estes utilitrios iro funcionar corretamente quando colocados juntos. Mesmo contanto que a Lei de Murphy crie alguns problemas inesperados, juntar estes componentes ser um trabalho vivel. (O Kernel ir necessitar comunicao mais prxima e ser trabalhado por um grupo pequeno e coeso.) Se eu receber doaes de dinheiro, eu poderei contratar algumas pessoas em tempo integral ou parcial. O salrio no ser alto para os padres da indstria, mas eu estou procurando por pessoas para as quais construir um esprito de comunidade seja to importante quanto ganhar dinheiro. Eu vejo esta como uma maneira de habilitar pessoas dedicadas a focar as suas energias totalmente no trabalho no GNU, sem que elas necessitem de uma outra maneira de ganhar a vida.

Por que Todos os Usurios de Computadores Sero Beneficiados

137

Uma vez que o GNU esteja pronto, todos podero obter um bom software de sistema gratuitamente, assim como o ar. (2) Isto significa muito mais do que simplesmente que todos economizaro o valor de uma licena do Unix. Isto significa que muita duplicao de programao de sistemas ser evitada. Este esforo poder ser utilizado em avanar o estado-da-arte. O cdigo-fonte completo do sistema estar disponvel para todos. Como resultado, um usurio que necessite de modificaes no sistema ser sempre livre para realiz-las ele mesmo, ou para contratar qualquer programador disponvel ou empresa para realiz-las. Os usurios no estaro mais merc do programador ou empresa que dono das fontes e o nico que pode realizar mudanas. Escolas podero fornecer um ambiente educacional muito mais produtivo encorajando todos os estudantes a estudar e aperfeioar o cdigo do sistema. O Laboratrio de Computadores de Harvard tinha como poltica no instalar nenhum programa se as suas fontes no estivessem disponveis ao pblico, e esta posio foi sustentada quando o laboratrio se recusou a instalar certos programas. Eu fui bastante inspirado por eles. Finalmente, o overhead de localizar o dono do software de sistema e o que se pode ou no se pode fazer com ele ser aliviado. Contratos que fazem as pessoas pagar pelo uso de um programa, incluindo o licenciamento de cpias, sempre traz um custo tremendo para a sociedade devido aos mecanismos obscuros necessrios para se determinar quanto (ou seja, por quais programas) uma pessoa tem que pagar. E somente a polcia do estado tem poder para fazer com que todos obedeam a esses mecanismos. Imagine uma estao espacial onde o ar tem que ser fabricado a um custo muito alto: cobrar cada "respirador" por cada inspirao pode ser justo, mas usar a mscara de gs com o medidor todo dia e toda noite seria intolervel, mesmo para os que pudessem pagar a taxa do ar. E presena de cmeras de TV por todo lado para verificar se algum tirar a mscara ultrajante.

138

melhor manter a fbrica de ar com uma taxa por pessoa e eliminar as mscaras. Copiar todo ou parte de um programa to natural para um programador quanto respirar, e to produtivo quanto. Isto tem que ser livre.

Algumas Objees Facilmente Refutadas aos Objetivos do GNU "Ningum vai utiliz-lo se for gratuito, porque isto significa que no se pode contar com nenhum suporte." "Voc tem que cobrar pelo programa para pagar pelo suporte." Se as pessoas puderem em vez disso pagar pelo GNU mais pelos servios em vez de obter o GNU sem o servio, uma empresa cujo objetivo seja somente fornecer servios para as pessoas que obtiveram o GNU gratuitamente ser rentvel. (3) Ns temos que diferenciar entre o suporte na forma de verdadeiro trabalho de programao e simples ajuda. O primeiro algo que ningum pode realmente contar em receber do vendedor de software. Se o seu problema no o mesmo de muitas outras pessoas, o vendedor ir ignor-lo. Se o seu negcio necessita contar com suporte, a nica garantia ter todas as fontes e ferramentas necessrias. Ento voc pode contratar qualquer pessoa disponvel para resolver o seu problema; voc no depende de nenhum indivduo. Com o Unix, o preo das fontes coloca isto fora de questo para a maioria das empresas. Com GNU seria fcil. Ainda possvel que no haja uma pessoa competente em disponibilidade, mas este problema no ser causado por contratos de distribuio. GNU no elimina todos os problemas do mundo, somente alguns deles. Enquanto isso, o usurio que no sabe nada sobre computadores, necessita de ajuda: fazer coisas para eles que eles poderiam facilmente fazer eles mesmos, mas eles no sabem como. Este tipo de servio poderia ser fornecido por empresas que vendem somente servios de ajuda e reparos. Se for verdade que os usurios preferem gastar
139

dinheiro e obter o produto com servio, eles tambm estaro dispostos comprar o servio tendo obtido o produto de graa. As empresas de servios iro competir em preo e qualidade, enquanto que os usurios no estaro amarrados a nenhuma delas em particular. Enquanto isso, os usurios que no necessitam do servio podero usar o programa sem ter que pagar pelo servio. "Voc no pode atingir muitas pessoas sem propaganda, e voc tem que cobrar pelo programa para pagar por isso". "No tem sentido anunciar um programa que as pessoas podem pegar de graa". Existem vrias formas de publicidade gratuita ou muito baratas que podem ser usadas para informar os usurios de computadores sobre algo como o GNU. Mas pode ser verdade que ns atingiramos mais usurios de computadores com propaganda. Se isto for verdade, uma empresa que anuncia o servio de copiar e enviar GNU por uma taxa ser bem-sucedido o suficiente para pagar pelos seus anncios e mais. Desta forma, somente os usurios que se beneficiam dos anncios pagam por eles. Pelo outro lado, se muitas pessoas copiarem o GNU dos seus amigos, e tais empresas no tiverem sucesso, isto mostra que a propaganda no era realmente necessria para popularizar o GNU. Porque os advogados do mercado livre no deixam o mercado decidir quanto a isso? (4) "Minha empresa necessita de um sistema operacional proprietrio para obter uma vantagem competitiva." O GNU ir remover o sistema operacional do escopo da competio. Voc no ser capaz de obter uma vantagem nesta rea, mas nenhum dos seus competidores ser capaz. Voc e eles tero que competir em outras reas, e se beneficiaro mutuamente nesta rea. Se o seu negcio vender um sistema operacional, voc no ir gostar do GNU, mas isto problema seu. Se o seu negcio outro, GNU pode poup-lo de ser forado para o negcio caro de vender sistemas operacionais.
140

Eu gostaria de ver o desenvolvimento do GNU suportado por doaes de vrias empresas e usurios, reduzindo o custo para todos. (5) "Os programadores no merecem uma recompensa pela sua

criatividade?" Se alguma coisa realmente merece uma recompensa, a sua contribuio social. Criatividade pode ser uma contribuio social, mas somente na medida em que a sociedade livre para usufruir dos resultados. Se os programadores merecem ser recompensados por criarem programas inovadores, da mesma forma eles merecem ser punidos se eles restringem o uso destes programas. "Um programador no deveria pedir por uma recompensa pela sua criatividade?" No h nada errado em querer pagamento pelo trabalho, ou em procurar maximizar a renda de uma pessoa, desde que no sejam utilizados meios destrutivos. Mas os meios comuns hoje no campo de software so baseados em destruio. Extrair dinheiro dos usurios de um programa restringindo o seu uso destrutivo porque as restries reduzem a quantidade de vezes e de modos em que o programa pode ser utilizado. Isto reduz a quantidade de bem-estar que a humanidade deriva do programa. Quando h uma escolha deliberada em restringir, as consequncias prejudiciais so destruio deliberada. O motivo pelo qual um bom cidado no utiliza tais meios destrutivos para se tornar mais rico porque, se todos fizessem assim, todos ns nos tornaramos mais pobres pela explorao mtua. Isto tica Kantiana, ou a Regra de Ouro. J que eu no gosto das consequncias que resultam se todos restringirem a informao, eu tenho que considerar errado para algum fazer isso. Especificamente, o desejo de ser recompensado pela minha criatividade no justifica privar o mundo em geral de tudo ou parte da minha criatividade. "Os programadores no iro morrer de fome?"

141

Eu poderia responder que ningum forado a ser um programador. A maioria de ns no conseguiria nenhum dinheiro pedindo na rua ou fazendo caretas. Mas ns no estamos como resultado, condenados a passar nossas vidas pedindo na rua, fazendo caretas e passando fome. Ns fazemos outra coisa. Mas esta a resposta errada porque ela aceita a afirmao implcita na questo: que sem a propriedade do software, os programadores no tm como receber um centavo. Supe-se que seja tudo ou nada. O motivo pelo qual os programadores no iro morrer de fome que ainda ser possvel para eles serem pagos para programar; somente no to bem pagos como o so hoje. Restringir a cpia no a nica base para negcios com software. Ela a mais comum porque a que traz mais dinheiro. Se ela fosse proibida, ou rejeitada pelos consumidores, as empresas de software iriam mover suas bases para outras formas de organizao que hoje so utilizadas menos frequentemente. Existem vrias formas de se organizar qualquer tipo de negcios. Provavelmente a programao no ser to lucrativa nas novas bases como ela agora. Mas este no um argumento contra a mudana. No considerada uma injustia que caixas de lojas tenham os salrios que eles tm hoje. Se com os programadores acontecer o mesmo, tambm no ser uma injustia. (Na prtica eles ainda ganhariam consideravelmente mais do que os caixas.)

"As pessoas no tem o direito de controlar como a sua criatividade utilizada?" "Controle sobre o uso das ideias" na verdade, controle sobre as vidas das pessoas; e isto em geral torna as vidas das pessoas mais difceis. As pessoas que estudaram a questo da propriedade intelectual

cuidadosamente (como os advogados), dizem que no existe direito


142

intrnseco sobre a propriedade intelectual. Os tipos de suposta propriedade intelectual que o governo reconhece foram criados por atos especficos de legislao para propsitos especficos. Por exemplo, o sistema de patentes foi criado para encorajar inventores a divulgarem os detalhes de suas invenes. Seu propsito foi de ajudar sociedade e no os inventores. Naquela poca, o tempo de vida de 17 anos de uma patente era curto, comparado com a taxa de avanos no estado-da-arte. Como patentes so um problema somente entre fabricantes, para os quais o custo e o esforo de um contrato de licena so pequenos se comparados com o custo de se montar uma fbrica, a patente no causou muito prejuzo. Elas no obstruram a maioria das pessoas que utilizavam produtos patenteados. A ideia de copyright no existia nos tempos antigos, quando os autores frequentemente copiavam outros autores extensamente em trabalhos de nofico. Esta prtica era til, e era a nica maneira pela qual o trabalho de muitos autores poderia ter sobrevivido pelo menos em parte. O sistema de copyright foi criado expressamente com o propsito de encorajar a autoria. No domnio para a qual ele foi inventado - livros que s podiam ser copiados economicamente apenas pela prensa de uma grfica - ele causou poucos danos, e no obstruiu a maioria das pessoas que liam os livros. Todos os direitos de propriedade intelectual so apenas licenas concedidas pela sociedade porque se pensava, corretamente ou no, que a sociedade como um todo se beneficiaria da concesso. Mas, em qualquer situao em particular, temos que perguntar: ns estamos realmente melhor concedendo esta licena? Que tipo de atos ns estamos autorizando uma pessoa a cometer? A situao dos programas hoje bastante diferente daquela dos livros um sculo atrs. O fato de que o modo mais fcil de copiar um programa de um vizinho para o outro, o fato de que um programa tem tanto cdigo fonte quanto cdigo objeto que so distintos, e o fato de que um programa utilizado em vez de lido e apreciado, se combinam para criar uma situao em que uma pessoa que faz valer um copyright, est prejudicando a
143

sociedade como um todo, tanto material quanto espiritualmente; esta pessoa no deveria fazer isso apesar ou mesmo que a lei permita que ela faa. "Competio faz com que as coisas sejam feitas melhor." O paradigma da competio uma corrida: recompensando o vencedor, ns encorajamos todos a correr mais rpido. Quando o capitalismo realmente funciona deste modo, ele faz um bom trabalho; mas os defensores esto errados em assumir que as coisas sempre funcionam desta forma. Se os corredores se esquecem do porque a recompensa ser oferecida e buscarem vencer, no importa como, eles podem encontrar outras estratgias - como, por exemplo, atacar os outros corredores. Se os corredores se envolverem em uma luta corpo-a-corpo, todos eles chegaro mais tarde. Software proprietrio e secreto o equivalente moral aos corredores em uma luta corpo-a-corpo. triste dizer, mas o nico juiz que ns conseguimos no parece se opor s lutas; ele somente as regula ("para cada 10 metros, voc pode disparar um tiro"). Ele na verdade deveria encerrar com as lutas, e penalizar os corredores que tentarem lutar. "No iro todos parar de programar sem um incentivo monetrio?" Na verdade, muitas pessoas iro programar sem absolutamente nenhum incentivo monetrio. A programao exerce uma fascinao incrvel para algumas pessoas, geralmente as pessoas que so melhores nisso. No h falta de msicos profissionais que se mantm na carreira mesmo quando no h esperana de se ganhar a vida desta forma. Mas na verdade, esta questo apesar de ser feita frequentemente, no adequada para a situao. No se deixar de pagar para os programadores, apenas se pagar menos. Ento a questo : algum ir programar com um incentivo monetrio reduzido? Minha experincia mostra que sim. Por mais de 10 anos, muitos dos melhores programadores do mundo trabalharam no Laboratrio de Inteligncia Artificial do MIT por menos dinheiro que eles poderiam receber em qualquer outro lugar. Eles receberam vrios tipos de recompensas no-financeiras: fama e reconhecimento, por
144

exemplo. E criatividade tambm um entretenimento, uma recompensa em si mesma. Ento a maioria deles saiu quando recebeu uma chance de fazer o mesmo trabalho interessante recebendo bastante dinheiro. Os fatos mostram que as pessoas iro programar por outros motivos alm de ficarem ricas; mas se for dada uma chance para alm disso ganharem muito dinheiro, elas iro aceitar e pedir por isso. Organizaes que pagam pouco se comparam fracamente com organizaes que pagam bem, mas elas no tm que realizar seu trabalho de maneira ruim se as organizaes que pagam bem forem banidas. "Ns necessitamos de programadores desesperadamente. Se eles exigem que ns paremos de ajudar nossos semelhantes, ns temos que obedecer." Voc nunca est to desesperado que voc tenha que atender a este tipo de exigncia. Lembre-se: milhes para a defesa, mas nenhum centavo como tributo! "Os programadores tem que ganhar a vida de algum jeito." Avaliando superficialmente, isto verdade. Entretanto, existem muitas maneiras pelas quais um programador pode ganhar a vida sem vender o direito de uso de um programa. Este modo comum hoje porque ele traz aos programadores e aos homens de negcios o mximo em dinheiro, no porque o nico modo de se ganhar a vida. fcil encontrar outros modos de ganhar a vida se voc deseja encontr-los. Eis alguns exemplos. Um fabricante lanando um novo computador ir pagar pelo porte do sistema operacional para o novo hardware. A venda de servios de treinamento ajuda, e manuteno tambm poderia empregar os programadores. Pessoas com novas ideias poderiam distribuir programas como freeware, pedindo por doaes de usurios satisfeitos, ou vendendo servios de ajuda
145

[no uso do software]. Eu encontrei pessoas que j trabalham desta forma com sucesso. Usurios com necessidades parecidas podem formar grupos de usurios, e pagar anuidades. O grupo poderia contratar empresas de programao para escrever programas que os membros do grupo desejariam usar. Todos os tipos de desenvolvimento podem ser financiados com um Imposto do Software: Suponha que todos os que compram um computador tenham que pagar X por cento do preo como um imposto do software. O governo daria este dinheiro a uma agncia como a NSF para gastar em desenvolvimento de software. Mas, se um comprador de computadores realizar uma doao para o desenvolvimento de software por conta prpria, ele pode abater esta doao do imposto. Ele pode doar para o projeto que ele escolher - frequentemente escolhido porque ele pretende utilizar os resultados no final. Ele pode ter um crdito por qualquer doao at o total do imposto que ele teria que pagar. O percentual do imposto poderia ser decidido por voto dos pagadores do imposto, proporcionalmente quantidade de dinheiro sobre a qual eles sero taxados.

As consequncias: A comunidade de usurios de computadores suportaria o

desenvolvimento de software. Esta comunidade decidiria qual nvel de suporte necessrio. Usurios preocupados com quais projetos a sua parcela gasta poderiam escolher por eles mesmos. A longo prazo, tornar os programas livres, um passo adiante na direo do mundo ps-escassez, onde ningum ter que trabalhar duro somente para ganhar a vida. As pessoas sero livres para se dedicarem s atividades que so agradveis, como programao, depois de gastar as 10 horas semanais de trabalho obrigatrias em atividades que so necessrias, como legislao,
146

aconselhamento de famlias, reparo de robs e prospeco de asterides. Eles no tero necessidade de ganhar a vida programando. Ns j reduzimos bastante a quantidade de trabalho que a sociedade como um todo tem que realizar para a sua prpria produtividade, mas somente um pouco disso se transformou em lazer para os trabalhadores, porque muita atividade no-produtiva necessria para se acompanhar a atividade produtiva. As principais causas disso so: burocracia e medidas bitoladas contra a competio. O software livre ir reduzir estes desperdcios na rea de produo de software. Ns temos que fazer isso, para que os ganhos tcnicos em produtividade sejam transformados em menos trabalho para ns.

Notas de rodap (1) A escolha de palavras aqui foi descuidada. A inteno era de que ningum teria que pagar pela *permisso* para usar o sistema GNU. Mas as palavras no deixam isso claro, e as pessoas frequentemente interpretam que elas significam que as cpias do GNU tm sempre que serem distribudas gratuitamente ou por um valor simblico. Esta nunca foi a inteno; posteriormente, o manifesto menciona a possibilidade das empresas fornecerem o servio de distribuio objetivando o lucro. Subsequentemente eu aprendi a distinguir cuidadosamente entre "free" no sentido de liberdade e "free" no sentido de preo. O Software Livre (Free Software) o software que os usurios tm a liberdade distribuir e modificar. Alguns usurios podem obter cpias sem custo, enquanto que outros podem pagar para receber cpias - e se a receita ajuda a aperfeioar o software, melhor ainda. O mais
147

importante que qualquer um que tenha uma cpia tenha a liberdade de cooperar com outras pessoas utilizando o software. (2) Este outro lugar onde eu falhei em distinguir entre os dois significados de "free". A afirmao como est escrita no falsa -- voc pode obter cpias do GNU gratuitamente, dos seus amigos ou da Internet. Mas a afirmao sugere a ideia errada. (3) Vrias dessas empresas existem hoje. (4) A Fundao Para o Software Livre levanta a maior parte dos seus fundos do servio de distribuio, apesar dela ser uma instituio de caridade em vez de uma empresa. Se *ningum* escolher obter as cpias comprando da prpria FSF, ela ser incapaz de realizar o seu trabalho. Mas isto no significa que restries proprietrias so justificadas para forar cada usurio a pagar. Se uma pequena frao de todos os usurios fizerem o seu pedido para a FSF, isto ser suficiente para manter a FSF operacional. Por isso ns pedimos aos usurios para nos apoiarem desta forma. Voc fez a sua parte? (5) Um grupo de fabricantes de computadores recentemente ofereceu fundos para a manuteno do Compilador C do GNU.

148