SSH 터널링을 이용해 FTP를 이용하는 방법을 포스팅 해본다.


환경
  1. 서버 : 리눅스
  2. FTP 데몬 : vsftpd
  3. 클라이언트 : 윈도우

위와 같은 환경에서 SSH터널링을 이용해 FTP를 이용할 수 있다.


서버측 - FTP 서버에서 패시브모드와 포트를 설정

클라이언트는 NAT 환경 아래 있기 때문에 서버측에서 패시브 모드를 지원하도록 설정하여야 한다. 본인의 경우 vsftpd를 사용했기에 다음과 같이 추가하였다. 다른 데몬인 경우 패시브모드를 설정하는 방법을 숙지하여 알맞게 변경해야 할 것이다. 아래 포트를 하나만 사용하면, 파일업로드는 한번에 하나만 된다. 그래서 5개 정도의 여유를 두고 설정하였다.

pasv_enable=YES
pasv_min_port=5001
pasv_max_port=5005


설정을 마쳤으면 ftp데몬을 재기동한다.


클라이언트측 - Putty의 터널링 설정

먼저 세션 부분에서 SSH서버로 접속할 정보를 세팅하고, Putty를 이용해 SSH터널을 생성하도록 한다. 빨간 네모와 같이 입력하고 [추가] 버튼을 클릭하면 포트가 추가된다. 21번 포트와 위에서 패시브모드시 사용하도록 지정한 5001번 포트를 추가하였다. 같은 방법으로 5005포트까지 추가한다. 아래 그림과 같이 터널링 설정을 하고 SSH로 서버에 접속한다.


접속

Putty의 접속을 유지한 상태로, 이제 PC에서 파일질라등의 FTP 클라이언트로 127.0.0.1로 접속하면 접속될 것이다.


참고사이트 : http://cafe.naver.com/networkhard/664



2012.09.05 

어제 오늘 FTP를 사용하면서 이상하게 한 번에 파일 하나만 올라가는 현상이 발생하였다. 클라이언트에서는 멀티로 파일전송 시도를 하는데, 첫 번째 파일만 성공하고 다른 파일은 모두 실패로 떨어졌다. 그리고 파일 전송하는 동안 FTP의 폴더전환이 되지 않았다. "500 OOPS: priv_sock_get_int" 이런 오류를 내면서 변경 실패라고 나왔다. OpenWrt위에서 운영되는 상태라 하드웨어의 한계로 인해 제한이 걸린 줄로만 알았다.

그러나 확인해 보니 패시브모드 포트를 하나밖에 열지 않아 한 번에 하나씩만 처리되는 문제점이었다. 대처방법으로는 패시브모드 포트를 몇 개 더 여는 것이다. 그러면 적어도 동시에 두 파일은 처리할 수 있다. 포스팅은 수정하였으니 참고바라겠다.

저작자 표시 비영리 변경 금지
신고
크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by Life 스토리


티스토리 툴바