포트 전송

Port forwarding
NAT 라우터를 통한 포트 전송

컴퓨터 네트워킹에서 포트 포워딩 또는 포트 매핑은 패킷이 라우터나 방화벽 등의 네트워크 게이트웨이를 통과할 때 어떤 주소 및 포트 번호 조합에서 다른 주소로 통신 요청을 리디렉션하는 Network Address Translation(NAT; 네트워크주소 변환) 응용 프로그램입니다.이 기술은, 통신의 행선지 IP 주소와 포토 번호를 내부 [1][2]호스트에 재매핑 하는 것으로써, 보호된 네트워크 또는 위장된(내부) 네트워크에 있는 호스트의 서비스를 게이트웨이(외부 네트워크)의 반대측의 호스트에서 사용할 수 있도록 하기 위해서 가장 일반적으로 사용됩니다.

목적

포트 포워딩을 사용하면 리모트컴퓨터(를 들어 인터넷상의 컴퓨터)가 프라이빗 LAN([3]Local-Area Network) 내의 특정 컴퓨터 또는 서비스에 접속할 수 있습니다.

일반적인 가정용 네트워크에서는 노드는 라우터 또는 Network Address Translator(NAT/NAPT; 네트워크주소 변환기)에 연결된 DSL 또는 케이블모뎀을 통해 인터넷에 접속합니다.프라이빗 네트워크상의 호스트는 이더넷스위치에 접속되어 있거나 무선 LAN 경유로 통신하고 있습니다.NAT 디바이스의 외부 인터페이스는 퍼블릭 IP 주소로 설정됩니다.한편, 라우터의 배후에 있는 컴퓨터는, 각각 개인 IP 주소만을 사용해 통신하기 때문에, 인터넷상의 호스트에게는 보이지 않습니다.

포트 포워딩을 설정할 때 네트워크 관리자는 특정 호스트에 있는 개인 네트워크 내의 서비스와의 통신을 배타적으로 사용하기 위해 게이트웨이에 포트 번호를 1개 할당합니다.네트워크 내부 서비스와 통신하려면 외부 호스트가 이 포트 번호와 게이트웨이의 주소를 알아야 합니다.많은 경우 포트 포워딩에 웹 서비스(HTTP)용 포트 번호80 등 기존의 인터넷서비스의 포트 번호가 사용되고 있기 때문에 공통 인터넷서비스가 프라이빗네트워크 내의 호스트에 실장됩니다.

일반적인 응용 프로그램에는 다음이 포함됩니다.

  • 프라이빗 LAN 내에서 퍼블릭HTTP 서버 실행
  • 인터넷에서 프라이빗 LAN 상의 호스트에 대한 시큐어 셸 액세스 허용
  • 인터넷에서 프라이빗 LAN 상의 호스트에 대한 FTP 액세스 허용
  • 프라이빗 LAN 내에서 공개 가능한 게임 서버 실행

관리자는 게이트웨이의 운영 체제에서 포트 포워딩을 구성합니다.Linux 커널에서는 iptables 또는 netfilter 커널 컴포넌트의 패킷필터 규칙에 의해 실현됩니다.Yosemite(OS 10.10) 이전의 BSDMacOS 운영 체제.X) Ipfirewall(ipfw) 모듈에 구현하고 Yosemite로 시작하는 MacOS 운영시스템은 Packet Filter(pf) 모듈에 구현합니다.

게이트웨이 디바이스에서 사용하는 경우, 포토 전송은 행선지 주소와 포토를 변환하는 단일 룰로 실장할 수 있습니다(Linux 커널에서는, 이것은 DNAT 룰입니다).이 경우, 송신원주소와 포토는 변경되지 않습니다.네트워크의 디폴트게이트웨이가 아닌 머신에서 사용하는 경우 소스 주소를 변환 머신의 주소로 변경해야 합니다.변경하지 않으면 패킷은 변환기를 바이패스하여 접속에 실패합니다.

포트 전송이 프록시 프로세스(애플리케이션레이어 방화벽, SOCKS 기반 방화벽, TCP 회선 프록시 등)에 의해 실장되어 있는 경우 패킷은 실제로 변환되지 않고 데이터만 프록시 됩니다.이것에 의해, 통상, 송신원주소(및 포토 번호)가 프록시 머신의 주소로 변경됩니다.

일반적으로 한 번에 한 개인 호스트만 특정 전달 포트를 사용할 수 있지만 구성을 통해 원래 호스트의 소스 주소로 액세스를 구분할 수 있습니다.

