[NET-009][중급] 방화벽 규칙과 네트워크 분리 이해하기 > IT 기술 공유

본문 바로가기
사이트 내 전체검색

IT 기술 공유

[NET-009][중급] 방화벽 규칙과 네트워크 분리 이해하기

페이지 정보

profile_image
작성자 기술팀장
댓글 0건 조회 107회 작성일 26-09-04 05:33

본문

[이번 수업]

방화벽은 네트워크나 컴퓨터 사이의 통신을 정책에 따라 허용하거나 차단하는 장치 또는 프로그램입니다. 실제 설정을 바꾸지 않고 규칙과 네트워크 분리를 안전한 로컬 코드로 익힙니다.

[선수지식]

NET-002의 IP 주소·서브넷과 NET-004의 TCP·UDP·포트를 먼저 이해하면 좋습니다. Python 3로 파일 하나를 실행할 수 있으면 됩니다.

[학습목표]

1. 호스트 방화벽과 네트워크 방화벽의 위치를 구분합니다.
2. 출발지·목적지·프로토콜·포트로 최소 허용 규칙을 설계합니다.
3. 네트워크 분리와 인증을 함께 적용할 이유를 설명합니다.

[핵심개념]

호스트 방화벽은 컴퓨터 한 대에서 통신을 제어하고, 네트워크 방화벽은 서로 다른 구역의 경계에서 통신을 제어합니다. 클라우드 보안 그룹도 비슷하지만 제품마다 상태 추적과 규칙 평가 방식이 달라 공식 문서를 확인해야 합니다.

규칙은 통신 방향, 출발지와 목적지 IP, TCP·UDP 프로토콜, 포트, 연결 상태를 조건으로 가집니다. 안전한 출발점은 들어오는 통신을 기본 차단하고 필요한 흐름만 구체적으로 허용하는 것입니다. 관리망에서 서버의 SSH 포트만 허용하고 데이터베이스 포트는 인터넷에 공개하지 않는 식입니다. 상태 추적 방화벽은 허용된 연결의 응답인지도 기억합니다.

네트워크 분리는 시스템을 역할과 신뢰 수준에 따라 관리망·웹·애플리케이션·데이터 구역처럼 나누는 것입니다. 한 구역이 침해되어도 다른 구역으로 바로 이동하지 못하게 해 피해 범위를 줄입니다. 내부망이라는 이유만으로 신뢰하지 말고 사용자·장치 인증, 서비스 권한, 암호화를 함께 적용합니다.

[따라하기]

다음은 실제 패킷이나 운영체제 설정을 건드리지 않는 규칙 모형입니다. `firewall_demo.py`로 저장합니다.

```python
from ipaddress import ip_address, ip_network

rules = [
    {"source": ip_network("10.10.10.0/24"), "protocol": "tcp", "port": 22},
    {"source": ip_network("10.20.0.0/16"), "protocol": "tcp", "port": 443},
]

tests = [
    ("10.10.10.25", "tcp", 22),
    ("10.10.20.5", "tcp", 22),
    ("10.20.1.7", "tcp", 443),
    ("10.20.1.7", "tcp", 3306),
]

for source, protocol, port in tests:
    allowed = any(
        ip_address(source) in rule["source"]
        and protocol == rule["protocol"]
        and port == rule["port"]
        for rule in rules
    )
    print(source, protocol, port, "ALLOW" if allowed else "DENY")
```

macOS·Linux는 `python3 firewall_demo.py`, Windows PowerShell은 `py firewall_demo.py`로 실행합니다. 결과는 차례대로 `ALLOW`, `DENY`, `ALLOW`, `DENY`입니다. 두 번째 주소는 관리망 밖이고 네 번째 통신은 3306 허용 규칙이 없어 기본 차단됩니다. ipaddress는 주소와 CIDR 네트워크를 계산하는 Python 표준 라이브러리입니다.

[흔한 실수]

`0.0.0.0/0`에 관리 포트를 열거나 끝난 임시 규칙을 남기면 공격 표면이 커집니다. 규칙의 목적·담당자·만료일이 없으면 오래된 예외를 찾기 어렵습니다. 방화벽이 인증이나 패치를 대신하지도 않습니다. 규칙 우선순위는 제품마다 달라 배포 전에 적용 결과를 확인합니다.

[보안 주의]

원격 서버의 방화벽을 즉시 변경하면 관리 연결까지 끊길 수 있습니다. 운영 환경에서는 콘솔 복구 경로, 설정 백업, 승인된 변경 절차를 준비하고 작은 범위에서 먼저 시험합니다. 방화벽을 끄거나 인터넷 전체에 포트를 열어 오류를 우회하지 않습니다. 실습은 본인 소유의 로컬·격리 환경에서만 하며 허가받지 않은 네트워크를 스캔하지 않습니다.

[직접 해볼 과제]

규칙에 `10.30.0.0/24`의 TCP 5432를 허용하는 항목을 추가하고 같은 주소의 UDP 5432는 차단되는지 확인하세요. 규칙의 업무 목적과 제거 조건도 한 줄로 적습니다.

[확인문제]

1. 호스트 방화벽과 네트워크 방화벽은 어디에서 통신을 제어하나요?
2. 기본 차단 정책에서 허용 규칙을 구체적으로 작성해야 하는 이유는 무엇인가요?
3. 네트워크를 분리해도 사용자와 서비스 인증이 필요한 이유는 무엇인가요?

[다음 학습]

NET-010에서는 ping·curl·dig로 이름 해석, 경로, 포트, HTTP 응답을 단계적으로 진단합니다.

[공식 참고 자료]

- NIST SP 800-41 Rev.1 방화벽 정책 지침: https://csrc.nist.gov/pubs/sp/800/41/r1/final
- NIST SP 800-207 제로 트러스트 구조: https://csrc.nist.gov/pubs/sp/800/207/final
- 사설 IPv4 주소 공간 RFC 1918: https://www.rfc-editor.org/rfc/rfc1918.html
- Netfilter nftables 공식 매뉴얼: https://netfilter.org/projects/nftables/manpage.html
- Microsoft Windows 방화벽 개요: https://learn.microsoft.com/en-us/windows/security/operating-system-security/network-security/windows-firewall/

댓글목록

등록된 댓글이 없습니다.

회원로그인

회원가입

사이트 정보

회사명 : 회사명 / 대표 : 대표자명
주소 : OO도 OO시 OO구 OO동 123-45
사업자 등록번호 : 123-45-67890
전화 : 02-123-4567 팩스 : 02-123-4568
통신판매업신고번호 : 제 OO구 - 123호
개인정보관리책임자 : 정보책임자명

접속자집계

오늘
653
어제
5,103
최대
16,772
전체
771,707
Copyright © 소유하신 도메인. All rights reserved.