방화벽d: NIC 2개, 영역 2개. 영역이 무시됩니다.

방화벽d: NIC 2개, 영역 2개. 영역이 무시됩니다.

두 개의 네트워크 인터페이스를 갖춘 CentOS/RHEL 7.7을 실행하는 서버가 있습니다. 이러한 인터페이스는 올바르게 구성되어 작동합니다. 첫 번째 인터페이스인 ens33은 방화벽이 있는 "공개" 영역의 일부입니다. 이 영역에 적용된 모든 규칙은 제대로 작동합니다. 두 번째 인터페이스인 ens37도 "공개" 영역의 구성원인 경우 예상대로 작동합니다. 나는 두 번째 인터페이스의 기능과 관련된 일련의 규칙이 있는 두 번째 영역인 "GLZ"를 만들었습니다. GLZ 영역에서 이 인터페이스에 적용할 규칙을 가져올 수 없습니다. 과거에 iptables를 사용하여 이러한 유형의 설정을 여러 번 구성했지만 방화벽으로는 원하는 효과를 얻을 수 없는 것 같습니다. 방화벽에 근본적인 뭔가가 빠져 있는 것 같지만 그게 뭔지는 모르겠습니다. 구체적인 내용은 다음과 같습니다.

설정 스크립트:

NEWZONE="GLZ"

# create the new zone
firewall-cmd --permanent --new-zone=$NEWZONE
firewall-cmd --reload

# add the second NIC to the zone
firewall-cmd --permanent --zone=$NEWZONE --change-interface=ens37
# set zone target
firewall-cmd --zone=$NEWZONE --permanent --set-target=default
firewall-cmd --reload

# open necessary ports
firewall-cmd --permanent --zone=$NEWZONE --add-rich-rule='rule family=ipv4 source address=0.0.0.0/0 port protocol=tcp port=80 accept'
firewall-cmd --permanent --zone=$NEWZONE --add-rich-rule='rule family=ipv4 source address=0.0.0.0/0 port protocol=tcp port=443 accept'
# setup forwarding (see https://docs.fedoraproject.org/en-US/Fedora/19/html/Security_Guide/sec-Configure_Port_Forwarding-CLI.html)
firewall-cmd --permanent --zone=$NEWZONE --add-masquerade
firewall-cmd --permanent --zone=$NEWZONE --add-forward-port=port=22:proto=tcp:toport=2222
firewall-cmd --reload

--info-zone의 출력에 따르면 이는 괜찮아 보이는 것 같습니다. 두 영역 모두 활성 상태이며 적절한 네트워크 인터페이스가 각 영역에 할당됩니다. 공개 영역을 변경하면 두 인터페이스 모두의 트래픽에 영향을 미치며 GLZ 영역에 추가하거나 제거하는 규칙은 전혀 차이가 없습니다.
산출:

$ sudo firewall-cmd --info-zone=public
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: ens33
  sources:
  services: dhcpv6-client ssh
  ports:
  protocols:
  masquerade: no
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules:
    rule family="ipv4" source address="10.0.0.0/8" port port="3306" protocol="tcp" accept
    rule family="ipv4" source address="10.0.0.0/8" port port="80" protocol="tcp" accept
    rule family="ipv4" source address="10.0.0.0/8" port port="443" protocol="tcp" accept
    rule family="ipv4" source address="10.0.0.0/8" port port="8080" protocol="tcp" accept

$ sudo firewall-cmd --info-zone=GLZ
GLZ (active)
  target: default
  icmp-block-inversion: no
  interfaces: ens37
  sources:
  services:
  ports:
  protocols:
  masquerade: yes
  forward-ports: port=22:proto=tcp:toport=2222:toaddr=
  source-ports:
  icmp-blocks:
  rich rules:
    rule family="ipv4" source address="0.0.0.0/0" port port="80" protocol="tcp" accept
    rule family="ipv4" source address="0.0.0.0/0" port port="443" protocol="tcp" accept

관련 정보