Crie uma regra iptables se a regra ainda não existir

2

Oi eu criei um script para configurar o Nagios em meus servidores remotos. Meu script verifica o iptables para ver se uma regra de firewall já existe e então é suposto para adicionar a regra se ela ainda não estiver lá.

Neste momento, o script apenas ecoa a regra, mas não é realmente capaz de escrevê-la. Qualquer ajuda seria muito apreciada.

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
    
por bpal 06.05.2014 / 19:12

1 resposta

1

Você só precisa mudar

echo "iptables -I INPUT -s 0/0 -p tcp --dport 5666 -j ACCEPT"

para

iptables -I INPUT -s 0/0 -p tcp --dport 5666 -j ACCEPT

Você pode deixar -s 0/0 out:

iptables -I INPUT -p tcp --dport 5666 -j ACCEPT

E faria sentido considerar qual é a melhor posição dentro de INPUT . Se esta regra for a quinta (em vez da primeira), mude a chamada para:

iptables -I 5 INPUT -p tcp --dport 5666 -j ACCEPT

e

"cat /etc/sysconfig/iptables | grep -- "5666""

contém um erro. O comando

cat /etc/sysconfig/iptables | grep -- "5666"

não é executado. Você deve adicionar a substituição de comando:

"$(cat /etc/sysconfig/iptables | grep -- "5666")"
    
por 07.05.2014 / 08:38