본문으로 바로가기

Day-34 FTP

category Linux 2017. 1. 27. 09:28

FTP(File Transfer Protocol)
- 서버와 클라이언트 사이의 파일 전송을 하기위한 프로토콜
- TCP20, 21번을 이용하여 동작을 한다.

 

Command 포트 : 명령어 입력과 결과를 출력 시 사용되는 포트 (21번)
Data 포트 : 실제 데이터 전송시 사용되는 Data 포트 (20번)


전송방식                      Command                       Data포트
Active 모드                      21번                               20번 
Passive 모드                  21번                    1024~65536사이 임의의 값

 

Active 모드
(1) 클라이언트가 서버의 21번 포트로 접속을 시도, 이때 사용할 DATA포트 정보와 함께 전송
(2) 서버에 해당 메세지에 대한 정상 응답 (ACK)
(3) 서버에서 DATA포트를 이용하여 클라이언트 DATA포트로 접속 시도
(4) 클라이언트가 서버가 보낸 베세지에 대한 정상 응답 (ACK), 서버가 클라이언트에 접속을 시도하는 형태


Passive 모드
(1) 클라이언트가 서버의 Command포트로 접속을 시도
(2) 서버가 응답을 하며 서버가 사용할 임의포트 정보와 함께 클라이언트에게 전달 (임의포트 1024↑)
(3) 클라이언트가 두번째 포트를 열어 서버가 알려준 임의의 포트에 접속을 시도
(4) 서버가 응답을 하며 ACK 메세지를 전송, Active모드의 단점을 보완한 형태이다.

 

vsFTP (Very Secure FTP)
GPL 기반의 안정적이며 빠르고 강력한 보안을 제공하는 FTP 서버용 프로그램

 

홈페이지 : http://vsftpd.beasts.org
                ftp://vsftpd.beasts.org/users/cevans (소스)
   - 가상 유저 설정을 통하여 계정의 쉘 로그인을 방지하여 안전한 서버운영을 지원
   - Standalone 또는  inetd 모드로 효율적인 데몬 관리 지원
   - 효율적인 서버관리를 위한 대역폭 조절 기능 지원 ( 전송량 제한)
   - 암호화된 패스워드를 통한 보안 강화 지원
   - 가상 호스트 기능 지원으로 아이피마다 독립적인 FTP 운영
   - TCP wrapper 통합으로 IP 접근제어 설정 가능
   - ASCII 모드로 파일이 전송되는 것을 금지하여 DoS 공격 방지

 

 

 

Server-A

#yum -y install vsftpd                    //vsftp 패키지 설치
#rpm -qa | grep vsftpd                 //정상 설치 유무 확인
vsftpd-2.2.2-21.el6.x86_64

 

#service vsftpd start                     //데몬기동
#service vsftpd status                  //데몬 상태확인
#ps -ef | grep vsftpd                   //프로세스 확인
#cat /etc/services | grep ftp       //리눅스에서 지원하는 ftp종류 확인
#netstat -tulpn | grep 21             //서비스를 제공하기 위해 오픈 상태 확인

 

 

 

 

 

부팅 시 자동으로 vsftp 데몬이 동작하도록 설정후 확인
#chkconfig vsftpd on
#chkconfig --list vsftpd

 

 

 

익명(Anonymous) 접속
- anonymous 계정으로 접속되는 디렉토리는 /var/ftp 다.
- anonymous 계정은 ftp전용 사용자로 기본적으로 내장되어 있다.
- 특별한 암호 없이도 ftp 접속이 가능하고,리눅스 내부에서는 ftp라는 계정으로 동작한다.

 

Server-A


#cat /etc/passwd | grep ftp           //UID 14

#cd /var/ftp
#ls                                                  //pub 디렉토리 확인
#cp /boot/vm* /var/ftp/pub
#cd pub
#mv vm* file1
#cp file1 file2
#cp file1 file3
#ls                                                  // file1~3 까지 생성 확인
pub 디렉토리 755
file 권한 755

 

 

 

 

 

