🔥 포스팅 계기
방화벽 상태를 확인하고 실행/종료해 보는 좋은 경험을 해서 잊어버리기 전에 기록
📍 방화벽(firewall)
👉🏻 외부에서 시스템으로 접근하는 패킷을 차단하는 서비스
👉🏻 폐쇄망으로 설정하지 않더라도 지정된 규칙에 의해 패킷의 송/수신을 허용하거나 차단하는 필터링이 가능해짐
📍 방화벽 관리 도구
👉🏻 CentOS 6.x 버전까지는 Netfilter의 관리 인터페이스가 iptables로 사용됨
👉🏻 CentOS 7.x 버전부터는 Netfilter의 관리 인터페이스가 firewalld 로 변경
iptables | firewalld | |
설정의 변경 | - 설정 변경 시 적용을 위해 서비스를 재시작해야하며 이 과정에서 네트워크가 순간적으로 끊김 - 설정 변경 시 기존 규칙을 모두 버리고 새로 불러옴 |
- 네트워크 통신을 중단하지 않고 규칙 설정 가능 - 설정 변경 시 추가/변경된 규칙만 불러옴 |
설정 난이도 | - TCP/IP의 구조를 잘 알지 못하면 설정이 어렵고 명령 옵션이 복잡함 | - 비교적 쉽게 설정 가능 |
유연성 | - 임시로 규칙 설정 등은 불가 | - 임시로 사용할 규칙과 지속적으로 사용할 규칙을 각각 관리할 수 있음 - 예를 들면 일정 시간만 사용 규칙 등 |
📍 firewalld zone
👉🏻 방화벽 규칙을 9개의 용도별 zone을 통해 설정 가능함
👉🏻 각 zone은 /etc/firewalld/zones/ 경로 내 .xml 파일로 생성하여 사용
zone | 설명 |
Drop 존 | Iptables에서 사용하던 Drop과 동일하며 들어오는 모든 패킷은 버려지고 이에대한 응답 메시지도 보내지 않으며 외부로 나가는 연결만 허용된다. |
Block 존 | Drop 존처럼 들어오는 모든 네트워크 연결은 거부된다. 다만 icmp-host-prohibited와 icmp6-prohibited라는 응답 메시지를 보낸다. 시스템 내부에서 시작된 연결은 허용된다. |
Public 존 | 서비스를 제공하는 특별한 포트로의 연결만 허용하고, 그 외 포트로의 연결은 모두 거부된다. |
External 존 | 기본 Zone으로 사용된다. |
DMZ 존 | 특별히 매스커레이딩 규칙이 적용되는 외부의 라우터를 위해 사용되며, 내부로의 연결 요청 중 선택된 연결만을 허용한다. (내부로 들어오는 패킷을 SSH만 제외하고 거부, 외부는 모두 허용) |
Work 존 | 내부 네트워크로의 접근은 제한적으로 허용되지만, 공개된 네트워크에 대한 접근을 허용하는 경우에 사용된다. 선택된 연결만이 허용된다. |
Home 존 | 같은 회사에 위치한 네트워크를 위해 사용되며, 대부분 같은 네트워크에 위치한 다른 시스템을 신뢰하고 오직 선택된 연결만을 허용한다. |
Internal 존 | Home 존 홈 영역을 위해 사용되며, 네트워크에 존재하는 다른 시스템을 신뢰하고 오직 선택된 연결만을 접속 허용한다. 내부 네트워크를 위해 사용되고, 선택된 연결만을 허용한다. |
Trusted 존 | 모든 네트워크 접속 연결을 허용하는 경우 사용한다. |
📍 firewalld 기본 명령어 확인
// firewalld 서비스 비활성화
$ systemctl disables firewalld
// firewalld 서비스 활성화
$ systemctl enable firewalld
// firewalld 서비스 중지
$ systemctl stop firewalld
// firewalld 서비스 시작
$ systemctl start firewalld
// firewalld 서비스 재시작
$ systemctl restart firewalld
// firewalld 서비스 상태 확인
$ systemctl status firewalld
👉🏻 방화벽 중지 상태
[root@~~~]$ systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
Active: inactive (dead)
Docs: man:firewalld(1)
👉🏻 방화벽 실행 상태
[root@~~~]# systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
Active: active (running) since 월 2024-07-15 14:47:59 KST; 10s ago
Docs: man:firewalld(1)
Main PID: 1908 (firewalld)
Tasks: 2
CGroup: /system.slice/firewalld.service
└─1908 /usr/bin/python2 -Es /usr/sbin/firewalld --nofork --nopid
7월 15 14:47:58 계정 systemd[1]: Starting firewalld - dynamic firewall daemon...
7월 15 14:47:59 계정 systemd[1]: Started firewalld - dynamic firewall daemon.
7월 15 14:47:59 계정 firewalld[1908]: WARNING: AllowZoneDrifting is enabled. This is considered an in...now.
Hint: Some lines were ellipsized, use -l to show in full.
👉🏻 다른 것도 조금 더 건드려 보고 싶지만,, 함부로 이것저것 테스트 해 볼 수가 없다