반응형
1. firewalld 기본 개념
firewalld는 CentOS, RHEL, Fedora 등에서 동적인 방화벽 관리를 위한 서비스입니다. iptables와 비교하여 존(zone) 개념을 사용하여 더 유연한 방화벽 정책을 적용할 수 있습니다.
(1) Zone(존) 개념
각 네트워크 인터페이스는 특정 Zone(보안 영역) 에 할당되며, 각 존마다 다른 방화벽 규칙을 적용할 수 있습니다.

2. Firewalld 상태 확인
# firewall-cmd --state
- running이면 Firewalld 활성화 상태
# systemctl status firewalld
- Firewalld 서비스 상태 확인
3. Firewalld 활성화 및 비활성화
# systemctl enable firewalld # 부팅 시 자동 실행
# systemctl disable firewalld # 부팅 시 실행 안 함
# systemctl start firewalld # Firewalld 시작
# systemctl stop firewalld # Firewalld 중지
# systemctl restart firewalld # Firewalld 재시작
4. Firewalld 기본 설정
(1) 현재 사용 중인 Zone 확인
# firewall-cmd --get-active-zones
(2) 기본 Zone 확인
# firewall-cmd --get-default-zone
(3) 기본 Zone 변경
# firewall-cmd --set-default-zone=public
5. 서비스 및 포트 관리
(1) 특정 서비스 허용
# firewall-cmd --permanent --add-service=http
# firewall-cmd --permanent --add-service=https
- HTTP(80) 및 HTTPS(443) 서비스 허용
(2) 특정 서비스 차단
# firewall-cmd --permanent --remove-service=http
- HTTP 서비스 차단
6. 특정 포트 관리
(1) 포트 허용
# firewall-cmd --permanent --add-port=8080/tcp
# firewall-cmd --permanent --add-port=3306/tcp
- 8080 포트(TCP) 및 MySQL 3306 포트(TCP) 허용
(2) 포트 차단
# firewall-cmd --permanent --remove-port=8080/tcp
- 8080 포트 차단
7. 특정 IP에서의 접근 허용 및 차단
(1) 특정 IP에서 SSH(22번 포트) 허용
# firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.100" port port="22" protocol="tcp" accept'
- 192.168.1.100 IP에서 SSH 접근 허용
(2) 특정 IP에서 HTTP 차단
# firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.200" service name="http" drop'
- 192.168.1.200 IP에서 HTTP 접근 차단
8. 특정 Zone(보안 영역) 설정
(1) 특정 인터페이스를 public 존에 추가
# firewall-cmd --permanent --zone=public --add-interface=eth0
(2) 특정 Zone의 서비스 확인
# firewall-cmd --zone=public --list-services
9. Firewalld 규칙 적용 및 확인
(1) 방화벽 규칙 즉시 적용
# firewall-cmd --reload
(2) 현재 설정된 방화벽 규칙 확인
# firewall-cmd --list-all
10. Firewalld 초기화 (모든 규칙 초기화)
# firewall-cmd --complete-reload
- 모든 방화벽 설정을 초기화하고 기본 설정으로 되돌림
📌 직접 수정 후 적용하는 방법
- 설정 파일 수정
- <port protocol="tcp" port="8080"/> 또는 <service name="http"/> 같은 항목을 추가 또는 수정.
# vi /etc/firewalld/zones/public.xml
- <port protocol="tcp" port="8080"/> 또는 <service name="http"/> 같은 항목을 추가 또는 수정.
- 방화벽 리로드
- 변경 사항을 적용.
# firewall-cmd --reload
- 변경 사항을 적용.
- 설정 확인
- 방화벽 규칙이 제대로 반영되었는지 확인.
-
# firewall-cmd --list-all
- 방화벽 규칙이 제대로 반영되었는지 확인.

⚠ 주의할 점
- 직접 수정하면 firewall-cmd 명령어로 추가한 규칙과 일관성이 깨질 수 있음.
- firewall-cmd --reload는 현재 적용된 설정을 재적용할 뿐 초기화는 하지 않음.
- 최선의 방법은 firewall-cmd --permanent 옵션을 사용하는 것!
# firewall-cmd --permanent --add-port=8080/tcp # firewall-cmd --reload
이 방식이 더 안전하고 일관된 방법입니다. 하지만 수동 수정도 가능합니다! 🚀
🔥 Firewalld 요약
명령어설명
firewall-cmd --state | Firewalld 실행 상태 확인 |
firewall-cmd --get-default-zone | 기본 Zone 확인 |
firewall-cmd --set-default-zone=public | 기본 Zone 변경 |
firewall-cmd --permanent --add-service=http | HTTP 서비스 허용 |
firewall-cmd --permanent --add-port=8080/tcp | 8080 포트 허용 |
firewall-cmd --permanent --add-rich-rule=… | 특정 IP의 접근 제어 |
firewall-cmd --reload | 방화벽 설정 적용 |
firewall-cmd --list-all | 현재 방화벽 설정 확인 |
firewall-cmd --complete-reload | 모든 방화벽 규칙 초기화 |
위 명령어들을 활용하여 Firewalld 방화벽을 효율적으로 설정하고 관리할 수 있습니다! 🚀
반응형
'IT > 리눅스' 카테고리의 다른 글
Redhat계열 네트워크 팀(Bonding) 구성 (0) | 2025.02.15 |
---|---|
Redhat계열 네트워크 팀(Teaming) 구성 (0) | 2025.02.15 |
Ubuntu UFW (Uncomplicated Firewall) 방화벽 설정 및 관리 (0) | 2025.02.15 |
리눅스 성능 모니터링 (iostat, vmstat 명령어 정리) (0) | 2025.02.15 |
리눅스의 스토리지 MULTIPATH 설정 방법 (0) | 2025.02.15 |