👾 Inicio | Cronograma | Bash e Redes | Redes | Rede parte I |
Protocolos de Rede (IP, SSH, TCP, UDP, RTP, DCCP, SCTP, SSH, NNTP etc);
Protocolos de rede são os conjuntos de normas que permitem que duas ou mais máquinas conectadas à internet se comuniquem entre si. Funciona como uma linguagem universal, que pode ser interpretada por computadores de qualquer fabricante, por meio de qualquer sistema operacional.
Eles são responsáveis por pegar os dados transmitidos pela rede e dividi-los em pequenos pedaços, que são chamados de pacotes. Cada pacote carrega em si informações de endereçamento de origem e destino. Os protocolos também são responsáveis pela sistematização das fases de estabelecimento, controle, tráfego e encerramento.
Existem três elementos-chave que definem os protocolos de rede. São eles:
sintaxe: representa o formato dos dados e a ordem pela qual eles são apresentados;
semântica: refere-se ao significado de cada conjunto sintático que dá sentido à mensagem enviada;
timing: define uma velocidade aceitável de transmissão dos pacotes.
Fonte/Citação: opservices
Os tipos de protocolos de rede são divididos de acordo com a sua natureza do serviço disponibilizado. E também em qual camada de profundidade estão localizados na rede de internet.
Essas camadas, junto com alguns exemplos de protocolos, são:
Fonte/Citação: weblink
O protocolo IP, do termo em inglês Internet Protocol (Protocolo de Internet) faz parte da camada de internet e é um dos protocolos mais importantes da web. Ele permite a elaboração e transporte dos pacotes de dados, porém sem assegurar a sua entrega.
O destinatário da mensagem é determinado por meio dos campos de endereço IP (endereço do computador), máscara de sub rede (determina parte do endereço que se refere à rede) e o campo gateway estreita por padrão (permite saber qual o computador de destino, caso não esteja localizado na rede local).
O endereço de IP, parece como o endereço da nossa casa. Para recebemos coisas/pacotes dos correrios, precisamos informar o endereço da nossa casa.
E o IP precisa identificar o dispositivo para enviar e mandar coisas/pacotes. Justamente pq o IP é um procolo usado para identificar dispositivos e conexões.
Descobrindo endereço de IP
#para linux:
$ ifconfig
# ipconfig para windows
Como você já deve saber, o IP é o endereço do dispositivo na web. Explicando-o didaticamente, trata-se de uma sequência numérica que rotula o computador, permitindo a sua identificação quando está online.
Já a máscara de rede é utilizada para definir a quantidade de endereços IP pertencentes à rede, concedendo um IP único a cada dispositivo integrado a ela, dividindo-os em sub-redes.
E o gateway é o roteador/model/wifi. A saída p internet.
Gateway, vem do inglês e significa “portão de entrada”. Uma definição que deixa muito claro o seu propósito: servir como um elo entre dois pontos. Sendo assim, é possível notar que usamos o gateway o tempo todo quando nos conectamos à internet.
Pense nisso: em sua casa, para se conectar à rede, você precisa de um dispositivo como um smartphone ou um notebook. Porém, não basta apenas ligar o aparelho, você precisa conectá-lo a um roteador Wi-Fi, via cabo ou pelas redes móveis, pois só assim poderá começar a navegar e adquirir informações.
Essas três opções(wifi, cabo e rede móveis) funcionam como o portão principal que vai permitir que todos os dados (de ambos os lados) atravessem para alcançar seus destinos.
Fonte/Citação: e-tinet e tecnoblog
O IP local (ou IP interno) identifica cada dispositivo individualmente. Ou seja, é o endereço atribuído pelo roteador à sua máquina na rede local.
Já o IP externo é a identificação que o seu provedor de internet forneceu para sua residência ou empresa. É pelo IP externo que o seu dispositivo consegue se conectar à rede mundial.
A principal diferença entre endereços IP externos e internos é o alcance e a que estão conectados. Um endereço IP externo te identifica na Internet, para que todas as informações que procura possam chegar a você. Um endereço IP interno é usado em uma rede privada para se conectar com segurança a outros dispositivos nessa mesma rede.
Fonte/Citação: avast
Exemplo:
Estou no meu notebook e quero me comunicar com o site www.google.com → O IP interno 192.168.0.109 do meu dispositivo envia a informação para o IP interno do roteador (gateway 192.168.0.1) → e o IP interno 192.168.0.1 envia para rede externa 216.58.192.5 → que faz a comunicação com a internet.
Mas você pode reiniciar o roteador/modem ou entrar em contato com o provedor de internet para mudar o IP.
Já pensou no caos que seria o serviço de correios se houvesse um limite para designar endereços no mundo? Novas casas começam a surgir, mas não temos como identificá-las, porque as opções de endereços acabaram! Foi mais ou menos isso que aconteceu com os endereços das máquinas que acessam a internet.
O que acontece é que o Protocolo de Internet definido na década de 80, lá no início da internet, também conhecido como IPv4, tem um limite de combinações de endereços de 4 bilhões. Claro que na época em que foi criado não se imaginaria que algum dia essa quantidade seria insuficiente para atender a todos, mas à medida que a internet foi se popularizando e outros dispositivos como os smartphones começaram a surgir, foi preciso pensar em algumas soluções para o problema do esgotamento de endereços IP.
O que é IPv4 e IPv6?
O IPv4 permite mais de 4 bilhões de endereços diferentes e tem nos atendido bem por décadas.
exemplo de IPv4: 168.213.226.204
O IPv6 aumenta o número de endereços IP possíveis de 4 bilhões de IPv4 para 340 trilhões de trilhões de trilhões. O IPv6 é escrito como uma string hexadecimal de dígitos de 128 bits e um endereço IPv6 típico se parece com isto:
2001:0ab8:85a2:0000:0000:8a3e:0370:7334
As principais diferenças entre o protocolo IPv4 e IPv6
A principal diferença entre o protocolo IPv4 e o protocolo IPv6 é a capacidade de expansão que cada um apresenta. Como vimos anteriormente, o IPv6 possibilita a criação de muito mais endereços do que seu antecessor; cerca de 79 octilhões a mais, para ser mais específico. O que é o mesmo que 56 octilhões de endereços por ser humano na terra.
O IPv6 também acabou com um dos maiores vilões do IPv4: o broadcast. Na nova versão, são utilizados apenas unicast e multicast, e houve a introdução do anycast, um tipo de endereço configurado em múltiplas interfaces.
- Unicast: Comunicação um para um.
- Multicast: Comunicação um para muitos (grupo de dispositivos configurados com o mesmo endereço).
- Anycast: Endereço configurado em múltiplas interfaces.
Além disso, no protocolo IPv6 não se usa mais o termo “máscara”, e sim “prefixo”, mudando a forma de endereçamento. Ele ainda mantém a parte de rede, sub rede e host, como no protocolo IPv4, mas há essa diferença.
Por fim, o IPv6 também difere do seu precursor na parte do cabeçalho ou header. Nele, tudo foi simplificado e houve a introdução dos chamados “cabeçalhos de extensão”, além do suporte nativo a questões importantes como segurança e QoS. Assim, podemos concluir que o protocolo IPv6 é uma versão muito mais eficiente, segura e útil que o IPv4.
IPv4 | IPv6 | |
---|---|---|
Tamanho do endereço | 32-bits(0-255) | 128-bits(16 octetos) |
Notação | Decimal com ponto | Hexadecimal alfanúmerica |
Exemplo | 168.213.226.204 | 2001:0ab8:85a2:0000:0000:8a3e:0370:7334 |
Como obter o IP | DHCP ou configuração manual | Compatível com configuração automática |
Segurança
IPv6 é mais/menos seguro que IPv4?
Comparar a segurança do IPv4 com a segurança do IPv6 não faz sentido. Ambos tem as suas vulnerabilidades.
É essencial lembrar que muitos ataques acontecem acima da camada de rede(modelo TCP/IP). Um e- mail de phishing associado a ransomware, por exemplo, representa a mesma ameaça, seja entregue por um link IPv4 ou IPv6.
Ou seja, não é limitação de tecnologia e sim grande parte dos ataques se reume ao fator humano.
A coisa mais importante que você pode fazer para aumentar a segurança IPv6 da sua organização é aprender o protocolo, como ele funciona e como ele é implementado em diferentes sistemas.
Fontes: avg, hostone, eletronet e dltec
TCP e UDP são protocolos que determinam como os dados são trocados pela Internet. Ambos construídos sobre o protocolo IP, eles compartilham muitas semelhanças, mas a diferença entre TCP e UDP os tornam adequados para finalidades diferentes. Eles são os dois protocolos mais amplamente usados com os quais os usuários da Internet e empresas interagem diariamente.
O protocolo de controle de transmissão (TCP) é orientado à conexão, o que significa que, uma vez que a conexão foi estabelecida, os dados podem ser transmitidos em duas direções. Ele tem sistemas integrados para verificar se há erros e garantir que os dados sejam entregues na ordem em que foram enviados, tornando-o o protocolo perfeito para a transferência de informações como imagens estáticas, arquivos de dados e páginas da web.
Como funciona?
Quando você solicita uma página da web em seu navegador, seu computador envia pacotes TCP para o endereço do servidor da web, solicitando que ele envie a página da web de volta para você. O servidor da web responde enviando um fluxo de pacotes TCP, que o seu navegador da web une para formar a página da web. Quando você clica em um link, entra, posta um comentário ou faz qualquer outra coisa, seu navegador da web envia pacotes TCP para o servidor e o servidor envia pacotes TCP de volta.
O TCP tem tudo a ver com confiabilidade — os pacotes enviados com TCP são rastreados para que nenhum dado seja perdido ou corrompido em trânsito. É por isso que os downloads de arquivos não são corrompidos, mesmo se houver problemas na rede. Claro, se o destinatário estiver offline, seu computador desistirá e você verá uma mensagem de erro dizendo que ele não pode se comunicar com o host remoto.
Handshake TCP de 3 tempos:
Handshal permite a uatenticação e o encerramento de uma conexão completa:
O User Datagram Protocol (UDP) é um protocolo de Internet mais simples e sem conexão, no qual os serviços de verificação e recuperação de erros não são necessários. Com o UDP, não há sobrecarga para abrir, manter ou encerrar uma conexão — os dados são continuamente enviados para o destinatário, quer ele os receba ou não.
No UPD temos:
UDP simplesmente envia os pacotes. Não quer saber se foi recebido ou não.
Como funciona?
O protocolo UDP funciona de forma semelhante ao TCP, mas elimina todo o material de verificação de erros. Toda a comunicação de ida e volta introduz latência, tornando as coisas mais lentas.
Quando um aplicativo usa UDP, os pacotes são enviados apenas para o destinatário. O remetente não espera para ter certeza de que o destinatário recebeu o pacote. Se o destinatário perder alguns pacotes UDP aqui e ali, o remetente não os reenviará. Perder toda essa sobrecarga significa que os dispositivos podem se comunicar mais rapidamente.
UDP é usado quando a velocidade é desejável e a correção de erros não é necessária. Por exemplo, ele é frequentemente usado para transmissões ao vivo e jogos online. Digamos que você esteja assistindo a um stream de vídeo ao vivo, que geralmente é transmitido usando UDP em vez de TCP. O servidor apenas envia um fluxo constante de pacotes UDP para os computadores que estão assistindo.
Se você perder a conexão por alguns segundos, o vídeo pode congelar ou ficar trêmulo por um momento e, em seguida, pular para o trecho atual da transmissão. Se ocorrer uma pequena perda de pacote, o vídeo ou áudio pode ficar distorcido por um momento, pois o vídeo continua a ser reproduzido sem os dados ausentes.
Os serviços que exigem que um cliente e um servidor enviem pacotes simultaneamente funcionam melhor com o TCP, pois ajuda a ativar a largura de banda total da rede. Use o TCP quando um pequeno atraso estiver bom e você precisar se concentrar na confiabilidade em vez da velocidade. Exemplos de aplicativos que usam TCP são o Instagram e a maioria dos serviços de e-mail . Serviços de vídeo como Netflix e YouTube também o utilizam para manter a integridade dos dados.
O UDP é melhor quando o cliente e o servidor enviam pacotes independentemente e os aplicativos são sensíveis ao tempo. Como não há atrasos de retransmissão, funciona bem para (a maioria) jogos de RPG, bem como para serviços de DNS e VOIP como o Zoom, que exigem velocidades rápidas.
Alguns serviços combinam os dois protocolos para uma solução rápida e confiável. Por exemplo, o Skype usa TCP para sinalização e UDP/TCP para transporte de tráfego.
TCP | TCP é um protocolo orientado à conexão e fornece a comunicação confiável com vários recursos. |
UDP | UDP é um protocolo de transporte em tempo real sem conexão, que oferece um processo de comunicação mais rápido, mas com pouca confiabilidade |
TCP | UDP | |
---|---|---|
Conexão | Orientado à conexão — O dispositivo deve estabelecer uma conexão antes de transmitir dados e fechar a conexão após a transmissão(conecta - verifica se o destino tá online - envia os pacotes - termina de enviar os pacotes - finaliza a conexão). | Sem conexão(normalmente usado em transmissões de Broadcast) |
Confiabilidade | Confiável — A entrega do pacote de dados é garantida. TCP pode recuperar pacotes perdidos, eliminar pacotes duplicados, recuperar dados corrompidos e recuperar a ligação em caso de problemas no sistema e na rede | Não confiável, as mensagens enviadas podem não alcançar o destino. |
Transmissão | Full duplex, é possível a transferência simultânea em ambas direções(cliente-servidor) durante toda a sessão, toda comunicação. | broadcast e multicast |
Tipo de informação de comunicação | Stateful — O cliente e o servidor mantem as informações sobre a sessão. | Stateless — O servidor não mantém nenhuma informação sobre a sessão. |
Sequência | Todos os pacotes são encaminhados ao destinatário de forma ordenada, mas não significa que irá chegar de forma ordenada, por conta das rotas, latencia… O ponto final, precisa organizar todos esses pacotes. | Não há ordenação dos segmentos, se chegarem fora de ordem, não serão reordenados. |
Fluxo | O receptor, a medida que recebe os dados, envia mensagens ACK, confima a recepção de um segmento, dado, como funcionalidade extra. | Não há confirmação de recpeção dos segmentos |
Velocidade | O TCP é mais lento que o UDP porque realiza verificação de erros, gerenciamento de fluxo e garante a entrega de pacotes de dados. | O UDP é mais rápido que o TCP, pois não garante a entrega do pacote de dados. |
Aplicação | Navegação na web. Transferência de arquivo. E-mail (SMTP, IMAP/POP) | VPN. Streaming de vídeo e música. Jogos online, jogos multiplayer. Transmissões ao vivo e videoconferência. Consultas de sistema de nome de domínio (DNS). Voz sobre IP (VoIP). |
Fonte: gaea e privateinternetaccess
IP Security Protocol
O IPSec é um protocolo de camada 3(camada de rede) projetado para suprir a falta de segurança de informações trafegando em rede pública. Basicamente o IPSec protege os pacotes IP de dados privados, encapsulando em outros pacotes IP para serem transportados. Há duas maneiras do IPSec ser implementado: modo túnel e modo transporte, sendo este último o modo nativo.
A diferença entre os modos está no encapsulamento. O modo transporte encapsula somente os dados, enquanto o modo túnel encapsula os dados e o cabeçalho. Sendo assim, o modo transporte não garante a confiabilidade dos dados durante o envio. Por isso é utilizado em dispositivos que já possuem o protocolo IPSec incorporados em sua pilha TCP/IP.
O IPSec fornece os seguintes serviços de segurança: autenticação, controle de acesso(AAA), confidencialidade e integridade dos dados. Os habilitadores das tecnologias de segurança utilizados pelo IPSec são: CHAP(Challenge Handshake Authentication Protocol), RADIUS(Remote Authentication Dial-in User Service) e a Encriptação de Dados e dos Certificados Digitais.
Por que o IPSec é importante?
A Internet Engineering Task Force desenvolveu o IPSec na década de 1990 para garantir a confidencialidade, integridade e autenticidade dos dados ao acessar redes públicas. Por exemplo, os usuários se conectam à Internet utilizando uma rede privada virtual (VPN) IPSec para acessar os arquivos da empresa remotamente. O protocolo IPSec criptografa informações confidenciais para evitar monitoramento indesejado. O servidor também pode verificar se os pacotes de dados recebidos estão autorizados.
Quais são os usos do IPSec?
O IPsec pode ser usado para o seguinte:
As organizações usam o IPSec para se proteger contra ataques de reprodução. O ataque de reprodução, ou “ataque man-in-the-middle”, corresponde ao ato de interceptar e alterar uma transmissão em andamento, roteando dados para um computador intermediário. O protocolo IPSec atribui um número sequencial a cada pacote de dados e realiza verificações para detectar sinais de pacotes duplicados.
ICMP ( Internet Control Message Protocol ) é um protocolo que os dispositivos de rede (por exemplo, roteadores) usam para gerar mensagens de erro quando problemas de rede impedem a passagem de pacotes IP.
ICMP pode ser usado para relatar e debugar esses erros.
O protocolo ICMP notifica o remetente se os dados não forem recebidos pelo destinatário ou recebidos na ordem errada. Assim, o ICMP é um protocolo para comunicar informações sobre dados, mas não gerencia os dados em si.
Por exemplo, um remetente pode querer enviar uma mensagem para um determinado destino, mas o roteador não pode fazê-lo. Nesse caso, o roteador informa ao remetente que a mensagem não pode ser entregue a esse destino.
Embora a camada de Rede(modelo OSI) não deva se preocupar com a garantia de conexão, o ICMP fornece feedback sobre as comunicações quando as coisas dão errado . Portanto, mesmo se você usar o UDP, que possui um modelo de comunicação sem conexão , ainda é possível descobrir por que uma transmissão falhou. Todos os dispositivos conectados à rede podem processar mensagens ICMP, incluindo roteadores e dispositivos terminais. O ICMP foi adaptado para funcionar com o IPv6 tão bem quanto ao IPv4.
Mas vale lembrar que o ICMP não tem a necessidade de obter recursos da camanda de transporte ( TCP ou UDP ), portanto ele é considerado como ”connectionless” fazendo com que não há necessidade de abrir conexão para enviar a mensagem.
As mensagens ICMP são transmitidas em datagramas IP e divididas em duas categorias:
Mensagem de erro: A mensagem de relatório de erro indica que, quando o roteador encontrar um problema durante o processamento de um pacote IP, ele enviará uma mensagem. Usadas para informar a um dispositivo transmissor que um erro ocorreu durante a transmissão do datagrama. Geralmente os erros são relacionados à estrutura do datagrama em si, ou problemas encontrados durante o tráfego dos pacotes através da rede.
Mensagem de consulta: São mensagens que permitem aos dispositivos trocarem informações entre si e realizarem determinados tipos de testes e diagnósticos. As mensagens de consulta são aquelas que ajudam o host a obter informações específicas de outro host. Digamos que haja um cliente e um servidor e o cliente queira saber se o servidor está funcionando. Ele envia uma mensagem ICMP ao servidor para descobrir.
Formato da mensagem ICMP
Type | Especifica o tipo de mensagem ICMP |
Code | Especifica o subtipo da mensagem ICMP |
Checksum | Determina se a mensagem contém ou não um erro |
Data | No contexto das mensagens de erro, o pacote contém as informações completas do pacote nesta seção. |
Como vimos as mensagens ICMP são geralmente divididas em duas categorias:
Categoria | Tipo | Mensagem | Descrição | Code |
Mensagem de erro | 3 | Destino Inacessível | Quando um pacote falha em alcançar seu destino pretendido | 0 - 15 |
Mensagem de erro | 4 | Source Quench | Para cada datagrama descartado devido ao congestionamento da camada de rede, o roteador envia uma mensagem source-quench. | 0 |
Mensagem de erro | 11 | Tempo excedido | Quando um pacote é enviado de uma camada com 1500 unidades para uma camada com 300 unidades, o pacote é fragmentado; esse processo é conhecido como fragmentação. Essas 1.500 unidades são divididas em cinco fragmentos, f1, f2, f3, f4 e f5, que chegam ao destino em ordem. Será descartado todos os fragmentos recebidos e enviado uma mensagem de tempo excedido para a fonte original se todos os fragmentos não chegarem ao destino dentro de um determinado período de tempo. | 0 ou 1 |
Mensagem de erro | 12 | Problemas de Parâmetros | Uma mensagem de problema de parâmetro pode ser enviada pelo roteador e pelo host de destino. Esta mensagem indica que alguns parâmetros foram configurados incorretamente. | 0 ou 1 |
Mensagem de consulta | 8 ou 0 | echo-request(8) ou replay(0) | Uma mensagem echo-request pode ser enviada por um roteador ou host. É usado para enviar uma mensagem “Você está vivo?” para outro host. Se o outro host ainda estiver ativo, a mensagem de echo-replay será enviada. O roteador ou o host que recebe uma mensagem de echo-request envia uma mensagem de echo-replay. | 0 |
Mensagem de consulta | 13 ou 14 | Timestamp request(13) or replay(14) | Pode ser usado para calcular o tempo de ida e volta entre a origem e o destino, mesmo que os relógios não estejam sincronizados. | 0 |
echo/eco é a mesma coisa que PING
💡 Os agentes de ameaças usam pacotes de eco (pings) do protocolo de mensagens de controle da Internet (ICMP) para</br>descobrir sub-redes e hosts em uma redeprotegida, para gerar ataques de inundação DoS e para alterar </br>as tabelas de roteamento de host.
Os atores da ameaça usam o ICMP para reconhecimento e ataques de varredura. Eles podem lançar ataques de coleta de informações para mapear uma topologia de rede, descobrir quais hosts estão ativos (acessíveis), identificar o sistema operacional do host (impressão digital do sistema operacional) e determinar o estado de um firewall. Os agentes de ameaças também usam ICMP para ataques DoS.
Os analistas de segurança devem ser capazes de detectar ataques relacionados ao ICMP observando o tráfego capturado e os arquivos de log. No caso de grandes redes, dispositivos de segurança como firewalls e sistemas de detecção de intrusão (IDS) detectam tais ataques e geram alertas para os analistas de segurança.
Mensagens ICMP usadas por hackers | Descrição |
Solicitação de eco ICMP e resposta de eco | Isso é usado para realizar verificação de host e ataques DoS. |
ICMP inacessível | Isso é usado para realizar o reconhecimento de rede e ataques de varredura. |
Resposta de máscara ICMP | Isso é usado para mapear uma rede IP interna. |
Redirecionamentos ICMP | Isso é usado para atrair um host alvo para enviar todo o tráfego através de um dispositivo comprometido e criar um ataque MITM. |
Descoberta de roteador ICMP | Isso é usado para injetar entradas de rota falsas na tabela de roteamento de um host de destino. |
Solicitações de eco e resposta de eco = echo-request e echo-replay
Ataque de inundação PING Uma inundação ping é um ataque de negação de serviço no qual o invasor tenta sobrecarregar um dispositivo visado com pacotes de solicitação de eco ICMP, fazendo com que o alvo se torne inacessível para o tráfego normal. Quando o tráfego de ataque se origina em vários dispositivos, o ataque torna-se um DDoS ou ataque Distribuído de Negação de Serviço.
A forma DDoS de uma inundação Ping (ICMP) pode ser dividida em duas etapas que se repetem:
Mais ataques: CNNA-Network, UFRJ, comparitech, infosecinstitute
Fonte: bosontreinamentos, data-flair, CNNA-Network e cloudflare
O que é o DNS?
O DNS (Domain Name System – Sistema de nome de domínio) converte nomes de domínio legíveis por humanos (por exemplo, www.amazon.com) em endereços IP legíveis por máquina (por exemplo, 192.0.2.44).
Como vimos DNS significa Domain Name System, ou sistema de nomes de domínios, e contém o registro de todos os domínios da internet. A sua função não é hospedar sites ou aplicações que criamos, mas sim permitir que as requisições cheguem aos locais corretos.
Um servidor DNS é feito única e exclusivamente para a tradução de domínios para endereços de IP, então vamos entender como os servidores DNS podem realizar a sua tarefa e como são passadas as requisições para ele.
Para que serve o DNS na rede e como ele funciona?
Para entender como o DNS funciona, é importante aprender algumas definições primeiro:
Quando escrevemos uma URL no navegador, como alura.com.br, o nosso computador não sabe como se conectar com o site da Alura, mas ele conhece alguém que sabe: o servidor DNS. Então, ele manda uma requisição pedindo para o DNS responder com o endereço IP do site.
Agora, quando essa requisição chegar no servidor DNS, ele tem que agir rápido. Para isso, mantém-se um cache, ou uma cópia da informação, em memória RAM e vão primeiro olhar o cache para ver se tem uma resposta. Por exemplo, se eu acabei de acessar www.alura.com.br, ele não precisa fazer uma requisição para um Servidor raiz buscar o IP do www.alura.com.br
Se não encontrar, têm que fazer uma requisição para um Servidor raiz, um servidor parecido com o DNS, que guarda informações de outros servidores e que irá responder com um endereço de um servidor de domínio de nível superior, ou servidor TLD.
O servidor TLD é o servidor responsável por guardar informações da última parte da ULR, o .com, .net, .org e assim por diante, sendo um servidor para cada, e a tarefa dele é responder a última requisição com o endereço do servidor DNS autoritativo(por exemplo Amazon Route 53).
Por último, o servidor DNS autoritativo, que conhece o endereço de onde o site está hospedado, responde o servidor DNS com o endereço, e assim o DNS pode te responder com o endereço IP.
na imagem www.example.com = www.alura.com.br
O que é resolvedor DNS? Em resumo, o resolvedor DNS é um servidor que converte nomes de domínio e endereços de IP. Sem ele, seu site não poderia ser acessado. Pense neste resolvedor DNS como um bibliotecário a tentar encontrar um livro para si na biblioteca.
O que DNS autoritativo? DNS autoritativo funcionam como um registro geral da web onde ficam armazenados os IPs (e outros dados DNS) correspondentes a cada nome. Assim, o DNS autoritativo recebe este nome porque tem autoridade final sobre cada domínio. Esses domínios são organizados em estrutura hierárquica, em forma de árvore como no exemplo abaixo:
Os servidores DNS possuem bancos de dados da forma: Type, Name, Value, TTL, conhecidos como registros de recursos (RRs).
Nenhum servidor possui registros de todos os domínios na Internet, pois o sistema funciona de forma hierarquica e distribuída, de modo que seja escalável nas infraestruturas de redes, além de possibilitar um funcionamento contínuo da rede mesmo que alguns servidores DNS deixem de funcionar.
Type | Name | Value | Example |
A | é o nome do computador(hostname) | é o endereço IP | relay.bar.foo.com, 145.37..93.126, A |
CNAME | é um “apelido” para algum nome “canônico” (o nome real) www.ibm.com é realmente servereast.backup2.ibm.com | é o nome canônico | oo.com, relay.bar.foo.com, CNAME |
NS | é um domínio (ex.:foo.com) | é o endereço IP do servidor de nomes autorizados para este domínio | foo.com, dns.foo.com, NS |
MX | é o nome do servidor de correio associado com name | foo.com, mail.foo.com, MX |
O servidor DNS pode sempre ver quais sites você está acessando, mas nunca o conteúdo que você está acessando, e sabe exatamente qual é o seu endereço IP, já que tem que fazer uma resposta a sua requisição. Isso ocorre em redes privadas, como da sua casa, em uma rede pública, como de restaurante ou shopping, ou através de VPNs ou túneis SSH.
Sendo assim, é importante escolher um DNS que não irá fazer a venda dessas informações ou armazená-las.
Se você estiver com pressa, veja pelo menos o ataque de “Cache Poisoning”.
Fonte: Alura, AWS, UFRJ e Oracle
O Telnet é um protocolo que permiterealizar a conexão e administração remota, ou seja, com ele, é possível conectar-se a um computador que esteja distante.
Você já viu um computador mexendo “sozinho”? Essa pergunta pode soar engraçada e realmente é, porém, talvez você realmente já tenha visto um computador ligado sem nenhum ser humano ali e o ponteiro movendo-se e executando funções.
Isso pode ser explicado de algumas formas, e uma das possibilidades é com o controle remoto, ou seja, tem alguém em algum lugar do mundo que se conectou àquela máquina para executar alguma função.
O Telnet é um dos comandos que permite que uma pessoa que possa estar em qualquer lugar do mundo tenha acesso e consiga executar funções em um computador.
O Telnet é frequentemente usado por administradores de rede para acessar e gerenciar dispositivos remotos. Um administrador de rede pode acessar o dispositivo por telnet para o endereço IP ou nome do host de um dispositivo remoto. O administrador da rede será apresentado a um terminal virtual que pode interagir com o host remoto.
Para usar o telnet, você deve ter um software (cliente Telnet) instalado. Em um dispositivo remoto, um servidor Telnet deve estar instalado e funcionando.
Para conectar via telnet a um servidor, basta executar o comando “telnet <domínio/IP>
Exemplo: Digamos que o administrador de rede(cliente telnet), deseja acessar remotamente um roteador remoto(servidor telnet):
#telnet server-IP address
telnet 38.76.11.19
Irá inserir usuário e senha.
Feito isso o administrador agora pode gerenciar o dispositivo remoto do seu próprio computador.
Embora o Telnet seja simples e fácil de usar, ele não é mais tão utilizado, especialmente em ambientes de produção. Isso ocorre porque o Telnet envia todos os dados em texto não criptografado, incluindo nomes de usuários e senhas! O Telnet só é usado se o SSH não estiver disponível no dispositivo, por exemplo, em algum equipamento Cisco mais antigo.
Sem criptografia, as comunicações de dados podem ser lidas por qualquer pessoa que tenha acesso ao fluxo de pacotes de rede.
Fonte: betrybe, geek-university e academy
Resumo | - |
Terminal bidirecional | Envia comandos para o servidor, como ele apresentará erros, outras infos… Ou seja, comunicação dos dois lados. |
Terminal virtual | Apenas por texto, não possui atividade de utilização por mouse, por exemplo. |
Ainda muito utilizado na troca de info entre equipamento de rede | Por exemplo entre dois roteadores em uma rede local(lan) |
Não tem criptografia | Tudo que você digitar e enviar para servidor, vai em texto puro |
Para fazer conexão com servidor, colocamos usario e senha | e isso tbm é passado em texto puro |
SSH é a sigla para Secure Socket Shell, sendo um dos protocolos específicos de segurança de troca de arquivos entre cliente e servidor de internet, usando criptografia. O objetivo do SSH é permitir que desenvolvedores ou outros usuários realizem alterações em sites e servidores utilizando uma conexão simples e segura.
Na prática, o SSH fornece o mecanismo para que haja a autenticação desse usuário remoto, garantindo que essa pessoa tenha autorização para se comunicar com o servidor. Dessa maneira, é criada a conexão por meio do protocolo e as informações são transportadas nesse modelo de secure shell, com a criptografia que protege os dados.
O SSH é acessado via terminal, independentemente do sistema operacional usado, e então é desenvolvida a criptografia que vai proteger as informações. Por meio da janela é feita a conexão com o servidor remoto, e então o processo se desenvolve.
Tipo | Descrição | |
Simétrica | É a forma em que a criptografia utiliza uma chave secreta para codificar e decodificar uma mensagem do cliente e do servidor. De forma efetiva, qualquer mensagem pode ser decodificada, assim como, ser transferida. ( a chave não é compartilhada com todos) | |
Assimétrica | Ao contrário da criptografia simétrica, a criptografia assimétrica usa duas chaves separadas para criptografia e descriptografia. Essas duas chaves são conhecidas como chave-pública e chave-privada. Juntas, as chaves são conhecidas como pública-privada e formam um par de chaves. A mensagem é criptografada pela chave-publica p/ todos(enviada de forma cifrada) e pela chave-privada é feita a descodificação(só quem tem consegue decodificar) | |
Hashing | One-way hashing é mais uma forma de criptografia usada em conexões seguras de Shell. As funções do one-way-hash diferem das duas formas de criptografia acima mencionadas, no sentido de que elas nunca devem ser descriptografadas. Eles geram um valor exclusivo, um sentido único de comprimento fixo para cada entrada que não mostra nenhuma tendência clara que possa ser explorada. Isso torna praticamente impossível de ser feita a reversão. [No hashing não acontece a decodificação] |
Tipo | Como | Exemplo |
Com login e senha | Site | $ ssh [username]@nomedosite.com.br |
Com login e senha | IP | $ ssh [username]@[server IP address] |
Usando chaves SSH | SSH key pair | $ ssh-copy-id -i ~/.ssh/id_rsa.pub user@server |
SSH tutorial, Lab SSH, AWS SSH e Build Simple Lab
Sem SSH:
Com SSH:
Resumo | - |
Administração de servidores | por meio de terminais(cliente-servidor) |
Padrão | ssh [username]@0[host] = host ip ou dominio |
login | password ou senha de acesso ao servidor |
Criptografia | Simétrica, Assimétrica ou Hashing. |
Ferramentas cliente SSH | OpenSSH, SmarTTY, PuTTy e Terminal(nativo) |
Porta | 22 |
Fonte: Hostinger, rockcontent e resultadosdigitais
De uma forma simplificada, ao fazer um upload de arquivos, dados são transferidos de um computador para um servidor. Já ao fazer um download, os arquivos são transferidos de um servidor para o seu computador pessoal. Isso pode ser feito através do FTP.
Tipo | Descrição |
FTP | Não criptografado, porta padrão 21 |
FTP anônimo | Alguns servidores FTP públicos acabam não exigindo credenciais para acessar os seus arquivos. Essa prática é comum dentro do que é chamado de “FTP anônimo”. |
FTP protegido por senha | Requer a autenticação para uso através de usuário e senha. Mesmo assim, o serviço não é criptografado ou seguro. |
FTPS | É um extensão do protocolo FTP mais seguro. Critografado, é o tipo mais rápido. Protege os arquivos que estão sendo transmitido com TLS |
SFTP | O SFTP é um subconjunto do protocolo Secure Shell (SSH), executado na porta 22, comumente usado por administradores de TI para acessar sistemas e aplicativos remotos, mas incorpora um mecanismo para transferência segura de arquivos. |
Basicamente, podemos dizer que o protocolo conecta duas máquinas, sendo que uma faz o papel do cliente, a outra do servidor, com dois vínculos TCP diferentes.
Cada uma delas opera conforme descrição abaixo: | | | |–|–| |Cliente (canal de comandos)| Servidor (canal de dados)| |É o computador que solicita conexão para ter acesso ao conteúdo hospedado no servidor;Utiliza um programa para se conectar ao servidor e faz login com usuário e senha;Depois de ser autorizado, passa a fazer download ou upload de arquivos.| Computador com ambiente virtual que hospeda os dados e arquivos;Possui programas com a função de analisar e liberar a conexão de computadores externos;Autoriza o compartilhamento dos arquivos com o cliente que está fazendo a solicitação.|
Os dois equipamentos precisam ter conexão com a internet ou com uma rede intranet para que o protocolo funcione, e existem dois modos de comando, o ativo e o passivo.
A diferença entre eles está na liberdade de interação entre cliente e servidor, uma vez que:
> no modo ativo, apesar de o cliente estabelecer o canal de comandos, é o servidor que define o canal de dados que será utilizado;
> no modo passivo, o cliente consegue determinar ambos os canais de comunicação.
Geralmente, o modo passivo é utilizado quando o servidor é impedido de abrir o canal de dados, especialmente por bloqueios provenientes de Firewalls ou roteadores. Essa alternância de modos é feita pelo controle de portas.
Duas portas FTP são utilizadas para permitir que dois computadores se conversem dentro de uma rede:
> Porta 21, destinada a comando e controle da conexão(autenticação);
> Porta 20, voltada ao transporte de dados(verificação do envio de dados foi finalizado ou não).
Fonte: Controle, Hostinger e Tiflux
SSL significa Secure Sockets Layer e, em resumo, é a tecnologia padrão para manter uma conexão de internet segura e proteger todos os dados confidenciais que estão sendo enviados entre dois sistemas, impedindo que criminosos leiam e modifiquem qualquer informação transferida, incluindo possíveis dados pessoais. Os dois sistemas podem ser um servidor e um cliente (por exemplo, um site de compras e navegador) ou servidor para servidor (por exemplo, um aplicativo com informações de identificação pessoal ou com informações de folha de pagamento).
SSL garante que quaisquer dados transferidos entre usuários e sites ou entre dois sistemas permaneçam impossíveis de ler. Ele usa algoritmos de criptografia para embaralhar os dados em trânsito, impedindo que os hackers os leiam à medida que são enviados pela conexão. Esta informação pode ser qualquer coisa sensível ou pessoal que pode incluir números de cartão de crédito e outras informações financeiras, nomes e endereços.
TLS (Transport Layer Security) é apenas uma versão atualizada e mais segura do SSL, com opção de critografia ECC, RSA ou DSA.
O SSL/TLS usa criptografia assimétrica e simétrica para proteger a confidencialidade e a integridade dos dados em trânsito. A criptografia assimétrica é usada para estabelecer uma sessão segura entre um cliente e um servidor, e a criptografia simétrica é usada para trocar dados dentro da sessão segura.
Quando é preciso de autenticação | Qualquer servidor pode se passar por seu servidor interceptando as informações sendo transmitidas no caminho. O SSL/TLS permite que você comprove a identidade do seu servidor para que os visitantes saibam que é autêntico |
Para garantir confiabilidade | Quem possui uma loja virtual ou algum site que solicita o uso de informações pessoais é importante criar um senso de segurança para que as pessoas se sintam confortáveis em fornecer seus dados. Um certificado SSL/TLS é uma maneira visível de dizer aos seus visitantes que seus dados vão estar seguros. |
Quando você precisa estar de acordo com os padrões da indústria | Em algumas indústrias, como de finanças, é necessário manter um padrão básico de segurança. Existem também algumas exigências do PCI (Payment Card Industry) para quem deseja aceitar pagamentos via cartão de crédito em seu site, e uma delas é a utilização de um certificado SSL/TLS. |
É importante lembrar que o certificado SSL/TLS é válido para diversos dispositivos, o que o torna uma opção de segurança ainda mais versátil na era de dispositivos móveis. Os benefícios de ter um certificado SSL/TLS faz valer muito a pena o investimento.
Fonte: Web Security e Hostinger
Protocolo de Transferência de Hipertexto(HTTP) é um protocolo usado dentro do modelo Client/Server é baseado em pedidos (requests) e respostas (responses).
Ele é a forma em que o Cliente e o Servidor se comunicam. Pensando em uniformizar a comunicação entre servidores e clientes foram criados códigos e verbos que são usados por ambas as partes, e essas requisições são feitas em URLs que possuem uma estrutura específica.
protocolo | endereço do servidor | recurso |
http | www.nomedosite.com | /home |
O método HTTP informa ao servidor que tipo de ação o usuário deseja realizar. Temos diferentes métodos HTTP. Eles são:
Método | Ação |
GET | ler |
POST | criar |
PUT | subsituir |
PATCH | modificar |
DELETE | Excluir |
Analogia:
Digamos que você entrou no site http://www.comprasOnlineAnalogia.com.br
E no campo de busca você pesquisou por “Livros”. Apareceu uma lista com todos os livros do site. Ao fazer isso, geralmente usamos o GET.
Agora você encontrou o livro que queria e comprou o livro. Nesse caso, geralmente usamos o POST.
Mas você percebeu que colocou o endereço errado e você deseja modificar o pedido. Nessa caso geralmente usamos o PATCH
Por algum motivo você não quer mais esse livro, você deseja cancelar o pedido. Nesse caso usamos o DELETE
Fonte: Reprograma
Quer se aprofundar mais? aqui tem uma explicação muito boa sobre O que é HTTP, como funciona e qual a sua diferença para HTTP 2 do André Lug.
Como vimos HTTP é usado para transferir dados do Cliente e o Servidor. O único problema com o HTTP é que as informações que passam entre o servidor e o navegador estão abertas para pessoas que possam querer fazer uso indevido delas.
Com HTTPS, você adiciona uma camada de segurança a essa conexão para que ela não possa ser interceptada. Os dados que passam entre o servidor e o navegador são criptografados, convertidos em um código para ocultá-los daqueles que não estão autorizados a visualizá-los.
< Anterior | Próxima > |