Pesquisa de site

Como instalar e configurar o UFW – Um FireWall descomplicado no Debian/Ubuntu


Como os computadores estão conectados entre si, os serviços estão crescendo rapidamente. E-mail, Mídias Sociais, Loja Online, Chat até Webconferência são serviços que usado pelo usuário. Mas, por outro lado, esta conectividade é como uma faca de dois lados. Também é possível enviar mensagens maliciosas para esses computadores, como vírus, malware, trojan-apps são um deles.

A Internet, como a maior rede de computadores, nem sempre está repleta de gente boa. Para garantir que nossos computadores/servidores estejam seguros, precisamos protegê-los.

Um dos componentes obrigatórios em seu computador/servidores é o Firewall. Da Wikipedia, uma definição é:

Na computação, um firewall é um sistema de segurança de rede baseado em software ou hardware que controla o tráfego de entrada e saída da rede, analisando os pacotes de dados e determinando se eles devem ser permitidos ou não, com base no conjunto de regras aplicadas.

Iptables é um dos firewalls amplamente utilizados pelos servidores. É um programa usado para gerenciar o tráfego de entrada e saída do servidor com base em um conjunto de regras. Geralmente, apenas conexões confiáveis podem entrar no servidor. Mas IPTables está rodando no modo console e é complicado. Aqueles que estão familiarizados com as regras e comandos do iptables podem ler o seguinte artigo que descreve como usar o firewall do iptables.

  1. Guia básico de IPTables (Firewall Linux)

Instalação do Firewall UFW no Debian/Ubuntu

Para reduzir a complexidade de como configurar IPTables, há muitas frentes. Se você estiver executando o Ubuntu Linux, encontrará o ufw como uma ferramenta de firewall padrão. Vamos começar a explorar o firewall ufw.

O que é ufw

O ufw (Firewall Descomplicado) é um frontend para o firewall iptables mais amplamente usado e é bastante confortável para firewalls baseados em host. ufw fornece uma estrutura para gerenciar o netfilter, bem como fornece uma interface de linha de comando para controlar o firewall. Ele fornece uma interface amigável e fácil de usar para iniciantes em Linux que não estão muito familiarizados com os conceitos de firewall.

Enquanto, por outro lado, os mesmos comandos complicados ajudam os administradores a definir regras complicadas usando a interface de linha de comando. O ufw é um upstream para outras distribuições como Debian, Ubuntu e Linux Mint.

Uso básico ufw

Primeiro, verifique se o ufw está instalado usando o seguinte comando.

sudo dpkg --get-selections | grep ufw

ufw 		install

Se não estiver instalado, você pode instalá-lo usando o comando apt conforme mostrado abaixo.

sudo apt-get install ufw

Antes de usar, você deve verificar se o ufw está rodando ou não. Use o seguinte comando para verificar isso.

sudo ufw status

Se você encontrou Status: inativo, significa que não está ativo ou desativado.

NOVO! Um e-book indispensável para todo administrador Linux!

Baixe gratuitamente o e-book de 696 páginas

Ativando/desativando ufw

Para habilitá-lo, basta digitar o seguinte comando no terminal.

sudo ufw enable

Firewall is active and enabled on system startup

Para desativá-lo, basta digitar.

sudo ufw disable

Liste as regras atuais do ufw

Depois que o firewall for ativado, você poderá adicionar suas regras a ele. Se quiser ver quais são as regras padrão, você pode digitar.

sudo ufw status verbose
Saída de amostra
Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing)
New profiles: skip
$

Como adicionar regras ufw

Como você pode ver, por padrão, todas as conexões de entrada são negadas. Se você deseja conectar sua máquina remotamente, você deve permitir a porta adequada. Por exemplo, você deseja permitir a conexão ssh. Aqui está o comando para permitir isso.

Permitir acesso
sudo ufw allow ssh

[sudo] password for pungki :
Rule added
Rule added (v6)
$

