동일한 영역에 있는 두 Firewalld 인터페이스 간의 트래픽 전달

동일한 영역에 있는 두 Firewalld 인터페이스 간의 트래픽 전달

내 CentOS 7.3.1611 시스템에는 세 가지 영역에 위치한 네 가지 인터페이스가 있습니다.

# firewall-cmd --get-active-zones
dmz
  interfaces: ens192
internal
  interfaces: ens256 ens161
external
  interfaces: ens224

나는 두 가지 시스템을 원한다내부영역은 서로 대화할 수 있습니다.

양방향 직접 규칙을 추가해 보았습니다.

# firewall-cmd --direct --add-rule ipv4 filter FORWARD 0 -o ens256 -i ens161 -j ACCEPT
# firewall-cmd --direct --add-rule ipv4 filter FORWARD 0 -i ens256 -o ens161 -j ACCEPT

...이것이 내부 네트워크 중 하나가 dmz 네트워크와 통신하도록 허용하는 방법이기 때문입니다. 그러나 A) 이는 영역 내 사례에서는 작동하지 않는 것 같습니다. B) 명령이 해당 --permanent플래그를 허용하지 않기 때문입니다. 이와 같은 명령이 재부팅 후에도 살아남을지 의심됩니다.

두 내부 인터페이스 모두 외부(인터넷) 영역과 올바르게 통신합니다.

동일한 영역에 있는 두 인터페이스 간에 트래픽 흐름을 허용하는 방법은 무엇입니까?

답변1

nftables가 포함된 방화벽의 경우 --add-forward이틀 전에 [1] 영역의 인터페이스 간 전달을 허용하는 새 플래그가 병합되었습니다. 이렇게 구성 가능해요

# firewall-cmd --zone=internal --add-forward

2020/09/03 업데이트: 새 버전 0.9.0에는 이 기능이 포함되어 있습니다\o/

[1]https://github.com/firewalld/firewalld/pull/613

답변2

Firewalld에 대한 유사한 다중 인터페이스 방화벽 주제를 검색하는 동안 질문을 찾았습니다. 약 1년이 지난 후에도 귀하의 질문은 여전히 ​​답이 없습니다. 귀하가 겪고 있는 --영구적인 문제가 인수 순서와 관련된 것인지 궁금합니다.

Enterprise Linux 7.5 버전 0.4.4.4에서는 Firewall-cmd 매뉴얼 페이지에 --direct 앞에 --permanent를 추가해야 한다고 명시되어 있습니다. 이는 --direct 뒤의 모든 매개변수가 Firewall-cmd가 아닌 direct의 하위 매개변수이기 때문일 수 있습니다. 따라서 다음과 같이 명령을 실행하십시오.

# firewall-cmd --permanent --direct --add-rule ipv4 filter FORWARD 0 -o ens256 -i ens161 -j ACCEPT

두 개의 내부 인터페이스와 관련하여... 한편으로는 출력을 보고 # iptables -L체인 흐름이 어떻게 진행되는지 그려야 합니다. 여기에 입력한 명령은 우선순위가 0인 체인 상단의 전달 체인에 규칙을 삽입합니다. 내 생각엔 "FORWARD_IN_ZONES"처럼 우선순위가 더 높은 또 다른 체인이 있을 것 같은데, 결국에는 패킷이 삭제됩니다.

또한 최신 버전의 Firewalld에서는 # firewall-cmd --set-log-denied=all삭제된 패킷에 대한 정보를 보기 위해 실행할 수 있습니다. 로그에는 드롭이 생성된 체인의 이름이 포함되어야 합니다.

관련 정보