인터페이스별 방화벽 규칙

인터페이스별 방화벽 규칙

내 Linux VM은 여러 네트워크 카드(eth0 및 eth1)로 구성되어 있습니다. 이제 NIC에서는 SSH를 활성화하고 eth0에서만 HTTPS를 활성화하고 싶습니다. 해당 영역을 제외한 모든 트래픽을 삭제하도록 드롭 영역을 기본값으로 설정했습니다.

하지만 아래와 같이 공개 영역에 이 구성을 추가하면

public (active)
  target: default
  icmp-block-inversion: no
  interfaces: eth0 eth1
  sources:
  services: dhcpv6-client https ssh
  ports:
  protocols:
  masquerade: no
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules: 

그러면 두 네트워크 카드 또는 두 네트워크 카드 중 하나에서 https 및 ssh가 활성화됩니다. NIC 서비스 관계를 관리할 수 있는 방법이 있습니까?

답변1

Firewalld는 "영역" 개념을 사용하여 규칙을 인터페이스에 매핑합니다. 영역( firewall-cmd --zone=public --add-service=http --permanent)에 서비스를 추가하면 해당 영역의 구성원인 모든 인터페이스에서 서비스가 허용됩니다.

인터페이스마다 다른 규칙을 설정하려면 별도의 영역을 생성해야 합니다.

이 기사다중 영역 구성의 예를 포함하여 Linux Journal의 기사는 이 주제에 대한 유용한 리소스입니다.

예를 들어:

  • 해당 영역에서 eth1을 제거 public하고 그곳으로 이동합니다 internal.

    firewall-cmd --zone=internal --change-interface=eth1 --permanent
    
  • ssh이 영역을 허용합니다 internal:

    firewall-cmd --zone=internal --add-service=ssh --permanent
    
  • 방화벽 구성을 다시 로드합니다.

    firewall-cmd --reload
    

internalpublic그런 다음 원하는 구성을 달성하기 위해 필요에 따라 영역에 서비스를 추가하고 제거합니다 .


또는 비교적 간단한 방화벽 구성이 있는 경우 규칙을 수동으로 삭제 firewalld하고 작성할 수 있습니다.iptables

관련 정보