firewalld
firewalld는 방화벽(firewall) + 데몬(deamon)의 합성어로, 주로 RHEL1 기반의 운영체제에서 기본적으로 채용하고 있는 방화벽 소프트웨어다. firewalld의 주요 특징은 다음과 같다.
- 동적 방화벽 관리: 서비스 중단 없이 규칙을 변경 가능
- 존(Zone) 개념 지원: 네트워크 인터페이스별로 다른 보안 수준을 적용 가능
- 서비스 기반 규칙 설정: 특정 포트가 아닌 서비스 단위로 방화벽 규칙 적용 가능
- D-Bus API 지원: GUI 및 명령줄 도구를 통해 쉽게 관리 가능
동적 방화벽 관리 및 유연한 보안 수준 적용이 가능하며 iptables에 비해 설정이 쉽다보니 다양한 리눅스 배포판에서 지원하고 있다. 특히 서버로 많이 사용되는 RHEL 기반의 운영체제를 사용한다면 firewalld의 사용법을 숙지해 두는 것이 좋다.
Zone(영역)이란?
firewalld에서 Zone(이하 영역)은 네트워크 인터페이스와 연결된 신뢰 수준을 정의하는 역할을 한다. 각 영역은 특정한 보안 정책을 가지며, 네트워크 인터페이스에 맞춰 적절한 영역을 설정할 수 있다. 예를들어 외부에 공개된 네트워크의 경우에는 최소한의 접근만 허용하거나 아웃바운드 트래픽만 허용하는 영역으로 설정한다거나, 신뢰할 수 있는 내부 네트워크를 사용하는 경우에는 모든 트래픽을 허용하는 영역으로 설정하는 방식으로 여러 개의 네트워크 인터페이스에 서로 다른 방화벽 규칙을 간편하게 적용할 수 있다. firewalld에서 기본적으로 생성되어 있는 영역의 종류는 다음과 같다.
영역 명 | 네트워크 위치 | 설명 |
---|---|---|
drop | 외부 | 모든 인바운드 트래픽을 차단하고 아웃바운드 트래픽만 허용. |
block | 외부 | 모든 인바운드 트래픽을 차단하고 거부 메시지를 반환함. 단, 시스템 내에서 시작된 네트워크 연결은 모두 허용. |
public | 외부 | 최소한의 접근만 허용. (기본 영역) |
external | 외부 | 공유기와 같이 라우터의 마스커레이딩이 활성화 된 외부 네트워크에서 사용. 최소한의 접근만 허용. |
dmz | 외부 | DMZ 영역에서 사용하는 영역. 내부 네트워크에 대한 최소한의 접근만 허용. |
work | 내부 | 업무용 네트워크 영역. 최소한의 접근만 허용. |
home | 내부 | 가정용 네트워크 영역. 최소한의 접근만 허용. |
internal | 내부 | 내부 네트워크 영역. 최소한의 접근만 허용. |
trusted | 내부 | 모든 접근 허용. |
위의 영역은 자주 쓰이는 영역을 프리셋화 한 것이고, 필요에 따라 새로운 영역을 생성할 수도 있다. 또한, 어플리케이션이 설치되는 과정에서 자동으로 영역이 생성되는 경우도 있다. (EX. 도커)
firewalld 기본 명령어
firewalld 상태 확인
현재 firewalld가 동작중인지 확인합니다:
# firewall-cmd --state
방화벽 규칙 즉시 적용 후 저장
변경된 규칙이 있을 경우 즉시 저장하고 적용합니다:
# firewall-cmd --reload
firewalld 영역 관련 명령어
사용 가능한 영역 확인
현재 firewalld에서 사용 가능한 모든 영역을 확인합니다:
# firewall-cmd --get-zones
현재 활성화된 영역 확인
모든 네트워크 인터페이스가 어떤 영역에 존재하는지 확인합니다 (사용되지 않는 영역은 표시되지 않음):
# firewall-cmd --get-active-zones
기본 영역 확인
지정된 기본 영역을 확인합니다:
# firewall-cmd --get-default-zone
특정 영역의 설정 확인
지정한 영역의 상세 설정을 확인합니다 (지정된 영역이 없는 경우 기본 영역의 상세 설정이 표시됨):
# firewall-cmd --zone=public --list-all
특정 인터페이스의 영역 설정 확인
지정한 인터페이스의 영역을 조회합니다.
# firewall-cmd --get-zone-of-interface=eth0
기본 영역 변경
지정한 영역을 기본 영역으로 변경합니다.
# firewall-cmd --set-default-zone=internal
특정 인터페이스의 영역 변경
지정한 인터페이스의 영역을 지정한 영역으로 변경합니다. --permanent
옵션을 사용하면 영구적으로 변경합니다.
# firewall-cmd --zone=internal --change-interface=eth1 --permanent
1. RHEL 7 이상만 해당한다.
No Comments