방화벽 구성 및 관리 방법 8

방화벽은 들어오고 나가는 네트워크 트래픽을 모니터링하고 필터링하는 방법입니다. 특정 트래픽을 허용할지 또는 차단할지 여부를 결정하는 보안 규칙 집합을 정의하여 작동합니다. 적절하게 구성된 방화벽은 전체 시스템 보안의 가장 중요한 측면 중 하나입니다.

센토스 8 은 파이어월드라는 방화벽 데몬과 함께 출하한다. 그것은 당신이 동적으로 시스템의 방화벽을 관리 할 수 있는 디 버스 인터페이스와 완벽한 솔루션입니다.

이 자습서에서는 방화벽을 구성하고 관리하는 방법에 대해 설명합니다. 우리는 또한 기본적인 파이어 월드 개념을 설명 할 것입니다.

필수 구성 요소#

방화벽 서비스를 구성하려면 루트 또는 사용자로 로그인해야 합니다.

기본 파이어 월드 개념#

파이어 월드는 영역 및 서비스의 개념을 사용합니다. 구성할 영역 및 서비스에 따라 시스템에서 허용되거나 차단되는 트래픽을 제어할 수 있습니다.

파이어월드는firewall-cmd명령줄 유틸리티를 사용하여 구성하고 관리할 수 있습니다.2044>

파이어 월드 영역#

영역은 컴퓨터가 연결된 네트워크의 신뢰 수준을 지정하는 미리 정의된 규칙 집합입니다. 네트워크 인터페이스 및 소스를 영역에 할당할 수 있습니다.

다음은 신뢰할 수 없는 영역에서 신뢰할 수 없는 영역으로의 신뢰 수준에 따라 주문된 파이어월드에서 제공하는 영역입니다:

  • 드롭: 들어오는 모든 연결은 알림없이 삭제됩니다. 나가는 연결 만 허용됩니다.
  • 차단:IPv4icmp6-adm-prohibited에 대한icmp-host-prohibited메시지와 함께 들어오는 모든 연결이 거부됩니다.
  • 공개:신뢰할 수 없는 공공 장소에서 사용할 수 있습니다. 네트워크의 다른 컴퓨터를 신뢰하지 않지만 선택한 들어오는 연결을 허용할 수 있습니다.
  • 외부:시스템이 게이트웨이 또는 라우터 역할을 할 때 냇 마스케이징이 활성화된 외부 네트워크에서 사용할 수 있습니다. 선택한 들어오는 연결만 허용됩니다.
  • 내부:시스템이 게이트웨이 또는 라우터 역할을 할 때 내부 네트워크에서 사용합니다. 네트워크의 다른 시스템은 일반적으로 신뢰할 수 있습니다. 선택한 들어오는 연결만 허용됩니다.
  • 비무장지대에 있는 컴퓨터의 경우 네트워크의 나머지 부분에 대한 액세스가 제한됩니다. 선택한 들어오는 연결만 허용됩니다.
  • 작업:작업 기계에 사용됩니다. 네트워크의 다른 컴퓨터는 일반적으로 신뢰할 수 있습니다. 선택한 들어오는 연결만 허용됩니다.
  • 홈:가정용 기계에 사용됩니다. 네트워크의 다른 컴퓨터는 일반적으로 신뢰할 수 있습니다. 선택한 들어오는 연결만 허용됩니다.
  • 신뢰할 수 있음:모든 네트워크 연결이 허용됩니다. 네트워크에 있는 모든 컴퓨터를 신뢰합니다.

방화벽 서비스#

파이어 월드 서비스는 영역 내에 적용되며 특정 서비스에 대해 들어오는 트래픽을 허용하는 데 필요한 설정을 정의하는 미리 정의된 규칙입니다. 이 서비스를 사용하면 한 번에 여러 작업을 쉽게 수행 할 수 있습니다.

예를 들어,서비스에는 포트 열기,트래픽 전달 등에 대한 정의가 포함될 수 있습니다.

파이어 월드 런타임 및 영구 설정#

파이어 월드는 두 개의 분리 된 구성 세트,런타임 및 영구 구성을 사용합니다.

