iptables 구성 파일을 편집하는 것과 iptables 명령을 통해 규칙을 추가하는 것의 장단점은 무엇입니까?

iptables 구성 파일을 편집하는 것과 iptables 명령을 통해 규칙을 추가하는 것의 장단점은 무엇입니까?

저는 때때로 iptables 구성에서 규칙을 자동으로 추가하고 제거해야 하는 CentOS 제품을 사용하고 있습니다. 예를 들어 업데이트 중에 업데이트가 완료될 때까지 인바운드 서비스 트래픽을 명시적으로 거부하려고 합니다. 현재 업데이트 코드에 사용되는 접근 방식은 sed기타 텍스트 처리 유틸리티를 사용하여 구성 파일의 관련 줄을 주석 처리하고 iptables새 구성 파일로 서비스를 다시 시작한 다음 업데이트가 끝나면 프로세스를 되돌리는 것입니다. , 서비스를 다시 한 번 다시 시작하십시오.

iptables -D table rule-specification더 나은 접근 방식은 프로세스 시작 시 명령을 사용한 다음 iptables -A table rule-specification업데이트가 끝날 때 사용하는 것 같습니다 .

구성 파일을 자동으로 조작할 때 내가 본 가장 큰 문제는 취약성입니다. 구성 파일을 다시 작성하고 매개변수 등의 순서를 변경하여 텍스트 구문 분석을 깨뜨릴 수 있는 시스템 도구가 있습니다( service iptables save예).

코드 내에서 이와 같이 시스템 구성을 변경하는 데 권장되는 접근 방식은 무엇이며 그 이유는 무엇입니까?

답변1

이런 상황에 처한 대부분의 사람들은 추상화를 통해 이를 처리합니다.

예를 들어. 규칙 세트가 포함된 단일 파일을 갖는 대신 규칙이 포함된 파일 세트를 만들고 함께 연결하는 것이 좋습니다.

예를 들어 다음과 같은 이름의 파일에 개별 규칙을 추가할 수 있습니다.

/etc/iptables-rules/00_flush_drop
/etc/iptables-rules/20_permitotherstuff
/etc/iptables-rules/10_permitssh
/etc/iptables-rules/99_drop

그런 다음 으로 규칙 세트를 실행하십시오 run-parts /etc/iptables-rules. 다른 규칙 세트를 추가해야 하는 경우 임시로 추가 파일을 삽입하면 됩니다. 그런 다음 필요에 따라 제거합니다.

또한 구성에서 체인을 설정하고 사용하는 방법을 강력히 검토해야 합니다. 체인은 일종의 서브루틴과 같습니다. 예를 들어 방화벽 맨 위에 규칙을 추가하여 체인으로 이동할 수 있습니다. 체인의 기본 정책은 RETURN입니다. 따라서 임시 규칙을 추가해야 할 경우 해당 체인에 삽입하기만 하면 됩니다. 더 이상 필요하면 특정 체인을 플러시하면 됩니다.

관련 정보