O que faz este módulo #
A firewall é a porta de entrada do servidor: decide que ligações entram e quais são rejeitadas. Nestas máquinas essa tarefa é feita pelo ufw (a firewall do Ubuntu), e o módulo firewall dá-te um controlo cómodo para o operar sem memorizar a sintaxe do ufw.
Com ele podes ver o estado da firewall num relance (se está ativa, política por omissão e regras), bloquear manualmente um IP ou intervalo que te esteja a dar problemas, libertar esse bloqueio quando já não for necessário e abrir ou fechar portas mantendo a configuração em sincronia com o que o ufw aplica.
Os bans automáticos para tentativas de intrusão (força bruta por SSH, etc.) são geridos pelo fail2ban por conta própria. Este módulo trabalha com os teus bloqueios manuais: block, unblock e flush só tocam no que adicionas à mão e nunca interferem com os bans do fail2ban.
Tarefas comuns #
Escolhe o que queres fazer. Cada receita traz o comando já escrito — basta trocar o IP ou a porta pelos teus e clicar em Copiar.
1
Ver o estado da firewall
Verifica se está ativa, a sua política por omissão e quantas regras tem.
Liga-te por SSH ao teu servidor e pede o resumo:
$ sudo imaxe firewall statusPrecisas dele para um script? Adiciona --json e obténs a mesma informação num formato legível por máquina:
$ sudo imaxe firewall status --json2
Bloquear um IP abusivo
Corta o acesso a um IP ou intervalo que te esteja a incomodar.
Bloqueia um IP específico, anotando o motivo para o recordares mais tarde:
$ sudo imaxe firewall block 203.0.113.10 --reason "abuso"Só queres um bloqueio temporário? Dá-lhe uma duração com --ttl e ele levantar-se-á sozinho. Também podes bloquear um intervalo inteiro em notação CIDR:
$ sudo imaxe firewall block 203.0.113.10 --reason "abuso" --ttl 24h
$ sudo imaxe firewall block 203.0.113.0/24 --reason "escaneo"--ttl, o bloqueio expira sozinho quando o tempo terminar.3
Ver que IPs bloqueei
Revê a lista de bloqueios manuais que tens ativos.
Lista os IPs e intervalos que bloqueaste à mão (lembra: os bans do fail2ban não aparecem aqui):
$ sudo imaxe firewall blocked4
Desbloquear um IP
Liberta um bloqueio manual que já não é necessário.
Liberta o IP ou intervalo exato que bloqueaste (tal como aparece em blocked):
$ sudo imaxe firewall unblock 203.0.113.105
Abrir ou fechar uma porta
Deixa passar um novo serviço ou fecha um que já não ofereces.
Abre uma porta (com um comentário para saberes para que serve). Podes restringir quem entra com --from:
$ sudo imaxe firewall allow 443/tcp --comment "https"
$ sudo imaxe firewall allow 5432/tcp --from 203.0.113.0/24 --comment "postgres interno"Fecha uma porta que já não usas:
$ sudo imaxe firewall deny 8080/tcpfirewall.yml. Verifica-a com imaxe firewall rules list.Não feches a porta 22 (SSH) se estiveres ligado por SSH: perderias o acesso ao servidor. O módulo mantém 22/tcp permitida por omissão precisamente para evitar esse susto. E lembra que flush apaga todos os teus bloqueios manuais de uma só vez.
Sinopse #
imaxe firewall <subcomando> [<ip>|<puerto>] [flags]Todos os subcomandos requerem privilégios de root (usa sudo) porque operam sobre o ufw e escrevem em /etc/imaxe/. Adiciona --json a status, blocked ou rules list para obter saída legível por máquina, apta para scripting.
Subcomandos #
| Subcomando | O que faz | Flags relevantes |
|---|---|---|
| status | Estado da firewall: se está ativa, política por omissão, número de regras e bloqueios manuais. | --json |
| blocked | Lista os IPs/intervalos bloqueados manualmente (não inclui os bans do fail2ban). | --json |
| block | Bloqueia manualmente um IP ou intervalo, com um motivo e duração opcionais. | --reason, --ttl |
| unblock | Liberta um bloqueio manual. Não toca nos bans do fail2ban. | — |
| flush | Apaga todos os bloqueios manuais (destrutivo). Não toca nos bans do fail2ban. | --yes |
| rules list | Lista as regras de portas (portas permitidas, origens). | --json |
| allow | Abre uma porta e reflete-a na configuração. | --from, --comment |
| deny | Fecha uma porta e reflete-a na configuração. | --from |
| reload | Recarrega o ufw (reaplica as suas regras ativas). | — |
rules agrupa a gestão das regras de portas; por agora o seu único subcomando é rules list.
Argumentos e flags #
| Argumento / Flag | Tipo | Por omissão | Descrição |
|---|---|---|---|
| <ip>[/cidr] obr. | string | — | IP ou intervalo CIDR sobre o qual operar em block e unblock (por exemplo 203.0.113.10 ou 203.0.113.0/24). |
| <port>[/proto] obr. | string | — | Porta sobre a qual operar em allow e deny (por exemplo 443 ou 443/tcp). |
| --reason | string | — | Em block: motivo do bloqueio (informativo). |
| --ttl | duration | permanent | Em block: duração do bloqueio (por exemplo 24h). Permanente por omissão. |
| --from | cidr | any | Em allow/deny: restringe a origem a um CIDR específico. |
| --comment | string | — | Em allow: comentário descritivo para a regra. |
| --yes | bool | false | Em flush: confirma sem perguntar (operação destrutiva). |
| --json | bool | false | Em status/blocked/rules list: emite o resultado como JSON em stdout. |
Ficheiros e caminhos #
| Caminho | Conteúdo |
|---|---|
| /etc/imaxe/firewall.yml | Configuração do módulo: portas permitidas que allow/deny mantêm em sincronia com o ufw. |
Exemplo de firewall.yml:
allow:
- { port: 22, proto: tcp, comment: "ssh" }
- { port: 443, proto: tcp, comment: "https" }Códigos de saída e logs #
Cada execução devolve um código que podes verificar com echo $? — útil para encadear em scripts:
Segue o estado e as regras em direto enquanto depuras:
$ sudo imaxe firewall status
$ sudo imaxe firewall rules listResolução de problemas #
| Sintoma | Causa provável | Solução |
|---|---|---|
| Sai NOTFOUND (código 3) ao desbloquear | O IP não coincide exatamente com o bloqueio que definiste (falta o /cidr, por exemplo). | Executa imaxe firewall blocked e copia a entrada tal e qual para o unblock. |
Bloqueei um IP mas continua banido após unblock | O bloqueio foi definido pelo fail2ban, não por ti. | Este módulo só liberta bloqueios manuais; os bans automáticos são geridos pelo fail2ban à parte. |
| Abri uma porta mas não entra tráfego | A regra está no ufw mas uma firewall externa (security group) continua fechada. | Verifica com imaxe firewall rules list e abre também a porta no teu fornecedor de cloud. |
| Perdi o acesso SSH após alterar regras | A porta 22 foi fechada ou restringida. | Acede pela consola do fornecedor e volta a permitir 22/tcp com imaxe firewall allow 22/tcp. |
Ficou bloqueado com o módulo Firewall?
Escreva-nos com a saída de «imaxe <module> status --json» e respondemos rapidamente.