런타임 구성은 실제 실행 중인 구성이며 재부팅해도 유지되지 않습니다. 파이어월드 데몬이 시작되면 영구 구성이 로드되며,이 구성은 런타임 구성이 됩니다.

기본적으로firewall-cmd유틸리티를 사용하여 파이어월드 구성을 변경하면 변경 사항이 런타임 구성에 적용됩니다. 변경 내용을 영구적으로 만들려면--permanent옵션을 명령에 추가합니다.

두 구성 세트의 변경 사항을 적용하려면 다음 두 가지 방법 중 하나를 사용할 수 있습니다:

  1. 런타임 구성을 변경하고 영구적으로 설정:

    sudo firewall-cmd <options>sudo firewall-cmd --runtime-to-permanent
  2. 영구 구성을 변경하고 파이어 월드 데몬을 다시로드:

    sudo firewall-cmd --permanent <options>sudo firewall-cmd --reload

이 설정을 사용하면 기본 설정을 변경할 수 있습니다. 어떤 이유로 시스템에 설치되어 있지 않은 경우,설치하고 입력하여 데몬을 시작할 수 있습니다:

sudo dnf install firewalldsudo systemctl enable firewalld --now

다음과 같이 방화벽 서비스의 상태를 확인할 수 있습니다:

sudo firewall-cmd --state

방화벽이 활성화되면 명령이running를 인쇄해야 합니다. 그렇지 않으면not running가 표시됩니다.

파이어 월드 영역#

변경하지 않은 경우 기본 영역이public으로 설정되고 모든 네트워크 인터페이스가 이 영역에 할당됩니다.

기본 영역은 다른 영역에 명시적으로 할당되지 않은 모든 영역에 사용되는 영역입니다.

를 입력하여 기본 영역을 볼 수 있습니다.:

sudo firewall-cmd --get-default-zone
public

사용 가능한 모든 영역의 목록을 가져오려면 다음을 입력합니다:

sudo firewall-cmd --get-zones
block dmz drop external home internal public trusted work

활성 영역 및 할당된 네트워크 인터페이스를 보려면:

sudo firewall-cmd --get-active-zones

아래 출력은 인터페이스eth0eth1public영역에 할당되었음을 보여줍니다:

public interfaces: eth0 eth1

다음과 같이 영역 구성 설정을 인쇄할 수 있습니다:

sudo firewall-cmd --zone=public --list-all
public (active) target: default icmp-block-inversion: no interfaces: eth0 eth1 sources: services: ssh dhcpv6-client ports: protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules:

위의 출력에서 공개 영역이 활성 상태이고 기본 대상인REJECT을 사용하는 것을 볼 수 있습니다. 출력은 또한 영역이eth0eth1인터페이스에서 사용됨을 보여 줍니다.

사용 가능한 모든 영역 유형의 구성을 확인하려면:

sudo firewall-cmd --list-all-zones

이 명령은 사용 가능한 모든 영역의 설정으로 거대한 목록을 인쇄합니다.

영역 대상 변경#

대상은 지정되지 않은 들어오는 트래픽에 대한 영역의 기본 동작을 정의합니다. 다음 옵션 중 하나로 설정할 수 있습니다: default, ACCEPT, REJECT, 그리고DROP.

영역의 대상을 설정하려면--zone옵션이 있는 영역과--set-target옵션이 있는 대상을 지정합니다.

예를 들어public영역의 대상을DROP로 변경하려면 다음을 실행합니다:

sudo firewall-cmd --zone=public --set-target=DROP

다른 영역에 인터페이스 할당#

서로 다른 영역에 대한 특정 규칙 집합을 만들고 서로 다른 인터페이스를 할당할 수 있습니다. 이 기능은 컴퓨터에서 여러 인터페이스를 사용할 때 특히 유용합니다.

인터페이스를 다른 영역에 할당하려면--zone옵션이 있는 영역과--change-interface옵션이 있는 인터페이스를 지정합니다.

예를 들어 다음 명령은eth1인터페이스를work영역에 할당합니다:

sudo firewall-cmd --zone=work --change-interface=eth1

입력하여 변경 사항 확인:

