FTP
FTP (File Transfer Protocol)
- 능동모드 (Active Mode) : 클라이언트에서 서버측 21번 포트로 접속하고, 데이터는 서버가 클라이언트 포트에 접속해 데이터를 보내는 방식
- 수동모드 (Passive Mode) : 클라이언트가 서버측 21번 포트로 접속하고, 데이터 채널도 클라이언트측에 접속해서 데이터를 전송하는 방식
리눅스에서 FTP 서버 생성
1. FTP 서버 설치 ( vsftpd, proftpd 등...)
- 저는 vsftpd를 사용하겠습니다.
- yum install vsftpd.i686
2. FTP 설정
- 기본적으로 홈디렉터리 : /etc/vsftpd/
- anonymous 홈디렉터리 : /var/ftp/
vsftpd 디렉터리 안에는 기본 설정파일들이 있습니다.
ftpusers 의 경우 접속을 제한할 계정들의 정보를 담고있는 파일입니다. 기본적으로 밑에 있는 계정들이 설정되어있습니다.
user_list의 경우 마찬가지로 제한할 사용자들에 대한 계정정보를 담고있습니다. default 권한으로 접속을 제한하고 있고, deny를 허용하게 되면, 허용할 계정정보만 설정할 수 있습니다.
3. 사용법
service vsftpd start 로 ftp 서버를 실행시켜줍니다.
netstat -ant로 확인할 수 있습니다. (ftp는 21,22번입니다.)
이 상태에서 ftp:// 192.168.0.110으로 인터넷으로 접속하게 되면 인터넷에서도 파일을 다운 받을 수 있습니다.
만약 ftp 서버가 연결이 안될경우에는 selinux가 허용되어있는지 확인해줍니다. ( /etc/sysconfig/selinux )
밑에와 같은 설정으로 되어있다면, enforcing을 disabled로 바꾸어서 설정해주고( SELINUX=disabled ), reboot해줍니다.
1) 기본유저(anonymous) 의 경우 비밀번호를 치지 않아도 접속할 수 있습니다. 단점은 파일을 다운로드밖에 할 수 없습니다.
window의 경우 ftp -A IP주소 로 anonymous로 들어갈 수 있습니다.
2) 리눅스 사용자 계정의 경우 비밀번호를 치고 들어가야하며, 파일 업로드, 다운로드 모두 가능합니다.
파일 업로드, 다운로드
※ 현재 VMWARE 환경입니다. 서버 : 192.168.0.110 클라이언트 : 192.168.0.130
클라이언트 측에서 cmd로 들어가 ftp 접속을 했습니다.
저는 리눅스에 있는 계정으로 들어갈 것이며, 로그인을 성공시킨뒤 현재 바탕화면에 있는 TWICE-KNOCK_KNOCK.mp4라는 파일을 올려보겠습니다.
파일을 업로드 할 때에는 put 명령어를 사용하면되고, 다운로드 할 때에는 get 명령어를 이용하면됩니다.
ftp 창을 나갈때에는 quit, by 를 통해 나갈 수 있습니다.
파일을 업로드 할 때에는 ftp 서버로 접속하기 전 cmd에서 바탕화면으로 이동시킨 뒤 들어가서 파일을 올려주면 됩니다.
ftp서버가 있는 리눅스에 들어가 방금전 로그인한 ftp_user의 홈디렉터리로 들어가 파일을 확인해보면 올려져 있는 것을 볼 수 있습니다.
이 것을 기본 ftp 홈디렉터리인 /var/ftp/pub/안에 넣어두게 되면 anonymous도 다운 받을 수 있게 됩니다.
인터넷으로 확인해보면 올라가 있는 것을 확인해 볼 수 있습니다.
윈도우의 경우에는 능동모드만 지원하기 때문에 리눅스에서 수동모드와 능동모드에 대한 차이점을 확인해보겠습니다.
리눅스의 경우 ftp client를 지원하는 프로그램이 설치되어있어야 합니다. yum install ftp.i686
-A : 능동모드 -p : 수동모드 -d : 디버깅
FTP 수동모드 접속
FTP 능동모드 접속