[네트워크] 컴퓨터 네트워크

[네트워크] SSH 터널링 (실습)

ITsubin 2022. 10. 10. 23:40

[ 실습 - SSH 터널링  ]


> 실습 환경 :

- SSH 터널링 클라이언트 : Windows 7  /  IP : 192.168.100.135

- SSH 터널링 서버 : Ubuntu Desktop (22.04 LTS)  /  IP : 192.168.100.138


1) SSH 설치

SSH 터널링 서버 (Ubuntu)에 아래와 같은 명령으로 SSH를 설치합니다.

sudo apt-get install openssh-server

 

SSHD 서비스 설치 유무는 /usr/sbin/sshd 프로세스를 확인함으로써 알 수 있습니다.

이는 아래와 같은 명령어로 확인합니다.

sudo ps -ef | grep /usr/sbin/sshd

 

root 계정으로 로그인이 필요한 경우,

/etc/ssh/sshd_config 파일의 "PermitRootLogin"의 값을 "prohibit-password"에서 "yes"로 변경하여 접속을 허가합니다.

저는 주석처리가 되어있기에 값을 변경하지 않고 넘어가겠습니다.

(좌측부터) 변경 전, 후 예시

 

설정을 다 마치고, ssh 서비스를 재시작합니다.

sudo /etc/init.d/ssh restart

 

ssh 서비스를 재시작한 후, SSH 터널링 클라이언트 (Windows 7)로 넘어와서

PuTTY 설치 후 서비스 동작 여부를 확인해줍니다.

 

( PuTTY 설치하는 방법은 아래의 포스팅으로... )

> [Linux] Putty로 CentOS7 ssh 원격 접속하기 포스팅

 


2) SSH를 이용한 터널링 설정

Local 주소에서 5000번 포트로 접속을 요청해오는 패킷을 SSH 터널을 이용해 다시 전달해주도록 설정합니다.

 

[ Category ] > [ Connection ] > [ SSH ] > [ Tunnels ] 에서 Source Port 및 기타 설정을 아래와 같이 진행해줍니다.

 

다시 Category의 Session탭으로 돌아와서 SSH로 접속해줍니다.

 

연결 이후 SSH Client (Windows 7)에서 아래와 같은 명령어로

127.0.0.1 (localhost)의 5000번 포트가 "LISTENING"상태인지 확인해줍니다.

 

추가로 SSH Client (Windows 7, IP : 192.168.100.135)와 SSH Server (Ubuntu, IP : 192.168.100.138)의 22번 포트가

연결 확립 상태 (ESTABLISHED)인지 확인해줍니다.


3) 터널링을 이용한 웹 서핑

SSH 터널을 사용하기 위해 인터넷 옵션에서의 LAN Setting을 변경해줍니다.

 

[ Internet Explorer ]

{ 도구 } > { 인터넷 옵션 } > { 연결 } > { LAN 설정 }

 

[ Chrome ]

{ 우측 상단의 더보기 아이콘 } > { 설정 } > { 시스템 } > { 컴퓨터 프록시 설정 열기 } > { 연결 } > { LAN 설정 }

 


4) 터널링 상태 확인

 

Wireshark로 패킷을 캡쳐해보면 Client와 Server가 암호화된 패킷을 주고받는것을 알 수 있습니다.

'[네트워크] 컴퓨터 네트워크' 카테고리의 다른 글

[네트워크] 은닉 채널 (실습)  (1) 2022.10.12
[네트워크] VPN_4 (터널링)  (2) 2022.10.09
[네트워크] VPN_3  (2) 2022.10.08
[네트워크] VPN_2  (2) 2022.10.07
[네트워크] VPN  (2) 2022.10.07