Persistencia del número de cadena de IPtables: ¿cómo podría mantener la primera regla en la parte superior?

Persistencia del número de cadena de IPtables: ¿cómo podría mantener la primera regla en la parte superior?

Resumen

Estoy tratando de entender cómo mantener una regla encima de una cadena en IPtables. Me gustaría mantener mi cadena personalizada (como regla) encima de la cadena INPUT, es decir, como la primera regla de la cadena.

Configuración

  • cadena personalizada (que quiero mantener encima de la cadena de ENTRADA)
  • fail2ban que genera (creo que crea y elimina) cadenas basadas en el estado de las prohibiciones

Comportamiento actual:

Al configurar mi cadena personalizada, puedo configurarla como regla número 1. Sin embargo, con el tiempo, con los cambios en fail2ban, la cadena personalizada termina siendo movida hacia abajo en la cadena INPUT.

¡Gracias por su ayuda!Mis disculpas si esto ya ha sido respondido. Lamentablemente no pude encontrarlo en las preguntas sugeridas.

Respuesta1

Fail2ban debido aesteLa línea (por ejemplo en iptables-multiport) agregará la regla en la primera posición de la INPUTcadena, que se interpolaría normalmente en esta línea (por ejemplo, cárcel sshd simple, IPv4, etc.):

# <iptables> -I <chain> -p <protocol> -m multiport --dports <port> -j f2b-<name>
iptables -I INPUT -p tcp -m multiport --dports ssh -j f2b-sshd

Entonces tienes 2 posibilidades para hacer esto:

  1. O crea otra cadena (por ejemplo F2B), la agrega después de su primera cadena en INPUT y especifica su nombre en la configuración de fail2ban en lugar de INPUT. Por ejemplo crear nuevos/etc/fail2ban/action.d/iptables-common.localy sobrescribe el chaintuyo propio para todas las cadenas de fail2ban:
[Init]
chain = F2B

o especifique su nombre en jail.local, por ejemplo en la sección predeterminada o por cárcel:

[DEFAULT]
banaction = %(known/banaction)s[chain=F2B]
banaction_allports = %(known/banaction_allports)s[chain=F2B]
  1. Especifique su propio número de regla (1 es el valor predeterminado) en la cadena. Entonces, en lugar de establecer la cadena en F2B, utilícela chain = INPUT 2en la configuración común local o como aquí en jail.local:
[DEFAULT]
banaction = %(known/banaction)s[chain="INPUT 2"]
banaction_allports = %(known/banaction_allports)s[chain="INPUT 2"]

En este caso, fail2ban interpolará la regla de adición mencionada anteriormente (para sshd jail) de esta manera:

- iptables -I INPUT -p tcp -m multiport --dports ssh -j f2b-sshd
+ iptables -I INPUT 2 -p tcp -m multiport --dports ssh -j f2b-sshd

Solo en ambos casos asegúrese (por ejemplo, usando dependencias de servicio) de que la cadena F2By su propia cadena ya estén agregadas a iptables (fail2ban comenzará después de que se haya realizado el cambio).

información relacionada