¿Dónde se almacenan los conjuntos de reglas de iptables en Ubuntu 12.04?


8

Ubuntu 12.04 LTS - iptables v1.4.12

TLDR:

¿Dónde se guardan los conjuntos de reglas de iptables al invocar iptables-save <ruleset-name>?

Explicacion :

Según esta respuesta, la forma básica de guardar las reglas de iptables es invocar

iptables-save > /etc/iptables/rules.v4
ip6tables-save > /etc/iptables/rules.v6

y luego cargar / restaurar estas reglas en /etc/network/interfaces:

iface eth0 inet static
        ....
        pre-up iptables-restore < /etc/iptables/rules.v4
        pre-up ip6tables-restore < /etc/iptables/rules.v6

... o ponerlos en un script de shell /etc/network/if-pre-up.d.


Esto se puede simplificar instalando el iptables-persistentpaquete.

sudo apt-get install iptables-persistent
inovoke-rc.d iptables-persistent save
update-rc.d iptables-persistent defaults

Después de algunos tutoriales, intenté invocar service iptables status(un comando inexistente / desconocido para la iptablesversión / paquete que viene preinstalado con 12.04) y encontré este resultado interesante:

Aborting iptables initd: unknown command(s): "status".                                                               
  ...                                                                                  
  save <ruleset>                                                                                                    
     save the current ruleset                                                                                       
  load <ruleset>                                                                                                    
     load a ruleset                                                                                                 
   ...                                                                                                   
Saved rulesets:                                                                                                     
  active, inactive                                                                                 
...     

Parece que hay dos conjuntos de reglas que puedo cargar ( activey inactive) ...

.. pero donde se almacenan estos ?

No puedo encontrar su ubicación como activo / inactivo son términos de búsqueda bastante malos y dpkg-query -L iptablestampoco ayuda.

Como estoy aprovisionando mis servidores con puppet/ chefsería bueno saber si hay algún lugar donde pueda colocar mis conjuntos de reglas y agregar un script de shell simple /etc/networking/if-pre-uppara cargarlos.

Entonces podría omitir el iptables-persistentpaquete que no es tan flexible ya que no permite cargar diferentes conjuntos de reglas.

Gracias por tu ayuda.

Respuestas:


4

iptables almacena las reglas en la memoria, pero el conjunto de reglas creado por iptables-save ruleset-namese puede encontrar en el archivo

/ var / lib / iptables / ruleset-name

Estos pueden restaurarse invocando iptables-restore <ruleset-name>.

Solo puedo confirmar esto para Ubuntu 12.04.03 LTS; tal vez esta ubicación ha cambiado en versiones posteriores del paquete iptables.

Creo que algo así /etc/iptables/rulesets.dhabría sido un lugar más lógico para almacenar estos.

La ruta de guardado se configura en la /etc/init.d/iptableslínea 27 y luego se utiliza mediante la initd_save()cual se invoca initd_counters().

libdir=/var/lib/iptables   

# ...

initd_counters () {                                                                                         
 if test "${enable_save_counters:-false}" = true; then                                                     
    echo -n " with counters"                                                                                
    $iptables_save -c > "$ruleset"                                                                          
  else                                                                                                      
    $iptables_save | sed '/^:/s@\[[0-9]\{1,\}:[0-9]\{1,\}\]@[0:0]@g' > "$ruleset"                           
  fi                                                                                                        
}        

initd_save () {                                                                                             
  rm -f $autosave                                                                                           
  ruleset="${libdir}/$@"                                                                                    
  echo -n "Saving iptables ruleset: save \"$@\""                                                            
  initd_counters                                                                                           
  echo "."                                                                                                  
}          

#cat / etc / os-release NAME = "Ubuntu" VERSION = "12.04.4 LTS, Precise Pangolin" ID = ubuntu ID_LIKE = debian PRETTY_NAME = "Ubuntu preciso (12.04.4 LTS)" VERSION_ID = "12.04" # iptables- guardar conjunto de reglas.1 Argumentos desconocidos encontrados en la línea de comandos Esto no parece funcionar
Rondo

mismo problema aquí
conectado el
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.