Network & Server
[Network] SSH tunneling vs SSH port forwarding
스파이디웹
2023. 1. 19. 11:15
728x90
포트 포워딩과 터널링을 같은 말로 인식되는 경우가 제법 있는데, 둘의 차이를 정리해 보겠습니다.
1. SSH Tunneling
- SSH 프로토콜 연결을 통해 생성된 암호화된 터널로 구성
- 암호화된 채널을 통해 네트워크를 통해 암호화되지 않은 트래픽을 전송하는 데 사용
- 예를 들어, SSH 터널을 사용하여 FTP 프로토콜 자체가 암호화되지 않은 경우에도 FTP 서버와 클라이언트 간에 파일을 안전하게 전송할 수 있음
- 특정 인터넷 서비스를 금지하거나 필터링하는 방화벽을 우회하는 수단을 제공
- 사용자가 다른 유형의 서버(HTTP 등)에 도달하기 위해 시스템의 로컬 호스트에 트래픽을 전달할 수 있는 서버로 터널링(일반적으로 이 작업을 수행하는 것은 일종의 터널링 또는 액세스 서버(예: SSH 서버, VPN 서버 등))
SSH 터널링은 '프록시' 와 비슷한 역할을 하며, SSH의 특징 상 SSH 터널링을 통해 전달되는 데이터는 모두 암호화 됨
* 터널링 실습(EMR 띄운 후 마스터 노드 터널링)
ssh -i pem키위치\~~.pem -N -L [호스트pc에서 입력할 포트]:[master node의 public DNS]:[마스터 노드 내 접근할 프로세스의 포트번호] hadoop@[master node의 public DNS]
https://spidyweb.tistory.com/313
2. Port Forwarding
- 일반적으로 허용된 포트에서 트래픽을 수신한 다음 대상 주소를 구성된 매핑된 IP 주소로 수정하고, 이를 기록하여 발신 트래픽을 다시 올바르게 라우팅할 수 있음
- 간단히 말해서 포트 포워딩(Port Forwarding)은 라우터에 연결된 컴퓨터 또는 네트워크 장치를 로컬 네트워크 외부에서 다른 컴퓨터 및 네트워크 장치에 액세스할 수 있도록 구성하는 프로세스
3. Tunneling vs Port Forwarding
한 프로토콜의 PDU를 다른 프로토콜로 wrapping하지 않으므로 터널링과 동의어가 아님
일반적으로 한 프로토콜의 PDU를 다른 프로토콜로 캡슐화하려는 유일한 이유는 일반적으로 보안상의 이유로 이 프로토콜을 숨기거나 보호하는 것
포트 포워딩은 네트워크 패킷 엔벨로프에서 사용 가능한 데이터만 사용하여 수행할 수 있습니다. 터널링을 수행하려면 패킷 내부의 데이터를 검사해야 합니다(적어도 터널을 설정하려면).
포트 포워딩은 규칙과 일치하는 모든 데이터가 포워딩된다는 의미에서 '포워딩'입니다. 터널은 상태 저장이며 네트워크 프로토콜 외부에서 제어되며, 한 패킷의 데이터는 다른 패킷의 데이터와 관련이 있거나 종속되어 있습니다.
결과적으로 포트 포워딩은 저스펙 네트워크 기어에 의해 수행될 수 있으며, 수신 포트/호스트 조합을 검사하고 엔벨로프를 다시 작성하고 패킷을 다른 곳으로 리디렉션하는 것이 전부이다. 터널링은 스트림에 논리를 추가해야 하며, 더 무거운 부하와 그것을 실행하기 위한 더 강력한 시스템을 의미한다
728x90