Se você verificar o status novamente, verá uma saída como esta.

sudo ufw status

To 		Action 			From
-- 		----------- 		------
22 		ALLOW 			Anywhere
22 		ALLOW 			Anywhere (v6)

Se você tem muitas regras e deseja colocar números em todas as regras imediatamente, use o parâmetro numerado.

sudo ufw status numbered

To 		Action 			From
------ 		----------- 		------
[1] 22 		ALLOW 			Anywhere
[2] 22 		ALLOW 			Anywhere (v6)

A primeira regra diz que a conexão de entrada para a porta 22 de qualquer lugar, tanto pacotes tcp quanto udp, é permitida. E se você quiser permitir apenas pacotes tcp? Então você pode adicionar o parâmetro tcp após o número da porta. Aqui está um exemplo com saída de amostra.

sudo ufw allow ssh/tcp

To 		Action 			From
------ 		----------- 		------
22/tcp 		ALLOW 			Anywhere
22/tcp 		ALLOW 			Anywhere (v6)
Negar acesso

Os mesmos truques são aplicados à regra Deny. Digamos que você queira negar a regra FTP. Então você só precisa digitar.

sudo ufw deny ftp

To 		Action 			From
------ 		----------- 		------
21/tcp 		DENY 			Anywhere
21/tcp 		DENY 			Anywhere (v6)

Adicionando porta específica

Às vezes temos uma porta personalizada que não segue nenhum padrão. Digamos que mudamos a porta ssh em nossa máquina de 22 para 2290. Então, para permitir a porta 2290, podemos adicioná-la assim.

sudo ufw allow

To 		Action 			From
-- 		----------- 		------
2290 		ALLOW 			Anywhere
2290 		ALLOW 			Anywhere (v6)

Também é possível adicionar port-range à regra. Se quisermos abrir a porta de 22902300 com protocolo tcp, então o comando será assim.

sudo ufw allow 2290:2300/tcp

To 			Action 			From
------ 			----------- 		------
2290:2300/tcp 		ALLOW 			Anywhere
2290:2300/tcp 		ALLOW			Anywhere (v6)

mas se você quiser usar udp, basta usar o seguinte comando.

sudo ufw allow 2290:2300/udp

To 			Action 			From
------ 			----------- 		------
2290:2300/udp 		ALLOW 			Anywhere
2290:2300/udp 		ALLOW			Anywhere (v6)

Lembre-se de que você deve colocar ‘tcp’ ou ‘udp’ explicitamente, caso contrário você receberá uma mensagem de erro semelhante à abaixo.

ERROR: Must specify ‘tcp’ or ‘udp’ with multiple ports

Adicionando IP específico

Anteriormente adicionamos regras baseadas em serviço ou porta. O Ufw também permite adicionar regras com base no Endereço IP. Aqui está o comando de exemplo.

sudo ufw allow from 192.168.0.104

Você também pode usar uma máscara de sub-rede para ampliar o alcance.

sudo ufw allow form 192.168.0.0/24

To 		Action 			From
-- 		----------- 		------
Anywhere	ALLOW 			192.168.0.104
Anywhere	ALLOW 			192.168.0.0/24

Como você pode ver, o parâmetro from limitará apenas a fonte de conexão. Enquanto o destino – representado pela coluna Para – é Qualquer lugar. Você também pode gerenciar o destino usando o parâmetro ‘Para’. Vejamos o exemplo para permitir acesso àporta 22 (ssh).

sudo ufw allow to any port 22

O comando acima permitirá o acesso de qualquer lugar e de qualquer protocolo à porta 22.

Combinando parâmetros

Para regras mais específicas, você também pode combinar Endereço IP, protocolo e porta. Digamos que queremos criar uma regra que limite a conexão apenas do IP 192.168.0.104, apenas do protocolo tcp e da porta 22. Então o comando será como abaixo.

sudo ufw allow from 192.168.0.104 proto tcp to any port 22