Unix 와 같은 operating system 에서는, 1024 보다 작은 포토 번호를 작성할 수 있는 포토 포워딩이 루트 유저로서 동작하는 소프트웨어에서만 사용되는 경우가 있습니다.슈퍼 유저 권한(포트를 바인드 하기 위해서)으로 실행하는 것은, 호스트에 시큐러티 리스크가 되는 일이 있습니다.따라서 포트 포워딩은 번호가 낮은 포트를 다른 번호가 높은 포트로 리다이렉트하기 위해 사용됩니다.이것에 의해, 애플리케이션소프트웨어는, 권한이 삭감된 공통의 operating system 유저로서 실행할 수 있습니다.

Universal Plug and Play Protocol(UPnP)은 가정용 인터넷 게이트웨이에 포트 포워딩 인스턴스를 자동으로 설치하는 기능을 제공합니다.UPnP는 Internet Gateway Device Protocol(IGD)을 정의합니다.IGD는 Internet Gateway Device Protocol(SSDP)을 통해 인터넷게이트웨이가 프라이빗네트워크상에서 자신의 존재를 어드버타이즈 하는 네트워크 서비스입니다.인터넷 기반 서비스를 제공하는 응용 프로그램은 이러한 게이트웨이를 검출하고 UPnP IGD 프로토콜을 사용하여 게이트웨이 상의 포트 번호를 예약하고 게이트웨이가 패킷을 수신 소켓으로 전송할 수 있습니다.

포트 포워딩 유형

포트 포워딩은 로컬, 리모트 및 다이내믹 포트 [4]포워딩의 특정 유형으로 나눌 수 있습니다.

로컬 포트 전송

로컬 포트 포워딩은 포트 포워딩의 가장 일반적인 유형입니다.사용자가 로컬 컴퓨터에서 다른 서버로 연결할 수 있도록 하기 위해 사용됩니다. 즉, Secure Shell(SSH) 클라이언트와 동일한 컴퓨터에서 실행되는 다른 클라이언트 응용 프로그램에서 데이터를 안전하게 전송할 수 있습니다.로컬 포트 전송을 사용하면 특정 웹 페이지를 차단하는 방화벽을 바이패스할 [5]수 있습니다.

SSH 클라이언트로부터의 접속은, SSH 서버를 개입시켜 목적의 행선지 서버에 전송 됩니다.SSH 서버는, 시큐어 터널을 개입시켜 지정된 포토(SSH 클라이언트를 실행하는 호스트의 로컬)로부터 지정된 행선지 호스트 및 포토에 데이터를 리다이렉트 하도록 설정되어 있습니다.로컬 포트가 SSH 클라이언트와 같은 컴퓨터에 있으며 이 포트가 "전송 포트"입니다.같은 컴퓨터상에서, 같은 행선지 호스트 및 포토에 접속하는 클라이언트를, (행선지 호스트 및 포토에 직접 접속하지 않고) 전송 포토에 접속하도록 설정할 수 있습니다.이 접속이 확립되면 SSH 클라이언트는 전송 포트에서 리슨하고 응용 프로그램에서 전송되는 모든 데이터를 안전한 터널을 통해 SSH 서버로 전송합니다.서버는 데이터를 복호화한 후 대상 호스트 [6]및 포트로 리디렉션합니다.

명령줄에서 "-L"은 로컬 포트 포워딩을 지정합니다.행선지 서버와 2 개의 포토 번호를 포함할 필요가 있습니다.1024보다 작거나 49150보다 큰 포트 번호는 시스템용으로 예약되어 있습니다.일부 프로그램은 특정 소스 포트에서만 작동하지만 대부분의 경우 모든 소스 포트 번호를 사용할 수 있습니다.

로컬 포트 포워딩의 몇 가지 용도:

  • 로컬 포트 회송을 사용하여 메일 수신
  • SSH 터널을 사용하여 노트북에서 웹 사이트로 연결합니다.

리모트 포트 전송

이 형식의 포트 포워딩에 의해 Secure Shell(SSH; 시큐어 셸) 접속의 서버측의 애플리케이션이 SSH 클라이언트측의 [8]서비스에 액세스 할 수 있게 됩니다.SSH 외에 리모트포트 포워딩을 사용하는 독자적인 터널링 방식도 있습니다.[9]즉, 리모트 포트 포워딩을 사용하면 사용자는 터널의 서버 측, SSH 또는 다른 쪽에서 터널의 클라이언트 측에 있는 리모트네트워크 서비스에 접속할 수 있습니다.

리모트 포토 전송을 사용하려면 , 행선지 서버의 주소(터널의 클라이언트측)와 2개의 포토 번호를 알고 있을 필요가 있습니다.선택하는 포토 번호는, 사용하는 애플리케이션에 의해서 다릅니다.

