Lançador Produtos Bitnami Documentaçãoimaxe CLI Blog Contacto
imaxe firewall firewall v1.0.0

A tua firewall, sob controlo

Consulta o estado do ufw, bloqueia IPs abusivos à mão e abre ou fecha portas com um único comando. Os bans automáticos são geridos pelo fail2ban; isto é para os teus bloqueios manuais e regras de portas.

$ imaxe firewall block 203.0.113.10 --reason "abuso" --ttl 24h
Versão
v1.0.0
Subcomandos
9
Config
/etc/imaxe/firewall.yml
Requer root
sim
Base
ufw + fail2ban

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.

Bloqueios manuais, não automáticos

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.

Guia rápidotarefas passo a passo

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:

terminal
$ sudo imaxe firewall status

Precisas dele para um script? Adiciona --json e obténs a mesma informação num formato legível por máquina:

terminal
$ sudo imaxe firewall status --json
Vês se a firewall está ativa, a política por omissão, o número de regras e quantos bloqueios manuais tens em vigor.
2

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:

terminal
$ 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:

terminal
$ sudo imaxe firewall block 203.0.113.10 --reason "abuso" --ttl 24h
$ sudo imaxe firewall block 203.0.113.0/24 --reason "escaneo"
Esse IP ou intervalo já não se pode ligar ao servidor. Se definiste --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):

terminal
$ sudo imaxe firewall blocked
Vês cada bloqueio manual com o seu motivo e, se tiver, quando expira. Algum de que já não precisas? Salta para Desbloquear um IP.
4

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):

terminal
$ sudo imaxe firewall unblock 203.0.113.10
Esse endereço pode voltar a ligar-se. O resto dos teus bloqueios e os bans do fail2ban permanecem intactos.
5

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:

terminal
$ 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:

terminal
$ sudo imaxe firewall deny 8080/tcp
A regra é aplicada no ufw e refletida em firewall.yml. Verifica-a com imaxe firewall rules list.
Cuidado ao fechar portas

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.

Referência CLIcomandos, flags e ficheiros

Sinopse #

uso
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 #

SubcomandoO que fazFlags relevantes
statusEstado da firewall: se está ativa, política por omissão, número de regras e bloqueios manuais.--json
blockedLista os IPs/intervalos bloqueados manualmente (não inclui os bans do fail2ban).--json
blockBloqueia manualmente um IP ou intervalo, com um motivo e duração opcionais.--reason, --ttl
unblockLiberta um bloqueio manual. Não toca nos bans do fail2ban.
flushApaga todos os bloqueios manuais (destrutivo). Não toca nos bans do fail2ban.--yes
rules listLista as regras de portas (portas permitidas, origens).--json
allowAbre uma porta e reflete-a na configuração.--from, --comment
denyFecha uma porta e reflete-a na configuração.--from
reloadRecarrega 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 / FlagTipoPor omissãoDescrição
<ip>[/cidr] obr.stringIP 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.stringPorta sobre a qual operar em allow e deny (por exemplo 443 ou 443/tcp).
--reasonstringEm block: motivo do bloqueio (informativo).
--ttldurationpermanentEm block: duração do bloqueio (por exemplo 24h). Permanente por omissão.
--fromcidranyEm allow/deny: restringe a origem a um CIDR específico.
--commentstringEm allow: comentário descritivo para a regra.
--yesboolfalseEm flush: confirma sem perguntar (operação destrutiva).
--jsonboolfalseEm status/blocked/rules list: emite o resultado como JSON em stdout.

Ficheiros e caminhos #

CaminhoConteúdo
/etc/imaxe/firewall.ymlConfiguração do módulo: portas permitidas que allow/deny mantêm em sincronia com o ufw.

Exemplo de firewall.yml:

/etc/imaxe/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:

0OKOperação concluída com sucesso.
1ERRErro genérico não classificado. Revê o log.
2USAGEArgumentos inválidos ou em falta.
3NOTFOUNDO IP ou regra indicada não existe.

Segue o estado e as regras em direto enquanto depuras:

terminal
$ sudo imaxe firewall status
$ sudo imaxe firewall rules list

Resolução de problemas #

SintomaCausa provávelSolução
Sai NOTFOUND (código 3) ao desbloquearO 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 unblockO 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áfegoA 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 regrasA 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.

Contactar o suporte