방화벽 및 영역에 대한 나의 이전 경험불완전합니다.
- 지정된 지역을 통해
nmcli
오직, 확인/etc/sysconfig/network-scripts/ifcfg-*
및 확인 설정 의 설정아니요다시 시작하면/etc/firewalld/zones/
두 인터페이스가 모두 기본 영역에 배치됩니다. - 지정된 지역을 통해
firewalld-cmd --permanent
오직, 확인/etc/firewalld/zones/
및 확인 설정 의 설정아니요다시 시작하면/etc/sysconfig/network-scripts/ifcfg-*
두 인터페이스가 모두 기본 영역에 배치됩니다. - 이 두 명령을 통해 영역을 지정하고 두 파일 세트의 설정이 여전히 두 인터페이스를 기본 영역에 두는지 확인합니다.
무엇이러한 파일은 종료/시작 중에 재설정됩니다.
답변1
이것은 추적됩니다여기문제에 대한 임시 해결책을 자세히 설명했지만 여기에도 적어 두겠습니다.
CentOS 7.2.1511 및 CentOS 7.3.1611에서 이 동작을 확인했습니다.
영역을 지속성으로 유지하기 위해 어떤 NetworkManager 또는 Firewalld 명령 조합을 사용하더라도 아무 것도 작동하지 않는 것 같습니다. 위에 나열된 "해결 방법"을 시도했지만 여전히 결과가 없습니다. 내 사용 사례에 대해 내가 생각해낸 해결 방법은 다음과 같습니다.
해당 영역에 영구적으로 속해야 하는 다음 인터페이스가 있습니다.
- enp0s3 - 공개
- enp0s8 - 내부
- enp0s9 - 외부
문제를 일시적으로 해결하기 위해 systemd 단위 파일을 만들었습니다. /etc/systemd/system/myzones.service
[Unit]
Description=Custom Zones
After=network.target network.service
[Service]
Type=oneshot
User=root
Group=root
ExecStart=/bin/nmcli connection modify enp0s3 connection.zone public
ExecStart=/bin/nmcli connection modify enp0s8 connection.zone internal
ExecStart=/bin/nmcli connection modify enp0s9 connection.zone external
[Install]
WantedBy=multi-user.target
그런 다음 서비스를 활성화하고 다시 시작했습니다.
# systemctl daemon-reload
# systemctl enable myzones.service
# reboot
지금까지 내가 가진 유일한 문제는 ifcfg-*.old 파일이 /etc/sysconfig/network-scripts/에 있을 때 network.service를 다시 시작하려고 하는 경우입니다. 그러나 다시 시작하면 이 문제가 해결될 수 있습니다. 저는 네트워크 서비스를 사용하지 않으므로 지금은 이 임시 수정 사항을 사용하여 생활할 수 있습니다.
답변2
나는 파일 ZONE=
에서만 설정을 시도했는데 재부팅한 후에는 항상 이 방법이 효과적이었습니다.ifcfg-*
시도해 보셨는지 모르겠네요오직파일을 편집했지만 ifcfg-*
이것이 나에게 도움이 되었기 때문에 답변으로 추천합니다.
답변3
Ansible을 사용하여 인터페이스 영역을 수정할 때 CentOS 7 및 8에서 매우 유사한 동작을 보았습니다. @ user136881의 답변에 언급 된 질문이 다음으로 이동되었습니다.여기. 수정된 것으로 추정되지만 Ansible의 방화벽 모듈을 사용하여 인터페이스를 다른 영역으로 이동할 때 이러한 영역 변경 사항은 방화벽을 다시 시작한 후 되돌려진 것으로 나타났습니다.
@charley가 댓글을 달았듯이 /etc/sysconfig/network-scripts/ifcfg-*
파일을 편집하세요( systemctl restart NetworkManager
신청하려면 , 필요).
그래서 나는 이 일을 그만 두었습니다:
- name: Set interface for internal zone
ansible.posix.firewalld:
interface: "{{ internal_nic }}"
state: enabled
zone: "{{ internal_zone }}"
immediate: yes
permanent: yes
그리고 이것을 시작하세요:
- name: Set interface for internal zone
ansible.buitin.lineinfile:
path: /etc/sysconfig/network-scripts/ifcfg-{{ internal_nic }}
regexp: '^ZONE='
line: 'ZONE="{{ internal_zone }}"'
notify: Restart NetworkManager