Voilà j'ai des scripts de cette forme
#!/bin/bash
if [ "$1" != "" ] ; then
CONF_FILE=$1 else exit 1 fi
IPTABLES=`sed -n -e '/^IPTABLES/p' ${CONF_FILE} | sed -e 's/\(.*\)\=\(.*\)/\2/'`
LOGGER=`sed -n -e '/^LOGGER/p' ${CONF_FILE} | sed -e 's/\(.*\)\=\(.*\)/\2/'`
NAME=$(echo ${0##*/}|tr a-z A-Z)
echo "$NAME" | {
IFS='_' read NAME SVR
INET=`sed -n -e "/^""$NAME""_INET/p" ${CONF_FILE} | sed -e 's/\(.*\)\=\(.*\)/\2/'`
if [ "$INET" != "" ] ; then
for conf in ${INET} ; do
echo "$conf" | {
IFS='|' read net options
echo "$net" | {
IFS=':' read if srchost
if [ "$if" == "lo" ] ; then
CHAIN_OUT="lo_inet_out"
CHAIN_IN="lo_inet_in"
ifo=""
ifi=""
${LOGGER} "Mise en place de l'accès $NAME pour le serveur"
else
${LOGGER} "Mise en place de l'accès $NAME pour $net"
CHAIN_IN="inet_in"
CHAIN_OUT="inet_out"
if [ "$srchost" != "" ] ; then
ifo="-o $if -d $srchost"
ifi="-i $if -s $srchost"
else
ifo="-o $if"
ifi="-i $if"
fi
fi
if [ "$options" == "http" ] || [ "$options" == "all" ] || [ "$options" == "" ] ; then
${IPTABLES} -t filter -A ${CHAIN_OUT} ${ifi} -p tcp --dport http -j TCPACCEPT ${IPTABLES} -t filter -A ${CHAIN_IN} ${ifo} -p tcp --sport http -m state --state RELATED,ESTABLISHED -j TCPACCEPT
${IPTABLES} -t filter -A ${CHAIN_IN} ${ifo} -p tcp --sport 1024:65535 -m state --state RELATED,ESTABLISHED -j TCPACCEPT
fi
if [ "$options" == "https" ] || [ "$options" == "all" ] || [ "$options" == "" ] ; then ${IPTABLES} -t filter -A ${CHAIN_OUT} ${ifi} -p tcp --dport https -j TCPACCEPT
${IPTABLES} -t filter -A ${CHAIN_IN} ${ifo} -p tcp --sport https -m state --state RELATED,ESTABLISHED -j TCPACCEPT
fi
}
}
done
fi
} |
et j'aimerais pouvoir le découper, car j'ai plusieurs scripts qui sont tous identiques à celui-ci, sauf les règles #{IPTABLES} ...
Est-ce possible avec un #!/usr/local/bin/runscript.bash en début et runscript.bash qui éxecute le script?
---------------
Gitan des temps modernes