Создайте правило iptables, если правило еще не существует.

Создайте правило iptables, если правило еще не существует.

Привет, я создал скрипт для настройки Nagios на моих удаленных серверах. Мой скрипт проверяет iptables, чтобы увидеть, существует ли уже правило брандмауэра, а затемпредполагаемыйдобавить правило, если его еще нет.

Сейчас скрипт просто повторяет правило, но на самом деле он не может его написать. Любая помощь будет высоко оценена.

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

решение1

проверьте, существуют ли правила, и если нет - добавьте их

iptables -C ВХОД -s 0/0 -p tcp --dport 5666 -j ПРИНЯТЬ || iptables -I ВХОД -s 0/0 -p tcp --dport 5666 -j ПРИНЯТЬ

решение2

Тебе просто нужно измениться.

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

к

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

Вы можете пропустить -s 0/0:

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

И имело бы смысл рассмотреть, какая позиция является лучшей в пределах INPUT. Если это правило должно быть пятым (вместо первого), то измените вызов на:

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

И

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

содержит ошибку. Команда

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

не выполняется. Необходимо добавить подстановку команды:

"$(cat /etc/sysconfig/iptables | grep -- "5666")"

Связанный контент