Apostila da disciplina

Transcrição

Apostila da disciplina
-- CURSO TÉCNICO DE INFORMÁTICA -MÓDULO II
SISTEMAS OPERACIONAIS DE REDE
Bem vindo!
Estamos no segundo módulo de nosso curso, na disciplina de Sistemas Operacionais de
Rede, onde iremos estudar os sistemas operacionais voltados para servidores,
objetivando o controle da rede, gerenciamento de usuários, distribuição de cotas de
disco, organização no armazenamento de arquivos, gerenciamento de impressão, entre
muitas outras funções. A disciplina contém 60 horas de duração, divididas em 7
capítulos, como dispostos nesta apostila.
PRÉ-REQUISITOS
É fundamental conhecer os comandos básicos em sistemas Linux como copiar, colar,
mover, renomear, apagar e criar diretórios/arquivos. Ao final desta apostila, há um
apêndice com estes comandos, para consulta. É também de suma importância que
você possua acesso de administrador à máquina utilizada, pois os comandos e ações
realizadas alteram ou interferem diretamente em arquivos cruciais, onde um usuário
comum não poderia operar.
SOFTWARES
A apostila foi produzida com base nos Sistemas Operacionais Linux Debian 6.0, Linux
Ubuntu 9.04 e Windows Server 2003, sendo portanto, os comandos apresentados
voltados a essas versões, podendo, obviamente, sofrer alterações em outras versões.
Bons estudos!
Colégio Tableau – Curso Técnico de Informática – Sistemas Operacionais de Rede
Todos os direitos reservados
2
1.
INTRODUÇÃO
Sistemas operacionais constituem uma camada importante nos ambientes computacionais. Eles
fazem o papel de intercomunicação entre os hardwares e os usuários, através de um ambiente
(quase sempre) gráfico. Num cenário dominado pelas plataformas Windows, Linux e Mac OS,
onde cada sistema traz características marcantes, a preferência esteve, na maior parte do
tempo, dividida entre usuários. Nesta briga intensa e constante, adicionamos os servidores.
Os sistemas operacionais de rede (SOR)
procuram
elevar
experiência
de
operacionais
adicionam
ou
uso
locais
funções
de
estender
dos
a
sistemas
(SOL).
Eles
gerenciamento
para os diversos tipos de serviços onde
é possível ter um servidor, sempre com
intuito de facilitar o compartilhamento
de recursos. Além disso, ainda contém
diversas ferramentas de segurança e correção de erros. Por estes e outros motivos, alguns
usuários experientes tem optado por utilizar um sistema operacional de rede em ambiente
doméstico.
A maioria das plataformas de SOL contém distribuições para servidores. A plataforma Windows
apresenta as distribuições Server 2000, 2003, 2008 e 2012. Seu uso ainda é justificado pela
facilidade do ambiente gráfico e o grande poder de gerenciamento do Active Directory, o qual
estudaremos nos capítulos adiante. A plataforma Linux oferece versões para servidores em
várias distribuições como Debian e SUSE, justificando seu uso na robustez e segurança, mas
dificultando por seu modo texto controlado exclusivamente por comandos via código. E para
Mac OS temos as versões Server identificadas por nomes de felinos (Tiger, Leopard, Puma,
etc), com funcionalidades comuns, mas usado em menor escala por ser considerado um sistema
muito fechado com relação a compatibilidades.
1.1. Ponto a Ponto x Cliente-Servidor
Em ambientes de rede, podemos ter arquiteturas Ponto a Ponto ou Cliente -Servidor. A escolha
do modo de trabalho influencia no custo, desempenho e manutenção da rede como um todo.
Em ambientes Ponto a Ponto (Peer-to-Peer ou P2P), todas as máquinas componentes da rede
contém aplicações de servidor integradas onde elas são interligadas. Isso significa que arquivos
e funções de gerenciamento estarão presentes em todos os computadores. Positivamente,
significa que a estrutura de rede não possui um ponto central, minimizando impactos de
Colégio Tableau – Curso Técnico de Informática – Sistemas Operacionais de Rede
Todos os direitos reservados
3
ataques à rede. Negativamente representa risco de inconsistência e redundância de dados,
além do grande desafio de sincronismo das informações.
Arquiteturas Cliente-Servidor (Client-Server) são as mais utilizadas em sistemas operacionais
de rede, principalmente em ambiente corporativo, onde todas as aplicações ficam em uma
única máquina. As demais máquinas componentes da rede atuam como “cliente” da máquina
principal,
realizando
requisições
para
acessar os
serviços
da
rede.
É uma
arquitetura
centralizadora, de modo a eliminar duplicidade de dados, porém de alto risco por criar uma
dependência quase plena da máquina central.
1.2. Servidores Dedicados x Servidores Não Dedicados
Em arquiteturas Cliente-Servidor, podemos ainda classificar o servidor em dois tipos. Um
servidor não dedicado representa uma maquina da rede executando aplicações de cliente de
modo simultâneo com as aplicações de servidor, isto é, pode ser utilizada por um usuário para
realizar tarefas comuns (como digitação de textos, por exemplo) ao mesmo tempo em que
desempenha as funções de servidor. Servidores não dedicados representam, obviamente, um
grande risco para a segurança e integridade dos dados, uma vez que a máquina não é
logicamente isolada, participando do ambiente de rede como um computador comum.
Já os servidores dedicados contêm exclusivamente aplicações de servidor. Em geral, são
máquinas com estrutura de hardware avançada e isoladas da rede, física e logicamente. É
comum também os servidores dedicados não possuírem mouse ou monitor, driver de CD/DVD
ou USB, permitindo apenas acesso remoto ou em casos extremos acesso físico controlado
(manutenção ou troca de peças, por exemplo).
1.3. Serviços de Rede
Já aprendemos que servidores são máquinas que gerenciam a rede de um modo geral, com a
função de atender os computadores clientes em suas requisições. Uma rede pode ter mais de
um servidor, subordinados ou não, de modo a criar “subgerentes” para partes específicas da
estrutura, remetendo sempre ao objetivo principal de compartilhar recursos. Vejamos alguns
desses recursos e as finalidades do servidor.
1.3.1. Servidor de Arquivos
É
talvez
consistindo
o
tipo
em
mais
uma
comum
máquina
de
com
servidor,
grande
capacidade de armazenamento, de modo a reter
e distribuir arquivos pela rede. O armazenamento
pode ser inclusive para cópias de segurança de
Colégio Tableau – Curso Técnico de Informática – Sistemas Operacionais de Rede
Todos os direitos reservados
4
arquivos contidos localmente nas máquinas cliente. O grande desafio de um servidor de
arquivos é o controle de versão, envolvendo questões gravação e edição simultânea, onde a
solução atual está em softwares comerciais específicos.
1.3.2. Servidor de Aplicação
Como o nome sugere, armazena a instalação de uma aplicação, por exemplo, um software
comercial de controle financeiro ou gestão escolar. Nestes casos, as máquinas clientes podem
possuir uma arquitetura chamada “diskless”, onde não há discos rígidos ou há um com
pouquíssima capacidade, já que estas máquinas irão acessar a aplicação instala da diretamente
no servidor. Geralmente, servidores de aplicação são dedicados a executar especificamente
aquela aplicação, contendo um ambiente preparado e configurado para isso (por exemplo os
servidores Java que contém a JVM - Java Virtual Machine instalada).
1.3.3. Servidor de Banco de Dados
Largamente usado em aplicações comerciais, tem a função de responder às consultas e realizar
cadastros. É importante ressaltar que as máquinas cliente geralmente não acessam diretamente
o banco de dados (em alguns casos, estes estão remotos). Ao invés disso, o acesso é feito pela
própria aplicação (uma tela gráfica), seja por uma interface local ou via web. Haja vista uma
base de dados ser o “coração” de uma aplicação comercial, é comum dele ser “espelhado” para
mais de um servidor, para garantir redundância e alta disponibilidade das informações. Neste
caso, a sincronização entre as várias bases de dados de um sistema é o grande desafio.
A maioria das grandes corporações do setor possuem os chamados SGBD (Sistema Gerenciados
de Banco de Dados), dos quais podemos destacar o Oracle (considerado o maior banco de
dados empresarial do mundo), o MySQL (gratuito e um dos mais populares), o Firebird
(amplamente utilizado no Brasil, Rússia e Europa, compatível com Windows, Linux e Mac OS) e
o SQL Server (desenvolvido pela Microsoft, inicialmente para caixas eletrônicos).
1.3.4. Servidor de Impressão
Uma das grandes aplicações de servidor, trata-se de máquinas espalhadas pela rede conectadas
diretamente a uma impressora. Representa grande economia financeira, pois, desta forma,
podemos ter vários computadores com ac esso impressão, sem necessariamente estarem
ligados fisicamente a uma impressora. As principais plataformas de sistemas operacionais de
rede
possuem ferramentas
para
gerenciar desde
uma simples fila de documentos para
impressão até um controle de cotas de papel por usuário em determinado período de tempo.
Colégio Tableau – Curso Técnico de Informática – Sistemas Operacionais de Rede
Todos os direitos reservados
5
1.3.5. Servidor Web
Também referenciado como um servidor de comunicação, o servidor web pode ter diversas
finalidades, dentre as quais, podemos citar a distribuição de Internet/intranet para as máquinas
cliente, armazenamento de correio eletrônico e hospedagem de páginas web (seja um website
interno ou externo). Pode também hospedar aplicações comerciais em versões web, acessíveis
diretamente pelo navegador da máquina cliente (seja esse acesso interno, por intranet, ou
externo, pela Internet).
Dentre os principais servidores web, destacamos o Apache, servidor gratuito com suporte a
diversas
funcionalidades
(estudaremos
mais
adiante)
e
o
Internet
Information Service,
desenvolvido pela Microsoft para “concorrer” com o Apache. Temos ainda alguns servidores de
aplicação web, como o Web Logic (desenvolvido pela Oracle), o Tomcat, o Glassfish e o JBoss
(ambos para aplicações web em Java).
1.3.6. Servidor de Gerenciamento
Definição genérica para máquinas cujos objetivos é auxiliar na administração e suporte da rede,
através de ferramentas providas pelo próprio sistema operacional de rede ou por softwares
vendidos comercialmente. De um modo geral, a administração é feita com a exibição de dados
estatísticos ou gráficos que mostram tráfego de rede, consumo de disco, usuários ativos,
eventos ou incidentes de rede, estados dos equipamentos, etc.
Gerenciam também a segurança, através de monitoramento das portas, firewalls, antivírus,
acesso e remoto e outros. Entre os exemplos, podemos citar o Nagios (um dos mais populares)
e o MRTG (com geração de gráficos).
Colégio Tableau – Curso Técnico de Informática – Sistemas Operacionais de Rede
Todos os direitos reservados
6
2.
PROCESSAMENTO DE DADOS DISTRIBUÍDOS
O modelo de computação utilizado na maioria dos ambientes de rede, seja doméstico ou
corporativo, é o modelo centralizado onde as tarefas ou requisições das máquinas cliente são
processadas por apenas uma máquina ou estrutura. Este período histórico da informática é
conhecido como a “Era dos mainframes”, em referência aos grandes computadores de alto
poder de processamento, advindos
principalmente
da
empresa
IBM
(International Business Machine).
Ainda há vários mainframes em
operação
por
se
espalhados no mundo,
tratar
relativamente
de
um
simples
e
cenário
pouco
custoso, porém, de grande risco
pela
grande
dependência
da
máquina servidora.
Tempos
depois,
modelos
“computação
ainda
vieram
os
chamados
de
paralela”,
porém
eram centralizados.
Estes
modelos
permitiam acondicionar vários processadores e
memórias (compartilhadas ou não) em único computador, distribuindo, deste modo, a tarefa
entre vários processadores para execução. Mas a dependência ainda continuava, isto é, o
sistema continuava intolerante a falhas.
É proposto então um novo modelo, também paralelo, mas descentralizado. A estrutura consistia
em uma “coleç ão de computadores interligados e independentes operando de modo a aparentar
ser uma única máquina” [TANENBAUM]. Este modelo permitia que a tarefa fosse distribuída e
executada de modo independente em cada núcleo, sem que haja um ponto central. A
computação distribuída apoia-se ainda em outras características como:
 Escalabilidade
