🚀 from error to study/Server

[Linux] 방화벽(firewall) 확인 및 실행/종료(firewalld)

천재강쥐 2024. 7. 15. 14:54

 

 

 

🔥 포스팅 계기

 

방화벽 상태를 확인하고 실행/종료해 보는 좋은 경험을 해서 잊어버리기 전에 기록

 

 

 

 

📍 방화벽(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.

 

 

 

 

 

 

👉🏻 다른 것도 조금 더 건드려 보고 싶지만,, 함부로 이것저것 테스트 해 볼 수가 없다