O documento apresenta uma plataforma de ferramentas de gerenciamento composta por seis ferramentas (Iptables, Nmap, Nessus, Wireshark, Rootkit Hunter e Lanspy) para melhorar a segurança de redes locais, descrevendo cada ferramenta e como pode ser útil para detectar vulnerabilidades e prevenir ataques.
1. Plataforma de Ferramentas de Gerenciamento: Visando a
Segurança na Rede
Ana Claudine Siqueira Corrêa , Fábio Corrêa Rodrigues , João Batista Xavier , Marlison
1 1 1
Henrique Paiva Freitas , Rafael Allan Almeida Batalha Rodrigues , Romário Roberto de
1 1
Pádua Andrade 1
1
Faculdade de Sistemas de Informação – Universidade Federal do Pará (UFPA)
annkatlover@gmail.com
raf.bsiufpa@gmail.com
noturnobsi31@hotmail.com
marlisonhbsi@gmail.com
randrade2006@gmail.com
jb.xavier@hotmail.com
Resumo. Vulnerabilidades em redes crescem a cada dia, e isso é motivo de preocupação
pra os gerentes que pretendem manter sua rede o mais integra possível. Por esse motivo o
gerenciamento deve ser bem administrado, controlado, delimitado e planejado, buscando
principalmente a segurança e integridade de seus dados. Tendo em vista esse contexto o
presente artigo busca servir como referência apresentando uma plataforma básica de
gerência composta de seis ferramentas que visam à segurança de uma rede local.
1. Introdução
As redes de computadores estão a cada dia mais vulneráveis a ataques de hackers e
crackers. Essa vulnerabilidade é matéria de noticiários na TV, grandes sistemas do governo
sendo invadidos, sendo o ataque mais recente ao sistema de energia elétrica controlado pelo
governo federal. Isso acontece quase sempre porque essas redes não apresentam uma
plataforma de gerenciamento eficaz, que evite esses ataques, protegendo dados sigilosos.
Bons administradores devem levar em consideração questões de segurança no
desenvolvimento de projetos de redes para que dados e recursos imprescritíveis de uma
empresa, por exemplo, não sejam acessados por pessoas e/ou fontes externas não
autorizadas, contudo a segurança não se dá de forma total e efetiva.
Segundo SOARES(1995) vulnerabilidade é qualquer falha ou fraqueza que pode ser
explorada para se ter acesso a um sistema ou os dados que ele contém. Segurança pode ser
definida como a minimização das vulnerabilidades dos recursos ou a diminuição do valor
de qualquer recurso na rede. Considerando isso, pode-se atentar com mais cuidado para a
segurança no gerenciamento de uma rede, estando para isso munido de uma excelente
plataforma de gerenciamento que vise principalmente o bloqueio ao acesso de estranhos a
sua rede, porém não ignorando a necessidade de prevenir ataques provenientes de usuários
internos.
Nesse artigo será apresentada uma plataforma de gerenciamento experimental
composta por seis ferramentas que, entre outras coisas, vão ajudar a detectar possíveis
vulnerabilidades em uma rede e prevenir ataques a essa mesma rede. As ferramentas
escolhidas foram: Iptables, Nmap, Nessus, Wireshark, Rootkit Hunter e Lanspy. Para cada
ferramenta será apresentada uma breve apresentação e uma demonstração de como a
ferramenta pode ser útil na solução do problema. A seção seguinte pretende delimitar o
2. problema principal a ser resolvido e detalhar a preparação do ambiente onde foi realizado o
estudo de caso para melhor compreensão do conteúdo deste artigo.
2. Detalhamento do Problema e Ambiente de Configuração
O problema definido para estudo foi a exploração de vulnerabilidades e possibilidades de
ataque, ou seja, manutenção da segurança. Portanto a plataforma construída usando as seis
ferramentas já citadas se propõe a detectar mudanças ou anomalias em redes levando o
gerente a analisar a situação através dos dados coletados e tomar providências para sanar as
deficiências nela encontradas. Como a plataforma visa apenas à segurança, é necessário que
esta trabalhe paralelamente a mais ferramentas de gerência que executem contabilidade de
inventário e levantamento de desempenho para maior eficácia.
A instalação e configuração das ferramentas foi realizada no laboratório L1 em uma
máquina com Sistema Operacional Ubuntu/Linux e Windows XP rodando em uma
máquina virtual. Estas ferramentas são todas freeware, não precisam de licença paga para
uso. Algumas das ferramentas abordadas e dependências necessárias não vêm no
repositório padrão do Ubuntu, sendo portanto necessário atualizar o repositório. Para
atualizar o repositório, deve-se adicionar algumas linhas no arquivo /etc/apt/sources.list.
Esta operação é detalhada no fórum oficial da distribuição ubuntu, sendo que a
configuração da sources.list utilizada neste estudo está disponível no tópico
http://ubuntuforum-br.org/index.php?topic=50071.0 .
Antes da configuração das ferramentas escolhidas, é necessário preparar o ambiente
para a instalação dos aplicativos, atualizando a lista de pacotes e instalando a máquina
virtual, para isso deve-se executar os comandos:
# apt-get update
# apt-get upgrade
# apt-get install virtualbox
A configuração da máquina virtual não será abordada nesse artigo, mas pode ser
acessada através dos endereços http://www.virtualbox.org e http://www.vivaolinux.com.br/
artigo/Como-configurar-e-instalar-o-VirtualBox/. Uma vez preparado o ambiente, pode-se
iniciar a instalação e os testes com as ferramentas de gerenciamento, os processos serão
detalhados nas seções seguintes. Todas as opções adicionais das ferramentas abordadas,
com exceção do Lanspy, podem ser acessadas através do manual ou help que acompanham
os pacotes através dos comandos:
$ man <nome_da_ferramenta>
$ <nome_da_ferramenta> --help
3. 3. Explorando Brevemente as Ferramentas Iptables, Nmap, Nessus, Wireshark,
Rootkit Hunter e Lanspy
Como dito anteriormente, a plataforma de gerenciamento consistirá em um conjunto de seis
ferramentas, que serão descritas abaixo. Para cada uma dessas ferramentas será apresentada
uma breve descrição seguida de uma demonstração do uso da ferramenta de forma prática,
procurando focar o problema em questão, vulnerabilidades na rede.
3.1. Wireshark
O Wireshark é o melhor analisador de tráfego de rede que se conhece. Ele verifica os
pacotes transmitidos pela placa de rede e placa de fax modem, por exemplo. É um sniffer,
um software voltado para detectar problemas de rede, conexões suspeitas e qualquer outra
atividade relacionada à rede.
O programa funciona basicamente analisando os pacotes recebidos e organiza-os
por protocolo. Todo o tráfego de entrada e saída é analisado e mostrado em uma lista de
fácil navegação. Com este analisador de protocolos o gerente da rede pode controlar tudo o
que os usuários estão acessando. Dessa forma ele pode detectar a ocorrência de alguma
irregularidade, algum intruso.
3.1.1. Utilizando o wireshark
Após iniciar o programa, será necessário escolher uma interface para assim poder analizar o
tráfego de pacotes naquela interface. Clicando no ícone "Live list of the capture interfaces",
você escolherá a interface, após isso é necessário clicar em "Start". Assim o software
começará a analisar todo o tráfego de pacotes que passar pela interface.
Figura 1. Interface do Wireshark.
4. O wireshark permite fazer filtros dos pacotes, caso verifique-se que o tráfego de
pacotes seja muito grande na rede. Você faz isso clicando em "Expression", quando então
irá aparecer uma lista para filtrar esses pacotes, tornando fácil a análise de cada pacote.
Dessa forma você somente o pacotes que desejar analisar.
Figura 2. Filtro de pacotes por protocolo.
O wireshark lhe permite escolher as opções de captura, ou seja, você pode capturar
pacotes endereçados a todas as máquinas da rede ou então pacotes endereçados apenas a
sua máquina. Caso escolha a primeira opção deixe marcado a opção "Capture packets in
promiscuous mode". O software também lhe permite ver os pacotes no momento em que
são capturados ou você pode capturá-los para vê-los posteriormente. Caso você queira ver
os pacotes enquanto são capturados, deixe a opção "Update list of packets in real time",
marcada. E ainda há uma opção para você parar a captura de pacotes depois de uma certa
quantidade de dados ser capturados.
3.2. Iptables
No Linux, a filtragem de pacotes por firewall ocorre dentro do kernel, através de um
framework chamado netfilter. Esse framework realiza a filtragem de todos os pacotes que
atravessam as interfaces de redes do firewall. Versões mais antigas do kernel do linux
apresentavam o ipchains como modulo de comunicação com o Netfilter. A partir da versão
2.4. do kernel, houve uma reformulação nos comandos do ipchains, dando origem ao
iptables. O iptables veio de modo a substituir o ipchains e ipfwadm e tem como
característica fundamental manter estabilidade e uma melhor flexibilidade na
implementação de regras de filtragem de pacotes do que seu antecessor ipchains.
5. 3.2.1. Funcionamento do IpTables
Segundo Elgio Schlemer, o iptables usa o conceito de "ganchos" do Netfilter, permitindo
avaliar um datagrama em alguns pontos dentro do kernel. Desse modo pode-se aplicar as
lista de regras de filtragem tanto em pacotes que chegam a maquina através da rede, quanto
pacotes gerados na maquina com o destino a própria maquina.
Basicamente o iptables se baseia em pares de regras e ações. As regras definem em
quais pacotes atuar e as ações definem qual atitude deve ser tomada quando um pacote
bater com a regra em questão. As regras e ações são armazenadas pelo iptables listas de
tabelas. Além de realizar suas tarefas de forma veloz, segura, eficaz e econômica, apresenta
um leque de possibilidades tais como:
• Implementação de filtros de pacotes;
• Desenvolvimento de QOS sobre o tráfego;
• suporte a Source Network Address Translation (SNAT) e DNAT;
• Direcionamento de endereços e portas;
• Mascaramento de tráfego;
• Detecção de fragmentos;
• Monitoração de tráfego;
• Bloqueio de ataque de Spoofing, Syn-Flood, DOS scanners ocultos, pings da morte,
entre muitos outros.
3.2.2. Tabelas IPTables
O iptables possui tabelas onde ficam armazenados às regras para filtragem de pacotes,
assim ao grosso modo iptables é um banco de dados sobre regras de filtragem de pacotes.
Das tabelas existentes no iptabes as mais importantes são as tabelas Filter, Nat e Mangle.
3.2.2.1. Tabela Filter
Nessa tabela estão contidas as regras que determinam se um pacote deve ser aceito ou não
pelo firewall. As regras que estão inseridas nessa tabela não podem modificar/alterar as
configurações dos pacotes analisados.
3.2.2.2. Tabela NAT
A tabela NAT (Network Address Translation) possui um conjunto de regras para
roteamento de pacotes que entram na interface de rede. As regras definidas na tabela NAT
têm o privilegio de alterar as características como destino e origem de um pacote. Assim
como a tabela filter, a tabela NAT possui três conjuntos de regras: PREROUTING,
POSTROUTING e OUTPUT.
6. 3.2.2.3. Tabela Mangle
Implementa alterações especiais em pacotes em um nível mais complexo. A tabela mangle
pode alterar a prioridade de entrada e saída de um pacote baseado no type of service (TOS)
ao qual o pacote se destinava.
3.2.3. Opções Adicionais
Os comandos das chains são definidos por:
• -A: adiciona um nova entrada ao fim da lista de regras;
• –D: apaga uma regra específica da lista;
• –L: exibe as regras existentes na lista;
• –P: altera a política padrão das chains. Inicialmente, todas as chains estão setadas
como ACCEPT, ou seja, aceitam todo e qualquer tipo de tráfego;
• –F: este comando remove todas as entradas adicionadas a lista de regras sem alterar
a política padrão (-P);
• –I: insere uma nova regra ao início da lista de regras, contrário do comando - A;
• –R: substitui uma regra já adicionada por outra;
• –N: este comando nos permite inserir ou criar uma nova chain na tabela específica.
• –E: renomeia uma chain;
• –X: apaga uma chain criada pelo administrador do Firewall.
As seguintes ações pode serem configuradas:
• -p: especifica o protocolo aplicado a regra. Pode ser qualquer valor numérico
• Especificado no arquivo /etc/protocol ou o próprio nome do protocolo (TCP, UDP,
ICMP, etc...);
• –i: especifica a interface de entrada a ser utilizada. Como um Firewall possui mais
de uma interface, esta regra acaba sendo muito importante para distinguir a que
interface de rede o filtro deve ser aplicado.
• –o: especifica a interface de saída a ser utilizada e se aplica da mesma forma que a
regra –i, porém somente as regras de OUTPUT e FORWARD se aplicam as regras;
• –s: especifica a origem do pacote ao qual a regra deve ser aplicada. A origem pode
ser um host ou uma rede;
• –d: especifica o destino do pacote ao qual a regra deve ser aplicada. Sua utilização
se dá da mesma maneira que a a opção –s;
• !: significa exclusão e é utilizada quando se deseja aplicar um exceção a um regra. É
utilizada juntamente com as opções –s, -d, -p. –i. –o;
• –j: define o alvo (target) do pacote caso o mesmo se encaixe em uma regra;
7. • --sport: porta de origem do pacote, com está opção é possível aplicar filtros com
base na porta de origem do pacote. Somente a aplicados os protocolos TCP ou
UDP;
• --dport: porta de destino, especifica a porta de destino do pacote e funciona da
forma similar a regra –sport.
• Os seguintes alvos podem ser configurados:
• ACCEPT: corresponde a aceitar, ou seja, permitir que a entrada e passagem do
pacote em questão;
• DROP: corresponde a descartar um pacote que é conduzido a este alvo (Target) é
descartado imediatamente. O Target DROP não informa ao dispositivo emissor do
pacote o que houve;
• REJECT: corresponde a rejeitar um pacote conduzido para este alvo (Target) é
automaticamente descartada, a diferença do REJECT para o DROP é que o mesmo
retorna uma mensagem de erro ao host emissor do pacote informando o que houve;
• LOG: cria uma entrada de log no arquivo /var/log/messages sobre a utilização dos
demais alvos (Targets), justamente por isso deve ser utilizado antes dos demais
alvos.
• RETURN: retorna o processamento do chain anterior sem processar o resto do chain
atual;
• QUEUE: encarrega um programa em nível de usuário de administrar o
processamento de fluxo atribuído ao mesmo;
• SNAT: altera o endereço de origem das máquinas clientes antes dos pacotes serem
roteados;
• DNAT: altera o endereço de destino das máquinas clientes;
• REDIRECT: realiza o redirecionamento de portas em conjunto com a opção
--toport;
• TOS: prioriza a entrada e saída de pacotes baseados em seu tipo de serviço,
informação que esta no header do IPV4. (BORSCHEID 2005)
3.3. Nmap
Nmap é um poderoso e eficiente portscan (varredor de porta) capaz de gerar respostas
em tempo hábil da situação das portas TCP e UDP de um ou inúmeros computadores de
uma rede. Esta ação é importante, pois uma vez sendo sabedor de quais portas estão abertas
pode-se o quanto mais rápido possível recuperar-las e se proteger contra prováveis ataques
de criminosos.
3.3.1. Utilizando o Nmap
Para usufruir de todas as funcionalidades do Nmap você precisa estar logado como
superusuario/root (#) em um terminal. Para começar pode-se realizar a varredura
diretamente em uma máquina na rede, através do seguinte comando:
8. # nmap <ip_da_maquina_a_ser_escaneada>
Exemplo:
# nmap 10.125.100.20
Caso queira escanear de uma única vez uma faixa inteira de endereços, digite:
# nmap <faixa_de_endereços>
Exemplo:
# nmap 10.125.100.20-40
Se você acrescentar a opção “-sV” terá mais detalhes da maquina
# nmap -sV <ip_da_maquina_a_ser_escaneada >
Outra opção significativa é “-O” o qual faz com que o nmap identifique qual é o
Sistema Operacional (SO) utilizado pelas máquinas dispersas na rede.
# nmap -O <faixa_de_ip’s>
A opção “-sS” dificulta o reconhecimento de invasão por parte das máquinas-alvo.
Essa possibilidade de se reconhecer o agente da scans torna-se real quando a maquina-alvo
tem instalado uma espécie de detector de intrusos como é o caso do Snort.
# nmap -sS <faixa_de_ip’s>
Ao acrescentar opção “-p” é possivel realizar varreduras em uma porta específica.
# nmap -sS -p <porta> <faixa_de_ip’s>
# nmap -sS -p 0-65535 10.125.100.1-254
3.4. Lan Spy
A ferramenta Lan Spy é um scanner de segurança de rede, que permite obter informações
diferentes sobre computadores: Domínio e nomes de NetBios, endereços MAC,
informações do servidor, Domínio e informações sobre o controlador de domínio, controle
remoto, Tempo, Discos, Transportes, usuários, os usuários globais e grupos locais, As
definições de política, recursos compartilhados, sessões, abrir arquivos, serviços, registro
de eventos e informações de log.
Esse programa apresenta um conjunto de utilitários de redes facilitando a vida do
administrador, apresentando também uma interface gráfica amigável para realizações de
suas tarefas. È importante ressaltar que o Lan Spy roda na plataforma Windows.
9. A ferramenta Lan Spy apresenta as seguintes informações sobre usuários remotos:
*Ping
* Nome de Domínio
* Nomes NetBios
* Endereço MAC
* Informações do servidor
* Domínio (workgroup) de informação
* Os controladores de domínio
* Controle Remoto
* Time
* Discos
* Transportes
* Usuários
* Usuários logados
* Os grupos globais
* Os grupos locais
* As opções de segurança
* Recursos compartilhados
* Sessões
* Abrir arquivos
* Serviços
* Processos
* Registro
* Registro de eventos
*Scanner de portas TCP
*UDP port scanner
3.5. Nessus
O Nessus é uma ferramenta de auditoria para segurança de redes, muito utilizada na
detecção e correção de PCs de uma rede local. Tem como principal caracteŕistica realizar
varreduras de portas detectando servidores ativos e simulando invasões para detectar
vulnerabilidades. Uma característica importante é que o Nessus procura por servidores
ativos não apenas nas portas padrão, mas em portas TCP. Ele é capaz de detectar uma
vulnerabilidade no seu Apache (Servidor), mesmo que ele esteja ativo na porta 46580 por
exemplo.
3.5.1. Utilizando o Nessus
Depois de instalado você precisa criar um login de usuário para utiliza-lo .Este login é
válido apenas para o Nessus, não é um login de sistema. Para criar o login, chame o
programa nessus – adduser. Ele pedirá o login e senha, o tipo de autenticação (escolha
sempre o cipher) e permitirá que você adicione regras para o usuário.
Login:seu nome
Password:mais_que_12_caracteres
10. Authentification:cipher
Rules:
Is that ok(y/n)?y
Depois de criar o usuário rode o comando nessus-mkcert que criará um certificado SSL
pra o servidor Nessus. Esta etapa só é necessária se voce tiver o pacote SSL instalado no
sistema.
O Nessus utililiza um sistema cliente-servidor,onde uma vez iniciado o módulo
servidor passa ser possível rodar o cliente em qualquer máquina da rede(para isso é criado o
login de usuário).
Para finalizar ,inicializa-se o servidor,ainda como root usando o comando :
# nessud -D
Em seguida,volte ao seu login de usuário e abra o cliente ,com o comando:
$ nessus
Se você quiser um teste completo, use a faixa 1-65536. Alguns testes do Nessus
podem travar alguns PCs vulneráveis, A opção "Safe checks" desativa testes
potencialmente perigosos, evitando prejuízos aos usuários . De qualquer forma, o ideal é
fazer o teste à noite, ou em algum horário em que os PCs não estejam sendo utilizados.
Na seção "Target Selection" do Nessus você define o alvo, fornecendo seu IP. Se
você quiser testar as vulnerabilidades da própria máquina local, o endereço é o "localhost".
Se você quiser testar de uma vez toda a sua rede local, basta fornecer o endereço da rede,
como em "192.168.0.0" ou "10.0.0.0".
Concluído o teste, ele exibe uma lista com as vulnerabilidades encontradas em cada PC.
Existem três níveis de alerta; o primeiro e mais grave tem o símbolo de uma luz vermelha e
indica uma brecha de segurança em um servidor ativo na máquina. Em muitos casos o
Nessus ajuda também a detectar erros de configuração, que podem ser perigosos.
Concluindo, os relatórios gerados pelo Nessus podem ser salvos em diversos
formatos, incluindo html, latex e PDF, um recurso extremamente interessante na hora de
apresentar os resultados e explicar os problemas para outras pessoas.
3.6. Rootkit Hunter
Atualmente, rootkits representam uma das mais perigosas ameaças de invasões, são trojans
que se utilizam de diversas técnicas para apagar os rastros de sua presença quando invadem
um sistema. Assim, dificilmente são detectados pelo sistema ou mesmo por antivirus. [3].
Atuando nesse contexto, o Rkhunter realiza uma varredura verificando se uma máquina
está contaminada por rootkits, além de buscar por backdoors e invasores locais através de
testes como procura de arquivos padrão usados pelos rootkits, procura de arquivos
escondidos, entre outros. [4].
Para instalar e configurar o Rkhunter, os seguintes comandos devem ser executados:
# apt-get install rkhunter
# rkhunter --propupd
11. # rkhunter –update
Figura 3. Configurando o rkhunter.
O primeiro comando irá instalar o pacote rkhunter mais recente. O comando
rkhunter --propud cria o arquivo rkhunter.dat, e permite ao rkhunter comparar as varreduras
posteriormente realizadas com os dados registrados inicialmente nesse arquivo. Se essa
opção não for usada o verificador de propriedades de arquivos só pode executar alguns dos
testes (aqueles que não exigem o arquivo rkhunter.dat).[5]. Pode-se executar --propud
mesmo sendo este comando recomendado apenas em instalações limpas (logo após a
instalação do Sistema Operacional na máquina), porém é extremamente recomendado que
este seja executado sem conexão com a internet. O commando rkhunter --update requer
conexão com a internet, atualizando os arquivos em busca de modificações.
Concluída a configuração do rkhunter, pode-se iniciar uma primeira varredura
manualmente pelo terminal como superusuario, através do comando:
# rkhunter -c
4. Estudo de Caso: A União das Ferramentas
Após a compreensão das ferramentas escolhidas, configuração e instalação, um estudo de
caso com a união das ferramentas para atacar o problema determinado foi elaborado.
Primeiramente não foi detectado em momento algum conflito entre as ferramentas. Em
seguida, tendo como base a problemática da segurança, tarefas foram definidas para cada
ferramenta.
As ferramentas selecionadas para compor a plataforma possuem características
semelhantes, que podem realizar uma mesma tarefa tornando o gerenciamento redundante
se mal organizado. Por isso foi determinado que as funções ficariam dispostas da seguinte
forma:
Iptables – configurado como firewall
Nmap – para buscar informações de PC’s
Wireshark – capturando pacotes para análise
Nessus - varrendo portas atrás de vulnerabilidades
12. Rootkit Hunter – varrendo arquivos do servidor em busca de rootkits, malwares e portas
abertas
Lanspy – para coletar informações sobre laptops/notebooks conectados na rede
4.1. Configuração do Iptables
Decidiu-se que o Iptables iria agir como firewall, filtrando os pacotes da rede.
Primeiramente se ativa os módulos reponsáveis pelo funcionamento do iptables, para tanto
deve-se executar os seguintes comandos:
# modprobe ip_tables
# modprobe ipt_REJECT
# modprobe ipt_multiport
# modprobe ipt_MASQUERADE
Após a ativação dos módulos devemos limpar todas as possíveis configurações
existentes de implementações anteriores.
# iptables –t filter –F
# iptables –t nat –F
# iptables –t filter –Z
# iptables –t nat –Z
Definindo as políticas de filtragem a cada uma das chains das tabelas filter e nat.
# iptables –t filter –P INPUT DROP
# iptables –t filter –P FORWARD DROP
# iptables –t filter –P OUTPUT DROP
# iptables –t nat –P POSTROUTING DROP
# iptables –t nat –P PREROUTING DROP
# iptables –t nat –P OUTPUT DROP
Chain Input
Aceitando conexão “loopback”
# iptables –t filter –A INPUT –i lo –j ACCEPT
Configura a pacotes TCP e UDP para serem aceitos caso a conexão esteja
estabelecida e relacionada.
# iptables –t filter –A INPUT –p tcp –m state --state ESTABLISHED,RELATED –j
ACCEPT
# iptables –t filter –A INPUT –p udp –m state --state ESTABLISHED,RELATED –j
ACCEPT
Aceitando pacotes ICMP (ping) com tolerância de um pacote por segundo (proteção
contra“ping-da-morte”):
13. # iptables –t filter –A INPUT –p icmp –m limit --limit 1/s –j ACCEPT
Chain Forward
Iniciamente devemos habilitar o repasse de pacotes
# echo “1” > /proc/sys/net/ipv4/ip_forward
Configurando ping para o firewall proveniente da rede interna
# iptables –t filter –A FORWARD –p icmp –s 10.1.1.0/24 –m limit --limit 2/s –j
ACCEPT
Habilitando o repasse de pacotes da interface de rede eth0 para eth1 salvando um
log sobre o trafego nas portas 25, 80, 110 e 443 (SMTP, HTTP, POP3 e HTTPS).
# iptables –t filter –A FORWARD –i eth0 –o eth1 –p tcp –m multiport --dports
20,21,22,25,80,110,443 –j ACCEPT
# iptables –t filter –A FORWARD –d 192.168.5.0/24 –i eth1 –o eth0 –m state --state
ESTABLISHED,RELATED –j ACCEPT
# iptables –t filter –A FORWARD –j LOG --log-prefix "FIREWALL: FORWARD "
Liberando envio de mensagens (net send) entre as estações da rede:
# iptables –t filter –A FORWARD –i eth0 –p udp –m multiport --dports 135, 137,
138 –j ACCEPT
# iptables –t filter –A FORWARD –i eth0 –p tcp –m multiport --dports 135, 139,
445 –j ACCEPT
Liberando acesso ao servidor FTP e SSH à todas as estações da rede:
# iptables –t filter –A FORWARD –p tcp –s 10.1.1.0/24 –d 10.1.1.1 --dport 20 –j
ACCEPT
# iptables –t filter –A FORWARD –p tcp –s 10.1.1.0/24 –d 10.1.1.1--dport 21 –j
ACCEPT
# iptables –t filter –A FORWARD –p tcp –s 10.1.10/24 –d 10.1.1.1 --dport 22 –j
ACCEPT
Conexões TCP e UDP que forem originadas pelo Firewall são aceitas:
# iptables –t filter –A OUTPUT –p tcp –m state --state
NEW,ESTABLISHED,RELATED –j ACCEPT
# iptables –t filter –A OUTPUT –p udp –m state --state
NEW,ESTABLISHED,RELATED –j ACCEPT
Aceitando conexão “loopback” :
# iptables –t filter –A OUTPUT –o lo –j ACCEPT
Estabelecendo um limite para o número de pacotes “ping” (um por segundo) vindos
da Internet:
15. 4.2. Rodando Nmap
O Nmap será utilizado para coletar informações sobre um determinado computador, logo
pode-se usar as opções citadas na subseção 3.3.1 para esse fim. O comando executado
resultou na seguinte saída:
root@labin23:/# nmap -sV 10.125.100.83
Starting Nmap 4.53 ( http://insecure.org ) at 2009-11-05 18:00 BRST
Interesting ports on 10.125.100.83:
Not shown: 1713 closed ports
PORT STATE SERVICE VERSION
80/tcp open http Apache httpd 2.2.8 ((Ubuntu) PHP/5.2.4-2ubuntu5 with Suhosin-Patch)
Service detection performed. Please report any incorrect results at http://insecure.org/nmap/
submit/ .
Nmap done: 1 IP address (1 host up) scanned in 6.703 seconds
4.3. Executando Wireshark
A partir da execução do wireshark, tudo o que trafegar na rede ele captura. A partir daí o
gerente da rede pode pode uma boa noção do que está acontecendo com a rede, bastando
para isso saber interpretar o que encontra-se na figura abaixo. Um exemplo: clicando em
cima de um pacote e precionando a opção "Follow TCP Stream", o wireshark irá lhe
mostrar toda a conversação em modo texto. Com a monitoração de entrada e saída de
pacotes na rede podem ser detectadas anomalias que, em uma análise mais detalhada,
podem indicar tentativas de invasões e quebra de senha.
Figura 4. Pacotes capturados pelo wireshark.
4.4. Varrendo portas com Nessus
Após o login e senha no Nessus, foi utilizado o parâmetro End:10.125.100.1-85 para
analisar uma vulnerabilidade: o serviço telnet habilitado em uma máquina.
16. Figura 5. Tela de alerta do Nessus.
Solução:
Se você estiver executando um sistema tipo Unix, OpenSSH pode ser usado em vez de
telnet.
Para os sistemas Unix, você pode comentar as "telnet" linha no arquivo / etc / inetd.conf.
Para os sistemas Unix, que usam o xinetd, você precisará modificar os serviços de telnet
arquivo no / etc / pasta / xinetd.d. Depois de fazer quaisquer alterações ou xinetd arquivos
de configuração do inetd, você deve reiniciar o serviço para que as alterações tenham
efeito.
Além disso, o roteador diferente e muitos fabricantes de comutadores suporte SSH como
uma substituição de Telnet. Você deverá contactar o fornecedor para obter uma solução que
utiliza uma sessão criptografada.
Fator de risco: Baixo
CVE: CAN-1999-0619
Nessus ID: 10280
Informativos telnet (23/tcp) Um servidor de telnet parece estar em execução nesta porta
Nessus ID: 10330
Informativos telnet (23/tcp) Remote banner telnet:
/---------
CANYPO
Motorola Broadband Wireless Technology Center
(Copyright 2001-2009 Motorola, Inc.)
Login: "
Nessus ID: 10281
4.5. Buscando Malwares e Rootkits com Rootkit Hunter
Após a execução no terminal, como superusuário, do comando rkhunter –c, uma tela de
saída semelhante à seguinte será exibida.
17. Figura 6. Saída inicial do comando rkhunter -c .
Figura 7. Buscando rootkits conhecidos.
A figura 6 mostra a busca por rootkits no host, pode-se verificar que nenhum foi
detectado(not found). A figura seguinte mostra “warnings” ou alertas, que são os
arquivos/diretórios/portas suspeitos de contaminação ou passíveis de ataque, neste caso são
eventos conhecidos que não geram alarme, entre eles o acesso ssh como root que está
habilitado.
Figura 8. Alertas detectados nas configurações do sistema.
18. A saída final da verificação exibe o caminho onde foi salvo o log,
/var/log/rkhunter.log.
4.6. Coletando Informações de Notebooks com Lanspy
Nesse exemplo mostrado abaixo a ferramenta Lan Spy identificou dados sobre um
notebook conectado á rede do laboratório do campus III da UFPA/Santarém. Com o ip da
rede 10.125.100.81 foi identificado com o nome de dns RALLAN com o endereço MAC
00:1B:38:C9:47:8F.
5. Conclusão
Considerando o fato de que os ataques a servidores, cada vez mais avançados, são motivo
de preocupação por parte dos gerentes que desejam manter sua rede protegida, verifica-se a
importância do conhecimento e aprofundamento da gerência acerca das ferramentas que
auxiliam na proteção da integridade das redes. Atualmente não se deve mais ignorar a
necessidade de se elaborar políticas de segurança que abrangem desde as permissões de
usuário até a política de criação de senhas, e ter softwares que possibilitem um suporte à
essas tarefas e à execução correta delas é uma evolução que não devemos passar
despercebido.
Portanto conclui-se que a junção de diversas ferramentas específicas de segurança,
auxilia, e muito, na manutenção e saúde de uma rede. Aliadas à uma gerência pró-ativa são
extremamente confiáveis, apenas necessitando de uma ferramenta de backup para
completar a segurança dos sistemas conectados.
19. Referências Bibliográficas
[1] Wireshark - Artigo. http://www.vivaolinux.com.br/artigo/Wireshark-Artigo/?pagina=1;
Dezembro.
[2] Usando o Wireshark. http://www.guiadohardware.net/tutoriais/wireshark/; Dezembro.
[3] Instalando e Usando o Rkhunter. http://0fx66.com/blog/Linux/instalando-e-usando-o-
rkhunter/
[4] Manual SIDUX. http://manual.sidux.com/pt-br/vir-rtkits-pt-br.htm
[5] SPRKH wiki. http://sourceforge.net/apps/trac/rkhunter/wiki/SPRKH
SOUSA, Lindeberg Barros de. Redes de computadores – Dados, voz e imagem (5ª edição),
São Paulo: Érica, 2002.
CHESWICK, William R.; BELLOVIN, Steven M.; RUBIN, Aviel D. Firewall e segurança
na Internet. 2. ed. Tradução Edson Frumankiewicz. São Paulo: Bookman, 2003
NETO, Urubatan. Dominado Linux Firewall Iptables. Rio de Janeiro: Ciência Moderna,
2004.
http://www:lantricks.com/lanspy Acessado em 10 de dez. 2009.
http:www.snapfiles.com/get/lanspy/ Acessado em 12 de dez. 2009.
http://pplware.sapo.pt/2007/10/22/lanspy-200155/ Acessado em 12 de dez. 2009.
http://www.baixaki.com.br/categorias/294-ferramentas-para-rede.htm/Acessado em 12 de
dez. 2009.