Permite
adicionar
um novo
recurso
(equipamento,
software
ou usuário)
mantendo
um
desempenho satisfatório e sem grandes mudanças estruturais.
 Heterogeneidade
Dentro do sistema, encontram-se diversos recursos de diferentes características, operando
perfeitamente como um único sistema.
Colégio Tableau – Curso Técnico de Informática – Sistemas Operacionais de Rede
Todos os direitos reservados
7
 Concorrência
Permite que os diversos recursos compartilhados sejam utilizados por vários processos (por
exemplo, uma tarefa utilizar vários processadores de máquinas distintas).
 Transparência
É uma característica fundamental em sistemas distribuídos e refere -se ao “mascaramento” de
tudo o que acontece internamente durante a execução de tarefas . O objetivo é não apresentar
o funcionamento interno ao usuário, para que o mesmo não perceba que está, de fato, em um
sistema distribuído. Veja abaixo os tipos de transparência que podem ocorrer no sistema.
Um exemplo de sistema distribuído são as antenas de telefonia celular. As células (área de
cobertura loc al) se interligam para formar uma grande camada geográfica, mas para o usuário
é tudo uma coisa só. A mudança de uma célula para outra (celular dentro de um carro em
movimento, por exemplo) é praticamente imperceptível (transparência). Outro exemplo são as
lojas virtuais, onde por trás da tela do website visualizado pelo usuário, têm-se um grande
parque de máquinas dispostas para atender as compras dos milhares de usuários ali presentes
(contudo, isso é totalmente transparente para quem está comprando).
Colégio Tableau – Curso Técnico de Informática – Sistemas Operacionais de Rede
Todos os direitos reservados
8
2.1. Grade Computacional (Grid Computing)
A computação em grade é uma das grandes aplicações para sistemas distribuídos. O objetivo é
explorar o grande poder computacional já existente, por meios das máquinas domésticas de
milhares de usuários, ao invés de produzir novos equipamentos, gerando economia. A ideia
parte
do
princípio
de
que
as
máquinas
domésticas
passam
muito
tempo
ociosas,
“desperdiçando” seu poder de processamento com um simples descanso de tela. A partir de
então, a computação em grade surge como meio de aproveitar esses minutos desperdiçado das
máquinas para realizar outras tarefas em prol comum.
Grandes projetos tem surgido desde então (embora atualmente em menor escala), a maioria
com fundo científico como a decodificação de proteínas (possivelmente uma causa para o
Parkinson e Alzheimer) ou análise de células-tronco. O primeiro grande projeto foi o SETI
(Search for Extraterrestrial Intelligence) onde a tarefa era analisar dados capturados por rádio telescópios para descoberta de comunicação alienígena inteligente. A maioria desses projetos
ainda está ativa, embora grande parte dela não seja persistente, isto é, quando o estudo
terminar ou o objetivo for alcançado, o projeto irá desfazer-se.
O conceito da grade é relativamente simples. Um projeto criado dispõe de uma interface de
conexão
(geralmente
um website
ou software)
para
agrupar as
milhares
de estações
participantes. Uma das modalidades mais populares é acoplar o descanso de tela da máq uina a
um software de grade, de modo que quando este entrar em execução, seu computador estará a
disposição dos servidores da grade. Poucos minutos são o suficiente para uma participação
eficaz na grade, visto que o processamento é “dividido” entre todos que se conectam ao
projeto.
2.2. Nuvem Computacional (Cloud Computing)
A nuvem computacional tem várias frentes de propostas. O projeto inicial foi propost o pela
Google e a ideia era que o armazenamento de arquivos, que é feito em mídias (CD, DVD, pen
drive, etc), passasse a ser feito diretamente na Internet (na ‘nuvem’). Assim teríamos as
planilhas eletrônicas, as fotos, os documentos, as músicas e vídeos, tudo armazenado online e
acessado através de uma conta com usuário e senha. Desde então, o conceito da n uvem
evoluiu, tornando-se mais complexo e desafiador.
Passou a englobar a computação em sua plenitude, isto é, tudo que é feito em um computador,
passaria a ser feito de modo remoto e online. Isto inclui tarefas simples como assistir um vídeo,
instalar programas ou guardar documentos e também tarefas complexas como executar
aplicações ricas em recursos como em um servidor. A estrutura da nuvem computacional foi
concebida para atender 3 modos de interação.
Colégio Tableau – Curso Técnico de Informática – Sistemas Operacionais de Rede
Todos os direitos reservados
9
2.2.1. SaaS (Software as a Service)
Foi a primeira grande interação alcançada com a nuvem, oferecendo softwares como um serviço
e não mais como um produto, seja este serviço pago ou gratuito. O Google Docs foi um
expoente importante nesta categoria ao prover aplicações de escritório (semelha nte ao pacote
Microsoft Office) inteiramente de maneira online, onde o documento fica armazenado na conta
do criador e pode ser compartilhado e editado com múltiplos usuários Outra possibilidade foi o
aluguel de software conforme a demanda, cujo valor de pagamento varia com a porcentagem
de recursos disponível do software em questão.
2.2.2. IaaS (Infrastructure as a Service)
Propõe o uso de infraestrutura computacional como um serviço, onde é possível alugar
maquinários de processamento ao invés de comprá-los. É bastante usado no tocante a
servidores que hospedam grandes aplicações como as bancárias. Aqui entra o armazenamento
de arquivos, onde temos a disposição os chamados “discos virtuais” com capacidades variadas.
Inclui também infraestrutura de rede e tráfego de dados. Serviços gratuitos como o OneDrive
da Microsoft, o Google Drive e o Dropbox são populares no ofereciment o de armazenamento de
arquivos, podendo inclusive oferecer mais capacidade mediante pagamento.
2.2.3. PaaS (Plataform as a Service)
A plataforma refere-se resumidamente ao sistema operacional que utilizamos nas máquinas. O
conceito é oferecer um “sistema operacional online” como um serviço, onde seja possível
instalar softwares ou desenvolver códigos. Nesta frente, o Windows Azure da Microsoft está em
estágios bastante avançados. Em outra abordagem do termo, o PaaS pode englobar toda a
estrutura que temos domesticamente, de modo online, sem preocupações com aquisições de
licenças de software ou aquisições de hardware.
2.3. Clusters
Clusters são coleções de computadores de modo a processar uma tarefa como uma máquina
apenas. Tem um conceito semelhante à grade computacional, porém as máquinas estão
geralmente em um único ambiente e não remotas. O cluster pode ter uma máquina gerente
(como o modelo Beowulf) ou serem baseados em arquitetura ponto-a-ponto. As máquinas
podem ser relativamente simples, com configuração doméstica, que somadas resultam em uma
estrutura
computacional satisfatória
para
certas
tarefas.
Implicitamente,
o
cluster com
máquinas simples pode solucionar um grande problema da computação que é o descarte de
equipamentos considerados obsoletos. O gerenciamento das tarefas e do cluster é feito por
meio de softwares específicos, disponíveis nos principais sistemas operacionais.
Baseados em seus objetivos, um cluster pode ser de 3 tipos.
Colégio Tableau – Curso Técnico de Informática – Sistemas Operacionais de Rede
Todos os direitos reservados
10
2.3.1. Cluster HPC (High Processing Computing)
Tipo bastante comum onde as máquinas são “somadas” de modo a obter um alto desempenho
no processamento de tarefas. A estrutura é simples, baseando-se apenas no aproveitamento do
processador dos computadores com pouco ou nenhum uso de outro componente. É usado em
aplicações pesadas como as científicas, bancárias ou meteorológicas (dados de satélite ou
imagens, por exemplo). Para o gerenciamento, o sistema operacional Microsoft HPC Server
apresenta-se como uma boa solução para resolver problemas complexos como decodificação de
genomas, animação de filmes ou análises financeiras.
Um modelo bastante conhecido de cluster HPC é o Beowulf. Foi utilizado pela NASA para
cálculos científicos de grandes proporções e também para renderização de animações em 3D. O
modelo baseia-se em plataforma Linux e tem como característica utilizar um servidor dedicado
para gerenciamento de todo cluster. Os nós, isto é, as máquinas que compõe o cluster, tem
arquitetura
de
hardware
básica,
comparada
as
máquinas
domésticas,
o que ajudou a
popularizar o modelo.
2.3.2. Cluster HA (High Availability)
A palavra-chave da alta disponibilidade é redundância. A estrutura do cluster é construída de
modo a prover caminhos alternativos caso algum recurso venha a falhar ( failover). Nestes
casos, as aplicações são “transferidas” para outro recurso, a fim de cont inuar o processo. É um
modelo
comumente
utilizado
em
centrais
telefônicas,
serviços
de
correios
e
missões
consideradas críticas, de grande risco ou impacto. É importante notar que não há intervenção
humana nos processos de alta disponibilidade, por exemplo, em uma falha de sistema, o
mesmo aciona o caminho alternativo de modo automático e autônomo. A redundância pode-se
estender para vários dispositivos como fontes de energia, ares -condicionados, links de internet,
etc. A medição da disponibilidade se dá de acordo com o tempo de inatividade (downtime) do
sistema no período de 1 ano, variando na porcentagem apresentada.
Colégio Tableau – Curso Técnico de Informática – Sistemas Operacionais de Rede
Todos os direitos reservados
11
2.3.3. Cluster HS (Horizontal Scaling)
São estruturas construídas de modo a realizar o balanceamento do processamento total, onde o
objetivo é evitar a sobrecarga de uma ou mais máquinas. A tarefa é escalonada para os
servidores por meio de algoritmos especiais.

