Disciplina:
Segurança de Redes
Professor:
Roitier Campos
Apresentação da Disciplina
Curso: Tecnólogo em Análise e
Desenvolvimento de Sistemas
Disciplina: Segurança de Redes
Carga Horária: 50 hs (60 aulas – 3
aulas/semana)
Aulas Teóricas: 20 aulas
Aulas Práticas: 40 aulas
Prof: Roitier Campos Gonçalves
Metodologia
VA1 – 30 pontos
VA2 – 30 pontos
Trabalho (Servidor) – 30 pontos
Atividades Complementares – 10 pontos
Prof. Roitier Campos Gonçalves
3
Ementa
●
●
●
●
●
●
Desenvolver políticas de segurança e instalar, configurar e administrar
produtos que auxiliem namanutenção dessa política.
Conhecer conceitos de segurança de sistemas.
Conhecer conceitos de criptografia, algoritmos e protocolos
criptográficos. Implementar primitivas criptográficas básicas.
Projetare implantar políticas de segurança.
Instalar, configurar e administrar produtos de detecção de intrusos
(IDS – Intrusion Detection Systems ).
Instalar, configurar e administrar produtos de análise de
hosts( Scanners ). Instalar, configurar e administrar firewalls de filtros
de pacotes statefull (com manutenção de estado de conexões).
Prof. Roitier Campos Gonçalves
4
Roteiro do Curso
●
Administração de Redes e Arquitetura TCP/IP;
●
Configuração e Verificação de uma rede TCP/IP;
●
Segurança de Redes;
●
Segurança do Sistema Operacional;
●
Firewall;
●
Interconexão de Redes;
●
VPN e Protocolos de Tunelamento;
●
IPSec/IPCop
Prof. Roitier Campos Gonçalves
5
Parte 01
Administração de Redes e
Arquitetura TCP/IP
Prof. Roitier Campos Gonçalves
6
Funções da Administração de redes
Planejar
Implementar
Monitorar
Proteger
Dimensionar
Auditar
Prof. Roitier Campos Gonçalves
7
Dia a dia do Administrador
●
Instalações fisicas e lógicas;
●
Implementar, monitorar e auditar a rede;
●
Atualização de serviços e correção de falhas de segurança;
●
Análise de incidentes;
●
Inovação tecnológica – Para o usuário e para a gerencia da rede;
●
Documentação;
Recomendações
Visitas regulares a Fóruns, Listas de Discussões, sites de hackers, etc.
Prof. Roitier Campos Gonçalves
8
Arquitetura TCP/IP
Sistema utilizado para garantir a interoperabilidade entre
variados tipos de dispositivos como:
Celulares;
Computadores;
Tablets;
Notebooks.
Prof. Roitier Campos Gonçalves
9
Modelos de Referência
Ajudam na compeensão do funcionamento da rede,
sendo que para isso utiliza-se da classificação dos
protocolos quanto às suas atribuições, distribuindo-os em
camadas.
●
RM-OSI
●
TCP/IP
Prof. Roitier Campos Gonçalves
10
RM-OSI X TCP/IP
Prof. Roitier Campos Gonçalves
11
RM-OSI X TCP/IP
O RM-OSI, apesar de ser considerado ideal, teve sua adoção
global dificultada por vários fatores, dentre os quais podemos relevar a
diversidade de protocolos.
Já o TCP/IP tornou-se o padrão em função da minimização do
conjunto de protocolos e da sua ampla e gratuita disseminação no
Unix.
Sugestão de Literatura:
Livro: Redes de Computadores 4 – Andrew S. Tanembaum
Capitulo 1.4.1 - O modelo de referência OSI;
Capitulo 1.4.2 - O modelo de referência TCP/IP;
TCP/IP
Capitulo 1.4.3 - Uma comparação entre os mo delos de referência OSI e
Prof. Roitier Campos Gonçalves
12
Modelo de referência híbrido
Prof. Roitier Campos Gonçalves
13
Nivel de enlace - Ethernet
O Padrão Ethernet, (Padrão IEEE 802.3) apesar de fazer
parte da camada de enlace, camada 2 (OSI) é comumente conhecido
como endereço físico ou endereço MAC (Medium Access Control):
●
Padrão IEEE 802.3
●
Endereços de 48 bits (ff:ff:ff:ff:ff:ff);
●
Controle de acesso ao meio (CSMA/CD).
Prof. Roitier Campos Gonçalves
14
Tipos de endereços físicos
Endereços fisicos assumem três tipos:
●
Unicast – (identifica uma interface);
●
Multicast – (indentifica um grupo);
●
Broadcast - (identifica todos os computadores da rede),
Prof. Roitier Campos Gonçalves
15
Formato do quadro Ethernet
Uma interface de rede “só recebe“ quadros Ethernet
endereçados ao seu próprio endereço físico ou para o endereço brodcast.
No entanto, podemos configurar uma placa para a aceitação
indiscriminada de quadros Ethernet. (Modo promisc)
Prof. Roitier Campos Gonçalves
16
Address Resolution Protocol (ARP)
Sempre que duas ou mais máquinas precisam se
comunicar, elas precisam saber o endereço físico do receptor.
O Protocolo ARP (Nível 2) é responsável por fazer essa
identificação. Para isso, cada nó (equipamento nível 2 ou
superior) da rede tem uma tabela ARP informando IP e MAC
de cada host conectado a ele.
A atualização dessa tabela é feita através do TTL, Time
to Live, que é um tempo pré estabelecido para que a tabela
renove os dados, afim de garantir que nenhum equipamento
ficará relacionado a um IP indiscriminadamente.
Prof. Roitier Campos Gonçalves
17
Protocolo IP
Protocolo responsável pela identificação lógica de hosts em uma
rede. Atualmente se o protocolo assume duas formas, como segue:
●
IPv4 – 32 bits
●
Ipv6 – 128 bits
É o ICANN (Internet Corporation for Assigned Names and
Numbers, substituindo o IANA, Internet Assigned Numbers Agency,
desde 1998) que está encarregado de atribuir endereços IP públicos, isto
é, os endereços IP dos computadores directamente ligados à rede pública
de Internet.
Obs: Utilizaremos o Ipv4 como referência para nossos estudos.
Prof. Roitier Campos Gonçalves
18
Endereço IP
Endereço de rede composto por 32 bits dividios em 4 octetos
(quadros de 8 bits);
192.168.0.1 – 11000000.10101000.00000000.00000001
Todas as máquinas de uma rede compartilham de um mesmo
prefixo em seu endereço. Esse prefixo idenfica a rede a qual esse
endereço pertence.
Prof. Roitier Campos Gonçalves
19
Netid e Hostid
●
●
Netid é o conjunto de bits, o prefixo, que representa a rede;
Hostid é o conjunto de bits que representa a máquina dentro
da rede.
Exemplo :
(n representa Netid e h representa Hostid)
Estrutura do IP: nnnnnnnn.nnnnnnnn.nnnnnnnn./hhhhhhhhh
Prof. Roitier Campos Gonçalves
20
Classes de Endereços IP
Prof. Roitier Campos Gonçalves
21
Máscara de rede
O conceito de mascara de rede é utilizado para a identificação,
no endereço, dos bits que são Netids e dos que são Hostids.
●
Bits que assumem o valor 1 são Netid;
●
Bits que assumem o valor 0 são Hostid.
Exemplo:
255.255.255.0 – 11111111.11111111..11111111.00000000
Prof. Roitier Campos Gonçalves
22
Mascara de Rede para as Classes
●
Classe A – 255.0.0.0
●
Classe B – 255.255.0.0
●
Classe C – 255.255.255.0
Prof. Roitier Campos Gonçalves
23
Endereços especiais
●
●
●
●
Loopback – Endereço utilizado para comunicação interna à interface,
(host com o próprio host), e que assum o valor 127.0.0.1;
Endereço de Rede: Endereços IP que têm todos os bits de Hostid
assumindo valor 0;
Broadcast: Endereços IP que têm todos os bits de Hostid assumindo
valor 1;
Rota Default: Endereço para o qual são enviados os pacotes cujos
destinos não são pertencentes à rede do emissor. Normalmente a Rota
Default é representada pelo endereço 0.0.0.0
Prof. Roitier Campos Gonçalves
24
Classles Inter Domain Routing - CIDR
Sub-redes – Redes fisicas cujos endereços são um
subconjunto de um conjunto de endereços IP (Cl. A, B, ou C);
Motivação
Com a explosão da Internet e o uso não escalonavel de
alocação em classes, surgiram problemas como: Exaustão
de endereços de Classe B, Explosão da tabela de
roteamento, Exaustão de endereços.
Prof. Roitier Campos Gonçalves
25
Atividade Complementar – Aula 01
1 - Responda conforme exemplo:
a) 255.255.255.0 = /24
b) 255.255.0.0 = ?
c) 255.0.0.0 = ?
d) 255.192.0.0 = ?
e) 255.248.0.0 = ?
2 – Caso de uso:
Uma empresa com 300 computadores precisa
contratar uma endereços válidos para todos
eles.
a) Qual será a mascara? Simule endereços
para a rede.
b) Identifique o endereço de Rede e
Broadcast dessa rede.
c) Sugira um Gateway para a Rede.
f) 255.255.255.240 = ?
g) /28 = ?
h) /25 = ?
i) /10 = ?
Prof. Roitier Campos Gonçalves
26
Parte 02
Introdução aos
Conceitos de
Roteamento
Prof. Roitier Campos Gonçalves
27
Roteamento x Hosts multi-homed
Roteamento: É um processo de escolha das rotas, com
objetivo de alcançar um determinado destino.
Obs: Não necessáriamente o tempo de transmissão é o fator mais
relevante. A entrega dos pacotes, em efetivo, determina a condição das
escolhas.
Hosts
multi-homed:
São
hosts
que
estão
interconectados a mais de uma rede. No entanto, não detém a
função de encaminhadores de pacotes.
Prof. Roitier Campos Gonçalves
28
Encaminhamento de Pacotes
Direto
Ocorre quando o host destino pertence à mesma rede do emissor.
Neste caso, a emissão ocorre direto do emissor para o receptor.
Indireto
Ocorre quando o host destino não pertence à mesma rede do
emissor. Neste caso, o pacote é encaminhado para o roteador, que
encaminha para a rede do destinatário.
Prof. Roitier Campos Gonçalves
29
Tabela de Roteamento
Tem a função de associar destino às rotas e, em função
dessa associação, definir o próximo salto (next hop).
Por definição, o Next Hop é o próximo roteador no
caminho até o destino final.
É improvável a manutenção de uma tabela com todas as
rotas para todos os destinos que se possa ter. Sendo assim,
conhecer o Next Hop garante a continuidade da transmissão.
Prof. Roitier Campos Gonçalves
30
Tipos de rotas
Rotas para uma rede
Rotas para um host
Rota default
Prof. Roitier Campos Gonçalves
31
Exemplo de Tabela
Prof. Roitier Campos Gonçalves
32
Rotas estáticas e Rotas dinâmicas
●
●
Rotas estáticas são as rotas previamente configuradas pelo
administrador da rede
Rotas dinâmicas são as rotas aprendidas pelo roteador
através dos protocolos de roteamento.
Ex:
●
OSPF (Open Shortest Path First)
●
BGP (Border Gateway Protocolo)
Prof. Roitier Campos Gonçalves
33
Loops
Um loop é uma transmissão sem fim. Um pacote fica
transitando na rede, em loop, sem nunca encontrar o seu
destino. Consequentemente, um loop pode gerar uma
sobrecarga de tráfego na rede, a qual, em um futuro
condicionado a magnitude do tráfego, fará com que a rede
fique indisponível.
Como evitar?
Utiliza-se o TTL (Time To Live – Tempo de vida)
Prof. Roitier Campos Gonçalves
34
TTL - Time to Live
TTL é um parametro fornecido na transmissão de cada pacote, o
qual determina quantos HOPS um pacote pode fazer. Quanto o TTL
alcança o valor zero (0), ele é descartado pelo roteador que o recebeu.
É possível sim, descobrir o Sistema Operacional através do TTL do
ping, pois os valores geralmente são padrões. Por exemplo:
Linux = 64
Windows = 128
Cisco = 255
Prof. Roitier Campos Gonçalves
35
Verificando o seu TTL
Um usuário malicioso, hacker, pode descobrir, ou pelo menos
presupor o seu Sistema Operacional através do TTL, dado que, como visto
anteriormente, há um padrão para cada sistema. No entanto, como todo
padrão, isso pode ser alterado.
No linux, conseguimos verificar o TTL através do seguinte
arquivo /proc/sys/net/ipv4/ip_default_ttl.
Alterando o valor do arquivo, alteramos o TTL do sistema. Após
a alteração, é necessário validar essa alteração através do comando:
# sysctl -p /etc/sysctl.conf
Validando:
Realize um PING para a máquina que foi alterada.
#ping 127.0.0.1 ( pingando o localhost)
Prof. Roitier Campos Gonçalves
36
Cabeçalho IP
Prof. Roitier Campos Gonçalves
37
Algoritmo de Roteamento
●
Se destino é direto: encaminha direto;
●
Se existe rota para o host: use a rota;
●
Se existe rota para a rede: use a rota:
●
Se existe rota default: use a rota;
●
Nenhum das regras atende: erro de roteamento.
Prof. Roitier Campos Gonçalves
38
Atividade Complementar
1 - Instale o Software Core-Network:
#apt-get install core-network
2 - Crie uma rede com 6 sub-redes e enderece-as. Considere os seguintes
atributos para todas as redes:
a) 25 hosts em cada;
b) Todas fazem parte de uma classe C que outrora funcionava em uma
única rede como mascara /24;
Prof. Roitier Campos Gonçalves
39
Parte III
Endereços e Rotas
Prof. Roitier Campos Gonçalves
40
Equipamentos de Rede
●
●
●
Hub: Atua como um Barramento, enviando todo o tráfego a
todos os dispositivos conectados a ele;
Switche: Também conhecidos com comutadores de redes
ou comutadores de pacotes, encaminha os quadros apenas
para a porta do destinatário;
Roteadores: Equipamentos responsáveis pela interconexão
de redes IP, fazendo o encaminhamento dos pacotes IP de
uma rede para outra.
Prof. Roitier Campos Gonçalves
41
Configurando endereços e rotas
Antes de configurar um endereço a uma placa, é
necessário que esta esteja em comunicação plena com o
Sistema Operacional. Segue comandos para verificar os
drivers:
●
●
lsmod: verificar os módulos carregados no linux;
modprobe: carregar um módulo e os módulos de que este
possa depender;
●
modinfo: mostra informações sobre um módulo;
●
rmmod: remove um módulo
Prof. Roitier Campos Gonçalves
42
Configurando a Interface de Rede
●
Ifconfig eth0 192.168.25.1 netmask 255.255.255.0
●
Ifconfig eth0 down
●
Ifconfig eth0 up
●
Ifconfig
Obs: Configure sua máquinas testes posteriores.
Prof. Roitier Campos Gonçalves
43
Configurando um IP-Aliasing
IP-Aliasing é um apelido atribuido à interface. Isto
permite que uma única interface se comunique com mais de
uma rede utilizando de endereçamentos lógicos distintos.
●
Ifconfig eth0:0 192.168.24.1 netmask 255.255.255.0
●
Ifconfig eth0 down
●
Ifconfig eth0 up
●
Ifconfig
Prof. Roitier Campos Gonçalves
44
MTU - Maximum Transmission Unit
Em redes de computadores, MTU é o acrónimo para a
expressão inglesa Maximum Transmission Unit, que em
português significa Unidade Máxima de Transmissão, e referese ao tamanho do maior datagrama que uma camada de um
protocolo de comunicação pode transmitir.
Alterando o MTU
●
Ifconfig eth0 mtu 1500
Prof. Roitier Campos Gonçalves
45
Configurar conexão ponto a ponto
É uma conexão fim a fim, onde apenas as duas 'pontas' se
comunicam,
independentemente
da
quantidade
de
equipamentos entre elas.
●
ifconfig eth0 192.168.25.1 netmak 255.255.255.0
pointtopoint 192.168.25.2
Prof. Roitier Campos Gonçalves
46
Conexão em Modo Promiscuo
Modo promíscuo (ou ainda comunicação promíscua) em relação
à Ethernet, é um tipo de configuração de recepção na qual todos os
pacotes que trafegam pelo segmento de rede ao qual o receptor está
conectado são recebidos pelo mesmo, não recebendo apenas os pacotes
endereçados ao próprio.
Uma importante aplicação para esta configuração são os sniffers.
Para ativar: Ifconfig eth0 promisc
Para desativar: Ifconfig eth0 -promisc
Sugestão de leitura:
http://www.revista.espiritolivre.org/a-privacidade-segundo-o-marco-civil/
Prof. Roitier Campos Gonçalves
47
Clonando o MAC de uma Placa
O endereço MAC é um parametro físico da placa, o qual tem
a função de indentificá-la, inclusive, durante a aquisição de um
endereço logico (IP):
Alterando o MAC de uma Placa
●
Ifconfig eth0 hw ether ff:ff:ff:ff:ff:ff
OBSERVAÇÕES
O equipamento que autentica o MAC dispões de uma tabela de autenticação e atribuição, a
qual permite que seja visualizado uma possível clonagem.
Um opção interessante é a criação de script de monitoramento desses arquivos;
O dhcpd.leases, do DHCP Server pode ser utilizado para essa verificação
Prof. Roitier Campos Gonçalves
48
Rotas
As rotas são os possíveis caminhos que um quadro datagrama pode
percorrer até o seu destino final.
Verificando as rotas configuradas
●
route ou ip route show
Prof. Roitier Campos Gonçalves
49
Adicionando uma rota Default
A rota Default é a rota padrão que o dispositivo
assume quando nenhuma outra regra atende a requisição.
●
route add default gw 192.168.25.254
ou
●
ip route add default via 192.168.25.254
Prof. Roitier Campos Gonçalves
50
Configurando rotas para redes
São rotas que permitem o encaminhamento de quadros
para uma rede:
●
route add -net 192.168.20.0 netmask 255.255.255.0 gw
192.168.25.254
ou
●
ip route add 192.168.20.0/24 via 192.168.25.254
Prof. Roitier Campos Gonçalves
51
Configurando rotas para hosts
São rotas que permitem o encaminhamento de quadros
para um host:
●
route add -host 192.168.20.5 gw 192.168.25.254
ou
●
ip route add 192.168.20.5/32 via 192.168.25.254
Prof. Roitier Campos Gonçalves
52
Atividade Complementar – Parte III
Utilize a rede criada na Atividade Complementar da Parte II e simule
testes.
Prof. Roitier Campos Gonçalves
53
Parte IV
Conceitos sobre Segurança
Prof. Roitier Campos Gonçalves
54
Introdução
A Segurança de redes envolve conhecimentos de diversos áreas,
como:
●
Administração de Sistemas;
●
Sistemas Operacionais;
●
Sistemas de Arquivos;
●
Protocolos de Redes.
Prof. Roitier Campos Gonçalves
55
5 Principios norteadores
Um ambiente seguro, em suma, deve atender 5 requisitos básico:
●
Confidencialidade;
●
Integridade;
●
Disponibilidade;
●
Não repúdio;
●
Autenticidade.
Prof. Roitier Campos Gonçalves
56
Caracteristicas dos serviços da rede
Um serviço de rede estar:
●
acessível a qualquer máquina;
●
Acessível a apenas algumas máquinas;
●
Não estar acessível.
Obs: Para cada serviço há pelo menos um processo (daemon)
associado
Prof. Roitier Campos Gonçalves
57
Run Level
Runlevel é o nível de inicialização do sistema. Este nível decide
qual serviço vai inicializar ou não com o sistema.
Após o carregamento do sistema, o kernel é carregado na memória,
junto com os dispositivos que estão no /etc/fstab e no /etc/dev.
Temos então, o carregamento do sistema. Este acontece no
/etc/init.d, onde ficam todos os daemons que são iniciados como sistema,
todos os scripts responsáveis por parar ou iniciar um serviço estão no
/etc/init.d.
Prof. Roitier Campos Gonçalves
58
Daemons
Daemon é um script que é utilizado para dar start, stop ou restart em
um serviço. Quando o sistema é ativado, o primeiro arquivo a ser lido é o
/etc/inittab, que armazena o runlevel do sistema na seguinte linha
id:x:initdefault, onde x é o runlevel padrão.
As opções que podemos colocar no inittab são:
0 → Logo após iniciar o sistema o mesmo já finaliza todos os
serviços e desliga.
●
●
1 → Temos ao iniciar o modo monousuário.
2-5 → Temos os modos multiusuários que podem ser tanto
gráfico como no modo texto.
●
●
6 → Modo que reinicia a máquina.
Prof. Roitier Campos Gonçalves
59
Iniciando e Parando serviços
Sintaxe: /etc/init.d/(serviço) start/stop
Ex: /etc/init.d/apache start
Obs: Para cada run-level são executados os scripts do
/etc/rcN.d;
●
S20shh (inicia o serviço SSH com prioridade 20;
●
K20sssh ( interrompe o serviço SSH com prioridade 20);
Prof. Roitier Campos Gonçalves
60
Inicie apenas quando precisar
Uma das regras básicas da segurança de redes de computadores é:
●
Não oferecer serviços desnecessários:
OBS: Serviços pouco utilizados costumam ser menos monitorados.
Este pode ser uma porta para os atacantes.
Ex real: Porta para cachorros.
Prof. Roitier Campos Gonçalves
61
RCCONF
O rcconf é um front-end para o update-rc.d, e normalmente precisa
ser instalado:
#apt-get install rcconf
O rcconf permite você controlar que serviços são iniciados quando
o sistema inicia ( :S ), ele irá mostrar uma tela onde você poderá ver o
status de cada serviço [*] ou [ ].
#rcconf
Prof. Roitier Campos Gonçalves
62
Atividade Complementar – P. IV
Utilize o RCCONF para iniciar a parar serviços no seu Sistema
Operacional
Prof. Roitier Campos Gonçalves
63
Parte V
Daemon Xinetd
e
Scanner de portas
Prof. Roitier Campos Gonçalves
64
Daemon xinetd
O xinetd carrega seu arquivo de configuração e passa a “ouvir” por
conexões em portas específicas.
Quando uma conexão é solicitada, o xinetd executa o programa
servidor correspondente para manipular o serviço solicitado. Então, desta
forma, existirá apenas um servidor em memória esperando por uma
solicitação.
Prof. Roitier Campos Gonçalves
65
/etc/xinetd.conf)
Defaults – sessão com configurações referentes a todos os serviços
monitorados pelo xinetd:
Defaults
{
Instances = 25 #controla o número de conexões simultâneas em um serviço
per_source = 10 #Controla o número máximo de conexões originadas de uma
mesma máquina.
log_type = SYSLOG authpriv #Indica como o xinetd irá logar as requisições.
log_on_success = HOST PID USERID #Informa ao xinetd quais informações ele
deverá capturar do usuário que conseguir logar.
log_on_failure = HOST RECORD USERID #Indica quais informações deverão ser
capturadas dos usuários que não conseguirem logar.
}
Prof. Roitier Campos Gonçalves
66
/etc/xinetd.conf
O superservidor ou xinetd é configurado para iniciar a sua execução
quando o sistema é inicializado, recebendo a lista de serviços a serem
monitorados a partir de um arquivo denominado /etc/xinetd.conf ou
através de uma arquivo por serviço.
Neste ultimo caso, o xinetd.conf tem que conhecer a localização
dos arquivo individuais de cada serviço. Para isso, inclua a linha a seguir
no arquivo /etc/xinetd.conf
includedir /etc/xinetd.d
Prof. Roitier Campos Gonçalves
67
/etc/xinetd.d (arquivos por serviço)
●
Utiliza-se sempre um arquivo para cada serviço;
●
Recomenda-se nomear o arquivo com o nome do serviço;
●
Dois arquivos para um mesmo serviço gera inconsistência;
Exemplo:
root@roitier-C400-G-BC23P1:/etc/xinetd.d# ls
chargen daytime discard echo telnet time
Prof. Roitier Campos Gonçalves
68
/etc/xinetd.d/telnet
service telnet
{
flags = REUSE
log_type = FILE /var/log/telnet.log
socket_type = stream
protocol = tcp
wait = no
user = root
server = /usr/sbin/in.telnetd
bind = 200.1.1.20
redirect = 192.168.1.111 23
only_from = 192.168.1.0/24
}
Prof. Roitier Campos Gonçalves
69
/etc/xinetd.d/ssh
service ssh
{
disable
= no
socket_type
= stream
port
= 22
wait
= no
user
= root
server
server_args
= /usr/sbin/sshd
= -i
}
Prof. Roitier Campos Gonçalves
70
Detalhes do arquivo do serviço
flags: Recebe as opções passadas em linha de comando para o daemon.
socket_type: Especifica o tipo de socket usado, como: dgram, stream ou
raw.
protocol: Indica o protocolo usado pelo serviço.
wait: Diz ao xinetd se ele deve chamar o serviço sobre demanda ou não.
user: Usuário que executará o serviço.
server: Localização do daemon do serviço.
bind: O IP ou host especificado aqui será origem quando um serviço for
redirecionado com o uso da opção redirect.
redirect: Host ou IP da máquina que receberá a requisição do serviço.
only_from: Limita os endereços de IP que terão acesso a determinado
serviço
Prof. Roitier Campos Gonçalves
71
Localizando o daemon do serviço
O comando which é utilizado para mostrar a localização do daemon
de um determinado serviço.
Exemplos
●
root@roitier-C400-G-BC23P1:/# which telnet
/usr/bin/telnet
●
root@roitier-C400-G-BC23P1:/# which telnet
/usr/bin/telnet
Prof. Roitier Campos Gonçalves
72
Desativando portas desnecessárias
Com a utilização do xinetd, as portas do servidor deverão ficar
todas fechadas. Isso porque o xinetd fará requisições às portas à medida
que forem ocorrendo requisições aos xinetd.
Para isso, será necessário scannear todas as portas do
computador através de um Scanner de portas. Neste caso utilizaremos o
nmap. Outras opções como: Advanced Port Scanner, NetView Scanner e
Free Port Scanner.
Prof. Roitier Campos Gonçalves
73
NMAP
Segudo o Wikipédia, o Nmap é um software livre que realiza
port scan desenvolvido pelo Gordon Lyon, autoproclamado hacker
"Fyodor". É muito utilizado para avaliar a segurança dos computadores, e
para descobrir serviços ou servidores em uma rede de computadores.
#apt-get install nmap
Alternativa com interface gráfica: Zenmap
Prof. Roitier Campos Gonçalves
74
Scaneando o localhost (127.0.0.1)
root@roitier-C400-G-BC23P1:/etc/xinetd.d# nmap 127.0.0.1
Starting Nmap 6.40 ( http://nmap.org ) at 2014-08-29 10:17 BRT
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000024s latency).
Not shown: 995 closed ports
PORT STATE SERVICE
21/tcp open ftp
80/tcp open http
631/tcp open ipp
3306/tcp open mysql
9050/tcp open tor-socks
Nmap done: 1 IP address (1 host up) scanned in 2.52 second
Prof. Roitier Campos Gonçalves
75
Fechando uma porta
Depois de scannear o servidor, feche a porta desejada e mate o
processo que abriu essa porta com os comandos:
●
fuser -v 9050/tcp #fecha a porta 9050
●
Kill -9 1470 #mata o processo que chama a porta
Obs: Para que o serviço não inicialize após a reinicialização do
sistema retire-o do boot através do RCCONF. Haverá caso que matar
a porta não resolverá. Retirar do Boot é necessário. (ex: 22/tcp)
Prof. Roitier Campos Gonçalves
76
Testando a configuração do xinetd
Restart do servidor:
●
# service xinetd restart
●
# /etc/rc.d/init.d/xinetd restart
Deverá surgir a seguinte informação dizendo que o servidor está
sendo paralisado e re-iniciado.
●
Stopping xinetd: [ OK ]
●
Starting xinetd: [ OK ]
Prof. Roitier Campos Gonçalves
77
Cópia de arquivos com SSH (scp)
O SSH é um protocolo que permite o acesso remoto criptografado a
sistemas operacionais através da porta 22/tcp.
É possível realizar cópias de arquivos, em rede, através do
protocolo SSH. Para isso, utiliza-se o comando scp, que é o tradicional
comando ''cp'' + ssh.
Exemplo:
●
scp [email protected]:/home/roitier/testescp /home
Prof. Roitier Campos Gonçalves
78
Algumas variações do ''scp''
●
scp [email protected]:/home/tux/Images/teste /home/lsantos/dir_teste/
●
scp arquivo.txt [email protected]
●
scp megaupload [email protected]:/home/tux/Public
●
scp -P 6969 megaupload [email protected]:/home/tux/Public
Prof. Roitier Campos Gonçalves
79
TCPWrapper
●
TCP Wrapper é visto como uma camada adicionl de proteção;
●
Utiliza ACL's específicas para cada serviço;
●
TCP Wrapper base-se no em host/rede (host-based);
●
O executável /usr/sbin/tcpd (TCP Wrapper Daemon) é instalado
através pelo tcpd e a biblioteca libwrap pelo pacote libwrap0;
Prof. Roitier Campos Gonçalves
80
Suporte
●
Para saber se um serviço oferece suporte para libwrap utilizamos o
comando ldd.
#type -P sshd | xargs ldd | fgrep libwrap
Prof. Roitier Campos Gonçalves
81
Arquivos Hosts (allow e deny)
As configurações do TCPwrapper podem sem manipuladas através
dos arquivos:
●
/etc/hosts.allow
●
/etc/hosts.deny
Prof. Roitier Campos Gonçalves
82
Arquivos
●
●
●
●
●
●
●
tftpd: 192.168.0.1 # permite acesso ao computador 192.168.0.1 acessar o
serviço tftp
tftpd: 192.168.0. # permite acesso a todos os computadores da rede
192.168.0.0 acessar o serviço tftp
ALL: ALL # permite acesso a todos os computadores acessar todos os
serviços
ALL: LOCAL # permite acesso a todos os computadores da rede local
acessar todos os serviços
tftpd: .linuxbrasil.org.br # permite acesso a todos os computadores do
domínio linuxbrasil.org.br acessar o serviço tftp
ALL 192.168.1. EXCEPT sshd: 192.168.1.2 # permite acesso a todos os
computadores da rede 192.168.1.0 acessar todos os serviços, exceto o
serviço sshd para o host 192.168.1.2
ALL: .linuxbrasil.org.br EXCEPT pc01.linuxbrasil.org.br # permite acesso
a todos os computadores do domínio linuxbrasil.org.br
Prof. Roitier Campos Gonçalves
83
Atividade Complementar – Parte V
1) Interrompa o ssh;
2) Remova-o da inicialização do sistema (rcconf);
3) Configure o seu xinetd;
4) Teste serviços aleatóriamente em duplas;
5) Desabilite os serviços configurados no xinetd da
do Sistema.
inicialização
6) Configure o Tcpwrapper (definição de permissões) hosts.allow e
hosts.deny
7) Teste com o comando scp;
Prof. Roitier Campos Gonçalves
84
Bibliografia Complementar P. IV
www.vivaolinux.com.br/artigo/Trabalhando-com-init-noDebian?pagina=1
Prof. Roitier Campos Gonçalves
85
Projeto de Segurança de Redes
Desenvolva um servidor utilizando o Gnu/Linux Debian com, no mínimo:
●
6 Serviços oferecidos à rede;
●
10 Práticas de fortalecimento do servidor;
●
10 Práticas de segurança da rede;
Observações:
●
●
O trabalho pode ser desenvolvido em, no máximo, duplas;
O valor total do trabalho é 30 pontos e será feita a média ponderada entre artigo e
apresentação;
●
A implementação deve ser feita com o Oracle Virtual-Box;
●
A apresentação deve ser prática e atestada;
●
Tempo de apresentação é 30 minutos para cada trabalho/dupla;
Prof. Roitier Campos Gonçalves
86
Senha de Segurança do Grub
O Boot Loader é o primeiro programa a ser executando quando o
computador é ligado. Ele é o responsável por carregar e passar o controle
da máquina para o kernel do Sistema Operacional a ser executado.
O Grub (GRand Unified Bootloader) é um boot loader utilizado
no linux para gerenciar a carga de um, ou mais, SO's em um mesmo
computador.
Proteger a edição do Grub é importante para previnir que
intrusos utilizem-o para manipular os sistemas carregados por ele.
Prof. Roitier Campos Gonçalves
87
Gerando senha criptografada para o
Grub
1. Gere a senha;
# grub-mkpassword-pbkdf2
your PBKDF2 is grub.pbkdf2.....
2. Edite o arquivo /etc/grub/00_header colocando a string a seguir no fim do
arquivo:
cat << EOF
set superusers=root (crie um usuário. Não é necessário estar cadastrado no SO)
password_pbkdf2 root “grub.pbkdf2.....“
EOF
3. Atualize o grub
# update-grub
Prof. Roitier Campos Gonçalves
88
Restringindo o uso do console
Os tty's são terminais virtuais que podem ser acessados pelos
usuários do sistema, através dos quais os usuários podem disparar
comandos no sistema.
Definir a forma como o root vai acessar esses terminais pode ser
determinante para o controle e segurança do sistema.
Uma maneira importante de determinar essa restrição é fazer
com que o root só consiga logar no sistema à partir do login de um
usuário comun.
Prof. Roitier Campos Gonçalves
89
Restringindo o uso do console
Edite o arquivo /etc/securetty removendo todas a linhas que
contenham as palavras “vc“ e “tty“.
Com isso, para o root acessar o terminal ele precisará estar
logado como usuário comum.
OBS: Isso impede que scripts seja executados como root sem que haja
interação de um usuário comum.
Nota: Mesmo estando logado como usuário comum, será requisitada
a senha do usuário root.
Prof. Roitier Campos Gonçalves
90
Desativando a reinicialização do sistema
Um problema comum em maquinas Debian é a possibilidade de
reiniciar o sistema utilizando as teclas CTRL+ALT+DEL.
Eliminar essa função minimiza a possibilidade de uma intruso,
com acesso fisico à máquina, reiniciar o sistema, mesmo sem ter a senha
do root.
Edite o arquivo /etc/inittab, comentando a linha a seguir:
# ca:12345:crtlaltdel:/sbin/shutdown -t1 -a -r now
Prof. Roitier Campos Gonçalves
91
Agendamento de tarefas
O crontab, é um programa do Unix que edita o arquivo onde são
especificados os comandos a serem executados e a hora e dia de execução
pelo cron, um programa que executa comandos agendados nos sistemas
operacionais do tipo Unix (como o Linux ou o MINIX, por exemplo).
O cron se encarregará de verificar a hora e determinar se existe
ou não algum programa a ser rodado. Caso exista ele o rodará na hora e
data solicitada
Para a maioria das tarefas pouco importa a hora que vai ocorrer
mas sim a frequência em que ela vai ser executada, como diariamente ou
semanalmente. Para isso já existe 4 diretórios especiais, que basta o
administrador botar o script lá dentro, eles já serão executados na
periodicidade desejada.
●
/etc/cron.daily ---- agendamentos diários
●
/etc/cron.hourly ----agendamentos a cada hora
●
/etc/cron.monthly ---- agendamentos mensais
●
/etc/cron.weekly ---- agendamentos semanais
Agendamento específico
Mas caso você mesmo queira fazer um periodo especifico, com
hora e tudo mais, basta editar o arquivo /etc/crontab:
# m h dom mon dow user command
17* * * * root cd / && run-parts --report /etc/cron.hourly
25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6 * * 7 root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6 1 * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
#
/etc/contrab
A cada espaço, se avança um campo e os campos
seguem o padrão a seguir:
minuto hora diadomês mês diadasemana usuário comando
m
h
dom
mon
dow
user command
17 * * * * root cd / && run-parts --report /etc/cron.hourly
Observações
Cada campo pode receber valores segundo a tabela a
seguir:
Caractere
Hífen
Virgula
Barra
asterisco
Exemplo
2-4
2,4,6,8
*/10
*
Siginificado
intervalo de 2 a 4
os numeros 2, 4, 6 e 8
de dez em dez
todas as opções possíveis
Obs: O campo Mês recebe valores de 1 a 12 e o campo
Semana recebe valores de 0 a 7, onde zero é domingo, 1 é
segunda-feira, 2 terça-feira e assim por diante.
Atividade Complementar
Simule agendamentos de tarefas semanais, mensais, diárias, etc:
1) backup semana;
2) Cópia do arquivo /var/log a cada 10 minutos;
3) Use sua imaginação e exercite
sugestão: crie scripts e coloque nos agendamentos.
Monitoramento de tráfego na rede
Monitorar o tráfego na rede é algo muito importante e que pode
Prof. Roitier Campos Gonçalves
98
Ataques da camada de dados
Neste tópico serão apresentados alguns tipos de ataques a diversas
camadas da rede de computadores.
É importante que os conceitos de camadas dos Modelos de Referência
RM-OSI e TCP/IP estejam estabelecidos para todos.
Sugestão de leitura:
Redes de Computadores 4º Edição – Tanembaum (Pág. 45 a 53)
Prof. Roitier Campos Gonçalves
99
Ataques da camada de dados
●
MAC Spoof
●
ARP Flood
●
ARP Poisoning
●
Ataques DHCP
Prof. Roitier Campos Gonçalves
100
●
MAC Spoof
Essa é a técnica mais básica para o ataque à camada 2, e consiste
empermitir que finjamos ser quem não somos.
No caso da camada de dados isso é possível através da mudança
do endereço MAC associado a nossa placa de rede. Enquanto o endereço
MAC está definido na placa de rede, é o sistema operacional que decide
se esse endereço obtido da placa vai ser usado ou não.
Em máquinas Linux é possível mudar o endereço MAC de uma
máquina usando o ifconfig, utilitário para a configuração de placa de
rede. A sintaxe usada para mudar o endereço MAC de uma interface de
rede é o seguinte:
ifconfig <interface> hw ether <novo endereço mac>
Prof. Roitier Campos Gonçalves
101
Exemplo de uso
Veja abaixo dois pings executados a partir do host em questão e
capturados com o tcpdump -e, um antes da mudança do MAC e outros
depois.
Prof. Roitier Campos Gonçalves
102
ARP Flood
Esse tipo de ataque é comumente em redes formadas por Switches, e
consiste em enviar vários pacotes ARP para o switch de forma que ele fique tão
sobrecarregado que acabe agindo como um HUB.
A idéia por trás desse tipo de ataque é que todo switch na verdade é um
computador dedicado, e como tal possui recursos limitados. Um desses recursos
é chamado de CAM (Content Addressable Memory), e é nele que ficam
armazenadas as tabelas ARP usadas pelo switch. Se um atacante enviar um
grande número de pacotes com informações de MAC incorretas ele pode
sobrecarregar essa memória, fazendo com o switch não consiga aprender novos
IPs. Depois que isso acontece, para evitar uma total paralização da rede, o
switch passa a operar em um modo parecido com um HUB, enviando todos os
pacotes para todas as portas (já que ele não tem mais como saber qual MAC
está associado a qual porta), permitindo assim a um atacante escutar o todo o
trafego que passa por aquela rede, e mesmo realizar ataques de homem do meio.
Esse tipo de ataque foi inicialmente concebido por Ian Vitek em 1999, e
pode ser realizado atualmente através de diversas ferramentas, como o dsniff.
Prof. Roitier Campos Gonçalves
103
Ferramenta MACOF
Como o próprio nome já diz, trata-se de uma ferramenta que funciona
em cima do protocolo ARP (MAC), mais precisamentei, ela utiliza-se de
pacotes com números MAC geralmente inválidos, "dançando" em broadcast
pela rede, com intenção de obter uma sobrecarga da memória do aparelho alvo,
forçando um Switch a tornar-se um simples Hub, ou interromper o serviço de
rede por completo, como já havíamos visto.
#apt-get install dsniff;
Sugestão de leitura
http://www.vivaolinux.com.br/artigo/MAC-Flood-E-agora?pagina=2
Prof. Roitier Campos Gonçalves
104
ARP Poisoning
Envenenamento de ARP é a técnica básica para poder escutarmos
o trafego alheio em uma rede comutada. Esse técnica consiste
basicamente em enviarmos pacotes ARP forjado para um alvo, de tal
forma que ele pense que nós somos uma outra máquina da rede.
Prof. Roitier Campos Gonçalves
105
Protegendo a camada 2
A camada de dados implementada no modelo Ethernet é extremamente
vulnerável, não possuindo nenhuma medida de segurança que possa ser
implementada no próprio protocolo. O meio mais comum de proteção contra
ataques nessa camada é a utilização de switches que possam associar um MAC
a um porta, de tal forma que o ARP Spoof possa ser eliminado.
Enquanto a eliminação do ARP Spoof já é proteção, ela está longe de
ser suficiente para evitar outros tipos de ataque, como o envenenamento de ARP
e ataques a DHCP, que independem de um MAC falsificado. Para a primeira
situação uma solução é a implementação de switches mais inteligentes que
possam detectar uma resposta ARP suspeita e barra-la. Além disso os sistemas
operacionais devem ser atualizados para que seja possível evitar
envenenamentos de ARP usando endereços de broadcasts.
Já para a situação do DHCP existe uma RFC que detalha a utilização
de autenticação para mensagens DHCP (RFC 3118 – Authentication for DHCP
Messages). Resta agora saber quando os desenvolvedores irão implementar essa
técnica nos seus produtos, e mais ainda, quando ela se tornará padrão de
mercado.
Prof. Roitier Campos Gonçalves
106
Snort
O Snort é um sistema de detecção de intrusão (IDS) de rede
(NIDS), de código livre disponível em www.snort.org. O objetivo do
Snort é monitorar o trafego de rede e avisar caso seja detectado algum
pacote que se encaixa em uma série de regras pré-definidas.
O Snort vem com diversas regras pré-definidas por padrão. Essas
regras podem monitoram desde conexões a servidores de IRC até
tentativas de ataques de worms, virus, portscans, etc.
Existe ainda a opção de criar regras personalizadas, o que é
extremamente recomendado, visto que cada cenário é único e deve ser
tratado como tal.
Prof. Roitier Campos Gonçalves
107
Configurando o Snort
O snort.conf é o arquivo que controla todo o funcionamento do
Snort. Nele são definidas as regras que dão ao Snort a sua capacidade de
detectar ataques, bem como configurações para o seu funcionando como,
por exemplo, onde e como ele deve guardar informações sobre os alertas
detectados. A seguir serão apresentadas em diversas seções alguns dos
comandos usados para a configuração do snort.
Prof. Roitier Campos Gonçalves
108
Download

Endereço de Rede - Prof. Roitier Campos