IP 별칭(eth0:0)이 있는 방화벽

IP 별칭(eth0:0)이 있는 방화벽

(솔루션 발견, 아래 참조...)

서버(CentOS 7)에는 여러 개의 공용 IP가 있으며 이는 일반적인 ifcfg-eth0:0구성 파일을 통해 설정되어 제대로 작동합니다. 나는 (iptables에서 온) Firewalld에 적응하려고 노력 중입니다. 나는 IP 별칭별로 열린 포트를 지정할 수 있는 것을 좋아합니다. iptables를 사용하면 포트에 필요한 별칭과 일치하도록 대상 IP를 설정하기만 하면 됩니다.

생각방화벽을 사용하면 각 인터페이스에 다른 영역을 적용하여 동일한 효과를 얻을 수 있지만 그렇게 할 수 없는 것 같습니다.

우리는 다음과 같이 시작합니다:

# firewall-cmd --get-active-zones
public
  interfaces: eth0 eth0:0
trusted
  interfaces: eth1

public_web사용하고 싶은 새 영역을 만들었습니다 .eth0:0

# firewall-cmd --permanent --new-zone=public_web
success
# firewall-cmd --permanent --zone=public_web --add-service=http
success
# firewall-cmd --permanent --zone=public_web --add-interface=eth0:0
success
# firewall-cmd --reload
success

하지만...

# firewall-cmd --get-active-zones
public
  interfaces: eth0 eth0:0
trusted
  interfaces: eth1

--remove-interface, --change-interface그리고 다양한 명령을 다양한 순서로 시도했지만 eth0:0꿈쩍도 하지 않았습니다. 별칭 사용에 대한 문서를 어디서도 찾을 수 없는 것 같아서 이것이 내가 원하는 것을 달성하는 올바른 방법인지 확실하지 않습니다.

모두 감사합니다.


해결책:

해결책은 destination서비스 파일에서 태그를 사용하는 것입니다. 서비스당 한 번만 사용할 수 있습니다.

따라서 87.98.256.512에서 포트 443을 원한다고 가정하고 파일 사본을 만드십시오 https.xml(원본을 건드리지 않는 것이 좋습니다). /etc/firewalld/services여기서는 다음을 사용하겠습니다.https-admin.xml

<?xml version="1.0" encoding="utf-8"?>
<service>
  <short>HTTPS for 87.98.256.512</short>
  <description>...</description>
  <port protocol="tcp" port="443"/>
  <destination ipv4="87.98.256.512" />
</service>

그 다음에

# firewall-cmd --permanent --zone=public --add-service=https-admin
success
# firewall-cmd --reload
success
# firewall-cmd --zone=public --list-services
http https-admin

마지막으로 iptables로 이를 확인합니다.

Chain IN_public_allow (1 references)
target     prot opt source               destination
ACCEPT     tcp  --  0.0.0.0/0            87.98.256.512        tcp dpt:443 ctstate NEW
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:80 ctstate NEW

기억하세요: destination서비스당 하나의 태그만 필요하므로 필요하다면 여러 서비스를 만드세요.

답변1

전체 인터페이스 앨리어싱 기능은 과거에 남아 있습니다. 실제로 별도의 인터페이스를 생성하지는 않습니다. 오랫동안 단일 인터페이스에 여러 IP를 할당하기 위해 별칭을 사용할 필요가 없었습니다. 이는 '실제' 인터페이스가 아니기 때문에 방화벽 소프트웨어는 이를 실제 인터페이스처럼 처리할 수 없습니다. 이 명령을 사용하면 ip addr주소가 모두 기본 인터페이스에 할당되고 eth0:0해당 주소에 대한 레이블로 간주되는 것을 볼 수 있습니다.

이 모든 것을 염두에 두고 방화벽을 조정하기 위해 무엇을 해야 하는지 완전히 확신할 수 없습니다. IP 주소나 별칭이 아닌 IP로 포트를 지정해야 할 수도 있습니다.

관련 정보