애플리케이션을 중단하지 않고 방화벽을 활성화하는 방법은 무엇입니까?

애플리케이션을 중단하지 않고 방화벽을 활성화하는 방법은 무엇입니까?

동일한 LAN에 여러 CentOS 7 시스템이 있습니다. 각 애플리케이션은 여러 다른 애플리케이션과 통신하며 각각 다양한 포트(데이터베이스, 웹 서버, 로드 밸런싱 서비스 등)에서 수신 대기하는 하나 이상의 애플리케이션이 설치되어 있습니다. 일반적인 네트워크 아키텍처 관련 내용입니다.

이제 firewalld이 모든 기능이 비활성화되었습니다 . 모든 곳에서 활성화하고 싶습니다.

일반적으로 다음과 같습니다.

  1. systemctl enable firewalld
  2. systemctl start firewalld
  3. firewall-cmd <...>(포트, 소스, 서비스 등 추가)

문제는 일단 방화벽 서비스를 시작하면 기본적으로 3단계를 수행할 기회가 생길 때까지 대부분의 콘텐츠1를 차단한다는 것입니다. 그리고 추가해야 하는 구성(포트, 소스)의 양을 고려할 때 서비스를 알아내기 전까지는 기본적으로 서비스를 사용할 수 없거나 액세스할 수 없게 됩니다.

제가 가장 중요하게 생각하는 기능은 다음과 같습니다.

  • 일부 시스템에서 GlusterFS를 사용하여 네트워크 파일 시스템을 생성한 다음 이를 다른 시스템에 마운트하고 있습니다.
  • 저는 Corosync + Pacemaker를 사용하여 일부 시스템 간에 몇 개의 클러스터를 생성하고 있으며 이러한 도구는 다양한 포트를 사용하여 하트비트와 유사한 기능을 구현합니다.

이러한 시스템에서 방화벽을 켜면 명령문을 많이 실행할 수 있을 때까지 모든 서비스가 즉시 차단됩니다 firewall-cmd <...>. 나는 이것의 결과를 모른다.


내 질문은: 2단계 전에 3단계를 수행할 수 있는 방법이 있습니까? 이렇게 하면 서비스를 열 때 모든 것이 제자리에 있게 됩니다.

/etc/firewalld/zones내 유일한 아이디어는 폴더의 XML 파일을 수동으로 편집하는 것입니다 . 그러나 이것은 매우 오류가 발생하기 쉬운 것 같습니다. 특히 그러한 편집을 쉽게 할 수 있을 만큼 방화벽에 익숙하지 않기 때문입니다.


1 = 내가 아는 한 포트 80/443(HTTP/HTTPS) 및 22(SSH)만 열리고 다른 모든 포트는 명시적으로 열 때까지 차단됩니다.

답변1

서비스를 시작하기 전에 firewalld구성 파일을 통해 매개변수를 지정해야 합니다. 각 서비스(GlusterFS, Pacemaker...)에 대한 규칙 파일을 만들고 해당 파일에 필요한 모든 포트를 넣는 것이 좋습니다. 예를 들어(심박조율기의 경우클러스터 구성 요소를 허용하도록 iptables 방화벽 구성) /etc/firewalld/services/pacemaker.xml:

<?xml version="1.0" encoding="utf-8"?>
<service>
  <short>Pacemaker</short>
  <description>Pacemaker service</description>
  <port protocol="tcp" port="2224"/>
  <port protocol="tcp" port="3121"/>
  <port protocol="tcp" port="5403"/>
  <port protocol="udp" port="5404"/>
  <port protocol="udp" port="5405"/>
  <port protocol="tcp" port="21064"/>
</service>

더 많은 정보와 예시를 얻을 수 있습니다.FirewallD를 사용하여 CentOS 7에서 방화벽을 설정하는 방법.

그러면 firewalld시작해도 안전합니다.

수동 편집 영역 파일이 손상 될까 걱정된다면 firewalld작업 시스템에 적용하기 전에 가상 환경에서 테스트해 볼 수 있습니다.

답변2

단순한. --permanent다음과 같은 모든 규칙에 옵션을 추가하기만 하면 됩니다 .

firewall-cmd --zone=trusted --add-port=1234/tcp --permanent

그러면 영구 구성에 규칙이 등록되지만 명령을 실행할 때까지는 적용되지 않습니다.

firewall-cmd --reload

그런데 이것이 권장되는 작업 방법입니다 firewalld. 이 옵션을 사용하지 않으면 --permanent변경 사항이 일시적으로 적용되고 다음에 방화벽을 다시 로드하거나 다시 시작할 때 제거됩니다.

관련 정보