Hola, he creado un script para configurar Nagios en mis servidores remotos. Mi script verifica iptables para ver si ya existe una regla de firewall y luego lasupuestopara agregar la regla si aún no está allí.
En este momento, el script simplemente repite la regla, pero en realidad no puede escribirla. Se agradecería mucho cualquier ayuda.
ssh -t -t root@$serverName << EOF
service nrpe restart
chkconfig nrpe on
if [ "cat /etc/sysconfig/iptables | grep -- "5666"" != "-A INPUT -p tcp -m tcp --dport 5666 -j ACCEPT" ] ; then echo "iptables -I INPUT -s 0/0 -p tcp --dport 5666 -j ACCEPT" ; fi
service iptables save
exit
EOF
Respuesta1
compruebe si existen reglas y, si no, agréguelas
iptables -C ENTRADA -s 0/0 -p tcp --dport 5666 -j ACEPTAR || iptables -I ENTRADA -s 0/0 -p tcp --dport 5666 -j ACEPTAR
Respuesta2
solo tienes que cambiar
echo "iptables -I INPUT -s 0/0 -p tcp --dport 5666 -j ACCEPT"
a
iptables -I INPUT -s 0/0 -p tcp --dport 5666 -j ACCEPT
Puedes omitir -s 0/0
:
iptables -I INPUT -p tcp --dport 5666 -j ACCEPT
Y tendría sentido considerar cuál es la mejor posición dentro INPUT
. Si esta regla debería ser la quinta (en lugar de la primera), cambie la llamada a:
iptables -I 5 INPUT -p tcp --dport 5666 -j ACCEPT
Y
"cat /etc/sysconfig/iptables | grep -- "5666""
contiene un error. El comando
cat /etc/sysconfig/iptables | grep -- "5666"
no se ejecuta. Debes agregar sustitución de comando:
"$(cat /etc/sysconfig/iptables | grep -- "5666")"