방화벽에서 매번 포트 설정만 열고 닫았는데, 수석님이 새로 설정하신 것에 rich rules가 있어서 이번 기회에 간단히 학습해 보았다.
Rich Rules 란
- firewalld에서 고급 방화벽 규칙을 설정할 수 있도록 도와주는 방식
- 리눅스에서 방화벽 설정을 할 때, 가장 많이 쓰는 명령어 중 하나가 firewall-cmd다. 보통 아래처럼 단순한 규칙만으로 포트를 열거나 닫을 수 있다.
sudo firewall-cmd --zone=public --add-port=8080/tcp --permanent
- 하지만 때로는, 특정 IP에 대해서만 포트를 열거나, 로그를 남기거나, 포트포워딩을 적용하는 등 복잡한 조건을 걸어야 할 경우도 있다. 이럴 때 사용하는 것이 바로 rich rule.
왜 Rich Rule을 사용할까?
- 기본 규칙만으로는 다음과 같은 상황을 처리할 수 없다.
- 보안 강화를 위해 특정 IP 또는 서브넷만 허용하고 싶을 때
- 불필요한 접근을 차단하면서도 특정 요청만 허용할 때
- 로그를 남기면서 트래픽을 허용하거나 거부하고 싶을 때
- 포트포워딩이나 마스커레이딩 설정이 필요할 때
- 이런 복잡한 방화벽 정책이 필요할 때 Rich Rule을 사용하면 된다. 이름 그대로 더 풍부한 조건(Rich)을 표현할 수 있는 규칙.
Rich Rule 기본 문법
firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.0.100" port protocol="tcp" port="22" accept'
- family : IPv4인지 IPv6인지
- source : 어떤 IP에서 오는 트래픽인지
- port : 어떤 포트인지
- protocol : TCP or UDP
- accept / reject / drop : 허용 / 거부 / 무시
예시
# 현재 설정된 rich rule 확인
sudo firewall-cmd --zone=public --list-rich-rules
# rich rule 삭제
sudo firewall-cmd --permanent --zone=public \
--remove-rich-rule='rule family="ipv4" source address="203.0.113.10" port port=22 protocol=tcp accept'
# 203.0.113.10 에게만 22번 포트 허용 (SSH) - 특정 IP만 포트 허용
sudo firewall-cmd --permanent --zone=public \
--add-rich-rule='rule family="ipv4" source address="203.0.113.10" port protocol="tcp" port="22" accept'
# 203.0.113.20 의 모든 트래픽 무시(drop) - 특정 IP 차단
sudo firewall-cmd --permanent --zone=public \
--add-rich-rule='rule family="ipv4" source address="203.0.113.20" drop'
주의할 점
- 기본 규칙과 충돌 여부 확인
- 일반 --add-port 설정과 rich rule이 동일 포트에 적용될 경우, 우선순위 문제로 의도와 다르게 작동할 수 있음.
- 클라우드 방화벽과 중복 설정 주의
- AWS EC2, Oracle Cloud 등에서는 보안 그룹(Security Group) 설정이 이중으로 적용될 수 있음.
- 예 : EC2에서 22 포트를 닫았는데, 서버 내부 firewalld에서 열려 있어도 접근 불가.
- 로그를 남길 땐 level 설정도 함께
- level="info" 외에도 notice, warning, debug 등 사용 가능. 로깅 정책에 따라 다르게 설정 가능.
'Today I Learned > Linux' 카테고리의 다른 글
[Security] HttpFirewall (1) | 2025.07.11 |
---|---|
[Linux] Rich Rules - service name (0) | 2025.06.27 |
[Linux] Linux에서 사용되는 대표적인 방화벽 종류 (0) | 2025.02.27 |