sudo firewall-cmd --get-active-zones
work interfaces: eth1public interfaces: eth0

기본 영역 변경#

기본 영역을 변경하려면--set-default-zone옵션 뒤에 기본값으로 설정할 영역의 이름을 사용합니다.

예를 들어 기본 영역을home으로 변경하려면 다음 명령을 실행합니다:

sudo firewall-cmd --set-default-zone=home

다음을 사용하여 변경 사항을 확인합니다:

sudo firewall-cmd --get-default-zone
home

새 영역 만들기#

파이어월드 또한 자신만의 영역을 만들 수 있습니다. 이 기능은 응용 프로그램별 규칙을 만들 때 유용합니다.

다음 예제에서는memcached라는 새 영역을 만들고11211포트를 열고192.168.100.30주소에서만 액세스를 허용합니다.:

  1. 영역 만들기:

    sudo firewall-cmd --new-zone=memcached --permanent
  2. 영역에 규칙 추가:

    sudo firewall-cmd --zone=memcached --add-port=11211/udp --permanentsudo firewall-cmd --zone=memcached --add-port=11211/tcp --permanentsudo firewall-cmd --zone=memcached --add-source=192.168.100.30/32 --permanent
  3. 파이어 월드 데몬을 다시로드하여 변경 사항을 활성화하십시오:

    sudo firewall-cmd --reload

파이어월드 서비스#

파이어월드를 사용하면 서비스라는 사전 정의된 규칙에 따라 특정 포트 및/또는 소스에 대한 트래픽을 허용할 수 있습니다.

사용 가능한 모든 기본 서비스 유형 목록을 가져오려면:

sudo firewall-cmd --get-services

관련 서비스를 열어 각 서비스에 대한 자세한 정보를 찾을 수 있습니다./usr/lib/firewalld/services디렉터리 내의 파일입니다. 예를 들어, 서비스는 다음과 같이 정의됩니다.

<?xml version="1.0" encoding="utf-8"?><service> <short>WWW (HTTP)</short> <description>HTTP is the protocol used to serve Web pages. If you plan to make your Web server publicly available, enable this option. This option is not required for viewing pages locally or developing Web pages.</description> <port protocol="tcp" port="80"/></service>

현재 세션(런타임 구성)유형에 대해서만 공용 영역의 인터페이스에 대해 들어오는 트래픽(포트 80)을 허용하려면:

sudo firewall-cmd --zone=public --add-service=http
기본 영역을 수정하는 경우--zone옵션을 생략할 수 있습니다.

서비스가 성공적으로 추가되었는지 확인하려면--list-services옵션을 사용합니다:

sudo firewall-cmd --zone=public --list-services
ssh dhcpv6-client http

재부팅 후 포트 80 을 열어 두려면--permanent옵션을 사용하여 동일한 명령을 다시 실행하거나 실행하십시오:

sudo firewall-cmd --runtime-to-permanent

--list-services와 함께--permanent옵션을 사용하여 변경 사항을 확인합니다:

sudo firewall-cmd --permanent --zone=public --list-services
ssh dhcpv6-client http

서비스를 제거하는 구문은 서비스를 추가할 때와 동일합니다. --add-service플래그 대신--remove-service을 사용하십시오.:

sudo firewall-cmd --zone=public --remove-service=http --permanent

위의 명령은 공용 영역 영구 구성에서http서비스를 제거합니다.

새 파이어 월드 서비스 만들기#

이미 언급했듯이 기본 서비스는/usr/lib/firewalld/services디렉토리에 저장됩니다. 새 서비스를 만드는 가장 쉬운 방법은 기존 서비스 파일을 사용자가 만든 서비스의 위치인/etc/firewalld/services디렉터리에 복사하고 파일 설정을 수정하는 것입니다.

예를 들어,플렉스 미디어 서버에 대한 서비스 정의를 만들려면:

sudo cp /usr/lib/firewalld/services/ssh.xml /etc/firewalld/services/plexmediaserver.xml

새로 만든plexmediaserver.xml파일을 열고<short><description>태그 내에서 서비스에 대한 짧은 이름과 설명을 변경합니다. 변경해야 할 가장 중요한 태그는port태그입니다.이 태그는 열려는 포트 번호와 프로토콜을 정의합니다.