Client-Linux


#ftp                                                //ftp 명령어 확인
-bash: ftp: command not found
#yum -y install ftp                         //ftp 접속용 패키지 설치

 

ftp 접속법
1. #ftp [도메인|IP주소]
2. #ftp
 >open [도메인|IP주소]
3. #ftp
 >open

 [도메인|IP주소]


#vi /etc/resolv.conf
nameserver 100.100.100.110
nameserver 100.100.100.120


#vi /etc/sysconfig/network-scripts/ifcfg-eth0
DNS1=100.100.100.110
DNS2=100.100.100.120


#service network restart


#ping ftp.taehoon.com                 //도메인 통신 확인

 

 


#ftp ftp.taehoon.com
Name : anonymous
Password : 'enter'
? - 사용할 수 있는 명령어 보기

 

 

 

명령어 : cd, ls(dir), pwd, mkdir 기타 등등
            : bye(quit) 종료
            : get - 파일 하나 다운로드
                   get [파일명]
                   get [파일명] [변경 파일명]
            : mget - 여러개의 파일 다운로드
                   파일 하나당 다운로드 여부를 확인(단점), mget 사용전에 prompt 명령어 입력 후 사용하면 다운로드 여부를 물어보지 않는다.
            : put - 파일 하나 업로드
            : mput - 여러개의 파일 업로드
            : hash - 다운로드 과정을 hash(#)으로 출력

 

                       ls
                       get file1
                       mget file1 file2 file3

 

 

#service iptables stop
#setenforce 0
#vi /etc/sysconfig/selinux   //disabled로 변경

 

Server-A, Server-B, Client-Linux


1. iptables 꺼져있나 확인
2. selinux 꺼져있나 확인
3. dhcp 켜져있으면 stop 후 ip static 설정

 

SERVER-A
vi /etc/vsftpd/vsftpd.conf
anonymous_enable - 익명 사용자의 접속을 허가할지 설정 (YES)
anon_upload-enalbe - 익명사용자의 파일 업로드 허가 여부 설정 (YES)

 

#service vsftpd restart


 

Client-Linux

 

새로운 파일 생성 ex)upload_file1
             put - 현재 경로에 위치한 파일을 하나 업로드
             mput - 현재 경로에 위치한 여러 파일을 업로드
             #mput upload_file*
             hash - 다운로드 과정 hash로 출력 (#)

             pub 777 기타 사용자에 w권한 업로드

 

 

 

 

Client-Windows


https://filezilla-project.org/    FileZilla 다운로드

 

 


호스트 ftp.taehoon.com ID : anonymous PW 없음

---------------------------------------
|                    접속창                      |
---------------------------------------
|  PC폴더목록    |    서버디렉토리    |
---------------------------------------
| 폴더 상세 내용 |서버 디렉토리내용|
---------------------------------------
|                     전송상태                    |
---------------------------------------

 

 

 

보안 설정


/etc/vsftpd/ftpuser - ftp 접속 차단 계정 정보 파일
 -/etc/vsftpd/vsftpd.conf : user_list 파일을 활성함
  userlist_ennalbe=YES : user_list 활성화
  userlist_deny=NO : user_list 파일에 등록된 사용자는 접속 허용

 

user_list 파일에 등록돼 있더라도 ftpuser에 등록된 사용자는 접속이 불가능하다.
user_list 파일은 거부/승인 목록이 될 수 있다.
(userlist_deny)

 

ftp root계정 접속시 /etc/vsftpd/ftpuser  root 주석처리

 

 

'Linux' 카테고리의 다른 글

Day-36 FTPS & Samba(미완)  (0) 2017.01.31
Day-35 VSFTP (미완)  (0) 2017.01.30
Day-33 DNS  (0) 2017.01.26
Day-32 DNS  (0) 2017.01.25
Day-31 DNS  (0) 2017.01.24