PromleeBlog
sitemapaboutMe

posting thumbnail
방화벽과 NAT 네트워크 보안의 첫걸음 - 코딩과 함께 배우는 네트워크 9일차
Firewall and NAT First Steps in Network Security - Learning Network with Coding Day 9

📅

🚀

들어가기 전에🔗

지난 시간에는 데이터를 올바른 길로 안내하는 네트워크 장비들(라우터, 스위치, 허브)에 대해 배웠습니다.
오늘은 우리 집 문을 지키는 든든한 경비원처럼, 외부의 위험으로부터 우리 네트워크를 보호하는 첫 번째 방어선, 바로
방화벽(Firewall)
과 내부 네트워크의 주소를 효율적으로 관리하고 보안을 강화하는 데 도움을 주는
NAT(Network Address Translation)
에 대해 알아보겠습니다.
이 두 가지 기술은 안전한 인터넷 사용과 네트워크 관리에 있어 매우 중요한 역할을 합니다.

🚀

방화벽 (Firewall)🔗

방화벽은 미리 정해진 보안 규칙(정책)에 따라 네트워크를 통해 들어오고 나가는 데이터 트래픽을 감시하고 제어하는 시스템입니다.
쉽게 말해, 허가되지 않은 접근이나 악의적인 트래픽이 우리 네트워크(예: 집이나 회사의 내부 네트워크)로 들어오거나, 중요한 정보가 밖으로 새어나가지 않도록 막아주는
디지털 문지기
와 같습니다.

방화벽은 외부의 해킹 공격, 악성 코드 감염, 정보 유출 등 다양한 위협으로부터 내부 네트워크와 시스템을 보호하는 데 핵심적인 역할을 합니다.
이미지 제안: 성벽 그림. 성벽의 문(방화벽)에서 검문소 직원이 들어오고 나가는 마차(데이터 패킷)를 검사하며 허가된 마차만 통과시키는 모습. "통과!", "정지!" 말풍선 포함.
네트워크의 성벽, 방화벽
네트워크의 성벽, 방화벽

방화벽은 어떻게 동작할까요?🔗

방화벽은 주로 다음과 같은 정보를 기반으로 트래픽을 허용하거나 차단합니다.
이러한 규칙들은 정책 기반(Policy-based)으로 설정되며, 기본적으로
모든 것을 차단하고, 필요한 것만 허용한다
(Deny All, Permit by Exception) 또는
모든 것을 허용하고, 불필요한 것만 차단한다
(Permit All, Deny by Exception)는 두 가지 기본 전략 중 하나를 따릅니다.
(보안을 위해서는 전자가 더 권장됩니다.)

방화벽의 종류🔗

방화벽은 구현 방식이나 위치, 기능에 따라 다양하게 분류될 수 있습니다.

🚀

NAT (Network Address Translation)🔗

NAT는 'Network Address Translation'의 줄임말로, 네트워크 주소를 변환하는 기술입니다.
주된 목적은 하나의 공인 IP 주소(인터넷에서 유일하게 식별되는 주소)를 사용하여 여러 대의 컴퓨터가 있는 내부 사설 네트워크(예: 우리 집 공유기에 연결된 기기들)에서 인터넷에 접속할 수 있도록 하는 것입니다.

IPv4 주소가 부족해지면서 NAT 기술은 더욱 중요해졌습니다.
또한, 내부 네트워크의 IP 주소를 외부로부터 숨기는 부수적인 보안 효과도 제공합니다.
NAT 흐름도
NAT 흐름도

NAT는 왜 필요하고 어떻게 동작할까요?🔗

동작 원리
  1. 내부 네트워크의 컴퓨터(사설 IP 주소: 예 192.168.1.100)가 외부 인터넷으로 데이터를 보낼 때, NAT 장비(주로 공유기)는 출발지 IP 주소를 자신의 공인 IP 주소(예: 203.0.113.10)와 특정 포트 번호로 변경하여 외부로 보냅니다.
  2. 외부 서버로부터 응답이 돌아오면, NAT 장비는 이전에 기록해둔 포트 번호 매핑 정보를 보고 원래 요청을 보냈던 내부 컴퓨터(192.168.1.100)에게 데이터를 정확히 전달해줍니다.

NAT의 유형🔗


🚀

포트 포워딩 (Port Forwarding)🔗

기본적으로 NAT 환경에서는 외부에서 내부 네트워크의 특정 장치로 먼저 접속을 시작하는 것이 어렵습니다. (NAT 장비가 막기 때문)
하지만 내부 네트워크에 웹 서버나 게임 서버 등을 운영하고 외부에서 접속할 수 있게 하려면 어떻게 해야 할까요? 이때 사용하는 것이 바로
포트 포워딩
입니다.

포트 포워딩은 NAT 장비(공유기)의 특정 포트로 들어오는 외부 요청을 내부 네트워크의 특정 사설 IP 주소와 포트 번호로 전달(포워딩)해주는 설정입니다.
예를 들어, 공유기의 공인 IP 주소의 8080번 포트로 들어오는 요청을 내부 웹 서버(사설 IP: 192.168.1.50)의 80번 포트로 연결해줄 수 있습니다.

포트 포워딩의 보안 이슈🔗

포트 포워딩은 편리하지만, 특정 포트를 외부로 개방하는 것이므로 보안에 신경 써야 합니다.

🚀

결론🔗

오늘은 우리 네트워크를 안전하게 지키는 방화벽과, IP 주소를 효율적으로 사용하고 내부망을 보호하는 NAT에 대해 알아보았습니다.
방화벽은 정해진 규칙에 따라 네트워크 트래픽을 감시하고 제어하는 문지기 역할을 하며, 다양한 종류와 동작 방식을 가지고 있습니다.
NAT는 사설 IP 주소를 공인 IP 주소로 변환하여 여러 장치가 인터넷을 사용할 수 있게 하고, 포트 포워딩을 통해 외부에서 내부 서비스에 접근할 길을 열어주기도 합니다.

이러한 보안 기술들은 완벽한 방패가 될 수는 없지만, 안전한 네트워크 환경을 구축하기 위한 첫걸음이자 필수 요소입니다.
개발자로서 이러한 보안 개념을 이해하는 것은 자신이 만드는 서비스의 안전성을 높이는 데 기여할 수 있습니다.
다음 시간에는 네트워크 문제를 진단하고 분석하는 데 유용한 도구인 Wireshark를 활용한 패킷 캡처와 분석에 대해 알아보겠습니다.

참고🔗