규칙이 아직 존재하지 않는 경우 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 INPUT -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")"

관련 정보