Round-Robin: São algoritmos circulares, distribuindo as tarefas para o próximo servidor
disponível, de forma sequencial, até que todos estejam ocupados, voltando então ao
primeiro deles.

Least Connections: Redirecionam a tarefa baseado no número de conexões ou
transações ativas de cada servidor. O que estiver atendendo menos processos naquele
determinado momento será o escolhido.

Weighted-Fair: Diferentemente do Least Connections, não considera a quantidade de
requisições atendidas mas sim a carga dos processos e a capacidade de resposta do
servidor. Se um servidor está com 30 transações com tráfego de 100 MB e o outro está
com apenas 2 mas com tráfego de 200 MB, a próxima tarefa será enviada para o
primeiro servidor, por ter uma carga menor (e se este possuir capacidade para
responder mais requisições, é claro).
É
bastante
comum
encontrar
clusters
combinados
entre
alta
disponibilidade
e
balanceamento de carga (HA+HS). O escalamento horizontal serve, nestes casos, como
apoio
para
a
alta
disponibilidade,
visto
que
o
algoritmo
de
escalonamento
provê
uniformidade na realização das tarefas, evitando sobrecarga de alguma máquina es pecífica,
garantindo sua disponibilidade.
Colégio Tableau – Curso Técnico de Informática – Sistemas Operacionais de Rede
Todos os direitos reservados
12
3.
SERVIDORES WEB
Já conhecemos a estrutura da Internet, com suas operações passando por grandes cabos de
dados (backbones). Nosso objeto de estudo agora é o final desses cabos, onde estão os
grandes servidores da Web. São equipamentos dedicados a responder requisições vindas dos
usuários da Web, seja para acessar sites ou serviços, funcionando como hospedeiros para os
arquivos alvo da navegação. Você já parou pra pensar o que acontece nos bastidores da
Internet para que um site apareça em sua tela? Vamos conhecer alguns servidores.

Apache
Tem o nome de Servidor HTTP Apache ou Apache HTTP Server, sendo o servidor Web mais bem
sucedido do mundo. É livre e gratuito, sendo mantido pela Apache Software Foundation,
fundação responsável por outros projetos na Web. É também multiplataforma, sendo suportado
em sistemas Windows, Linux, OS/2 e Novell. Seu nome faz referência a tribo de nativos
americanos Apache, resistente e estratégica em combate, com alusão a robustez e segurança
do servidor. Tem suporte nativo a linguagem PHP, com alto grau de maturidade entre
desenvolvedores, o que justifica em parte sua popularidade.

IIS (Internet Information Service)
Servidor
Web
desenvolvido
e
mantido
pela
Microsoft
Corporation
para
funcionar
nas
distribuições Server da plataforma Windows. Trabalha com isolamento de processos o que
permite que cada aplicação seja executada por um processo diferente, sem interferência
nos
demais. Tem suporte nativo a linguagem ASP (Active Server Pages) e ASP.NET (tecnologia
oriunda da plataforma .NET)

Tomcat
Estende do servidor Apache, desenvolvido e mantido também da Apache Software Foundation
sendo
um módulo
específico
para
processar aplicações
em Java,
endossado
pela
Sun
Microsystems para tecnologias JSP (Java Server Pages). O Tomcat faz parte formalmente do
projeto Jakarta da ASF, destinado a desenvolver e manter softwares livres para a plataforma
Java.

Weblogic
Servidor de aplicações Web proprietário da Oracle Inc. destinado a funcionar em ambientes
corporativos de larga escala e também em nuvens computacionais para aplicações em Java,
sendo atualmente um dos principais servidores para ester mercado.
Colégio Tableau – Curso Técnico de Informática – Sistemas Operacionais de Rede
Todos os direitos reservados
13

JBoss
Outro servidor de aplicações Java gratuito e de código aberto, geralmente com o servidor
Apache Tomcat embutido.