A sintaxe para criar uma regra de negação é semelhante à regra de permissão. Você só precisa alterar o parâmetro de allow para deny.

Excluindo regras

Às vezes você pode precisar excluir sua regra existente. Mais uma vez com o ufw é fácil excluir regras. No exemplo acima, você tem uma regra abaixo e deseja excluí-la.

To 		Action 			From
-- 		----------- 		------
22/tcp		ALLOW 			192.168.0.104
21/tcp		ALLOW 			Anywhere
21/tcp 		ALLOW 			Anywhere (v6)

Existem dois métodos para excluir regras.

Método 1

O comando abaixo irá excluir as regras que correspondem ao serviço ftp. Portanto, a porta 21/tcp que significa ftp será excluída.

sudo ufw delete allow ftp
Método 2

Mas quando você tentou excluir a primeira regra no exemplo acima usando o comando abaixo.

sudo ufw delete allow ssh

Or 

sudo ufw delete allow 22/tcp

Você pode encontrar uma mensagem de erro como.

Could not delete non-existent rule
Could not delete non-existent rule (v6)

Então você pode fazer esse truque. Como mencionamos acima, você pode mostrar o número da regra para indicar qual regra queremos excluir. Deixe-nos mostrar para você.

sudo ufw status numbered

To 		Action 			From
-- 		----------- 		------
[1] 22/tcp		ALLOW 			192.168.0.104
[2] 21/tcp		ALLOW 			Anywhere
[3] 21/tcp 		ALLOW 			Anywhere (v6)

Então você pode excluir a primeira regra usando. Pressione “y” para excluir permanentemente a regra.

sudo ufw delete 1

Deleting :
Allow from 192.168.0.104 to any port 22 proto tcp
Proceed with operation (y|n)? y

A partir desses métodos você verá a diferença. O Método 2 solicitará a confirmação do usuário antes de excluir a regra, enquanto o método 1 não solicitará.

Como redefinir regras

Em algumas situações, você pode querer excluir/redefinir todas as regras. Você pode fazer isso digitando.

sudo ufw reset

Resetting all rules to installed defaults. Proceed with operation (y|n)? y

Se você pressionar “y”, ufw fará backup de todas as regras existentes antes de redefinir seu ufw. A redefinição das regras também desativará seu firewall. Você precisa habilitá-lo novamente se quiser usá-lo.

Funcionalidade Avançada

Como afirmei acima, o firewall ufw pode fazer tudo o que o iptables pode fazer. Isso é feito usando vários conjuntos de arquivos de regras, que nada mais são do que arquivos de texto apropriados para iptables-restore. O ajuste fino do ufw e/ou a colocação de comandos iptables adicionais não permitidos através do comando ufw é uma questão de editar vários arquivos de texto.

  1. /etc/default/ufw: A configuração principal para políticas padrão, suporte IPv6 e módulos do kernel.
  2. /etc/ufw/before[6].rules: as regras nesses arquivos são calculadas antes de quaisquer regras adicionadas por meio do comando ufw.
  3. /etc/ufw/after[6].rules: as regras nesses arquivos são calculadas após quaisquer regras adicionadas por meio do comando ufw.
  4. /etc/ufw/sysctl.conf: ajustes de rede do kernel.
  5. /etc/ufw/ufw.conf: define se o ufw está ou não habilitado na inicialização e define o LOGLEVEL.

Conclusão

UFW como front-end para iptables certamente cria uma interface fácil para o usuário. O usuário não precisa se lembrar da sintaxe complicada do iptables. UFW também usa ‘inglês simples’ como parâmetro.

Permitir, negar, redefinir são um deles. Eu acredito que existem muito mais front-end do iptables por aí. Mas definitivamente o ufw é uma das melhores alternativas para usuários que desejam configurar seu firewall de forma rápida, fácil e, claro, segura. Visite a página de manual do ufw digitando man ufw para obter mais detalhes.