2015년 2월 17일 화요일

vsftpd를 이용한 ftp 서버에 filezilla로 파일 업로드하기

vsftpd를 이용한 ftp 서버에 filezilla로 파일 업로드하기



리눅스에 vsftpd를 이용해서 ftp 서버를 구축했다면 파일 업로드까지 해봐야 마무리를 지은거라고 할 수 있죠. 그래서 이번에는 ftp 서버에 파일을 업로드하는 방법을 적어보겠습니다.


준비물

◎ vsftpd로 구축한 frp 서버(centos 6.6 기준입니다.)
◎ 클라이언트에 설치된 filezilla
◎ 업로드용 파일

1. cmd 창에서 업로드 해보기

윈도우 시작 키 + r  -> cmd 입력

cmd 창에서 밑에 처럼 입력하여 자신의 ftp 서버에 접속해주세요.



다음 테스트로 아무 파일이나 업로드해주세요.
밑에 처럼 파일이 정상적으로 올라간다면 일단은 테스트 환경이 구축된 것입니다.





2. filezilla로 업로드해보기

vsftpd를 기본적인 설정으로 설치했다면 filezilla로 ftp 서버에 접속한다면 이런 메시지를 보시게 될 것입니다.

filezilla는 기본적으로 패시브모드를 지원하기 때문에 ftp 서버에서 패시브 모드 설정을 해주어야 합니다.

여기서 패시브와 액티브의 차이를 간략하게 설명하자면, 서버와 클라이언트는 각자 지정된 ftp 전송 포트를 가지고 있습니다. 
각자 command와 data용 포트를 가지고 있는데 서버는 cmd 21번, data20번이고 클라이언트는 1024번 포트 부터 마지막번 포트 중 사용하지 않는 임의의 포트를 cmd용 data용으로 지정하여 사용합니다.

액티브 모드 전송 방식


액티브 모드로 filezilla를 통해 서버에 접속한 클라이언트는 서버에 원하는 포트를 열어달라고 요청을 합니다. 하지만 ftp는 20번 포트만 데이타 전송 전용 포트로 열고 있어 대부분의 유저들은 방화벽에 막히게 되어 filezilla 유저들은 파일 전송에 실패합니다. (아마도 윈도우 자체 ftp 서비스는 20번 포트만 열어달라고 요청을 하기 때문에 액티브 모드에서도 전송이 잘 되는 것 같습니다.)

정리하자면, 액티브 모드는 클라이언트가 갑이 되어 자신이 접속하고자 하는 포트만 찾게 되고 자신이 원하는 포트가 막혀있으면 전송자체가 되지 않는 시스템입니다. 중요한건 클라이언트가 갑! 서버가 을! 

패시브 모드 전송 방식




패시브 모드는 클라이언트의 갑의 횡포를 길들이기 위해 탄생했습니다. 액티브 모드에서 클라이언트가 갑이었다면 패시브 모드에서는 역으로 서버가 갑이 되어 20번 포트만 원하는 클라이언트에 맞서기 위해 임의의 포트를 열고 기다리고 있습니다. 

여기서 서버가 열고 있는 포트는 1024 ~ 65535 포트 중 동시에 받고자 하는 클라이언트의 수에 맞춰집니다. 이렇게 포트를 열고 있으면 클라이언트는 20번 포트를 거치지 않고 패시브모드용 포트를 통해 자료를 주고받고 할 수 있게 됩니다.
패시브 모드에서 중요한 건 서버가 갑! 클라이언트가 을!


3. ftp 서버 vsftpd 설정 변경하기

# vi /etc/vsftpd/vsftpd.conf

밑의 내용을 추가해주세요.

pasv_enable=YES
pasv_min_port=50001
pasv_max_port=50010  // 임의로 50001 ~ 50010 포트를 열고 대기하도록 지정했습니다.

# vi /etc/sysconfig/iptables

iptables에 50001:50010 포트를 등록해줍니다.

# /etc/init.d/vsftpd restart
# /etc/init.d/iptables restart

4. filezilla로 접속하기

아까랑 같은 방법으로 filezilla를 통해 ftp 서버에 접속시도합니다.

이번에는 마지막 줄에 succesful이라는 문구나 나오는 것을 볼 수 있습니다~!
이제 마음대로 파일을 업로드하고 다운로드 할 수 있습니다.

이상~! 

댓글 없음:

댓글 쓰기