Lanzador Productos Bitnami Documentaciónimaxe CLI Blog Contacto
imaxe firewall cortafuegos v1.0.0

Tu cortafuegos, bajo control

Consulta el estado de ufw, bloquea IPs abusivas a mano y abre o cierra puertos con un solo comando. Los baneos automáticos los pone fail2ban; esto es para tus bloqueos manuales y las reglas de puertos.

$ imaxe firewall block 203.0.113.10 --reason "abuso" --ttl 24h
Versión
v1.0.0
Subcomandos
9
Config
/etc/imaxe/firewall.yml
Requiere root
Base
ufw + fail2ban

Qué hace este módulo #

El cortafuegos es la puerta del servidor: decide qué conexiones entran y cuáles se rechazan. En estas máquinas ese trabajo lo hace ufw (el cortafuegos de Ubuntu), y el módulo firewall te da un mando cómodo para operarlo sin memorizar la sintaxis de ufw.

Con él puedes ver de un vistazo el estado del cortafuegos (activo, política por defecto y reglas), bloquear a mano una IP o un rango que te está dando la lata, liberar ese bloqueo cuando ya no hace falta, y abrir o cerrar puertos manteniendo la configuración en sincronía con lo que ufw aplica.

Bloqueos manuales, no automáticos

Los baneos automáticos por intentos de intrusión (fuerza bruta de SSH, etc.) los gestiona fail2ban por su cuenta. Este módulo trabaja con tus bloqueos manuales: block, unblock y flush solo tocan lo que tú añades a mano y nunca interfieren con los baneos de fail2ban.

Guía rápidatareas paso a paso

Tareas comunes #

Elige lo que quieres hacer. Cada receta trae el comando ya escrito — solo cambia la IP o el puerto por los tuyos, y pulsa Copiar.

1

Ver el estado del cortafuegos

Comprueba si está activo, su política por defecto y cuántas reglas tiene.

Conéctate por SSH a tu servidor y pide el resumen:

terminal
$ sudo imaxe firewall status

¿Lo quieres para un script? Añade --json y tendrás la misma información legible por máquina:

terminal
$ sudo imaxe firewall status --json
Ves si el cortafuegos está activo, la política por defecto, el nº de reglas y cuántos bloqueos manuales tienes puestos.
2

Bloquear una IP abusiva

Corta el acceso a una IP o rango que te está molestando.

Bloquea una IP concreta, dejando anotado el motivo para acordarte luego:

terminal
$ sudo imaxe firewall block 203.0.113.10 --reason "abuso"

¿Solo quieres un bloqueo temporal? Ponle una duración con --ttl y se levantará solo. También puedes bloquear un rango entero en notación 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"
Esa IP o rango deja de poder conectar al servidor. Si pusiste --ttl, el bloqueo caduca solo al cumplirse el plazo.
3

Ver qué IPs he bloqueado

Repasa la lista de bloqueos manuales que tienes activos.

Lista las IPs y rangos que has bloqueado a mano (recuerda: los baneos de fail2ban no salen aquí):

terminal
$ sudo imaxe firewall blocked
Ves cada bloqueo manual con su motivo y, si lo tiene, cuándo caduca. ¿Sobra alguno? Salta a Desbloquear una IP.
4

Desbloquear una IP

Libera un bloqueo manual que ya no hace falta.

Libera la IP o el rango exactos que bloqueaste (tal y como aparecen en blocked):

terminal
$ sudo imaxe firewall unblock 203.0.113.10
Esa dirección vuelve a poder conectar. El resto de bloqueos y los baneos de fail2ban se quedan intactos.
5

Abrir o cerrar un puerto

Deja pasar un servicio nuevo o cierra uno que ya no ofreces.

Abre un puerto (con un comentario para saber para qué es). Puedes limitar quién entra con --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"

Cierra un puerto que ya no usas:

terminal
$ sudo imaxe firewall deny 8080/tcp
La regla queda aplicada en ufw y reflejada en firewall.yml. Compruébalo con imaxe firewall rules list.
Cuidado al cerrar puertos

