Se você deseja executar algum tipo de software de servidor no seu Raspberry Pi (i.e., servidor web, servidor de banco de dados, servidor Minecraft) e torná-los publicamente disponíveis na internet (hospedagem), então proteger seu servidor Raspberry Pi com um programa de firewall é muito importante.
Existem muitos programas de firewall gratuitos e de código aberto disponíveis no Raspberry Pi OS (o sistema operacional oficial dos computadores de placa única Raspberry Pi). Entre esses programas, UFW e Firewalld são os programas de firewall mais comuns.
Neste artigo, usarei o programa de firewall UFW para mostrar como proteger seu Raspberry Pi. Então vamos começar.
Coisas que você vai precisar:
Para seguir este artigo, você precisará dos seguintes itens para configurar o Raspberry Pi no modo sem cabeça:
- Um computador de placa única Raspberry Pi 3 ou Raspberry Pi 4.
- Um adaptador de alimentação micro-USB (Raspberry Pi 3) ou USB Type-C (Raspberry Pi 4).
- Um cartão microSD de 16 GB ou 32 GB com sistema operacional Raspberry Pi piscou.
- Conectividade de rede no Raspberry Pi.
- Um laptop ou computador de mesa para acesso remoto VNC à área de trabalho ou acesso SSH ao Raspberry Pi.
Se não quiser configurar o Raspberry Pi 4 no modo sem cabeça, você também precisará:
- Um monitor
- Um cabo HDMI ou micro-HDMI
- Um teclado
- Um rato.
Se você precisar de ajuda para atualizar a imagem do Raspberry Pi OS no cartão microSD, consulte o meu artigo Como instalar e usar o Raspberry Pi Imager.
Se você for um iniciante do Raspberry Pi e precisar de ajuda para instalar o Raspberry Pi OS no seu Raspberry Pi, consulte meu artigo Como instalar o Raspberry Pi OS no Raspberry Pi 4.
Se você precisar de ajuda na configuração sem cabeça do Raspberry Pi, consulte meu artigo Como instalar e configurar o sistema operacional Raspberry Pi no Raspberry Pi 4 sem monitor externo.
Atualizando o Raspberry Pi OS:
Como estamos tentando proteger nosso Raspberry Pi, é uma boa ideia atualizar todos os pacotes existentes do sistema operacional Raspberry Pi. Isso tornará o seu sistema operacional Raspberry Pi mais seguro, pois instalará todas as atualizações de segurança e correções de bugs mais recentes.
Primeiro, atualize o cache do repositório de pacotes APT com o seguinte comando:
$ sudo apt update
Para atualizar todos os pacotes existentes do seu sistema operacional Raspberry Pi, execute o seguinte comando:
Para confirmar a instalação das atualizações, pressione Y e então pressione <Entrar>.
O gerenciador de pacotes APT irá baixar todos os pacotes necessários da internet. Pode demorar um pouco para ser concluído.
Assim que os pacotes forem baixados, o gerenciador de pacotes APT irá instalá-los um por um. Pode demorar um pouco para ser concluído.
Neste ponto, todas as atualizações devem ser instaladas.
Para que as alterações tenham efeito, reinicie o Raspberry Pi com o seguinte comando:
$ sudo reboot
Instalando UFW - Firewall Descomplicado:
Depois de inicializar o Raspberry Pi, você pode instalar o programa de firewall UFW com o seguinte comando:
$ sudo apt install ufw -y
UFW deve ser instalado.
Para que as alterações tenham efeito, reinicie o Raspberry Pi com o seguinte comando:
Assim que seu Raspberry Pi for inicializado, o ufw O serviço systemd deve estar ativo, como você pode ver na captura de tela abaixo.
Você pode verificar se o UFW está habilitado com o seguinte comando:
Como você pode ver, o UFW não é habilitado por padrão.
Para ativar o UFW, execute o seguinte comando:
Como você pode ver, o UFW agora está habilitado.
Permitindo acesso às portas usando perfis de aplicativos:
UFW tem alguns perfis de aplicativo padrão. Cada um dos perfis de aplicativo tem algumas portas predefinidas que você pode permitir / negar acesso.
Para listar todos os perfis de aplicativo disponíveis, execute o seguinte comando:
lista de aplicativos $ sudo ufw
Todos os perfis de aplicativos instalados devem ser listados.
Se você estiver conectado ao Raspberry Pi via SSH ou VNC (como eu), deverá permitir o acesso ao OpenSSH e VNC perfis de aplicativos. Caso contrário, da próxima vez que você inicializar o Raspberry Pi, não será possível acessá-lo remotamente, pois o firewall bloqueará todas as portas, incluindo as portas SSH e VNC. Então, isso é muito importante.
Você pode ver quais portas são definidas em um perfil de aplicativo (i.e., OpenSSH) com o seguinte comando:
Como você pode ver, Porta TCP 22 é definido no perfil do aplicativo OpenSSH.
Da mesma forma, o Porta TCP 5900 é definido no VNC perfil de aplicativo.
Para permitir o acesso às portas definidas no VNC perfil de aplicativo, execute o seguinte comando:
Como você pode ver, o VNC perfil de aplicativo é permitido através do firewall.
Da mesma forma, permite o acesso às portas definidas no OpenSSH perfil de aplicativo com o seguinte comando:
Como você pode ver, o OpenSSH perfil de aplicativo é permitido através do firewall.
Permitindo acesso às portas usando o número da porta:
Às vezes, a porta que você deseja permitir / negar acesso não será definida em nenhum perfil de aplicativo disponível. Portanto, você precisará permitir / negar acesso a essas portas usando o número da porta.
Por exemplo, você pode permitir o acesso ao Porta TCP 8080 com o seguinte comando:
$ sudo ufw allow 8080 / tcp
Como você pode ver, o Porta TCP 8080 é permitido o acesso através do firewall.
Da mesma forma, você pode permitir o acesso ao Porta UDP 8888 com o seguinte comando:
Como você pode ver, o Porta UDP 8888 é permitido o acesso através do firewall.
Negar acesso às portas:
O comportamento padrão do programa de firewall UFW é negar tudo o que não é permitido. Então, você não precisa fazer nada para negar o acesso a nenhuma porta.
Por uma questão de competição, vou mostrar a você como negar portas no UFW de qualquer maneira.
Por exemplo, para negar acesso ao Porta TCP 9900, execute o seguinte comando:
$ sudo ufw deny 9900 / tcp
Como você pode ver, o Porta TCP 9900 tem acesso negado através do firewall.
Da mesma forma, você pode negar as portas definidas em um perfil de aplicativo (i.e., WWW) do seguinte modo:
Negando acesso de endereços IP específicos ao servidor:
Às vezes, você pode precisar negar acesso a um endereço IP específico ou sub-rede IP para proteger seu servidor Raspberry Pi contra ataques DDoS (Negação de Serviço Distribuída). Você pode fazer isso com UFW.
Para experimentar negar endereços IP, vou usar o servidor web Apache.
Você pode instalar o servidor da web Apache em seu Raspberry Pi com o seguinte comando:
$ sudo apt install apache2
Para confirmar a instalação, pressione Y e então pressione <Entrar>.
O gerenciador de pacotes APT irá baixar todos os pacotes da internet e instalá-los um por um. Pode demorar um pouco para ser concluído.
Neste ponto, o servidor web Apache deve ser instalado.
Depois que o servidor da web Apache estiver instalado, crie uma página de índice simples com o seguinte comando:
Bem-vindo ao LinuxHint
"| sudo tee / var / www / html / index.html
O apache2 O serviço systemd deve estar em execução, como você pode ver na captura de tela abaixo.
Permitir acesso à porta do servidor web Apache (Porta TCP 80) usando o perfil de aplicativo WWW do seguinte modo:
Como você pode ver, as portas definidas no perfil do aplicativo WWW é permitido o acesso através do firewall.
Encontre o endereço IP do seu Raspberry Pi com o seguinte comando:
Como você pode ver, o endereço IP do meu Raspberry Pi é 192.168.0.106. Será diferente para você. Portanto, certifique-se de substituí-lo pelo seu a partir de agora.
Você deve acessar o servidor web Apache de outros dispositivos, como você pode ver na imagem abaixo.
O computador que estou usando para acessar o servidor web Apache tem o endereço IP 192.168.0.109.
Para negar o endereço IP 192.168.0.109 acesso ao seu servidor Raspberry Pi, você deve adicionar a regra de firewall no topo (posição 1). A ordem das regras do UFW é muito importante. As regras mais restritivas devem ir primeiro.
Para negar o endereço IP 192.168.0.109 acesso ao servidor Raspberry Pi, execute o seguinte comando:
A regra UFW para negar o endereço IP 192.168.0.109 o acesso ao servidor Raspberry Pi deve ser a regra superior, conforme mostrado na imagem abaixo.
Você não conseguirá acessar o servidor da web Apache em execução no seu Raspberry Pi a partir do computador com o endereço IP 192.168.0.109 mais, como você pode ver na imagem abaixo.
Mas, você pode acessar o servidor da web Apache em execução no seu Raspberry Pi de outros computadores.
Se você deseja negar o acesso a uma sub-rede IP, você deve adicionar a regra UFW necessária antes da regra que você adicionou anteriormente, pois é uma regra mais restritiva.
Por exemplo, para negar acesso a todos os computadores em uma sub-rede IP 192.168.20.0/24, execute o seguinte comando:
A regra UFW deve ser adicionada na posição correta, conforme mostrado na imagem abaixo. Agora, nenhum computador da sub-rede IP 192.168.20.0/24 deve ser capaz de acessar seu servidor Raspberry Pi.
Removendo regras UFW:
Às vezes, pode ser necessário remover algumas regras UFW. É muito fácil fazer isso.
Você pode listar todas as regras UFW disponíveis com o seguinte comando:
$ sudo ufw status numerado
Todas as regras UFW disponíveis devem ser listadas. Digamos que você queira remover a regra UFW número 10 (regra na 10ª posição).
Para remover a regra UFW número 10, execute o seguinte comando:
Para confirmar a operação de remoção, pressione Y e então pressione <Entrar>.
A regra UFW número 10 deve ser removida.
Como você pode ver, a regra UFW foi removida e as regras foram reordenadas (A regra UFW que estava na posição 11 agora está na posição 10).
Conclusão:
Neste artigo, mostrei como instalar o programa de firewall UFW em seu Raspberry Pi (executando o Raspberry Pi OS). Também mostrei como permitir / negar portas usando o programa de firewall UFW. Eu mostrei como negar um endereço IP específico ou uma sub-rede IP de acessar o Raspberry Pi usando o programa de firewall UFW também.