[리눅스] FTP ..

작성자:박 쥬은요프 작성일:2017.10.27FTP

FTP(File Transfer Protocol)-파일 전송 프로토콜 TCP/20-Data포트//데이터 전송 시 사용 TCP/21-Command포트//명령어와 접속 시에 사용 FTP동작 방식 ① Active(능동)모드-서버가 클라이언트에 접속하는 방식 단점-방화벽 또는 ISP에서 외부 접속을 인정하지 않으면 정상적인 FTP동작을 할 수 없다. ② Passive(수동)모드 FTP클라이언트가 FTP서버에 접속하고자 할 때 2가지 모드 중 하나를 선택하고 접속 요청을 한다.Server-A (FTP SERVER) vsftpd 패키지 설치 yum-yinstall vsftpd (ftp server 프로그램)

>

패키지 설치 버전 확인 rpm-qa|grep” vsftpd”

>

– vsftpd 데이먼 활성화 후 확인 Service vsftpd startservice vsftpd status

>

기동시에 자동적으로 vsftpd 데이먼 활성화 chk config vsftpd onchk config–list vsftpd

>

활성화된 포트 확인 net stat-ntlp|grep”vsftpd”

>

[서버 주소][클라이언트 주소][상태][PID/데몬면]0.0.0.0:21 0.0.0.0:*LISTEN 2071/vsftpd

ftp 계정 홈 디렉토리 확인

>

ftp 계정의 홈 디렉토리://var/ftp=> anonymous 사용자로 접속했을 때 ftp 계정으로 동작하기 때문에 클라이언트에 가장 먼저 위치한 디렉토리는 ftp 계정의 홈 디렉토리(/var/ftp)이다.anonymous(익명사용자)에 대한 설정 변경하기/etc/vsftpd/vsftpd.conf//vsftpd 메인 설정 파일 기존에 없는 설정은 하단에 추가하고 기본에 있는 설정은 주석을 제거하면 된다.anonymous_enable=YES//anonymous사용자 접속 허용 여부 anon_upload_enable=YES//anonymous사용자 업로드를 허가할지 anon_mkdir_write_enable=YES//anonymous디렉토리 생성 가능한지 anon_umask=077//anonymous사용자가 생성한 파일에 적용되는 UMASK

>

>

chown_upload=YES//anonymous사용자가 올린 파일의 소유권을 변경 chown_username=ftp//anonymous사용자의 소유권을 ftp계정에 지정(상기의 2개는 쌍)

>

anonymous 사용자 전용 upload 디렉터리 작성 후 소유권 및 허가권 변경

>

설정 적용을 위해 데몬 재시작

>

anonymous 사용자가 사용하는 download 전용 디렉토리(/var/ftp/pub)에 테스트 할 파일 생성

>

[Client-Linux] ftp 클라이언트 프로그램 다운로드

>

ftp연결 방식(1)ftp[IP주소/도메인](2)ftp ftp>open[IP주소/도메인][Client-Linux]익명 사용자 계정으로 Server-A에 접속하는 IP주소:100.100.100.110(도메인 주소:ftp.jyp.com)

>

계정 : anonymous // 익명 사용자 계정에서 비밀번호가 없다. 암호: 없음(enter)ftp에서 사용가능한 명령어 cd, ls, pwd, mkdir, help

>

get – 파일 다운로드 * 형식 get [파일명] get [파일명] [지정하는 파일 이름] // 이름을 변경하여 다운로드 할 수 있다.

>

>

접속 전 디렉토리에 저장된다.put – 파일 업로드 * 형식 put [파일명]

>

– 현재 디렉토리에 있는 파일을 업로드 할 수 있다.

>

hash – 다운로드/업로드 과정을 hash(#)로 출력 mget – 복수의 파일 다운로드 mput – 복수의 파일 업로드

익명의 사용자가 접속했을 때 홈 디렉토리는 /var/ftp이다.

>

(아무리 cd.를 해도 벗어날 수 없다.)

각 디렉토리에 허가권이 없어 ls(r)와 mkdir(w) 명령어를 실행할 수 없었다.허가권을 변경하다

>

[Client-Linux]로 Server-A에 접속하여 upload 디렉토리에서 ls가 가능한가.

>

설정 파일 수정 후 설정 적용

>

>

local_enable=YES//로컬 계정 사용자의 FTP접근을 허용 wirte_enable=YES//로컬 계정 파일 생성 및 수정 허용 local_umask=022//생성한 파일의 적용되는 umask

>

확인을 위해 계정 생성

>

연결 확인 [Client-Linux]

>

보안 설정/etc/vsftpd/ftpusers -ftp 접속 차단 계정/etc/vsftpd/user_list – vsftpd.conf에서 설정 userlist_enable=YES/user_list 파일을 활성화 userlist_deny=YES/NO/user_list 파일에 등록된 사용자 ftp거부/허용 user_list 파일에 등록되어 있어도 ftpuser_list 파일에 등록되어 있는 사용자는 접속할 수 없는가 아닌가.

>

※ userlist_deny=YES 입력하지 않아도 기본값으로 설정된다.클라이언트에서 root 계정으로 서버에 접속

>

user_list 파일로 root 계정 댓글 처리 후 재연결

>

>

>

– 주석 처리 전에는 root 계정 자체가 거부되었으나, 지금은 비밀번호를 정확히 입력해도 접속이 거부된다.ftpusers파일로 root계정을 댓글처리하고 다시 연결

>

>

– 연결가능하다./etc/vsftpd/ftpusers – 사용자의 비밀번호를 정확히 입력해도 거부/etc/vsftpd/user_list – 사용자의 비밀번호 입력에 관계없이 거부

[Server-A]

user_list 파일을 승인 목록으로 설정

>

>

설정적용

>

[Client-Linux]현재 ftp-user가 연결 가능한지 확인.

>

– 연결불가 [Server-A] user_list(승인목록) 파일에 ftp-user 계정 추가

>

>

[Client-Linux]ftp-user로 서버-A에 접속한다.

>

– 연결가능