(/ etc / sysconfig / iptables) "No se recomienda la personalización manual de este archivo". ¿Por qué?

20

Editando este archivo directamente

/etc/sysconfig/iptables 

puede ahorrarme tantos dolores de cabeza, tanto tiempo, etc.

y, sin embargo, en la parte superior del archivo dice ...

Manual customization of this file is not recommended.

Aquí está el '/ etc / sysconfig / iptables' que acaba de llegar con un nuevo servidor en la nube centos 6.4.

# Firewall configuration written by system-config-firewall
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT

para abrir el puerto 80, simplemente puedo clonar la línea ...

    -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT

y luego cambie "22" a "80" y luego guarde este archivo y luego reinicie todo el sistema.

Esto abrirá el puerto 80 para mí.

Esta es una operación bastante simple. y, sin embargo, el archivo dice que no se recomienda la edición manual.

¿Por qué debería seguir los consejos?

Gilles 'SO- deja de ser malvado'
fuente

Respuestas:

18

Porque la herramienta llamada system-config-firewall(o su hermano basado en ncurses system-config-firewall-tui) gestiona este archivo. Cada vez que use esta herramienta para crear nuevas reglas de iptables, se sobrescribirá /etc/sysconfig/iptables.

Página de manual relacionada: 28.1.16. / etc / sysconfig / iptables-config

Por eso no se recomienda, pero no está prohibido . La mejor manera de guardar sus reglas usando CentOS o cualquier otra versión 6 de EL es usar el servicio iptables después de agregar algunas reglas en la memoria:

# service iptables save

Pregunta relacionada: ¿Por qué iptables no obtiene información de / etc / sysconfig / iptables en centOs?

Razones para no editar este archivo ( /etc/sysconfig/iptables) directamente:

  • Porque es un archivo generado automáticamente. Su contenido proviene del script / daemon /etc/init.d/iptables.
  • Algunas acciones como restablecer o detener el demonio iptables pueden provocar la pérdida de datos, ya que sobrescribirá el archivo. Variables interesantes sobre este tema: IPTABLES_SAVE_ON_STOP=""y IPTABLES_SAVE_ON_RESTART=""dentro del /etc/sysconfig/iptables-configarchivo. Tal vez, sintonizarlos hará que sus cambios sean /etc/init.d/iptablespersistentes.
  • Debido a que la documentación lo dice .Red Hat informa que este es el mejor método para usar su infraestructura de firewall.

Una solución alternativa para esta mentalidad de "sobrescribir las reglas de mi firewall" es deshabilitar totalmente esos scripts y confiar en un método personalizado para administrar el firewall, como el expuesto por los Ricitos de Oro .


fuente
Esto suena más como un argumento en contra de mezclar y combinar editando el archivo directamente y agregando reglas usando la system-config-firewallherramienta. ¿Puedes ampliar por qué es malo editar el archivo en lugar de usar la herramienta?
Michelle
Se agregó información adicional. Gracias por el consejo @Michelle
8

y, sin embargo, en la parte superior del archivo dice ...

Hmmm, eso es extraño. En lo alto de la mía dice:

# Manual customization of this file is strongly encouraged.

Alguien debe haberlo cambiado;) Y, de hecho, incluso lo sacó /etc/sysconfigpara que el administrador de paquetes o cualquier otra cosa no lo "personalizara automáticamente";);)

Creo que el punto aquí en general con tales archivos de configuración es que si no sabes lo que estás haciendo, no lo hagas. A veces también existe la advertencia de que el sistema sobrescribe ocasionalmente el archivo. Esto podría ser por el administrador de paquetes en las actualizaciones, aunque a veces el primer ministro notará que un archivo se ha cambiado manualmente y no lo sobrescribirá, o guardará una copia, etc., y podría ser alguna otra herramienta responsable de esta configuración en particular (ver la respuesta de nwildner ).

Parte de "saber lo que estás haciendo" es ser consciente de ángulos como este. También personalicé el servicio init para iptables para usar una ubicación diferente para el archivo de configuración, y lo más importante: soy el único que usa esta computadora.

Suponiendo que haya otras personas con acceso de root, no haría esto en un servidor del que soy responsable a menos que haya una razón mejor que "Lo prefiero de esta manera", porque probablemente generará confusión y dolor de cabeza a otra persona. en algún momento. Pero si usted es el único usuario y nadie más depende del sistema, entonces es libre de hacer lo que quiera. Mi "método preferido" para configurar el firewall se ve así:

#!/bin/bash

if [[ ! -n "$IPTSET_FILE" ]]; then
        IPTSET_FILE=/etc/iptables.current
fi

if [[ ! -e $IPTSET_FILE ]]; then
        echo "$IPTSET_FILE does not exist!"
        exit 1
fi

vim $IPTSET_FILE
iptables-restore < $IPTSET_FILE

/etc/iptables.currentse crea al arrancar copiando /etc/iptables(que el servicio iptables está configurado para cargar inicialmente). De esta manera puedo modificar cosas sobre la marcha mientras mantengo un punto de referencia desde el cual el sistema comienza.

Lo que nos lleva a un punto importante, si quieres perder el tiempo con configuraciones que contienen este tipo de advertencia: siempre crea primero una copia de seguridad del original.

encerrada dorada
fuente