개요
firewalld는 시스템의 네트워크 트래픽을 제어하는 데몬으로, 미리 정의된 영역(zone)을 통해 네트워크 인터페이스나 소스 IP 주소에 따라 다른 보안 수준을 적용할 수 있습니다. 이는 복잡한 iptables 규칙을 직접 다루는 대신, 사용자 친화적인 인터페이스를 제공합니다.
주요 특징
- 동적 규칙 관리: 서비스 재시작 없이 규칙 변경 가능
- 영역(Zone) 기반: 네트워크 인터페이스나 소스에 따라 다른 보안 정책 적용
- 서비스 및 포트 관리: 특정 서비스(SSH, HTTP 등)나 포트 개방/차단 용이
- 풍부한 규칙(Rich Rules): 복잡한 조건 기반의 규칙 설정 가능
- IPv4 및 IPv6 지원
주요 옵션
firewalld 데몬 자체를 실행할 때 사용되는 옵션입니다. 대부분의 방화벽 규칙 관리는 firewall-cmd 명령어를 통해 이루어집니다.
데몬 실행 옵션
생성된 명령어:
명령어를 조합해 보세요.
설명:
`firewalld` 명령어를 실행합니다.
위 옵션들을 조합하여 AI와 함께 가상으로 명령어를 실행해 보세요.
사용 예시
firewalld 서비스는 주로 systemctl 명령어를 통해 관리됩니다. 방화벽 규칙 설정은 firewall-cmd 명령어를 사용합니다.
firewalld 서비스 시작
sudo systemctl start firewalld
firewalld 데몬을 시작합니다.
firewalld 서비스 활성화 (부팅 시 자동 시작)
sudo systemctl enable firewalld
시스템 부팅 시 firewalld가 자동으로 시작되도록 설정합니다.
firewalld 서비스 상태 확인
sudo systemctl status firewalld
firewalld 서비스의 현재 상태를 확인합니다.
firewalld 서비스 재시작
sudo systemctl restart firewalld
firewalld 서비스를 재시작합니다.
firewalld 설정 다시 로드 (규칙 변경 후)
sudo firewall-cmd --reload
서비스를 중단하지 않고 방화벽 규칙을 다시 로드하여 적용합니다.
설치
firewalld는 CentOS, Fedora, RHEL 등 많은 Red Hat 계열 리눅스 배포판에 기본으로 포함되어 있습니다. Debian/Ubuntu 계열에서는 수동으로 설치해야 할 수 있습니다.
CentOS/Fedora/RHEL
sudo dnf install firewalld
dnf (또는 yum)를 사용하여 firewalld를 설치합니다.
Debian/Ubuntu
sudo apt install firewalld
apt를 사용하여 firewalld를 설치합니다.
팁 & 주의사항
firewalld를 효과적으로 사용하기 위한 팁과 주의사항입니다.
firewall-cmd 활용
firewalld의 모든 방화벽 규칙 설정 및 관리는 'firewall-cmd' 명령어를 통해 이루어집니다. 예를 들어, 포트 개방, 서비스 추가, 영역 설정 등은 firewall-cmd를 사용해야 합니다.
- 현재 활성화된 영역 확인: `firewall-cmd --get-active-zones`
- 특정 포트 개방 (예: HTTP 80/tcp): `sudo firewall-cmd --zone=public --add-port=80/tcp --permanent`
- 변경 사항 적용: `sudo firewall-cmd --reload`
영구적인 규칙 적용
firewall-cmd로 규칙을 추가할 때 `--permanent` 옵션을 사용해야 시스템 재부팅 후에도 규칙이 유지됩니다. `--permanent` 옵션 사용 후에는 반드시 `firewall-cmd --reload`를 실행하여 변경 사항을 적용해야 합니다.
기본 영역 이해
firewalld는 기본적으로 'public' 영역을 사용하지만, 'home', 'work', 'internal', 'external', 'trusted', 'drop', 'block' 등 다양한 영역을 제공합니다. 각 영역은 다른 보안 수준을 가집니다.
iptables와의 관계
firewalld는 내부적으로 iptables(또는 nftables)를 사용하지만, 직접 iptables 명령어를 사용하는 것보다 추상화된 인터페이스를 제공합니다. firewalld를 사용하는 시스템에서는 iptables 명령어를 직접 조작하는 것을 피하는 것이 좋습니다.