본문 바로가기
OS/Linux

CentOS 방화벽 Zone의 종류와 세부 정보 분석하기

by Dev_카페인 2024. 6. 28.
반응형

CentOS 방화벽 Zone의 종류와 세부 정보 분석하기

CentOS에서 firewalld를 사용하여 방화벽을 설정할 때, Zone 개념을 이해하고 적절하게 사용하는 것은 매우 중요합니다. Zone은 네트워크 인터페이스와 IP 주소에 대해 서로 다른 보안 수준을 제공하며, 각 Zone에는 특정한 규칙이 적용됩니다. 이 블로그 포스트에서는 방화벽 Zone의 종류와 각 Zone의 세부 정보를 분석하는 방법을 설명하겠습니다.

1. 방화벽 Zone의 기본 개념

Zone은 네트워크 연결에 대한 다양한 신뢰 수준을 나타내며, 각 Zone에는 서로 다른 규칙과 서비스가 허용됩니다. firewalld는 다음과 같은 기본 Zone을 제공합니다:

  • drop: 모든 수신 연결이 차단됩니다. 응답이 전혀 없고 패킷이 무시됩니다.
  • block: 모든 수신 연결이 차단됩니다. 차단된 연결에는 icmp-host-prohibited 메시지가 반환됩니다.
  • public: 공용 네트워크에서 사용되며, 신뢰할 수 없는 네트워크에 적합합니다. 특정한 수신 연결만 허용됩니다.
  • external: 외부 네트워크와 내부 네트워크 간의 NAT를 사용할 때 적합합니다.
  • dmz: DMZ(비무장 지대)에서 사용되며, 제한된 서비스에만 접근할 수 있도록 설정됩니다.
  • work: 신뢰할 수 있는 작업 네트워크에서 사용됩니다.
  • home: 신뢰할 수 있는 홈 네트워크에서 사용됩니다.
  • internal: 신뢰할 수 있는 내부 네트워크에서 사용됩니다.
  • trusted: 모든 네트워크 연결이 허용됩니다.

 

2. 현재 활성화된 Zone 확인

현재 시스템에서 활성화된 Zone과 인터페이스를 확인할 수 있습니다.

sudo firewall-cmd --get-active-zones

 

 

 

3. Zone의 세부 정보 보기

특정 Zone에 대한 세부 정보를 확인하려면 다음 명령어를 사용합니다. 예를 들어, public Zone의 정보를 확인하려면 다음과 같이 실행합니다.

sudo firewall-cmd --zone=public --list-all
 

이 명령어는 해당 Zone의 설정을 나열합니다. 

 
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: eth0
  sources:
  services: dhcpv6-client ssh
  ports:
  protocols:
  masquerade: no
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules:

 

각 항목의 의미 분석

이제 각 항목이 무엇을 의미하는지 하나씩 분석해보겠습니다.

1. Zone 이름 및 상태

  • public: 현재 Zone의 이름입니다.
  • (active): 이 Zone이 현재 활성화된 상태임을 나타냅니다. 즉, 이 Zone에 할당된 인터페이스가 현재 작동 중입니다.

2. target

  • target: 기본 정책을 정의합니다. 기본값은 default로, 특별한 처리가 없는 경우 기본 정책이 적용됩니다. ACCEPT, REJECT, DROP 중 하나일 수 있습니다.

3. icmp-block-inversion

  • icmp-block-inversion: ICMP(Internet Control Message Protocol) 블록 설정의 반전을 나타냅니다. no는 기본적으로 ICMP 블록이 활성화되지 않았음을 의미합니다.

4. interfaces

  • interfaces: 이 Zone에 할당된 네트워크 인터페이스를 나타냅니다. 여기서는 eth0가 할당되어 있습니다.

5. sources

  • sources: 이 Zone에 적용되는 소스 IP 주소나 네트워크를 나열합니다. 현재 설정에서는 소스가 지정되어 있지 않습니다.

6. services

  • services: 이 Zone에서 허용된 서비스 목록입니다. 여기서는 dhcpv6-client와 ssh 서비스가 허용되어 있습니다. 즉, 이 서비스들은 방화벽에 의해 차단되지 않고 허용됩니다.

7. ports

  • ports: 이 Zone에서 허용된 포트 목록입니다. 현재 설정에서는 특정 포트가 명시되어 있지 않습니다.

8. protocols

  • protocols: 이 Zone에서 허용된 프로토콜 목록입니다. 현재 설정에서는 특정 프로토콜이 명시되어 있지 않습니다.

9. masquerade

  • masquerade: NAT(Network Address Translation) 기능의 사용 여부를 나타냅니다. no는 masquerade가 비활성화되어 있음을 의미합니다.

10. forward-ports

  • forward-ports: 이 Zone에서 설정된 포트 포워딩 목록입니다. 현재 설정에서는 포트 포워딩이 설정되어 있지 않습니다.

11. source-ports

  • source-ports: 특정 소스 포트에 대한 규칙 목록입니다. 현재 설정에서는 소스 포트가 명시되어 있지 않습니다.

12. icmp-blocks

  • icmp-blocks: 차단된 ICMP 메시지 유형 목록입니다. 현재 설정에서는 ICMP 블록이 없습니다.

13. rich rules

  • rich rules: 고급 방화벽 규칙 목록입니다. rich rules는 보다 정교한 방화벽 규칙을 정의할 수 있습니다. 현재 설정에서는 rich rules가 없습니다.

 

4. Zone 설정 변경

인터페이스를 Zone에 추가

특정 인터페이스를 특정 Zone에 추가할 수 있습니다. 예를 들어, eth0 인터페이스를 home Zone에 추가하려면 다음과 같이 실행합니다.

sudo firewall-cmd --zone=home --change-interface=eth0 --permanent
sudo firewall-cmd --reload

서비스 추가

특정 Zone에 서비스(예: HTTP)를 추가하려면 다음 명령어를 사용합니다.

sudo firewall-cmd --zone=public --add-service=http --permanent
sudo firewall-cmd --reload

포트 추가

특정 Zone에 포트를 추가하려면 다음 명령어를 사용합니다. 예를 들어, 8080번 포트를 추가하려면 다음과 같이 실행합니다.

sudo firewall-cmd --zone=public --add-port=8080/tcp --permanent
sudo firewall-cmd --reload

 

5. 고급 설정: Rich Rules

Rich Rules를 사용하면 더 세부적인 방화벽 규칙을 정의할 수 있습니다. 예를 들어, 특정 IP 주소에서의 SSH 접근을 허용하려면 다음과 같이 설정합니다.

 
sudo firewall-cmd --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.1.100" service name="ssh" accept' --permanent
sudo firewall-cmd --reload

 

 

6. Zone 설정 백업 및 복원

방화벽 설정을 백업하고 복원하는 것은 중요한 작업입니다.

설정 백업

sudo firewall-cmd --runtime-to-permanent
sudo cp /etc/firewalld/zones /path/to/backup/ -r

설정 복원

sudo cp /path/to/backup/zones /etc/firewalld/ -r
sudo systemctl restart firewalld

 

 

 

 

 

CentOS에서 firewalld를 사용하여 방화벽 Zone을 설정하고 관리하는 방법을 알아보았습니다. 각 Zone의 개념을 이해하고 적절하게 설정하면 네트워크 보안을 강화할 수 있습니다. 이 가이드를 통해 firewalld의 Zone을 효과적으로 활용하여 보안 정책을 구현할 수 있기를 바랍니다. 추가적으로 고급 설정이나 특정 요구사항이 있는 경우 공식 문서와 커뮤니티 자료를 참고하세요.

반응형