[ì¤íì¸í°ë·°]'ê°ìí ì¤í 리ì§'(IP SAN)ì ê´í 5ê°ì§ ê¶ê¸ì¦
차례:
SSH 터널링 또는 SSH 포트 전달은 서비스 포트를 릴레이 할 수있는 클라이언트와 서버 시스템간에 암호화 된 SSH 연결을 작성하는 방법입니다.
SSH 전달은 VNC 또는 FTP와 같은 암호화되지 않은 프로토콜을 사용하는 서비스의 네트워크 데이터를 전송하거나 지역 제한 콘텐츠에 액세스하거나 중간 방화벽을 우회하는 데 유용합니다. 기본적으로 모든 TCP 포트를 전달하고 보안 SSH 연결을 통해 트래픽을 터널링 할 수 있습니다.
SSH 포트 전달에는 세 가지 유형이 있습니다.
- 로컬 포트 포워딩. -클라이언트 호스트에서 SSH 서버 호스트로 연결 한 다음 대상 호스트 포트로 연결을 전달합니다. -서버 호스트에서 클라이언트 호스트로 포트를 전달한 다음 대상 호스트 포트로 포트를 전달합니다. -다양한 포트에서 통신 할 수있는 SOCKS 프록시 서버를 생성합니다.
로컬, 원격 및 동적 암호화 SSH 터널을 설정하는 방법에 대해 설명합니다.
로컬 포트 포워딩
로컬 포트 전달을 사용하면 로컬 (ssh 클라이언트) 시스템의 포트를 원격 (ssh 서버) 시스템의 포트로 전달한 다음 대상 시스템의 포트로 전달할 수 있습니다.
이 유형의 전달에서 SSH 클라이언트는 지정된 포트에서 청취하고 해당 포트에 대한 모든 연결을 원격 SSH 서버의 지정된 포트로 터널링 한 다음 대상 시스템의 포트에 연결합니다. 대상 시스템은 원격 SSH 서버 또는 다른 시스템 일 수 있습니다.
로컬 포트 전달은 주로 데이터베이스 또는 VNC 서버와 같은 내부 네트워크의 원격 서비스에 연결하는 데 사용됩니다.
Linux, macOS 및 기타 Unix 시스템에서 로컬 포트 전달을 작성하려면
-L
옵션을
ssh
클라이언트에 전달하십시오.
ssh -L LOCAL_PORT:DESTINATION:DESTINATION_PORT SSH_SERVER
사용되는 옵션은 다음과 같습니다.
-
LOCAL_PORT
로컬 시스템 IP 및 포트 번호LOCAL_IP
가 생략되면 ssh 클라이언트는 localhost에서 바인드합니다.DESTINATION:DESTINATION_PORT
대상 컴퓨터의 IP 또는 호스트 이름 및 포트입니다.SERVER_IP
원격 SSH 사용자 및 서버 IP 주소
LOCAL_PORT
로
1024
보다 큰 포트 번호를 사용할 수 있습니다.
1024
보다 작은 포트 번호는 권한있는 포트이며 루트 만 사용할 수 있습니다. SSH 서버가 22 이외의 포트 (기본값)에서 청취중인 경우
-p
옵션을 사용하십시오.
대상 호스트 이름은 SSH 서버에서 확인할 수 있어야합니다.
db001.host
시스템에서 액세스 할 수있는 포트 3306의 내부 (개인) 네트워크에있는 시스템
db001.host
에서 실행중인 MySQL 데이터베이스 서버가 있고 로컬 시스템
mysql
클라이언트를 사용하여 데이터베이스 서버에 연결하려고한다고 가정하십시오. 이를 위해 다음과 같이 연결을 전달할 수 있습니다.
ssh -L 3336:db001.host:3306 [email protected]
명령을 실행하면 원격 SSH 사용자 비밀번호를 입력하라는 메시지가 표시됩니다. 입력하면 원격 서버에 로그인되고 SSH 터널이 설정됩니다. SSH 키 기반 인증을 설정하고 비밀번호를 입력하지 않고 서버에 연결하는 것이 좋습니다.
이제 로컬 머신 데이터베이스 클라이언트를
127.0.0.1:3336
으로 지정하면 중간 서버 역할을하는
pub001.host
머신을 통해 연결이
db001.host:3306
MySQL 서버로 전달됩니다.
단일 ssh 명령으로 여러 포트를 여러 대상으로 전달할 수 있습니다. 예를 들어,
db002.host
시스템에서 실행중인 다른 MySQL 데이터베이스 서버가 있고 실행하려는 로컬 클라이언트에서 두 서버 모두에 연결하려고합니다.
ssh -L 3336:db001.host:3306 3337:db002.host:3306 [email protected]
두 번째 서버에 연결하려면
127.0.0.1:3337
을 사용하십시오.
대상 호스트 IP 또는 호스트 이름을 지정하는 대신 대상 호스트가 SSH 서버와 동일한 경우
localhost
를 사용할 수 있습니다.
동일한 서버에서 실행되는 VNC를 통해 원격 시스템에 연결해야하며 외부에서 액세스 할 수 없습니다. 사용하는 명령은 다음과 같습니다.
ssh -L 5901:127.0.0.1:5901 -N -f [email protected]
-f
옵션은
ssh
명령이 백그라운드에서 실행되고
-N
은 원격 명령을 실행하지 않도록 지시합니다. VNC와 SSH 서버가 동일한 호스트에서 실행 중이므로
localhost
를 사용하고 있습니다.
원격 포트 포워딩
원격 포트 전달은 로컬 포트 전달과 반대입니다. 원격 (ssh 서버) 시스템의 포트를 로컬 (ssh 클라이언트) 시스템의 포트로 전달한 다음 대상 시스템의 포트로 전달할 수 있습니다.
이 유형의 전달에서 SSH 서버는 지정된 포트에서 청취하고 해당 포트에 대한 모든 연결을 로컬 SSH 클라이언트의 지정된 포트로 터널링 한 다음 대상 시스템의 포트에 연결합니다. 대상 시스템은 로컬 또는 다른 시스템 일 수 있습니다.
Linux, macOS 및 기타 Unix 시스템에서 원격 포트 전달을 작성하려면
-R
옵션을
ssh
클라이언트에 전달하십시오.
ssh -R REMOTE_PORT:DESTINATION:DESTINATION_PORT SSH_SERVER
사용되는 옵션은 다음과 같습니다.
-
REMOTE_PORT
원격 SSH 서버의 IP 및 포트 번호 빈REMOTE
는 원격 SSH 서버가 모든 인터페이스에서 바인딩됨을 의미합니다.DESTINATION:DESTINATION_PORT
대상 컴퓨터의 IP 또는 호스트 이름 및 포트입니다.SERVER_IP
원격 SSH 사용자 및 서버 IP 주소
로컬 포트 전달은 주로 외부에서 누군가에게 내부 서비스에 대한 액세스를 제공하는 데 사용됩니다.
로컬 컴퓨터에서 웹 응용 프로그램을 개발 중이며 동료 개발자에게 미리보기를 표시하려고한다고 가정 해 봅시다. 공용 IP가 없으므로 다른 개발자가 인터넷을 통해 응용 프로그램에 액세스 할 수 없습니다.
ssh -L 8080:127.0.0.1:3000 -N -f [email protected]
위의 명령은 ssh 서버가 포트
8080
을 수신하고이 포트에서 포트
3000
의 로컬 시스템으로 모든 트래픽을 터널링하도록합니다.
이제 동료 개발자는 자신의 브라우저에서
the_ssh_server_ip:8080
을 입력하고 멋진 응용 프로그램을 미리 볼 수 있습니다.
동적 포트 포워딩
동적 포트 전달을 사용하면 SOCKS 프록시 서버 역할을하는 로컬 (ssh 클라이언트) 시스템에 소켓을 작성할 수 있습니다. 클라이언트가이 포트에 연결하면 연결이 원격 (ssh 서버) 시스템으로 전달 된 다음 대상 시스템의 동적 포트로 전달됩니다.
이렇게하면 SOCKS 프록시를 사용하는 모든 응용 프로그램이 SSH 서버에 연결되고 서버는 모든 트래픽을 실제 대상으로 전달합니다.
Linux, macOS 및 기타 Unix 시스템에서 SOCKS (동적 포트 전달)를 작성하려면
-D
옵션을
ssh
클라이언트에 전달하십시오.
ssh -D LOCAL_PORT SSH_SERVER
사용되는 옵션은 다음과 같습니다.
-
LOCAL_PORT
로컬 시스템 IP 및 포트 번호LOCAL_IP
가 생략되면 ssh 클라이언트는 localhost에서 바인드합니다.SERVER_IP
원격 SSH 사용자 및 서버 IP 주소
동적 포트 전달의 전형적인 예는 SSH 서버를 통해 웹 브라우저 트래픽을 터널링하는 것입니다.
다음 명령은 포트
9090
에 SOCKS 터널을 만듭니다.
ssh -D 9090 -N -f [email protected]
터널링이 설정되면이를 사용하도록 응용 프로그램을 구성 할 수 있습니다. 이 문서에서는 SOCKS 프록시를 사용하도록 Firefox 및 Google Chrome 브라우저를 구성하는 방법에 대해 설명합니다.
트래픽을 터널링하려는 각 응용 프로그램에 대해 포트 전달을 별도로 구성해야합니다.
Windows에서 SSH 터널링 설정
Windows 사용자는 PuTTY SSH 클라이언트를 사용하여 SSH 터널을 작성할 수 있습니다. 여기에서 PuTTY를 다운로드 할 수 있습니다.
-
퍼티를 시작하고
Host name (or IP address)
필드에 SSH 서버 IP 주소를 입력하십시오.사용자 이름과 비밀번호를 묻는 새로운 창이 나타납니다. 사용자 이름과 비밀번호를 입력하면 서버에 로그인되고 SSH 터널이 시작됩니다.
공개 키 인증을 설정하면 비밀번호를 입력하지 않고도 서버에 연결할 수 있습니다.
결론
SSH 터널을 설정하고 보안 SSH 연결을 통해 트래픽을 전달하는 방법을 설명했습니다. 사용하기 쉽도록 SSH 구성 파일에서 SSH 터널을 정의하거나 SSH 터널을 설정할 Bash 별명을 작성할 수 있습니다.
ssh 보안Windows 용 무료 SSH 클라이언트 10/8/7

Secure Shell 또는 SSH는 원격 시스템에 로그인하여 명령 및 파일 이동. Windows 용 무료 SSH 클라이언트 소프트웨어를 확인하십시오.
방화벽을 우회하도록 ssh 터널링을 설정하는 방법

방화벽은 좋은 일이지만, 뭔가를하지 못하게하는 경우 SSH 터널링은 좋은 옵션입니다.
리눅스에서 SSH 포트를 변경하는 방법

기본적으로 SSH는 포트 22에서 수신 대기합니다. 기본 SSH 포트를 변경하면 자동 공격의 위험을 줄임으로써 서버에 추가적인 보안 계층이 추가됩니다. 이 학습서는 Linux에서 기본 SSH 포트를 변경하는 방법을 설명합니다.