리모트 포트 포워딩을 사용하면 다른 컴퓨터가 리모트서버에 호스트 되고 있는 애플리케이션에 액세스 할 수 있습니다.두 가지 예:

  • 회사의 한 직원이 자택에서 FTP 서버를 호스팅하고 직장에서 컴퓨터를 사용하는 직원에게 FTP 서비스에 대한 액세스를 제공하려고 합니다.그러기 위해서, 종업원은 사내 컴퓨터의 SSH 를 개입시켜 리모트 포토 포워딩을 설정할 수 있습니다.FTP 서버의 주소를 입력하고, FTP 의 올바른 포토 번호를 사용합니다(표준 FTP 포토는 TCP/21 입니다).
  • 리모트 데스크톱세션을 여는 것은 리모트포트 포워딩의 일반적인 사용법입니다.SSH 를 사용하면, 가상 네트워크 컴퓨팅 포토(5900)를 열어, [6]행선지 컴퓨터의 주소를 포함할 수 있습니다.

동적 포트 전송

Dynamic Port Forwarding(DPF; 다이내믹 포트 포워딩)은 방화벽 핀홀을 사용하여 방화벽 또는 NAT을 통과하는 온디맨드 방식입니다.그 목적은 클라이언트가 하나 이상의 대상 [11]서버에 데이터를 송수신하기 위한 매개체 역할을 하는 신뢰할 수 있는 서버에 안전하게 연결할 수 있도록 하는 것입니다.

DPF는 SSH 등의 로컬애플리케이션을 SOCKS 프록시 서버로서 셋업하는 것으로 실장할 수 있습니다.SOCKS 프록시 서버는 네트워크 또는 인터넷을 통한 데이터 전송 처리에 사용할 수 있습니다.웹 브라우저 등의 프로그램은 프록시를 통해 트래픽을 전송하도록 개별적으로 구성해야 합니다. 프록시는 다른 서버에 대한 안전한 터널 역할을 합니다.프록시가 더 이상 필요하지 않으면 프로그램을 원래 설정으로 재구성해야 합니다.DPF의 수동 요구 사항 때문에 자주 [6]사용되지 않습니다.

접속이 확립되면 DPF를 사용하여 신뢰할 수 없는 네트워크에 접속된 사용자에게 보안을 강화할 수 있습니다.데이터는 원래 수신처로 전송되기 전에 시큐어 터널을 통과하여 다른 서버로 전송되어야 하므로 사용자는 [12]LAN에서 발생할 수 있는 패킷스니핑으로부터 보호됩니다.

DPF는 다용도의 강력한 도구입니다.예를 들어 커피숍, 호텔, 기타 최소한의 보안 네트워크를 통해 인터넷에 접속한 사용자는 데이터 보호 수단으로 DPF를 사용할 수 있습니다.DPF는 기업 네트워크 등 외부 웹 사이트에 대한 접근을 제한하는 방화벽을 우회하는 데도 사용할 수 있습니다.

「 」를 참조해 주세요.

레퍼런스

  1. ^ "Definition of: port forwarding". PC Magazine. Retrieved 2008-10-11.
  2. ^ Rory Krause. "Using ssh Port Forwarding to Print at Remote Locations". Linux Journal. Retrieved 2008-10-11.
  3. ^ Jeff "Crash" Goldin. "How to set up a home web server". Red Hat. Archived from the original on 2008-10-04. Retrieved 2008-10-11.
  4. ^ OpenSSH 포트 전송
  5. ^ "Local and Remote Port Forwarding and the Reflection for Secure IT Client 7.1 or Higher - Tech Note 2433". Support.attachmate.com. 2012-11-09. Retrieved 2014-01-30.
  6. ^ a b c "SSH/OpenSSH/PortForwarding - Community Ubuntu Documentation". Help.ubuntu.com. 2013-12-13. Retrieved 2014-01-30.
  7. ^ "Example — Using Local Port Forwarding to Receive Mail (System Administration Guide: Security Services)". Docs.oracle.com. Retrieved 2014-01-30.
  8. ^ "Tunneling with Secure Shell - Appendix A: Remote Port Forwarding". Vandyke.com. 2005-06-12. Retrieved 2014-01-30.
  9. ^ "Local versus Remote Port Forwarding". NetworkActiv. Retrieved 8 June 2014.
  10. ^ "FTP Port Number 21 - Port 21 TCP". Compnetworking.about.com. 2013-12-19. Retrieved 2014-01-30.
  11. ^ "DPF Mechanism". Pages.cs.wisc.edu. Retrieved 2014-01-30.
  12. ^ "SSH Dynamic Port Forwarding (Hacking Illustrated Series InfoSec Tutorial Videos)". Irongeek.com. Retrieved 2014-01-30.

외부 링크