| |
제 목 : ssh를 이용한 vsftpd
작성자 : 좋은진호(truefeel, http://coffeenix.net/ )
작성일 : 2003.10.13(월)
FTP는 암호화되지 않은 형태로 인증과정과 파일이 전송이 이뤄진다. 이는 전송되는 중간에 스니핑이
이뤄진다면 고스란히 해커(?)의 손에 ID/PW, 전송 파일이 유출될 수도 있음을 의미한다.
이글에서는 보다 안전하게 ssh 터널링을 통한 FTP 전송과 vsftpd 설정에 대해 소개한다.
1. ssh 터널링 만들기
* 필요한 조건
- FTP 서버에서는 ssh 서버가 동작중이어야 한다. (서버명을 free, ID는 truefeel 이라고 가정)
- client에서는 ssh 클라이언트가 있어야 한다.
연결과정을 그러보면.
로컬의 FTP클라언트 -> ssh 클라이언트 -> 네트워크(암호화 전송) -> ssh 서버 -> FTP 서버

[ SSH 터널링. 이미지는 www-cs.stanford.edu/security/ 에서 ]
터널링을 만들어보자!
# ssh -CNf -L10021:free:21 truefeel@free
-C : 압축해서 전송한다.
-N : 명령어 실행없이 시작한다.
-f : 백그라운드로 실행한다.
-L : 원격서버의 포트를 로컬로 포워딩한다. (즉, 터널링을 만들어줌)
free서버의 FTP(21번 포트)를 로컬의 10021번 포트로 포워딩한다. 즉 로컬의 10021번 포트를 통해
free의 FTP서버에 접속할 수 있다. 이 때 원격끼리는 암호화되어 전송된다.
만약 원격의 ssh서버가 다른 포트를 사용한다면 -p [포트] 옵셥까지 뒤에 붙여주면 된다.
ps aux 하면 ssh가 백그라운드로 떠있는 것을 확인할 수 있다.
2. ftp 접속 및 vsftpd 설정
ftp명령으로 로컬의 10021번으로 접속을 하면 원격의 free FTP서버로 접속하게 된다.
| |
$ ftp -p localhost 10021
Connected to localhost (127.0.0.1).
220 Secure FTP 서버
Name (localhost:truefeel): truefeel
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
227 Entering Passive Mode (xxx,xxx,xxx,xxx,80,250)
425 Security: Bad IP connecting.
ftp>
| |
접속은 정상적으로 이뤄졌는데, 명령어를 입력했더니 'Security: Bad IP connecting.'에러가
발생을 했다. /etc/vsftpd.conf에 다음 한 줄을 추가하면 쉽게 해결할 수 있다.
pasv_promiscuous=YES
* 참고자료
- ssh 맨페이지
- Re: hello and a vsftpd configuration problem for FTP tunnelling
http://shoe.bocks.com/nlug/2003-Jun/3022.html
|