저는 Centos 머신의 방화벽에 영역을 추가하기 위해 ansible을 사용하고 있습니다. 나는 IN_Internal 인터페이스가 제대로 작동하지 않아 이 모든 것이 노출될 것이라는 사실을 (거의) 너무 늦게까지 깨닫지 못했습니다. 이는 Firewalld.conf에 정의된 기본값입니다.
이것은 내 내부.xml입니다.
<?xml version="1.0" encoding="utf-8"?>
<zone>
<short>Internal</short>
<description>For use on internal networks. You mostly trust the other computers on the networks to not harm your computer. Only selected incoming connections are accepted.</description>
<interface name="eth0"/>
<service name="ipp-client"/>
<service name="mdns"/>
<service name="dhcpv6-client"/>
<service name="ssh"/>
</zone>
전혀 사용되지 않은 것 같습니다.
왜냐하면 어떤 이유에서든 나는 결국 다음과 같은 결과를 얻었기 때문입니다.
Chain IN_internal (0 references)
2 120 IN_public all -- eth0 * 0.0.0.0/0 0.0.0.0/0 [goto]
왜 이런 일이 발생하는지 이해하지 못합니다.
이렇게 하면 firewall-cmd --zone=internal --change-interface=eth0
(방화벽을 다시 로드한 후에도) 작동하지만 완전히 동일한 XML입니다.
저는 설정을 배포하기 위해 ansible을 사용하고 있고 시스템에서 방화벽-cmd가 실행되고 있지 않기 때문에 이러한 구성을 롤아웃할 수 있도록 방화벽-cmd가 배후에서 수행하는 작업을 알고 싶습니다.
답변1
man 5 firewalld.zones
주장하다
연결 영역을 어떻게 설정하거나 변경합니까?
이 영역은 연결을 통해 ifcfg에 저장됩니다
ZONE=option
. 이 옵션이 누락되거나 비어 있으면 방화벽에 설정된 기본 영역이 사용됩니다.