포트는 운영 체제 내에서 네트워크 연결이 시작되고 끝나는 가상 장소입니다. 포트는 컴퓨터가 수신하는 네트워크 트래픽을 정렬하는 데 도움이 됩니다.
이 글을 읽은 후에 다음을 할 수 있습니다:
관련 콘텐츠
인터넷에서 가장 인기 있는 인사이트를 한 달에 한 번 정리하는 Cloudflare의 월간 요약본 theNET를 구독하세요!
글 링크 복사
포트는 네트워크 연결이 시작되고 끝나는 가상 지점입니다. 포트는 소프트웨어 기반이며 컴퓨터의 운영 체제에서 관리합니다. 각 포트는 특정 프로세스 또는 서비스와 연결됩니다. 포트를 사용하면 컴퓨터가 서로 다른 종류의 트래픽을 쉽게 구별할 수 있습니다. 예를 들어 이메일은 동일한 인터넷 연결을 통해 컴퓨터에 도달하더라도 웹 페이지와 다른 포트로 이동합니다.
포트는 네트워크에 연결된 모든 장치에서 표준화되며 각 포트에는 번호가 할당됩니다.대부분의 포트는 특정 프로토콜용으로 예약되어 있습니다(예: 모든 하이퍼텍스트 전송 프로토콜(HTTP) 메시지는 포트 80으로 이동합니다).IP 주소를 사용하면 메시지를 특정 장치와 주고받을 수 있지만, 포트 번호를 사용하면 해당 장치 내의 특정 서비스 또는 애플리케이션을 대상으로 지정할 수 있습니다.
아주 다양한 유형의 데이터 흐름이 동일한 네트워크 연결을 통해 컴퓨터와 송수신됩니다. 포트를 사용하면 컴퓨터에서 수신하는 데이터로 수행할 작업을 파악하는 데 도움이 됩니다.
Bob이 파일 전송 프로토콜(FTP)을 사용하여 MP3 오디오 녹음을 Alice에게 전송한다고 가정해 보겠습니다. Alice의 컴퓨터에서 MP3 파일 데이터를 Alice의 이메일 애플리케이션에 전달하면 이메일 애플리케이션은 이를 해석하는 방법을 알지 못합니다. 그러나 Bob의 파일 전송은 FTP용으로 지정된 포트(포트 21)를 사용하므로 Alice의 컴퓨터는 파일을 수신하고 저장할 수 있습니다.
한편, 웹 페이지 파일과 MP3 사운드 파일이 동일한 WiFi 연결을 통해 Alice의 컴퓨터로 가더라도 Alice의 컴퓨터에서는 포트 80을 사용하여 HTTP 웹 페이지를 동시에 로드할 수 있습니다.
OSI 모델은 인터넷 작동 방식에 대한 개념적 모델입니다.OSI 모델에서는 서로 다른 인터넷 서비스와 프로세스가 7개의 계층으로 나뉩니다.이러한 계층은 다음과 같습니다.
포트는 전송 계층(계층 4) 개념입니다.전송 제어 프로토콜(TCP) 또는 사용자 데이터그램 프로토콜(UDP) 등의 전송 프로토콜만 패킷이 이동해야 하는 포트를 나타낼 수 있습니다.TCP 및 UDP 헤더에는 포트 번호를 나타내는 섹션이 있습니다.네트워크 계층 프로토콜(예: 인터넷 프로토콜(IP))은 지정된 네트워크 연결에서 사용 중인 포트를 인식하지 못합니다.표준 IP 헤더에는 데이터 패킷 이 이동해야 하는 포트를 나타내는 위치가 없습니다.IP 헤더에는 대상 IP 주소만 표시되고 해당 IP 주소의 포트 번호는 표시되지 않습니다.
일반적으로 네트워크 계층 프로토콜은 거의 항상 전송 계층 프로토콜과 함께 사용되므로 네트워크 계층에서 포트를 표시할 수 없더라도 네트워킹 프로세스에 영향을 미치지 않습니다. 그러나 이는 인터넷 제어 메시지 프로토콜(ICMP) 패킷을 사용하여 IP 주소를 "ping"하는 소프트웨어인 테스트 소프트웨어의 기능에 영향을 줍니다. ICMP는 네트워크 장치를 ping할 수 있는 네트워크 계층 프로토콜이지만, 특정 포트를 ping하는 기능이 없으면 네트워크 관리자는 해당 장치 내에서 특정 서비스를 테스트할 수 없습니다.
My Traceroute와 같은 일부 ping 소프트웨어는 UDP 패킷을 보내는 옵션을 제공합니다.UDP는 포트를 지정할 수 없는 ICMP와 달리 특정 포트를 지정할 수 있는 전송 계층 프로토콜입니다.네트워크 관리자는 ICMP 패킷에 UDP 헤더를 추가하여 네트워크 장치 내의 특정 포트를 테스트할 수 있습니다.
방화벽은 일련의 보안 규칙에 따라 네트워크 트래픽을 차단하거나 허용하는 네트워크 보안 시스템입니다. 방화벽은 일반적으로 신뢰할 수 있는 네트워크와 신뢰할 수 없는 네트워크 사이에 있습니다. 신뢰할 수 없는 네트워크는 인터넷인 경우가 많습니다. 예를 들어 사무실 네트워크는 종종 방화벽을 사용하여 온라인 위협으로부터 네트워크를 보호합니다.
일부 공격자는 악의적 트래픽을 임의의 포트로 보내려고 시도하여 해당 포트가 "열려 있는" 상태로 유지되어 트래픽을 수신할 수 있기를 바랍니다. 이 행동은 자동차 절도범이 거리를 걸어 다니며 주차된 차량의 문을 점검하면서 그 중 하나가 열려 있기를 바라는 것과 유사합니다. 따라서 사용 가능한 대부분의 포트로 전달되는 네트워크 트래픽을 차단하도록 방화벽을 구성해야 합니다. 사용 가능한 대부분의 포트에서 트래픽을 수신해야 할 정당한 이유는 없습니다.
적절하게 구성된 방화벽에서는 일반적으로 사용되는 것으로 알려진 미리 결정된 포트 몇 개를 제외하고는 기본적으로 모든 포트에 대한 트래픽이 차단됩니다. 예를 들어, 회사 방화벽은 열린 포트 25(이메일), 80(웹 트래픽), 443(웹 트래픽) 등 몇 개만 남겨 둘 수 있으므로 내부 직원이 이러한 필수 서비스를 사용하고 나머지 65,000여 개의 포트를 차단할 수 있습니다.
보다 구체적인 예로, 공격자는 때때로 공격 트래픽을 포트 3389로 전송하여 RDP 프로토콜의 취약점을 이용하려고 시도합니다. 이러한 공격을 차단하기 위해 방화벽에서는 기본적으로 포트 3389를 차단할 수 있습니다. 이 포트는 원격 데스크톱 연결에만 사용되므로 직원이 원격으로 작업해야 하는 경우가 아니면 이러한 규칙은 일상적인 비즈니스 운영에 거의 영향을 미치지 않습니다.
65,535개의 가능한 포트 번호가 있지만, 모두가 일반적으로 사용되는 것은 아닙니다. 관련 네트워킹 프로토콜과 함께 가장 일반적으로 사용되는 포트는 다음과 같습니다.
인터넷 할당 번호 관리 기관(IANA)에서는 할당된 포트 번호 및 프로토콜의 전체 목록을 유지 관리합니다.