본문 바로가기
Linux/NetAdmin

[CentOS5.11] FTP 구축 실습

by Luuii 2017. 9. 17.

ftp란?

인터넷 상의 컴퓨터들 간의 파일을 교환하기 위한 표준 프로토콜. 가장 간단한 방법.

화면에 표시할 수 있는 웹페이지와 관련 파일을 전송하는 HTTP, 전자우편을 전송하는 SMTP등과 같이 FTP 역시 인터넷의 TCP/IP 응용 프로토콜 중 하나.

FTP는 웹 페이지 파일들을 인터넷 상에서 모든 사람이 볼 수 있도록 하기 위해 저작자의 컴퓨터로부터 서버로 옮기는 과정에서 사용.

TUI와 GUI 모두 사용 할 수 있다.

보통은 웹 브라우저도 웹 페이지로부터 선택한 프로그램을 다운로드 하는데 FTP를 사용.

서버에 있는 파일을 지우거나, 이름을 바꾸거나, 옮기거나 복사하는 등 갱신작업도 가능.

로그인을 해야하지만 익명의 FTP를 사용하여 모든 사람들에게 공개된 파일들을 쉽게 접근하도록 함.

 

FTP는 보통 TCP/IP 에 함께 딸려오는 일련의 프로그램 속에 포함되어 있다.

 

Real FTP : Real 사용자 ( ID / PASS 인증 사용자들 )         Ex. user01, fedora....

 

Anonymous FTP : Anonymous 사용자 ( 인증 없는 사용자들 )         Ex. anonymous, ftp....

 

Anonymous FTP?

익명 FTP.

Anonymous FTP는 서버에 자신을 식별시키지 않고서도 파일에 접근할 수 있는 방법을 제공.

Anonymous FTP는 서버에 접속 한 뒤 사용자 아이디로 "Anonymouns" 라고 입력하고, 패스워드에는 자신의 이메일 주소를 입력한다.

패스워드를 입력하지 않거나 다른 내용을 입력하더라고 아무런 이상이 없지만 자신의 이메일 주소를 넣는 것이 통신상의 예의이다.

 

 

FTP 프로그램의 종류

wu-ftpd      : 예전 RedHat Linux에서 사용하던 기본 FTP프로그램  

vsftpd        : 현재 많이 사용되고 있는 FTP프로그램

proftpd      : 현재 많이 사용되고 있는 FTP프로그램

기타( gssftp, tftp, sftp, . . . )

 

vsftpd와 proftpd의 차이점

 vsftpd

 ⓐ UNIX 시스템에서 사용할 수 있는 Free FTP Demon

 ⓑ 리눅스, 솔라리스, HP, FreeBSD 등에 지원

 ⓒ Redhat, SUSE, OPEN-BSD에서 리본 FTP 데몬으로 채택

 ⓓ 가상 IP 설정 (Virtual IP Configuration)

 ⓔ 가상 유저 지원 ( Virtual Users)

 ⓕ Standalone 또는 inetd(xinetd) 지원

 ⓖ 전송 대역폭 조절 기능

 ⓗ 환경 설정 파일을 IP별로 독립적으로 지원 ( Per-Source-IP Configuration )

 ⓘ IP별로 제한 기능

 ⓙ IPv6 지원

 ⓚ SSL을 사용한 암호화 지원

 ⓛ 보안부분을 특히 강조한 서버 데몬

 ⓜ http://vsftp.beasts.org

 proftpd

 ⓐ UNIX 또는 UNIX 호환 OS를 위한  FTP Demon

 ⓑ Apache Web Server의 설정 방식

 ⓒ Apache의 ".htaccess" 와 비슷한 각 디렉토리의 ".ftpaccess" 설정

 ⓓ 쉽게 설정할 수 있는 다중 가상 FTP서버와 anonymous FTP 서비스

 ⓔ 시스템 부하에 따라 standalone or inetd 선택적 운영

 ⓕ shadow 암호 지원, 만료된 계정들 지원 포함

 ⓖ http://www.proftp.org

 

FTP

 프로그램

 vsftpd

 데몬 & 포트 & 프로토콜

 /usr/sbin/vsftpd   &   20/21   &   TCP

 주 설정 파일

 /etc/vsftpd/vsftpd.conf

 하위 설정 파일

 /etc/vsftpd/{ user_list , ftpusers }

 스크립트

 /etc/init.d/vsftd

 

 

◇ 실습

 

# rpm -qa | grep vsftpd

# rpm -ql vsftpd

 

# cd /etc/vsftpd    ;    ls

 

★ vsftpd 관련 파일들

 /etc/vsftpd/vsftpd.conf 

 vsftpd 프로그램의 주 설정 파일 

 /etc/vsftpd/ftpuser

 vsftpd 서버에 접속 할 수 없는 사용자 정의

 /etc/vsftpd/user_list

 vsftpd 서버에 접속 할 수 없는 사용자 정의

 /var/ftp

 Anonymous FTP 사용자를 위한 정의

 

# service ftp restart

# chkconfig ftp on

# vsftp -v        < 버전정보 확인.

 

# ftp localhost    (root)

> root는 접속이 허용되지 않는다.

 

# ftp localhost    (fedora)

> 일반사용자는 가능하다.

 

어떻게 하면 root도 가능하게 할 수 있을까??

 

# vi /etc/vsftpd/fusers

# vi /etc/vsftpd/user_list

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# /etc/vsftpd/fusers
# Users that are not allowed to login via ftp
root            # 삭제
bin
daemon
adm
lp
sync
shutdown
halt
mail
news
uucp
operator
games
nobody
 
 
# /etc/vsftpd/user_list
# vsftpd userlist
# If userlist_deny=NO, only allow users in this file
# If userlist_deny=YES (default), never allow users in this file, and
# do not even prompt for a password.
# Note that the default vsftpd pam config also checks /etc/vsftpd/ftpusers
# for users that are denied.
root            
bin
daemon
adm
lp
sync
shutdown
halt
mail
news
uucp
operator
games
nobody
 
cs

 

# service vsftpd restart

# ftp localhost    (root)

> 이제 된당 하핫!

But , FTP는 평문 형태로 보낸다 보안상 좋지 않기 때문에 실무에서는 좋지 않다고 한다. ★★★★★★★★

 

◇ 업로드 실습

명령어 사용법

# ftp <IP>                ( Ex : ftp 192.168.35243 )

# ftp <IP> <PORT>    ( Ex : ftp 192.168.35243 21 )

 

 업로드 / 다운로드 포인터 맞추기

 cd / lcd

 편리한 기능 설정

 bin / hash / prompt    ( 이 것들은 항상 무조건 입력해준다.)

 업로드 / 다운로드

 mget / mput / get / put

 확인 / 해제

 ls / dir / bye / quit

 

 

192.168.35.243-------------->>192.168.35.143

 

 

# cd /root

# dd if=/dev/zero of=linux213 bs=1M count=1

# ftp 192.168.35.143

ftp> cd /tmp

ftp> lcd /root

 

ftp> bin                        > 전송모드 : binary, ascii

ftp> hash                      > 파일전송 : Hash(#) 표시

ftp> prompt                  > 대화형 모드 : ON /OFF

 

ftp> put linux213.txt        > 집어 넣는 것.

ftp> get linux213.txt        > 가져 오는 것.

 

ftp> mput linux*            > 일반적으로 얘네를 쓰는 것을 권장.

ftp> mget linux*

 

★ FTP는 모든 운영체제에 다 있다.

반응형