Académique Documents
Professionnel Documents
Culture Documents
Segurança, 21 – Hardening
Servidores
Blindando um Sistema GNU/Linux
[ Flávio Alexandre dos Reis, Marcos Fabiano Verbena e Eduardo Pagani Julio ]
[Easy Infra] Artigos introdutórios sobre infraestrutura: redes, ser- [Redes] Artigo dentro do contexto de Redes: configuração, ferra- [Tutorial] Artigo no estilo tutorial passo a passo.
vidores, sistemas operacionais, ferramentas, etc. mentas de monitoração/gerenciamento, entre outros.
[Desempenho] Matérias que abordam questões relacionadas
[Servidores] Destaque para itens como instalação, configuração e [Segurança] Artigo dentro do contexto de Segurança: redes, a desempenho.
gerência, de servidores DHCP, DNS, Web, etc. servidores, sistemas operacionais, infraestrutura em geral.
[Sistemas Operacionais] Foco em características de sis- [Core] Técnicas, ferramentas, e outros assuntos que fogem ás
temas operacionais como Windows, Linux, FreeBSD, entre demais categorias.
outros.
Editorial
N
a segunda edição da Easy Java publicamos o primeiro artigo sobre o JDBC. Agora,
Ano I • Edição 01 • 2011
reservamos novamente o destaque de capa para mais um tema relacionado
à persistência, o Hibernate. Após conhecer este framework, você entenderá
o motivo de termos apresentado o Java Database Connectivity para só então mostrar a
ferramenta mais utilizada para armazenar e recuperar dados da comunidade Java.
Deste modo, em Introdução à Persistência com Hibernate – Parte 1, abordaremos
a arquitetura do Hibernate e veremos como configurar e desenvolver aplicações
Edição adotando este framework de mapeamento objeto-relacional, que devido a sua robustez e
Editor simplicidade, se tornou o recurso padrão para esta funcionalidade. Para facilitar o estudo,
Eduardo Spínola (eduspinola@gmail.com) no vídeo deste artigo destacamos na prática o seu uso.
Arte Se você está começando a implementar seus primeiros sistemas, conhecer o processo
Capa e Diagramação Romulo Araujo (romulo@devmedia.com.br) de desenvolvimento de software será algo que te ajudará a aprimorar a qualidade dos
mesmos. Quando estamos começando, é normal iniciar a codificação sem nos preocupar
Produção com a organização do código, planejamento, entre outras características. No entanto, este
Gerência de Marketing Kaline Dolabella (kalined@terra.com.br)
não é um bom caminho a seguir. Neste contexto, indicamos a matéria Modelagem de
Jornalista Responsável Kaline Dolabella - JP24185
software com UML.
Revisão e Supervisão Thiago Vincenzo (thiago.v.ciancio@devmedia.com.br)
Após um assunto mais teórico, que tal por as mãos na massa e Desenvolver aplicações
Coordenação Geral Daniella Costa (daniella@devmedia.com.br)
web com o NetBeans? Neste momento vamos criar uma simples aplicação CRUD, isto é,
Atendimento ao leitor que fornece as funcionalidades de criação, leitura, atualização e remoção de dados em um
A DevMedia possui uma Central de Atendimento on-line, onde você pode banco de dados, empregando o padrão MVC (acrônimo de Model-View-Controller) e o
tirar suas dúvidas sobre serviços, enviar críticas e sugestões e falar com um de
nossos atendentes. Através da nossa central também é possível alterar dados framework JPA (Java Persistence API). Como complemento, veja o vídeo que nos apresenta
cadastrais, consultar o status de assinaturas e conferir a data de envio de suas a IDE NetBeans e ensina como criar uma aplicação web a partir dos seus recursos.
revistas. Acesse www.devmedia.com.br/central, ou se preferir entre em Para encerrar, preparamos uma matéria desafio, que fornece algumas questões sobre
contato conosco através do telefone 21 3382-5038.
temas abordados nas edições anteriores para testar seus conhecimentos. Solucionando
Publicidade Problemas usando Java, ensina a escrever soluções Java a partir dos recursos da linguagem
Cristiany Queiroz e seguindo uma metodologia mínima. Lembre-se, um bom programador é aquele que
publicidade@devmedia.com.br – 21 3382-5038 conhece um grande leque de recursos e sabe como utilizá-los. Para isso, é preciso por em
Anúncios – Anunciando nas publicações e nos sites do Grupo DevMedia, você prática os conhecimentos adquiridos e assim obter ainda mais experiência com eles. Ainda
divulga sua marca ou produto para mais de 100 mil desenvolvedores de todo o relacionado a este artigo, elaboramos um vídeo para conhecer e explorar os recursos que
Brasil, em mais de 200 cidades. Solicite nossos Media Kits, com detalhes sobre
o Eclipse Helios nos oferece e que podem ser úteis na resolução de problemas comuns
preços e formatos de anúncios.
a qualquer implementação.
O
Apache é um software multipla-
taforma e pode ser instalado nos Resumo DevMan
principais sistemas operacionais
disponíveis no mercado, como Linux, De que se trata o artigo:
BSDs, Windows, entre outros menos po- Neste artigo será realizada a instalação do Apache de duas formas distintas. Uma delas é compilando
pulares. Por ser um software robusto, logo através do código-fonte e a outra é através de pacotes próprios da distribuição. Também serão apresentadas
se pensa que exige um hardware muito configurações básicas de desempenho e segurança, recomendáveis em qualquer servidor Web Apache.
poderoso para funcionar adequadamente.
É aí que os inexperientes se enganam. Para que serve:
O Apache é um servidor web open source As configurações sugeridas são aplicáveis em servidores de pequeno, médio e grande porte, com poucas
extremamente confiável e que tem suas ou milhares de requisições por minuto.
funcionalidades expansíveis através de
módulos que podem ser adicionados na Em que situação o tema é útil:
medida em que se tornam necessários. Seu Este artigo é ideal para aqueles que estão iniciando na área de infraestrutura e servidores, e até mesmo
nome na verdade é Apache HTTP Server para os leitores com um pouco mais de experiência, que estão sempre em busca de novos conhecimentos,
(veja seção Links), mas é popularmente permitindo uma melhor configuração de servidores.
conhecido como Apache.
O principal objetivo deste artigo é apre- possui um desenvolvimento maduro e mod_python, mod_ ftp, entre outros. A
sentar um conjunto de operações básicas sério. variedade de módulos é muito grande e
no Apache, especialmente no que diz O principal fator relacionado à perfor- pode ser consultada diretamente no site
respeito à instalação, configuração, de- mance é o número de instâncias do servi- do projeto (veja seção Links).
sempenho e segurança. dor httpd. O Apache suporta um grande Serão apresentadas duas formas de ins-
número de instâncias simultâneas, onde talação do Apache no Linux. A primeira
Servidor Web Apache cada uma é relacionada a um cliente aces- delas é compilando o servidor a partir
O Apache é hoje um dos mais respeita- sando o servidor. do código fonte, e a segunda é através de
dos softwares Open Source existentes no Na verdade, o gargalo acaba se locali- um gerenciador de pacotes. Optou-se por
mercado, sendo um concorrente direto do zando na velocidade do link e, dependen- utilizar o Ubuntu (veja seção Links) por
IIS (veja seção Links), desenvolvido pela do das páginas servidas, no hardware. ser a distribuição Linux mais popular
Microsoft. Códigos PHP mal escritos e scripts CGI hoje em dia.
Sua qualidade fica claramente estam- podem elevar a carga do processador e,
pada quando analisamos sua utilização multiplicando pelo número de instâncias
a nível global na Internet. Segundo o site simultâneas fazendo essas requisições,
Netcraft (veja seção Links), em Janeiro tem-se um verdadeiro problema. Por este
de 2010, 53,84% dos sites existentes na motivo é possível afirmar que um servi-
internet rodavam sob o Apache, contra dor bem configurado não é sinônimo de
24,08% do IIS. desempenho superior.
Uma vantagem, que é maior que o dobro Como já informado, o Apache oferece
do segundo colocado, prova a excelência suporte a módulos que, quando instalados,
desta aplicação e a qualidade que um adicionam funcionalidades ao servidor.
software open source pode obter quando Como exemplos, pode-se citar o mod_php,
Compilando os fontes funções extras ao Apache. Entretanto, caso o administrador deseja customizar ao
Este artigo parte do princípio que o leitor tenha interesse de habilitar ou desabilitar máximo o servidor.
está familiarizado com a compilação de algumas opções já na instalação, pode
algum software ou, ao menos detém as fazê-lo com o comando: Configurações Básicas
noções básicas, além de possuir os pacotes Depois da instalação padrão, o Apache
# ./configure --help
para realizar tal procedimento. já pode ser utilizado normalmente, elimi-
Em caso de dúvidas, no Ubuntu, é neces- Agora, devem ser executados os três nando a necessidade de inúmeras configu-
sário instalar o pacote build-essential para comandos básicos necessários para a rações adicionais. Para testá-lo, basta abrir
que seja possível compilar os arquivos do compilação: o seu browser e acessar o endereço http://
Apache. Para isto, execute o comando: localhost. Neste momento você verá uma
# ./configure mensagem de confirmação do Apache.
# apt-get install build-essential # make
# make install O próximo passo será realizar algumas
Quando este artigo foi escrito, a versão alterações no httpd.conf e demonstrar
estável era a 2.2.16. No entanto, as con- Aguarde, dependendo do seu compu- como habilitar o suporte a módulos, que
figurações realizadas são válidas para tador, isto pode levar alguns minutos. estendem as possibilidades de utilização
qualquer versão do Apache2. Concluído este processo, o servidor será do servidor. Como exemplo, será instalado
É possível baixar o arquivo pelo browser instalado no diretório padrão que é /usr/ o módulo do PHP5, por este ser um dos
ou pelo terminal. Lembre-se, geralmente local/apache2. recursos mais utilizados no Apache e
servidores não possuem interface gráfica Para levantar o serviço com as configu- pelo PHP ser uma das principais lingua-
instalada. Dessa forma, seguiremos a rações padrão, execute o comando: gens de programação voltadas à internet
segunda opção. atualmente.
Para realizar o download do pacote, # /usr/local/apache2/bin/apachectl start Quando o Apache é compilado, o arquivo
execute o comando: Após estes passos o Apache deve ter de configuração é um só, o httpd.conf. Na
sido compilado com sucesso. Agora, ao instalação via gerenciador de pacotes no
# wget http://linorg.usp.br/apache/httpd/httpd-2 acessar o endereço 127.0.0.1 com um na- Ubuntu, esse arquivo é fragmentado para
.2.14.tar.gz
vegador será exibida uma mensagem de facilitar sua utilização. Todas as confi-
Agora é necessário efetuar a transfor- confirmação, mostrando que o servidor gurações citadas neste artigo podem ser
mação em Super Usuário, através do está funcionando. realizadas em qualquer um dos ambientes,
comando: porém, a base será na configuração frag-
Instalando através do Gerenciador de mentada que, de certa forma, acaba sendo
# sudo su
Pacotes Synaptics um pouco mais complexa.
Assim será possível executar todos os Este artigo foi escrito utilizando como Os arquivos de configuração encontram-
comandos sem nenhum tipo de problema. base de testes a distribuição Linux Ubun- se no diretório /etc/apache2.
Porém, muito cuidado com os comandos tu, porém os mesmos passos podem ser
que serão utilizados: como root nada im- aplicados a outras distribuições derivadas ServerName
pedirá você de fazer alterações indevidas do Debian. Nossa primeira alteração no httpd.conf
no sistema. Para realizar a instalação é necessário será o parâmetro ServerName. Este parâme-
Neste momento é necessário descompac- acessar o menu Sistema > Administração > tro é utilizado quando o servidor Apache
tar o arquivo baixado. Para isso, execute Gerenciador de Pacotes Synaptic, pesquisar irá responder por um endereço do tipo
o comando abaixo para armazenar os por “Apache” e depois selecionar o pacote www.meusite.com.br. Na instalação padrão,
arquivos no diretório /usr/src: “Apache2”. Em seguida é só aplicar e espe- o ServerName não é especificado, ficando
rar o sistema realizar todo o trabalho. a critério do administrador utilizá-lo ou
# tar -zxvf httpd-2.2.14.tar.gz -C /usr/src
Caso esteja utilizando o terminal, este não. Este parâmetro pode ser inserido no
Observe que foi utilizado o parâmetro processo pode ser feito com o comando: início do arquivo de configuração apache2.
“-C” para especificar o destino dos arqui- conf da seguinte forma:
# apt-get install apache2
vos que estão sendo extraídos do pacote.
Fe it o i s s o, d e ve - s e ac e s s a r e s s e A instalação via gerenciador de paco- ServerName “www.meusite.com” (caso seja uma
URL) ou
diretório: tes é visivelmente mais simples e torna ServerName “111.11.111.11” (caso seja um IP)
todo gerenciamento mais fácil, visto que
# cd /usr/src/httpd-2.2.14/
atualizações e patches de segurança são Virtual Hosts
Seguindo a proposta do artigo, esta aplicadas e instaladas automaticamente. Mas o que fazer se o servidor for res-
instalação será básica, ou seja, não serão A compilação (apresentada no tópico ponder por mais de um site ou possuir
instalados módulos e/ou adicionadas anterior) só se faz necessária quando subdomínios? Neste caso deve-se editar
Altere estes três parâmetros para: que estão disponíveis nos repositórios do Desabilitar ou habilitar o safe mode:
Ubuntu, execute:
ServerTokens Prod safe_mode = Off
ServerSignature Off # apt-cache search apache2-mod
TraceEnable Off Para determinar a memória que um
script PHP pode alocar, utiliza-se o coman-
Como de costume, sempre que alguma Habilitando o suporte ao PHP do memory_limit, prevenindo que algum
configuração é alterada o Apache precisa A instalação padrão do Apache não vem script mal escrito ou mal intencionado
ser reiniciado para carregar os novos com suporte ao PHP ou a qualquer outra consuma toda a memória do servidor:
parâmetros. linguagem interpretada. Para habilitar o
suporte ao PHP, é necessário realizar a memory_limit = 16M
Veja na vídeo aula deste artigo algumas instalação do pacote libapache2-mod_php5 Caso o servidor não seja de testes, mas
dicas sobre como aumentar a segurança para depois configurá-lo no Apache. sim de produção, talvez seja interessante
do seu servidor web. O primeiro passo para isso será abrir um desabilitar a exibição de erros e alertas nas
console e digitar o comando: páginas geradas:
Utilizando Módulos
Na sua instalação padrão, o Apache traz # sudo su display_errors = Off
habilitado muitos módulos que, algumas Como já informado, o código acima faz Ao fazer isto, pode-se querer registrar
vezes, não são utilizados. Os módulos com que todos os comandos sejam reali- estes erros em algum lugar e, para isso, é
disponíveis podem ser vistos em /etc/ zados com os privilégios do usuário root. importante habilitar o log de erros:
apache2/mods-available. Já os módulos que Com isso é possível chamar o gerenciador
log_errors = On
estão habilitados ficam em /etc/apache2/ de pacotes e instalar o módulo do PHP:
mods-enabled. Por medida de segurança, também é
Como esta questão de módulos a serem # apt-get install libapache2-mod-php5 interessante desabilitar variáveis globais.
utilizados é muito particular e varia em Para verificar se o módulo foi realmente Isso evita que alguma pessoa mal inten-
cada caso, será explicado apenas como instalado, é necessário acessar o diretório cionada, em alguns casos, consiga alterar
habilitar e desabilitar os módulos no /etc/apache2/mods-available. Nele, devem ser valores de variáveis, fazendo com que o
Apache. listados, entre outros, dois arquivos: php5. sistema se comporte de forma anormal:
Para habilitar um módulo, deve-se exe- conf e php5.load.
register_globals = Off
cutar o comando: Agora que o módulo PHP está instalado
no sistema, é possível habilitá-lo no servi- Mais informações sobre o parâmetro
# a2enmod modulo dor Apache. Para isso, o seguinte comando register_globals podem ser encontradas no
deve ser executado: endereço (veja seção Links).
Por exemplo: Em sua configuração padrão, o PHP
# a2enmod php5 vem com o suporte a upload de arquivos
# a2enmod php5 Depois de habilitado, os dois arquivos habilitado. Se esta função não for utilizada,
anteriormente descritos (php5.conf e pode-se desabilitá-la e evitar um possível
Agora, para desabilitar um módulo, php5.load) receberam links simbólicos no problema gerado por alguma pessoa mal
pode-se executar: diretório /etc/apache2/mods-enabled. Isto intencionada que consiga se aproveitar
significa que o módulo do PHP5 será desse serviço. Para esse ajuste, altere a
# a2dismod modulo carregado na próxima inicialização do configuração para:
Apache, que precisa ser reiniciado com
file_uploads = Off
Para listar todos os módulos do Apache o comando:
Mas, caso seja necessário receber arqui-
# /etc/init.d/apache2 restart vos, e mais, arquivos grandes, é necessário
Nota do DevMan Dependendo dos serviços que serão alterar o tamanho máximo dos arquivos
disponibilizados no seu servidor, pode que podem ser recebidos, por exemplo:
Safe Mode: Safe Mode, ou Modo Seguro, é uma tentativa ser necessário alterar algum parâmetro de
upload_max_filesize = 5M
de resolver um problema de segurança em servidores funcionamento do PHP. Estas alterações
compartilhados. Com ele, o PHP faz verificações quando são feitas no arquivo php.ini que fica loca- Caso a aplicação utilize sessões, pode ser
trabalha com manipulação de arquivos, verificando a
propriedade do script atual e do arquivo a ser alterado. A lizado no diretório /etc/php5/apache2. interessante aumentar o tamanho máximo
partir da versão 5.3.0 do PHP este recurso se tornou obsoleto Para exemplificar, vejamos algumas do tempo de vida de uma sessão que, por
e seu uso desencorajado no próprio manual, na versão 6.0 será configurações importantes que podem ser padrão, é de 24 minutos. Esta opção é
completamente removido.
realizadas no php.ini. recomendada para sistemas que possuem
dos em consideração quando um servidor bem determinado e esclarecido para Listagem 10. Reiniciando o serviço ssh
ssh é configurado. Para isso, algumas con- todos os funcionários da organização.
figurações importantes devem ser feitas Pois caso algo seja violado, existe um $invoke-rc.d ssh restart
no arquivo de configuração, conforme documento para comprovar que aquilo Listagem 11. Listagem de portas utilizando nmap.
apresenta a Listagem 9. não é certo.
#nmap -A -p 1-65535 localhost
Após efetuar as alterações, o serviço ssh Através de um script é possível localizar PORT STATE SERVICE VERSION
precisa ser reiniciado (ver Listagem 10). e alterar essa permissão, como apresenta
a Listagem 14. 22/tcp open ssh protocol 2.0
25/tcp open smtp Postfix smtpd
Portas Abertas Depois de criado o script, é necessário 53/tcp open domain dnsmasq 2.47
Quando o sistema novo é instalado, alterar suas permissões, deixando que 80/tcp open http httpd 2.2.11
alguns aplicativos (serviços) podem abrir apenas o usuário root possa executá-lo, e 631/tcp open ipp CUPS 1.3.9
3306/tcp open mysql MySQL 5.0.75-0
portas introduzindo assim vulnerabili- retirando qualquer permissão dos demais
dades no sistema. Com o aplicativo nmap, usuários e grupos. Para essa função é usa- Listagem 12. Bloqueando a porta 80 com iptables.
pode-se fazer uma busca por todas as do o comando chmod (Listagem 15).
#iptables –A INPUT –i eth0 –p tcp –dport 80 –j DROP
portas abertas no sistema e, em segui- O primeiro passo é executar o script,
da, podem ser criadas regras no firewall e como parâmetro deverá ser utilizado Listagem 13. Conferindo portas com nmap.
para bloquear as que não devem estar “n” ou “N”. Nesse modo ele apenas irá
#nmap -A -p 80 localhost
disponíveis. Uma listagem de portas feita gerar uma lista de binários que possuem PORT STATE SERVICE VERSION
utilizando o aplicativo nmap pode ser visto a permissão de SUID-BIT no sistema, de 22/tcp open ssh protocol 2.0
na Listagem 11. acordo com a Listagem 16. 25/tcp open smtp Postfix smtpd
53/tcp open domain dnsmasq 2.47
Analisando o resultado do nmap pode- Observe no diretório /root/audito-
80/tcp filtered http
se observar que a porta 80 está aberta, ria que o arquivo list.suid foi criado 631/tcp open ipp CUPS 1.3.9
normalmente usada por um servidor Web. (Listagem 17). 3306/tcp open mysql MySQL 5.0.75-0
Se esse serviço não for utilizado, a porta Como se trata de um sistema recém-
deverá ser fechada, evitando que vulnera- instalado, o administrador não deve
#!/bin/bash
case $1 in
start)
# monta as partições listadas
mount -o remount,rw,noexec /var
mount -o remount,rw,noexec /tmp
mount
Figura 7. Comando mount, em destaque a partição /tmp com opção noexec echo “Partições SEM permissão de execução”
;;
stop)
# monsta as partições listadas
mount -o remount,rw,exec /var
Figura 8. Tentando executar um binário em uma partição com a opção noexec aplicada mount -o remount,rw,exec /tmp
mount
echo “ Partições COM permissão de execução “
;;
*) echo “erro use $0 {start|stop}”
exit 0
;;
esac
exit 1
anomalias) sem gerar grande número de usual conforme o perfil criado. A resposta a • Geralmente produz um grande número
alarmes falsos; esta detecção realizada pelo IDS baseado em de alarmes falsos devido ao comportamen-
•P odem diagnosticar o uso de uma ferra- anomalia é o bloqueio do acesso à Internet to imprevisível de usuários e sistemas;
menta ou técnica específica de ataque. para aquele usuário/terminal, que poderia • Requer muitas sessões para coleta de
ser uma verdade se não houvesse esta exce- amostra de dados do sistema, de modo a
Desvantagens da detecção baseada em ção, porém foi tratada na verdade como um caracterizar os padrões de comportamento
assinaturas: falso positivo. normais.
• Estes tipos de detectores somente podem Infelizmente, este tipo de detecção ge-
detectar ataques conhecidos, ou seja, que ralmente produzirá um grande número Detecção baseada em especificação
estão incluídos no conjunto de assinaturas de alarmes falsos, pois o comportamento Define um modelo muito mais complexo
que o IDS possui, necessitando-se assim de usuários e sistemas pode variar am- que os anteriores, já que sua análise pode
de constante atualização deste conjunto plamente. Apesar desta desvantagem, ser realizada nas camadas abaixo da cama-
(assim como os antivírus); pesquisadores afirmam que a detecção da de aplicação da pilha de protocolos da
• A maioria destes detectores possui assi- baseada em anomalias pode identificar Internet ou no nível de controle do sistema
naturas muito específicas, não detectando novas formas de ataques, coisa que a detec- operacional. Ela se restringe à operação
dessa forma as variantes de um mesmo ção baseada em assinatura não pode fazer. correta de um programa ou protocolo, e
ataque. Além disso, algumas formas de detecção monitora a execução do programa com
baseadas em anomalias produzem uma respeito à definição estipulada. Essa téc-
Detecção por anomalia saída que pode ser usada como fonte de nica pode fornecer a descoberta de ataques
Detectores baseados em anomalias iden- informações para detectores baseados previamente desconhecidos, com isso
tificam comportamentos não usuais (ano- em assinaturas. Por exemplo, um detector potencializando sua atividade, além de
malias) em um computador ou na rede. baseado em anomalias pode gerar um nú- apresentar taxas muito baixas de falsos po-
Eles funcionam a partir do pressuposto mero que representa a quantidade normal sitivos. Este modelo de detecção não é tão
que ataques são diferentes da atividade de arquivos acessados por um usuário par- amplamente divulgado como os demais
normal e assim podem ser detectados por ticular, com isso um detector baseado em citados neste artigo especialmente por sua
sistemas que identificam estas diferenças. assinaturas pode possuir uma assinatura maior complexidade de desenvolvimento
Este tipo de detecção constrói um perfil que gera um alarme quando esse número e restrição à aplicação que se destina, uma
que representa o comportamento normal excede 10%, por exemplo. vez que ele visa, por exemplo, uma única
de usuário, nós e conexões de rede. Este Ainda que alguns IDSs comerciais in- aplicação.
perfil é construído a partir de dados cluam formas limitadas de detecção de Pode-se pensar em um exemplo para
coletados em um período de operação anomalias, poucos, se nenhum, confiam este modelo de detecção onde será rea-
considerado normal, geralmente sob a somente nesta tecnologia. As detecções lizada uma pré-análise das chamadas
supervisão do administrador da rede em de anomalias existentes em sistemas co- de um servidor de FTP ao núcleo do
questão. Estes detectores monitoram a rede merciais geralmente giram em torno da sistema operacional. Todas as chamadas
e usam uma variedade de medidas para detecção de scans de rede ou portas. Entre- e principalmente as consideradas críticas
determinar quando os dados monitorados tanto, a detecção por anomalias continua ao sistema são analisadas a fim de se
estão fora do normal, ou seja, desviando na área de pesquisa e pode se tornar muito observar possíveis alterações posteriores
do perfil. importante para a o desenvolvimento de com objetivos maliciosos. Este tipo de de-
Um exemplo clássico a este tipo de detec- IDSs no futuro de forma cada vez mais tecção é considerada de mais baixo nível
ção é quando um usuário específico utiliza robusta. do que as demais citadas neste artigo, o
sempre o acesso à Internet durante certo A seguir são listadas as vantagens e que também demonstra um conhecimento
período do dia, no horário comercial, por desvantagens da utilização da detecção muito mais profundo das ações realizadas
exemplo. Imaginemos que este usuário é por anomalia. pelo programa a ser analisado assim como
um gerente da empresa que está sendo mo- Vantagens da detecção por anomalias: do sistema operacional e das funções de
nitorada pelo IDS baseado em anomalias. •D etecta comportamentos não usuais, rede.
Este IDS passou toda uma semana criando logo possui a capacidade de detectar sin-
o perfil deste usuário e, a partir do último tomas de ataques sem um conhecimento IDS baseado em rede
dia daquela semana, emprega seu perfil prévio deles; Este tipo de IDS tem por objetivo detec-
como mandatário ao horário permitido de •P roduz informações que podem ser tar ataques pela análise dos pacotes que
utilização da Internet. Certo dia, após a de- usadas na definição de assinaturas para trafegam pela rede através de uma escuta
tecção estar ativa, o gerente deseja utilizar o detectores baseados em assinaturas. em um segmento de rede (como um sniffer-
acesso à Internet durante a madrugada para farejador de pacotes). Com isso, um IDS
entregar um relatório de última hora, nada Desvantagens da detecção por anomalias: tem a capacidade de monitorar o tráfego
Figura 5. Tela de instalação do MySQL. Figura 6. Tela de inicialização da configuração do Prelude-Manager com o MySQL.
Figura 7. Escolha do Banco de Dados MySQL Figura 8. Senha do usuário root criada na instalação do MySQL
Figura 9. Início da configuração do banco de dados para Prewikka Figura 10. Seleção do banco de dados utilizado
Figura 11. Senha do usuário root criada na instalação do MySQL Figura 12. Tela de alerta de eventos da interface web Prewikka
O administrador pode definir que o Tabela 1. Comparação entre o protocolo TCP e o UDP
DHCP funcionará de uma das quatro
formas seguintes: Automática, Dinâmica, internet. Isto acontece por que o DHCP trafegam na rede por este ser o protocolo
Manual ou todas juntas, através da edição reconhece o computador e libera as confi- responsável em definir o endereço IP úni-
do arquivo dhcpd.conf. gurações de IP, Maskara, Gateway e DNS co de cada maquina na rede.
• Automática: Nesta configuração, uma automaticamente via rede. Essa vantagem
determinada quantidade de IPs é definida é muito útil em duas vertentes, uma quan- Comparação entre UDP e TCP
para utilização na rede. Por exemplo, ima- do se muda constantemente o computador É sempre interessante verificar como
gine que no código foi especificado que o de lugar no caso do notebook, e outra os protocolos se comportam perante a
servidor iria fornecer IPs no intervalo de quando se faz necessário colocar uma nova necessidade de estabelecer uma conexão
192.168.10.1 a 192.168.10.50. Dessa forma, máquina na rede. para entrega de dados, pois o DHCP só
toda hora que uma máquina cliente fizer funciona pela existência deles.
uma solicitação, será direcionado a esta Protocolos UDP & TCP/IP A Tabela 1 apresenta um comparativo do
máquina um IP que ainda não esteja sendo Como podemos notar, o DHCP trabalha funcionamento dos dois protocolos.
utilizado dentro desta faixa; em função destes protocolos de rede: o A partir de agora fica mais fácil entender
•D inâmica: Muito parecido com o Au- UDP para mensagens via Broadcast; e como funciona o processo de comunicação
tomático. Entretanto, nesta configuração o TCP/IP para comunicação e troca de entre a máquina solicitante e o servidor
especifica-se o tempo que a máquina arquivos. Então nada mais justo do que DHCP. Quando uma máquina está na rede
poderá ficar conectada na rede. Isso é útil compreender um pouco sobre estes três e precisa de configurações válidas, ela irá
quando o administrador deseja definir protocolos que são vitais para o funciona- enviar uma solicitação de configurações
um tempo limite de conexão. Mas essa mento das redes de computadores: válidas via Broadcast através do protocolo
configuração geralmente não é utilizada, •U DP: ou User Datagram Protocol, é um UDP por ser mais rápido. E o servidor
pois os funcionários utilizam as maqui- padrão de protocolo de rede definido DHCP irá liberar para a máquina um IP
nas de uma corporação constantemente e pela RFC 768. Este padrão é utilizado por para esta conseguir utilizar o protocolo
seria estressante toda hora chegar alguém alguns programas para transportar dados TCP para suas tarefas que devem ser
falando que a maquina saiu da rede; de forma mais rápida entre dois hosts seguras, como tráfego de dados incor-
• Manual: Com essa configuração torna- (computadores) do que o TCP. O UDP ruptíveis.
se possível definir que uma máquina X consegue essa velocidade por não verificar
sempre tenha o mesmo IP, independente se os dados foram entregues sem erros e
do lugar e horário que ela se encontre se chegaram ao destinatário;
conectada na rede. Isso se torna possível • TCP: ou Transmission Control Protocol, é
devido à utilização do endereço MAC da o principal protocolo de rede devido a sua
placa de rede no código de configuração do alta confiabilidade. Este protocolo executa
DHCP, que garantirá sempre um IP espe- importantes funções de verificação de
cífico para este endereço MAC, conhecido integridade dos dados, o que garante sua
amplamente como endereço físico da placa confiabilidade, porém, não consegue ser
de rede. tão rápido quanto o UDP. Por outro lado,
também garante que os dados cheguem ao
A principal vantagem de ter um servidor destinatário de forma incorruptível;
DHCP gerenciando a rede é que bastando • I P: ou Internet Protocol, é o protocolo
conectar um computador ou notebook conhecido como protocolo de endereça-
em um terminal gerenciado pelo servidor mento. O protocolo IP tem a finalidade
já será o suficiente para termos acesso à de endereçar as mensagens (dados) que
realização do download e instalação do é o dhcpd.conf, encontrado no diretório / Ele deve mostrar um conteúdo similar
pacote. etc/dhcp3/. à Listagem 1.
# # default-lease-time 600;
# Sample configuration file for ISC dhcpd for Debian # max-lease-time 7200;
# #}
# Attention: If /etc/ltsp/dhcpd.conf exists, that will be used as # Hosts which require special configuration options can be listed in
# configuration file instead of this file. # host statements. If no address is specified, the address will be
# # allocated dynamically (if possible), but the host-specific information
# $Id: dhcpd.conf,v 1.1.1.1 2002/05/21 00:07:44 peloy Exp $ # will still come from the host declaration.
# #host passacaglia {
# The ddns-updates-style parameter controls whether or not the server will # hardware ethernet 0:0:c0:5d:bd:95;
# attempt to do a DNS update when a lease is confirmed. We default to the # filename “vmunix.passacaglia”;
# behavior of the version 2 packages (‘none’, since DHCP v2 didn’t # server-name “toccata.fugue.com”;
# have support for DDNS.) #}
ddns-update-style none; # Fixed IP addresses can also be specified for hosts. These addresses
# option definitions common to all supported networks... # should not also be listed as being available for dynamic assignment.
option domain-name “example.org”; # Hosts for which fixed IP addresses have been specified can boot using
option domain-name-servers ns1.example.org, ns2.example.org; # BOOTP or DHCP. Hosts for which no fixed address is specified can only
default-lease-time 600; # be booted with DHCP, unless there is an address range on the subnet
max-lease-time 7200; # to which a BOOTP client is connected which has the dynamic-bootp flag
# If this DHCP server is the official DHCP server for the local # set.
# network, the authoritative directive should be uncommented. #host fantasia {
#authoritative; # hardware ethernet 08:00:07:26:c0:a5;
# Use this to send dhcp log messages to a different log file (you also # fixed-address fantasia.fugue.com;
# have to hack syslog.conf to complete the redirection). #}
log-facility local7; # You can declare a class of clients and then do address allocation
# No service will be given on this subnet, but declaring it helps the # based on that. The example below shows a case where all clients
# DHCP server to understand the network topology. # in a certain class get addresses on the 10.17.224/24 subnet, and all
#subnet 10.152.187.0 netmask 255.255.255.0 { # other clients get addresses on the 10.0.29/24 subnet.
#} #class “foo” {
# This is a very basic subnet declaration. # match if substring (option vendor-class-identifier, 0, 4) = “SUNW”;
#subnet 10.254.239.0 netmask 255.255.255.224 { #}
# range 10.254.239.10 10.254.239.20; #shared-network 224-29 {
# option routers rtr-239-0-1.example.org, rtr-239-0-2.example.org; # subnet 10.17.224.0 netmask 255.255.255.0 {
#} # option routers rtr-224.example.org;
# This declaration allows BOOTP clients to get dynamic addresses, # }
# which we don’t really recommend. # subnet 10.0.29.0 netmask 255.255.255.0 {
#subnet 10.254.239.32 netmask 255.255.255.224 { # option routers rtr-29.example.org;
# range dynamic-bootp 10.254.239.40 10.254.239.60; # }
# option broadcast-address 10.254.239.31; # pool {
# option routers rtr-239-32-1.example.org; # allow members of “foo”;
#} # range 10.17.224.10 10.17.224.250;
# A slightly different configuration for an internal subnet. # }
#subnet 10.5.5.0 netmask 255.255.255.224 { # pool {
# range 10.5.5.26 10.5.5.30; # deny members of “foo”;
# option domain-name-servers ns1.internal.example.org; # range 10.0.29.10 10.0.29.230;
# option domain-name “internal.example.org”; # }
# option routers 10.5.5.1; #}
# option broadcast-address 10.5.5.31;
Note que a maior parte do arquivo fonte Listagem 2. Código fonte para configuração do DHCP.
da Listagem 1 é constituída por comentá-
option domain-name “ServidorDHCP”;
rios (“#”) que definem especificações de ddns-update-style none;
uso, que podem ser pesquisadas afim de authoritative;
um aprofundamento em um estudo futuro subnet 192.168.10.0 netmask 255.255.255.0 {
Artigo sobre configuração do serviço DHCP feito pela UNICAMP. Blog com tutorial que explica como configurar um servidor DHCP
http://www.ccuec.unicamp.br/revista/infotec/linux/linux19-1.html no Linux Debian e Ubuntu utilizando DHCP3.
http://www.xjulio.info/blog/configurando-um-servidor-de-dhcp-no-
Artigo do site vivaolinux que aborda uma maneira fácil e rápida de
ubuntu-e-debian-com-o-dhcp3-server
configurar o servidor DHCP no Linux Conectiva.
http://www.vivaolinux.com.br/artigo/Servidor-DHCP-rapido-e-facil-para- Site que visa responder algumas perguntas básicas sobre DHCP, como:
Conectiva-Linux O que é DHCP? Para que serve? Como funciona? etc.
http://www.rnp.br/newsgen/9705/n1-2.html
Tutorial que explica como deve ser o conteúdo do arquivo dhcpd.conf no
Linux Ubuntu. Site de Julio Battisti com um excelente artigo explicando sobre os
http://thiagodfreitas.wordpress.com/2007/11/13/arquivo-de-configuracao- protocolos de redes.
etcdhcp3dhcpdconf-no-ubuntu/ http://www.juliobattisti.com.br/artigos/windows/tcpip_p11.asp
Artigo do site vivaolinux que mostra como implementar um servidor Site Guia do Hardware com um artigo que visa explicar as máscaras de
DHCP. sub-rede.
http://www.vivaolinux.com.br/artigo/Implementando-um-servidor-DHCP/ http://www.gdhpress.com.br/redeseservidores/leia/index.php?p=cap3-2
Tutorial feito pelo MIT explicando como configurar um servidor DHCP
no Linux Red Hat Enterprise.
http://web.mit.edu/rhel-doc/3/rhel-sag-pt_br-3/s1-dhcp-configuring-server.html
A Arquitetura do Hyper-V
A Figura 5 apresenta os principais pontos
da arquitetura do Hyper-V.
O Partition (Partição) é a unidade básica
de isolamento suportada pelo hypervisor.
Uma partição é composta por um espaço
de endereço físico e um ou mais pro-
cessadores virtuais. Além disso, a uma
partição podem ser atribuídos os recursos
de hardware específico (memória, disposi-
tivos e ciclos de CPU) e as permissões de
determinados direitos de acesso.
Já a Partição Parent (Pai) trata-se de uma
partição que cria partições filho (child) e
contém uma pilha de virtualização (Virtu-
alization Stack) para controlar as partições
filhas (Child Partition).
A Partição Child (Filha) é o software ro-
dando dentro de uma partição. O hóspede
pode consistir de um sistema operacional
cheio de recursos como o Windows XP ou
um kernel pequeno, para fins especiais.
Além destes, outros conceitos presentes
na arquitetura do Hyper-V são: Figura 5. Arquitetura do Hyper-V
• Hypercalls: servem para a comunica-
ção ente as camadas das partições com o ponto de extremidade do servidor e VSCs altamente otimizado entre as partições
hypervisor; são o ponto de extremidade do cliente virtuais, diferente de outras técnicas que
• Virtualization Stack (Pilha de Vir- que viabilizam as comunicações cliente/ são mais lentas devido à maior sobrecarga
tualização): os componentes de virtua- servidor para troca de informações sobre que impõe a emulação.
lização hospedados na partição pai são as funcionalidades dos dispositivos. Todas
mencionados coletivamente como a pilha as comunicações entre os VSPs e os VSCs Recursos do Hyper-V
de virtualização. A pilha de virtualização são feitas sobre o VMBus; A partir da arquitetura apresentada
é executada na partição pai e faz acesso • Virtualization Services Clients (VSC): na seção anterior, o Hyper-V oferece os
direto ao hardware do computador host. são dispositivos sintéticos que residem na seguintes recursos:
Na implementação do Microsoft Hyper-V partição filha que usam recursos de har- • Amplo Suporte a Sistemas Operacio-
do modelo hypervisor Tipo-1, a pilha de dware fornecidos pelos VSPs na partição nais: executa, simultaneamente, diferentes
virtualização é composta pelos seguintes pai, comunicando sobre o VMBus. VSCs tipos de sistemas operacionais incluindo
componentes: são automaticamente disponibilizados os de 32 bits e 64 bits. Além disso, permite o
- Virtual Machine Management Service; para a instalação quando os Integration uso de sistemas operacionais em diferentes
- Virtual Machine Worker Service; Services (serviços de Integração) estão ins- plataformas de servidor, como Windows e
- Virtual Devices (Dispositivos Virtuais); talados na partição filha, permitindo que algumas distribuições Linux, como o Suse
- Virtualization Infrastructure Driver; o sistema operacional virtualizado utilize e Rad Hat;
- Windows Hypervisor Interface Library; dispositivos de hardware sintéticos (dis- • Extensibilidade: O Hyper-V tem como
- Virtualization Service Providers (VSP); positivos virtuais mapeados diretamente base os padrões de interface Windows
- Virtual Machine Bus (VMBus). para os dispositivos físicos). Sem o Inte- Management Instrumentation (WMI) e as
gration Services instalado, uma partição interfaces de programação de aplicativo
• Virtualization Services Providers filha só pode usar dispositivos emulados (APIs) para permitir que, independente de
(VSP): estão hospedados na partição pai (drivers projetados para suportar sistemas fornecedores de software (ISVs), os desen-
e proporcionam uma forma de publicação operacionais antigos); volvedores criem rapidamente ferramen-
de serviços para partições filho, forne- • Virtual Machine Bus (VMBus): canal tas personalizadas, utilitários e melhorias
cendo recursos de I/O relacionados com de comunicação entre a partição pai e as para a plataforma de virtualização;
os Virtualization Service Clients (VSCs) partições filhas. O objetivo do VMBus é • Network Load Balancing: O Hyper-V
rodando nas partições filho. VSPs são o fornecer um mecanismo de comunicação inclui capacidades de switch virtual que
Figura 10. Breve introdução sobre o Hyper-V Figura 11. Selecione uma placa de rede para a rede virtual
Figura 18. Conectando o disco virtual de 20Gb dinamicamente expansível Figura 19. Sumário das configurações da VM.
Figura 26. Iniciando a instalação do Windows 7. Figura 27. Tela inicial da instalação do Windows 7