[개발자가 하는 일4] 본격적인 서버 구축 - vsftpd설치,FTP 디자인 및 개발
2016.09.10. 11:37
4화 본격적인 서버 구축 - vsftpd 설치,FTP
이전 화에선 운영체제를 설치하고 기본 설정을 확인했습니다.
필요할 프로그램들을 설치하겠습니다.
먼저 vsftpd를 먼저 설치합니다.
설치하기 전에 vsftpd의 사용 목적부터 생각해보겠습니다.
* vsftpd는 왜 설치할까요
저는 이미지 서버 구축 및 서버 프로그램을 업로드/다운로드 하려는 목적으로 vsftpd를 설치합니다.
이제 vsftpd
를 설치하려는 목적이 생겼습니다.
* vsftpd는 무엇일까요
vsftpd는 파일전송 규약(File Transfer Protocol, FTP)으로 파일을 원활하게 업로드/다운로드 하는게 목적입니다.
예를 들어 내 컴퓨터에 있는 이미지 파일 서버로 업로드 하거나 서버에 있는 이미지 파일을 내 컴퓨터로 내려받기 위함입니다. 서버 프로그램을 올리거나 기타 파일을 업/로드 내려받기 위해 설치하고 사용합니다.
위에 내용 중 파일전송규약이라는 말이 나오는데 파일전송규약에 대해 한번 알아 보겠습니다.
* 파일 전송 규약(File Transfer Protocol,FTP)의 역사

파
일전송규약(File Transfer Protocol,FTP)
의 기원부터 찾아보겠습니다.
파일전송규약(File Transfer Protocol,FTP)란 파일 전송 프로토콜(File Transfer Protocol)의 약자로 네트워크 상에서 컴퓨터 간에 파일을 교환하기 위해 1971년에 최초로 공개된 통신 규약입니다.
Abhay Bhushan
란 분이 1971년 4월 16일에 작성하였습니다.
이후 기능이 계속해서 계량되었습니다. 굵직한 내용만 요약해서 보면 아래와 같습니다.
- 최초버전 -1971년 4월
- TCP/IP가 추가 -1980년 6월
- 현재 사용되고 있는 대부분의 표준 규약이 확정 -1994년 2월
- FTP 보안 기능 확장(방화벽과 Passive-Mode 추가) -1997년 6월
- IPv6와 새로운 타입의 Passive-Mode가 추가된 버전 -1998년 9월
위처럼 역사는 파일전송규약(FTP)의 역사는 약 40년 정도 되었습니다.
이후 계속되는 규약을 계량을 통해 오늘날에 이르렀습니다.
그럼 FTP란 정의일까요?
"The File Transfer Protocol ( FTP ) is a standard network protocol used to transfer computer files between a client and server on a computer network ."
위키피디아의 내용을 번역하면
파일전송규약이란 클라이언트 컴퓨터와 서버 컴퓨터의 파일 표준 네트워크 규약입니다.
위키의 내용을 풀어 보면 이렇습니다.
네트워크에 연결된 컴퓨터끼리 데이터를 원활하게 교환하기 위한 목적으로 개발되었습니다.
저는 이 위 문장을 보며 말이 어렵다 생각이 들었습니다.
그래서 예를 들어보면
택배를 꼭 박스에 집어넣어서 보내자고 규칙을 정하는 것 처럼
컴퓨터 파일도 하나의 약속을 하는것입니다.
이제 정의와 기원에 대해 알아 보았습니다.
그럼 이제 서버 프로그램을 설치해 볼까요
1) FTP의 설치 여부 확인
[root@mobileflow ~]# rpm -qa vsftpd*
vsftpd-2.2.2-21.el6.x86_64
2) FTP설치
[root@mobileflow ~]# yum install vsftpd -y
complete!
3) FTP의 설치 여부 확인
[root@mobileflow ~]# service vsftpd status
vsftpd is stopped
4) FTP의 설정
[root@mobileflow ~]# vi /etc/vsftpd/vsftpd.conf
anonymous_enable=NO #익명 사용자의 접속 여부 local_enable=YES #익명 사용자의 접속 여부 write_enable=YES #업로드 허용 xferlog_enable=YES #파일 전송 로그 남김 허용 connect_from_port_20=YES #20 포트 사용 허용 xferlog_file=/var/log/xferlog #파일 전송 로그 위치 설정 #chroot_local_user=YES #루트 폴더 접근제한 listen=YES #vsftpd 데몬 동작 방식 지정(yes -> standalone, no -> xinted) local_root=/var/www/static #접속 경로 설정 pam_service_name=vsftpd userlist_enable=YES tcp_wrappers=YES listen_port=45000 #파일 전송 접속 포트 설정 port_enable=YES pasv_enable=YES ftp_data_port=45001 #파일 전송 데이터 포트 설정 pasv_min_port=45000 pasv_max_port=45001 session_support=YES userlist_enable=YES #유저 목록 사용
5) FTP의 시작 및 시작 확인
service vsftpd start
Starting vsftpd for vsftpd: [ OK ]
[root@mobileflow ~]# netstat -anp | grep vsftpd
tcp 0 0 0.0.0.0:45000 0.0.0.0:* LISTEN 2267/vsftpd
6) FTP의 리부팅시 자동 재시작 설정
[root@mobileflow ~]# chkconfig vsftpd on [root@mobileflow ~]# chkconfig --list | grep vsftpd
vsftpd 0:해제 1:해제 2:활성 3:활성 4:활성 5:활성 6:해제
7) 테스트 계정 생성
[root@mobileflow ~]# useradd testing [root@mobileflow ~]# passwd testing
testing 사용자의 비밀 번호 변경 중 새 암호: 잘못된 암호: 사전에 있는 단어를 기반으로 합니다 잘못된 암호: 너무 간단함 새 암호 재입력: passwd: 모든 인증 토큰이 성공적으로 업데이트 되었습니다.
vsftpd에 접속 성공하시면
아래와 같은 메시지를 보실 수 있습니다.
Status: Connecting to IP:PORT...
Status: Connection established, waiting for welcome message...
Status: Insecure server, it does not support FTP over TLS.
Status: Logged in
Status: Retrieving directory listing...
Status: Directory listing of ".../static" successful
다음 화 에는 이곳에 올린 파일을 웹상에서 확인하는 방법을 소개 하겠습니다.
이전 내용은 이곳에서 보시면 됩니다.
[개발자가 하는 일 1] 서버 구축에 앞서..
[개발자가 하는 일 3] 본격적인 서버 구축 - 기본 설정 및 확인
1)
https://en.wikipedia.org/wiki/File_Transfer_Protocol
2) https://en.wikipedia.org/wiki/Abhay_Bhushan
3) https://en.wikipedia.org/wiki/Vsftpd
4) https://security.appspot.com/vsftpd.html#about
5) http://techbug.tistory.com/50
7) https://multimedia.journalism.berkeley.edu/tutorials/ftp/
작성 폼 양식
번호) 제목
[root@mobileflow ~]# 명령어
실행결과

1) https://en.wikipedia.org/wiki/File_Transfer_Protocol
2) https://en.wikipedia.org/wiki/Abhay_Bhushan
3) https://en.wikipedia.org/wiki/Vsftpd
4) https://security.appspot.com/vsftpd.html#about
5) http://techbug.tistory.com/50
7) https://multimedia.journalism.berkeley.edu/tutorials/ftp/
작성 폼 양식
번호) 제목
[root@mobileflow ~]# 명령어
실행결과
