- Sexta, 27 de julho de 2018
- Uncategorized
Quando você lê tutoriais sobre configuração de servidores e firewalls, você frequentemente se deparará com endereços IP neste formato:
A primeira parte pode ser familiar para você, mas a parte após os dois pontos (:) pode não ser. Esse número (8080) representa uma porta de rede.
Um endereço IP é uma sequência única de números que representa uma interface em uma rede, muitas vezes na Internet. Com um endereço IP, a rede pode rotear pacotes de dados para a interface de rede de um dispositivo específico, que pode ser um servidor ou um roteador ou mesmo o seu telefone.
Existem muitos programas em execução nesses dispositivos que podem estar interessados em receber dados da rede e enviar dados para outros dispositivos. Mas o endereço IP não diz ao dispositivo receptor a que programa os dados se destinam. Essa é a função da porta de rede.
Em cada trecho de dados enviados por uma conexão TCP ou UDP (incluindo HTTP (a web), SSH, FTP, DNS e a maioria dos outros protocolos familiares) há um número de porta de origem e um número de porta de destino.
Estes números não representam um equipamento ou uma porta física, como uma porta ethernet ou uma porta relâmpago. Eles são uma construção de software que associa um processo que fornece um serviço com pacotes de dados que têm a porta de destino relevante.
Um processo é um pedaço de software que está rodando no servidor. Um servidor web é um processo, assim como os servidores SSH, servidores FTP e servidores DNS. Todo programa que roda em um servidor é um processo.
O sistema operacional de um servidor usa portas para garantir que os dados sejam recebidos pelo processo correto, muitas vezes entregando-os a um pedaço de memória mapeada para esse fim. Os processos são ligados a uma porta específica, e – no caso de conexões TCP – apenas um processo pode ser ligado a cada porta. Se mais de um processo estiver vinculado a uma porta, haveria um conflito e os dados poderiam não ser entregues ao processo certo.
Portas são representadas por números que variam de 0 a 65535, o máximo que caberá em um inteiro de 16 bits sem assinatura. Alguns desses números estão associados a determinados tipos de serviços. Portas de 0 a 1024 são chamadas portas conhecidas, e são convencionalmente associadas com os tipos mais comuns de serviços de rede. Servidores Web usam a porta 80, servidores SSH usam a porta 22, e assim por diante.
Portas de 1024 a 49151 são portas registradas. Elas podem ser registradas na ICANN por organizações para uso com seu software. Portas acima de 49151 são portas privadas que podem ser usadas para fins arbitrários.
Se você executar o seguinte comando no seu servidor CentOS, você será capaz de ver uma lista de portas e os serviços que elas correspondem.
less /etc/services
Compreender como as portas funcionam é útil em uma variedade de circunstâncias. Por exemplo, muitos bots de força bruta têm como alvo servidores SSH via porta 22. Você pode querer associar o SSH a uma porta diferente para que seu servidor não tenha que lidar com milhares de pedidos de login ilegítimos. Você pode mudar a porta SSH para uma das portas privadas (acima de 49151) editando a configuração “Port” em “/etc/ssh/sshd_config”. Os bots de força bruta não serão mais capazes de encontrá-la. Se você mudar a porta SSH, certifique-se de que você se lembra para o que mudou ou você não será capaz de logar.
Portas também são úteis para configurar firewalls e para executar servidores de desenvolvimento: é comum usar a porta 8080 como uma alternativa à porta 80 para servidores web.
Num futuro artigo, vamos ver como as portas são usadas para proteger servidores CentOS com o firewall iptables.