Glashfish
Servidor de aplicações Java também gratuito e de código aberto, “concorrente” do JBoss Server
3.1. Arquiteturas LAMP e WAMP
São as arquiteturas construídas sobre sistemas Linux (L) englobando vários outros serviços
Web. Dentre estes, estão o Apache (A), o servidor Web mais popular do mundo, o MySQL (M),
servidor de banco de dados gratuito bastante popular e o PHP (P), linguagem de programação
Web com grande grau de maturidade. Ainda é possível, embora menos comum, encontrar
servidores com o MariaDB, uma ramificação do MySQL e também as linguagens Perl e/ou
Python, seja em conjunto ou em substituição ao PHP.
Em sistemas Linux (distribuições Debian e Ubuntu), para instalar o Apache, utilize o comando
abaixo:
INSTALANDO O SERVIDOR APACHE EM SISTEMAS LINUX
apt-get install apache2
Para Linux, o banco de dados MySQL possui pacotes de instalação para servidor e cliente, além
de ferramentas gráficas que auxiliam no gerenciamento e manipulação das bases de dados.
Abaixo, está o comando para instalação completa. É necessário, em alguns casos, especificar a
versão do pacote, por exemplo, mysql-server-5.1:
INSTALANDO MYSQL EM SISTEMAS LINUX
apt-get install mysql-server mysql-client mysql-server-core mysql-common
E por fim, temos a instalação do PHP. Assim como o MySQL, também há vários pacotes
distintos do PHP. Vamos priorizar por enquanto apenas o cliente e servidor (na versão 5).
INSTALANDO PHP EM SISTEMAS LINUX
apt-get install php5 php5-cli php5-dev
Outros pacotes que podem ser adicionados são os php5-mcrypt, php5-curl, php5-gd e o
libapache2-mod-php5. Estes adicionam funções extras à linguagem.
Colégio Tableau – Curso Técnico de Informática – Sistemas Operacionais de Rede
Todos os direitos reservados
14
Já a arquitetura WAMP é semelhante ao LAMP, mas construído sobre arquitetura Windows,
contando com os mesmos serviços Apache, MySQL e o PHP. O software WampServer é bastante
popular
para
construir
servidores
Web
com plataforma
Windows
e
pode
ser
baixado
gratuitamente no site do projeto.
3.1.1. XAMPP
O XAMPP é um software gratuito e multiplataforma que
realiza a instalação dos pacotes Apache, MySQL e o PHP.
Além
disso,
contém
também
o
PHPMyAdmin,
uma
ferramenta gráfica (semelhante ao Microsoft Access) para manipulação das bases de dados
MySQL. Algumas versões vêm com outros módulos inclusos como o Filezilla (servidor FTP para
transferência de arquivos entre o cliente e o servidor), o Mercury (servidor de e-mail) e o
Tomcat (servidor de aplicações Java).
Após baixar e instalar o XAMPP, abra seu navegador e digite localhost e pressione ENTER.
Caso apareça a página do XAMPP, sua máquina está configurada corretamente (na figura
abaixo, o exemplo para sistemas Mac OS).
Colégio Tableau – Curso Técnico de Informática – Sistemas Operacionais de Rede
Todos os direitos reservados
15
4.
SERVIDORES DE ARQUIVOS
Uma das principais aplicações de servidores é a distribuição e gerenciamento de arquivos pela
rede. O objetivo é oferecer um ponto central na estrutura para compartilhamento de arquivos
entre os usuários, evitando que o documento seja repassado para cada computador, o que pode
gerar confusão no controle de versão do arquivo. O servidor fica então responsável por todo o
controle, desde o acesso aos diretórios, passando por versionamento de arquivo e também pelo
gerenciamento de cota de disco, onde cada usuário tem um tamanho reservado do disco do
servidor para uso próprio e compartilhado.
As plataformas mais populares para servidores de arquivos variam entre distribuições Linux e
Windows. Vamos conhecer as características de cada um.
4.1. Servidor Samba
O Samba é um software “servidor” popular em sistemas Linux, onde haja máquinas cliente
Windows, permitindo o compartilhamento de arquivos entre as duas plataformas, além de
gerenciar também outros recursos como impressoras. A aplicação nasceu de uma engenharia
reversa do protocolo SMB da Microsoft que tem a função de prover compartilhamento de
arquivos pela rede. O protocolo foi estudado e sua especificação foi adaptada para sistemas
Linux.
Para instalar o samba no sistema Linux utilize a linha abaixo:
INSTALANDO O SERVIDOR SAMBA EM SISTEMAS LINUX
apt-get install samba
Após a instalação, partimos então para a configuração do servidor Samba, o qual é feita pelo
arquivo /etc/samba/smb.conf. Este arquivo é todo dividido em seções, identificadas pelo sinal
de colchetes (por exemplo, seção [global]). A primeira configuraç ão é permitir que os usuários
de sistema Linux acessem o servidor, o que faz com que usuários, necessariamente, tenham
que possuir uma conta Linux. Procure na seção [global] pela linha security=user e ative-a
(apague o sinal de #, caso haja). Salve e feche o arquivo. Após cada configuração é necessário
reiniciar o servidor Samba com a linha abaixo:
REINIC IANDO O SERVIDOR SAMBA
/etc/init.d/smbd restart
Vamos agora configurar o acesso as pastas “home” dos usuários. Numa configuração ideal,
cada usuário deve possuir acesso apenas a sua pasta home, sem visualização dos demais
Colégio Tableau – Curso Técnico de Informática – Sistemas Operacionais de Rede
Todos os direitos reservados
16
usuários. A configuração é feita pela seção [homes]. Abaixo, veremos uma configuração ideal,
com explicação das linhas nos parênteses.
CONFIGURAÇÃO IDEAL – SEÇÃO [HOMES]
comment = Diretório Home (Um comentário que identifica cada pasta)
browseable = no (Permite que o usuário navegue em sua própria pasta)
read only = no (Configura a pasta para não apenas de leitura)
create mask = 0700 (Somente o próprio usuário manipulará os arquivos)
directory mask = 0700 (Idem ao anterior, mas válidos para as pastas)
valid users = %S (Só é permitido acesso ao próprio usuário da pasta)
writable = yes (Permite que o usuário altere/crie arquivos na pasta)
Com a configuração acima, conseguimos então que apenas os usuários de cada pasta home
(isto é, seus donos) consiga trabalhar de modo particular em seu espaço, sem que este seja
visualizado ou alterado por outro usuário.
Suponha agora que queremos compartilhar uma pasta chamada “galera” dentro do /home ,
permitindo acesso apenas aos membros do grupo “users” (já existente no sistema). É preciso
inserir a configuração deste novo compartilhamento no arquivo smb.conf. Crie um nova seção
chamada [galera] no arquivo e insira a configuração abaixo:
CONFIGURAÇÃO – SEÇÃO [GALERA]
comment = Pasta da Galera (Um comentário que identifica cada pasta)
path = /home/galera (Caminho completo da pasta compartilhada )
create mask = 0770 (Permite que o grupo manipule o arquivo)
directory mask = 0770 (Idem ao anterior, mas válidos para as pastas)
valid users = @users (Só é permitido acesso ao grupo users)
force group = users (Força o uso do grupo users nesta pasta)
writable = yes (Permite que o usuário altere/crie arquivos na pasta)
Para testar, é necessário adicionar um usuário ao Samba, para que este tenha autorização se
autenticar no servidor. Vamos criar um usuário “jonas” com a linha abaixo, adicionando -o ao
grupo users (já que apenas este grupo possui acesso a pasta compartilhada no servidor).
CRIANDO O USUÁRIO “JONAS”
adduser jonas –m –G users
Escolha uma senha para a conta deste usuário. Agora iremos adicioná -lo ao Samba:
ADICIONANDO O USUÁRIO “JONAS” AO SERVIDOR SAMBA
smbpasswd –a jonas
Escolha uma senha para a autenticação no servidor e pronto!
Colégio Tableau – Curso Técnico de Informática – Sistemas Operacionais de Rede
Todos os direitos reservados
17
4.2. Compartilhando arquivos no Windows Server
O compartilhamento de arquivos e diretórios nas versões Server dos sistemas Windows pode
ser feito do mesmo modo das versões Cliente ou através de um assistente gráfico. Para o mais
simples, clique com o botão direito do mouse sobre
o arquivo/diretório desejado e escolha a opç ão
“Compartilhamento e Segurança”. Na tela seguinte,
você deve escolher os usuários que terão acesso ao
item compartilhado, bem como as permissões de
cada um. Caso algum usuário ou grupo não esteja
na
lista
será necessário adicioná-lo pelo botão
“Adicionar”.
Já pelo assistente gráfico, vá ao menu Iniciar –
Ferramentas
Administrativas
–
Assistente
para
configurar o servidor. Avance as telas e na lista de
opções
que
aparece,
escolha
“Servidor
de
Arquivos”. É importante ativar o gerenciamento de cotas de disco para maior controle no
compartilhamento (caso não tenha ativado ainda, o assistente irá solicitar). Para ativar, clique
com o botão direito sobre o disco local (C:) e escolha “Propriedades”. Clique na aba Cota e
marque a opção “Ativar gerenciamento de cota”. Voltando ao assistente, a configuração é
semelhante ao Samba, com as opções para o nome de exibição da pasta, caminho completo do
item compartilhado, permissões de arquivos e diretórios. Assim como no Samba, recomenda -se
que o administrador tenha acesso total e os outros usuários possuam aces so limitado,
geralmente leitura e gravação.
Colégio Tableau – Curso Técnico de Informática – Sistemas Operacionais de Rede
Todos os direitos reservados
18
5.
GERENCIAMENTO E CONTROLE
Servidores de gerenciamento baseiam-se em monitorar dados estatísticos e estados dos
recursos (por exemplo, se estão ativos ou não). São importantes para administradores de
redes, funcionando como “olhos” dentro da estrutura. A gestão de redes faz uso do protocolo
SNMP (você sabe o que é um protocolo de rede?) que é capaz de transportar informações como
parâmetros de configuração, dados de desempenho ou incidentes com recursos da re de.
O funcionamento no SNMP é baseado em dois elementos principais: o supervisor e os agentes.
O supervisor é a máquina responsável por requisitar informações aos agentes ( softwares), que
por sua vez, reside nos equipamentos de rede, em diferentes níveis e camadas. Assim que
ocorre a solicitação, o agente transmite as informações ao supervisor que pode tomar decisões
programadas sem interferência humana. Não são todos os equipamentos de rede que podem
ser gerenciáveis, sendo obviamente mais caro os que poss uem esta funcionalidade. Para os que
são gerenciáveis, estes possuem uma base de dados chamada MIB (Management Information
Base) contendo as informações de gerenciamento. O trabalho do agente nada mais é do que
consultar esta base, coletar os dados e transmitir ao supervisor quando solicitado.
5.1. Gerência com MRTG
Para o supervisor, há ferramentas que formatam a exibição de dados de forma amigável, como
gráficos coloridos e tabelas. Um exemplo é o MRTG (Multi Router Traffic Graphic ), utilitário
multiplataforma que gerencia dispositivos através do SNMP mostrando o tráfego passante
através de gráficos. Para instalar o MRTG na plataforma Linux, utilize a linha abaixo:
INSTALANDO MRTG EM SISTEMAS LINUX
apt-get install mrtg
No arquivo de configuração “/etc/mrtg.cfg” voc ê deve determinar em qual pasta o MRTG irá
trabalhar e armazenar os gráficos. Por padrão, é definido o diretório “/var/www/mrtg”, portanto
crie essa pasta dentro do Servidor Apache com o comando abaixo.
CRIANDO A PASTA DE TRABALHO DO MRTG EM SISTEMAS LINUX
mkdir /var/www/mrtg
Para verificar se o serviço está sendo executado, abra o navegador, digite localhost/mrtg e
pressione ENTER.
Colégio Tableau – Curso Técnico de Informática – Sistemas Operacionais de Rede
Todos os direitos reservados
19
5.2. Gerência com NAGIOS
Outra ferramenta popular de monitoramento é o Nagios, que, de forma semelhante ao MRTG,
gerencia recursos da rede como serviços e equipamentos, notificando o administrador caso haja
falhas. Possui uma interface de monitoramento via navegador, o que permite visualizar alertas,
obter relatórios e tomar ações preventivas em caso de falhas. Antes da instalação, crie um
usuário e um grupo chamado “nagios”, pois estes serão utilizados pela própria aplicação. Os
pacotes do Nagios não estão hospedados em repositórios Linux, mas pode ser baixado
diretamente pelo site do projeto com o comando wget. Para instalar o Nagios, utilize a linha
abaixo:
INSTALANDO NAGIOS EM SISTEMAS LINUX
wget http://osdn.dl.sourceforge.net/sourceforge/nagios/nagios-3.0.4.tar.gz
O pacote está compactado. É necessário descompactá-lo para compilar o arquivo, pois o código
ainda é puro. Utilize as linhas abaixo para descompactar e compilar o Nagios.
DESCOMPACTANDO O NAGIOS E ENTRANDO NA PASTA
tar -xvzf nagios-3.0.4.tar.gz
cd nagios-3.0.4
COMPILANDO O NAGIOS
./configure --prefix=/usr/local/nagios --with-cgiurl=/nagios/cgi-bin
--with-htmurl=/nagios/ --with-nagios-user=/nagios --with-nagiosgrp=/nagios --with-gd-lib=/usr/lib --with-gd-inc=/usr/lib
Agora sim, com o código compilado, podemos fazer a instalação. Executa as linhas abaixo para
automatizar as configurações.
INSTALANDO NAGIOS E AUTOMATIZANDO CONFIGURAÇÕES
make all
make install
make install-init
make install-config
make install-commandmode
make install-webconf
5.3. Controle com Proxy
Um proxy é uma espécie de filtro de redes que permite bloquear ou restringir determinadas
operações na rede como downloads, acesso a websites, etc. Ele é comumente instalado no
Colégio Tableau – Curso Técnico de Informática – Sistemas Operacionais de Rede
Todos os direitos reservados
20
computador diretamente ligado a Internet, onde as demais máquinas da rede passarão a fazer
requisições Web através desta. Um exemplo de proxy bastante popular é o Squid. O serviço
Squid funciona como bloqueador de endereços de Internet, controlando o acess o da rede
interna à Internet. Normalmente um proxy é instalado é configurado em uma máquina com
acesso direto a rede externa, passando então a responder por todas as outras máquinas que
tentam acessar essas redes. Para instalar o Squid, utilize a linha abaixo.
INSTALANDO SQUID
apt-get install squid
Após a instalação, entre na pasta /etc/squid, onde se encontra o arquivo de configuração do
proxy, o squid.conf. O arquivo de configuração é extenso, com quase 5000 linhas, com muitos
comentários explicativos. Para tornar a configuração mais funcional, administradores de rede
costumam criar um arquivo separado, criando suas próprias configurações. Vamos seguir este
exemplo e manter o arquivo original para consultas. Renomeie o arquivo com o comando mv
squid.conf squid.conf-original. Agora vamos criar nosso arquivo com o comando nano
squid.conf. Dentro deste arquivo, iremos digitar nossas configurações, sendo ideal a separação
em blocos para uma melhor visualização do arquivo. Vamos começar com as configurações de
autenticação. Acompanhe.
CONFIGURANDO O SQUID - AUTENTICAÇÃO
auth_param basic program /usr/lib/squid/pam_auth
auth_param basic children 10
auth_param basic realm Faça seu login
auth_param basic credentialsttl 4 hours
auth_param basic casesensitive off
Vamos às explicações. A primeira linha especifica qual script será responsável por processar a
autenticação, neste caso utilizando as próprias contas de usuários da rede . A configuração
children refere-se a quantidade de processos simultâneos serão suportados, a fim de evitar
múltiplas autenticações ao mesmo tempo. A terceira linha é uma frase que irá aparecer ao
usuário na caixa de autenticação do Squid. A quarta linha especifica o tempo máximo de 4
horas para o usuário permanecer autenticado (ou até ele fechar o navegador). A última linha
ignora a diferença entre maiúsculas e minúsculas na autenticação.
O proxy Squid funciona por meio de regras chamadas ACL (Access Control List), que pode ser
uma lista de endereços IP ou de URL bloqueadas/liberadas para acesso na rede. O próprio Squid
já possui na instalação uma grande quantidade de ACL prontas como controle por horários, dia
da semana, endereços localhost (pacotes de sua própria máquina), portas TCP, navegadores,
etc., o que permite um controle total da rede. Vamos construir algumas ACL:
Colégio Tableau – Curso Técnico de Informática – Sistemas Operacionais de Rede
Todos os direitos reservados
21
CONFIGURANDO O SQUID - ACL
acl all src all
acl localhost src 127.0.0.1/32
acl usuarios proxy_auth REQUIRED
Essas são três ACL essenciais para o controle. A primeira define todas as regras possíveis para
quaisquer situações. É interessante criá-la para quando precisamos liberar plenamente o proxy,
por algum motivo (manutenção, testes, etc). A segunda ACL controla os pacotes o riundos da
própria máquina onde o Squid está instalado, por exemplo, para testes no servidor Web. A
última regra (chamamos hipoteticamente de ‘usuarios’) diz que a autenticação é obrigatória
para conseguir passar pelo proxy.
Podemos também criar nossas próprias ACL, de acordo com a necessidade de controle. Para
exemplo, vamos criar listas de controle para termos ou palavras contidas em endereços de site
e também para extensões de arquivos. Acompanhe:
CONFIGURANDO O SQUID - ACL
acl bloqueados url_regex sexo download ultrasurf
acl liberados url_regex sexoesaude
acl downloads urlpath_regex \.mp3$ \.avi$
Na primeira regra, criamos uma ACL chamada “bloqueados” utilizando o comando url_regex
para indicar os termos que não serão aceitos pelo proxy, isto é, não poderão estar contidos na
URL. A mesma lógica é usada na segunda ACL, onde adicionamos possíveis exceções para a
regra anterior. A terceira ACL são para controles de extensões de arquivos, através do comando
urlpath_regex. Como geralmente as extensões vêm no final da URL, é necessário colocar o
cifrão ($) para indicar o final do arquivo. É possível também indicar um arquivo de texto
contendo palavras bloqueadas ou permitidas. Para isto, utilize o comando –i para descartar
diferenças entre maiúsculas e minúsculas e o caminho c ompleto do arquivo, por exemplo,
url_regex –i “/etc/squid/bloqueados.txt”.
A ordem em que as ACL são criadas é extremamente importante e indica o que será bloqueado
ou não. Isto significa que na ACL “liberados”, só será liberado o que não foi bloqueado antes, na
regra anterior, pois a leitura do Squid ocorre de cima para baixo (como uma estrutura SE/IF em
programação). Por isso, é recomendável, na última linha, bloquear tudo o que não foi liberado
antes, por alguma regra.
Depois de criadas as ACL, iremos controlá-las com o comando http_access, negando (deny) ou
permitindo (allow) que elas passem pelo proxy, seguindo uma lógica sequencial. Acompanhe no
quadro abaixo:
Colégio Tableau – Curso Técnico de Informática – Sistemas Operacionais de Rede
Todos os direitos reservados
22
CONFIGURANDO O SQUID – HTTP_ACCESS
http_access allow liberados
http_access deny bloqueados
http_access deny downloads
http_access allow usuarios
http_access allow localhost
http_access deny all
Nas regras acima, estamos bloqueando ou liberando as listas criadas anteriormente. Note a
sequência lógica entre as ações, sobretudo as três últimas regras. Primeiro, liberamos a ACL
“usuarios”, isto é, caso a navegação não tenha sido bloqueada antes, o usuário terá que se
autenticar para continuar, pois definimos a autenticação como obrigatória ( REQUIRED). Logo
após, liberamos a ACL “localhost” para permitir troca de pacotes dentro de nossa própria rede.
E por último, negamos o acesso a tudo que não foi liberado antes. Note que esta última regra,
só será executada para caso não acontecidos antes, por isso a razão de sua existência na última
linha.
Para
finalizar
o
Squid,
iremos
inserir
as
configurações
gerais
do
proxy.
Essas
configurações são necessárias para o bom funcionamento do servidor.
CONFIGURANDO O SQUID – CONFIGURAÇÕES GERAIS
http_port 3128
cache_mem 512 MB
maximum_object_size_in_memory 4 MB
cache_dir ufs /var/spool/squid 3000 16 256
access_log /var/log/squid/access.log squid
cache_mgr [email protected]
visible_hostname SERVIDOR
error_directory /usr/share/squid/errors/portuguese
A primeira linha especifica a porta aonde o Squid irá “escutar”; a porta padrão é 3128. O
cache_mem especifica o tamanho da memória cache do Squid, onde é recomendado utilizar ¼
da memória RAM. A terceira linha limita o tamanho de objetos sendo manipulados na memó ria
RAM. O cache_dir regula o funcionamento do cache, com o modo de gravação UFS ( Unix File
System), o local de gravação, o tamanho em MB do espaço em disco, quantidade de
subdiretórios
e,
dentro
destes,
mais
uma
quantidade de subdiretórios. A próxima linha
configura o log (o arquivo de registro das ações do usuário), com o local de gravação do log e o
formato de gravação padrão do proxy (squid). Logo após vem o e-mail do administrador do
proxy, o nome do servidor que ficará visível na rede e o diretório com as páginas de erro do
Squid, que podem ser configuradas com linguagem HTML. Vamos reiniciar o Squid para colocá lo em operação. Salve o arquivo, feche-o e reinicie o Squid com a linha abaixo.
REINIC IANDO O SQUID
/etc/init.d/squid restart ou service squid restart
Colégio Tableau – Curso Técnico de Informática – Sistemas Operacionais de Rede
Todos os direitos reservados
23
5.3.1. SARG
Os relatórios do Squid costumam gerar grandes quantidades de texto, dificultando sua leitura e
consulta. Para facilitar, existe a ferramenta SARG (Squid Analysis Report Generator) que
converte os relatórios para páginas HTML. Para instalar o SARG, utilize a linha abaixo:
INSTALANDO O SARG
apt-get install sarg
Após a instalação, abra o arquivo de configuração em /etc/sarg/sarg.conf. Edite a linha
language para Portuguese. Edite também a linha access_log para a mesma linha de log do
Squid. Desça até a linha output_dir e edite para /var/www/sarg para armazenar as páginas
diretamente no servidor web (tenha o Apache instalado!). Salve o arquivo, feche-o e crie o
diretório “sarg” com o comando mkdir –p /var/www/sarg. Após isso, digite “sarg” (sem
aspas) para gerar o relatório. Caso queira visualizar o relatório gerado, abra o navegador e
digite ipdoservidor/sarg.
5.4. Controle com Firewall
Um firewall tem o objetivo de ‘vigiar’ as portas de rede, verificando dados que entram e saem
das interfaces. É uma palavra popularmente utilizada por bombeiros para designar algum
mecanismo que ajude a combater ou conter chamas. Pode ser um hardware ou software
posicionado na fronteira das redes internas com a Internet. A princípio, pode-se confundir um
firewall com um proxy, mas os é importante notar que os proxies trabalham diretamente com
as aplicações de rede (navegação, e-mail, downloads, etc ), enquanto os firewalls trabalham
com os equipamentos de rede (roteadores, switches, etc ). O firewall padrão do Linux é o
IPtables. Caso ele ainda não esteja instalado, utilize o comando abaixo.
INSTALANDO O IPTABLES
apt-get install iptables
Ao ser instalado, o IPtables ainda não implementa nenhuma regra de controle, aceitando por
padrão, qualquer requisição (política ACCEPT). Para ver o status do IPtables, utilize a qualquer
momento o comando iptables –L. Vamos trabalhar com o cenário de bloqueio total e liberação
apenas do que for necessário. Digite os seguintes comandos:
IPTABLES – BLOQUEIO TOTAL
iptables –P INPUT DROP
iptables –P OUTPUT DROP
iptables –P FORWARD DROP
Colégio Tableau – Curso Técnico de Informática – Sistemas Operacionais de Rede
Todos os direitos reservados
24
Quer ver o resultado? Tente navegar em algum site e verá que sua requisição será bloqueada,
pois com os comandos acima descartamos todos os pacotes que chegam ao servidor web?
Vamos entender esses comandos.
O IPtables, como o nome sugere, trabalha com tabelas para controle dos pacotes. São 3
tabelas: FILTER, (usada para aceitar ou rejeitar pacotes, filtrando-os), NAT (para tradução,
alteração ou mascaramento de endereços IP) e MANGLE (para alterações especiais em
pacotes). Em cada tabela, ocorre situações em que é possível interferir com uma ação de
firewall.
5.4.1. Tabela Filter
Esta é a tabela padrão do IPtables, isto é, se você não indicar qual tabela quer alterar, esta será
a tabela adotada como padrão. Aqui temos 3 situações: INPUT (quando um pacote chega ao
firewall), FORWARD (quando um pacote chega ao firewall e é encaminhado para outro ponto da
rede) e OUTPUT (quando um pacote sai do firewall).
5.4.2. Tabela NAT
Na tabela NAT podemos alterar dados dos pacotes que circulam pela rede, implementando
funções de roteamento e tradução de endereços IP. Assim como a tabela Filter, temos 3
situações: PREROUTING (altera os dados antes do pacote ser roteado), POSTROUTING (altera
os dados depois do pacote ser roteado) e OUTPUT (altera dados após o pacote sair do firewall).
5.4.3. Tabela Mangle
De uso pouco comum, faz alterações especiais utilizando informações do TOS (Type of Service),
contido no cabeçalho dos pacotes, diferenciando o tipo de pacote a ser transportado e
influenciando na prioridade de transmissão. As operações nesta tabela visam realizar uma
filtragem dos pacotes ao passarem pelo firewall, alterando informações como custo de
roteamento, prioridade de transmissão, espera mínima de tráfego, entre outras. Possui as
situações INPUT, OUTPUT e PREROUTING.
5.4.4. Alvos
São as ações possíveis para um pacote obedecer a uma regra específica. Há várias ações
possíveis, das quais iremos estudas as mais comuns:
 ACCEPT: aceita um pacote, isto é, permite sua passagem;
 DROP: rejeita um pacote, isto é, bloqueia sua passagem;
 REJECT: rejeita um pacote, porém emite um aviso do bloqueio (diferentemente do DROP);
 REDIRECT: redirecionam portas em c onjunto com a opção --to-port;
Colégio Tableau – Curso Técnico de Informática – Sistemas Operacionais de Rede
Todos os direitos reservados
25
 SNAT: altera o endereço de origem das máquinas antes do pacote ser roteado;
 DNAT: altera o endereço de destino das máquinas.
5.4.5. Comandos
Os comandos informam ao IPtables o que fazer com uma regra. Há vários comandos, dos quais
iremos estudas os mais comuns:
 -A: adiciona uma regra no fim da lista;
 -D: apaga uma regra da lista;
 -I: adiciona uma regra no início da lista;
 -F: apaga todas regras da lista;
 -L: mostra as regras existentes na lista;
 -P: altera a política padrão das tabelas (na instalação a política padrão é ACCEPT).
5.4.6. Ações
As ações do IPtables são parâmetros de configuração para um regra adicionada e podem
especificar protocolos utilizados, portas envolvidas, interface de aplicação da regra, entre outras
informações. São diversas configurações aceitas, das quais iremos estudas as mais comuns:
 -p: especifica o protocolo utilizado na regra;
 -i: especifica a interface de entrada envolvida (usada em INPUT e FORWARD);
 -o: especifica a interface de saída envolvida (usada em OUTPUT e FORWARD);
 -s: origem do pacote;
 -d: destino do pacote;
 -j: define o alvo (ACCEPT, DROP, REJECT, etc );
 --sport: especifica o número da porta de origem do pacote;
 --dport: especifica o número da porta de destino do pacote.
Vamos exercitar algumas situações simples onde é possível a interferência de um firewall.
 BLOQUEAR O ENDEREÇO WWWW.FACEBOOK.COM
iptables –A OUTPUT –d www.facebook.com –j DROP
 REDIREC IONAR AS REQUISIÇÕES WEB PARA O PROXY SQUID (portas 80 e 443)
iptables –t nat –A PREROUTING –p tcp -–dport 80 –j REDIRECT -–to-port 3128
iptables –t nat –A PREROUTING –p tcp -–dport 443 –j REDIRECT -–to-port 3128
 ACEITAR TRÁFEGO DA REDE INTERNA E DO LOOPBACK
iptables –A INPUT –i lo –j ACCEPT
iptables –A INPUT –s 192.168.0.1/24 –i eth0 –j ACCEPT
Colégio Tableau – Curso Técnico de Informática – Sistemas Operacionais de Rede
Todos os direitos reservados
26
6.
SERVIDORES WINDOWS
As versões de servidores da plataforma Windows começaram a ser desenvolvidas em 2000, ano
em que saiu o Windows 2000 Server, já com um poderoso administrador de redes e um bom
sistema de arquivos para compartilhamentos. Trouxe também o acoplamento do Kerberos, um
protocolo de rede para autenticação que trouxe mais segurança ao trabalhar com criptografia
de chaves mais fortes que os protocolos anteriores. Pouco tempo depois, a Microsoft (empresa
responsável pelo desenvolvimento da plataforma Windows) lançou o Windows 2000 Advanced
Server, uma melhoria do sistema anterior, com a novidade para gerenciamento de clusters com
NLB (Network Load Balance), suporte a até 8GB de RAM (antes eram 4GB) e 8 processadores
simétricos (antes eram 4).
Três anos mais tarde, lançou o Windows Server 2003, com funcionalidades mais completas que
a versão anterior, inclusive suportando redes maiores e clusters de até 8 nós. Havia acoplado
ao sistema, um servidor Web, o IIS (Internet Information Service), hospedando principalmente
a tecnologia ASP (Active Server Pages) também de propriedade da Microsoft. Outro trunfo é o
suporte a impressoras de rede, contendo no sistema cerca de 3.500 drivers dos equipamentos
mais comuns do mercado.
Outras melhorias implementadas foram o aprimoramento do firewall de rede (que mais tarde
tornou-se o Windows Defender), o gerenciamento remoto e o serviço de roteamento de
pacotes, além de incluir mais de 60 ferramentas de linha de comando, embora poucas
utilizadas.
6.1. Active Directory
O Active Directory (AD) é o poderoso módulo de administração de domínios (agrupamento de
máquinas gerenciadas por um controlador) dos servidores Windows. Tem a função de manipular
dados de usuários e outros recursos, concentrando-os em um banco de dados centralizado.
Com ele é possível gerenciar contas, máquinas e grupos de forma simples e eficiente, através
de interfaces gráficas amigáveis. Ao instalar o AD, o computador adquire recursos para
controlar um domínio composto tanto por máquinas locais quanto por máquinas remotas. Antes
de instalar o AD, vamos entender alguns conceitos importantes dessa ferramenta essencial para
a administração de redes Windows.
6.1.1. Classe, Objeto e Atributo
Tudo no Active Directory é considerado objeto. Cada objeto (por exemplo, um usuário) possui
características (nome, descrição, etc) que o identificam e fazem associações com outros
objetos; a essas características damos o nome de atributos. A classe é a especificação ou
Colégio Tableau – Curso Técnico de Informática – Sistemas Operacionais de Rede
Todos os direitos reservados
27
agrupamento dos objetos, por exemplo, “computadores” pode ser a classe que agrupa objetos
“computador”. Há um tipo de objeto especial no AD chamado de container que pode agrupar
outros objetos como numa classe.
6.1.2. Domínio, Árvore, Floresta
Os
domínios
agrupamento
são
a
unidade principal na estrutura do AD. Entende-se por domínio um
de máquinas remotas ou locais, controladas por um gerente chamado de
controlador de domínio (domain controller). Assim como um proxy, um domínio possui uma ACL
(Access Control List) para controlar o acesso aos objetos dentro dele. Uma árvore representa
um agrupamento
de
domínios
para
compartilhamento
de
recursos
em modo
global.
É
importante notar que as configurações administrativas, de segurança ou permissões da ACL não
atravessam de um domínio para outro assim como um administrador só possui poderes plenos
em seu próprio domínio. Embora seja uma estrutura complexa, a floresta visa agrupar árvores
de domínios distintas.
Para instalar o Active Directory, abra a caixa EXECUTAR (RUN) e digite o comando abaixo:
INSTALANDO O ACTIVE DIRECTORY
dcpromo
Pressione ENTER para iniciar a instalação. Avance algumas telas e escolha se deseja criar um
novo domínio (e uma nova árvore), um domínio em uma árvore existente ou uma árvore em
uma floresta existente. Na próxima tela escolha um nome para o domínio. A seguir, deixe as
pastas padrão para o banco de dados e o log do servidor. Faça o mesmo para a pasta SYSVOL.
Avance algumas telas e escolha o tipo de permissão, se compatível com sistemas antigos ou
somente com as versões Server 2000 e 2003. Avance e defina uma senha para o administrador
do AD. Caso esqueça essa senha, não será possível restaurar a partir de backups do AD no
futuro. Deve então aparecer a tela de confirmação de dados e de instalação. Avance e conclua.
Aguarde alguns minutos e a instalação se encerrará. Reinicie o servidor. Ao retornar, você já
deve ser solicitado a fazer autenticação. Utilize sua senha de administrador.
Colégio Tableau – Curso Técnico de Informática – Sistemas Operacionais de Rede
Todos os direitos reservados
28
6.2. Diretivas de Segurança
O Active Directory permite criar diretivas (regras) de segurança específicas para todo o domínio
(todo o grupo) e também para o controlador de domínio (somente para o servidor). Para
acessar as diretivas siga o caminho descrito abaixo. Lembre -se de possuir acesso administrador
para realizar as alterações no domínio.
DIRETIVAS DE SEGURANÇA
Iniciar – Ferramentas Administrativas – Diretiva de segurança de domínio
Ao abrir a tela, dê duplo clique em
Configurações
de
Segurança.
Na
próxima tela, temos várias opções,
das quais iremos estudar as duas
primeiras. Em “Diretivas de c onta”
pode-se
controlar
as
regras
de
senhas (tamanho mínimo, tempo de
expiração,
bloqueio
(tempo
complexidade,
de
de
contas
bloqueio,
dos
etc)
e
usuários
número
de
tentativas, etc). Já em “Diretivas locais” pode-se permitir ou proibir várias ações dos usuários
como desligar o sistema, alterar o relógio, bem como diversas opções de segurança em geral.
6.3. Políticas de grupo
Um dos grandes recursos que auxiliam a administração de rede com AD são as GPO ( Group
Policy) que permitem aplicar regras para um grupo inteiro (usuários + computadores). Antes de
criar um grupo (chamado de Unidade Organizacional), vamos aprender a cadastrar um novo
usuário. Siga o caminho abaixo:
CADASTRANDO USUÁRIOS NO ACTIVE DIRECTORY
Iniciar – Ferramentas Administrativas – Usuários e Computadores do AD
Na tela que se abre, clique com o botão direito em Users, aponte em Novo e clique em
Usuário. Preencha os dados, clique em Avançar, escolha uma senha e clique em Concluir (a
senha deve obedecer as diretivas de segurança definidas anteriormente ). Dê duplo clique em
Users para visualizar o usuário criado. Note também seu grupo padrão (Usuários). Clicando
com o botão direito sobre o usuário criado e escolhendo Propriedades, pode-se ter acesso a
várias opções de configuração como horário e computadores em que o usuário pode utilizar a
rede, evitar que ele altere a senha, desativar sua conta, enviar uma mensagem, etc.
Colégio Tableau – Curso Técnico de Informática – Sistemas Operacionais de Rede
Todos os direitos reservados
29
Para o cadastro de computadores, siga o mesmo caminho anterior. Na tela que se abre, clique
com o botão direito em Computers, aponte em Novo e clique em Computador. Preencha o
nome do novo computador, avance duas vezes e clique em Concluir. Dê duplo clique em
Computers para visualizar o computador cadastrado.
Agora iremos criar nossa Unidade Organizacional que irá agrupar o computador e o usuário
cadastrados anteriormente. Poderemos então aplicar as políticas para ambos. Siga novamente o
caminho:
CRIANDO UNIDADES ORGANIZAC IONAIS NO ACTIVE DIRECTORY
Iniciar – Ferramentas Administrativas – Usuários e Computadores do AD
Clique com o botão direito em Domains Controllers, aponte em Novo e escolha Unidade
Organizacional. Preencha o nome do grupo (sugestão: ALUNOS) e clique em OK. Visualize o
grupo criado, clique com o botão direito sobre ele e escolha Propriedades. Na nova janela
aberta, clique na aba Diretivas de grupo, clique em Novo e escolha um nome para nossa lista
de regras (sugestão: SEGURANÇA). Após criar a regra, clique em Editar.
Nas regras para computadores, pode-se bloquear endereços de sites indesejados, gerenciar
consumo de disco e memória, consumo de rede, configurações de impressão, etc. Para os
usuários temos as configurações do navegador, área de trabalho e rede .
Colégio Tableau – Curso Técnico de Informática – Sistemas Operacionais de Rede
Todos os direitos reservados
30
7.
APÊNDICE – PRÉ-REQUISITOS
Como pré-requisito, é fundamental que saibamos os comandos básicos da plataforma, bem
como alguns conceitos de configuraç ão de rede, segurança e outros. Lembramos que para
nossa referência, estamos utilizando a versão Linux Ubuntu 9.04 e Linux Debian 6.0.
7.1. Terminal
O terminal é a tela onde iremos digitar os comandos necessários às operações que faremos.
Caso você esteja utilizando uma versão gráfica da plataforma Linux, clique em Aplicativos –
Acessórios – Terminal. Deve aparecer então o nome do usuário autenticado naquele momento e
o nome da máquina na rede, no formato user@host. Como estamos lidando com um servidor, é
necessário possuir acesso de administrador (no Linux, chamado de root). Para autenticar-se
como administrador, digite su, pressione ENTER e insira a senha administrativa. Pressione
ENTER novamente e, caso esteja correto, deve aparecer root@host.
7.2. Comandos básicos
A seguir, uma lista com comandos básicos no terminal da plataforma Linux.
Comando/Sintaxe
Descrição
Exemplo
cp arquivo destino
Copia um arquivo para um destino
cp senhas.txt /home/jonas
mv arquivo destino
Move um arquivo para um destino
mv senhas.txt /home/jonas
rm arquivo
Remove um arquivo
rm senhas.txt
cd destino
Acessa o destino informado
cd /home/jonas
ls
Lista os arquivos daquele local
touch arquivo
Cria um arquivo
touch senhas.txt
cat arquivo
Mostra o conteúdo do arquivo
cat senhas.txt
nano arquivo
Abre o arquivo para edição
nano senhas.txt
clear
Limpa a tela
adduser nome
Adiciona um novo usuário no sistema
passwd
Troca a senha do usuário atual
mkdir nome
Cria uma nova pasta no local informado
clock
Define a hora do processador
date
Exibe a data e hora atuais
whoami
Mostra o user autenticado no momento
ls –l
Lista os arquivos com permissão
adduser jonas
mkdir /home/jonas
Colégio Tableau – Curso Técnico de Informática – Sistemas Operacionais de Rede
Todos os direitos reservados
31
7.3. Permissão de arquivos, donos e grupos
Quando utilizamos o comando ls –l é possível visualizar os arquivos com informações adicionais,
entre elas o dono do arquivo (quem criou), o grupo (por padrão, o grupo de usuário o qual o
dono pertence) e as permissões. São 3 tipos de permissão possíveis, representadas por letras:

Leitura (read): acessar o diretório ou abrir o arquivo para visualização;

Escrita (write): renomear, excluir, criar um arquivo ou editar um existente;

Execução (eXecute): permite executar um .exe ou um script.
As permissões devem ser dadas em 3 níveis: o dono, o grupo e o restante (quem não é dono e
não faz parte do grupo). Quando listamos as permissões elas aparecem da seguinte forma:
O método mais comum de atribuir permissões é por números, chamado de método octal.
Cada permissão possui “pontos” que devem ser distribuídos ao níveis, sendo leitura com 4
pontos, escrita com 2 pontos e execução com 1 ponto (note que 7 pontos representa permissão
total)
Vamos analisar o exemplo abaixo, sobre o arquivo Document os (na verdade é um diretório):
Em destaque estão as permissões para o arquivo Documentos. Note que o dono possui todas as
permissões (rwx), o grupo possui leitura e execução (r-x) e o restante, idem. O traço (-)
representa ausência ou proibição daquela permissão. Neste caso, grupo e restante não possuem
escrita (w). Numericamente, a situação acima poderia ser representada por 755. Note também
a indicação do dono (alecrim) e também qual o grupo (alecrim).
Colégio Tableau – Curso Técnico de Informática – Sistemas Operacionais de Rede
Todos os direitos reservados
32
Mas como alterar o dono, o grupo e as permissões? Para alterar o dono utilize o comando
chown (change owner) indicando o nome do novo dono e também qual arquivo. Por exemplo,
alteraremos o dono do arquivo Documentos para o usuário “jonas”.
ALTERANDO O DONO DO ARQUIVO DOCUMENTOS
chown jonas Documentos
Para alterar o grupo de um arquivo, utilize o comando chgrp (change group) indicando o nome
do
novo
grupo
e
também qual arquivo. Por exemplo, alteraremos o grupo do arquivo
Documentos para “professores” (este grupo deve existir no sistema!).
ALTERANDO O GRUPO DO ARQUIVO DOCUMENTOS
chgrp professores Documentos
Para alterar as permissões de um arquivo, utilize o comando chmod (change mode) indicando
a nova permissão no modo octal e também qual arquivo. Por exemplo, para o arquivo
Documentos retiraremos as permissões de execução do grupo e do restante dos usuários,
mantendo somente a permissão de escrita; para o dono manteremos todas as permissões.
ALTERANDO AS PERMISSÕES DO ARQUIVO DOCUMENTOS
chmod 744 Documentos
7.4. Repositórios
Repositórios são servidores espalhados pelo mundo, hospedando pacotes de atualização e
também softwares para downloads em plataforma Linux. Para configurar a lista de repositórios,
isto é, onde sua máquina irá conectar-se para atualizações e downloads, acesse o arquivo
/etc/apt/sources.list com o comando abaixo:
ARQUIVOS SOURCES.LIST
nano /etc/apt/sources.list
Você irá visualizar vários endereços web onde estão localizados os servidores Linux públicos.
Utilizando as versões de referência dessa apost ila, para o Linux Ubuntu 9.04 utilize o endereço
http://old-releases.ubuntu.com. Para o Linux Debian 6.0 utilize os servidores brasileiros da USP
http://linorg.usp.br
e
http://sft.if.usp.br.
Outros
servidores
disponíveis
http://ftp.debian.org e http://ftp.br.debian.org/debian.
Colégio Tableau – Curso Técnico de Informática – Sistemas Operacionais de Rede
Todos os direitos reservados
são
o
33
7.5. Apt-get
Ferramenta utilizada para remover pacotes instalados, atualizar o sistema e instalar novos
pacotes (estes dois últimos, baseados na lista de repositórios configurada).

apt-get remove nomedopacote: desinstala o pacote indicado;

apt-get install nomedopacote: baixa e instala o pacote indicado;

apt-get update: instala novos pacotes de atualização do sistema;

apt-get upgrade: atualiza versões dos pacotes já instalados;
7.6. Configuração da rede
É importante configurar corretamente as interfaces de rede da máquina para conseguir realizar
as atualizações e comunicar-se com outros dispositivos da rede. O arquivo responsável pela
configuração é o /etc/network/interfaces. Acesse-o com o comando abaixo:
ARQUIVOS INTERFACES
nano /etc/network/interfaces
Comumente configura-se as duas interfaces principais (lo e eth0), salvo se a máquina contiver
mais de uma placa de rede. A interface lo refere-se à sua própria placa de rede (loopback),
enquanto eth0 refere-se à sua comunicação princ ipal com a rede (wireless ou cabeada). Para a
eth0 há dois tipos de configuração: static (manual) ou dhcp (automática). A instrução auto
indica que a interface será ativa logo ao iniciar o sistema. Vejamos um exemplo:
Note que utilizamos a configuração manual (static ). Neste caso é
preciso indicar o endereço IP (address), qual a máscara de rede
(netmask) e também o gateway. Caso utilizássemos uma configuração
automática, bastava trocar a palavra static para dhcp e apagar as
linhas abaixo, já que todas seriam configuradas automaticamente.
Após configurar a rede (manual ou automática) é necessário reiniciar
as placas para que estas recebam as novas configurações.
REINIC IANDO A REDE
/etc/init.d networking restart ou service networking restart
Para verific ar as configurações de rede atuais utilize o comando ifconfig. Caso esteja utilizando
a configuração automática utilize o comando dhclient para receber as novas configurações do
servidor.
Colégio Tableau – Curso Técnico de Informática – Sistemas Operacionais de Rede
Todos os direitos reservados
34
8.
REFERÊNCIAS
SILVA, G. Implantação de um sistema de segurança utilizando Linux. FEG-UNESP, 2008.
http://www.oficinadanet.com.br/artigo/405/servidor_apache
http://www.htmlstaff.org/ver.php?id=17264
http://blog.thiagobelem.net/instalando-o-php-5-3-3-no-ubuntu-10-10-maverick/
http://www.bosontreinamentos.com.br
http://c larinhaworld.com.br/?p=757
http://pt.kioskea.net/contents/283-o-protocolo-snmp
http://www.vivaolinux.com.br/artigo/Nagios-Um-poderoso-programa-de-monitoramento-derede-(parte-1)/
http://technet.microsoft.com/pt -br/library/cc668545.aspx
========================================================
Apostila produzida pelo Prof. Esp. Jonas Willian R. Aureliano para o Curso Técnico de
Informática do Colégio Tableau de Guaratinguetá.
Colégio Tableau – Curso Técnico de Informática – Sistemas Operacionais de Rede
Todos os direitos reservados

Documentos relacionados