다음 예제에서는 포트190032400를 엽니다.2044>

/기타/파이어 월드/서비스/플렉스메디아 서버.2015 년
<?xml version="1.0" encoding="utf-8"?><service version="1.0"><short>plexmediaserver</short><description>Plex is a streaming media server that brings all your video, music and photo collections together and stream them to your devices at anytime and from anywhere.</description><port protocol="udp" port="1900"/><port protocol="tcp" port="32400"/></service>

파일을 저장하고 파이어 월드 서비스를 다시로드:

sudo firewall-cmd --reload

이제 다른 서비스와 같은 영역에서plexmediaserver서비스를 사용할 수 있습니다.또한 서비스 정의를 생성하지 않고도 신뢰할 수 있는 아이피 주소 또는 특정 포트에서 모든 트래픽을 빠르게 활성화할 수 있습니다.

특정 주소(또는 범위)에서 들어오는 모든 트래픽을 허용하려면--zone옵션이 있는 영역과--add-source옵션이 있는 소스를 지정합니다.

예를 들어,public영역에서 192.168.1.10 에서 들어오는 모든 트래픽을 허용하려면 다음을 실행합니다:

sudo firewall-cmd --zone=public --add-source=192.168.1.10

새 규칙을 영구적으로 설정:

sudo firewall-cmd --runtime-to-permanent

다음 명령을 사용하여 변경 사항을 확인하십시오:

sudo firewall-cmd --zone=public --list-sources
192.168.1.10

소스 제거 구문은 소스를 추가할 때와 동일합니다. --add-source옵션 대신--remove-source를 사용하십시오.:

sudo firewall-cmd --zone=public --remove-source=192.168.1.10

소스 포트#

열기 지정된 포트에서 들어오는 모든 트래픽을 허용하려면--zone옵션이 있는 영역과--add-port옵션이 있는 포트 및 프로토콜을 지정합니다.

예를 들어,실행된 현재 세션의 공개 영역에서 포트8080를 열려면:

sudo firewall-cmd --zone=public --add-port=8080/tcp

프로토콜은 다음 중 하나 일 수 있습니다tcp, udp, sctp, 또는dccp.

변경 사항 확인:

sudo firewall-cmd --zone=public --list-ports
8080

재부팅 후 포트를 열어 두려면--permanent플래그를 사용하여 동일한 명령을 실행하거나 실행하여 영구 설정에 규칙을 추가합니다:

sudo firewall-cmd --runtime-to-permanent

포트를 제거하는 구문은 포트를 추가할 때와 동일합니다. --add-port옵션 대신--remove-port을 사용하십시오.

sudo firewall-cmd --zone=public --remove-port=8080/tcp

포트 전달#

한 포트에서 다른 포트로 트래픽을 전달하려면 먼저--add-masquerade옵션을 사용하여 원하는 영역에 대한 가면을 사용하도록 설정합니다. 예를 들어external영역에 대해 가장한 경우를 사용하려면 다음을 입력합니다:다음 예제에서는 같은 서버의 포트80에서 포트8080로 트래픽을 전달합니다:

sudo firewall-cmd --zone=external --add-forward-port=port=80:proto=tcp:toport=8080

다음 예제에서는 포트80에서 포트80로 트래픽을 전달합니다.10.10.10.2:

sudo firewall-cmd --zone=external --add-forward-port=port=80:proto=tcp:toaddr=10.10.10.2

다른 포트#

의 다른 서버로 트래픽 전달 다음 예제에서는 포트80에서 포트8080로 트래픽을 전달합니다.:

sudo firewall-cmd --zone=external --add-forward-port=port=80:proto=tcp:toport=8080:toaddr=10.10.10.2

정방향 규칙을 영구화하려면 다음을 사용합니다:

sudo firewall-cmd --runtime-to-permanent

결론#

당신은 당신의 센토스 8 시스템에서 파이어월드 서비스를 구성하고 관리하는 방법을 배웠습니다.

모든 불필요한 연결을 제한하면서 시스템의 적절한 기능에 필요한 모든 들어오는 연결을 허용해야합니다.



+