터널링 (Tunneling)
: 한 네트워크에서 다른 네트워크로 패킷을 이동시키는 방법
: 캡슐화를 통해 패킷을 다른 패킷 안에 래핑하여 전송
- 패킷 캡슐화
: 헤더 / 페이로드로 구성되는 일반적인 패킷과 달리 원본 패킷의 헤더와 페이로드가 전송 패킷의 페이로드에 포함됨
- 용도
: VPN 등 네트워크 간 효율적이고 안전한 연결을 위한 프로토콜에서 사용
: 지원되지 않는 네트워크 프로토콜 사용하기 위함
: 방화벽 우회
SSH 터널링 구성
# -N = 원격 서버에서 명령을 실행하지 않는다
# -D = 지정된 포트에서 SOCKS 터널 열기
ssh -N -D [tunnelling-port] [user]@[server-ip]
: Windows 및 Linux 모두 실행 가능
Putty에서 접속
1) Session > Host Name에 접속할 IP 주소 입력
2) Connection > SSH > Tunnels > Source Port에 tunnelling-port 입력
3) Destination에 Dynamic 및 Auto 설정
4) Add를 눌러 추가
5) Session > Saved Session > 이름 입력 > save
6) Open으로 접속
FireFox로 접속
1) firefox 메뉴 > Preferences
2) Network Settings > Setting...
3) Manual proxy configuration > SOCKS Host에 127.0.0.1 및 port에 tunneling-port 입력
4) Proxy DNS when using SOCKS v5 클릭
5) OK로 저장 후 새로 열리는 브라우저에서 서버로 http 요청
Chrome으로 접속
1) chrome.exe가 있는 위치에서 cmd로 아래 명령어 입력
chrome.exe --user-data-dir="%USERPROFILE%\proxy-profile" --proxy-server="socks5://localhost:9559"
2) 새로 열리는 크롬창에서 서버로 http 요청
※ 터널링을 하고 있는 다른 브라우저나 클라이언트가 있으면 안됨
Reference
https://www.cloudflare.com/ko-kr/learning/network-layer/what-is-tunneling/
https://linuxize.com/post/how-to-setup-ssh-socks-tunnel-for-private-browsing/
'Development > Development' 카테고리의 다른 글
개발자가 테스트를 보는 세 가지 관점 (0) | 2023.06.20 |
---|---|
MSA를 위한 API 게이트웨이 패턴 (0) | 2023.06.17 |
다양한 프로젝트 직무 (0) | 2023.05.29 |
소프트웨어 엔지니어가 성장하기 위한 요소 (0) | 2023.05.29 |
리더로 성장하고 싶은 개발자를 위한 3가지 기술 (0) | 2023.05.29 |