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