특정 iptables 체인만 저장하는 방법은 무엇입니까?

특정 iptables 체인만 저장하는 방법은 무엇입니까?

Docker 컨테이너를 실행하는 Linux 시스템에서 iptables를 구성해야 합니다. save iptables 규칙을 사용하면 iptables-save > /etc/iptables/rules.v4모든 체인의 규칙이 파일에 기록됩니다.

하지만 INPUT, OUTPUT 및 DOCKER-USER 체인만 저장하고 싶고 DOCKER, DOCKER-ISOLATION-STAGE-1 등의 체인은 저장하고 싶지 않습니다. 왜냐하면 여기에는 docker에 의해 자동으로 추가된 규칙이 포함되어 있기 때문입니다. 후속 재시작과 관련이 있어야 합니다.

내가 아는 한, iptables-save특정 테이블은 저장할 수 있지만 특정 체인은 저장할 수 없습니다.

현재 불필요한 체인에서 규칙을 제거하기 iptables-save위해 조합을 사용하려고 생각 중입니다 . grep동일한 결과를 얻는 더 좋은 방법이 있습니까?

답변1

iptables옵션 -S( ) 과 함께 기본 명령을 사용하면 --list-rules주어진 체인 및 테이블에 대해 유사한 출력을 얻을 수 있습니다. 예를 들면 다음과 같습니다.

$ sudo iptables -t filter -S OUTPUT
-P OUTPUT DROP
-A OUTPUT -o lo -j ACCEPT
...

그러나 각 테이블과 체인에 대해 이 작업을 반복해야 하며, 호환성을 원할 경우 iptables-restore각 테이블에 헤더를 추가 *filter하고 기본 정책을 -P로 변경 :하고 각 테이블에 을 추가하는 등 출력을 일부 수정할 수 있습니다 COMMIT.

관련 정보