SSH 터널링은 SSH 프로토콜을 사용해 네트워크 상의 포트를 보호된 터널을 통해 안전하게 연결하는 방법
•
원격 서버와의 통신을 암호화해 보안성을 높임
•
주로 방화벽을 우회하거나 원격 서버에 안전하게 접속하는 데 사용됨
SSH 터널링 종류
1.
로컬 포트 포워딩
•
로컬 머신의 포트를 원격 서버의 특정 포트로 포워딩
•
원격 서버에 안전하게 접속할 때 사용
ssh -L [로컬 포트]:[원격 서버 IP]:[원격 포트] [사용자]@[원격 서버 IP]
Shell
복사
예시:
ssh -L 8080:192.168.0.10:80 user@remote-server
Shell
복사
•
로컬 머신의 8080 포트를 원격 서버의 80 포트로 포워딩해, 브라우저에서 localhost:8080으로 접속 시 원격 서버의 80 포트에 접속됨
2.
원격 포트 포워딩
•
원격 서버의 포트를 로컬 머신의 포트로 포워딩
•
로컬 서버에서 제공하는 서비스를 원격 서버를 통해 다른 곳에서 접근 가능하게 할 때 사용
ssh -R [원격 포트]:[로컬 머신 IP]:[로컬 포트] [사용자]@[원격 서버 IP]
Shell
복사
예시:
ssh -R 8080:localhost:80 user@remote-server
Shell
복사
•
원격 서버의 8080 포트를 로컬 머신의 80 포트로 포워딩
3.
다이나믹 포트 포워딩
•
로컬 머신에서 여러 포트를 사용해 원격 서버로 접속
•
SOCKS 프록시 서버 역할을 함
ssh -D [로컬 포트] [사용자]@[원격 서버 IP]
Shell
복사
예시:
ssh -D 8080 user@remote-server
Shell
복사
•
로컬 머신의 8080 포트를 SOCKS 프록시로 설정해, 다양한 목적지와 통신 가능
CentOS에서 SSH 터널링 사용 방법
1.
SSH 클라이언트 설치 여부 확인
ssh -V
Shell
복사
•
OpenSSH가 설치되어 있는지 확인
2.
SSH 접속 설정
•
/etc/ssh/sshd_config 파일을 열어 포트 포워딩 설정 확인
•
AllowTcpForwarding 값이 yes로 설정되어 있어야 SSH 터널링이 가능
3.
SSH 터널링 사용
•
앞서 설명한 방법을 사용해 로컬, 원격, 다이나믹 포트 포워딩을 설정
4.
터널링 종료
•
터널링을 중지하려면 SSH 세션을 종료하거나 터미널에서 Ctrl + C를 눌러 SSH 연결을 종료
실습
ssh -L 9201:localhost:9201 -p 12345 admin@123.111.2.33
JavaScript
복사
명령어 ssh -L 9201:localhost:9201 -p 12345 admin@123.111.2.33의 의미는 다음과 같음.
1.
ssh
•
SSH(보안 셸)를 사용해 원격 서버에 접속하는 명령어
2.
L 9201:localhost:9201
•
로컬 포트 포워딩 설정
•
로컬 머신의 포트 9201을 원격 서버 123.111.2.33의 localhost:9201로 포워딩
•
즉, 로컬 머신에서 localhost:9201에 접속하면 원격 서버의 localhost:9201에 접속됨
•
이 때 원격 서버의 localhost는 원격 서버 자신을 의미하므로, 123.111.2.33 서버에서 실행 중인 서비스에 연결됨
3.
p 12345
•
SSH가 사용하는 포트 지정
•
기본적으로 SSH는 포트 22를 사용하지만, 여기서는 12345 포트로 SSH 연결 시도
4.
admin@123.111.2.33
•
admin 사용자를 통해 원격 서버 123.111.2.33에 접속
•
원격 서버에 admin 사용자 계정으로 로그인
요약
•
로컬 머신의 포트 9201을 원격 서버 123.111.2.33의 localhost:9201로 포워딩
•
SSH 포트 12345를 통해 admin 계정으로 원격 서버에 접속
•
로컬에서 localhost:9201로 접속하면 원격 서버에서 실행 중인 localhost:9201의 서비스에 연결됨
안녕하세요
•
한국전자기술연구원 김영광입니다.
•
관련 기술 문의와 R&D 공동 연구 사업 관련 문의는 “glory@keti.re.kr”로 연락 부탁드립니다.
Hello 
•
I'm Yeonggwang Kim from the Korea Electronics Research Institute.
•
For technical and business inquiries, please contact me at “glory@keti.re.kr”