.png)
Tengo un /etc/init.d/iptables start|stop|restart
script en diferentes servidores de Ubuntu (que es un script de shell normal)
Para cada nuevo servicio tengo que editar e insertar una línea para abrir un puerto. Esto lleva a muchas versiones diferentes del script init.d en diferentes máquinas.
¿Es posible incluir automáticamente, digamos, todos los archivos /etc/iptables/include.d/
?
El objetivo es que sólo debería haber una línea en elcomenzarfunción de /etc/init.d/iptables como
include /etc/iptables/include.d/*
Y después de un archivo adicional en /etc/iptables/include.d/
simplemente diría
/etc/init.d/iptables restart
Editar:Como señaló Saurabh, esto puede generar problemas cuando los comandos necesitan un orden determinado. Una configuración avanzada podría tener diferentes directorios como:
/etc/iptables/include01.d/
/etc/iptables/include02.d/
/etc/iptables/include03.d/
e incluyéndolos así:
incluir /etc/iptables/include01.d/* ... tal vez algún código vaya aquí en el archivo principal... incluir /etc/iptables/include02.d/* incluir /etc/iptables/include03.d/*
Respuesta1
Agregue la siguiente línea a su script init.d.
run-parts --report /etc/iptables/include.d
Ejecutará todo lo que esté en el directorio como un script de shell (debe ser ejecutable).
Si solo deseas ejecutar archivos que terminen en .port, puedes usar algo como:
run-parts --regex '\.port$' /etc/iptables/include.d/
Si desea asegurarse de que el orden sea correcto, puede nombrar los archivos:
10_web.port
20_ssh.port
etc..
Respuesta2
for f in /etc/iptables/include.d/*
. $f
done
note el espacio entre el punto y %f
Saurabh tiene razón: esto no funcionará necesariamente como lo desea, pero use alguna convención de nomenclatura, por ejemplo, 10-xxx, 20-yyy, etc., y podría ser manejable.
Respuesta3
Puedes definir una función simple en bash:
function include() {
for FILE in $( find "$1" -type f -print | sort )
do
source $FILE
done
}
y luego:
include some_dir/*
o incluso:
include some_dir/*.conf
Respuesta4
No creo que puedas incluir archivos en la configuración de iptables. La elección tiene sentido ya que las reglas del firewall dependen en gran medida del orden en que están escritas. Si sólo incluimos archivos en la carpeta, iptables no sabrá qué reglas poner primero y cuáles después.