No cierres el puerto 22 (SSH) si estás conectado por SSH: perderías el acceso al servidor. El módulo mantiene 22/tcp permitido por defecto justo para evitar ese susto. Y recuerda que flush borra todos tus bloqueos manuales de golpe.

Referencia CLIcomandos, flags y ficheros

Sinopsis #

uso
imaxe firewall <subcomando> [<ip>|<puerto>] [flags]

Todos los subcomandos requieren privilegios de root (usa sudo) porque operan sobre ufw y escriben en /etc/imaxe/. Añade --json a status, blocked o rules list para obtener salida legible por máquina, apta para scripting.

Subcomandos #

SubcomandoQué haceFlags relevantes
statusEstado del cortafuegos: activo, política por defecto, nº de reglas y bloqueos manuales.--json
blockedLista las IPs/rangos bloqueados manualmente (no incluye los baneos de fail2ban).--json
blockBloquea una IP o rango manualmente, con motivo y duración opcionales.--reason, --ttl
unblockLibera un bloqueo manual. No toca los baneos de fail2ban.
flushBorra todos los bloqueos manuales (destructivo). No toca los baneos de fail2ban.--yes
rules listLista las reglas de puertos (puertos permitidos, orígenes).--json
allowAbre un puerto y lo refleja en la config.--from, --comment
denyCierra un puerto y lo refleja en la config.--from
reloadRecarga ufw (reaplica sus reglas activas).

rules agrupa la gestión de reglas de puertos; por ahora su único subcomando es rules list.

Argumentos y flags #

Argumento / FlagTipoPor defectoDescripción
<ip>[/cidr] req.stringIP o rango CIDR sobre el que operar en block y unblock (p. ej. 203.0.113.10 o 203.0.113.0/24).
<port>[/proto] req.stringPuerto sobre el que operar en allow y deny (p. ej. 443 o 443/tcp).
--reasonstringEn block: motivo del bloqueo (informativo).
--ttlduraciónpermanenteEn block: duración del bloqueo (p. ej. 24h). Por defecto, permanente.
--fromcidrcualquieraEn allow/deny: restringe el origen a un CIDR concreto.
--commentstringEn allow: comentario descriptivo de la regla.
--yesboolfalseEn flush: confirma sin preguntar (operación destructiva).
--jsonboolfalseEn status/blocked/rules list: emite el resultado como JSON en stdout.

Ficheros y rutas #

RutaContenido
/etc/imaxe/firewall.ymlConfiguración del módulo: puertos permitidos que allow/deny mantienen en sincronía con ufw.

Ejemplo de firewall.yml:

/etc/imaxe/firewall.yml
allow:
  - { port: 22, proto: tcp, comment: "ssh" }
  - { port: 443, proto: tcp, comment: "https" }

Códigos de salida y logs #

Cada ejecución devuelve un código que puedes comprobar con echo $? — útil para encadenar en scripts:

0OKOperación completada correctamente.
1ERRError genérico no clasificado. Revisa el log.
2USAGEArgumentos inválidos o faltantes.
3NOTFOUNDLa IP o regla indicada no existe.

Sigue el estado y las reglas en vivo mientras depuras:

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

Resolución de problemas #

SíntomaCausa probableSolución
Sale NOTFOUND (código 3) al desbloquearLa IP no coincide exactamente con el bloqueo puesto (falta el /cidr, por ejemplo).Ejecuta imaxe firewall blocked y copia la entrada tal cual para el unblock.
Bloqueé una IP pero sigue apareciendo baneada tras unblockEl bloqueo lo puso fail2ban, no tú.Este módulo solo libera bloqueos manuales; los baneos automáticos los gestiona fail2ban por separado.
Abrí un puerto pero no entra tráficoLa regla está en ufw pero un cortafuegos externo (security group) sigue cerrado.Comprueba con imaxe firewall rules list y abre también el puerto en tu proveedor cloud.
Perdí el acceso SSH tras tocar reglasSe cerró o quedó restringido el puerto 22.Accede por la consola del proveedor y vuelve a permitir 22/tcp con imaxe firewall allow 22/tcp.

¿Te atascaste con el módulo Firewall?

Escríbenos con la salida de «imaxe <módulo> status --json» y te respondemos rápido.

Contactar con soporte