본문 바로가기

DEVELOP/Network

[Network] Well-known Port & Port Forwarding

반응형

Port

 하나의 컴퓨터에 하나의 서버만 존재하지는 않기 때문에 우리는 어떤 서버와 상호작용 할지를 정해야한다. 이 때 서버를 식별하기 위해서 포트가 필요하다. 포트는 1~65535 까지의 숫자로 표현이 가능하고, 각 포트가 특정 서비스로 할당될 수 있으며 우리는 포트를 통해 원하는 서버에 접근이 가능하다. 클라이언트에서 요청을 했을 때 서버의 OS에서 어떤 포트로 요청이 왔는지 확인한 뒤 해당 포트로 접속을 기다리는 프로세스에 요청 내역을 전달하게 된다.


Port 분류

이름 포트 범위 특징
잘 알려진 포트 (well-known port) 1~1023 이미 잘 알려진 포트들을 말하며, 서버 측에 각 용도 별로 예약되어 동작된다. 루트 권한으로만 포트를 열 수 있다.
등록된 포트 (registered port) 1024~49151 서버 소켓으로 사용
동적 포트 (dynamic port) 49151~65535 접속할 때마다 포트번호가 동적으로 부여되며, 서버 소켓으로 사용이 불가능하다.

Well-known Port

프로토콜 포트 기반 용도
ECHO 7 TCP/UDP 장비 연결을 확인
FTP - DATA 20 TCP 데이터 포트. FTP의 데이터 전송
FTP - CONTROL 21 TCP 제어 포트. FTP의 데이터 전송 제어(PUT, GET 등의 FTP 명령 전송)
SSH 22 TCP 암호화 된 원격 로그인에 사용
TELNET 23 TCP 대화 방식의 원격 명령 라인 세션에 사용된다. 
SMTP 25 TCP 메일 메세지 전송 프로토콜
DNS 53 TCP/UDP DNS 질의 응답(호스트 도메인 이름을 네트워크 주소를 바꾸거나 반대 변환을 수행한다.)
HTTP 80 TCP 웹 전송
HTTPS 443 TCP 암호화된 웹 전송

Port-Forwarding

Port-Mapping이라고도 하며, 말 그대로 포트를 전달해주는 역할을 한다. 공유기를 설치하면 주변에 연결된 컴퓨터들은 공유기로부터 192.168.-로 시작하는 IP들을 부여받는다. 이 때 공유기의 IP가 외부 IP, 컴퓨터들의 IP 내부 IP에 해당한다. 우리가 만약 다른 곳에서 위 컴퓨터들 중 하나로 접속하려 한다면, 우선 공유기부터 접속을 해야할 것이다.

 하지만 공유기에는 하나가 아닌 여러 컴퓨터가 연결되어 있기 때문에, 우리가 공유기로 접속한 것만으로는 어느 컴퓨터로 연결을 해줘야할지 알 수 없다. 이런 경우 요청이 실패하고 접속이 불가능하게 된다. 따라서 우리는 공유기에서 각 컴퓨터들로 가는 이정표를 달아줘야 할 필요가 있고, 이를 Port-Fowarding이라고 한다. 

 


 여기까지 포트와 잘 알려진 포트, 그리고 포트 포워딩의 개념에 대해서 알아봤다. 하지만 정작 스터디에서 질문받았던 Well-known port forwarding은 정확히 어떤 것을 이야기하는 것인지 사실 감이 잘 오지 않았었다. 그런데 다른 스터디원 분께서 보안과 관련된 문제이지 않을까라며 이야기해주셔서(진짜 너무 감사했다!) 다시 서칭하다보니, 이 부분에 대한 내용이 맞는 것 같아 조금 추가해보려 한다.

 

 위에 작성한 개념들을 다시 살펴보면 공적/사설 아이피와 포트들을 가지고 접속을 하고 있음을 확인할 수 있다. 그런데 외부에 노출되는 public한 포트들을 잘 알려진 포트 중에서 설정하게 되면 포트 스캔에 의한 공격에 취약해 보안 상에 문제가 생길 수 있다. 따라서 public한 포트는 private한 포트와 서로 다르도록 포트포워딩 해주는 것이 더 안전할 것이다. 포트 포워딩에 대해서 알아보면서 게이트웨이나 NAT 등에 대해서도 나왔었는데, 나중에 컴퓨터 네트워크를 다시 한번 쭉 복습해봐야 할 것 같다. 

 


Reference

 

 

포트(PORT), 잘 알려진 포트 (well-known port) 목록

● 포트 (PORT) 포트란 일종의 "논리적인 접속 장소" 이다. 컴퓨터는 동시에 하나 이상의 프로그램을 ...

blog.naver.com

 

포트 포워딩(port forwarding) - 생활코딩

수업소개 공유기 외부에서 공유기 내부의 컴퓨터에 접속하기 위해서는 공유기의 몇번 포트에 접속한 정보를 공유기 내의 어떤 아이피의 몇번 포트로 연결해줄 것인지를 공유기에게 알려줘야

opentutorials.org

 

포트포워딩(Port-Forwarding) 이란?

Port Forwarding 공유기를 사용하면 한번씩은 들어보고 검색 해봤을만한 단어입니다. 이 포스트는 포트포워딩 설정 방법이 아닌 포트포워딩이 무엇인지에 대해 알아보겠습니다. 우선 사전적 의미

storytown.tistory.com

 

반응형

'DEVELOP > Network' 카테고리의 다른 글

[Network] Stateful vs Stateless  (0) 2021.06.20