📌 Firewalld 상태 확인 및 관리
sudo systemctl status firewalld
- active (running)이면 동작 중
- inactive (dead)이면 정지 상태
📌 Firewalld 시작 및 종료
sudo systemctl start firewalld # 방화벽 시작
sudo systemctl stop firewalld # 방화벽 정지
sudo systemctl restart firewalld # 방화벽 재시작
sudo systemctl enable firewalld # 부팅 시 자동 시작 설정
sudo systemctl disable firewalld # 부팅 시 자동 시작 해제
📌 방화벽 규칙 설정 및 관리
sudo firewall-cmd --list-all
- 현재 활성화된 방화벽 영역(zone)과 적용된 규칙을 확인할 수 있음.
📌 방화벽 영역(Zone) 확인
sudo firewall-cmd --get-active-zones
📌 방화벽 영역(Zone) 디폴트 존 변경
# 디폴트 존 변경.
sudo firewall-cmd --set-default-zone=block
# 특정 인터페이스 block 존에 바인딩.
sudo firewall-cmd --zone=block --change-interface="인터페이스이름"
# 변경 사항 영구 적용.
sudo firewall-cmd --runtime-to-permanent
📌 특정 포트 허용
sudo firewall-cmd --zone=public --add-port=8080/tcp --permanent
- — zone=public: public 영역에 적용
- — add-port=8080/tcp: 8080 포트의 TCP 트래픽 허용
- — permanent: 영구 적용 (재부팅해도 유지됨)
📌 즉시 적용하려면 방화벽 다시 로드
sudo firewall-cmd --reload
📌 특정 서비스 허용
Firewalld는 서비스 단위로 접근을 제어할 수 있음. 예를 들어, SSH(22번 포트)를 허용하려면:
sudo firewall-cmd --zone=public --add-service=ssh --permanent
sudo firewall-cmd --reload
서비스 목록 확인
sudo firewall-cmd --get-services
포트 차단
sudo firewall-cmd --zone=public --remove-port=8080/tcp --permanent
sudo firewall-cmd --reload
서비스 차단
sudo firewall-cmd --zone=public --remove-service=http --permanent
sudo firewall-cmd --reload
➡️ Example
Block 존 ➡️ ipv4로 내가 열고 싶은 IP/32, Port, TCP 열려면..
sudo firewall-cmd --zone=block --add-rich-rule='rule family="ipv4" source address="IP/32" port port="port번호" protocol="tcp" accept' --permanent