41.8. firewalld를 사용하여 네트워크 트래픽 제어
firewalld
패키지는 많은 수의 사전 정의된 서비스 파일을 설치하고 더 많은 서비스를 추가하거나 사용자 지정할 수 있습니다. 그런 다음 이러한 서비스 정의를 사용하여 사용하는 프로토콜과 포트 번호를 몰라도 서비스에 대한 포트를 열거나 닫을 수 있습니다.
41.8.1. CLI를 사용하여 사전 정의된 서비스로 트래픽 제어
트래픽을 제어하는 가장 간단한 방법은 사전 정의된 서비스를 firewalld
에 추가하는 것입니다. 그러면 필요한 모든 포트가 열리고 서비스 정의 파일에 따라 다른 설정을 수정합니다.
사전 요구 사항
-
firewalld
서비스가 실행 중입니다.
절차
firewalld
의 서비스가 아직 허용되지 않았는지 확인합니다.firewall-cmd --list-services
# firewall-cmd --list-services ssh dhcpv6-client
Copy to Clipboard Copied! 명령은 기본 영역에서 활성화된 서비스를 나열합니다.
firewalld
에서 사전 정의된 모든 서비스를 나열합니다.firewall-cmd --get-services
# firewall-cmd --get-services RH-Satellite-6 amanda-client amanda-k5-client bacula bacula-client bitcoin bitcoin-rpc bitcoin-testnet bitcoin-testnet-rpc ceph ceph-mon cfengine condor-collector ctdb dhcp dhcpv6 dhcpv6-client dns docker-registry ...
Copy to Clipboard Copied! 명령은 기본 영역에 사용 가능한 서비스 목록을 표시합니다.
firewalld
에서 허용하는 서비스 목록에 서비스를 추가합니다.firewall-cmd --add-service=<service_name>
# firewall-cmd --add-service=<service_name>
Copy to Clipboard Copied! 명령은 지정된 서비스를 기본 영역에 추가합니다.
새 설정을 영구적으로 설정합니다.
firewall-cmd --runtime-to-permanent
# firewall-cmd --runtime-to-permanent
Copy to Clipboard Copied! 명령은 이러한 런타임 변경 사항을 방화벽의 영구 구성에 적용합니다. 기본적으로 이러한 변경 사항은 기본 영역의 구성에 적용됩니다.
검증
모든 영구 방화벽 규칙을 나열합니다.
firewall-cmd --list-all --permanent
# firewall-cmd --list-all --permanent public target: default icmp-block-inversion: no interfaces: sources: services: cockpit dhcpv6-client ssh ports: protocols: forward: no masquerade: no forward-ports: source-ports: icmp-blocks: rich rules:
Copy to Clipboard Copied! 명령은 기본 방화벽 영역(
공용
)의 영구 방화벽 규칙을 사용하여 전체 구성을 표시합니다.firewalld
서비스의 영구 구성의 유효성을 확인합니다.firewall-cmd --check-config
# firewall-cmd --check-config success
Copy to Clipboard Copied! 영구 구성이 유효하지 않으면 명령에서 추가 세부 정보와 함께 오류를 반환합니다.
firewall-cmd --check-config
# firewall-cmd --check-config Error: INVALID_PROTOCOL: 'public.xml': 'tcpx' not from {'tcp'|'udp'|'sctp'|'dccp'}
Copy to Clipboard Copied! 영구 구성 파일을 수동으로 검사하여 설정을 확인할 수도 있습니다. 기본 설정 파일은
/etc/firewalld/firewalld.conf
입니다. 영역별 구성 파일은/etc/firewalld/zones/
디렉터리에 있으며 정책은/etc/firewalld/policies/
디렉터리에 있습니다.
41.8.2. 웹 콘솔을 사용하여 방화벽에서 서비스 활성화
기본적으로 서비스는 기본 방화벽 영역에 추가됩니다. 더 많은 네트워크 인터페이스에서 방화벽 영역을 사용하는 경우 먼저 영역을 선택한 다음 포트로 서비스를 추가해야 합니다.
RHEL 8 웹 콘솔에는 사전 정의된 firewalld
서비스가 표시되고 활성 방화벽 영역에 추가할 수 있습니다.
RHEL 8 웹 콘솔은 firewalld 서비스를 구성합니다.
웹 콘솔은 웹 콘솔에 나열되지 않은 일반 firewalld
규칙을 허용하지 않습니다.
사전 요구 사항
- RHEL 8 웹 콘솔을 설치했습니다.
- cockpit 서비스를 활성화했습니다.
사용자 계정이 웹 콘솔에 로그인할 수 있습니다.
자세한 내용은 웹 콘솔 설치 및 활성화를 참조하십시오.
절차
RHEL 8 웹 콘솔에 로그인합니다.
자세한 내용은 웹 콘솔에 로그인 을 참조하십시오.
- 네트워킹 을 클릭합니다.
방화벽 섹션에서 서비스를 추가할 영역을 선택하고 서비스 추가 를 클릭합니다.
- 서비스 추가 대화 상자에서 방화벽에서 활성화할 서비스를 찾습니다.
시나리오에 따라 서비스를 활성화합니다.
- 서비스 추가를 클릭합니다.
이 시점에서 RHEL 8 웹 콘솔에 서비스가 영역의 서비스 목록에 표시됩니다.
41.8.3. 웹 콘솔을 사용하여 사용자 정의 포트 구성
RHEL 웹 콘솔을 통해 서비스에 대한 사용자 지정 포트를 구성할 수 있습니다.
사전 요구 사항
- RHEL 8 웹 콘솔을 설치했습니다.
- cockpit 서비스를 활성화했습니다.
사용자 계정이 웹 콘솔에 로그인할 수 있습니다.
자세한 내용은 웹 콘솔 설치 및 활성화를 참조하십시오.
-
firewalld
서비스가 실행 중입니다.
절차
RHEL 8 웹 콘솔에 로그인합니다.
자세한 내용은 웹 콘솔에 로그인 을 참조하십시오.
- 네트워킹 을 클릭합니다.
방화벽 섹션에서 사용자 지정 포트를 구성할 영역을 선택하고 서비스 추가 를 클릭합니다.
- 서비스 추가 대화 상자에서 라디오 버튼을 클릭합니다.
TCP 및 UDP 필드에서 예제에 따라 포트를 추가합니다. 다음 형식으로 포트를 추가할 수 있습니다.
- 22와 같은 포트 번호
- 5900-5910과 같은 포트 번호 범위
- nfs, rsync와 같은 별칭
참고각 필드에 여러 값을 추가할 수 있습니다. 값은 쉼표 없이 쉼표로 구분해야 합니다. 예를 들면 다음과 같습니다. 8080,8081,http
TCP filed에 포트 번호를 추가한 후, UDP 가 제출되었거나 둘 다되면 Name 필드에서 서비스 이름을 확인합니다.
Name 필드에는 이 포트가 예약된 서비스 이름이 표시됩니다. 이 포트를 자유롭게 사용할 수 있고 이 포트에서 서버가 통신할 필요가 없는 경우 이름을 다시 작성할 수 있습니다.
- 이름 필드에 정의된 포트를 포함한 서비스의 이름을 추가합니다.
설정을 확인하려면 방화벽 페이지로 이동하여 영역의 서비스 목록에서 서비스를 찾습니다.